[FFmpeg-cvslog] r17572 - in trunk/libavcodec: mpeg12.c mpegvideo_parser.c

Michael Niedermayer michaelni
Thu Feb 26 22:22:45 CET 2009


On Thu, Feb 26, 2009 at 11:49:41AM -0800, Baptiste Coudurier wrote:
> Michael Niedermayer wrote:
> > On Thu, Feb 26, 2009 at 10:35:31AM -0800, Baptiste Coudurier wrote:
> >> 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".
> > 
> > there are repeat_first_field & top_field_first flags in the stream you mux
> > they represent different durations and the duration generation code on the
> > mxuer side did never work if these
> > where 2 out of 3 valid combinations, now a different variant of the 3
> > works, that is what i said and your "no" feels very offensive to be honest
> 
> Yes, I agree it was offensive, like when you said it was 5 am and you
> were wasting your time.

sorry for that, i was in somewhat bad mood when i wrote that.

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

I wish the Xiph folks would stop pretending they've got something they
do not.  Somehow I fear this will remain a wish. -- M?ns Rullg?rd
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-cvslog/attachments/20090226/c8614be7/attachment.pgp>



More information about the ffmpeg-cvslog mailing list