1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-18 03:19:31 +02:00
Commit Graph

2317 Commits

Author SHA1 Message Date
Anton Khirnov
ae06111d74 fftools/ffmpeg_demux: implement -bsf for input
Previously bitstream filters could only be applied right before muxing,
this allows to apply them right after demuxing.
2024-01-19 17:54:10 +01:00
Michael Niedermayer
278fea3664
avutil/eval: Use even better PRNG
This is the 64bit version of Chris Doty-Humphreys SFC64

Compared to the LCGs these produce much better quality numbers.
Compared to LFGs this needs less state. (our LFG has 224 byte
state for its 32bit version) this has 32byte state
Also the initialization for our LFG is slower.
This is also much faster than KISS or PCG.

This commit replaces the broken LCG used before.
(broken as it had only a period ~200M due to being put in a double)

This changes the output from random() which is why libswresample.mak
is updated, update was done using the command in libswresample.mak

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2024-01-16 01:34:57 +01:00
James Almer
6f02dcc091 fate/mov: add dependencies to heif tests
Signed-off-by: James Almer <jamrial@gmail.com>
2024-01-15 15:10:15 -03:00
James Almer
de01ea4caf fate/subtitles: add missing ref for fate-sub-rcwt
Signed-off-by: James Almer <jamrial@gmail.com>
2024-01-15 15:10:15 -03:00
sunyuechi
202a35ecdb checkasm/svqenc: add ssd_int8_vs_int16 test
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
2024-01-15 19:03:03 +02:00
Marth64
3525544e48 libavformat: add RCWT closed caption muxex
Signed-off-by: Marth64 <marth64@proxyid.net>

Raw Captions With Time (RCWT) is a format native to ccextractor, a commonly
used open source tool for processing 608/708 closed caption (CC) sources.
It can be used to archive the original, raw CC bitstream and to produce
a source file file for later CC processing or conversion. As a result,
it also allows for interopability with ccextractor for processing CC data
extracted via ffmpeg. The format is simple to parse and can be used
to retain all lines and variants of CC.

A free specification of RCWT can be found here:
https://github.com/CCExtractor/ccextractor/blob/master/docs/BINARY_FILE_FORMAT.TXT
This muxer implements the specification as of 01/05/2024, which has
been stable and unchanged for 10 years as of this writing.

This muxer will have some nuances from the way that ccextractor muxes RCWT.
No compatibility issues when processing the output with ccextractor
have been observed as a result of this so far, but mileage may vary
and outputs will not be a bit-exact match.

Specifically, the differences are:
(1)  This muxer will identify as "FF" as the writing program identifier, so
as to be honest about the output's origin.

(2)  ffmpeg's MPEG-1/2, H264, HEVC, etc. decoders extract closed captioning
data differently than ccextractor from embedded SEI/user data.
For example, DVD captioning bytes will be translated to ATSC A53 format.
This allows ffmpeg to handle 608/708 in a consistant way downstream.
This is a lossless conversion and the meaningful data is retained.

(3)  This muxer will not alter the extracted data except to remove invalid
packets in between valid CC blocks. On the other hand, ccextractor
will by default remove mid-stream padding, and add padding at the end
of the stream (in order to convey the end time of the source video).
2024-01-14 14:49:12 +01:00
James Almer
6d2f64534d fate/mov: force the native av1 decoder for the avif tests
Signed-off-by: James Almer <jamrial@gmail.com>
2024-01-09 20:45:01 -03:00
Vignesh Venkatasubramanian via ffmpeg-devel
a0821345eb avformat/mov: Add support for demuxing still HEIC images
They are similar to AVIF images (both use the HEIF container).
The only additional work needed is to parse the hvcC box and put
it in the extradata.

With this patch applied, ffmpeg (when built with an HEVC decoder)
is able to decode the files in
https://github.com/nokiatech/heif/tree/gh-pages/content/images

Also add a couple of fate tests with samples from
https://github.com/nokiatech/heif_conformance/tree/master/conformance_files

Partially fixes trac ticket #6521.

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2024-01-09 16:44:14 -03:00
James Almer
bb819a4ef8 fate/mov: enable the AVIF tests
The samples were uploaded long ago, but this was forgotten.

