summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNiklas Haas <git@nand.wakku.to>2016-05-16 13:58:14 +0200
committerNiklas Haas <git@nand.wakku.to>2016-05-16 13:59:57 +0200
commitb6c40953cbb640d8ec9e3fa9862e243c0dbb1d17 (patch)
treed0e380d6cf2b88956f84b35e20f7efc036489e33
parent887b2cc30ff13bf57404ddbc3abc86fdb2b5ad01 (diff)
downloadmpv-b6c40953cbb640d8ec9e3fa9862e243c0dbb1d17.tar.bz2
mpv-b6c40953cbb640d8ec9e3fa9862e243c0dbb1d17.tar.xz
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.
-rw-r--r--video/csputils.c18
-rw-r--r--wscript8
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 = [