[FFmpeg-devel] [PATCH 03/23] lavu/frame: add side data storing view ID for multi-view video
James Almer
jamrial at gmail.com
Sun Sep 15 23:35:09 EEST 2024
On 9/14/2024 7:45 AM, Anton Khirnov wrote:
> ---
> doc/APIchanges | 3 +++
> fftools/ffprobe.c | 2 ++
> libavfilter/vf_showinfo.c | 2 ++
> libavutil/frame.c | 1 +
> libavutil/frame.h | 9 +++++++++
> libavutil/version.h | 2 +-
> 6 files changed, 18 insertions(+), 1 deletion(-)
>
> diff --git a/doc/APIchanges b/doc/APIchanges
> index 830a38cd69..189932c99c 100644
> --- a/doc/APIchanges
> +++ b/doc/APIchanges
> @@ -2,6 +2,9 @@ The last version increases of all libraries were on 2024-03-07
>
> API changes, most recent first:
>
> +2024-xx-xx - xxxxxxx - lavu 59.37.100 - frame.h
> + Add AV_FRAME_DATA_VIEW_ID.
> +
> 2024-09-xx - xxxxxxxxxx - lavc 61.13.100 - avcodec.h
> Add avcodec_get_supported_config() and enum AVCodecConfig; deprecate
> AVCodec.pix_fmts, AVCodec.sample_fmts, AVCodec.supported_framerates,
> diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
> index bf5ebe3ce0..14b98d22a1 100644
> --- a/fftools/ffprobe.c
> +++ b/fftools/ffprobe.c
> @@ -2920,6 +2920,8 @@ static void print_frame_side_data(WriterContext *w,
> } else if (sd->type == AV_FRAME_DATA_FILM_GRAIN_PARAMS) {
> AVFilmGrainParams *fgp = (AVFilmGrainParams *)sd->data;
> print_film_grain_params(w, fgp);
> + } else if (sd->type == AV_FRAME_DATA_VIEW_ID) {
> + print_int("view_id", *(int*)sd->data);
> }
> writer_print_section_footer(w);
> }
> diff --git a/libavfilter/vf_showinfo.c b/libavfilter/vf_showinfo.c
> index f81df9d1bf..77082505f5 100644
> --- a/libavfilter/vf_showinfo.c
> +++ b/libavfilter/vf_showinfo.c
> @@ -857,6 +857,8 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
> case AV_FRAME_DATA_AMBIENT_VIEWING_ENVIRONMENT:
> dump_ambient_viewing_environment(ctx, sd);
> break;
> + case AV_FRAME_DATA_VIEW_ID:
> + av_log(ctx, AV_LOG_INFO, "view id: %d\n", *(int*)sd->data);
> default:
> if (name)
> av_log(ctx, AV_LOG_INFO,
> diff --git a/libavutil/frame.c b/libavutil/frame.c
> index 5cbfc6a48b..891909fc2a 100644
> --- a/libavutil/frame.c
> +++ b/libavutil/frame.c
> @@ -46,6 +46,7 @@ static const AVSideDataDescriptor sd_props[] = {
> [AV_FRAME_DATA_DETECTION_BBOXES] = { "Bounding boxes for object detection and classification" },
> [AV_FRAME_DATA_DOVI_RPU_BUFFER] = { "Dolby Vision RPU Data" },
> [AV_FRAME_DATA_DOVI_METADATA] = { "Dolby Vision Metadata" },
> + [AV_FRAME_DATA_VIEW_ID] = { "View ID" },
> [AV_FRAME_DATA_STEREO3D] = { "Stereo 3D", AV_SIDE_DATA_PROP_GLOBAL },
> [AV_FRAME_DATA_REPLAYGAIN] = { "AVReplayGain", AV_SIDE_DATA_PROP_GLOBAL },
> [AV_FRAME_DATA_DISPLAYMATRIX] = { "3x3 displaymatrix", AV_SIDE_DATA_PROP_GLOBAL },
> diff --git a/libavutil/frame.h b/libavutil/frame.h
> index 60bb966f8b..cea1c68df5 100644
> --- a/libavutil/frame.h
> +++ b/libavutil/frame.h
> @@ -228,6 +228,15 @@ enum AVFrameSideDataType {
> * encoding.
> */
> AV_FRAME_DATA_VIDEO_HINT,
> +
> + /**
> + * This side data must be associated with a video frame.
> + * The presence of this side data indicates that the video stream is
> + * composed of multiple views (e.g. stereoscopic 3D content,
> + * cf. H.264 Annex H or H.265 Annex G).
> + * The data is an int storing the view ID.
What is the use case for AVFrame->metadata? What gets written there and
what is expected by library users? Is it documented at all? Because a
single int like this feels like would fit better there rather than as
side data.
> + */
> + AV_FRAME_DATA_VIEW_ID,
> };
>
> enum AVActiveFormatDescription {
> diff --git a/libavutil/version.h b/libavutil/version.h
> index 25a6f5531b..7900379c12 100644
> --- a/libavutil/version.h
> +++ b/libavutil/version.h
> @@ -79,7 +79,7 @@
> */
>
> #define LIBAVUTIL_VERSION_MAJOR 59
> -#define LIBAVUTIL_VERSION_MINOR 36
> +#define LIBAVUTIL_VERSION_MINOR 37
> #define LIBAVUTIL_VERSION_MICRO 100
>
> #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 495 bytes
Desc: OpenPGP digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20240915/3dd27f0c/attachment.sig>
More information about the ffmpeg-devel
mailing list