Signed-off-by: James Almer <jamr...@gmail.com> --- libavformat/matroska.h | 14 ++++++++++++++ libavformat/matroskadec.c | 7 +++++++ 2 files changed, 21 insertions(+)
diff --git a/libavformat/matroska.h b/libavformat/matroska.h index 8ad89da..13155e5 100644 --- a/libavformat/matroska.h +++ b/libavformat/matroska.h @@ -317,6 +317,20 @@ typedef enum { MATROSKA_VIDEO_DISPLAYUNIT_UNKNOWN = 4, } MatroskaVideoDisplayUnit; +typedef enum { + MATROSKA_COLOUR_CHROMASITINGHORZ_UNDETERMINED = 0, + MATROSKA_COLOUR_CHROMASITINGHORZ_LEFT = 1, + MATROSKA_COLOUR_CHROMASITINGHORZ_HALF = 2, + MATROSKA_COLOUR_CHROMASITINGHORZ_NB +} MatroskaColourChromaSitingHorz; + +typedef enum { + MATROSKA_COLOUR_CHROMASITINGVERT_UNDETERMINED = 0, + MATROSKA_COLOUR_CHROMASITINGVERT_TOP = 1, + MATROSKA_COLOUR_CHROMASITINGVERT_HALF = 2, + MATROSKA_COLOUR_CHROMASITINGVERT_NB +} MatroskaColourChromaSitingVert; + /* * Matroska Codec IDs, strings */ diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index a5d3c0e..722d0b0 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -1827,6 +1827,13 @@ 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 && track->video.color.chroma_siting_vert && + 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. -- 2.9.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel