summaryrefslogtreecommitdiff
path: root/libavcodec/avcodec.h
Commit message (Collapse)AuthorAge
* avcodec: add AV_PKT_DATA_AFD to allow AFD data to be embedded in AVPacketDevin Heitmueller2018-09-09
| | | | | | | | | | Create a new AVPacket side data type for Active Format Description, which mirrors the side data type found in AVFrame. The primary use case for this is ensuring AFD gets preserved in the V210 encoder, so that the decklink libavdevice can output AFD. Signed-off-by: Devin Heitmueller <dheitmueller@ltnglobal.com> Signed-off-by: Marton Balint <cus@passwd.hu>
* avcodec: add RemotelyAnywhere Screen Capture decoderPaul B Mahol2018-09-08
|
* avcodec: add WinCAM Motion Video decoderPaul B Mahol2018-08-27
|
* avcodec: add MatchWare Screen Capture CodecPaul B Mahol2018-08-27
|
* avcodec/utils: document allocation requirement of extradataTimo Rothenpieler2018-08-25
|
* avcodec: add Brooktree ProSumer Video decoderPaul B Mahol2018-08-24
|
* avcodec: add IMM4 decoderPaul B Mahol2018-08-21
| | | | This work is sponsored by VideoLAN.
* avcodec/bsf: add a flushing mechanism to AVBSFContextJames Almer2018-08-16
| | | | | | Meant to reset the internal bsf state without the need to reinitialize it. Signed-off-by: James Almer <jamrial@gmail.com>
* lavc: add AVS2/IEEE 1857.4 parserhwren2018-07-27
| | | | | | Tested-by: Steven Liu <lq@chinaffmpeg.org> Signed-off-by: hwren <hwrenx@126.com> Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
* lavc: implement an ATRAC9 decoderRostislav Pehlivanov2018-07-03
| | | | | | | | | | | | | | | | | | | | This commit implements a full ATRAC9 decoder, a simple low-delay codec developed by Sony and used in most PSVita games, some PS3 games and some PS4 games. Its similar to AAC in that it uses Huffman coded scalefactors but instead of vector quantization it just Huffman codes the spectral coefficients (in a way similar to how Opus splits band energy coding into coarse and fine precision). It opts to write rather large Huffman codes by packing several small coefficients into one Huffman coded symbol, though I don't believe this increases efficiency at all. Band extension implements SBC in a simple way, first it mirrors the lower spectrum onto the higher frequencies and then it uses one of 5 filters to shape it. Noise substitution is implemented via 2 of them. Unlike previous ATRAC codecs, there's no QMF, this is a standard MDCT codec. Based off of the reverse engineering work of Alex Barney. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* avcodec/avcodec.h: add AV_CODEC_ID_TTMLMarton Balint2018-06-08
| | | | Signed-off-by: Marton Balint <cus@passwd.hu>
* avcodec/avpacket: add av_packet_make_refcounted()James Almer2018-04-01
| | | | | | | | It works as a drop in replacement for the deprecated av_dup_packet(), to ensure a packet is reference counted. Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: James Almer <jamrial@gmail.com>
* Merge commit '43778a501f1bfbceeddc8eaeea2ea2b3506beeda'James Almer2018-03-29
|\ | | | | | | | | | | | | | | | | | | * commit '43778a501f1bfbceeddc8eaeea2ea2b3506beeda': Support AV1 encoding using libaom This contains some extra changes taken from the libvpx encoder wrapper, most of them contained in the set_pix_fmt() function. Merged-by: James Almer <jamrial@gmail.com>
| * Support AV1 encoding using libaomLuca Barbato2018-03-12
| |
* | avcodec: add a subcharenc mode that disables UTF-8 checkwm42018-03-25
| | | | | | | | | | | | | | | | 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/avcodec.h: Add encryption info side data.Jacob Trimble2018-03-24
| | | | | | | | | | | | | | | | This new side-data will contain info on how a packet is encrypted. This allows the app to handle packet decryption. Signed-off-by: Jacob Trimble <modmaker@google.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/avpacket: add av_packet_make_writable()James Almer2018-03-21
| | | | | | | | | | | | | | Useful as well to quickly make a packet reference counted when it isn't already so. Signed-off-by: James Almer <jamrial@gmail.com>
* | sbc: implement SBC encoder (low-complexity subband codec)Aurelien Jacobs2018-03-07
| | | | | | | | This was originally based on libsbc, and was fully integrated into ffmpeg.
* | sbc: implement SBC decoder (low-complexity subband codec)Aurelien Jacobs2018-03-07
| | | | | | | | This was originally based on libsbc, and was fully integrated into ffmpeg.
* | Add libcodec2 en/decoderTomas Härdin2018-02-24
| |
* | lavc/mjpeg: Add profiles for MJPEG using SOF marker codesMark Thompson2018-02-21
| | | | | | | | | | | | 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.
* | Merge commit '5b145290df2998a9836a93eb925289c6c8b63af0'Mark Thompson2018-02-12
|\| | | | | | | | | | | | | * 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-11
| | | | | | | | | | | | | | | | | | | | 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-19
| |
| * lavc: Deprecate av_hwaccel_next() and av_register_hwaccel()Mark Thompson2017-12-19
| |
| * lavc: Add codec metadata to indicate hardware supportMark Thompson2017-12-19
| |
| * avcodec: add metadata to identify wrappers and hardware decoderswm42017-12-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* | aptx: implement the aptX HD bluetooth codecAurelien Jacobs2018-02-09
| |
* | avcodec: Document that init_static_data() is not intended for time consuming ↵Michael Niedermayer2018-02-08
| | | | | | | | | | | | | | operations. Reviewed-by: Muhammad Faiz <mfcc64@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | lavc/bsf: make BSF iteration the same as other iteratorsJosh de Kock2018-02-06
| |
* | lavc: add new API for iterating codecs and codec parsersJosh de Kock2018-02-06
| | | | | | | | Based on an unfinished patch by atomnuker.
* | avcodec: increase AV_INPUT_BUFFER_PADDING_SIZE to 64James Almer2018-01-11
| | | | | | | | | | | | | | | | | | | | AVX-512 support has been introduced, and even if no functions currently use zmm registers (able to load as much as 64 bytes of consecutive data per instruction), they will be added eventually. Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com> Tested-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: James Almer <jamrial@gmail.com>
* | lavc: remove uneffective attribute_deprecated on enumwm42017-12-27
| | | | | | | | | | | | Does not work. Even emits a warning with some compilers that the attribute does not work on enums. It's likely that there is way to make it work, but not worth the trouble.
* | lavc: replace and deprecate the lock managerwm42017-12-26
| | | | | | | | | | | | | | 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).
* | avcodec: add metadata to identify wrappers and hardware decoderswm42017-12-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | lavf/movenc: add sdtp (sample dependency) boxJohn Stebbins2017-12-02
| | | | | | | | | | | | The sdtp is required by the AppleTV 4K in order to play 2160p60 video. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | lavc: Mark all AVHWAccel structures as constMark Thompson2017-11-26
| |
* | lavc: Deprecate av_hwaccel_next() and av_register_hwaccel()Mark Thompson2017-11-26
| |
* | lavc: Use hardware config information in ff_get_format()Mark Thompson2017-11-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This removes the dependency that hardware pixel formats previously had on AVHWAccel instances, meaning only those which actually do something need exist after this patch. Also updates avcodec_default_get_format() to be able to choose hardware formats if either a matching device has been supplied or no additional external configuration is required, and avcodec_get_hw_frames_parameters() to use the hardware config rather than searching the old hwaccel list. The FF_CODEC_CAP_HWACCEL_REQUIRE_CLASS mechanism is deleted because it no longer does anything (the codec already contains the pointers to the matching hwaccels).
* | lavc: Add codec metadata to indicate hardware supportMark Thompson2017-11-26
| |
* | avcodec: remove unnecessary AVPacketSideDataType enum offsetJames Almer2017-11-19
| | | | | | | | Signed-off-by: James Almer <jamrial@gmail.com>
* | avcodec: deprecate getters and setters for AVCodecContext and AVCodec fieldsJames Almer2017-11-15
| | | | | | | | | | | | The fields can be accessed directly, so these are not needed anymore. Signed-off-by: James Almer <jamrial@gmail.com>
* | avcodec: fix whitespace on AVPanScan struct definitionAman Gupta2017-11-14
| |
* | avcodec: add decode_params callback to AVHWAccel structAman Gupta2017-11-13
| | | | | | | | Signed-off-by: Aman Gupta <aman@tmm1.net>
* | Merge commit 'b46a77f19ddc4b2b5fa3187835ceb602a5244e24'James Almer2017-11-11
|\| | | | | | | | | | | | | | | | | * 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-19
| | | | | | | | | | | | | | | | | | | | | | | | 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>
| * lavc: Add flag to allow profile mismatch with hardware decodingMark Thompson2017-04-26
| |
| * Add ClearVideo decoderKostya Shishkov2017-04-25
| | | | | | | | | | | | Only I-frames are decoded for now. Signed-off-by: Diego Biurrun <diego@biurrun.de>
| * Add FM Screen Capture Codec decoderPaul B Mahol2017-04-13
| | | | | | | | | | Signed-off-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Diego Biurrun <diego@biurrun.de>
* | avcodec: allow multiple hwaccels for the same codec/pixfmtwm42017-11-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, AVHWAccels are looked up using a (codec_id, pixfmt) tuple. This means it's impossible to have 2 decoders for the same codec and using the same opaque hardware pixel format. This breaks merging Libav's CUVID hwaccel. FFmpeg has its own CUVID support, but it's a full stream decoder, using NVIDIA's codec parser. The Libav one is a true hwaccel, which is based on the builtin software decoders. Fix this by introducing another field to disambiguate AVHWAccels, and use it for our CUVID decoders. FF_CODEC_CAP_HWACCEL_REQUIRE_CLASS makes this mechanism backwards compatible and optional.