From: "Cédric Le Barz" <clebarz@ektacom.com>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Subject: Re: [FFmpeg-devel] [PATCH] Fix issue when invalid nb_index_entries value is read - SPONSORED BY INA (Institut National de l'Audiovisuel)
Date: Fri, 24 Mar 2023 11:22:23 +0100
Message-ID: <bf9ab7db-6be9-dd36-dad0-4364899ed160@ektacom.com> (raw)
In-Reply-To: <482fa713-1f4e-a351-354b-11d1ae99a63d@ektacom.com>
Hi Marton,
The previous link was not OK, sorry. The good link that will make you
possible to download the sample is the following :
https://estendirectapi.ektacom.com/download/ffmpeg/Sample.mxf
Regards,
Cédric
Le 24/03/2023 à 10:13, Cédric Le Barz a écrit :
> Hi Marton,
>
> A sample can be downloaded from here :
> https://estendirectapi.ektacom.com/download/ffmpeg/
>
> Regards,
>
> Cédric
>
>
> Le 20/03/2023 à 21:03, Marton Balint a écrit :
>>
>>
>> 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@ffmpeg.org> De la part de
>>>>> Marton
>>>>> Balint
>>>>> Envoyé : mercredi 8 mars 2023 23:06
>>>>> À : FFmpeg development discussions and patches
>>>>> <ffmpeg-devel@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@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@ffmpeg.org
>>>>>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>>>>>
>>>>>> To unsubscribe, visit link above, or email
>>>>>> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
>>>>>>
>>>>>>
>>>>> _______________________________________________
>>>>> ffmpeg-devel mailing list
>>>>> ffmpeg-devel@ffmpeg.org
>>>>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>>>>
>>>>> To unsubscribe, visit link above, or email
>>>>> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
>>>>>
>>>>> _______________________________________________
>>>>> ffmpeg-devel mailing list
>>>>> ffmpeg-devel@ffmpeg.org
>>>>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>>>>
>>>>> To unsubscribe, visit link above, or email
>>>>> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
>>>> _______________________________________________
>>>> ffmpeg-devel mailing list
>>>> ffmpeg-devel@ffmpeg.org
>>>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>>>
>>>> To unsubscribe, visit link above, or email
>>>> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
>>> _______________________________________________
>>> ffmpeg-devel mailing list
>>> ffmpeg-devel@ffmpeg.org
>>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>>
>>> To unsubscribe, visit link above, or email
>>> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
>>>
>>>
>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel@ffmpeg.org
>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>
>> To unsubscribe, visit link above, or email
>> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
next prev parent reply other threads:[~2023-03-24 10:22 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-08 15:55 Cédric Le Barz
2023-03-08 22:05 ` Marton Balint
2023-03-16 9:45 ` Cédric Le Barz
2023-03-16 20:28 ` Marton Balint
2023-03-20 15:52 ` Cédric Le Barz
2023-03-20 20:03 ` Marton Balint
2023-03-24 9:13 ` Cédric Le Barz
2023-03-24 10:22 ` Cédric Le Barz [this message]
2023-03-26 21:06 ` Marton Balint
2023-03-16 13:33 ` Cédric Le Barz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=bf9ab7db-6be9-dd36-dad0-4364899ed160@ektacom.com \
--to=clebarz@ektacom.com \
--cc=ffmpeg-devel@ffmpeg.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git