[FFmpeg-devel] [PATCH] fix stream copy

Maksym Veremeyenko verem
Thu Jan 14 08:31:17 CET 2010


Baptiste Coudurier ???????(??):
> On 01/13/2010 07:09 AM, Maksym Veremeyenko wrote:
>> Hi,
>>
>> During cutting some MOV files i found strange behavior with number of
>> frames copied to new file. The problems come from wrong codec->timebase
>> value that is guessed from stream->time_base. For MOV stream->time_base
>> is setted from time_scale that could be 25, 60, 6000, 2997 values - as
>> result stream->time_base will have a values 1/25, 1/600, 1/2997 (i have
>> such sample). That cause codec->timebase been set to that values later:
> 
> This value is a time base like its name indicate, not a frame rate.
> However, the fps value is right if you notice as is the tbr (r_frame_rate).
My patch is looks like a hack but that was attempt to save correct 
values of codec->timebase. For MOV context there is also information 
from stts about durations of frame/chunk in stream->time_base units that 
is not inherited to codec->time_base

May be i am wrong but for AVCodecContext.time_base field it said:
[...]
      * - encoding: MUST be set by user.
      * - decoding: Set by libavcodec.
[...]
but i did not found that at least DV codec updates codec->time_base on 
decoding process or in a . It seems to me that codec->time_base been 
defaulted to stream->timebase later:

int av_find_stream_info(AVFormatContext *ic)
{
[...]
             if(!st->codec->time_base.num)
                 st->codec->time_base= st->time_base;
[...]

and later codec->time_base been updated more...

> 
> Did you check the code stopping the copy instead ?
I not sure i clear understand *code stopping the copy*, could you clarify?


-- 
________________________________________
Maksym Veremeyenko




More information about the ffmpeg-devel mailing list