summaryrefslogtreecommitdiffstats
path: root/libhb/handbrake/encx264.h
diff options
context:
space:
mode:
Diffstat (limited to 'libhb/handbrake/encx264.h')
-rw-r--r--libhb/handbrake/encx264.h65
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