[FFmpeg-cvslog] r17572 - in trunk/libavcodec: mpeg12.c mpegvideo_parser.c
Baptiste Coudurier
baptiste.coudurier
Thu Feb 26 19:35:31 CET 2009
On 2/26/2009 5:01 AM, Michael Niedermayer wrote:
> On Thu, Feb 26, 2009 at 12:19:51AM -0800, Baptiste Coudurier wrote:
>> Michael Niedermayer wrote:
>>> On Wed, Feb 25, 2009 at 05:05:59PM -0800, Baptiste Coudurier wrote:
>>>> On 2/25/2009 3:41 PM, Michael Niedermayer wrote:
>>>>> On Wed, Feb 25, 2009 at 03:00:02PM -0800, Baptiste Coudurier wrote:
>>>>>> On 2/25/2009 2:29 PM, Michael Niedermayer wrote:
> [...]
>> Here are some problems:
>>
>> ffmpeg.c:
>> if (ist->st->codec->time_base.num != 0) {
>> ist->next_pts += ((int64_t)AV_TIME_BASE *
>> ist->st->codec->time_base.num) /
>> ist->st->codec->time_base.den;
>> }
>
> this was not correct to begin with
>
>
>> This is no more correct.
>>
>> There is an issue in compute_pkt_fields2 when muxing:
>>
>> if(st->time_base.num*1000LL > st->time_base.den){
>> *pnum = st->time_base.num;
>> *pden = st->time_base.den;
>> }else if(st->codec->time_base.num*1000LL > st->codec->time_base.den){
>> *pnum = st->codec->time_base.num;
>> *pden = st->codec->time_base.den;
>
> this should be correct. you sniped the repeat_pict compensation
> that comes in the immedeatly following line
>>
>> [...]
>>
>> compute_frame_duration(&num, &den, st, NULL, pkt);
>> if (den && num) {
>> pkt->duration = av_rescale(1, num * (int64_t)st->time_base.den,
>> den * (int64_t)st->time_base.num);
>>
>> st->codec->time_base.den is now *2 but pkt->duration will be 1,
>> this is wrong.
>
> thats just because NULL is passed instead of something containing the
> repeat_pict value
>
> before it was wrong for field mpeg and wrong for repeat_first_field
> now its wrong for progressive and correct for field mpeg
>
No, when muxing there is no parser, repeat_pict is useless.
I thought it was obvious, I mentioned "when muxing".
If pkt->duration is wrong, muxing in mov is _broken_ and this applies to
H.264.
--
Baptiste COUDURIER GnuPG Key Id: 0x5C1ABAAA
Key fingerprint 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
checking for life_signs in -lkenny... no
FFmpeg maintainer http://www.ffmpeg.org
More information about the ffmpeg-cvslog
mailing list