summaryrefslogtreecommitdiff
path: root/doc/APIchanges
Commit message (Collapse)AuthorAge
* avcodec/packet: deprecate av_init_packet()James Almer2021-03-17
| | | | | | Once removed, sizeof(AVPacket) will stop being a part of the public ABI. Signed-off-by: James Almer <jamrial@gmail.com>
* lavc: rename AV_CODEC_CAP_AUTO_THREADS->AV_CODEC_CAP_OTHER_THREADSAnton Khirnov2021-03-16
| | | | | | | | | | This cap is currently used to mark multithreading-capable codecs that wrap external libraries with their own multithreading code. The name is highly confusing for our API users, since libavcodec ALWAYS handles thread_count=0 (see commit message in previous commit). Therefore rename the cap and update its documentation to make its meaning clear. The old name is kept deprecated until next+1 major bump.
* doc/APIchanges: Fill in some missing informationMichael Niedermayer2021-03-14
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec: add a get_encode_buffer() callback to AVCodecContextJames Almer2021-03-12
| | | | | | | | | | | This callback is functionally the same as get_buffer2() is for decoders, and implements for the new encode API the functionality of the old encode API had where the user could provide their own buffers. Reviewed-by: Lynne <dev@lynne.ee> Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Reviewed-by: Mark Thompson <sw@jkqxz.net> Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/utils: change AVStream side data related public function and struct ↵James Almer2021-03-10
| | | | | | | | | size types to size_t av_stream_add_side_data() already defines size as a size_t, so this makes it consistent across all side data functions. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/packet: change side data related public function and struct size ↵James Almer2021-03-10
| | | | | | | | | types to size_t av_packet_add_side_data() already defines size as a size_t, so this makes it consistent across all side data functions Signed-off-by: James Almer <jamrial@gmail.com>
* avutil/frame: change av_frame_new_side_data() size parameter type to size_tJames Almer2021-03-10
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avutil/buffer: change public function and struct size parameter types to size_tJames Almer2021-03-10
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec: enable usage of err_recognition for encodersJan Ekström2021-03-05
| | | | | | | | Enables the usage of such values as AV_EF_EXPLODE in encoders, which can be useful in cases such as subtitle encoders where they have the responsibility to validate the correctness of an incoming ASS dialog line. Signed-off-by: Jan Ekström <jan.ekstrom@24i.com>
* avformat: Deprecate AVFMT_FLAG_PRIV_OPT, remove av_demuxer_open on bumpAndreas Rheinhardt2021-03-03
| | | | | | | | | | | | | | | | | | | | | | | This flag was added in 492026209b9b58eaf6d2ea56423f6b1e1a8a76a5 in conjunction with av_demuxer_open() to allow to pass private options to demuxers. It worked as follows: av_open_input_stream() (the predecessor of avformat_open_input()) would not call the read_header function if this flag is set. Instead the user could set private options of the demuxer via the format's private class after avformat_open_input() and then call av_demuxer_open() which called the format's read_header function. This approach was abandoned in e37f161e66e042d6c2c7470c4d9881df9427fc4a and av_demuxer_open() deprecated; instead the AVDictionary based way of passing private options to the demuxer was choosen. Yet AVFMT_FLAG_PRIV_OPT has never been deprecated and av_demuxer_open() never removed. This commit implements the deprecation of the flag and schedules av_demuxer_open for removal on the next major bump. Given that av_demuxer_open() has been deprecated in 2012 and that this flag is useless without it, the flag will be ignored after the next major version bump. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avcodec/options: deprecate avcodec_get_frame_class()James Almer2021-02-27
| | | | | | | | AVFrame hasn't been a struct defined in libavcodec for a decade now, when it was moved to libavutil. Found-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* lavu/tx: support in-place FFT transformsLynne2021-02-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds support for in-place FFT transforms. Since our internal transforms were all in-place anyway, this only changes the permutation on the input. Unfortunately, research papers were of no help here. All focused on dry hardware implementations, where permutes are free, or on software implementations where binary bloat is of no concern so storing dozen times the transforms for each permutation and version is not considered bad practice. Still, for a pure C implementation, it's only around 28% slower than the multi-megabyte FFTW3 in unaligned mode. Unlike a closed permutation like with PFA, split-radix FFT bit-reversals contain multiple NOPs, multiple simple swaps, and a few chained swaps, so regular single-loop single-state permute loops were not possible. Instead, we filter out parts of the input indices which are redundant. This allows for a single branch, and with some clever AVX512 asm, could possibly be SIMD'd without refactoring. The inplace_idx array is guaranteed to never be larger than the revtab array, and in practice only requires around log2(len) entries. The power-of-two MDCTs can be done in-place as well. And it's possible to eliminate a copy in the compound MDCTs too, however it'll be slower than doing them out of place, and we'd need to dirty the input array.
* avdevice/avdevice: Deprecate AVDevice Capabilities APIAndreas Rheinhardt2021-02-14
| | | | | | | | | | | | | | It has been added in 6db42a2b6b22e6f1928fafcf3faa67ed78201004, yet since then none of the necessary create/free_device_capabilities functions has been implemented, making this API completely useless. Because of this one can already simplify avdevice_capabilities_free/create and can already remove the function pointers at the next major bump; given that the documentation explicitly states that av_device_capabilities is not to be used by a user, it's options can already be removed (save for the sentinel). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* libavutil/common: Add FFABS64U()Michael Niedermayer2021-02-10
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avutil/common: Add FFABSU() for a signed -> unsigned ABSMichael Niedermayer2021-01-26
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec: deprecate AVCodecContext.debug_mvJames Almer2021-01-25
| | | | | | It's been unused for almost three years now. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec: add vvc codec id and profilesNuo Mi2021-01-11
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* mpegvideo: use the AVVideoEncParams API for exporting QP tablesAnton Khirnov2021-01-01
| | | | | | | | | | Do it only when requested with the AV_CODEC_EXPORT_DATA_VIDEO_ENC_PARAMS flag. Drop previous code using the long-deprecated AV_FRAME_DATA_QP_TABLE* API. Temporarily disable fate-filter-pp, fate-filter-pp7, fate-filter-spp. They will be reenabled once these filters are converted in following commits.
* avutil/timecode: add av_timecode_init_from_componentsMarton Balint2020-12-03
| | | | Signed-off-by: Marton Balint <cus@passwd.hu>
* avcodec: deprecate thread_safe_callbacksAnton Khirnov2020-11-27
| | | | | | | | | They add considerable complexity to frame-threading implementation, which includes an unavoidably leaking error path, while the advantages of this option to the users are highly dubious. It should be always possible and desirable for the callers to make their get_buffer2() implementation thread-safe, so deprecate this option.
* libavcodec: add a new AV_CODEC_EXPORT_DATA_FILM_GRAIN flag and optionLynne2020-11-25
| | | | | | This introduces a new field to allow decoders to export their film grain parameters. Will be used by the next patch.
* libavutil: introduce AVFilmGrainParams side dataLynne2020-11-25
| | | | | | | | This patch introduces a new frame side data type AVFilmGrainParams for use with video codecs which support it. It can save a lot of memory used for duplicate processed reference frames and reduce copies when applying film grain during presentation.
* doc/APIchanges: add missing marker for release 4.3James Almer2020-11-02
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avformat: add a stream event flag for new packetsAnton Khirnov2020-10-28
|
* lavu/buffer: add a convenience function for replacing buffersAnton Khirnov2020-09-28
| | | | | | | A common pattern e.g. in libavcodec is replacing/updating buffer references: unref old one, ref new one. This function allows simplifying such code and avoiding unnecessary refs+unrefs if the references are already equivalent.
* avutil/timecode: add av_timecode_make_smpte_tc_string2Marton Balint2020-09-13
| | | | Signed-off-by: Marton Balint <cus@passwd.hu>
* doc/APIchanges: Remove version conflict separatorAndreas Rheinhardt2020-08-21
| | | | | | | Added in 06f26512046de1a84e045d219e7fa211c37ad0e4. Reviewed-by: Nicolas George <george@nsup.org> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* lavu/avstring: deprecate av_d2str().Nicolas George2020-08-21
| | | | | It is no longer used in our code base and does not seem to be used much in other projects.
* avutil/channel_layout: add 22.2 layoutJan Ekström2020-08-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Requires some extraneous top side and bottom front channels to be defined. According to STD-B59v2, the defined channel layout is: - FL - FR - FC - LFE1 - BL - BR - FLc - FRc - BC - LFE2 - SiL - SiR - TpFL - TpFR - TpFC - TpC - TpBL - TpBR - TpSiL - TpSiR - TpBC - BtFC - BtFL - BtFR
* avutil: bump version after addition of MIPS cpu flagsJames Almer2020-07-23
| | | | | | And add the missing doc/APIchanges entry. Signed-off-by: James Almer <jamrial@gmail.com>
* avutil/imgutils: add utility to get plane sizesBrian Kim2020-07-22
| | | | | | | | | This utility helps avoid undefined behavior when doing things like checking how much memory we need to allocate for an image before we have allocated a buffer. Signed-off-by: Brian Kim <bkkim@google.com> Signed-off-by: James Almer <jamrial@gmail.com>
* API: add AV_PKT_DATA_S12M_TIMECODE to AVPacketSideDataTypeLimin Wang2020-07-15
| | | | Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* doc/APIchanges: add new AV_PIX_FMT_X2RGB10Lynne2020-06-12
|
* avutil: add AV_FRAME_DATA_SEI_UNREGISTERED side data typeLimin Wang2020-06-11
| | | | Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* lavu/opt: add a more general child class iteration APIAnton Khirnov2020-06-10
| | | | | | | Use opaque iteration state instead of the previous child class. This mirrors similar changes done in lavf/lavc. Deprecate the av_opt_child_class_next() API.
* doc/APIchanges: Fill in missing valuesMichael Niedermayer2020-06-08
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avutil/buffer: use the default allocator if none is provided to ↵James Almer2020-06-05
| | | | | | av_buffer_pool_init2() Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec.h: split AVCodec API into its own headerAnton Khirnov2020-05-27
|
* doc/APIchanges: fix typo in version numberAnton Khirnov2020-05-27
|
* h264dec: support exporting QP tables through the AVVideoEncParams APIAnton Khirnov2020-05-25
|
* hwcontext: add av_hwdevice_ctx_create_derived_optsLynne2020-05-23
| | | | | | | | | | | | | This allows for users who derive devices to set options for the new device context they derive. The main use case of this is to allow users to enable extensions (such as surface drawing extensions) in Vulkan while deriving from the device their frames are on. That way, users don't need to write any initialization code themselves, since the Vulkan spec invalidates mixing instances, physical devices and active devices. Apart from Vulkan, other hwcontexts ignore the opts argument since they don't support options at all (or in VAAPI and OpenCL's case, options are currently only used for device selection, which device_derive overrides).
* lavu: add av_gcd_q().Nicolas George2020-05-23
|
* avutil/opt: add AV_OPT_FLAG_CHILD_CONSTSMarton Balint2020-05-22
| | | | | | | | This will be used for AVCodecContext->profile. By specifying constants in the encoders we won't have to use the common AVCodecContext options table and different encoders can use the same profile name even with different values. Signed-off-by: Marton Balint <cus@passwd.hu>
* avcodec.h: split bitstream filters API into its own headerAnton Khirnov2020-05-22
|
* avcodec.h: split AVCodecParameters API into its own headerAnton Khirnov2020-05-22
|
* avcodec: deprecate Lossless and Intra Only encoder capabilitesJames Almer2020-05-21
| | | | | | | Both are codec properties and not encoder capabilities. The relevant AVCodecDescriptor.props flags exist for this purpose. Signed-off-by: James Almer <jamrial@gmail.com>
* avutil: bump version after addition of av_sat_add64 and av_sat_sub64James Almer2020-05-17
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* lavc: add a flag for exporting AVVideoEncParams from decodersAnton Khirnov2020-05-12
|
* libavutil: add API for exporting video frame quantizersJuan De León2020-05-12
| | | | | | | | | | | | | | | This is intended to replace the deprecated the AV_FRAME_DATA_QP_TABLE* API and extend it to a wider range of codecs. In the future, it may also be extended to support other encoding parameters such as motion vectors. Additional changes by Anton Khirnov <anton@khirnov.net> with suggestions by Lynne <dev@lynne.ee>. Signed-off-by: Juan De León <juandl@google.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hwcontext_vulkan: expose enabled device and instance extensionsLynne2020-05-10
| | | | | | | This solves a huge oversight - it lets users reliably use their own AVVulkanDeviceContext. Otherwise, the extensions supplied and enabled are not discoverable by anything outside of hwcontext_vulkan. Also clarifies that any user-supplied VkInstance must be at least 1.1.