[MPlayer-dev-eng] [PATCH] mencoder, B-frames, and video/audio delay
Rich Felker
dalias at aerifal.cx
Sat Jan 21 18:05:46 CET 2006
On Fri, Jan 20, 2006 at 09:47:11PM -0800, Corey Hickey wrote:
> Corey Hickey wrote:
> >>Instead you need to make the encoder advertise the number of frames of
> >>encoding-delay it has, and fake the muxer timer to compensate for it.
> >
> >
> > That's what I was thinking of earlier, but I thought I had found a
> > better solution.
>
> Ok, so here it is, I think. Again, it seems to work. I don't see any
> delay when I specify lower -ofps values, either.
>
> I've tested these:
> x264 ... 16 B-frames
> lavc mpeg4 ... 4 B-frames
> xvid (new) ... 4 B-frames
>
> I haven't tested the old xvid (ve_xvid.c), but it should work as well.
>
> -Corey
> Index: libmpcodecs/ve_lavc.c
> ===================================================================
> RCS file: /cvsroot/mplayer/main/libmpcodecs/ve_lavc.c,v
> retrieving revision 1.125
> diff -u -r1.125 ve_lavc.c
> --- libmpcodecs/ve_lavc.c 10 Jan 2006 11:09:02 -0000 1.125
> +++ libmpcodecs/ve_lavc.c 21 Jan 2006 05:44:32 -0000
> @@ -750,6 +750,9 @@
> mux_v->bih->biSize= sizeof(BITMAPINFOHEADER) + lavc_venc_context->extradata_size;
> }
>
> + if (lavc_venc_context->max_b_frames)
> + mux_v->encoder_delay = lavc_venc_context->max_b_frames + 1;
> +
Why the +1? This seems incorrect, certainly incorrect with 0 B frames.
Otherwise I think this patch will work!
Rich
More information about the MPlayer-dev-eng
mailing list