[FFmpeg-devel] [PATCH] lavf: accept time base from untrusted codecs if it matches timings

Ronald S. Bultje rsbultje
Tue Feb 1 18:15:34 CET 2011


Hi,

On Tue, Feb 1, 2011 at 11:49 AM, Anssi Hannula <anssi.hannula at iki.fi> wrote:
> On 01.02.2011 18:10, Ronald S. Bultje wrote:
>> On Sun, Jan 30, 2011 at 2:33 PM, Anssi Hannula <anssi.hannula at iki.fi> wrote:
>>> @@ -627,6 +627,8 @@ typedef struct AVStream {
>>> ? ? ? ? int64_t last_dts;
>>> ? ? ? ? int64_t duration_gcd;
>>> ? ? ? ? int duration_count;
>>> + ? ? ? ?int codec_tb_matches_dts;
>>> + ? ? ? ?double codec_tb_dur_error;
>>> ? ? ? ? double duration_error[MAX_STD_TIMEBASES];
>>> ? ? ? ? int64_t codec_info_duration;
>>> ? ? } *info;
>>
>> These are only used in av_find_stream_info(), adding them to AVStream
>> in the middle breaks ABI and increases size for something that I don't
>> think should be in there. Can you locally allocate and free an array
>> instead, or create a AVFindStreamInfo array for these kind of temp
>> values to be shared between functions?
>
> They are not directly in AVStream and do not increase the size of
> AVStream nor change the API.
>
> Here's a longer excerpt from the above section (before the patch):
>
> ? ?/**
> ? ? * Stream informations used internally by av_find_stream_info()
> ? ? */
> #define MAX_STD_TIMEBASES (60*12+5)
> ? ?struct {
> ? ? ? ?int64_t last_dts;
> ? ? ? ?int64_t duration_gcd;
> ? ? ? ?int duration_count;
> ? ? ? ?double duration_error[MAX_STD_TIMEBASES];
> ? ? ? ?int64_t codec_info_duration;
> ? ?} *info;

Oh right it's a pointer. I still consider it ugly, ohwell if that's
how it works now then I guess it's OK.

Ronald



More information about the ffmpeg-devel mailing list