[FFmpeg-devel] [PATCH] Fix issue when invalid nb_index_entries value is read - SPONSORED BY INA (Institut National de l'Audiovisuel)
Marton Balint
cus at passwd.hu
Mon Mar 20 22:03:12 EET 2023
On Mon, 20 Mar 2023, Cédric Le Barz wrote:
> We have several samples but these are big files: about 7 GB. Is it OK to
> share such a file size ?
I kind of hoped you have access to the broken muxer and can remux a
small file which can be made public.
If not, then simply upload it somewhere so I can take a look. If the
sample can't be made public, just share it with me privately.
Thanks,
Marton
>
> Thanks for you answer,
>
> Regards,
>
> Cédric
>
> Le 16/03/2023 à 21:28, Marton Balint a écrit :
>>
>>
>> On Thu, 16 Mar 2023, Cédric Le Barz wrote:
>>
>>> Hi,
>>>
>>> By "invalid", I mean that the written nb_index_entries value does not
>>> match with the real number of entries in the table. The number of
>>> entries in the table is lower than the specified one. This is a bug in
>>> commercial MXFTk software (at least version V 2.8.0.0.1). It exists a
>>> lot a MXF files with this problem.
>>
>> Please share a sample. Or better yet, open a ticket for this issue and
>> attach a sample there for future reference.
>>
>> Thanks,
>> Marton
>>
>>>
>>> Best regards,
>>>
>>> Cédric
>>>
>>> -----Message d'origine-----
>>> De : ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> De la part de Marton
>>> Balint
>>> Envoyé : mercredi 8 mars 2023 23:06
>>> À : FFmpeg development discussions and patches <ffmpeg-devel at ffmpeg.org>
>>> Objet : Re: [FFmpeg-devel] [PATCH] Fix issue when invalid
>>> nb_index_entries value is read - SPONSORED BY INA (Institut National de
>>> l'Audiovisuel)
>>>
>>>
>>>
>>> On Wed, 8 Mar 2023, Cédric Le Barz wrote:
>>>
>>>>
>>>> Fix issue when invalid nb_index_entries value is read : in case of
>>>> false nb_index_entries value, ffmpeg exit. This patch fix this problem.
>>>
>>> What do you mean invalid? Is the value wrong, or is the file truncated in
>>> the middle of the index segment? From the patch it looks like the latter.
>>>
>>> Is there a single unluckily truncated file that you want to fix with this
>>> patch, or multiple files can be affected by this fix because e.g. they
>>> are written by the same broken muxer?
>>>
>>> Overall I am not sure if we want this applied, the user can also opt to
>>> avoid parsing all partitions with -seekable 0 and read / remux the file
>>> sequentially ignoring any index, so if somebody wants to rescue the data,
>>> it can be done as is.
>>>
>>> Regards,
>>> Marton
>>>
>>>>
>>>>
>>>> Signed-off-by: Cedric Le Barz <clebarz at ektacom.com>
>>>> ---
>>>> ffmpeg/libavformat/mxfdec.c | 14 ++++++++++++--
>>>> 1 file changed, 12 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/ffmpeg/libavformat/mxfdec.c b/ffmpeg/libavformat/mxfdec.c
>>>> index 4530617..ffc8987 100644
>>>> --- a/ffmpeg/libavformat/mxfdec.c
>>>> +++ b/ffmpeg/libavformat/mxfdec.c
>>>> @@ -1221,8 +1221,18 @@ static int
>>>> mxf_read_index_entry_array(AVIOContext *pb, MXFIndexTableSegment *seg
>>>> }
>>>> for (i = 0; i < segment->nb_index_entries; i++) {
>>>> - if(avio_feof(pb))
>>>> - return AVERROR_INVALIDDATA;
>>>> +
>>>> + if(avio_feof(pb)) {
>>>> + if (i == 0) {
>>>> + return AVERROR_INVALIDDATA;
>>>> + } else {
>>>> + /* To be more robust to invalid nb_index_entries value,
>>>> + fix the index entry number according to read entries
>>>> */
>>>> + segment->nb_index_entries = i;
>>>> + return 0;
>>>> + }
>>>> + }
>>>> +
>>>> segment->temporal_offset_entries[i] = avio_r8(pb);
>>>> avio_r8(pb); /*
>>>> KeyFrameOffset */
>>>> segment->flag_entries[i] = avio_r8(pb);
>>>> --
>>>> 2.34.1
>>>>
>>>> _______________________________________________
>>>> 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".
>>>>
>>>>
>>> _______________________________________________
>>> 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".
>>>
>>> _______________________________________________
>>> 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".
>> _______________________________________________
>> 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".
> _______________________________________________
> 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