]> git.sesse.net Git - nageru/blob - x264_dynamic.h
Fix an issue where the mixer lagging too much behind CEF would cause us to display...
[nageru] / x264_dynamic.h
1 #ifndef _X264_DYNAMIC_H
2 #define _X264_DYNAMIC_H 1
3
4 // A helper to load 10-bit x264 if needed.
5
6 #include <stdint.h>
7
8 extern "C" {
9 #include <x264.h>
10 }
11
12 struct X264Dynamic {
13         void *handle;  // If not nullptr, needs to be dlclose()d.
14         decltype(::x264_encoder_close) *x264_encoder_close;
15         decltype(::x264_encoder_delayed_frames) *x264_encoder_delayed_frames;
16         decltype(::x264_encoder_encode) *x264_encoder_encode;
17         decltype(::x264_encoder_headers) *x264_encoder_headers;
18         decltype(::x264_encoder_open) *x264_encoder_open;
19         decltype(::x264_encoder_parameters) *x264_encoder_parameters;
20         decltype(::x264_encoder_reconfig) *x264_encoder_reconfig;
21         decltype(::x264_param_apply_profile) *x264_param_apply_profile;
22         decltype(::x264_param_default_preset) *x264_param_default_preset;
23         decltype(::x264_param_parse) *x264_param_parse;
24         decltype(::x264_picture_init) *x264_picture_init;
25 };
26 X264Dynamic load_x264_for_bit_depth(unsigned depth);
27
28 #endif  // !defined(_X264_DYNAMIC_H)