• Andreas Rheinhardt's avatar
    avcodec/internal: Hide stuff only used by the core decode API · c19797bf
    Andreas Rheinhardt authored
    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: 's avatarAndreas Rheinhardt <andreas.rheinhardt@outlook.com>
    c19797bf
decode.c 55.7 KB