Commit 47ee6f1a authored by James Almer's avatar James Almer

avformat/matroskadec: support parsing Chroma Location elements

Reviewed-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
Signed-off-by: 's avatarJames Almer <jamrial@gmail.com>
parent d2ae5f77
......@@ -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
*/
......
......@@ -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.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment