Message ID | 20200614162211.30885-2-onemda@gmail.com |
---|---|
State | Accepted |
Commit | 76ad8a568f98483c225d59a9f985dc6d054b6b19 |
Headers | show |
Series | [FFmpeg-devel,1/2] avformat/mov: fix demuxing of eia-608 | expand |
Context | Check | Description |
---|---|---|
andriy/default | pending | |
andriy/make | success | Make finished |
andriy/make_fate | success | Make fate finished |
Am So., 14. Juni 2020 um 18:22 Uhr schrieb Paul B Mahol <onemda@gmail.com>: > > Signed-off-by: Paul B Mahol <onemda@gmail.com> > --- > libavformat/movenc.c | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > 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]); > + } > + } This answers my question from the other thread, thank you. Carl Eugen
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) {
Signed-off-by: Paul B Mahol <onemda@gmail.com> --- libavformat/movenc.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)