On 03/05/18 04:07, Haihao Xiang wrote: > Signed-off-by: Haihao Xiang <haihao.xi...@intel.com> > --- > libavcodec/cbs_h2645.c | 1 + > libavcodec/cbs_h265.h | 6 ++++++ > libavcodec/cbs_h265_syntax_template.c | 17 +++++++++++++++++ > 3 files changed, 24 insertions(+) > > diff --git a/libavcodec/cbs_h2645.c b/libavcodec/cbs_h2645.c > index a4cc7eb990..feb01462ae 100644 > --- a/libavcodec/cbs_h2645.c > +++ b/libavcodec/cbs_h2645.c > @@ -488,6 +488,7 @@ static void cbs_h265_free_sei_payload(H265RawSEIPayload > *payload) > { > switch (payload->payload_type) { > case HEVC_SEI_TYPE_MASTERING_DISPLAY_INFO: > + case HEVC_SEI_TYPE_CONTENT_LIGHT_LEVEL_INFO: > break; > default: > av_buffer_unref(&payload->payload.other.data_ref); > diff --git a/libavcodec/cbs_h265.h b/libavcodec/cbs_h265.h > index 36d71e40c1..3f61686ea8 100644 > --- a/libavcodec/cbs_h265.h > +++ b/libavcodec/cbs_h265.h > @@ -533,11 +533,17 @@ typedef struct H265RawSEIMasteringDiplayColourVolume { > uint32_t min_display_mastering_luminance; > } H265RawSEIMasteringDiplayColourVolume; > > +typedef struct H265RawSEIContentLightLevelInfo { > + uint16_t max_content_light_level; > + uint16_t max_pic_average_light_level; > +} H265RawSEIContentLightLevelInfo; > + > typedef struct H265RawSEIPayload { > uint32_t payload_type; > uint32_t payload_size; > union { > H265RawSEIMasteringDiplayColourVolume mastering_display; > + H265RawSEIContentLightLevelInfo content_light_level; > struct { > uint8_t *data; > size_t data_length; > diff --git a/libavcodec/cbs_h265_syntax_template.c > b/libavcodec/cbs_h265_syntax_template.c > index 387056618f..490978ce51 100644 > --- a/libavcodec/cbs_h265_syntax_template.c > +++ b/libavcodec/cbs_h265_syntax_template.c > @@ -1528,6 +1528,17 @@ static int > FUNC(sei_mastering_display)(CodedBitstreamContext *ctx, RWContext *rw > return 0; > } > > +static int FUNC(sei_content_light_level)(CodedBitstreamContext *ctx, > RWContext *rw, > + H265RawSEIContentLightLevelInfo > *current) > +{ > + int err; > + > + u(16, max_content_light_level, 0, MAX_UINT_BITS(16)); > + u(16, max_pic_average_light_level, 0, MAX_UINT_BITS(16)); > + > + return 0; > +} > + > static int FUNC(sei_payload)(CodedBitstreamContext *ctx, RWContext *rw, > H265RawSEIPayload *current) > { > @@ -1547,6 +1558,12 @@ static int FUNC(sei_payload)(CodedBitstreamContext > *ctx, RWContext *rw, > > break; > > + case HEVC_SEI_TYPE_CONTENT_LIGHT_LEVEL_INFO: > + CHECK(FUNC(sei_content_light_level) > + (ctx, rw, ¤t->payload.content_light_level)); > + > + break; > + > default: > { > allocate(current->payload.other.data, current->payload_size); >
This patch LGTM. Thanks, - Mark _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel