aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* avdevice/audiotoolbox: convert to new channel layout-APIJames Almer2022-11-081-3/+3
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* Changelog: add forgotten nvenc av1 entryTimo Rothenpieler2022-11-071-0/+1
|
* fftools/ffprobe: Loop over correct number of streams when flushing decodersDerek Buitenhuis2022-11-071-1/+1
| | | | | | | | | | | | | Some formats like FLV can dynamically add streams during packet reading. FFprobe does check for this and reallocates the global stream info, but does not reallocate InputFrame's streams and decoders when this happens, which, as a result, could have caused flushing to occur on an out of bounds stream index, since the flush loop iterates over fmt_ctx's nb_streams, and not ifile's, despite using ifile's streams. This fixes an out of bounds read and segfult. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* avcodec/tests/fft: Fix building with CONFIG_MDCT disabledMartin Storsjö2022-11-071-0/+4
| | | | | | | Since e6afa61be97674312e36c9b6f8bb5fba009232e7, no components in libavcodec enable CONFIG_MDCT. This fixes building "make testprogs". Signed-off-by: Martin Storsjö <martin@martin.st>
* avfilter/af_speechnorm: change initial gain statePaul B Mahol2022-11-071-1/+1
| | | | Stops doing unwanted fade-in at start.
* avfilter/af_speechnorm: remove long search range for min gainPaul B Mahol2022-11-071-3/+1
| | | | Effective only for linked channels processing.
* avfilter/af_speechnorm: implement rms optionPaul B Mahol2022-11-072-6/+31
|
* fate/video: vqc testcasePeter Ross2022-11-072-0/+9
|
* fate/audio: msnsiren test casePeter Ross2022-11-071-0/+5
|
* fate/microsoft: add mss2 region test casePeter Ross2022-11-072-1/+9
|
* libavcodec/qsvenc: Add skip_frame support to qsvencWenbin Chen2022-11-075-0/+87
| | | | | | | | | | | | | | | | | Add skip_frame support to qsvenc. Use per-frame metadata "qsv_skip_frame" to control it. skip_frame option defines the behavior of qsv_skip_frame. no_skip: Frame skipping is disabled. insert_dummy: Encoder inserts into bitstream frame where all macroblocks are encoded as skipped. insert_nothing: Similar to insert_dummy, but encoder inserts nothing. The skipped frames are still used in brc. For example, gop still include skipped frames, and the frames after skipped frames will be larger in size. brc_only: skip_frame metadata indicates the number of missed frames before the current frame. Signed-off-by: Wenbin Chen <wenbin.chen@intel.com>
* doc/encoders: add doc of the tier option for hevc_qsvnyanmisaka2022-11-071-0/+9
| | | | Signed-off-by: nyanmisaka <nst799610810@gmail.com>
* libavcodec/qsvenc_hevc: add tier optionnyanmisaka2022-11-073-1/+8
| | | | | | | Without this change, MSDK/VPL always defaults the HEVC tier to MAIN if the -level is specified. Also, according to the HEVC specs, only level >= 4 can support High Tier. Signed-off-by: nyanmisaka <nst799610810@gmail.com>
* doc/filters.texi: update overlay_vaapi documentationsoftworkz2022-11-071-11/+40
| | | | Signed-off-by: softworkz <softworkz@hotmail.com>
* doc/filters.texi: remove incorrect statementsoftworkz2022-11-071-1/+0
| | | | Signed-off-by: softworkz <softworkz@hotmail.com>
* avfilter/overlay_vaapi: enable expressions for overlay parameterssoftworkz2022-11-071-14/+127
| | | | Signed-off-by: softworkz <softworkz@hotmail.com>
* avfilter/overlay_vaapi: precalculate blend_state, enable pixel alphasoftworkz2022-11-071-2/+42
| | | | Signed-off-by: softworkz <softworkz@hotmail.com>
* avfilter/overlay_vaapi: add framesync optionssoftworkz2022-11-071-3/+12
| | | | Signed-off-by: softworkz <softworkz@hotmail.com>
* avfilter/overlay_vaapi: remove redundant .get_buffer assignmentssoftworkz2022-11-071-2/+0
| | | | Signed-off-by: softworkz <softworkz@hotmail.com>
* avfilter/overlay_vaapi: reformat optionssoftworkz2022-11-071-10/+5
| | | | Signed-off-by: softworkz <softworkz@hotmail.com>
* avfilter/overlay_vaapi: handle secondary null inputsoftworkz2022-11-071-45/+49
| | | | | | Currently segfaults in this case. Signed-off-by: softworkz <softworkz@hotmail.com>
* avfilter/overlay_vaapi: remove double framesync initsoftworkz2022-11-071-26/+5
| | | | Signed-off-by: softworkz <softworkz@hotmail.com>
* avfilter/overlay_vaapi: build filter params just oncesoftworkz2022-11-071-4/+4
| | | | Signed-off-by: softworkz <softworkz@hotmail.com>
* avfilter/overlay_vaapi: use FILTER_SINGLE_PIXFMTsoftworkz2022-11-071-29/+1
| | | | Signed-off-by: softworkz <softworkz@hotmail.com>
* avcodec/wmaprodec: Remove unused variableAndreas Rheinhardt2022-11-061-1/+1
| | | | | | | Unused since 5f1111e42ea7763d24d74b596285f5daeaa203f7 (replaced by a new "err" variable). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vc1data: Mark tables as hiddenAndreas Rheinhardt2022-11-061-0/+3
| | | | | | | | | This e.g. allows compilers to bake the offset implied by using ff_vc1_b_field_mvpred_scales[3] into the general offset; for certain arches this is also necessary in order to avoid building suboptimal code. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/motion_est: Remove unused fieldAndreas Rheinhardt2022-11-061-1/+0
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mpegvideo_enc: Move initializing QpelDSPCtx to mpeg4videoenc.cAndreas Rheinhardt2022-11-063-3/+3
| | | | | | | | It is the only encoder supporting quarter samples. This also allows to remove the qpeldsp dependency from mpegvideo_enc. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/h263dec: Move initializing qpel DSP context to mpeg4videodec.cAndreas Rheinhardt2022-11-062-2/+2
| | | | | | | The MPEG-4 decoder is the only decoder based upon H.263 that supports quarterpel motion vectors. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vc1dec: Remove VC-1 decoders->H.263 decoder dependencyAndreas Rheinhardt2022-11-063-15/+31
| | | | | | | | | | | | | | The only thing from the H.263 decoder that is reachable by the VC-1 decoder is ff_h263_decode_init(); but it does not even use all of it; e.g. h263dsp is unused and so are the VLCs initialized in ff_h263_decode_init() (they amount to about 77KB which are now no longer touched). Notice that one could also call ff_idctdsp_init() directly instead of ff_mpv_idct_init(); one could even do so in ff_vc1_init_common(). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mpegvideo_dec: Don't use MotionEstContext as scratch spaceAndreas Rheinhardt2022-11-064-17/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Decoders that might use quarter pixel motion estimation (namely MPEG-4 as well as the VC-1 family) currently use MpegEncContext.me.qpel_(put|avg) as scratch space for pointers to arrays of function pointers. (MotionEstContext contains such pointers as it supports quarter pixel motion estimation.) The MotionEstContext is unused apart from this for the decoding part of mpegvideo. Using the context at all is for decoding is actually unnecessary and easily avoided: All codecs with quarter pixels set me.qpel_avg to qdsp.avg_qpel_pixels_tab, so one can just unconditionally use this in ff_mpv_reconstruct_mb(). MPEG-4 sets qpel_put to qdsp.put_qpel_pixels_tab or to qdsp.put_no_rnd_qpel_pixels_tab based upon whether the current frame is a b-frame with no_rounding or not, while the VC-1-based decoders set it to qdsp.put_qpel_pixels_tab unconditionally. Given that no_rounding is always zero for VC-1, using the same check for VC-1 as well as for MPEG-4 would work. Since ff_mpv_reconstruct_mb() already has exactly the right check (for hpeldsp), it can simply be reused. (This change will result in ff_mpv_motion() receiving a pointer to an array of NULL function pointers instead of a NULL pointer for codecs without qpeldsp (like MPEG-1/2). It doesn't matter.) Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vc1_block: Remove redundant writeAndreas Rheinhardt2022-11-061-1/+0
| | | | | | | | | vc1_decode_skip_blocks() is only called if the current picture is a P frame. So setting pict_type to AV_PICTURE_TYPE_P is redundant; removing it makes pict_type read-only in vc1_block.c (as it should be). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vc1dec: Split VC-1 decoders from msmpeg4Andreas Rheinhardt2022-11-064-18/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The only msmpeg4 code that is ever executed by the VC-1 based decoders is ff_msmpeg4_decode_init() and what is directly reachable from it. This is: a) A call to av_image_check_size(), then ff_h263_decode_init(), b) followed by setting [yc]_dc_scale_table and initializing scantable/permutations. c) Afterwards, some static tables are initialized. d) Finally, slice_height is set. The replacement for ff_msmpeg4_decode_init() performs a) just like now; it also sets [yc]_dc_scale_table, but it only initializes inter_scantable and intra_scantable and not permutated_intra_[hv]_scantable: The latter are only used inside decode_mb callbacks which are only called in ff_h263_decode_frame() which is unused for VC-1.* The static tables initialized in c) are not used at all by VC-1 (the ones that are used have been factored out in previous commits); this avoids touching 327KiB of .bss. slice_height is also not used by the VC-1 decoder (setting it in ff_msmpeg4_decode_init() is probably redundant after b34397b4cd780b5692548e7d021ec884c7217dba). *: It follows from this that the VC-1 decoder is not really based upon the H.263 decoder either; changing this will be done in a future commit. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/msmpeg4data: Move data shared between msmpeg4 and VC-1 outAndreas Rheinhardt2022-11-0614-251/+323
| | | | | | | | This is in preparation for splitting VC-1 from msmpeg4. (msmpeg4data.c was originally intended to be just this; 9488b966c76a7a52e9a1f7756bda82dbe1070399 changed it). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vc1dec: Return early upon errorAndreas Rheinhardt2022-11-061-15/+12
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vc1dec: Factor (re)initializing code outAndreas Rheinhardt2022-11-063-11/+21
| | | | | | | This is in preparation for removing the msmpeg4 dependency from VC-1. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vc1dec: Don't open and close decoder during initAndreas Rheinhardt2022-11-061-10/+1
| | | | | | | | | | | | | | | This is done since 16af29a7a6deff3f6081fca1e36ad96cf8fec77d (and is actually unnecessary, because the tables initialized in ff_msmpeg4_decode_init() are only ever used in vc1_block.c which is only entered after a call to ff_msmpeg4_decode_init()) in a very ugly manner; said manner had the byproduct of involving lots of unnecessary allocations and even opening and closing a hwaccel in case one is used. This commit achieves the aim of 16af29a7a6deff3f6081fca1e36ad96cf8fec77d by initializing the VLCs used by VC-1 in ff_vc1_init_common(). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/msmpeg4dec: Factor initializing VLCs shared with VC-1 outAndreas Rheinhardt2022-11-063-17/+33
| | | | | | It will be useful in the following commits. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vc1_block: Don't duplicate #definesAndreas Rheinhardt2022-11-065-26/+34
| | | | | | | | | | VC1 shares some VLCs with MSMPEG-4, but vc1_block.c simply duplicates the defines instead of including the appropriate headers; furthermore, use a proper prefix for these defines: DC_VLC_BITS is also used by other codecs. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vc1: Move ff_vc1_init_common() to vc1dec.cAndreas Rheinhardt2022-11-063-362/+362
| | | | | | | This is possible given that it is no longer used by the parser. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vc1data: Move VLC codes/lengths tables to a headerAndreas Rheinhardt2022-11-064-908/+877
| | | | | | | and include said header at the place where the VLCs are created. This allows to make said tables static. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vc1data: Remove declarations of inexistent arraysAndreas Rheinhardt2022-11-061-4/+0
| | | | | | | | | | ff_vc1_norm6_spec has been removed in commit 356be9307cbffa1226bed52b26aa2ac9c7af174f (and it seems that it has never been used); the declarations of the 8x8_zz arrays meanwhile have been added in f0c02e1cbc71043ffe8c1fa44f12330a63f9df10 without having ever been defined. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vc1data: Remove duplicate definesAndreas Rheinhardt2022-11-062-21/+3
| | | | | | | The defines in vc1data.c are duplicates of the ones in vc1data.h; they are also pointless, because they are not used anywhere. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vc1: Move setting res_fasttx-IDCT functions to vc1dec.cAndreas Rheinhardt2022-11-063-12/+10
| | | | | | It allows to avoid compiling simple_idct.o for the VC-1 parser. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vc1_parser: Don't call ff_vc1_init_common()Andreas Rheinhardt2022-11-061-1/+2
| | | | | | | | | | | | It is unnecessary to initialize the VLCs: The only VLC that was only ever used by the code reachable from the parser was ff_vc1_bfraction_vlc; and this VLC has been removed. Yet vc1dsp is still needed for startcode_find_candidate. Maybe this should be factored out of vc1dsp in a later commit. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vc1_parser: Set parse_only only onceAndreas Rheinhardt2022-11-061-1/+1
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vc1: Don't use VLC to read bfractionAndreas Rheinhardt2022-11-063-29/+4
| | | | | | | The VLC here is very simple, so that it can just be read by two get_bits(). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vc1: Don't check for errors for complete VLCAndreas Rheinhardt2022-11-061-1/+1
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vc1: Remove always-false checkAndreas Rheinhardt2022-11-061-2/+0
| | | | | | | | | Added in b50be4e38dc83389925dc14f24fa11e660d32197; this check was racy back then (as the VLC could be initialized concurrently) and it is redundant (always-false) since commit c742ab4e81bb9dcabfdab006d6b8b09a5808c4ce. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vc1: Don't check for AVCodecContext.codecAndreas Rheinhardt2022-11-061-2/+0
| | | | | | | | | | | | | | | This check has been added in c617bed34f39a122ab1f89581ddce9cc63885383, merging ee769c6a7c1d4ec6560f5e5a6f457b770b10fb33 to fix a possible segfault if AVCodecContext.codec is not set as it may be during parsing. While this fixes the segfault, it has the unfortunate side effect that it makes the output of the parser dependent on whether a decoder is set (and ultimately available). The fix later applied in 5d2be71b9ecf2a88752666a2c4039f4d98419d35 does not have this downside and makes checking AVCodecContext.codec superfluous. So remove this check. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>