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