[FFmpeg-devel] [PATCH] flv duration

Howard Chu hyc
Sun Apr 4 13:24:54 CEST 2010

elupus wrote:
> On Sat, 03 Apr 2010 18:41:24 -0700, Howard Chu wrote:
>> Howard Chu wrote:
>>> Michael Niedermayer wrote:
>>>> On Thu, Apr 01, 2010 at 02:28:11AM -0700, Howard Chu wrote:
>>>>> When playing an FLV, you always see this message:
>>>>> [flv @ 0x120cea0]Estimating duration from bitrate, this may be inaccurate
>>>>> even if the FLV metadata provides the duration. I'd been ignoring this for
>>>>> the most part, but after someone else mentioned it on irc I decided to take
>>>>> a look. The FLV demux sets the AVFormatContext->duration based on the
>>>>> metadata, but the av_has_duration() function wants to see it set in one of
>>>>> the AVStreams. It looks to me like it does no harm one way or the other,
>>>>> but I wrote this patch just to shut up that diagnostic.
>>>> you dont need to set s->duration
>>> OK. Works fine, make test passes.
>> Spoke too soon. Not setting s->duration breaks XBMC.
> In what way? lavf should have populated that from the stream duration
> anyway.

I don't know why, but it didn't, it was zero. And since by default XBMC uses 
percentage-based seeks, all of my seek requests were turned into seeks to 
zero. Restoring the line to set s->duration made it all work fine.

I have to admit I wasn't really interested in digging to see why it wasn't set 
by something else in lavf. I'm content knowing that this code was in there 
originally, and things were working. My first patch preserved the existing 
behavior, so I'm going to stick with it. This code base is just too rife with 
unintended consequences, and there was no good reason to remove that line in 
the first place.
   -- Howard Chu
   CTO, Symas Corp.           http://www.symas.com
   Director, Highland Sun     http://highlandsun.com/hyc/
   Chief Architect, OpenLDAP  http://www.openldap.org/project/

More information about the ffmpeg-devel mailing list