1
0
mirror of https://github.com/mpv-player/mpv synced 2025-02-21 15:27:00 +00:00

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.
This commit is contained in:
Niklas Haas 2016-05-16 13:58:14 +02:00
parent 887b2cc30f
commit b6c40953cb
No known key found for this signature in database
GPG Key ID: 9A09076581B27402
2 changed files with 19 additions and 7 deletions

View File

@ -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;
}
}

View File

@ -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 = [