summaryrefslogtreecommitdiff
path: root/libavcodec/decode.h
Commit message (Collapse)AuthorAge
* Merge commit '554e55bbf0e4a3640a784cb512b816e776c56333'Clément Bœsch2017-04-26
|\ | | | | | | | | | | | | * commit '554e55bbf0e4a3640a784cb512b816e776c56333': decode.h: Add missing headers to fix standalone compilation Merged-by: Clément Bœsch <u@pkh.me>
| * decode.h: Add missing headers to fix standalone compilationDiego Biurrun2016-12-14
| |
* | Merge commit '972c71e9cb63e24f57ee481e413199c7d88a8813'James Almer2017-04-22
|\| | | | | | | | | | | | | * commit '972c71e9cb63e24f57ee481e413199c7d88a8813': lavc: add support for filtering packets before decoding Merged-by: James Almer <jamrial@gmail.com>
| * lavc: add support for filtering packets before decodingAnton Khirnov2016-12-14
| |
* | Merge commit '061a0c14bb5767bca72e3a7227ca400de439ba09'James Almer2017-04-22
|/ | | | | | | | | * commit '061a0c14bb5767bca72e3a7227ca400de439ba09': decode: restructure the core decoding code CUVID decoder adapted by wm4. Merged-by: James Almer <jamrial@gmail.com>
* decode: restructure the core decoding codeAnton Khirnov2016-12-14
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.