diff options
author | Mark Thompson <sw@jkqxz.net> | 2018-05-08 01:33:36 +0300 |
---|---|---|
committer | Mark Thompson <sw@jkqxz.net> | 2018-05-11 01:54:01 +0300 |
commit | ac687add84a1a87b0b9460c3cdbbeb9bac02fb34 (patch) | |
tree | bb5ee468eea798a4ef00cbfccc395d906127dce1 /libavcodec/cbs_h264_syntax_template.c | |
parent | d94dda742c8eab3141197270fb78063ed22442aa (diff) |
cbs_h264: Add support for mastering display SEI messages
Diffstat (limited to 'libavcodec/cbs_h264_syntax_template.c')
-rw-r--r-- | libavcodec/cbs_h264_syntax_template.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/libavcodec/cbs_h264_syntax_template.c b/libavcodec/cbs_h264_syntax_template.c index fb1685e6e6..027b555db6 100644 --- a/libavcodec/cbs_h264_syntax_template.c +++ b/libavcodec/cbs_h264_syntax_template.c @@ -740,6 +740,25 @@ static int FUNC(sei_display_orientation)(CodedBitstreamContext *ctx, RWContext * return 0; } +static int FUNC(sei_mastering_display_colour_volume)(CodedBitstreamContext *ctx, RWContext *rw, + H264RawSEIMasteringDisplayColourVolume *current) +{ + int err, c; + + for (c = 0; c < 3; c++) { + us(16, display_primaries_x[c], 0, 50000, 1, c); + us(16, display_primaries_y[c], 0, 50000, 1, c); + } + + u(16, white_point_x, 0, 50000); + u(16, white_point_y, 0, 50000); + + u(32, max_display_mastering_luminance, 1, MAX_UINT_BITS(32)); + u(32, min_display_mastering_luminance, 0, current->max_display_mastering_luminance - 1); + + return 0; +} + static int FUNC(sei_payload)(CodedBitstreamContext *ctx, RWContext *rw, H264RawSEIPayload *current) { @@ -787,6 +806,10 @@ static int FUNC(sei_payload)(CodedBitstreamContext *ctx, RWContext *rw, CHECK(FUNC(sei_display_orientation) (ctx, rw, ¤t->payload.display_orientation)); break; + case H264_SEI_TYPE_MASTERING_DISPLAY_COLOUR_VOLUME: + CHECK(FUNC(sei_mastering_display_colour_volume) + (ctx, rw, ¤t->payload.mastering_display_colour_volume)); + break; default: { #ifdef READ |