[FFmpeg-cvslog] lavu/frame: add side data storing view ID for multi-view video
Anton Khirnov
git at videolan.org
Mon Sep 23 18:25:20 EEST 2024
ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Sun Aug 6 20:13:47 2017 +0200| [6940a6de2f047ceae414ddebaab30cd9fe35b020] | committer: Anton Khirnov
lavu/frame: add side data storing view ID for multi-view video
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=6940a6de2f047ceae414ddebaab30cd9fe35b020
---
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 2273c3bce7..ca44e8ff2b 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-09-23 - xxxxxxx - lavu 59.38.100 - frame.h
+ Add AV_FRAME_DATA_VIEW_ID.
+
2024-09-23 - xxxxxxxxxx - lavc 61.18.100 - avcodec.h
Add a new flag AV_CODEC_EXPORT_DATA_ENHANCEMENTS for export_side_data.
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 2758f90e27..f0a0dba018 100644
--- a/libavutil/frame.c
+++ b/libavutil/frame.c
@@ -47,6 +47,7 @@ static const AVSideDataDescriptor sd_props[] = {
[AV_FRAME_DATA_DOVI_RPU_BUFFER] = { "Dolby Vision RPU Data" },
[AV_FRAME_DATA_DOVI_METADATA] = { "Dolby Vision Metadata" },
[AV_FRAME_DATA_LCEVC] = { "LCEVC NAL data" },
+ [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 5e0d8ae648..f7806566d5 100644
--- a/libavutil/frame.h
+++ b/libavutil/frame.h
@@ -234,6 +234,15 @@ enum AVFrameSideDataType {
* bytes intact.
*/
AV_FRAME_DATA_LCEVC,
+
+ /**
+ * 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.
+ */
+ AV_FRAME_DATA_VIEW_ID,
};
enum AVActiveFormatDescription {
diff --git a/libavutil/version.h b/libavutil/version.h
index 7900379c12..9afbcafd14 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -79,7 +79,7 @@
*/
#define LIBAVUTIL_VERSION_MAJOR 59
-#define LIBAVUTIL_VERSION_MINOR 37
+#define LIBAVUTIL_VERSION_MINOR 38
#define LIBAVUTIL_VERSION_MICRO 100
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
More information about the ffmpeg-cvslog
mailing list