[FFmpeg-devel] [PATCH v2 1/4] avutil: add ambient viewing environment metadata side data
lance.lmwang at gmail.com
lance.lmwang at gmail.com
Tue Apr 5 12:24:03 EEST 2022
On Tue, Apr 05, 2022 at 11:13:12AM +0200, Anton Khirnov wrote:
> Quoting lance.lmwang at gmail.com (2022-03-28 14:41:08)
> > From: Limin Wang <lance.lmwang at gmail.com>
> >
> > Signed-off-by: Limin Wang <lance.lmwang at gmail.com>
> > ---
> > libavutil/frame.c | 1 +
> > libavutil/frame.h | 6 +++++
> > libavutil/mastering_display_metadata.c | 23 +++++++++++++++++
> > libavutil/mastering_display_metadata.h | 45 ++++++++++++++++++++++++++++++++++
> > 4 files changed, 75 insertions(+)
> >
> > diff --git a/libavutil/frame.c b/libavutil/frame.c
> > index fbb869f..8882da2 100644
> > --- a/libavutil/frame.c
> > +++ b/libavutil/frame.c
> > @@ -815,6 +815,7 @@ const char *av_frame_side_data_name(enum AVFrameSideDataType type)
> > case AV_FRAME_DATA_DETECTION_BBOXES: return "Bounding boxes for object detection and classification";
> > case AV_FRAME_DATA_DOVI_RPU_BUFFER: return "Dolby Vision RPU Data";
> > case AV_FRAME_DATA_DOVI_METADATA: return "Dolby Vision Metadata";
> > + case AV_FRAME_DATA_AMBIENT_VIEWING_ENV: return "Ambient Viewing Environment";
> > }
> > return NULL;
> > }
> > diff --git a/libavutil/frame.h b/libavutil/frame.h
> > index 33fac20..f7b1d4e 100644
> > --- a/libavutil/frame.h
> > +++ b/libavutil/frame.h
> > @@ -209,6 +209,12 @@ enum AVFrameSideDataType {
> > * volume transform - CUVA 005.1-2021.
> > */
> > AV_FRAME_DATA_DYNAMIC_HDR_VIVID,
> > +
> > + /**
> > + * ambient viewing environment for a video frame, as described by
> > + * the AVAmbientViewingEnvMetadata.
> > + */
> > + AV_FRAME_DATA_AMBIENT_VIEWING_ENV,
> > };
> >
> > enum AVActiveFormatDescription {
> > diff --git a/libavutil/mastering_display_metadata.c b/libavutil/mastering_display_metadata.c
> > index 6069347..ba1c80f 100644
> > --- a/libavutil/mastering_display_metadata.c
> > +++ b/libavutil/mastering_display_metadata.c
> > @@ -64,3 +64,26 @@ AVContentLightMetadata *av_content_light_metadata_create_side_data(AVFrame *fram
> >
> > return (AVContentLightMetadata *)side_data->data;
> > }
> > +
> > +AVAmbientViewingEnvMetadata *av_ambient_viewing_env_metadata_alloc(size_t *size)
> > +{
> > + AVAmbientViewingEnvMetadata *metadata = av_mallocz(sizeof(*metadata));
> > +
> > + if (size)
> > + *size = sizeof(*metadata);
> > +
> > + return metadata;
> > +}
> > +
> > +AVAmbientViewingEnvMetadata *av_ambient_viewing_env_metadata_create_side_data(AVFrame *frame)
> > +{
> > + AVFrameSideData *side_data = av_frame_new_side_data(frame,
> > + AV_FRAME_DATA_AMBIENT_VIEWING_ENV,
> > + sizeof(AVAmbientViewingEnvMetadata));
> > + if (!side_data)
> > + return NULL;
> > +
> > + memset(side_data->data, 0, sizeof(AVAmbientViewingEnvMetadata));
> > +
> > + return (AVAmbientViewingEnvMetadata *)side_data->data;
> > +}
> > diff --git a/libavutil/mastering_display_metadata.h b/libavutil/mastering_display_metadata.h
> > index c23b07c..d7598c1 100644
> > --- a/libavutil/mastering_display_metadata.h
> > +++ b/libavutil/mastering_display_metadata.h
> > @@ -125,4 +125,49 @@ AVContentLightMetadata *av_content_light_metadata_alloc(size_t *size);
> > */
> > AVContentLightMetadata *av_content_light_metadata_create_side_data(AVFrame *frame);
>
> The names are horribly long. I would suggest dropping 'metadata' from
> the struct and function names, they'd be shorter and no information is
> really lost.
I'm OK with the suggestion, will update the patch, thanks.
>
> --
> Anton Khirnov
--
Thanks,
Limin Wang
More information about the ffmpeg-devel
mailing list