Hi,
The Time Has Come.

For those who forgot what TEP2 is, a short summary:
1) AVCodecContext is a struct that stores
    * stream parameters
    * decoder or encoder options
    * decoder or encoder state
2) AVCodecContext is used by the demuxers to export stream parameters and
   by the muxers to receive stream parameters from the caller
3) AVCodecContext is also used by parsers and bitstream filters for
   undocumented and not well specified purposes
4) until recently, it has been common practice to use the AVCodecContext
   embedded in AVStream for all of the above cases, which results in an
   immense mess, where different components do various not well defined
   things to one shared struct

Since all the components except the encoders/decoders only need the
stream parameters, the solution is to add a new structure that stores
only those and that will replace AVCodecContext everywhere except for
actual encoding/decoding. In the upcoming set, this is done for lavf
only, with parsers and bitstream filters hopefully following later.

To simplify review, I will send the set in smallish batches. This one
contains some preparatory work.

-- 
Anton Khirnov
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to