[FFmpeg-devel] [PATCH 3/9] lavf: add new struct for data private to generic layer
Anton Khirnov
anton at khirnov.net
Sun Oct 13 14:24:12 EEST 2024
Trivial for now, will become more useful in future commits, as many
fields from FFFormatContext should not be visible to individual
(de)muxers.
---
libavformat/avformat_internal.h | 10 ++++++++++
libavformat/options.c | 7 +++++--
2 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/libavformat/avformat_internal.h b/libavformat/avformat_internal.h
index a1079fe122..ef7409658e 100644
--- a/libavformat/avformat_internal.h
+++ b/libavformat/avformat_internal.h
@@ -28,6 +28,16 @@
#include <stdint.h>
#include "avformat.h"
+#include "internal.h"
+
+typedef struct FormatContextInternal {
+ FFFormatContext fc;
+} FormatContextInternal;
+
+static av_always_inline FormatContextInternal *ff_fc_internal(AVFormatContext *s)
+{
+ return (FormatContextInternal*)s;
+}
#define RELATIVE_TS_BASE (INT64_MAX - (1LL << 48))
diff --git a/libavformat/options.c b/libavformat/options.c
index 10d6ce2d35..9e4fd5f8b2 100644
--- a/libavformat/options.c
+++ b/libavformat/options.c
@@ -161,12 +161,15 @@ static int io_close2_default(AVFormatContext *s, AVIOContext *pb)
AVFormatContext *avformat_alloc_context(void)
{
- FFFormatContext *const si = av_mallocz(sizeof(*si));
+ FormatContextInternal *fci;
+ FFFormatContext *si;
AVFormatContext *s;
- if (!si)
+ fci = av_mallocz(sizeof(*fci));
+ if (!fci)
return NULL;
+ si = &fci->fc;
s = &si->pub;
s->av_class = &av_format_context_class;
s->io_open = io_open_default;
--
2.43.0
More information about the ffmpeg-devel
mailing list