summaryrefslogtreecommitdiff
path: root/libavcodec/avcodec.h
Commit message (Collapse)AuthorAge
* avcodec: Rename ff_mpv_decode_mb() to ff_mpv_reconstruct_mbMichael Niedermayer2017-06-19
| | | | | | The new name more accuratly describes what the function does Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* lavc: Add flag to allow profile mismatch with hardware decodingMark Thompson2017-06-14
| | | | (cherry picked from commit 64a5260c695dd8051509d3270295fd64eac56587)
* avcodec: add Gremlin Digital Video decoderPaul B Mahol2017-06-11
| | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* avcodec: add Gremlin DPCM decoderPaul B Mahol2017-06-11
| | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* lavc: add codec ID and description for SVGRostislav Pehlivanov2017-05-16
| | | | Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* avcodec/avcodec: Limit the number of side data elements per packetMichael Niedermayer2017-05-12
| | | | | | | | | Fixes: 1293/clusterfuzz-testcase-minimized-6054752074858496 See: [FFmpeg-devel] [PATCH] avcodec/avcodec: Limit the number of side data elements per packet Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* Merge commit '019ab88a95cb31b698506d90e8ce56695a7f1cc5'James Almer2017-05-08
|\ | | | | | | | | | | | | * commit '019ab88a95cb31b698506d90e8ce56695a7f1cc5': lavc: add an option for exporting cropping information to the caller Merged-by: James Almer <jamrial@gmail.com>
| * lavc: add an option for exporting cropping information to the callerAnton Khirnov2017-01-12
| | | | | | | | | | Also, add generic code for handling cropping, so the decoders can export just the cropping size and not bother with the rest.
| * pthread_frame: do not run hwaccel decoding asynchronously unless it's safeAnton Khirnov2016-12-19
| | | | | | | | | | | | | | | | | | | | Certain hardware decoding APIs are not guaranteed to be thread-safe, so having the user access decoded hardware surfaces while the decoder is running in another thread can cause failures (this is mainly known to happen with DXVA2). For such hwaccels, only allow the decoding thread to run while the user is inside a lavc decode call (avcodec_send_packet/receive_frame).
* | 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
| |
* | Revert "avcodec/bsf: Forbid packet without payload in av_bsf_send_packet"James Almer2017-04-22
| | | | | | | | | | | | | | | | | | This reverts commit bfdca87ab55c7f69087d962dc47aa45c8c6436fb. Packets with no data or side data will be valid EOF signal in an upcoming merge. Signed-off-by: James Almer <jamrial@gmail.com>
* | 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.
| * lavc: Add spherical packet side data APIVittorio Giovara2016-12-07
| | | | | | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* | avcodec: add Screen Recorder Gold Codec decoderPaul B Mahol2017-04-18
| | | | | | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* | avcodec: add Mandsoft Screen Capture Codec decoderPaul B Mahol2017-04-18
| | | | | | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* | avcodec: fix containts typoJames Almer2017-04-06
| |
* | lavc: Add Content Light Level side metadata found in HEVCSteve Lhomme2017-04-06
| | | | | | | | | | | | These data are necessary when transmitting HDR over HDMI. Signed-off-by: James Almer <jamrial@gmail.com>
* | codec: bitpacked: add decoderDamien Riegel2017-04-05
| | | | | | | | | | | | | | | | | | | | | | Add a codec capable of decoding some formats of the RFC4175. For now it's only capable of handling YCbCr-4:2:2 with 8-bit or 10-bit depth. For 8-bit it's a simple pass-through, for 10-bit it depacks the stream in the AV_PIX_FMT_YUV422P10 pixel format. Signed-off-by: Damien Riegel <damien.riegel@savoirfairelinux.com> Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* | lavc: add AV_ prefix to CODEC_CAP_DELAY in doxyClément Bœsch2017-04-04
| |
* | Merge commit 'a1d9de304fe63614e3aa8117fef17491fa80093d'Clément Bœsch2017-04-03
|\| | | | | | | | | | | | | * commit 'a1d9de304fe63614e3aa8117fef17491fa80093d': Fix some mismatches between function parameter and doxygen parameter names. Merged-by: Clément Bœsch <u@pkh.me>
| * Fix some mismatches between function parameter and doxygen parameter names.Diego Biurrun2016-11-21
| |
* | codec_desc: mark some lossless audio codecs as intraonly.Ronald S. Bultje2017-04-03
| | | | | | | | | | | | | | | | | | | | | | | | Fixes tsan warnings in several audio codecs (flac, alac, wavpack, tta and tak) that look like this: WARNING: ThreadSanitizer: data race (pid=14340) Read of size 4 at 0x7d64000169d8 by main thread (mutexes: write M1335): #0 update_context_from_thread src/libavcodec/pthread_frame.c:284 (ffmpeg+0x000000dc795f) [..] Previous write of size 4 at 0x7d64000169d8 by thread T1 (mutexes: write M1333): #0 wavpack_decode_block src/libavcodec/wavpack.c:1012 (ffmpeg+0x00000112b175)
* | Merge commit 'adb0e941c329a4778ade6dd0a326274472992f54'Clément Bœsch2017-04-01
|\| | | | | | | | | | | | | | | | | * commit 'adb0e941c329a4778ade6dd0a326274472992f54': avpacket: Mark src pointer as constant See 5bb3f8825584a319b25b430e4ece2fa5b2b47ff9 Merged-by: Clément Bœsch <u@pkh.me>
| * avpacket: Mark src pointer as constantLuca Barbato2016-11-17
| |
* | lavc: deprecate av_get_codec_tag_string()Clément Bœsch2017-03-29
| |
* | avcodec/avcodec: Correct and make consistent AVERROR() in commentsMichael Niedermayer2017-03-27
| | | | | | | | | | Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | Merge commit '14e7e19a90e9b45db7adeb4d40e7f16aa7404f28'Clément Bœsch2017-03-23
|\| | | | | | | | | | | | | * commit '14e7e19a90e9b45db7adeb4d40e7f16aa7404f28': lavc: bsf: Document input/output codecparam alloc/init process Merged-by: Clément Bœsch <u@pkh.me>
| * lavc: bsf: Document input/output codecparam alloc/init processVittorio Giovara2016-10-12
| |
* | Merge commit 'b8d5070db6313f985562865edcfd08a01c2d7503'Clément Bœsch2017-03-23
|\| | | | | | | | | | | | | * commit 'b8d5070db6313f985562865edcfd08a01c2d7503': avcodec: Document AV_PKT_DATA_PALETTE side data type Merged-by: Clément Bœsch <u@pkh.me>
| * avcodec: Document AV_PKT_DATA_PALETTE side data typeVittorio Giovara2016-10-02
| |
| * avcodec: Add the extended pixel format profile for HEVCYogender Gupta2016-09-19
| | | | | | | | | | | | It is supported by the NVIDIA video SDK 7. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* | lavc: Add hwaccel_flags field to AVCodecContextwm42017-03-23
| | | | | | | | | | | | | | | | | | | | | | | | This "reuses" the flags introduced for the av_vdpau_bind_context() API function, and makes them available to all hwaccels. This does not affect the current vdpau API, as av_vdpau_bind_context() should obviously override the AVCodecContext.hwaccel_flags flags for the sake of compatibility. Cherry-picked from Libav commit 16a163b5. Reviewed-by: Mark Thompson <sw@jkqxz.net>
* | avcodec/avcodec.h: clarify decoupled decode/encode API docsMarton Balint2017-03-22
| | | | | | | | | | Reviewed-by: wm4 <nfxjfg@googlemail.com> Signed-off-by: Marton Balint <cus@passwd.hu>
* | pthread_frame: do not run hwaccel decoding asynchronously unless it's safeAnton Khirnov2017-03-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Certain hardware decoding APIs are not guaranteed to be thread-safe, so having the user access decoded hardware surfaces while the decoder is running in another thread can cause failures (this is mainly known to happen with DXVA2). For such hwaccels, only allow the decoding thread to run while the user is inside a lavc decode call (avcodec_send_packet/receive_frame). Merges Libav commit d4a91e65. Signed-off-by: wm4 <nfxjfg@googlemail.com> Tested-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec, avformat: deprecate anything related to side data mergingwm42017-03-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch deprecates anything that has to do with merging/splitting side data. Automatic side data merging (and splitting), as well as all API symbols involved in it, are removed completely. Two FF_API_ defines are dedicated to deprecating API symbols related to this: FF_API_MERGE_SD_API removes av_packet_split/merge_side_data in libavcodec, and FF_API_LAVF_KEEPSIDE_FLAG deprecates AVFMT_FLAG_KEEP_SIDE_DATA in libavformat. Since it was claimed that changing the default from merging side data to not doing it is an ABI change, there are two additional FF_API_ defines, which stop using the side data merging/splitting by default (and remove any code in avformat/avcodec doing this): FF_API_MERGE_SD in libavcodec, and FF_API_LAVF_MERGE_SD in libavformat. It is very much intended that FF_API_MERGE_SD and FF_API_LAVF_MERGE_SD are quickly defined to 0 in the next ABI bump, while the API symbols are retained for a longer time for the sake of compatibility. AVFMT_FLAG_KEEP_SIDE_DATA will (very much intentionally) do nothing for most of the time it will still be defined. Keep in mind that no code exists that actually tries to unset this flag for any reason, nor does such code need to exist. Code setting this flag explicitly will work as before. Thus it's ok for AVFMT_FLAG_KEEP_SIDE_DATA to do nothing once side data merging has been removed from libavformat. In order to avoid that anyone in the future does this incorrectly, here is a small guide how to update the internal code on bumps: - next ABI bump (probably soon): - define FF_API_LAVF_MERGE_SD to 0, and remove all code covered by it - define FF_API_MERGE_SD to 0, and remove all code covered by it - next API bump (typically two years in the future or so): - define FF_API_LAVF_KEEPSIDE_FLAG to 0, and remove all code covered by it - define FF_API_MERGE_SD_API to 0, and remove all code covered by it This forces anyone who actually wants packet side data to temporarily use deprecated API to get it all. If you ask me, this is batshit fucked up crazy, but it's how we roll. Making AVFMT_FLAG_KEEP_SIDE_DATA to be set by default was rejected as an ABI change, so I'm going all the way to get rid of this once and for all. Reviewed-by: James Almer <jamrial@gmail.com> Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com> Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
* | Merge commit 'd42809f9835a4e9e5c7c63210abb09ad0ef19cfb'Clément Bœsch2017-03-19
|\| | | | | | | | | | | | | * commit 'd42809f9835a4e9e5c7c63210abb09ad0ef19cfb': av1: Add codec_id and basic demuxing support Merged-by: Clément Bœsch <u@pkh.me>
| * av1: Add codec_id and basic demuxing supportLuca Barbato2016-08-24
| | | | | | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* | lavc/avcodec: Constify AVBitStreamFilter* in AVBitStreamFilterContext struct.Carl Eugen Hoyos2017-03-17
| | | | | | | | | | Fixes a gcc warning: libavcodec/bitstream_filter.c:71:20: warning: assignment discards 'const' qualifier from pointer target type
* | lavc/avpacket: Make pkt parameter of av_packet_get_side_data() const.Carl Eugen Hoyos2017-03-16
| | | | | | | | | | Reflects the actual code and silences a gcc warning: libavcodec/utils.c:2102:36: warning: passing argument 1 of 'av_packet_get_side_data' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
* | avcodec: add XPM decoder and demuxerParas Chadha2017-03-12
| | | | | | | | Signed-off-by: Paras Chadha <paraschadha18@gmail.com>
* | avcodec: clarify some decoding/encoding API detailswm42017-03-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make it clear that there is no timing-dependent behavior. In particular, there is no state in which both input and output are denied, and where you have to wait for a while yourself to make progress (apparently some hardware decoders like to do this). Avoid wording that makes references to time. It shouldn't be mistaken for some kind of asynchronous API (like POSIX read() can return EAGAIN if there is no new input yet). It's a state machine, so try to use appropriate terms. Signed-off-by: Diego Biurrun <diego@biurrun.de> Merges Libav commit 8a60bba0ae.
* | avcodec: add ClearVideo decoderKostya Shishkov2017-03-02
| | | | | | | | | | | | Only I-frames are decoded for now. Signed-off-by: Paul B Mahol <onemda@gmail.com>
* | avcodec, avutil, avformat: remove AVOption requirement for some fieldswm42017-03-02
| | | | | | | | | | | | | | | | | | | | Allow all struct fields to be accessed directly, as long as they're public. Before this change, many fields were "public", but could be accessed via AVOption only. This meant they were effectively not public, but were present for documentation purposes, which was incredibly confusing at best.
* | avcodec: add ScreenPressor decoderPaul B Mahol2017-02-22
| | | | | | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* | lavc: Add device context field to AVCodecContextMark Thompson2017-02-13
| | | | | | | | For use by codec implementations which can allocate frames internally.
* | avcodec: add FM Screen Capture Codec decoderPaul B Mahol2017-02-12
| | | | | | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* | avcodec: add ATRAC Advanced Lossless decodersPaul B Mahol2017-02-11
| | | | | | | | | | | | Only lossy part is decoded for now. Signed-off-by: Paul B Mahol <onemda@gmail.com>
* | avcodec/avcodec: fix lil typo in commentAleksandr Slobodeniuk2017-01-19
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>