diff mbox series

[FFmpeg-devel,3/3] avformat/internal: Hide BSF stuff only used by the core APIs

Message ID DB6PR0101MB2214D5928371FA1CA9A110998FC99@DB6PR0101MB2214.eurprd01.prod.exchangelabs.com
State Accepted
Commit 439ca8b5f4e3488ab9b5e8398e0d706c94d4357a
Headers show
Series [FFmpeg-devel] avcodec/internal: Hide stuff only used by the core decode API | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Andreas Rheinhardt May 10, 2022, 7:33 a.m. UTC
The general demuxing API uses bitstream filters to extract extradata
and the muxing API uses them in order to transform packets into
the format desired by the target format. Therefore FFStream contains
pointers to AVBSFContexts and lavf/internal.h includes lavc/bsf.h.

Yet actually, only a few files files are supposed to use these,
namely avformat.c, demux.c and mux.c. For all the other files,
it should be an opaque type that they should not touch and that
they need not know anything about. This can be achieved by not
including these headers and using the structs instead of the
corresponding typedefs.
This also forces translation units that really use the BSF API
themselves to include lavc/bsf.h directly instead of relying on
indirect inclusions (a few other files also use the BSF API;
they already abided by this).
Of course, it also avoids unnecessary rebuilds when bsf.h changes.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
 libavformat/internal.h | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)
diff mbox series

Patch

diff --git a/libavformat/internal.h b/libavformat/internal.h
index 5363c0c355..b6b8fbf56f 100644
--- a/libavformat/internal.h
+++ b/libavformat/internal.h
@@ -24,7 +24,6 @@ 
 #include <stdint.h>
 
 #include "libavcodec/avcodec.h"
-#include "libavcodec/bsf.h"
 #include "libavcodec/packet_internal.h"
 
 #include "avformat.h"
@@ -212,7 +211,7 @@  typedef struct FFStream {
      * - encoding: Set by muxer using ff_stream_add_bitstream_filter
      * - decoding: unused
      */
-    AVBSFContext *bsfc;
+    struct AVBSFContext *bsfc;
 
     /**
      * Whether or not check_bitstream should still be run on each packet
@@ -232,7 +231,7 @@  typedef struct FFStream {
      * inited=1/bsf=NULL signals that extracting is not possible (codec not
      * supported) */
     struct {
-        AVBSFContext *bsf;
+        struct AVBSFContext *bsf;
         int inited;
     } extract_extradata;