Signed-off-by: James Almer <jamrial@gmail.com>
2024-01-09 09:33:57 -03:00
Thilo Borgmann
cb6b165b16 fate: Add fsync filter tests 2024-01-05 09:29:05 +01:00
Zhao Zhili
0f824d792d avcodec/hevc_parser: fix missing zero_byte at frame beginning
The start code is matched against 0x000001, zero_byte was treated
as last byte of last frame rather than the beginning of next frame.

Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
2024-01-05 01:14:33 +08:00
James Almer
f7f4ff1b86 tests/dca: remove usage of deprecated request_channel_layout option
Signed-off-by: James Almer <jamrial@gmail.com>
2023-12-28 15:31:50 -03:00
James Almer
0b1552ef55 tests/truehd: remove usage of deprecated request_channel_layout option
Signed-off-by: James Almer <jamrial@gmail.com>
2023-12-28 15:31:36 -03:00
Vittorio Giovara
05bfc03752 Add new vf_tiltandshift filter
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2023-12-21 17:16:16 -05:00
sunyuechi
3bdb0fe511 checkasm/takdsp: add decorrelate_ls test
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
2023-12-21 22:42:34 +02:00
Gyan Doshi
be8a4f80b9 swr/swresample: avoid reapplication of firstpts
During a resampling operation where

1) user has specified first_pts
2) SWR_FLAG_RESAMPLE is not set initially (directly or otherwise)
3) first_pts has been fulfilled (always using hard compensation)

then upon first encountering a delay where a soft compensation is
required, swr_set_compensation will lead to another init of swr which
will reset outpts to the specified firstpts thus leading to an output
frame having its pts = firstpts. When the next input frame is received,
swr will see a large delay and inject silence from firstpts to the
current frame's pts. This can lead to severe desync and in worst case,
loss of audio playback.

Parameter firstpts initialized to AV_NOPTS_VALUE in swr_alloc and then
checked in swr_init to avoid resetting outpts, thus avoiding reapplication
of firstpts.

Fixes #4131.
2023-12-18 15:47:04 +05:30
Leo Izen
1a04959532
fate/jpegxl: add multiframe permuted TOC image parser test
This test verifies the parser's handling of multiframe JXL files that
have an entropy-encoded permuted table of contents for each frame. The
testcase is actually six JXL codestreams concatenated together, and the
parser needs to be able to find the boundaries.

Signed-off-by: Leo Izen <leo.izen@gmail.com>
2023-12-15 11:52:43 -05:00
Paul B Mahol
bc45a9c6de
tests/fate: add pixelize filter tests
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2023-12-14 23:34:46 +01:00
Paul B Mahol
41ee95dc52
tests/fate: add median filter test
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2023-12-14 23:34:46 +01:00
sunyuechi
1c3620b2bb checkasm: test for abs_pow34
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
2023-12-11 18:42:07 +02:00
Paul B Mahol
3047f05a99 tests/fate: add asegment filter tests 2023-12-05 14:50:40 +01:00
Leo Izen
b60d39fbe2
fate/jpegxl: add parser test for extboxes and small files
Add a fate test for the above commits fixing extremely small files or
files with extended box sizes.

Signed-off-by: Leo Izen <leo.izen@gmail.com>
2023-12-05 05:54:58 -05:00
Cosmin Stejerean
634216dc40 fate: Add tests for QOA decoder 2023-12-04 23:14:38 +01:00
sunyuechi
d0ec826077 checkasm/ac3dsp: add float_to_fixed24 test
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
2023-12-01 20:26:48 +02:00
James Almer
707e46dc54 test/checkasm: test llauddsp
Signed-off-by: James Almer <jamrial@gmail.com>
2023-11-22 14:22:19 -03:00
Zhao Zhili
641f8a71fb fate/h264: move mp4toannexb_ticket5927 test to fate-h264
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
2023-11-22 19:42:15 +08:00
Zhao Zhili
aa3b857101 avcodec/h264_mp4toannexb_bsf: process new extradata
For fate-h264_mp4toannexb_ticket5927 and
fate-h264_mp4toannexb_ticket5927_2, they work by accident
previously. The sample file has two 'avc1' entries, and video
samples use the second one. It means packets should be decoded with
new extradata in side data. Before this patch, only extradata was
kept in the output, new extradata has been dropped. The output can
be decoded because the two extradata are almost the same, except
level indication. This patch fixed the issue, and add another
fate test.

Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
2023-11-22 19:42:14 +08:00
Zhao Zhili
d3aa0cd16f avcodec/h264_mp4toannexb_bsf: fix missing PS before IDR frames
If there is a single group of SPS/PPS before an IDR frame, but no
SPS/PPS after that, we will miss the chance to reset
idr_sps_seen/idr_pps_seen. No SPS/PPS are inserted afterwards.

