summaryrefslogtreecommitdiff
path: root/libavcodec/version.h
Commit message (Collapse)AuthorAge
* 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>
* videotoolbox: add hwcontext supportwm42017-05-15
| | | | | | | | | | | | | | | | | | This adds tons of code for no other benefit than making VideoToolbox support conform with the new hwaccel API (using hw_device_ctx and hw_frames_ctx). Since VideoToolbox decoding does not actually require the user to allocate frames, the new code does mostly nothing. One benefit is that ffmpeg_videotoolbox.c can be dropped once generic hwaccel support for ffmpeg.c is merged from Libav. Does not consider VDA or VideoToolbox encoding. Fun fact: the frame transfer functions are copied from vaapi, as the mapping makes copying generic boilerplate. Mapping itself is not exported by the VT code, because I don't know how to test.
* avcodec/nvenc: add weighted prediction supportSumit Agarwal2017-05-10
| | | | Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* 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.
* | Merge commit 'b68e353136db6f963212c457281d9716516cdc59'Clément Bœsch2017-05-05
|\| | | | | | | | | | | | | * commit 'b68e353136db6f963212c457281d9716516cdc59': qsvdec: do not sync PIX_FMT_QSV surfaces Merged-by: Clément Bœsch <cboesch@gopro.com>
| * qsvdec: do not sync PIX_FMT_QSV surfacesAnton Khirnov2017-01-12
| | | | | | | | | | | | | | | | | | | | Introducing enforced sync points in arbitrary places is bad for performance. Since the vast majority of receiving code (QSV VPP or encoders, retrieving frames through hwcontext) will do the syncing, this change should not be visible to most callers. But bumping micro just in case. This is also consistent with what VAAPI hwaccel does.
| * dxva2: allow an empty array of ID3D11VideoDecoderOutputViewSteve Lhomme2017-01-12
| | | | | | | | | | | | | | We can pick the correct slice index directly from the ID3D11VideoDecoderOutputView casted from data[3]. Signed-off-by: Anton Khirnov <anton@khirnov.net>
| * hevcdec: add a VAAPI hwaccelAnton Khirnov2016-12-19
| | | | | | | | | | Partially based on a patch by Timo Rothenpieler <timo@rothenpieler.org>. Additional scaling list handling fix by Jun Zhao <mypopydev@gmail.com>.
| * 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).
| * lavc: Add spherical packet side data APIVittorio Giovara2016-12-07
| | | | | | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
| * lavc: Add hevc main10 profile to avconv cliVittorio Giovara2016-11-08
| |
* | cuvid: support AVCodecContext.hw_device_ctx APIwm42017-05-05
| | | | | | | | | | | | | | | | | | | | | | This is a newer API that is intended for decoders like the cuvid wrapper. Until now, the wrapper required to set an awkward "incomplete" hw_frames_ctx to set the device. Now the device can be set directly, and the user can get AV_PIX_FMT_CUDA output for a specific device simply by setting hw_device_ctx. This still does a dummy ff_get_format() call at init time, and should be fully backward compatible.
* | avcodec: add Screen Recorder Gold Codec decoderPaul B Mahol2017-04-18
| | | | | | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* | 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>
* | Bump versions for master after 3.3Michael Niedermayer2017-04-02
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | Bump minor for 3.3Michael Niedermayer2017-04-02
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | Bump minor versions for master after release/3.3 branchpointMichael Niedermayer2017-03-31
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | Bump minor versions for staring release/3.3 branchMichael Niedermayer2017-03-31
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | Merge commit '17dac56b8fdd80c594c39b76de3f27a7949afbde'Clément Bœsch2017-03-31
|\| | | | | | | | | | | | | * commit '17dac56b8fdd80c594c39b76de3f27a7949afbde': lavu: Rename ycgco color space appropriately Merged-by: Clément Bœsch <cboesch@gopro.com>
| * lavu: Rename ycgco color space appropriatelyVittorio Giovara2016-11-08
| | | | | | | | | | | | Planes are ordered as the name suggests now. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
| * libx265: Add option to force IDR framesDerek Buitenhuis2016-11-07
| | | | | | | | | | | | | | This is in the same the same vein as 380146924ecad2e05e9dcc5c3c2e1b5ba47c51e8. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com> Signed-off-by: Martin Storsjö <martin@martin.st>
* | lavc: deprecate av_get_codec_tag_string()Clément Bœsch2017-03-29
| |
* | Merge commit '0d9b9bd37f43ee29ad9f709d85c8f3be9db71104'Clément Bœsch2017-03-24
|\| | | | | | | | | | | | | * commit '0d9b9bd37f43ee29ad9f709d85c8f3be9db71104': lavu: Add JEDEC P22 color primaries Merged-by: Clément Bœsch <u@pkh.me>
| * lavu: Add JEDEC P22 color primariesVittorio Giovara2016-10-21
| |
* | Merge commit '89b35a139e838deeb32ec20d8d034c81014401d0'James Almer2017-03-23
|\| | | | | | | | | | | | | * commit '89b35a139e838deeb32ec20d8d034c81014401d0': lavc: add a bitstream filter for extracting extradata from packets Merged-by: James Almer <jamrial@gmail.com>
| * lavc: add a bitstream filter for extracting extradata from packetsAnton Khirnov2016-10-16
| | | | | | | | | | This is intended as a replacement for the 'split' function exported by some parsers.
| * d3d11va: Use the proper decoding slice indexSteve Lhomme2016-10-05
| | | | | | | | | | | | | | | | | | | | | | | | The decoding buffer index expected by D3D11VA is the one from the ID3D11Texture2D not the one from the ID3D11VideoDecoderOutputView array in AVD3D11VAContext. Otherwise, when providing decoder slices that do not start from 0, pictures appear in bogus order. For an invalid index crashes and image corruption can occur. Signed-off-by: Diego Biurrun <diego@biurrun.de>
| * nvenc: Extended rate-control support as provided by SDK 7Yogender Gupta2016-09-24
| | | | | | | | | | Signed-off-by: Luca Barbato <lu_zero@gentoo.org> Signed-off-by: Diego Biurrun <diego@biurrun.de>
| * 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: Remove old vaapi decode infrastructureMark Thompson2016-08-30
| | | | | | | | | | Deprecates struct vaapi_context and the installed header vaapi.h, to be removed at the next version bump.
| * Add an OpenH264 decoder wrapperMartin Storsjö2016-06-28
| | | | | | | | | | | | | | | | While it is less featureful (and slower) than the built-in H264 decoder, one could potentially want to use it to take advantage of the cisco patent license offer. Signed-off-by: Martin Storsjö <martin@martin.st>
* | avcodec/nvenc: Deprecate usage of global_quality, introducing qpTimo Rothenpieler2017-03-23
| |
* | lavc: vdpau: Add support for new hw_frames_ctx and hw_device_ctx APIwm42017-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This supports retrieving the device from a provided hw_frames_ctx, and automatically creating a hw_frames_ctx if hw_device_ctx is set. The old API is not deprecated yet. The user can still use av_vdpau_bind_context() (with or without setting hw_frames_ctx), or use the API before that by allocating and setting hwaccel_context manually. Cherry-picked from Libav commit 1a7ddba5. (Adds missing APIchanges entry to the Libav version.) Reviewed-by: Mark Thompson <sw@jkqxz.net>
* | 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>
* | vaapi: Implement device-only setupMark Thompson2017-03-22
| | | | | | | | | | | | | | In this case, the user only supplies a device and the frame context is allocated internally by lavc. (cherry picked from commit 5dd9a4b88b287bf8c93520afda7becb1ad0d1894)
* | 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>
* | avcodec: add XPM decoder and demuxerParas Chadha2017-03-12
| | | | | | | | Signed-off-by: Paras Chadha <paraschadha18@gmail.com>
* | lavc/libx265: Add gray10 and gray12 encoding support.Carl Eugen Hoyos2017-03-08
| |
* | avcodec/h264, videotoolbox: fix crash after VT decoder failsAman Gupta2017-03-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The way videotoolbox hooks in as a hwaccel is pretty hacky. The VT decode API is not invoked until end_frame(), so alloc_frame() returns a dummy frame with a 1-byte buffer. When end_frame() is eventually called, the dummy buffer is replaced with the actual decoded data from VTDecompressionSessionDecodeFrame(). When the VT decoder fails, the frame returned to the h264 decoder from alloc_frame() remains invalid and should not be used. Before 9747219958060d8c4f697df62e7f172c2a77e6c7, it was accidentally being returned all the way up to the API user. After that commit, the dummy frame was unref'd so the user received an error. However, since that commit, VT hwaccel failures started causing random segfaults in the h264 decoder. This happened more often on iOS where the VT implementation is more likely to throw errors on bitstream anomolies. A recent report of this issue can be see in http://ffmpeg.org/pipermail/libav-user/2016-November/009831.html The issue here is that the dummy frame is still referenced internally by the h264 decoder, as part of the reflist and cur_pic_ptr. Deallocating the frame causes assertions like this one to trip later on during decoding: Assertion h->cur_pic_ptr->f->buf[0] failed at src/libavcodec/h264_slice.c:1340 With this commit, we leave the dummy 1-byte frame intact, but avoid returning it to the user. This reverts commit 9747219958060d8c4f697df62e7f172c2a77e6c7. Signed-off-by: wm4 <nfxjfg@googlemail.com>
* | avcodec: add ClearVideo decoderKostya Shishkov2017-03-02
| | | | | | | | | | | | Only I-frames are decoded for now. Signed-off-by: Paul B Mahol <onemda@gmail.com>
* | avcodec/videotoolbox: allow not setting the kCVPixelBufferPixelFormatTypeKeywm42017-03-02
| | | | | | | | | | | | | | | | | | | | | | If AVVideotoolboxContext.cv_pix_fmt_type is set to 0, don't set the kCVPixelBufferPixelFormatTypeKey value on the VT decoder. This makes VT output its native format, which can be much faster on some hardware iterations (if the native format does not match with the requested format, it will be converted, which is slow). The default is still forcing nv12.
* | 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/nvenc: add initial QP value optionsKonda Raju2017-03-01
| | | | | | | | Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* | avcodec: add ScreenPressor decoderPaul B Mahol2017-02-22
| | | | | | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* | avcodec/cuvid: add drop_second_field as input optionMiroslav Slugeň2017-02-18
| | | | | | | | Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>