aboutsummaryrefslogtreecommitdiffstats
path: root/libavformat/avformat.h
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2024-08-20 13:56:48 -0300
committerJames Almer <jamrial@gmail.com>2024-09-19 10:01:02 -0300
commitba0ef0860f0018c6e8fda7b378d69b011575fdaf (patch)
tree1d896bbdbad665cb6ca7a7c8a788948033966389 /libavformat/avformat.h
parent58963182294cfcb2c6a87a1b870b336a3ed55f36 (diff)
downloadffmpeg-ba0ef0860f0018c6e8fda7b378d69b011575fdaf.tar.gz
avformat: add an LCEVC stream group
Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavformat/avformat.h')
-rw-r--r--libavformat/avformat.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index 4a3fb00529..56c1c80289 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -1084,11 +1084,37 @@ typedef struct AVStreamGroupTileGrid {
int height;
} AVStreamGroupTileGrid;
+/**
+ * AVStreamGroupLCEVC is meant to define the relation between video streams
+ * and a data stream containing LCEVC enhancement layer NALUs.
+ *
+ * No more than one stream of @ref AVCodecParameters.codec_type "codec_type"
+ * AVMEDIA_TYPE_DATA shall be present, and it must be of
+ * @ref AVCodecParameters.codec_id "codec_id" AV_CODEC_ID_LCEVC.
+ */
+typedef struct AVStreamGroupLCEVC {
+ const AVClass *av_class;
+
+ /**
+ * Index of the LCEVC data stream in AVStreamGroup.
+ */
+ unsigned int lcevc_index;
+ /**
+ * Width of the final stream for presentation.
+ */
+ int width;
+ /**
+ * Height of the final image for presentation.
+ */
+ int height;
+} AVStreamGroupLCEVC;
+
enum AVStreamGroupParamsType {
AV_STREAM_GROUP_PARAMS_NONE,
AV_STREAM_GROUP_PARAMS_IAMF_AUDIO_ELEMENT,
AV_STREAM_GROUP_PARAMS_IAMF_MIX_PRESENTATION,
AV_STREAM_GROUP_PARAMS_TILE_GRID,
+ AV_STREAM_GROUP_PARAMS_LCEVC,
};
struct AVIAMFAudioElement;
@@ -1130,6 +1156,7 @@ typedef struct AVStreamGroup {
struct AVIAMFAudioElement *iamf_audio_element;
struct AVIAMFMixPresentation *iamf_mix_presentation;
struct AVStreamGroupTileGrid *tile_grid;
+ struct AVStreamGroupLCEVC *lcevc;
} params;
/**