1. 14 Dec, 2016 5 commits
    • Anton Khirnov's avatar
      972c71e9
    • 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
    • Anton Khirnov's avatar
      lavc: add a null bitstream filter · 47e547b3
      Anton Khirnov authored
      It is useful for testing/debugging and will also be used as the default
      filter in the following commit adding pre-decode filtering to avoid
      having a separate non-filtered codepath.
      47e547b3
    • Anton Khirnov's avatar
      0309ddcf
  2. 12 Dec, 2016 2 commits
  3. 11 Dec, 2016 4 commits
  4. 10 Dec, 2016 4 commits
  5. 09 Dec, 2016 7 commits
  6. 08 Dec, 2016 15 commits
  7. 07 Dec, 2016 3 commits