summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-05-09 22:30:11 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-05-12 08:52:59 +0200
commitc19797bf59f0541d6915dab7c1568d5311757d9d (patch)
treeebc9be651907ec50d5ceecdf438046b22fdd8598 /libavcodec
parente92e74b89766146869f2ffe44b85b63fd39a3b66 (diff)
avcodec/internal: Hide stuff only used by the core decode API
The general decoding API uses bitstream filters and an AVFifo and therefore AVCodecInternal contains pointers to an AVBSFContext and to an AVFifo and lavc/internal.h includes lavc/bsf.h and lavu/fifo.h. Yet actually, only two files are supposed to use these, namely avcodec.c and (mainly) decode.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 and the FIFO APIs themselves to include the relevant headers directly instead of relying on indirect inclusions (up until now, even avcodec.c and decode.c relied on fifo.h to be included by internal.h). Of course, it also avoids unnecessary rebuilds when bsf.h or fifo.h change. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/avcodec.c1
-rw-r--r--libavcodec/cuviddec.c1
-rw-r--r--libavcodec/decode.c1
-rw-r--r--libavcodec/internal.h6
-rw-r--r--libavcodec/libvpxenc.c1
5 files changed, 6 insertions, 4 deletions
diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c
index e8fff48e5d..5f6e71a39e 100644
--- a/libavcodec/avcodec.c
+++ b/libavcodec/avcodec.c
@@ -28,6 +28,7 @@
#include "libavutil/avstring.h"
#include "libavutil/bprint.h"
#include "libavutil/channel_layout.h"
+#include "libavutil/fifo.h"
#include "libavutil/imgutils.h"
#include "libavutil/mem.h"
#include "libavutil/opt.h"
diff --git a/libavcodec/cuviddec.c b/libavcodec/cuviddec.c
index 81d4c89215..cb3cda7e24 100644
--- a/libavcodec/cuviddec.c
+++ b/libavcodec/cuviddec.c
@@ -34,6 +34,7 @@
#include "libavutil/pixdesc.h"
#include "avcodec.h"
+#include "bsf.h"
#include "codec_internal.h"
#include "decode.h"
#include "hwconfig.h"
diff --git a/libavcodec/decode.c b/libavcodec/decode.c
index 264fc66a81..1893caa6a6 100644
--- a/libavcodec/decode.c
+++ b/libavcodec/decode.c
@@ -32,6 +32,7 @@
#include "libavutil/bprint.h"
#include "libavutil/channel_layout.h"
#include "libavutil/common.h"
+#include "libavutil/fifo.h"
#include "libavutil/frame.h"
#include "libavutil/hwcontext.h"
#include "libavutil/imgutils.h"
diff --git a/libavcodec/internal.h b/libavcodec/internal.h
index 2fa56d3a59..17e1de8127 100644
--- a/libavcodec/internal.h
+++ b/libavcodec/internal.h
@@ -28,11 +28,9 @@
#include "libavutil/buffer.h"
#include "libavutil/channel_layout.h"
-#include "libavutil/fifo.h"
#include "libavutil/mathematics.h"
#include "libavutil/pixfmt.h"
#include "avcodec.h"
-#include "bsf.h"
#include "config.h"
#define FF_SANE_NB_CHANNELS 512U
@@ -73,14 +71,14 @@ typedef struct AVCodecInternal {
* avcodec_flush_buffers().
*/
AVPacket *in_pkt;
- AVBSFContext *bsf;
+ struct AVBSFContext *bsf;
/**
* Properties (timestamps+side data) extracted from the last packet passed
* for decoding.
*/
AVPacket *last_pkt_props;
- AVFifo *pkt_props;
+ struct AVFifo *pkt_props;
/**
* temporary buffer used for encoders to store their bitstream
diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c
index e35b47b87e..187a9e9a36 100644
--- a/libavcodec/libvpxenc.c
+++ b/libavcodec/libvpxenc.c
@@ -42,6 +42,7 @@
#include "libavutil/base64.h"
#include "libavutil/common.h"
#include "libavutil/cpu.h"
+#include "libavutil/fifo.h"
#include "libavutil/internal.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/mathematics.h"