[FFmpeg-devel] [PATCH] flv duration
Sun Apr 4 13:24:54 CEST 2010
> 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
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