diff options
-rw-r--r-- | options/options.c | 23 | ||||
-rw-r--r-- | video/hwdec.h | 7 |
2 files changed, 20 insertions, 10 deletions
diff --git a/options/options.c b/options/options.c index 4ba2db1590..d286e5b63c 100644 --- a/options/options.c +++ b/options/options.c @@ -38,6 +38,7 @@ #include "common/common.h" #include "stream/stream.h" #include "video/csputils.h" +#include "video/hwdec.h" #include "sub/osd.h" #include "audio/mixer.h" #include "audio/filter/af.h" @@ -79,6 +80,18 @@ extern const struct m_obj_list af_obj_list; extern const struct m_obj_list vo_obj_list; extern const struct m_obj_list ao_obj_list; +const struct m_opt_choice_alternatives mp_hwdec_names[] = { + {"no", HWDEC_NONE}, + {"auto", HWDEC_AUTO}, + {"vdpau", HWDEC_VDPAU}, + {"vda", HWDEC_VDA}, + {"vaapi", HWDEC_VAAPI}, + {"vaapi-copy", HWDEC_VAAPI_COPY}, + {"dxva2-copy", HWDEC_DXVA2_COPY}, + {"rpi", HWDEC_RPI}, + {0} +}; + #define OPT_BASE_STRUCT struct MPOpts const m_option_t mp_opts[] = { @@ -283,15 +296,7 @@ const m_option_t mp_opts[] = { OPT_FLAG("ad-spdif-dtshd", dtshd, 0), - OPT_CHOICE("hwdec", hwdec_api, 0, - ({"no", 0}, - {"auto", -1}, - {"vdpau", 1}, - {"vda", 2}, - {"vaapi", 4}, - {"vaapi-copy", 5}, - {"dxva2-copy", 6}, - {"rpi", 7})), + OPT_CHOICE_C("hwdec", hwdec_api, 0, mp_hwdec_names), OPT_STRING("hwdec-codecs", hwdec_codecs, 0), OPT_SUBSTRUCT("sws", vo.sws_opts, sws_conf, 0), diff --git a/video/hwdec.h b/video/hwdec.h index 761b8d699b..c9eb8e6a95 100644 --- a/video/hwdec.h +++ b/video/hwdec.h @@ -1,9 +1,11 @@ #ifndef MP_HWDEC_H_ #define MP_HWDEC_H_ +#include "options/m_option.h" + struct mp_image_pool; -// keep in sync with --hwdec option +// keep in sync with --hwdec option (see mp_hwdec_names) enum hwdec_type { HWDEC_AUTO = -1, HWDEC_NONE = 0, @@ -15,6 +17,9 @@ enum hwdec_type { HWDEC_RPI = 7, }; +// hwdec_type names (options.c) +extern const struct m_opt_choice_alternatives mp_hwdec_names[]; + struct mp_hwdec_ctx { enum hwdec_type type; |