[FFmpeg-devel] [PATCH] Add support for large boxes(>32 bit)
Niklesh Lalwani
niklesh.lalwani at iitb.ac.in
Wed May 20 20:16:46 CEST 2015
Thanks. I'll do it separately for style entries.
-Niklesh
On 20-May-2015 11:41 PM, "Philip Langdale" <philipl at overt.org> wrote:
> On 2015-05-20 11:06, Niklesh Lalwani wrote:
>
>> I have done tracksize += 8 if there is a large box. This should account
>> for
>> it?
>>
>
> I see you did, but that's not a good idea. Previously, tracksize was
> accurate,
> in that it reflected adding tsmb_size each time. Now you're adding 8 that's
> already included in tsmb_size, so you'll end up failing the avpkt->size
> check
> even if the track is valid.
>
> On 20-May-2015 11:17 PM, "Philip Langdale" <philipl at overt.org> wrote:
>>
>> On 2015-05-20 07:40, Niklesh Lalwani wrote:
>>>
>>> From: Niklesh <niklesh.lalwani at iitb.ac.in>
>>>>
>>>> This patch is to be applied over the previous patch to fix movtext
>>>> crashes (which is yet to be committed)
>>>> Signed-off-by: Niklesh <niklesh.lalwani at iitb.ac.in>
>>>> ---
>>>> libavcodec/movtextdec.c | 11 ++++++++++-
>>>> 1 file changed, 10 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/libavcodec/movtextdec.c b/libavcodec/movtextdec.c
>>>> index 53ffef0..1a7c811 100644
>>>> --- a/libavcodec/movtextdec.c
>>>> +++ b/libavcodec/movtextdec.c
>>>> @@ -96,7 +96,8 @@ static int mov_text_decode_frame(AVCodecContext
>>>> *avctx,
>>>> char *ptr = avpkt->data;
>>>> char *end;
>>>> //char *ptr_temp;
>>>> - int text_length, tsmb_type, style_entries, tsmb_size, tracksize;
>>>> + int text_length, tsmb_type, style_entries;
>>>> + uint64_t tsmb_size, tracksize;
>>>> int **style_start = {0,};
>>>> int **style_end = {0,};
>>>> int **style_flags = {0,};
>>>> @@ -147,6 +148,14 @@ static int mov_text_decode_frame(AVCodecContext
>>>> *avctx,
>>>> tsmb_type = AV_RB32(tsmb);
>>>> tsmb += 4;
>>>>
>>>> + if (tsmb_size == 1) {
>>>> + if (tracksize + 16 > avpkt->size)
>>>> + break;
>>>>
>>>>
>>> You will need to adjust the "tracksize + 10" check for the style entry
>>> count as well.
>>>
>>> + tsmb_size = AV_RB64(tsmb);
>>>
>>>> + tsmb += 8;
>>>> + tracksize += 8;
>>>> + }
>>>> +
>>>> if (tracksize + tsmb_size > avpkt->size)
>>>> break;
>>>>
>>>>
>>>
>>> --phil
>>> _______________________________________________
>>> ffmpeg-devel mailing list
>>> ffmpeg-devel at ffmpeg.org
>>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>>
>>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel at ffmpeg.org
>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>
>
> --
> --phil
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
More information about the ffmpeg-devel
mailing list