diff options
author | Devin Heitmueller <devin.heitmueller@ltnglobal.com> | 2023-05-05 15:09:02 -0400 |
---|---|---|
committer | Limin Wang <lance.lmwang@gmail.com> | 2023-05-11 22:06:20 +0800 |
commit | 2b0e794ffc0ce9d087903a90c7e6d8c957017d98 (patch) | |
tree | 6ca47ab98c6572740c558074eedc42ed116021fc /libavcodec/dolby_e.h | |
parent | 7958325a832e9dd0807e35a123da5028a521f1c7 (diff) | |
download | ffmpeg-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 'libavcodec/dolby_e.h')
0 files changed, 0 insertions, 0 deletions