summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* fftools/ffmpeg_filter: drop a redundant checkAnton Khirnov2024-04-09
| | | | | fg_finalise_bindings() already checks that all filtergraph outputs are connected.
* fftools/ffmpeg_filter: accept a caller-provided output nameAnton Khirnov2024-04-09
| | | | | | Do not construct it from OutputStream manually. Will allow decoupling filtering from encoding in future commits.
* fftools/ffmpeg: drop OutputStream.is_cfrAnton Khirnov2024-04-09
| | | | | It is used in a single place in the filtering code, so it is better to inline it there.
* fftools/ffmpeg_filter: pass vsync method through OutputFilterOptionsAnton Khirnov2024-04-09
| | | | | | Do not read it from OutputStream directly. Will allow decoupling filtering from encoding in future commits.
* fftools/ffmpeg_filter: stop accessing encoder AVCodecContextAnton Khirnov2024-04-09
| | | | | | Pass all the necessary value through OutputFilterOptions. Will allow decoupling filtering from encoding in future commits.
* fftools/ffmpeg_filter: move the MJPEG format selection hack to muxer setupAnton Khirnov2024-04-09
| | | | That, if anywhere, is a more appropriate place for it.
* fftools/ffmpeg_filter: pass enc_timebase through OutputFilterOptionsAnton Khirnov2024-04-09
| | | | | Reduces the need to access OutputStream, which will allow decoupling filtering from encoding in future commits.
* fftools/ffmpeg: warn about ignored -enc_time_base for subtitles earlierAnton Khirnov2024-04-09
| | | | | Can do it as soon as that option is parsed, no need to postpone it until opening the encoder.
* fftools/ffmpeg_filter: pass keep_pix_fmt through OutputFilterOptionsAnton Khirnov2024-04-09
| | | | | Reduces the need to access OutputStream, which will allow decoupling filtering from encoding in future commits.
* fftools/ffmpeg_filter: pass ts offset through OutputFilterOptionsAnton Khirnov2024-04-09
| | | | | Reduces the need to access OutputFile, which will allow decoupling filtering from encoding in future commits.
* fftools/ffmpeg_filter: check that filter type matches output stream typeAnton Khirnov2024-04-09
| | | | For simple filtergraphs. For complex filtergraphs they always match.
* fftools/ffmpeg_filter: stop accessing AVCodecContext.codecAnton Khirnov2024-04-09
| | | | | | | Instead pass the encoder through a newly-added output options struct, analogous to previously added input options. Will allow decoupling filtering from encoding in future commits.
* fftools/ffmpeg_filter: do not pass OutputStream to set_channel_layout()Anton Khirnov2024-04-09
| | | | It only needs a list of allowed layouts and the requested layout.
* lavfi/avfilter: add an "auto" constant to the threads optionAnton Khirnov2024-04-09
| | | | | Analogous to the same constant in avfiltergraph and avcodec. Cf. f599ae88c25.
* lavfi/vf_scale: fix AVOption flags for "size"/"s"Anton Khirnov2024-04-09
|
* x86/ac3dsp: clear the upper 32 bits for input arguments where neededJames Almer2024-04-08
| | | | | | Fixes checkasm on win64. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/mpegvideo_dec, h264_slice: Return proper error codesAndreas Rheinhardt2024-04-08
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mpeg12dec: Remove redundant mpeg_enc_ctx_allocatedAndreas Rheinhardt2024-04-08
| | | | | | | | Use context_initialized from the underlying MpegEncContext instead. Also don't check before ff_mpv_common_end() in mpeg_decode_end(). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mpegvideo: Remove pointless checkAndreas Rheinhardt2024-04-08
| | | | | | Possible since 315c956cbd14f021e49dac7fc0b906fad1672aad. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mpegvideo_dec: Move getting Picture slot into alloc_picture()Andreas Rheinhardt2024-04-08
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mpegvideo_dec: Factor allocating dummy frame outAndreas Rheinhardt2024-04-08
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mpegvideo_dec: Remove redundant code to reset keyframe flagAndreas Rheinhardt2024-04-08
| | | | | | These AVFrames are blank and therefore the flag is already unset. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mpegvideo_dec: Remove obsolete current_picture_ptr reuse codeAndreas Rheinhardt2024-04-08
| | | | | | Obsolete since at least 74d623914f02aa79447df43a742efd0929dded04. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mpeg12dec: Remove unnecessary FFCodec.closeAndreas Rheinhardt2024-04-08
| | | | | | | The ipu decoder never calls ff_mpv_common_init() or allocates anything else that would need to be freed. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mpegvideo_dec: Don't emit non-keyframe warning for H.261Andreas Rheinhardt2024-04-08
| | | | | | | | | H.261 does not have keyframes (or indeed frame types) at all, so this warning is not warranted. Also remove an always-true check while at it. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mpeg12dec: Don't pretend MPEG-1/2 to support alphaAndreas Rheinhardt2024-04-08
| | | | | | | | (FF_PTR_ADD has to be kept although MPEG-1/2 only supports YUV pixel formats because our decoder also supports decoding to AV_PIX_FMT_GRAY8 depending upon CONFIG_GRAY.) Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mpeg12dec: Remove redundant checkAndreas Rheinhardt2024-04-08
| | | | | | This code only gets executed for the first field. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mpegvideo_dec, mpeg12dec: Move MPEG1/2 code to mpeg12dec.cAndreas Rheinhardt2024-04-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Up until now, ff_mpv_frame_start() offsets the data of the current picture and doubles the linesizes of all pictures if the current picture is field-based so that data and linesize allow to address the current field only. This is done based upon the current picture_structure value. Only two mpegvideo-based decoders ever set this field: mpeg1/2 and VC-1; but the latter only does it after ff_mpv_frame_start() (when using hardware-acceleration and in order to signal it to the DXVA2 hwaccel) in which case no offset is applied in ff_mpv_frame_start(). So only one decoder actually wants this offset*; therefore move the code performing it to mpeg12dec.c. *: VC-1 doubles linesize when using field_mode (not only the picture's linesize, but also uvlinesize and linesize), yet it does not offset anything. This is further proof that this should not be performed generically. Also move MPEG-1/2 specific setting of the top-field-first flag. (The change here implies that the AVFrame in current_picture may have different top-field-first flags than the AVFrame from current_picture_ptr, but this doesn't matter as only the latter's are used.) Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mpeg12: Remove always-false checkAndreas Rheinhardt2024-04-08
| | | | | | Forgotten in 7800cc6e82068c6dfb5af53817f03dfda794c568. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mpegutils: Move definitions to better placesAndreas Rheinhardt2024-04-08
| | | | | | | | | FRAME_SKIPPED -> h263dec.h CANDIDATE_MB_TYPE_* -> mpegvideoenc.h INPLACE_OFFSET -> mpegvideoenc.h enum OutputFormat -> mpegvideo.h Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mpegvideo_enc: Don't update current_picture unnecessarilyAndreas Rheinhardt2024-04-08
| | | | | | | | current_picture is not changed after frame_start() at all and it therefore does not need to be updated (i.e. copied to the slice thread contexts) a second time. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vvc/dec: fix typoJames Almer2024-04-08
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/vvc/ps: reset sps_id_used on flushJames Almer2024-04-08
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/ac3: Implement sum_square_butterfly_float for aarch64 NEONGeoff Hill2024-04-08
| | | | | Signed-off-by: Geoff Hill <geoff@geoffhill.org> Signed-off-by: Martin Storsjö <martin@martin.st>
* avcodec/ac3: Implement sum_square_butterfly_int32 for aarch64 NEONGeoff Hill2024-04-08
| | | | | Signed-off-by: Geoff Hill <geoff@geoffhill.org> Signed-off-by: Martin Storsjö <martin@martin.st>
* avcodec/ac3: Implement ac3_extract_exponents for aarch64 NEONGeoff Hill2024-04-08
| | | | | Signed-off-by: Geoff Hill <geoff@geoffhill.org> Signed-off-by: Martin Storsjö <martin@martin.st>
* avcodec/ac3: Implement ac3_exponent_min for aarch64 NEONGeoff Hill2024-04-08
| | | | | Signed-off-by: Geoff Hill <geoff@geoffhill.org> Signed-off-by: Martin Storsjö <martin@martin.st>
* avcodec/ac3: Implement float_to_fixed24 for aarch64 NEONGeoff Hill2024-04-08
| | | | | Signed-off-by: Geoff Hill <geoff@geoffhill.org> Signed-off-by: Martin Storsjö <martin@martin.st>
* avcodec/dv: Don't pretend initializing work chunks can failAndreas Rheinhardt2024-04-07
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/huffyuvdec: Use assert to check for things that can't failAndreas Rheinhardt2024-04-07
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/huffyuvdec: Use bytestream API for byte-aligned readsAndreas Rheinhardt2024-04-07
| | | | | | This also allows to remove the padding from these buffers. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/huffyuvenc: Deduplicate optionsAndreas Rheinhardt2024-04-07
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/huffyuvenc: Avoid code duplicationAndreas Rheinhardt2024-04-07
| | | | | | This also fixes misindentated code. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/huffyuvenc: Avoid duplicate variablesAndreas Rheinhardt2024-04-07
| | | | | | Also simplify assigningfake strides. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/huffyuv: Return proper error codeAndreas Rheinhardt2024-04-07
| | | | | | Also forward said error code in the encoder. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/huffyuv(dec|enc): Use union for temp/temp16Andreas Rheinhardt2024-04-07
| | | | | | | | These pointers already point to the same buffers, so using a union is possible and avoids the overhead of syncing the pointers (and saves some memory). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/huffyuv: Inline common alloc/free functions in their callersAndreas Rheinhardt2024-04-07
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/huffyuvdec: Don't zero unnecessarilyAndreas Rheinhardt2024-04-07
| | | | | | | A decoder's private data has already been zeroed (apart from options) before init is called. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* lavc/vvc: Error if SPS ID is duplicated within CVSFrank Plowman2024-04-07
| | | | | | | | | | | | | | | | | | | | Key line from the spec is: "All SPS NAL units with a particular value of sps_seq_parameter_set_id in a CVS shall have the same content." Prior to this patch, the VVC decoder's behaviour on encountering a duplicated SPS ID (within the entire bitstream, not restricted to a CVS) was simply to replace the entry in the SPS lookup table with the new data. Illegal bitstreams with multiple SPSs in the same CVS sharing an ID but differing elsewhere could cause all manner of issues. The patch tracks which SPS IDs have been used in the given CVS using the new sps_id_used field of VVCParamSets. If it encounters an SPS with an ID already in use and whose content differs from the previous SPS, it throws an AVERROR_INVALIDDATA. Signed-off-by: Frank Plowman <post@frankplowman.com>
* avcodec/libdav1d: Don't cast const away unnecessarilyAndreas Rheinhardt2024-04-06
| | | | | | Possible since c89f6ae6899e0f3ffb4f51da1f1776ab16f5b3a0. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>