summaryrefslogtreecommitdiff
path: root/libavcodec/version.h
Commit message (Collapse)AuthorAgeFilesLines
* avcodec: add a subcharenc mode that disables UTF-8 checkwm42018-03-251-1/+1
| | | | | | | | This is for applications which want to explicitly check for invalid UTF-8 manually, and take actions that are better than dropping invalid subtitles silently. (It's pretty much silent because sporadic avcodec error messages are so common that you can't reasonably display them in a prominent and meaningful way in a application GUI.)
* avcodec/avpacket: add av_packet_make_writable()James Almer2018-03-211-1/+1
| | | | | | | Useful as well to quickly make a packet reference counted when it isn't already so. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/mediacodecdec: add delay_flush optionAman Gupta2018-03-071-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | The default behavior of the mediacodec decoder before this commit was to delay flushes until all pending hardware frames were returned to the decoder. This was useful for certain types of applications, but was unexpected behavior for others. The new default behavior with this commit is now to execute flushes immediately to invalidate all pending frames. The old behavior can be enabled by setting delay_flush=1. With the new behavior, video players implementing seek can simply call flush on the decoder without having to worry about whether they have one or more mediacodec frames still buffered in their rendering pipeline. Previously, all these frames had to be explictly freed (or rendered) before the seek/flush would execute. The new behavior matches the behavior of all other lavc decoders, reducing the amount of special casing required when using the mediacodec decoder. Signed-off-by: Aman Gupta <aman@tmm1.net> Signed-off-by: Matthieu Bouron <matthieu.bouron@gmail.com>
* avcodec/nvenc: Declare support for P016Philip Langdale2018-03-021-1/+1
| | | | | | | | | | | | | | | | | | | nvenc doesn't support P016, but we have two problems today: 1) We declare support for YUV444P16 which nvenc also doesn't support. We do this because it's the only pix_fmt we have that can approximate nvenc's internal format that is YUV444P10 with data in MSBs instead of LSBs. Because the declared format is a 16bit one, it will be preferrentially chosen when encoding >10bit content, but that content will normally be YUV420P12 or P016 which should get mapped to P010 and not YUV444P10. 2) Transcoding P016 content with nvenc should be possible in a pure hardware pipeline, and that can't be done if nvenc doesn't say it accepts P016. By mapping it to P010, we can use it, albeit with truncation. I have established that swscale doesn't know how to dither to 10bits so we'd get truncation anyway, even if we tried to do this 'properly'.
* avcodec/hevcdec: Declare that nvdec supports 12bit decodingPhilip Langdale2018-03-021-1/+1
|
* Add libcodec2 en/decoderTomas Härdin2018-02-241-2/+2
|
* avcodec/nvdec: Implement mjpeg nvdec hwaccelPhilip Langdale2018-02-211-1/+1
|
* vaapi: Add MJPEG decode hwaccelMark Thompson2018-02-211-1/+1
|
* lavc/mjpeg: Add profiles for MJPEG using SOF marker codesMark Thompson2018-02-211-2/+2
| | | | | | This is needed by later hwaccel code to tell which encoding process was used for a particular frame, because hardware decoders may only support a subset of possible methods.
* avcodec/mpeg12enc: add support for specifying video_format in the ↵Marton Balint2018-02-131-1/+1
| | | | | | | | | | | sequence_display_extension In a recent commit the default was changed from 0 (component) to 5 (unspecified), however some standards require using 0. With this option, the user will be able to do so. Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Marton Balint <cus@passwd.hu>
* Merge commit '5b145290df2998a9836a93eb925289c6c8b63af0'Mark Thompson2018-02-121-1/+1
|\ | | | | | | | | | | | | * commit '5b145290df2998a9836a93eb925289c6c8b63af0': lavc: Add support for increasing hardware frame pool sizes Merged-by: Mark Thompson <sw@jkqxz.net>
| * lavc: Add support for increasing hardware frame pool sizesMark Thompson2018-02-111-1/+1
| | | | | | | | | | | | | | | | | | | | AVCodecContext.extra_hw_frames is added to the size of hardware frame pools created by libavcodec for APIs which require fixed-size pools. This allows the user to keep references to a greater number of frames after decode, which may be necessary for some use-cases. It is also added to the initial_pool_size value returned by avcodec_get_hw_frames_parameters() if a fixed-size pool is required.
| * lavc: Mark all AVHWAccel structures as constMark Thompson2017-12-191-1/+1
| |
| * lavc: Deprecate av_hwaccel_next() and av_register_hwaccel()Mark Thompson2017-12-191-1/+4
| |
| * lavc: Add codec metadata to indicate hardware supportMark Thompson2017-12-191-1/+1
| |
* | api: add missing version bumps and APIChanges entriesJames Almer2018-02-061-1/+1
| | | | | | | | | | | | | | | | | | avcodec bump missed in 7e8eba2d8755962d9dca5eade57bf8f591a73c0c avformat bump missed in ff46124b0df17a1d35249e09ae8eae9a61f16e04 and 0694d8702421e7aff1340038559c438b61bb30dd avdevice bump missed in 0fd475704e871ef3a535947596a012894bae3cbd Signed-off-by: James Almer <jamrial@gmail.com>
* | lavc: add new API for iterating codecs and codec parsersJosh de Kock2018-02-061-0/+3
| | | | | | | | Based on an unfinished patch by atomnuker.
* | lavc: replace and deprecate the lock managerwm42017-12-261-1/+4
| | | | | | | | | | | | | | Use static mutexes instead of requiring a lock manager. The behavior should be roughly the same before and after this change for API users which did not set the lock manager at all (except that a minor memory leak disappears).
* | lavc/mediacodec: use AVMediaCodecDeviceContext hw_device_ctx if setAman Gupta2017-12-161-1/+1
| | | | | | | | Signed-off-by: Matthieu Bouron <matthieu.bouron@gmail.com>
* | avcodec: add metadata to identify wrappers and hardware decoderswm42017-12-141-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Explicitly identify decoder/encoder wrappers with a common name. This saves API users from guessing by the name suffix. For example, they don't have to guess that "h264_qsv" is the h264 QSV implementation, and instead they can just check the AVCodec .codec and .wrapper_name fields. Explicitly mark AVCodec entries that are hardware decoders or most likely hardware decoders with new AV_CODEC_CAPs. The purpose is allowing API users listing hardware decoders in a more generic way. The proposed AVCodecHWConfig does not provide this information fully, because it's concerned with decoder configuration, not information about the fact whether the hardware is used or not. AV_CODEC_CAP_HYBRID exists specifically for QSV, which can have software implementations in case the hardware is not capable. Based on a patch by Philip Langdale <philipl@overt.org>. Merges Libav commit 47687a2f8aca3f65b6fdd117b1cb66a7409a7fd1.
* | avcodec/libx265 - Add named option to set profileGyan Doshi2017-12-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | Adds call to x265_param_apply_profile after x265_param_parse. Added as private option since HEVC profiles other than Main, Main 10 and MSP in AVCodecContext are consolidated in a single constant. Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com> Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com> Reviewed-by: Lou Logan <lou@lrcd.com>
* | vp9: use superframe split BSFwm42017-11-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | webm usually has invisible superframes merged with normal frames. (vpxenc muxes them in this form, which is evidence enough that this is the standard webm packet format. It's rather unclear whether ffmpeg is even allowed to remux them with split packets.) The vp9 decoder needs them to be in separate packets for multithreading to work. Add the BSF to the decoder, so the conversion happens automatically. This contains the important part of fa1749dd34c55fb9, which was apparently skipped in commit d417e95af76. This restores Libav API compatibility.
* | avcodec/nvdec: Implement vp8 hwaccelPhilip Langdale2017-11-261-1/+1
| |
* | lavc: Mark all AVHWAccel structures as constMark Thompson2017-11-261-1/+1
| |
* | lavc: Deprecate av_hwaccel_next() and av_register_hwaccel()Mark Thompson2017-11-261-1/+4
| |
* | lavc: Add codec metadata to indicate hardware supportMark Thompson2017-11-261-2/+2
| |
* | avcodec: Implement mpeg4 nvdec hwaccelPhilip Langdale2017-11-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was predictably nightmarish, given how ridiculous mpeg4 is. I had to stare at the cuvid parser output for a long time to work out what each field was supposed to be, and even then, I still don't fully understand some of them. Particularly: vop_coded: If I'm reading the decoder correctly, this flag will always be 1 as the decoder will not pass the hwaccel any frame where it is not 1. divx_flags: There's obviously no documentation on what the possible flags are. I simply observed that this is '0' for a normal bitstream and '5' for packed b-frames. gmc_enabled: I had a number of guesses as to what this mapped to. I picked the condition I did based on when the cuvid parser was setting flag. Also note that as with the vdpau hwaccel, the decoder needs to consume the entire frame and not the slice.
* | avcodec: Implement mpeg1 nvdec hwaccelPhilip Langdale2017-11-201-1/+1
| | | | | | | | | | Once I remembered that there's a separate decoder type for mpeg1, even though params struct is shared with mpeg2, everything worked.
* | avcodec: Implement mpeg2 nvdec hwaccelPhilip Langdale2017-11-181-1/+1
| | | | | | | | | | | | This is mostly straight-forward. The weird part is that it should just work for mpeg1, but I see corruption in my test cases, so I'm going to try and fix that separately.
* | avcodec: deprecate getters and setters for AVCodecContext and AVCodec fieldsJames Almer2017-11-151-0/+3
| | | | | | | | | | | | The fields can be accessed directly, so these are not needed anymore. Signed-off-by: James Almer <jamrial@gmail.com>
* | avcodec: Implement vc1 nvdec hwaccelPhilip Langdale2017-11-141-1/+1
| | | | | | | | | | This hwaccel is interesting because it also works for wmv3/9 content, which is not supported by the nvidia parser used by cuviddec.
* | avcodec: implement vp9 nvdec hwaccelTimo Rothenpieler2017-11-131-1/+1
| |
* | Merge commit 'b46a77f19ddc4b2b5fa3187835ceb602a5244e24'James Almer2017-11-111-1/+1
|\ \ | |/ | | | | | | | | | | | | | | * commit 'b46a77f19ddc4b2b5fa3187835ceb602a5244e24': lavc: external hardware frame pool initialization Includes the fix from e724bdfffbd3c27aac53d1f32f20f105f37caef0 Merged-by: James Almer <jamrial@gmail.com>
| * lavc: external hardware frame pool initializationwm42017-10-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | This adds a new API, which allows the API user to query the required AVHWFramesContext parameters. This also reduces code duplication across the hwaccels by introducing ff_decode_get_hw_frames_ctx(), which uses the new API function. It takes care of initializing the hw_frames_ctx if needed, and does additional error handling and API usage checking. Support for VDA and Cuvid missing. Signed-off-by: Anton Khirnov <anton@khirnov.net>
| * dxva: add support for new dxva2 and d3d11 hwaccel APIswm42017-06-081-2/+2
| | | | | | | | | | | | | | | | | | | | This also adds support to avconv (which is trivial due to the new hwaccel API being generic enough). The new decoder setup code in dxva2.c is significantly based on work by Steve Lhomme <robux4@gmail.com>, but with heavy changes/rewrites. Signed-off-by: Diego Biurrun <diego@biurrun.de>
| * lavc: Add flag to allow profile mismatch with hardware decodingMark Thompson2017-04-261-1/+1
| |
| * Add ClearVideo decoderKostya Shishkov2017-04-251-1/+1
| | | | | | | | | | | | Only I-frames are decoded for now. Signed-off-by: Diego Biurrun <diego@biurrun.de>
| * Add FM Screen Capture Codec decoderPaul B Mahol2017-04-131-1/+1
| | | | | | | | | | Signed-off-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Diego Biurrun <diego@biurrun.de>
| * vaapi_encode: Add VP9 supportMark Thompson2017-04-021-1/+1
| |
* | h264dec: add a NVDEC hwaccelAnton Khirnov2017-11-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Some parts of the code are based on a patch by Timo Rothenpieler <timo@rothenpieler.org> Merges Libav commit b9129ec4668c511e0a79e25c6f25d748cee172c9. Due to the name clash with our cuvid decoder, rename it to nvdec. This commit also changes the Libav code to dynamic loading of the cuda/cuvid libraries. Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* | avcodec: bump minor after addition of MagicYUV encoderJames Almer2017-10-281-2/+2
| | | | | | | | Signed-off-by: James Almer <jamrial@gmail.com>
* | lavc/avcodec: Constify the return value of av_bitstream_filter_next().Carl Eugen Hoyos2017-10-261-1/+1
| | | | | | | | | | Fixes the following gcc warning: libavcodec/bitstream_filter.c:39:12: warning: return discards 'const' qualifier from pointer target type
* | Merge commit '0648dec19db83bc8c87814d195e32cbad5698a40'James Almer2017-10-231-3/+0
|\ \ | |/ | | | | | | | | | | * commit '0648dec19db83bc8c87814d195e32cbad5698a40': lavc: Drop deprecated stream codec tag Merged-by: James Almer <jamrial@gmail.com>
| * lavc: Drop deprecated stream codec tagVittorio Giovara2017-03-231-4/+1
| | | | | | | | Deprecated in 07/2015.
* | Merge commit '94eed68ace9f2416af8457fcbf142b175928c06b'James Almer2017-10-231-12/+0
|\ \ | |/ | | | | | | | | | | * commit '94eed68ace9f2416af8457fcbf142b175928c06b': lavc: Drop deprecated options moved to private contexts Merged-by: James Almer <jamrial@gmail.com>
| * lavc: Drop deprecated options moved to private contextsVittorio Giovara2017-03-231-12/+0
| | | | | | | | Deprecated in 10/2014 and 07/2015.
| * lavc: Drop deprecated time_base variable for decodingVittorio Giovara2017-03-231-3/+0
| | | | | | | | Deprecated in 10/2015.
* | avodec/vaapi: drop deprecated vaapi_context fieldsJames Almer2017-10-231-3/+0
| | | | | | | | | | | | Deprecated in 07/2015. Signed-off-by: James Almer <jamrial@gmail.com>
* | avcodec: drop deprecated vismv optionJames Almer2017-10-231-4/+0
| | | | | | | | | | | | Deprecated in 08/2014. Signed-off-by: James Almer <jamrial@gmail.com>
* | Merge commit '48bb0da050329e5111b00a12dfc154b7e78fb3a3'James Almer2017-10-231-3/+0
|\ \ | |/ | | | | | | | | | | * commit '48bb0da050329e5111b00a12dfc154b7e78fb3a3': lavc: Drop deprecated way of setting audio delay on encode Merged-by: James Almer <jamrial@gmail.com>