aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2024-10-13 10:13:46 +0200
committerAnton Khirnov <anton@khirnov.net>2024-10-16 16:29:12 +0200
commit772911d3a8bbc16c34fa9558e15b86b2fa2619a5 (patch)
tree9fdc1698387886b5715a5a883d034020fae10019
parent461a359abce7958cdd9cb4961ad9070118300258 (diff)
downloadffmpeg-772911d3a8bbc16c34fa9558e15b86b2fa2619a5.tar.gz
lavf: add new struct for data private to generic layer
Trivial for now, will become more useful in future commits, as many fields from FFFormatContext should not be visible to individual (de)muxers.
-rw-r--r--libavformat/avformat_internal.h10
-rw-r--r--libavformat/options.c7
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;