[FFmpeg-devel] [PATCH v5 0/6] Add support for Closed Caption FIFO
Devin Heitmueller
devin.heitmueller at ltnglobal.com
Fri May 5 01:02:14 EEST 2023
This latest update to the patch series includes several fixes from
Lance Wang to the vf_ccrepack, as well as incorporating feedback
from Anton Khirnov.
The primary change across all the filters was to make the filter error
out if the ff_ccfifo_alloc() call failed. This is reasonable because
as a result of recent changes it cannot fail for any reason other
than a memory allocation error. This also dovetails with the change
that you're no longer allowed to call inject/extract with the AVCCFifo
structure being a NULL pointer, which is what would have happened if we
had allowed filters to continue even if the allocation of the ccfifo
failed.
We've also changed the logic such that now the caller allocates the
memory for the buffer to be injected into (per Anton's suggestion), based
on a new API call to get the size of the expected output buffer. This
avoids dynamically allocating the buffer beforehand and then having to
memcpy() the result into whatever memory it really needs to be in
(e.g. AVPacket side data).
Devin Heitmueller (6):
ccfifo: Properly handle CEA-708 captions through framerate conversion
vf_fps: properly preserve CEA-708 captions
yadif: Properly preserve CEA-708 closed captions
tinterlace: Properly preserve CEA-708 closed captions
vf_ccrepack: Add new filter to repack CEA-708 side data
decklink_enc: add support for playout of 608 captions in MOV files
doc/filters.texi | 10 ++
libavdevice/Makefile | 1 +
libavdevice/ccfifo.c | 24 +++++
libavdevice/decklink_common.h | 3 +
libavdevice/decklink_enc.cpp | 65 +++++++++++++
libavdevice/decklink_enc_c.c | 2 +-
libavfilter/Makefile | 2 +
libavfilter/allfilters.c | 1 +
libavfilter/ccfifo.c | 222 ++++++++++++++++++++++++++++++++++++++++++
libavfilter/ccfifo.h | 110 +++++++++++++++++++++
libavfilter/tinterlace.h | 2 +
libavfilter/vf_bwdif.c | 8 ++
libavfilter/vf_ccrepack.c | 102 +++++++++++++++++++
libavfilter/vf_fps.c | 11 ++-
libavfilter/vf_tinterlace.c | 11 +++
libavfilter/vf_yadif.c | 8 ++
libavfilter/vf_yadif_cuda.c | 9 ++
libavfilter/yadif.h | 2 +
libavfilter/yadif_common.c | 5 +
19 files changed, 596 insertions(+), 2 deletions(-)
create mode 100644 libavdevice/ccfifo.c
create mode 100644 libavfilter/ccfifo.c
create mode 100644 libavfilter/ccfifo.h
create mode 100644 libavfilter/vf_ccrepack.c
--
1.8.3.1
More information about the ffmpeg-devel
mailing list