This patch saves in-band SPS/PPS and insert them before IDR frames
when necessary.

Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
2023-11-22 19:42:14 +08:00
Anton Khirnov
a8d9d6b08d tests/fate: replace deprecated -vsync with -fps_mode 2023-11-14 18:18:26 +01:00
Anton Khirnov
23de85d1ec tests/fate/ffmpeg: replace deprecated -vbsf with -bsf:v 2023-11-14 18:18:26 +01:00
Marvin Scholz
e900a559c2 fate: enhance tpad filter test
Adds another test that uses the start_duration and stop_duration
options instead of start and stop.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2023-11-09 11:11:00 +01:00
Zhao Zhili
ade0612cfb fate/screen: workaround test failure on mac M1
The last frame is corrupted. It has different results on different
platform.

Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
2023-10-18 23:01:51 +08:00
Anton Khirnov
a07b2f5f11 tests/fate/ffmpeg: add tests for -force_key_frames source 2023-10-10 12:41:31 +02:00
Andreas Rheinhardt
6f7bf64dbc avcodec: Remove DCT, FFT, MDCT and RDFT
They were replaced by TX from libavutil; the tremendous work
to get to this point (both creating TX as well as porting
the users of the components removed in this commit) was
completely performed by Lynne alone.

Removing the subsystems from configure may break some command lines,
because the --disable-fft etc. options are no longer recognized.

Co-authored-by: Lynne <dev@lynne.ee>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2023-10-01 02:25:09 +02:00
Paul B Mahol
3bef108fa9
libswresample/swresample: avoid s16p internal transfer format
Instead use float one by default for sample rate conversions.
The s16p internal transfer format produces visible and hearable
quantization artifacts.

Signed-off-by: Paul B Mahol <onemda@gmail.com>

for S8 we continue to use S16 as it should have enough precision
Fate is adjusted so bitexactness is maintained between mips/arm/x86
if more tests became bit-inexact on some platform, the same change
can be done to them

The use of higher precision and float intermediates inevitably
leads to more differences between platforms.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2023-09-25 21:41:35 +02:00
Fei Wang
63371cde9d lavc/av1: Add unit test for level handling
Signed-off-by: Fei Wang <fei.w.wang@intel.com>
Reviewed-by: Neal Gompa <ngompa13@gmail.com>
2023-09-22 13:15:01 +08:00
Anton Khirnov
5d58a35f98 fftools/ffmpeg: deprecate the -top option
It is badly named (should have been -top_field_first, or at least -tff),
underdocumented and underspecified, and (most importantly) entirely
redundant with the setfield filter.
2023-09-18 17:16:06 +02:00
Andreas Rheinhardt
a234e5cd80 fate/mpegps: Fix argument order
Regression since fb548fba04.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2023-09-08 15:48:21 +02:00
James Almer
fb548fba04 avcodec/av1dec: export pixel format even if no hardware decoder is present
And remove the AVOID_PROBING flag, given it's the last av1 decoder to be tested
either way.
This fixes a regression introduced in 1652f2492f,
where even if forcing the native av1 decoder, if another decoder was present,
like libdav1d or libaom-av1, they'd be used for probing and some fate tests
would have different results.

Signed-off-by: James Almer <jamrial@gmail.com>
2023-09-08 09:42:25 -03:00
Paul B Mahol
74375305ef fate: add rpza encoder tests 2023-09-07 20:58:08 +02:00
Andreas Rheinhardt
f32a83c4eb fate/matroska: Add test for remuxing non-rotation displaymatrix
This provides coverage for the case in which the displaymatrix
is ignored.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2023-09-07 00:28:27 +02:00
Paul B Mahol
bfa43447fa fate: add OSQ test 2023-09-06 11:59:20 +02:00
Steven Liu
62fb730762 tests/fate/flvenc: add av1 in enhanced flv test case
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2023-09-05 09:12:08 +08:00
Steven Liu
1a86cce51e tests/fate/flvenc: add vp9 in enhanced flv test case
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2023-09-05 09:10:46 +08:00
Paul B Mahol
182aef0198 fate: add rka test 2023-09-04 19:29:21 +02:00
Andreas Rheinhardt
091c41794d fate/ffmpeg: Add bitexact flag for ffmpeg-input-r test
Fixes the test when the non-bitexact MMXEXT versions of
the hpeldsp functions are used.

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2023-09-04 14:38:56 +02:00
Steven Liu
8b7a3c6f10 tests/fate/flvenc: add hevc in enhanced flv test case
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2023-09-04 14:02:40 +08:00
Lynne
a810126501
wmavoice: convert DCT-I/DST-I to lavu/tx
This is the very last user of any lavc transform code.

This also *corrects* wmavoice decoding, as the previous DCT/DST
transforms were incorrect, bringing it closer to Microsoft's
own wmavoice decoder.
2023-09-01 23:59:11 +02:00
Leo Izen
a49d7a1497
fate/jpegxl_anim: add demuxer fate test for jpegxl_anim
Adds a fate test for the jpegxl_anim demuxer, that should allow testing
for true positives and false positives for animated jpegxl files. Note
that two of the test cases are not animated, in order to help sort out
false positives.

Signed-off-by: Leo Izen <leo.izen@gmail.com>
2023-09-01 03:36:02 -04:00
Michael Niedermayer
b5273c619d
tests/fate: Add NoLegacy-cut.ape test
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2023-08-28 01:10:14 +02:00