Skip to content
Snippets Groups Projects
  1. Aug 02, 2018
  2. Feb 23, 2016
    • Anton Khirnov's avatar
      lavf: replace AVStream.codec with AVStream.codecpar · 9200514a
      Anton Khirnov authored
      Currently, AVStream contains an embedded AVCodecContext instance, which
      is used by demuxers to export stream parameters to the caller and by
      muxers to receive stream parameters from the caller. It is also used
      internally as the codec context that is passed to parsers.
      
      In addition, it is also widely used by the callers as the decoding (when
      demuxer) or encoding (when muxing) context, though this has been
      officially discouraged since Libav 11.
      
      There are multiple important problems with this approach:
          - the fields in AVCodecContext are in general one of
              * stream parameters
              * codec options
              * codec state
            However, it's not clear which ones are which. It is consequently
            unclear which fields are a demuxer allowed to set or a muxer allowed to
            read. This leads to erratic behaviour depending on whether decoding or
            encoding is being performed or not (and whether it uses the AVStream
            embedded codec context).
          - various synchronization issues arising from the fact that the same
            context is used by several different APIs (muxers/demuxers,
            parsers, bitstream filters and encoders/decoders) simultaneously, with
            there being no clear rules for who can modify what and the different
            processes being typically delayed with respect to each other.
          - avformat_find_stream_info() making it necessary to support opening
            and closing a single codec context multiple times, thus
            complicating the semantics of freeing various allocated objects in the
            codec context.
      
      Those problems are resolved by replacing the AVStream embedded codec
      context with a newly added AVCodecParameters instance, which stores only
      the stream parameters exported by the demuxers or read by the muxers.
      9200514a
  3. Oct 26, 2015
  4. Aug 15, 2014
  5. May 04, 2013
  6. Mar 21, 2013
  7. Mar 11, 2013
  8. Aug 07, 2012
  9. Jul 30, 2012
  10. Jul 29, 2012
    • Anton Khirnov's avatar
      lavf: deprecate r_frame_rate. · aba232cf
      Anton Khirnov authored
      According to its description, it is supposed to be the LCM of all the
      frame durations. The usability of such a thing is vanishingly small,
      especially since we cannot determine it with any amount of reliability.
      Therefore get rid of it after the next bump.
      
      Replace it with the average framerate where it makes sense.
      
      FATE results for the wtv and xmv demux tests change. In the wtv case
      this is caused by the file being corrupted (or possibly badly cut) and
      containing invalid timestamps. This results in lavf estimating the
      framerate wrong and making up wrong frame durations.
      In the xmv case the file contains pts jumps, so again the estimated
      framerate is far from anything sane and lavf again makes up different
      frame durations.
      
      In some other tests lavf starts making up frame durations from different
      frame.
      aba232cf
  11. Mar 02, 2012
  12. Feb 15, 2012
  13. Jan 27, 2012
  14. Oct 19, 2011
  15. Oct 10, 2011
  16. Oct 01, 2011
  17. Jul 17, 2011
  18. Mar 19, 2011
  19. Mar 17, 2011
  20. Mar 05, 2011
  21. Mar 04, 2011
  22. Mar 03, 2011
  23. Mar 01, 2011
  24. Feb 22, 2011
  25. Feb 21, 2011
  26. Jan 28, 2011
  27. Jan 26, 2011
  28. Mar 31, 2010
  29. Mar 30, 2010
  30. Dec 11, 2008
  31. Sep 08, 2008
  32. Jun 03, 2008
  33. May 13, 2008
  34. Nov 21, 2007
  35. Jul 19, 2007
  36. Jul 05, 2007
Loading