diff options
author | James Almer <jamrial@gmail.com> | 2016-10-17 23:50:14 -0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2016-10-18 20:39:07 -0300 |
commit | 47ee6f1a59b1f345f4f9d8e79c30d66df12b72e7 (patch) | |
tree | a0dbf568f34f2343392e39856a32de4df43a9a2c /libavformat/matroskadec.c | |
parent | d2ae5f77c61a29c3c63cc4c41c74ccfca4167649 (diff) | |
download | ffmpeg-47ee6f1a59b1f345f4f9d8e79c30d66df12b72e7.tar.gz |
avformat/matroskadec: support parsing Chroma Location elements
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavformat/matroskadec.c')
-rw-r--r-- | libavformat/matroskadec.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index a5d3c0e543..13a819680a 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -1827,6 +1827,14 @@ static int mkv_parse_video_color(AVStream *st, const MatroskaTrack *track) { if (track->video.color.range != AVCOL_RANGE_UNSPECIFIED && track->video.color.range <= AVCOL_RANGE_JPEG) st->codecpar->color_range = track->video.color.range; + if (track->video.color.chroma_siting_horz != MATROSKA_COLOUR_CHROMASITINGHORZ_UNDETERMINED && + track->video.color.chroma_siting_vert != MATROSKA_COLOUR_CHROMASITINGVERT_UNDETERMINED && + track->video.color.chroma_siting_horz < MATROSKA_COLOUR_CHROMASITINGHORZ_NB && + track->video.color.chroma_siting_vert < MATROSKA_COLOUR_CHROMASITINGVERT_NB) { + st->codecpar->chroma_location = + avcodec_chroma_pos_to_enum((track->video.color.chroma_siting_horz - 1) << 7, + (track->video.color.chroma_siting_vert - 1) << 7); + } if (has_mastering_primaries || has_mastering_luminance) { // Use similar rationals as other standards. |