summaryrefslogtreecommitdiff
path: root/libavfilter/Makefile
diff options
context:
space:
mode:
authorDevin Heitmueller <devin.heitmueller@ltnglobal.com>2023-05-05 15:09:02 -0400
committerLimin Wang <lance.lmwang@gmail.com>2023-05-11 22:06:20 +0800
commit2b0e794ffc0ce9d087903a90c7e6d8c957017d98 (patch)
tree6ca47ab98c6572740c558074eedc42ed116021fc /libavfilter/Makefile
parent7958325a832e9dd0807e35a123da5028a521f1c7 (diff)
downloadffmpeg-2b0e794ffc0ce9d087903a90c7e6d8c957017d98.tar.gz
avfilter/ccfifo: Properly handle CEA-708 captions through framerate conversion
When transcoding video that contains 708 closed captions, the caption data is tied to the frames as side data. Simply dropping or adding frames to change the framerate will result in loss of data, so the caption data needs to be preserved and reformatted. For example, without this patch converting 720p59 to 1080i59 would result in loss of 50% of the caption bytes, resulting in garbled 608 captions and 708 probably wouldn't render at all. Further, the frames that are there will have an illegal cc_count for the target framerate, so some decoders may ignore the packets entirely. Extract the 608 and 708 tuples and insert them onto queues. Then after dropping/adding frames, re-write the tuples back into the resulting frames at the appropriate rate given the target framerate. This includes both having the correct cc_count as well as clocking out the 608 pairs at the appropriate rate. Thanks to Lance Wang <lance.lmwang@gmail.com>, Anton Khirnov <anton@khirnov.net>, and Michael Niedermayer <michael@niedermayer.cc> for providing review/feedback. Signed-off-by: Devin Heitmueller <dheitmueller@ltnglobal.com> Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
Diffstat (limited to 'libavfilter/Makefile')
-rw-r--r--libavfilter/Makefile1
1 files changed, 1 insertions, 0 deletions
diff --git a/libavfilter/Makefile b/libavfilter/Makefile
index 01f1cdfe0c..cf1953c3c7 100644
--- a/libavfilter/Makefile
+++ b/libavfilter/Makefile
@@ -14,6 +14,7 @@ OBJS = allfilters.o \
buffersink.o \
buffersrc.o \
colorspace.o \
+ ccfifo.o \
drawutils.o \
fifo.o \
formats.o \