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>
20 KiB
20 KiB