From b6c40953cbb640d8ec9e3fa9862e243c0dbb1d17 Mon Sep 17 00:00:00 2001 From: Niklas Haas Date: Mon, 16 May 2016 13:58:14 +0200 Subject: csputils: add AVCOL_TRC_SMPTEST2084 support This now lets us auto-detect appropriately tagged HDR content using FFmpeg's new TRC entries (when available). Hidden behind an #if because Libav stable doesn't have it yet. --- video/csputils.c | 18 ++++++++++++------ wscript | 8 +++++++- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/video/csputils.c b/video/csputils.c index 2637c57a94..ffa1f82a6d 100644 --- a/video/csputils.c +++ b/video/csputils.c @@ -171,6 +171,9 @@ enum mp_csp_trc avcol_trc_to_mp_csp_trc(int avtrc) case AVCOL_TRC_LINEAR: return MP_CSP_TRC_LINEAR; case AVCOL_TRC_GAMMA22: return MP_CSP_TRC_GAMMA22; case AVCOL_TRC_GAMMA28: return MP_CSP_TRC_GAMMA28; +#if HAVE_AVUTIL_ST2084 + case AVCOL_TRC_SMPTEST2084: return MP_CSP_TRC_SMPTE_ST2084; +#endif default: return MP_CSP_TRC_AUTO; } } @@ -214,12 +217,15 @@ int mp_csp_trc_to_avcol_trc(enum mp_csp_trc trc) { switch (trc) { // We just call it BT.1886 since we're decoding, but it's still BT.709 - case MP_CSP_TRC_BT_1886: return AVCOL_TRC_BT709; - case MP_CSP_TRC_SRGB: return AVCOL_TRC_IEC61966_2_1; - case MP_CSP_TRC_LINEAR: return AVCOL_TRC_LINEAR; - case MP_CSP_TRC_GAMMA22: return AVCOL_TRC_GAMMA22; - case MP_CSP_TRC_GAMMA28: return AVCOL_TRC_GAMMA28; - default: return AVCOL_TRC_UNSPECIFIED; + case MP_CSP_TRC_BT_1886: return AVCOL_TRC_BT709; + case MP_CSP_TRC_SRGB: return AVCOL_TRC_IEC61966_2_1; + case MP_CSP_TRC_LINEAR: return AVCOL_TRC_LINEAR; + case MP_CSP_TRC_GAMMA22: return AVCOL_TRC_GAMMA22; + case MP_CSP_TRC_GAMMA28: return AVCOL_TRC_GAMMA28; +#if HAVE_AVUTIL_ST2084 + case MP_CSP_TRC_SMPTE_ST2084: return AVCOL_TRC_SMPTEST2084; +#endif + default: return AVCOL_TRC_UNSPECIFIED; } } diff --git a/wscript b/wscript index 6ff38d6a0c..684fdf0465 100644 --- a/wscript +++ b/wscript @@ -502,7 +502,13 @@ FFmpeg/Libav libraries. You need at least {0}. Aborting.".format(libav_versions_ 'func': check_statement('libavutil/frame.h', '(void)offsetof(AVFrame, hw_frames_ctx)', use='libav'), - }, + }, { + 'name': 'avutil-st2084', + 'desc': 'libavutil AVCOL_TRC_SMPTEST2084', + 'func': check_statement('libavutil/pixfmt.h', + 'AVCOL_TRC_SMPTEST2084', + use='libav'), + } ] audio_output_features = [ -- cgit v1.2.3