1 /*
2  *  Copyright (c) 2013 The WebM project authors. All Rights Reserved.
3  *
4  *  Use of this source code is governed by a BSD-style license
5  *  that can be found in the LICENSE file in the root of the source
6  *  tree. An additional intellectual property rights grant can be found
7  *  in the file PATENTS.  All contributing project authors may
8  *  be found in the AUTHORS file in the root of the source tree.
9  */
10 #ifndef VPX_VPXENC_H_
11 #define VPX_VPXENC_H_
12 
13 #define INLINE __inline
14 #include <stdint.h>
15 #include <stdio.h>
16 #include "vpx_encoder.h"
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 
22 enum TestDecodeFatality {
23   TEST_DECODE_OFF,
24   TEST_DECODE_FATAL,
25   TEST_DECODE_WARN,
26 };
27 
28 typedef enum {
29   I420,  // 4:2:0 8+ bit-depth
30   I422,  // 4:2:2 8+ bit-depth
31   I444,  // 4:4:4 8+ bit-depth
32   I440,  // 4:4:0 8+ bit-depth
33   YV12,  // 4:2:0 with uv flipped, only 8-bit depth
34 } ColorInputType;
35 
36 struct VpxInterface;
37 
38 /* Configuration elements common to all streams. */
39 struct VpxEncoderConfig {
40   const struct VpxInterface *codec;
41   int passes;
42   int pass;
43   int usage;
44   int deadline;
45   ColorInputType color_type;
46   int quiet;
47   int verbose;
48   int limit;
49   int skip_frames;
50   int show_psnr;
51   enum TestDecodeFatality test_decode;
52   int have_framerate;
53   struct vpx_rational frame_rate;
54   int out_part;
55   int debug;
56   int show_q_hist_buckets;
57   int show_rate_hist_buckets;
58   int disable_warnings;
59   int disable_warning_prompt;
60   int experimental_bitstream;
61 };
62 
63 #ifdef __cplusplus
64 }  // extern "C"
65 #endif
66 
67 #endif  // VPX_VPXENC_H_
68