[FFmpeg-devel] [PATCH] avformat/mov: fix demuxing of eia-608

Paul B Mahol onemda at gmail.com
Sun Jun 14 18:07:35 EEST 2020


On 6/14/20, Carl Eugen Hoyos <ceffmpeg at gmail.com> wrote:
> Am So., 14. Juni 2020 um 14:22 Uhr schrieb Paul B Mahol <onemda at gmail.com>:
>>
>> Fixes #4616.
>>
>> Signed-off-by: Paul B Mahol <onemda at gmail.com>
>> ---
>>  libavformat/mov.c | 24 ++++++++++++++++++++++++
>>  1 file changed, 24 insertions(+)
>>
>> diff --git a/libavformat/mov.c b/libavformat/mov.c
>> index 2fc27d2aec..6d83a8a4b3 100644
>> --- a/libavformat/mov.c
>> +++ b/libavformat/mov.c
>> @@ -7854,6 +7854,27 @@ static int mov_change_extradata(MOVStreamContext
>> *sc, AVPacket *pkt)
>>      return 0;
>>  }
>>
>> +static int get_eia608_packet(AVIOContext *pb, AVPacket *pkt, int size)
>> +{
>> +    int new_size, ret;
>> +
>> +    if (size <= 8)
>> +        return AVERROR_INVALIDDATA;
>> +    new_size = ((size - 8) / 2) * 3;
>> +    ret = av_new_packet(pkt, new_size);
>> +    if (ret < 0)
>> +        return ret;
>> +
>> +    avio_skip(pb, 8);
>> +    for (int j = 0; j < new_size; j += 3) {
>> +        pkt->data[j] = 0xFC;
>> +        pkt->data[j+1] = avio_r8(pb);
>> +        pkt->data[j+2] = avio_r8(pb);
>> +    }
>> +
>> +    return 0;
>> +}
>> +
>>  static int mov_read_packet(AVFormatContext *s, AVPacket *pkt)
>>  {
>>      MOVContext *mov = s->priv_data;
>> @@ -7898,6 +7919,9 @@ static int mov_read_packet(AVFormatContext *s,
>> AVPacket *pkt)
>>              goto retry;
>>          }
>>
>> +        if (st->codecpar->codec_id == AV_CODEC_ID_EIA_608 && sample->size
>> > 8)
>> +            ret = get_eia608_packet(sc->pb, pkt, sample->size);
>> +        else
>>          ret = av_get_packet(sc->pb, pkt, sample->size);
>
> I have to repeat the question that I raised in the ticket:
> Doesn't this patch break remuxing of the subtitle stream?
>
> Thank you for looking into this issue!

Do you have files that previously worked when being muxed by ffmpeg into mov?
Thats is only scenario that no longer works, old invalid ffmpeg
generated mov files.
I guess similar patch should be done for mov muxer. If not already.

>
> Carl Eugen
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list