Index: libmpcodecs/ve_lavc.c =================================================================== RCS file: /cvsroot/mplayer/main/libmpcodecs/ve_lavc.c,v retrieving revision 1.127 diff -u -r1.127 ve_lavc.c --- libmpcodecs/ve_lavc.c 23 Jan 2006 13:53:40 -0000 1.127 +++ libmpcodecs/ve_lavc.c 23 Jan 2006 21:17:35 -0000 @@ -754,6 +754,8 @@ mux_v->bih->biSize= sizeof(BITMAPINFOHEADER) + lavc_venc_context->extradata_size; } + mux_v->encoder_delay = lavc_venc_context->delay; + return 1; } Index: libmpcodecs/ve_x264.c =================================================================== RCS file: /cvsroot/mplayer/main/libmpcodecs/ve_x264.c,v retrieving revision 1.43 diff -u -r1.43 ve_x264.c --- libmpcodecs/ve_x264.c 16 Jan 2006 01:37:32 -0000 1.43 +++ libmpcodecs/ve_x264.c 23 Jan 2006 21:17:35 -0000 @@ -437,6 +437,8 @@ return 0; } + mod->mux->encoder_delay = mod->param.i_bframe; + return 1; } Index: libmpcodecs/ve_xvid.c =================================================================== RCS file: /cvsroot/mplayer/main/libmpcodecs/ve_xvid.c,v retrieving revision 1.30 diff -u -r1.30 ve_xvid.c --- libmpcodecs/ve_xvid.c 18 Nov 2005 14:39:22 -0000 1.30 +++ libmpcodecs/ve_xvid.c 23 Jan 2006 21:17:35 -0000 @@ -378,6 +378,9 @@ vbrInit(&fp->vbr_state); + if (enc_param.max_bframes) + vf->mux->encoding_delay = enc_param.max_bframes + 1; + return 1; } Index: libmpcodecs/ve_xvid4.c =================================================================== RCS file: /cvsroot/mplayer/main/libmpcodecs/ve_xvid4.c,v retrieving revision 1.22 diff -u -r1.22 ve_xvid4.c --- libmpcodecs/ve_xvid4.c 18 Nov 2005 14:39:22 -0000 1.22 +++ libmpcodecs/ve_xvid4.c 23 Jan 2006 21:17:35 -0000 @@ -1024,6 +1024,10 @@ else mp_msg(MSGT_MENCODER, MSGL_INFO, "xvid: par=0/0 (vga11) forced by choosing a DXN profile\n"); + + if (create->max_bframes) + mod->mux->encoder_delay = create->max_bframes + 1; + return(FINE); } Index: libmpdemux/muxer.c =================================================================== RCS file: /cvsroot/mplayer/main/libmpdemux/muxer.c,v retrieving revision 1.13 diff -u -r1.13 muxer.c --- libmpdemux/muxer.c 9 Jan 2006 19:35:44 -0000 1.13 +++ libmpdemux/muxer.c 23 Jan 2006 21:17:35 -0000 @@ -142,7 +142,7 @@ // VBR s->h.dwLength++; } - s->timer=(double)s->h.dwLength*s->h.dwScale/s->h.dwRate; + s->timer=(double)(s->h.dwLength + s->encoder_delay) * s->h.dwScale/s->h.dwRate; s->size+=len; return; Index: libmpdemux/muxer.h =================================================================== RCS file: /cvsroot/mplayer/main/libmpdemux/muxer.h,v retrieving revision 1.16 diff -u -r1.16 muxer.h --- libmpdemux/muxer.h 21 Nov 2005 22:53:14 -0000 1.16 +++ libmpdemux/muxer.h 23 Jan 2006 21:17:35 -0000 @@ -38,6 +38,7 @@ // stream specific: WAVEFORMATEX *wf; BITMAPINFOHEADER *bih; // in format + int encoder_delay; // in number of frames // mpeg specific: size_t ipb[3]; // sizes of I/P/B frames // muxer of that stream