diff options
Diffstat (limited to 'libhb/handbrake/encx264.h')
-rw-r--r-- | libhb/handbrake/encx264.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/libhb/handbrake/encx264.h b/libhb/handbrake/encx264.h new file mode 100644 index 000000000..29085e50c --- /dev/null +++ b/libhb/handbrake/encx264.h @@ -0,0 +1,65 @@ +/* encx264.h + + Copyright (c) 2003-2019 HandBrake Team + This file is part of the HandBrake source code + Homepage: <http://handbrake.fr/>. + It may be used under the terms of the GNU General Public License v2. + For full terms see the file COPYING file or visit http://www.gnu.org/licenses/gpl-2.0.html + */ + +#ifndef HB_ENCX264_H +#define HB_ENCX264_H + +#include "x264.h" +#include "handbrake/h264_common.h" + +/* x264 preferred option names (left) and synonyms (right). + * The "preferred" names match names used in x264's param2string function more + * closely than their corresponding synonyms, or are just shorter. */ +static const char * const hb_x264_encopt_synonyms[][2] = +{ + { "deterministic", "n-deterministic", }, + { "level", "level-idc", }, + { "ref", "frameref", }, + { "keyint-min", "min-keyint", }, + { "no-deblock", "nf", }, + { "deblock", "filter", }, + { "cqm", "cqmfile", }, + { "analyse", "partitions", }, + { "weightb", "weight-b", }, + { "direct", "direct-pred", }, + { "merange", "me-range", }, + { "mvrange", "mv-range", }, + { "mvrange-thread", "mv-range-thread", }, + { "subme", "subq", }, + { "qp", "qp_constant", }, + { "qpmin", "qp-min", }, + { "qpmax", "qp-max", }, + { "qpstep", "qp-step", }, + { "ipratio", "ip-factor", }, + { "pbratio", "pb-factor", }, + { "cplxblur", "cplx-blur", }, + { NULL, NULL, }, +}; + +typedef struct x264_api_s +{ + int bit_depth; + void (*param_default)(x264_param_t*); + int (*param_default_preset)(x264_param_t*, const char*, const char*); + int (*param_apply_profile)(x264_param_t*, const char*); + void (*param_apply_fastfirstpass)(x264_param_t*); + int (*param_parse)(x264_param_t*, const char*, const char*); + x264_t* (*encoder_open)(x264_param_t*); + int (*encoder_headers)(x264_t*, x264_nal_t**, int*); + int (*encoder_encode)(x264_t*, x264_nal_t**, int*, + x264_picture_t*, x264_picture_t*); + int (*encoder_delayed_frames)(x264_t*); + void (*encoder_close)(x264_t*); + void (*picture_init)(x264_picture_t*); +} x264_api_t; + +void hb_x264_global_init(void); +const x264_api_t * hb_x264_api_get(int bit_depth); + +#endif // HB_ENCX264_H |