diff mbox series

[FFmpeg-devel,3/9] lavf: add new struct for data private to generic layer

Message ID 20241013112418.12070-3-anton@khirnov.net
State New
Headers show
Series [FFmpeg-devel,1/9] lavf/internal: remove a prototype for non-existent function | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished

Commit Message

Anton Khirnov Oct. 13, 2024, 11:24 a.m. UTC
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 mbox series

Patch

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;