avformat/internal: Don't include avcodec.h

The general demuxing API uses parsers and decoders. Therefore
FFStream contains pointers to AVCodecContexts and
AVCodecParserContext and lavf/internal.h includes lavc/avcodec.h.

Yet actually only a few files files really use these; and it is best
when this number stays small. Therefore this commit uses opaque
structs in lavf/internal.h for these contexts and stops including
avcodec.h.
This also avoids including lavc/codec_desc.h implicitly. All other
headers are implicitly included as now (mostly through codec.h).

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
Andreas Rheinhardt
2022-09-21 03:03:07 +02:00
parent a02a0e8db4
commit 2b41463b87
21 changed files with 24 additions and 10 deletions

View File

@@ -23,7 +23,6 @@
#include <stdint.h>
#include "libavcodec/avcodec.h"
#include "libavcodec/packet_internal.h"
#include "avformat.h"
@@ -221,7 +220,7 @@ typedef struct FFStream {
/**
* The codec context used by avformat_find_stream_info, the parser, etc.
*/
AVCodecContext *avctx;
struct AVCodecContext *avctx;
/**
* 1 if avctx has been initialized with the values from the codec parameters
*/