From 76ad8a568f98483c225d59a9f985dc6d054b6b19 Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Sun, 14 Jun 2020 18:20:14 +0200 Subject: avformat/movenc: fix remuxing eia-608 into mov from other containers --- libavformat/movenc.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'libavformat') diff --git a/libavformat/movenc.c b/libavformat/movenc.c index 5d8dc4fd5d..520aaafb74 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -5582,6 +5582,22 @@ int ff_mov_write_packet(AVFormatContext *s, AVPacket *pkt) goto end; avio_write(pb, pkt->data, size); #endif + } else if (par->codec_id == AV_CODEC_ID_EIA_608) { + size = 8; + + for (int i = 0; i < pkt->size; i += 3) { + if (pkt->data[i] == 0xFC) { + size += 2; + } + } + avio_wb32(pb, size); + ffio_wfourcc(pb, "cdat"); + for (int i = 0; i < pkt->size; i += 3) { + if (pkt->data[i] == 0xFC) { + avio_w8(pb, pkt->data[i + 1]); + avio_w8(pb, pkt->data[i + 2]); + } + } } else { if (trk->cenc.aes_ctr) { if (par->codec_id == AV_CODEC_ID_H264 && par->extradata_size > 4) { -- cgit v1.2.3