summaryrefslogtreecommitdiffstats
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
...
* Stop hardcoding align=32 in av_frame_get_buffer() calls.Anton Khirnov2020-05-222-2/+2
| | | | Use 0, which selects the alignment automatically.
* checkasm/sw_scale: Fix stack-buffer-overflowAndreas Rheinhardt2020-05-201-1/+1
| | | | | | | | | A buffer whose size is not a multiple of four has been initialized using consecutive writes of 32bits. This results in a stack-buffer-overflow reported by ASAN in the checkasm-sw_scale FATE-test. Reviewed-by: Michael Niedermayer <[email protected]> Signed-off-by: Andreas Rheinhardt <[email protected]>
* fate: add adpcm_ima_cunning testsZane van Iperen2020-05-2010-0/+36
| | | | | | | | | | | | single: Single-track track{0,1}: Dual-track trunc-t1: Truncated track 1 trunc-t2-track{0,1}: Fully-truncated track 2 trunc-t2a-track{0,1}: Partially-truncated track 2 trunc-h2: Truncated track 2 header Signed-off-by: Zane van Iperen <[email protected]> Signed-off-by: Michael Niedermayer <[email protected]>
* avcodec/exr: output float pixels in float pixel formatMark Reid2020-05-2062-121/+121
| | | | | | | | | changes since v1 - default behavior, no longer hidden behind decoder parameter - updated tests to reflect change Reviewed-by: Paul B Mahol <[email protected]> Signed-off-by: Michael Niedermayer <[email protected]>
* avfilter/vf_colorkey: fix formula for calculation of differencePaul B Mahol2020-05-191-10/+10
| | | | Also fixes colorhold filtering.
* avformat/matroskaenc: Don't ignore tags of chapters written lateAndreas Rheinhardt2020-05-1912-42/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Matroska muxer writes the Chapters early when chapters were already available when writing the header; in this case any tags pertaining to these chapters get written, too. Yet if no chapters had been supplied before writing the header, Chapters can also be written when writing the trailer if any are supplied. Tags belonging to these chapters were up until now completely ignored. This commit changes this: Writing the tags belonging to chapters has been moved to mkv_write_chapters(). If mkv_write_tags() has not been called yet (i.e. when chapters are written when writing the header), the AVIOContext for writing the ordinary Tags element is used, but not output, as this is left to mkv_write_tags() in order to only write one Tags element. Yet if mkv_write_tags() has already been called, mkv_write_chapters() will output a Tags element of its own which only contains the tags for chapters. When chapters are available initially, the corresponding tags will now be the first tags in the Tags element; but the ordering of tags in Tags is irrelevant anyway. This commit also makes chapter_id_offset local to mkv_write_chapters() as it is used only there and not reused at all. Potentially writing a second Tags element means that the maximum number of SeekHead entries had to be incremented. All the changes to FATE result from the ensuing increase in the amount of space reserved for the SeekHead (21 bytes more). Signed-off-by: Andreas Rheinhardt <[email protected]>
* avformat/matroskaenc: Don't reserve space for duration when unseekableAndreas Rheinhardt2020-05-193-4/+4
| | | | | | | | We won't be able to seek back to write the actual duration anyway. FATE-tests using the md5pipe command had to be updated due to this change. Signed-off-by: Andreas Rheinhardt <[email protected]>
* checkasm: swscale: Fix running the hscale test on 32 bit x86Martin Storsjö2020-05-161-3/+3
| | | | | | This function doesn't call emms. Signed-off-by: Martin Storsjö <[email protected]>
* checkasm: sw_rgb: Add a test for interleaveBytesMartin Storsjö2020-05-151-0/+70
| | | | Signed-off-by: Martin Storsjö <[email protected]>
* checkasm: pixblockdsp: Add tests for get_pixels_unaligned and ↵Martin Storsjö2020-05-151-6/+10
| | | | | | diff_pixels_unaligned Signed-off-by: Martin Storsjö <[email protected]>
* checkasm: aarch64: Check for stack overflowsMartin Storsjö2020-05-152-5/+49
| | | | | | | | | Also fill x8-x17 with garbage before calling the function. Figure out the number of stack parameters and make sure that the value on the stack after those is untouched. Signed-off-by: Martin Storsjö <[email protected]>
* checkasm: arm: Check for stack overflowsMartin Storsjö2020-05-152-5/+36
| | | | | | | Figure out the number of stack parameters and make sure that the value on the stack after those is untouched. Signed-off-by: Martin Storsjö <[email protected]>
* checkasm: arm: Don't use blx to call checkasm_fail_funcMartin Storsjö2020-05-151-1/+1
| | | | | | | | | | | We should just use a normal bl here, and the linker will add the 'x' bit if necessary. This fixes calling the checkasm_fail_func on windows, where the code is built in thumb mode (and the linker doesn't clear the 'x' bit in the blx instruction). Signed-off-by: Martin Storsjö <[email protected]>
* checkasm: arm: Make the indentation consistent with other filesMartin Storsjö2020-05-152-170/+170
| | | | | | | This makes it easier to share code with e.g. the dav1d implementation of checkasm. Signed-off-by: Martin Storsjö <[email protected]>
* checkasm: add hscale testJosh de Kock2020-05-155-1/+138
| | | | | | | This tests the hscale 8bpp to 14/18bpp functions with different filter sizes. Signed-off-by: Josh de Kock <[email protected]>
* checkasm: add function to check and diff memoryMartin Storsjö2020-05-152-0/+58
| | | | | | This was ported from dav1d (c950e7101bdf5f7117bfca816984a21e550509f0). Signed-off-by: Josh de Kock <[email protected]>
* FATE: add fate test for minterpolate filterLimin Wang2020-05-143-0/+25
| | | | | | | have tested on linux x86_32/64, mingw32/64 arm & mips qemu Tested-by: Michael Niedermayer <[email protected]> Signed-off-by: Limin Wang <[email protected]>
* fate: add scdet metadata testLimin Wang2020-05-142-0/+17
| | | | | Reviewed-by: Paul B Mahol <[email protected]> Signed-off-by: Limin Wang <[email protected]>
* FATE: add a test for colorbalanceLimin Wang2020-05-145-0/+44
| | | | | | | Tested on x86-32/64, mingw32/64, arm & mips qemu Tested-by: Michael Niedermayer <[email protected]> Signed-off-by: Limin Wang <[email protected]>
* test: Add codecview testMichael Niedermayer2020-05-122-0/+14
|
* tests: Add pp7, spp tests based on pp testMichael Niedermayer2020-05-123-0/+28
|
* fate: add signalstats 8bit and 10bit testLimin Wang2020-05-103-0/+7
| | | | Signed-off-by: Limin Wang <[email protected]>
* dnn-layer-mathbinary-test: add unit test for minimumGuo, Yejun2020-05-081-0/+5
| | | | Signed-off-by: Guo, Yejun <[email protected]>
* avformat/mux: Set AV_PKT_FLAG_KEY for is_intra_only packetLimin Wang2020-05-073-69/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The patch will make audio and subtitle packets be marked as AV_PKT_FLAG_KEY. For audio, it'll caused the audio sample to be sync sample. To verify ref/fate/movenc results: 1. Get the movenc test data [lmwang@vpn ffmpeg]$ libavformat/tests/movenc -w && mkdir -p audio_old && mv *.mp4 audio_old_ After applied the patch: [lmwang@vpn ffmpeg]$ make fate-movenc SAMPLES=../fate-suite [lmwang@vpn ffmpeg]$ libavformat/tests/movenc -w && mkdir -p audio_key && mv *.mp4 audio_key 2. Get l-smash and build boxdumper https://github.com/l-smash/l-smash.git 3. dump the box of crc change mp4 and diff -u [lmwang@vpn ffmpeg]$ ../l-smash/cli/boxdumper --box audio_key/non-empty-moov-no-elst.mp4 > audio_key/non-empty-moov-no-elst.log [lmwang@vpn ffmpeg]$ ../l-smash/cli/boxdumper --box audio_old/non-empty-moov-no-elst.mp4 > audio_old/non-empty-moov-no-elst.log [lmwang@vpn ffmpeg]$ diff -u audio_key/non-empty-moov-no-elst.log audio_old/non-empty-moov-no-elst.log - default_sample_flags = 0x02000000 - independent - sync sample + default_sample_flags = 0x01010000 + dependent + non-sync sample 4. have checked the change of crc are caused by default_sample_flags non-empty-moov.mp4, non-empty-moov-elst.mp4, non-empty-moov-no-elst.mp4, empty-moov.mp4, delay-moov-content.mp4, empty-moov-second-frag.mp4, empty-moov-second-frag-discont.mp4, delay-moov-second-frag-discont.mp4, delay-moov-elst-second-frag.mp4 etc 5 For subtitle, it'll effect for tests/ref/fate/binsub-movtextenc and tests/ref/fate/sub2video, that's expecting result for the subtitle is marked as keyframe. Below is the checking result of binsub-movtextenc: [lmwang@vpn ffmpeg]$ ./ffmpeg -i ../fate-suite/sub/MovText_capability_tester.mp4 -map 0 -scodec mov_text -f mp4 -flags +bitexact -fflags +bitexact -movflags frag_keyframe+empty_moov audio_key/binsub-movtextenc.mp4 [lmwang@vpn ffmpeg]$ ./ffmpeg -i ../fate-suite/sub/MovText_capability_tester.mp4 -map 0 -scodec mov_text -f mp4 -flags +bitexact -fflags +bitexact -movflags frag_keyframe+empty_moov audio_old/binsub-movtextenc.mp4 [lmwang@vpn ffmpeg]$../l-smash/cli/boxdumper audio_key/binsub-movtextenc.mp4 > audio_key/binsub-movtextenc.log [lmwang@vpn ffmpeg]$../l-smash/cli/boxdumper audio_old/binsub-movtextenc.mp4 > audio_old/binsub-movtextenc.log [lmwang@vpn ffmpeg]$ diff -u audio_key/binsub-movtextenc.log audio_old/binsub-movtextenc.log .... // the key difference is the flag for sync sample - flags = 0x000701 + flags = 0x000301 data-offset-present sample-duration-present sample-size-present - sample-flags-present sample_count = 6 - data_offset = 188 + data_offset = 164 sample[0] sample_duration = 1570000 sample_size = 21 - sample_flags = 0x02000000 - independent - sync sample - degradation_priority = 0 sample[1] sample_duration = 510000 sample_size = 2 - sample_flags = 0x01010000 - dependent - non-sync sample - degradation_priority = 0 sample[2] sample_duration = 1690000 sample_size = 9 - sample_flags = 0x02000000 - independent - sync sample - degradation_priority = 0 Suggested-by: Andreas Rheinhardt <[email protected]> Suggested-by: Nicolas George <[email protected]> Signed-off-by: Limin Wang <[email protected]>
* avformat/url: check url root node when rel include double dot and trim ↵Steven Liu2020-05-061-0/+5
| | | | | | | | | double dot fix ticket: 8625 and add testcase into url for double dot corner case Signed-off-by: Steven Liu <[email protected]>
* tests/fate/hlsenc: rename fate macro define from FATE_AFILTER to FATE_HLSENCSteven Liu2020-05-061-8/+10
| | | | | and add fate-hlsenc for test all of the testcase Signed-off-by: Steven Liu <[email protected]>
* libswscale: add output support for AV_PIX_FMT_GBRAPF32Mark Reid2020-05-0514-0/+44
| | | | Signed-off-by: Michael Niedermayer <[email protected]>
* fftools/ffprobe: show closed caption info in the stream dumpvectronic2020-05-0218-12/+25
| | | | | Signed-off-by: vectronic <[email protected]> Signed-off-by: Marton Balint <[email protected]>
* fate/oggopus-demux: fix fate failureLynne2020-05-011-1/+1
| | | | | Failure was due to the extra comment printed by libavcodec/utils.c since side data is used to signal the skipped samples.
* tests/api/api-h264-slice-test: remove unused bool headerLinjie Fu2020-04-291-1/+0
| | | | | Signed-off-by: Linjie Fu <[email protected]> Signed-off-by: Josh de Kock <[email protected]>
* fate: hevc: Skip a few large testcases if large tests are disabledMartin Storsjö2020-04-261-1/+18
| | | | Signed-off-by: Martin Storsjö <[email protected]>
* fate: Skip the dnxhd-uhd-hr-sq tests of large tests are disabledMartin Storsjö2020-04-261-2/+3
| | | | | | | These tests are also in the same size range as the previously skipped 2k and 4k tests. Signed-off-by: Martin Storsjö <[email protected]>
* dnn-layer-mathbinary-test: Fix tests for cases with extra intermediate precisionMartin Storsjö2020-04-241-1/+1
| | | | | | | | | | | | | | | | | | | | | This fixes tests on 32 bit x86 mingw with clang, which uses x87 fpu by default. In this setup, while the get_expected function is declared to return float, the compiler is (especially given the optimization flags set) free to keep the intermediate values (in this case, the return value from the inlined function) in higher precision. This results in the situation where 7.28 (which actually, as a float, ends up as 7.2800002098), multiplied by 100, is 728.000000 when really forced into a 32 bit float, but 728.000021 when kept with higher intermediate precision. For the multiplication case, a more suitable epsilon would e.g. be 2*FLT_EPSILON*fabs(expected_output), but just increase the current hardcoded threshold for now. Signed-off-by: Martin Storsjö <[email protected]>
* dnn-layer-mathbinary-test: add unit test for divideGuo, Yejun2020-04-221-0/+5
| | | | Signed-off-by: Guo, Yejun <[email protected]>
* dnn-layer-mathbinary-test: add unit test for 'mul'Guo, Yejun2020-04-221-0/+5
| | | | Signed-off-by: Guo, Yejun <[email protected]>
* dnn-layer-mathbinary-test: add unit test for addGuo, Yejun2020-04-221-17/+38
| | | | Signed-off-by: Guo, Yejun <[email protected]>
* avformat/matroskaenc: Redo handling of FlagDefaultAndreas Rheinhardt2020-04-211-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Up until now, the Matroska muxer would mark a track as default if it had the disposition AV_DISPOSITION_DEFAULT or if there was no track with AV_DISPOSITION_DEFAULT set; in the latter case even more than one track of a kind (audio, video, subtitles) was marked as default which is not sensible. This commit changes the logic used to mark tracks as default. There are now three modes for this: a) In the "infer" mode the first track of every type (audio, video, subtitles) with default disposition set will be marked as default; if there is no such track (for a given type), then the first track of this type (if existing) will be marked as default. This behaviour is inspired by mkvmerge. It ensures that the default flags will be set in a sensible way even if the input comes from containers that lack the concept of default flags. This mode is the default mode. b) The "infer_no_subs" mode is similar to the "infer" mode; the difference is that if no subtitle track with default disposition exists, no subtitle track will be marked as default at all. c) The "passthrough" mode: Here the track will be marked as default if and only the corresponding input stream had disposition default. This fixes ticket #8173 (the passthrough mode is ideal for this) as well as ticket #8416 (the "infer_no_subs" mode leads to the desired output). Signed-off-by: Andreas Rheinhardt <[email protected]>
* avformat/matroskaenc: Don't waste bytes on length fieldsAndreas Rheinhardt2020-04-2110-40/+40
| | | | | | | | | Several EBML Master elements for which a good upper bound of the final length was available were nevertheless written without giving an upper bound of the final length to start_ebml_master(), so that their length fields were eight bytes long. This has been changed. Signed-off-by: Andreas Rheinhardt <[email protected]>
* avformat/matroskaenc: Improve Cues in case of no videoAndreas Rheinhardt2020-04-203-6/+6
| | | | | | | | | | | | | | | | The Matroska muxer currently only adds CuePoints in three cases: a) For video keyframes. b) For the first audio frame in a new Cluster if in DASH-mode. c) For subtitles. This means that ordinary Matroska audio files won't have any Cues which impedes seeking. This commit changes this. For every track in a file without video track it is checked and tracked whether a Cue entry has already been added for said track for the current Cluster. This is used to add a Cue entry for each first packet of each track in each Cluster. Implements #3149. Signed-off-by: Andreas Rheinhardt <[email protected]>
* fate/truehd: add a test for the truehd_core bitstream filterJames Almer2020-04-201-0/+5
| | | | Signed-off-by: James Almer <[email protected]>
* fate: move TrueHD tests to their own fileJames Almer2020-04-205-8/+13
| | | | Signed-off-by: James Almer <[email protected]>
* fate/matroska: Add test for chapters, Vorbis and WebM DASHAndreas Rheinhardt2020-04-192-0/+83
| | | | | | | | | | Moreover, putting the Cues in front of the Clusters by reserving space in advance is also tested. The new capability of using ffprobe during a remux/transcode test are used here for information about the chapters. Signed-off-by: Andreas Rheinhardt <[email protected]>
* fate: Allow to test temporary files with ffprobeAndreas Rheinhardt2020-04-192-4/+16
| | | | | | | | | This is primarily intended to test that muxers correctly write chapters or metadata; but given that it does this by having our demuxers read the generated files, it also tests demuxers. And of course it may prove useful for encoders, too. Signed-off-by: Andreas Rheinhardt <[email protected]>
* fate: Fix dependencies for ffprobe tests with external samplesAndreas Rheinhardt2020-04-181-3/+3
| | | | | | | | | | | | | | | Up until now, they were appended to the FATE_EXTERN-$(CONFIG_FFMPEG) variable and were therefore activated when ffmpeg was enabled regardless of whether ffprobe was enabled. Also the same happened with FATE_SAMPLES_FASTSTART, although the corresponding test (mov-faststart-4gb-overflow) only requires external samples. Furthermore, remove the unused FATE_FULL variable (FATE_EXTERN_FFPROBE has taken its place). Signed-off-by: Andreas Rheinhardt <[email protected]>
* tests/ref/vsynth: fix fate colr changes (again)Michael Bradshaw2020-04-131-1/+1
| | | | Signed-off-by: Michael Bradshaw <[email protected]>
* tests/ref/vsynth: fix fate colr changesMichael Bradshaw2020-04-133-3/+3
| | | | | | | Commit 9842fd3aaf18cd8bda82e03f099a6cea7234bbcf stopped guessing colr values. Signed-off-by: Michael Bradshaw <[email protected]>
* avformat/matroskaenc: Make output more deterministicAndreas Rheinhardt2020-04-1311-40/+40
| | | | | | | | | | | | | | | | | | | | | Using random values for TrackUID and FileUID (as happens when the AVFMT_FLAG_BITEXACT flag is not set) has the obvious downside of making the output indeterministic. This commit mitigates this by writing the potentially random values with a fixed size of eight byte, even if their actual values would fit into less than eight bytes. This ensures that even in non-bitexact mode, the differences between two files generated with the same settings are restricted to a few bytes in the header. (Namely the SegmentUID, the TrackUIDs (in Tracks as well as when referencing them via TagTrackUID), the FileUIDs (in Attachments as well as in TagAttachmentUID) as well as the CRC-32 checksums of the Info, Tracks, Attachments and Tags level-1-elements.) Without this patch, there might be an offset/a size difference between two such files. The FATE-tests had to be updated because the fixed-sized UIDs are also used in bitexact mode. Signed-off-by: Andreas Rheinhardt <[email protected]>
* avformat/matroskaenc: Remove allocations for AttachmentsAndreas Rheinhardt2020-04-131-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If there are Attachments to write, the Matroska muxer currently allocates two objects: An array that contains an entry for each AttachedFile containing just the stream index of the corresponding stream and the FileUID used for this AttachedFile; and a structure with a pointer to said array and a counter for said array. These uids are generated via code special to Attachments: It uses an AVLFG in the normal and a sha of the attachment data in the bitexact case. (Said sha requires an allocation, too.) But now that an uid is generated for each stream in mkv_init(), there is no need any more to use special code for generating the FileUIDs of AttachedFiles: One can simply use the uid already generated for the corresponding stream. And this makes the whole allocations of the structures for AttachedFiles as well as the structures itself superfluous. They have been removed. In case AVFMT_FLAG_BITEXACT is set, the uids will be different from the old ones which is the reason why the FATE-test lavf-mkv_attachment needed to be updated. The old method had the drawback that two AttachedFiles with the same data would have the same FileUID. The new one doesn't. Also notice that the dynamic buffer used to write the Attachments leaks if an error happens when writing the buffer. By removing the allocations potential sources of errors have been removed. Signed-off-by: Andreas Rheinhardt <[email protected]>
* avformat/matroskaenc: Don't waste bytes writing durationsAndreas Rheinhardt2020-04-136-32/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Tags in the Matroska file format can be summarized as follows: There is a level 1-element called Tags containing one or many Tag elements each of which in turn contain a Targets element and one or many SimpleTags. Each SimpleTag roughly corresponds to a single key-value pair similar to an AVDictionaryEntry. The Targets meanwhile contains information to what the metadata contained in the SimpleTags contained in the containing Tag applies (i.e. to the file as a whole or to an individual track). The Matroska muxer writes such metadata. It puts the metadata of every stream into a Tag whose Targets makes it point to the corresponding track. And if the output is seekable, then it also adds another Tag for each track whose Targets corresponds to the track and where it reserves space in a SimpleTag to write the duration at the end of the muxing process into. Yet there is no reason to write two Tag elements for a track and a few bytes (typically 24 bytes per track) can be saved by adding the duration SimpleTag to the other Tag of the same track (if it exists). FATE has been updated because the output files changed. (Tests that write to unseekable output (pipes) needn't be updated (no duration tag has ever been written for them) and the same applies to tests without further metadata.) Signed-off-by: Andreas Rheinhardt <[email protected]>
* lavc/movtextdec: add alpha default to ass header colorsJohn Stebbins2020-04-101-1/+1
| | | | Signed-off-by: Philip Langdale <[email protected]>