1. 22 Oct, 2017 1 commit
  2. 08 Sep, 2017 1 commit
  3. 01 Sep, 2017 1 commit
  4. 06 May, 2017 1 commit
  5. 01 May, 2017 1 commit
  6. 29 Apr, 2017 1 commit
  7. 23 Mar, 2017 1 commit
  8. 17 Mar, 2017 1 commit
  9. 16 Mar, 2017 1 commit
  10. 09 Mar, 2017 1 commit
    • wm4's avatar
      aacdec: do not mutate input packet metadata · fcfc78cb
      wm4 authored
      Apparently the demuxer outputs the wrong padding for HE-AAC (based on
      the raw sample rate, or so). aacdec contains a hack to adjust the muxer
      padding accordingly before it's used to trim the decoder output. This
      modified the packet side data, which in combination with the old
      decoding API would change the packet the user passed to the decoder.
      This is clearly not allowed, and it breaks running some gapless fate
      tests with "-fflags +keepside" applied (without keepside, the packet
      metadata is typically newly allocated, essentially making a copy and not
      modifying the user's input packet).
      
      This should probably be fixed in the demuxer (and consequently also the
      muxer), but for now only fix the immediate problem.
      
      Regression since 946ed78f (2012).
      fcfc78cb
  11. 12 Jan, 2017 1 commit
  12. 14 Dec, 2016 3 commits
    • Anton Khirnov's avatar
    • Anton Khirnov's avatar
      decode: restructure the core decoding code · 061a0c14
      Anton Khirnov authored
      Currently, the new decoding API is pretty much just a wrapper around the
      old deprecated one. This is problematic, since it interferes with making
      full use of the flexibility added by the new API. The old API should
      also be removed at some future point.
      
      Reorganize the code so that the new send_packet/receive_frame functions
      call the actual decoding directly and change the old deprecated
      avcodec_decode_* functions into wrappers around the new API.
      
      The new internal API for decoders is now changing as well. Before this
      commit, it mirrors the public API, so the decoders need to implement
      send_packet() and receive_frame() callbacks. This turns out to require
      awkward constructs in both the decoders and the generic code. After this
      commit, the decoders only implement the receive_frame() callback and
      call a new internal function, ff_decode_get_packet() to obtain input
      data, in the same manner to how the bitstream filters now work.
      
      avcodec will now always make a reference to the input packet, which means
      that non-refcounted input packets will be copied. Keeping the previous
      behaviour, where this copy could sometimes be avoided, would make the
      code significantly more complex and fragile for only dubious gains,
      since packets are typically small and everyone who cares about
      performance should use refcounted packets anyway.
      061a0c14
    • Anton Khirnov's avatar
      decode: be more explicit about storing the last packet properties · 549d0bdc
      Anton Khirnov authored
      The current code stores a pointer to the packet passed to the decoder,
      which is then used during get_buffer() for timestamps and side data
      passthrough. However, since this is a pointer to user data which we do
      not own, storing it is potentially dangerous. It is also ill defined for
      the new decoding API with split input/output.
      
      Fix this problem by making an explicit internally owned copy of the
      packet properties.
      549d0bdc
  13. 16 Nov, 2016 1 commit
  14. 01 Oct, 2016 1 commit
    • wm4's avatar
      ffmpeg: move subframe warning to libavcodec · b2fea2fd
      wm4 authored
      With the new decode API, doing this in ffmpeg.c is impractical. There
      was resistance against removing the warning, so put it into libavcodec.
      
      Not bothering with reducing the warning to verbose log level for
      subsequent wanrings. The warning should be rare, and only happen when
      developing new codecs for the old API.
      
      Includes a change suggested by Michael Niedermayer.
      b2fea2fd
  15. 19 Jun, 2016 1 commit
  16. 21 Apr, 2016 2 commits
  17. 23 Mar, 2016 1 commit
    • wm4's avatar
      lavc: introduce a new decoding/encoding API with decoupled input/output · 05f66706
      wm4 authored
      Until now, the decoding API was restricted to outputting 0 or 1 frames
      per input packet. It also enforces a somewhat rigid dataflow in general.
      
      This new API seeks to relax these restrictions by decoupling input and
      output. Instead of doing a single call on each decode step, which may
      consume the packet and may produce output, the new API requires the user
      to send input first, and then ask for output.
      
      For now, there are no codecs supporting this API. The API can work with
      codecs using the old API, and most code added here is to make them
      interoperate. The reverse is not possible, although for audio it might.
      Signed-off-by: 's avatarAnton Khirnov <anton@khirnov.net>
      05f66706
  18. 16 Dec, 2015 1 commit
  19. 08 Dec, 2015 1 commit
  20. 06 Dec, 2015 1 commit
  21. 05 Dec, 2015 1 commit
  22. 17 Nov, 2015 1 commit
  23. 15 Nov, 2015 1 commit
  24. 21 Oct, 2015 1 commit
  25. 02 Oct, 2015 1 commit
  26. 20 Sep, 2015 1 commit
  27. 19 Sep, 2015 1 commit
  28. 12 Sep, 2015 1 commit
    • wm4's avatar
      lavc: allow asynchronous decoders to return correct pkt_dts values · 87a051f9
      wm4 authored
      The generic code in utils.c sets the AVFrame.pkt_dts field from the
      packet it was supposedly decoded. This does not have to be true for a
      fully asynchronous decoder like mmaldec. It could be overwritten with an
      incorrect value. Even if the decoder doesn't determine the DTS (but sets
      it to AV_NOPTS_VALUE), it's impossible to determine a correct value in
      utils.c.
      
      Decoders can now be marked with FF_CODEC_CAP_SETS_PKT_DTS, in which case
      utils.c won't overwrite the field. The decoders are expected to set this
      field (even if they only set it to AV_NOPTS_VALUE).
      Signed-off-by: 's avatarLuca Barbato <lu_zero@gentoo.org>
      87a051f9
  29. 05 Sep, 2015 1 commit
  30. 18 Aug, 2015 1 commit
  31. 04 Aug, 2015 1 commit
  32. 27 Jul, 2015 3 commits
  33. 22 Jul, 2015 1 commit
  34. 16 Jul, 2015 1 commit
  35. 02 Jul, 2015 1 commit