summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeungha Yang <seungha.yang@navercorp.com>2019-05-24 20:35:41 +0900
committerSeungha Yang <seungha.yang@navercorp.com>2019-05-24 20:44:12 +0900
commit2b50a0ce93c47946dc63fac9fa828814ed56b7ea (patch)
tree056af8da9ebd5271f3d65feb8a8fb7f7f4946795
parent597578ca413d4779ba9640441a60e8293578726e (diff)
downloadgst-libav-2b50a0ce93c47946dc63fac9fa828814ed56b7ea.tar.gz
avcodecmap,avviddec: Map bt2020-10, PQ and HLG transfer functions
Map more transfer functions between Gstreamer and ffmpeg
-rw-r--r--ext/libav/gstavcodecmap.c9
-rw-r--r--ext/libav/gstavviddec.c10
2 files changed, 18 insertions, 1 deletions
diff --git a/ext/libav/gstavcodecmap.c b/ext/libav/gstavcodecmap.c
index fea9105..559228f 100644
--- a/ext/libav/gstavcodecmap.c
+++ b/ext/libav/gstavcodecmap.c
@@ -2986,9 +2986,18 @@ gst_ffmpeg_videoinfo_to_context (GstVideoInfo * info, AVCodecContext * context)
case GST_VIDEO_TRANSFER_LOG316:
context->color_trc = AVCOL_TRC_LOG_SQRT;
break;
+ case GST_VIDEO_TRANSFER_BT2020_10:
+ context->color_trc = AVCOL_TRC_BT2020_10;
+ break;
case GST_VIDEO_TRANSFER_BT2020_12:
context->color_trc = AVCOL_TRC_BT2020_12;
break;
+ case GST_VIDEO_TRANSFER_SMPTE2084:
+ context->color_trc = AVCOL_TRC_SMPTE2084;
+ break;
+ case GST_VIDEO_TRANSFER_ARIB_STD_B67:
+ context->color_trc = AVCOL_TRC_ARIB_STD_B67;
+ break;
default:
break;
}
diff --git a/ext/libav/gstavviddec.c b/ext/libav/gstavviddec.c
index 33fcd8e..6522828 100644
--- a/ext/libav/gstavviddec.c
+++ b/ext/libav/gstavviddec.c
@@ -1225,7 +1225,6 @@ gst_ffmpegviddec_negotiate (GstFFMpegVidDec * ffmpegdec,
if (!gst_structure_has_field (in_s, "colorimetry")
|| in_info->colorimetry.transfer == GST_VIDEO_TRANSFER_UNKNOWN) {
switch (context->color_trc) {
- case AVCOL_TRC_BT2020_10:
case AVCOL_TRC_BT709:
case AVCOL_TRC_SMPTE170M:
out_info->colorimetry.transfer = GST_VIDEO_TRANSFER_BT709;
@@ -1248,9 +1247,18 @@ gst_ffmpegviddec_negotiate (GstFFMpegVidDec * ffmpegdec,
case AVCOL_TRC_LOG_SQRT:
out_info->colorimetry.transfer = GST_VIDEO_TRANSFER_LOG316;
break;
+ case AVCOL_TRC_BT2020_10:
+ out_info->colorimetry.transfer = GST_VIDEO_TRANSFER_BT2020_10;
+ break;
case AVCOL_TRC_BT2020_12:
out_info->colorimetry.transfer = GST_VIDEO_TRANSFER_BT2020_12;
break;
+ case AVCOL_TRC_SMPTE2084:
+ out_info->colorimetry.transfer = GST_VIDEO_TRANSFER_SMPTE2084;
+ break;
+ case AVCOL_TRC_ARIB_STD_B67:
+ out_info->colorimetry.transfer = GST_VIDEO_TRANSFER_ARIB_STD_B67;
+ break;
default:
break;
}