summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* tests/fate/matroska: add tests for side data preferenceavoption_listAnton Khirnov2024-03-04
| | | | Cf. #10857
* lavc/*dec: use side data preference for mastering display/content light metadataAnton Khirnov2024-03-04
|
* avcodec/hevcdec: switch to ff_frame_new_side_data_from_bufNiklas Haas2024-03-04
| | | | | | | For consistency, even though this cannot be overriden at the packet level. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* avcodec/mjpegdec: use ff_frame_new_side_dataNiklas Haas2024-03-04
| | | | | For consistency, even though this can't (yet) be overriden at the packet level.
* avcodec/snowdec: use ff_frame_new_side_dataNiklas Haas2024-03-04
| | | | | For consistency, even though this cannot be overriden at the packet level.
* avcodec/h2645_sei: use ff_frame_new_side_data_from_bufNiklas Haas2024-03-04
| | | | | | | For consistency, even though this cannot be overriden at the packet level. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* avcodec/mpeg12dec: use ff_frame_new_side_dataNiklas Haas2024-03-04
| | | | | For consistency, even though this cannot be overriden at the packet level.
* avcodec/dpx: respect side data preferenceNiklas Haas2024-03-04
| | | | | If the time code side data is overridden by the packet level, we also make sure not to update `p->metadata` to a mismatched timecode.
* avcodec/libdav1d: respect side data preferenceNiklas Haas2024-03-04
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* avcodec/webp: respect side data preferenceNiklas Haas2024-03-04
|
* avcodec/tiff: respect side data preferenceNiklas Haas2024-03-04
|
* avcodec/pngdec: respect side data preferenceNiklas Haas2024-03-04
|
* avcodec/mpeg12dec: respect side data preferenceNiklas Haas2024-03-04
| | | | | | | We only need to consider side data types that may possibly come from the packet. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* avcodec/mjpegdec: respect side data preferenceNiklas Haas2024-03-04
|
* avcodec/libjxldec: respect side data preferenceNiklas Haas2024-03-04
| | | | | | | Also fixes a memory leak where the side data was previously not properly cleaned up on OOM. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* avcodec/hevcdec: respect side data preferenceNiklas Haas2024-03-04
| | | | | | | If the time code side data is overridden by the packet level, we also make sure not to update `out->metadata` to a mismatched timecode. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* lavc/hevcdec: pass an actual codec context to ff_h2645_sei_to_frame()Anton Khirnov2024-03-04
| | | | Needed by following commit.
* avcodec/h264_slice: respect side data preferenceNiklas Haas2024-03-04
| | | | | If the time code side data is overridden by the packet level, we also make sure not to update `out->metadata` to a mismatched timecode.
* avcodec/cri: respect side data preferenceNiklas Haas2024-03-04
| | | | This function was already ignoring OOM errors.
* avcodec/av1dec: respect side data preferenceNiklas Haas2024-03-04
|
* lavc: add content light/mastering display side data wrappersAnton Khirnov2024-03-04
|
* avcodec: add internal side data wrappersNiklas Haas2024-03-04
| | | | | | | | The signature of these wrappers is more complicated due to a need to distinguish between "failed allocating side data" and "side data was already present". Signed-off-by: Anton Khirnov <anton@khirnov.net>
* lavc: add a decoder option for configuring side data preferenceAnton Khirnov2024-03-04
| | | | This and the following commits fix #10857
* lavu/opt: add array optionsAnton Khirnov2024-03-04
|
* lavu/opt: distinguish between native and foreign access for AVOption fieldsAnton Khirnov2024-03-04
| | | | | | | | Native access is from the code that declared the options, foreign access is from code that is using the options. Forbid foreign access to AVOption.offset/default_val, for which there is no good reason, and which should allow us more freedom in extending their semantics in a compatible way.
* lavu/opt: factor per-type dispatch out of av_opt_copy()Anton Khirnov2024-03-04
| | | | Will be useful in following commits.
* libavutil/opt: rework figuring out option sizesAnton Khirnov2024-03-04
| | | | | | | | | | Replace the opt_size() function, currently only called from av_opt_copy(), with * a constant array of element sizes * a function that signals whether an option type is POD (i.e. memcpyable) or not Will be useful in following commits.
* lavu/opt: factor per-type dispatch out of av_opt_set()Anton Khirnov2024-03-03
| | | | Will be useful in following commits.
* lavu/opt: factor per-type dispatch out of av_opt_get()Anton Khirnov2024-03-03
| | | | Will be useful in following commits.
* libavformat/dvdvideo: add DVD-Video demuxer, powered by libdvdread and libdvdnavMarth642024-03-02
| | | | | Signed-off-by: Marth64 <marth64@proxyid.net> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* avcodec/vvc/vvcdec: allow vvc_decode_close() on failed openMichael Niedermayer2024-03-02
| | | | | | | | Fixes: division by 0 Fixes: 67008/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_VVC_fuzzer-5873503163187200 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* configure: Add missing vvc_decoder->cbs_h266 dependencyAndreas Rheinhardt2024-03-02
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/x86/rv40dsp, simple_idct: Remove remnants of MMXAndreas Rheinhardt2024-03-02
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* tests/checkasm: Improve included headersAndreas Rheinhardt2024-03-02
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* checkasm/vvc_mc: Don't use declare_func_emmsAndreas Rheinhardt2024-03-02
| | | | | | | | There is no MMX DSP code for VVC, so one can use the stricter declare_func which also tests that we are not in MMX mode at the end of this function. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vvc/vvc_mvs: Add proper header includeAndreas Rheinhardt2024-03-02
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vvc/vvc_intra: Move utils out of vvc_intra.cAndreas Rheinhardt2024-03-02
| | | | | | | | | | | | Otherwise vvc_intra.o gets pulled in by the vvc_mc checkasm test and it in turn pulls vvc_ctu.o and then the rest of vvcdec and lavc in. Besides being bad size-wise this also has the downside that it pulls in avpriv_(cga|vga16)_font from libavutil which are marked as being imported from another library when building libavcodec as a DLL and this breaks checkasm because it links both lavc and lavu statically. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/svq1enc: Move initializing DSP out of svq1enc.cAndreas Rheinhardt2024-03-02
| | | | | | | | | | | | Otherwise svq1enc.o gets pulled in by the svq1encdsp checkasm test and it in turn pulls the rest of lavc in. Besides being bad size-wise this also has the downside that it pulls in avpriv_(cga|vga16)_font from libavutil which are marked as being imported from another library when building libavcodec as a DLL and this breaks checkasm because it links both lavc and lavu statically. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/aacenc: Move initializing DSP out of aacenc.cAndreas Rheinhardt2024-03-02
| | | | | | | | | | | | Otherwise aacenc.o gets pulled in by the aacencdsp checkasm test and it in turn pulls the rest of lavc in. Besides being bad size-wise this also has the downside that it pulls in avpriv_(cga|vga16)_font from libavutil which are marked as being imported from another library when building libavcodec as a DLL and this breaks checkasm because it links both lavc and lavu statically. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fftools/ffmpeg_demux, sync_queue: Constify a bitAndreas Rheinhardt2024-03-02
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* swresample/swresample: Constify swr_convert()Andreas Rheinhardt2024-03-02
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avutil/timestamp: Constify av_ts_make_time_string()Andreas Rheinhardt2024-03-02
| | | | | | (Actually, the time base should be passed by value.) Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/avio: Make avio_print_string_array() accept const pointersAndreas Rheinhardt2024-03-02
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/bsf/mp3_header_decompress: Remove BSFAndreas Rheinhardt2024-03-02
| | | | | | | | | | | | | | | | | This BSF is supposed to be used in conjunction with mp3_header_compress, which has been removed more than ten years ago in commit c6080d89009056530119ab794ad02e4d515c7754. It mangled the headers by removing the CRC field as well as fields that are supposed to stay constant for the entirety of a stream (which are put into extradata). This made these files unplayable; they need to be decompressed with the BSF first (which does not happen automatically). Even in this case the CRC does not get restored. I am not aware that such compressed files exist at all; therefore this commit removes the BSF completely. Reviewed-by: Anton Khirnov <anton@khirnov.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avutil/hwcontext_vulkan: Allocate pub and priv frames hwctx togetherAndreas Rheinhardt2024-03-01
| | | | | | | | | This is possible because the lifetime of both coincide. Besides reducing the number of allocations this also simplifies access to VulkanFramesPriv as one no longer has to go through AVHWFramesInternal. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avutil/hwcontext_vulkan: Allocate public and priv device hwctx togetherAndreas Rheinhardt2024-03-01
| | | | | | | | | This is possible because the lifetime of both coincide. Besides reducing the number of allocations this also simplifies access to VulkanDevicePriv as one no longer has to go through AVHWDeviceInternal. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avutil/hwcontext_cuda: Allocate public and internal device ctx jointlyAndreas Rheinhardt2024-03-01
| | | | | Reviewed-by: Timo Rothenpieler <timo@rothenpieler.org> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avutil/hwcontext_cuda: Don't use AVHWFramesInternal.privAndreas Rheinhardt2024-03-01
| | | | | | | | | Use AVHWFramesContext.hwctx instead. This simplifies accesses to VDPAUFramesContext as one no longer has to go through AVHWFramesInternal. Tested-by: Timo Rothenpieler <timo@rothenpieler.org> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avutil/hwcontext: Clarify documentation of AVHWFramesContext.hwctxAndreas Rheinhardt2024-03-01
| | | | | | | | | | | | Correct the names of the format-specific headers (not hwframe_*.h) and clarify that the user shall ignore this field if there is no public context associated with it. In particular, this allows to use this field for the private context alone if there is no public context. This can't break conforming API users, because they always have to live with the possibility that a new public context has been introduced. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* lavu/opt: get rid of useless read_number() callsAnton Khirnov2024-03-01
| | | | | The option type is known and fixed for all these, so reading the value directly is simpler and more clear.