[FFmpeg-devel] [PATCH] Check stream time base before using it to set global duration.

Justin Ruggles justin.ruggles
Thu Feb 3 23:40:18 CET 2011


On 02/03/2011 02:58 PM, Reimar D?ffinger wrote:

> On Wed, Feb 02, 2011 at 03:24:12PM -0500, Justin Ruggles wrote:
>>
>> Fixes Issue 2475.
>> ---
>>  libavformat/utils.c |    2 +-
>>  1 files changed, 1 insertions(+), 1 deletions(-)
>>
> 
>> diff --git a/libavformat/utils.c b/libavformat/utils.c
>> index 4f51c26..a9d5a70 100644
>> --- a/libavformat/utils.c
>> +++ b/libavformat/utils.c
>> @@ -1823,7 +1823,7 @@ static void av_update_stream_timings(AVFormatContext *ic)
>>                      end_time = end_time1;
>>              }
>>          }
>> -        if (st->duration != AV_NOPTS_VALUE) {
>> +        if (st->duration != AV_NOPTS_VALUE && st->time_base.den) {
>>              duration1 = av_rescale_q(st->duration, st->time_base, AV_TIME_BASE_Q);
>>              if (duration1 > duration)
>>                  duration = duration1;
> 
> I don't really like that this still leaves applications to deal with an invalid
> time_base.
> Making sure that everything uses av_set_pts_info (patch for that still in limbo)
> and making that function a nop (and just print a warning) for invalid values
> seems more thorough and more user-friendly, though at more effort.


Yes, that seems better.

-Justin



More information about the ffmpeg-devel mailing list