summaryrefslogtreecommitdiff
path: root/libavcodec
Commit message (Collapse)AuthorAge
* avcodec/libaomenc: support AV_CODEC_CAP_ENCODER_RECON_FRAMEJames Almer2022-08-02
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* lavc/libx264: support AV_CODEC_CAP_ENCODER_RECON_FRAMEAnton Khirnov2022-08-02
| | | | Bump the version requirement to 122, which introduced b_full_recon.
* lavc: add API for exporting reconstructed frames from encodersAnton Khirnov2022-08-02
|
* avcodec/alpha/me_cmp_alpha: Remove commented-out functionAndreas Rheinhardt2022-08-02
| | | | | | | This function is bitrotten: It uses different parameters than the corresponding ASM functions which replaced it. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/alpha/me_cmp_alpha: Use proper me_cmp_func typeAndreas Rheinhardt2022-08-02
| | | | | | | | | | | | | ea41e6d6373063c3a2a9bf48ce8e1c2e6340b694 forgot the int->ptrdiff_t switch for the stride. Libav didn't do it because Libav had already dropped support for Alpha at that point. Only compilation has been tested for this commit. (It might be that the ASM-versions of me_cmp_func functions need to be updated as well.) Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/aacdec_fixed: also clip samples on the second channel for stereo HE-AACJames Almer2022-08-01
| | | | | | | | | Fixes outputting silence on the second channel when decoding Parametic Stereo HE-AAC. Closes ticekt #3361. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/aacdec_fixed: add missing priv_classJames Almer2022-08-01
| | | | | | This enables the same input options as the float decoder. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/ttmlenc: Use string literal macro for default namespacingAndreas Rheinhardt2022-07-31
| | | | | | | | Fixes -Werror=format-security build failures when building with disabled optimizations and (according to fate.ffmpeg.org also with several other old GCC versions). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/exr: Constify slice threads' ptr to main contextAndreas Rheinhardt2022-07-31
| | | | | | | | Modifying the main context from a slice thread is (usually) a data race, so it must not happen. So only use a pointer to const to access the main context. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/diracdec: Constify slice threads' ptr to main contextAndreas Rheinhardt2022-07-31
| | | | | | | | Modifying the main context from a slice thread is (usually) a data race, so it must not happen. So only use a pointer to const to access the main context. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/dvdec: Constify slice threads' ptr to main contextAndreas Rheinhardt2022-07-31
| | | | | | | | Modifying the main context from a slice thread is (usually) a data race, so it must not happen. So only use a pointer to const to access the main context. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/dxv: Constify slice threads' ptr to main contextAndreas Rheinhardt2022-07-31
| | | | | | | | Modifying the main context from a slice thread is (usually) a data race, so it must not happen. So only use a pointer to const to access the main context. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/jpeg2000dec: Constify slice threads' ptr to main contextAndreas Rheinhardt2022-07-31
| | | | | | | | Modifying the main context from a slice thread is (usually) a data race, so it must not happen. So only use a pointer to const to access the main context. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/magicyuv: Constify slice threads' ptr to main contextAndreas Rheinhardt2022-07-31
| | | | | | | | Modifying the main context from a slice thread is (usually) a data race, so it must not happen. So only use a pointer to const to access the main context. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/proresdec2: Constify slice threads' ptr to main contextAndreas Rheinhardt2022-07-31
| | | | | | | | Modifying the main context from a slice thread is (usually) a data race, so it must not happen. So only use a pointer to const to access the main context. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vp8: Constify slice threads' ptr to main contextAndreas Rheinhardt2022-07-31
| | | | | | | | | Modifying the main context from a slice thread is (usually) a data race, so it must not happen. So only use a pointer to const to access the main context. Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/wavpack: Constify slice threads' ptr to main contextAndreas Rheinhardt2022-07-31
| | | | | | | | Modifying the main context from a slice thread is (usually) a data race, so it must not happen. So only use a pointer to const to access the main context. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vp9dec: Constify VP9TileData->VP9Context pointer targetAndreas Rheinhardt2022-07-31
| | | | | | | | This is possible now that ff_thread_await_progress() accepts a const ThreadFrame*. Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec: Constify ThreadFrames if possibleAndreas Rheinhardt2022-07-31
| | | | | | | This is possible now that ff_thread_await_progress() accepts a const ThreadFrame*. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/motion_est: Constify pointers to frame dataAndreas Rheinhardt2022-07-31
| | | | | Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mpegvideodsp: Constify src pointersAndreas Rheinhardt2022-07-31
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mpegvideoencdsp: Allow pointers to const where possibleAndreas Rheinhardt2022-07-31
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/me_cmp: Constify me_cmp_func buffer parametersAndreas Rheinhardt2022-07-31
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/cfhdencdsp: Constify input pointersAndreas Rheinhardt2022-07-31
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/lossless_videoencdsp: Constify src sub_left_predictAndreas Rheinhardt2022-07-31
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/videodsp: Constify buf in VideoDSPContext.prefetchAndreas Rheinhardt2022-07-31
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/half2float: Constify arrays in half2float()Andreas Rheinhardt2022-07-31
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mpegvideo: Inline values in ff_update_block_index()Andreas Rheinhardt2022-07-31
| | | | | | | | | This is possible for most of the callers, because e.g. only the MPEG-4 decoder can have bits_per_raw_sample > 8. Also most mpegvideo-based codecs are 420 only. Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/pngenc: Don't cast const away unnecessarilyAndreas Rheinhardt2022-07-31
| | | | | | Possible since 529a9893d769f381b72785c500662be2020da5fe. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/snow: Remove unused halfpel_planeAndreas Rheinhardt2022-07-31
| | | | | | | Committed in 5be3a818719d613e2f225cf1532fda01ba106b04 in an unfinished state; never used or finished and always disabled. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/pnmdec: Fix indentationAndreas Rheinhardt2022-07-31
| | | | | | Forgotten after ff1450e449f848ad4b37b3cf448315ba4581364e. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/pnmdec, pnm_parser: Improve const-correctnessAndreas Rheinhardt2022-07-31
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/ilbcdec: Move transient GetBitContext from ctx to stackAndreas Rheinhardt2022-07-31
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/ilbcdec: Fix const correctnessAndreas Rheinhardt2022-07-31
| | | | | | Also constify everything that can be constified. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/cinepakenc: Avoid casting const awayAndreas Rheinhardt2022-07-31
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/dxv: Don't cast const away unnecessarilyAndreas Rheinhardt2022-07-31
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/diracdsp: Don't cast const away unnecessarilyAndreas Rheinhardt2022-07-31
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/fitsenc: Don't cast const away unnecessarilyAndreas Rheinhardt2022-07-31
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/gif: Remove redundant castAndreas Rheinhardt2022-07-31
| | | | | | Possible since 529a9893d769f381b72785c500662be2020da5fe. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/xwdenc: Don't modify input frameAndreas Rheinhardt2022-07-31
| | | | | | | | | These modifications were actually meant to be applied to the coded_frame, yet 08b31a72dbcf2935e871ef7c1ffa96ae200f78aa changed this and so this code has not been removed when coded_frame has been removed in 11bc79089378a5ec00547d0f85bc152afdf30dfa. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/threadframe: Constify the frame in ff_thread_await_progressAndreas Rheinhardt2022-07-30
| | | | | | It is safe to call it on a const ThreadFrame*. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/proresdata: Move data only used by ff_prores_ks_encoder to itAndreas Rheinhardt2022-07-30
| | | | | | | In this case, this allows to inline the initial run_cb and lev_cb values. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/ttmlenc: Deduplicate ttml_default_namespacing stringAndreas Rheinhardt2022-07-30
| | | | | | | | | | | String literals are allowed to be deduplicated (and toolchains are already capable of doing so), yet the same is not allowed for named arrays (even when they contain strings). Therefore use a const char *const pointing to an unnamed string literal for ttml_default_namespacing. Reviewed-by: Jan Ekström <jeebjp@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/alac: don't fail if channels aren't set during init() when extradata ↵James Almer2022-07-30
| | | | | | | | | | | is valid The decoder is meant to use it as a fallback if the value in extradata is invalid. Regression since d199099be. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/aacdec: print a log message when treating mono HE-AAC as stereoJames Almer2022-07-30
| | | | | | | Since this behavior is intentional, use the VERBOSE level instead of WARNING as it's nothing the user should worry about. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/encode:: generate ICC profilesNiklas Haas2022-07-30
| | | | | | | | | | | | | | | | Only if requested, and only if the codec signals support for ICC profiles. Implementation roughly matches the functionality of the existing vf_iccgen filter, albeit with some reduced flexibility and no caching. Ideally, we'd also only do this on the first frame (e.g. mjpeg, apng), but there's no meaningful way for us to distinguish between this case and e.g. somebody using the image2 muxer, in which case we'd want to attach ICC profiles to every frame in the stream. Closes: #9672 Signed-off-by: Niklas Haas <git@haasn.dev>
* avcodec/decode: parse ICC profilesNiklas Haas2022-07-30
| | | | | | | | | Implementation for the decode side of the ICC profile API, roughly matching the behavior of the existing vf_iccdetect filter. Closes: #9673 Signed-off-by: Niklas Haas <git@haasn.dev>
* avcodec: add common fflcms2 boilerplateNiklas Haas2022-07-30
| | | | | | | | | | | | | Handling this in general code makes more sense than handling it in individual codec files, because it would be a lot of unnecessary code duplication for the plenty of formats that support exporting ICC profiles (jpg, png, tiff, webp, jxl, ...). encode.c and decode.c will be in charge of initializing this state as needed, so we merely need to make sure to uninit it afterwards from the common destructor path. Signed-off-by: Niklas Haas <git@haasn.dev>
* avcodec: add API for automatic handling of icc profilesNiklas Haas2022-07-30
| | | | | | | | | | | | | | | This functionally already exists, but as pointed out in #9672 and #9673, requiring users to manually include filters is clumsy, error-prone and hard to use together with tools like ffplay. To streamline ICC profile support, add a new AVCodecContext flag to globally enable reading and writing ICC profiles, automatically, for all appropriate media types. Note that this commit only includes the new API. The implementation is split off to separate commits for readability. Signed-off-by: Niklas Haas <git@haasn.dev>
* avcodec/codec_internal: add cap for ICC profile supportNiklas Haas2022-07-30
| | | | | | | | | | | | | | | | | | | | | | Codecs that can read/write ICC profiles deserve a special capability so the common logic in encode.c/decode.c can decide whether or not there needs to be any special handling for ICC profiles. The motivation here is to be able to use it to decide whether or not an ICC profile needs to be generated in the encode path, but it might as well get added to decoders as well for purely informative reasons. It's not entirely clear to me whether the "thp" and "smvjpeg" variants of "mjpeg" should have this capability set or not, given that the code technically supports it but I somehow doubt these files may contain them. In either case, this cap is purely informative for decoders so it doesn't matter too much either way. It's also not entirely clear whether the "amv" encoder should signal ICC profile support, but again erring on the side of caution, we probably *shouldn't* be generating (and encoding!) ICC profiles for this type of media file. Signed-off-by: Niklas Haas <git@haasn.dev>