aboutsummaryrefslogtreecommitdiffstats
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* tests/checkasm: add scene_sad checkasm testNiklas Haas2025-07-175-0/+79
|
* checkasm/swscale: fix function prototypesKacper Michajłow2025-07-174-11/+11
| | | | | | | | | | | This aligns declared function types in checkasm with real definition. Fixes FATE: checkasm-{sw_rgb,sw_scale,sw_yuv2rgb,sw_yuv2yuv} Fixes: runtime error: call to function <func> through pointer to incorrect function type Fixes: c1a0e657638f7007dcc807a2d985c22631fcd6d3 Signed-off-by: Kacper Michajłow <kasper93@gmail.com>
* tests/fate: add fate test for excessive frame buffering when using filtersMarton Balint2025-07-143-0/+35
| | | | | | Based on the command line of ticket #10959. Signed-off-by: Marton Balint <cus@passwd.hu>
* swscale: add support for new 10/12 bit MSB formatsTimo Rothenpieler2025-07-1120-0/+108
|
* avutils/pixfmt: add YUV444/GBRP 10 and 12 bit MSB formatsTimo Rothenpieler2025-07-112-0/+64
|
* fate/seek: fix missing mpeg4video parser dependencyNicolas Gaullier2025-07-051-1/+2
| | | | | Signed-off-by: Nicolas Gaullier <nicolas.gaullier@cji.paris> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* fate/all: fix missing some mov demuxer dependenciesNicolas Gaullier2025-07-054-13/+13
| | | | | | | In aac/aac-fixed, also remove unnecessary aac demuxer dependency. Signed-off-by: Nicolas Gaullier <nicolas.gaullier@cji.paris> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* fate/all: add missing crc/framecrc/md5/framemd5/pipe dependenciesNicolas Gaullier2025-07-0549-207/+217
| | | | | | | | | When CMD is crc/framecrc, always use the macros CRC/FRAMECRC, even if it includes unnecessary requirements for rawvideo/pcm_s16le encoders (as actually noticed in a comment of the Makefile). Signed-off-by: Nicolas Gaullier <nicolas.gaullier@cji.paris> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* fate/all: add missing file protocol dependenciesNicolas Gaullier2025-07-0515-29/+30
| | | | | | | | First, always require file protocol when FATE suite is used. Then, add missing dependencies while removing duplicates. Signed-off-by: Nicolas Gaullier <nicolas.gaullier@cji.paris> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* fate/all: fix multiple dependenciesNicolas Gaullier2025-07-0518-30/+34
| | | | | Signed-off-by: Nicolas Gaullier <nicolas.gaullier@cji.paris> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* fate/hevc: fix multiple dependenciesNicolas Gaullier2025-07-051-4/+4
| | | | | Signed-off-by: Nicolas Gaullier <nicolas.gaullier@cji.paris> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* fate/pcm: fix multiple dependenciesNicolas Gaullier2025-07-051-6/+6
| | | | | Signed-off-by: Nicolas Gaullier <nicolas.gaullier@cji.paris> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* fate/mpeg4: fix multiple dependenciesNicolas Gaullier2025-07-051-6/+5
| | | | | Signed-off-by: Nicolas Gaullier <nicolas.gaullier@cji.paris> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* fate/hlsenc: fix multiple dependenciesNicolas Gaullier2025-07-051-9/+9
| | | | | Signed-off-by: Nicolas Gaullier <nicolas.gaullier@cji.paris> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* fate/cover-art: fix multiple dependenciesNicolas Gaullier2025-07-051-8/+8
| | | | | Signed-off-by: Nicolas Gaullier <nicolas.gaullier@cji.paris> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* fate/ac3: fix multiple dependenciesNicolas Gaullier2025-07-051-5/+5
| | | | | Signed-off-by: Nicolas Gaullier <nicolas.gaullier@cji.paris> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* fate/audio: fix multiple dependenciesNicolas Gaullier2025-07-051-6/+6
| | | | | Signed-off-by: Nicolas Gaullier <nicolas.gaullier@cji.paris> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* fate/aac: fix multiple dependenciesNicolas Gaullier2025-07-051-7/+7
| | | | | Signed-off-by: Nicolas Gaullier <nicolas.gaullier@cji.paris> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* fate/vorbis: fix multiple dependenciesNicolas Gaullier2025-07-051-11/+13
| | | | | Signed-off-by: Nicolas Gaullier <nicolas.gaullier@cji.paris> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* fate/lavf-container: fix multiple dependenciesNicolas Gaullier2025-07-051-3/+3
| | | | | Signed-off-by: Nicolas Gaullier <nicolas.gaullier@cji.paris> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* fate/gapless: fix multiple dependenciesNicolas Gaullier2025-07-051-38/+38
| | | | | Signed-off-by: Nicolas Gaullier <nicolas.gaullier@cji.paris> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* fate/mov: fix multiple dependenciesNicolas Gaullier2025-07-051-16/+22
| | | | | Signed-off-by: Nicolas Gaullier <nicolas.gaullier@cji.paris> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* fate/all: switch-fix mov muxer dependency to mp4 muxer dependencyNicolas Gaullier2025-07-054-12/+12
| | | | | Signed-off-by: Nicolas Gaullier <nicolas.gaullier@cji.paris> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* fate/demux: fix multiple dependenciesNicolas Gaullier2025-07-051-23/+23
| | | | | Signed-off-by: Nicolas Gaullier <nicolas.gaullier@cji.paris> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* fate/all: add missing dependencies for extradata bsfNicolas Gaullier2025-07-057-20/+22
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* tests/Makefile: make easier to check for multiple dependenciesNicolas Gaullier2025-07-051-8/+8
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avfilter/buffersink: keep requesting frames if one activation of the graph ↵Marton Balint2025-07-034-6/+12
| | | | | | | | | | | | | | | | | does not provide one A frame graph activation might not produce a frame in the requested sink, so keep on requesting a frame there unless we encounter a filter activation with buffersrc empty error. This makes av_buffersink_get_frame(_flags) work according to its documentation which claims that EAGAIN is only returned if additional frames must be inserted into the graph. Fate changes are because audio frames will have different sizes at segment boundaries, but content is the same. Signed-off-by: Marton Balint <cus@passwd.hu>
* tests/fate/filter-audio: add anullsink testMarton Balint2025-07-032-0/+9
| | | | | | Tests ticket #11624 with a slight modification. Signed-off-by: Marton Balint <cus@passwd.hu>
* fate/filter-video: add ffprobe test for dual output select filterMarton Balint2025-07-033-0/+32
| | | | Signed-off-by: Marton Balint <cus@passwd.hu>
* avcodec/dfpwmenc: Correctly pad inputAndreas Rheinhardt2025-07-031-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this patch, the DFPWM1a encoder was marked as supporting variable frame sizes. The DFPWM1a format converts eight bytes of input into one output byte and so it simply padded the number of data output by frame->nb_samples * frame->ch_layout.nb_channels / 8 + (frame->nb_samples % 8 > 0 ? 1 : 0) This has several bugs: a) The additional byte leads to eight additional input byte being read; this can read into the frame's padding, i.e. the data can be uninitialized. b) The criterion for whether one should pad is wrong: nb_samples * nb_channels should be tested for divisibility by eight. c) The created frames can be undecodable (at least with our decoder): Our decoder requires the number of bits per frame to divisible by the number of channels, yet the above approach does not guarantee this. d) The padding will be added in the middle of the stream (potentially for every packet). This commit fixes all of this by removing the variable frame size cap and using AVCodecInternal.pad_samples to pad the last frame so that nb_samples * nb_channels is always a multiple of eight. The lavf-dfpwm FATE-test was affected by a). The frames originated from lavfi and were part of an audio frame pool, so that the padding contained data from an earlier (bigger) frame. Now the last frame is properly filled with silence. Reported-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* tests/fate/screen: Add test for skipping cursor with FICAndreas Rheinhardt2025-07-032-1/+128
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/iamf: fix setting channel layout for Scalable layersJames Almer2025-06-248-42/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The way streams are coded in an IAMF struct follows a scalable model where the channel layouts for each layer may not match the channel order our API can represent in a Native order layout. For example, an audio element may have six coded streams in the form of two stereo streams, followed by two mono streams, and then by another two stereo streams, for a total of 10 channels, and define for them four scalable layers with loudspeaker_layout values "Stereo", "5.1ch", "5.1.2ch", and "5.1.4ch". The first layer references the first stream, and each following layer will reference all previous streams plus extra ones. In this case, the "5.1ch" layer will reference four streams (the first two stereo and the two mono) to encompass six channels, which does not match out native layout 5.1(side) given that FC and LFE come after FL+FR but before SL+SR, and here, they are at the end. For this reason, we need to build Custom order layouts that properly represent what we're exporting. ---- Before: Stream group #0:0[0x12c]: IAMF Audio Element: Layer 0: stereo Stream #0:0[0x0]: Audio: opus, 48000 Hz, stereo, fltp (default) Layer 1: 5.1(side) Stream #0:0[0x0]: Audio: opus, 48000 Hz, stereo, fltp (default) Stream #0:1[0x1]: Audio: opus, 48000 Hz, stereo, fltp (dependent) Stream #0:2[0x2]: Audio: opus, 48000 Hz, mono, fltp (dependent) Stream #0:3[0x3]: Audio: opus, 48000 Hz, mono, fltp (dependent) Layer 2: 5.1.2 Stream #0:0[0x0]: Audio: opus, 48000 Hz, stereo, fltp (default) Stream #0:1[0x1]: Audio: opus, 48000 Hz, stereo, fltp (dependent) Stream #0:2[0x2]: Audio: opus, 48000 Hz, mono, fltp (dependent) Stream #0:3[0x3]: Audio: opus, 48000 Hz, mono, fltp (dependent) Stream #0:4[0x4]: Audio: opus, 48000 Hz, stereo, fltp (dependent) Layer 3: 5.1.4 Stream #0:0[0x0]: Audio: opus, 48000 Hz, stereo, fltp (default) Stream #0:1[0x1]: Audio: opus, 48000 Hz, stereo, fltp (dependent) Stream #0:2[0x2]: Audio: opus, 48000 Hz, mono, fltp (dependent) Stream #0:3[0x3]: Audio: opus, 48000 Hz, mono, fltp (dependent) Stream #0:4[0x4]: Audio: opus, 48000 Hz, stereo, fltp (dependent) Stream #0:5[0x5]: Audio: opus, 48000 Hz, stereo, fltp (dependent) ---- AFter: Stream group #0:0[0x12c]: IAMF Audio Element: Layer 0: stereo Stream #0:0[0x0]: Audio: opus, 48000 Hz, stereo, fltp (default) Layer 1: 6 channels (FL+FR+SL+SR+FC+LFE) Stream #0:0[0x0]: Audio: opus, 48000 Hz, stereo, fltp (default) Stream #0:1[0x1]: Audio: opus, 48000 Hz, stereo, fltp (dependent) Stream #0:2[0x2]: Audio: opus, 48000 Hz, mono, fltp (dependent) Stream #0:3[0x3]: Audio: opus, 48000 Hz, mono, fltp (dependent) Layer 2: 8 channels (FL+FR+SL+SR+FC+LFE+TFL+TFR) Stream #0:0[0x0]: Audio: opus, 48000 Hz, stereo, fltp (default) Stream #0:1[0x1]: Audio: opus, 48000 Hz, stereo, fltp (dependent) Stream #0:2[0x2]: Audio: opus, 48000 Hz, mono, fltp (dependent) Stream #0:3[0x3]: Audio: opus, 48000 Hz, mono, fltp (dependent) Stream #0:4[0x4]: Audio: opus, 48000 Hz, stereo, fltp (dependent) Layer 3: 10 channels (FL+FR+SL+SR+FC+LFE+TFL+TFR+TBL+TBR) Stream #0:0[0x0]: Audio: opus, 48000 Hz, stereo, fltp (default) Stream #0:1[0x1]: Audio: opus, 48000 Hz, stereo, fltp (dependent) Stream #0:2[0x2]: Audio: opus, 48000 Hz, mono, fltp (dependent) Stream #0:3[0x3]: Audio: opus, 48000 Hz, mono, fltp (dependent) Stream #0:4[0x4]: Audio: opus, 48000 Hz, stereo, fltp (dependent) Stream #0:5[0x5]: Audio: opus, 48000 Hz, stereo, fltp (dependent) Signed-off-by: James Almer <jamrial@gmail.com>
* tests/iamf: rename BACK to SIDE filterchain labels in the 5.1.4 iamf testsJames Almer2025-06-243-3/+3
| | | | | | Cosmetic change to reflect the actual channels used in the layouts. Signed-off-by: James Almer <jamrial@gmail.com>
* tests/iamf: reorder muxed streamsJames Almer2025-06-243-45/+45
| | | | | | | Follows the proper order defined by the spec, even if mostly cosmetic, and is also preparation for a following change. Signed-off-by: James Almer <jamrial@gmail.com>
* configure: Factor mpegvideoencdsp out of mpegvideoencAndreas Rheinhardt2025-06-212-2/+2
| | | | | | | This will allow to relax the dependency on mpegvideoenc for several codecs. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* configure: add celp_math componentPeter Ross2025-06-171-1/+1
| | | | | | libavcodec/tests/celp_math depends on libavcodec/celp_math.o This fixes fate when configuring with --disable-everything
* fate/video: Add media100 testAndreas Rheinhardt2025-06-172-0/+18
| | | | | | | | | | | Tests both the Media 100 decoder (using the media100_to_mjpegb BSF implicitly) as well as using said BSF, followed by the MJPEGB decoder. (We currently hit a bug when remuxing: The demuxer treats compressorname as encoded in a Mac character encoding (Mac OS Roman?) and converts it to UTF-8, yet the muxer just writes it.) Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* checkasm: h264dsp: test luma_dc_dequantTristan Matthews2025-06-161-0/+37
| | | | | Reviewed-by: Martin Storsjö <martin@martin.st> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* checkasm: add checkasm_check_dctcoefTristan Matthews2025-06-161-0/+11
| | | | | | | | This is useful for tests that compare dctcoefs which will be either 2 bytes or 4 bytes, depending on bitdepth. Reviewed-by: Martin Storsjö <martin@martin.st> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/sdp: add framerate entryMarvin Scholz2025-06-111-2/+2
| | | | | This also updates fate-lavf-mov_rtphint as there the SDP is included in the muxed file.
* avformat/framecrcenc: List types and checksums for for side dataMichael Niedermayer2025-06-0719-1233/+1233
| | | | | | | This allows detecting changes and regressions in side data related code, same as what framecrc does for before already for packet data itself. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/iirfilter: Remove iirfilter, psy-preprocessingAndreas Rheinhardt2025-06-061-4/+0
| | | | | | | | The iirfilter is only used in its test tool since 01ecb7172b684f1c4b3e748f95c5a9a494ca36ec which stopped using it in AAC, its only user. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* tests/fate-run: Remove intermediate files from enc-external testsAndreas Rheinhardt2025-06-061-0/+1
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* tests/fate/mov: Add bitexact for fate-mov-mp4-frag-flushMichael Niedermayer2025-06-061-2/+2
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/movenc: fix writing reserved bits in EC3SpecificBoxJames Almer2025-06-051-2/+2
| | | | | | | | As described in section F.6.1 from ETSI TS 102 366. Found-by: nyanmisaka Reviewed-by: Baptiste Coudurier <baptiste.coudurier@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* tests/fate/libavcodec: Run hashtable testAndreas Rheinhardt2025-06-041-0/+5
| | | | | Reviewed-by: Emma Worley <emma@emma.gg> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* lavc/dxvenc: improve compatibility with Resolume productsEmma Worley2025-06-021-1/+1
| | | | | | | | | Improves compatibility with Resolume products by adding an additional hashtable for DXT color+LUT combinations, and padding the DXT texture dimensions to the next largest multiple of 16. Produces identical packets to Resolume Alley in manual tests. Signed-off-by: Emma Worley <emma@emma.gg>
* tests/fate/mov: Fix fate-mov-mp4-frag-flush requirementsAndreas Rheinhardt2025-06-021-1/+4
| | | | | Reviewed-by: Martin Storsjö <martin@martin.st> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/movenc: Fix flush fragmentZhao Zhili2025-06-011-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | The follow cmd output corrupted file before the patch: ffmpeg -f lavfi -i color=blue,trim=duration=0.04 \ -f lavfi -i anullsrc,atrim=duration=2 \ -movflags +empty_moov+hybrid_fragmented \ -frag_duration 1000000 \ -frag_interleave 1 \ output.mp4 1. first_track is the first track with track->entry != 0. As in the command above, video track (track index 0) has a single frame. When flush the second fragment, first_track is 1, the audio track. 2. write_moof = i == first_track, so write_moof is false for i = 0. 3. When mov->frag_interleave != 0, mov->mdat_buf != NULL, because it contains audio data. So avio_write is called before write_moof, that is, the data write before moof, and mov_finish_fragment executed with wrong mdat_start. 4. With normal fmp4 output, the error isn't obvious. With hybrid_fragmented, ffplay output.mp4 shows a lot of error messages. Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* tests: Add fate-hevc-color-reservedZhao Zhili2025-06-012-0/+9
| | | | Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>