[FFmpeg-devel] [PATCH v3 1/2] libavutil/frame: Introduce a new AV_FRAME_DATA_PRFT
Clément Péron
peron.clem at gmail.com
Fri Dec 6 15:49:17 EET 2024
This will be used to propagate the Producer Reference Timestamp.
Signed-off-by: Clément Péron <peron.clem at gmail.com>
---
libavcodec/decode.c | 1 +
libavfilter/f_sidedata.c | 1 +
libavutil/frame.c | 1 +
libavutil/frame.h | 5 +++++
4 files changed, 8 insertions(+)
diff --git a/libavcodec/decode.c b/libavcodec/decode.c
index 3380cb27cf..c00e7a62fc 100644
--- a/libavcodec/decode.c
+++ b/libavcodec/decode.c
@@ -1523,6 +1523,7 @@ int ff_decode_frame_props_from_pkt(const AVCodecContext *avctx,
{ AV_PKT_DATA_S12M_TIMECODE, AV_FRAME_DATA_S12M_TIMECODE },
{ AV_PKT_DATA_SKIP_SAMPLES, AV_FRAME_DATA_SKIP_SAMPLES },
{ AV_PKT_DATA_LCEVC, AV_FRAME_DATA_LCEVC },
+ { AV_PKT_DATA_PRFT, AV_FRAME_DATA_PRFT },
{ AV_PKT_DATA_NB }
};
diff --git a/libavfilter/f_sidedata.c b/libavfilter/f_sidedata.c
index 23dffec803..c5691a1030 100644
--- a/libavfilter/f_sidedata.c
+++ b/libavfilter/f_sidedata.c
@@ -81,6 +81,7 @@ static const AVOption filt_name##_options[] = { \
{ "DYNAMIC_HDR_VIVID", "", 0, AV_OPT_TYPE_CONST, {.i64 = AV_FRAME_DATA_DYNAMIC_HDR_VIVID }, 0, 0, FLAGS, .unit = "type" }, \
{ "AMBIENT_VIEWING_ENVIRONMENT","", 0, AV_OPT_TYPE_CONST, {.i64 = AV_FRAME_DATA_AMBIENT_VIEWING_ENVIRONMENT}, 0, 0, FLAGS, .unit = "type" }, \
{ "VIDEO_HINT", "", 0, AV_OPT_TYPE_CONST, {.i64 = AV_FRAME_DATA_VIDEO_HINT }, 0, 0, FLAGS, .unit = "type" }, \
+ { "PRFT", "", 0, AV_OPT_TYPE_CONST, {.i64 = AV_FRAME_DATA_PRFT }, 0, 0, FLAGS, .unit = "type" }, \
{ NULL } \
}
diff --git a/libavutil/frame.c b/libavutil/frame.c
index f0a0dba018..8cfd21df5b 100644
--- a/libavutil/frame.c
+++ b/libavutil/frame.c
@@ -48,6 +48,7 @@ static const AVSideDataDescriptor sd_props[] = {
[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_PRFT] = { "Producer time reference" },
[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 f7806566d5..25657e153f 100644
--- a/libavutil/frame.h
+++ b/libavutil/frame.h
@@ -243,6 +243,11 @@ enum AVFrameSideDataType {
* The data is an int storing the view ID.
*/
AV_FRAME_DATA_VIEW_ID,
+
+ /**
+ * Producer time reference data in the form of the AVProducerReferenceTime struct.
+ */
+ AV_FRAME_DATA_PRFT,
};
enum AVActiveFormatDescription {
--
2.47.1
More information about the ffmpeg-devel
mailing list