From bab6b606752e5ba93f9d2d1b71f264dc8e3031b3 Mon Sep 17 00:00:00 2001 From: James Almer Date: Sat, 15 Oct 2016 11:17:37 -0300 Subject: [PATCH] avformat/matroskaenc: support writing Chroma Location elements Signed-off-by: James Almer --- libavformat/matroskaenc.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index 78540fb384..99f61fe56d 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -832,6 +832,14 @@ static int mkv_write_video_color(AVIOContext *pb, AVCodecParameters *par, AVStre par->color_range < AVCOL_RANGE_NB) { put_ebml_uint(dyn_cp, MATROSKA_ID_VIDEOCOLORRANGE, par->color_range); } + if (par->chroma_location != AVCHROMA_LOC_UNSPECIFIED && + par->chroma_location <= AVCHROMA_LOC_TOP) { + int xpos, ypos; + + avcodec_enum_to_chroma_pos(&xpos, &ypos, par->chroma_location); + put_ebml_uint(dyn_cp, MATROSKA_ID_VIDEOCOLORCHROMASITINGHORZ, (xpos >> 7) + 1); + put_ebml_uint(dyn_cp, MATROSKA_ID_VIDEOCOLORCHROMASITINGVERT, (ypos >> 7) + 1); + } if (side_data_size == sizeof(AVMasteringDisplayMetadata)) { ebml_master meta_element = start_ebml_master( dyn_cp, MATROSKA_ID_VIDEOCOLORMASTERINGMETA, 0);