ffmpeg/tests/fate
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
..
aac.mak fate/aacenc: increase tolerance for ln-128k test 2022-11-24 15:58:22 +01:00
ac3.mak ac3: convert to lavu/tx 2022-11-06 14:39:27 +01:00
acodec.mak libswresample/swresample: avoid s16p internal transfer format 2023-09-25 21:41:35 +02:00
adpcm.mak
alac.mak
als.mak
amrnb.mak fate/amr[nw]b: Use REMUX where appropriate 2022-04-28 02:39:37 +02:00
amrwb.mak fate/amr[nw]b: Use REMUX where appropriate 2022-04-28 02:39:37 +02:00
api.mak tests/fate-run: Remove temporary fate-lavf files if possible 2022-05-06 05:39:25 +02:00
apng.mak
atrac.mak
audio.mak fate/audio: msnsiren test case 2022-11-07 16:08:35 +11:00
bmp.mak fate/bmp: Fix test requirements 2022-04-28 02:39:37 +02:00
build.mak
caf.mak tests/Makefile: Redo how to keep intermediate FATE-files 2022-05-06 05:39:25 +02:00
canopus.mak fate/canopus: Fix test requirements 2022-05-03 04:18:05 +02:00
cbs.mak fate/cbs: add more VVC tests 2023-07-07 11:56:37 -03:00
cdxl.mak fate/cdxl: Fix test requirements 2022-04-28 02:39:37 +02:00
checkasm.mak checkasm/takdsp: add decorrelate_ls test 2023-12-21 22:42:34 +02:00
concatdec.mak tests/fate-run: Remove temporary fate-lavf files if possible 2022-05-06 05:39:25 +02:00
cover-art.mak tests/Makefile: Redo how to keep intermediate FATE-files 2022-05-06 05:39:25 +02:00
dca.mak tests/dca: remove usage of deprecated request_channel_layout option 2023-12-28 15:31:50 -03:00
demux.mak Add FATE test for timed id3 demux. 2023-06-29 17:33:01 +02:00
dfa.mak fate/dfa: Fix test requirements 2022-04-28 02:39:37 +02:00
dnxhd.mak fate/dnxhd: Fix test requirements 2022-05-03 04:18:05 +02:00
dpcm.mak
dvvideo.mak lavc/dvdec: export bitrate 2023-07-07 12:12:52 +02:00
ea.mak fate/ea: Fix test requirements 2022-05-03 04:18:05 +02:00
enc_external.mak tests/fate: add a simple test for libx264 2023-05-15 10:39:02 +02:00
exif.mak
ffmpeg.mak fate/h264: move mp4toannexb_ticket5927 test to fate-h264 2023-11-22 19:42:15 +08:00
ffprobe.mak
fifo-muxer.mak
filter-audio.mak tests/fate: add asegment filter tests 2023-12-05 14:50:40 +01:00
filter-video.mak fate: Add fsync filter tests 2024-01-05 09:29:05 +01:00
fits.mak tests/fate: fix mismatches between requested and actually used pixel formats 2023-07-20 20:30:13 +02:00
flac.mak fate/flac: Add test of 32 bps encoding/decoding 2022-12-26 21:15:36 +01:00
flvenc.mak avcodec/av1dec: export pixel format even if no hardware decoder is present 2023-09-08 09:42:25 -03:00
gapless.mak
gif.mak tests/fate: replace deprecated -vsync with -fps_mode 2023-11-14 18:18:26 +01:00
h264.mak fate/h264: move mp4toannexb_ticket5927 test to fate-h264 2023-11-22 19:42:15 +08:00
hap.mak fate/hap: Fix test requirements 2022-05-03 04:18:06 +02:00
hevc.mak avcodec/hevc_parser: fix missing zero_byte at frame beginning 2024-01-05 01:14:33 +08:00
hlsenc.mak tests: Correctly distinguish between SAMPLES and TARGET_SAMPLES for hls_fmp4_ac3.m3u8 2023-08-04 21:51:17 +03:00
hw.mak
id3v2.mak fate/id3v2: Add test for reading and writing UTF-16 BOM tags 2022-09-12 22:26:27 +02:00
image.mak fate/jpg: add RGB mjpeg fate tests 2023-05-17 12:37:42 +02:00
imf.mak fate/imfdec: remove imf experimental flag 2023-02-21 19:38:54 -08:00
indeo.mak
jpeg2000.mak fate/jpeg2000: add missing dependecy checks 2023-04-23 18:54:43 -03:00
jxl.mak fate/jpegxl: add multiframe permuted TOC image parser test 2023-12-15 11:52:43 -05:00
lavf-audio.mak fate/lavf-*: Add missing dependency on pipe protocol 2022-09-21 15:43:52 +02:00
lavf-container.mak libswresample/swresample: avoid s16p internal transfer format 2023-09-25 21:41:35 +02:00
lavf-image2pipe.mak fate: add QOI/XBM/XWD image2pipe tests 2022-12-03 19:38:11 +01:00
lavf-image.mak fate/lavf-*: Add missing dependency on pipe protocol 2022-09-21 15:43:52 +02:00
lavf-video.mak tests/fate: fix mismatches between requested and actually used pixel formats 2023-07-20 20:30:13 +02:00
libavcodec.mak lavc/av1: Add unit test for level handling 2023-09-22 13:15:01 +08:00
libavdevice.mak
libavformat.mak avformat/tests: add test for ff_rescale_interval() 2022-03-19 21:34:04 +10:00
libavutil.mak avutil/tests/uuid: add uuid tests 2022-06-12 18:34:37 +10:00
libswresample.mak swr/swresample: avoid reapplication of firstpts 2023-12-18 15:47:04 +05:30
libswscale.mak
lossless-audio.mak fate: add OSQ test 2023-09-06 11:59:20 +02:00
lossless-video.mak tests/fate: replace deprecated -vsync with -fps_mode 2023-11-14 18:18:26 +01:00
matroska.mak fate/matroska: Add test for remuxing non-rotation displaymatrix 2023-09-07 00:28:27 +02:00
microsoft.mak fate/microsoft: add mss2 region test case 2022-11-07 16:08:35 +11:00
monkeysaudio.mak tests/fate: Add NoLegacy-cut.ape test 2023-08-28 01:10:14 +02:00
mov.mak fate/mov: force the native av1 decoder for the avif tests 2024-01-09 20:45:01 -03:00
mp3.mak
mpc.mak
mpeg4.mak tests/fate: replace deprecated -vsync with -fps_mode 2023-11-14 18:18:26 +01:00
mpegps.mak fate/mpegps: Fix argument order 2023-09-08 15:48:21 +02:00
mpegts.mak tests/Makefile: Make DEMDEC etc. auxiliary functions more flexible 2022-04-28 02:39:37 +02:00
mxf.mak fate/mxf: add JPEG 2000 test 2022-09-20 11:26:00 +02:00
oma.mak tests/Makefile: Redo how to keep intermediate FATE-files 2022-05-06 05:39:25 +02:00
opus.mak fate/opus: add silk LBRR test (refs #9890) 2022-10-04 11:54:57 +02:00
pcm.mak fate/pcm: Add pcm_dvd transcode tests 2022-07-10 16:58:58 +02:00
pixfmt.mak
pixlet.mak fate/pixlet: Fix test requirements 2022-05-03 04:18:06 +02:00
probe.mak
prores.mak fate/prores: Fix test requirements 2022-05-03 04:18:06 +02:00
qoa.mak fate: Add tests for QOA decoder 2023-12-04 23:14:38 +01:00
qt.mak fate/qt: Fix test requirements 2022-05-03 04:18:05 +02:00
qtrle.mak fate/qtrle: Fix test requirements 2022-05-03 04:18:06 +02:00
real.mak
screen.mak fate/screen: workaround test failure on mac M1 2023-10-18 23:01:51 +08:00
seek.mak tests/Makefile: Redo how to keep intermediate FATE-files 2022-05-06 05:39:25 +02:00
segafilm.mak fate/segafilm: Add tests for segafilm (de)muxer 2022-09-20 18:32:28 +02:00
segment.mak
source-check.sh fate-source: exclude Apache-2 licensed files 2023-05-29 00:41:59 +02:00
source.mak
spdif.mak lavf/spdifdec: support EAC3 2023-01-13 11:22:59 -06:00
speedhq.mak fate/speedhq: Fix test requirements 2022-04-28 02:39:37 +02:00
subtitles.mak libavformat: add RCWT closed caption muxex 2024-01-14 14:49:12 +01:00
truehd.mak tests/truehd: remove usage of deprecated request_channel_layout option 2023-12-28 15:31:36 -03:00
utvideo.mak fate/utvideo: Fix test requirements 2022-04-28 02:39:37 +02:00
vbn.mak fate/vbn, tests/fate-run: Delete intermediate VBN-files after tests 2022-05-03 04:18:05 +02:00
vcodec.mak tests/fate: replace deprecated -vsync with -fps_mode 2023-11-14 18:18:26 +01:00
video.mak fftools/ffmpeg: rework -enc_time_base handling 2023-07-15 11:02:11 +02:00
voice.mak
vorbis.mak
vpx.mak tests/fate: replace deprecated -vsync with -fps_mode 2023-11-14 18:18:26 +01:00
vqf.mak
wavpack.mak fate/wavpack: Test APE cuesheet tags 2022-05-31 12:45:41 +02:00
webm-dash-manifest.mak fate/vpx: Move webm-dash-manifest tests to a new file 2022-05-03 04:18:06 +02:00
wma.mak wmavoice: convert DCT-I/DST-I to lavu/tx 2023-09-01 23:59:11 +02:00
xvid.mak