diff libmpcodecs/ve_x264.c @ 17659:92ac78a93625

Fix video delay when encoding with B-frames. Encoding delay is adjusted for on-the-fly during encoding. Decoding delay is compensated for by setting an appropriate dwStart on the audio stream (only in muxer_avi at this point).
author corey
date Tue, 21 Feb 2006 09:39:22 +0000
parents f0e7712385dc
children a3dd033ec92e
line wrap: on
line diff
--- a/libmpcodecs/ve_x264.c	Mon Feb 20 23:50:40 2006 +0000
+++ b/libmpcodecs/ve_x264.c	Tue Feb 21 09:39:22 2006 +0000
@@ -435,6 +435,11 @@
         return 0;
     }
     
+    if (mod->param.i_bframe > 1 && mod->param.b_bframe_pyramid)
+        mod->mux->decoder_delay = 2;
+    else
+        mod->mux->decoder_delay = mod->param.i_bframe ? 1 : 0;
+    
     return 1;
 }
 
@@ -511,6 +516,8 @@
                         && frame_ref == 1 && !bframe);
         muxer_write_chunk(mod->mux, i_size, keyframe?0x10:0, MP_NOPTS_VALUE, MP_NOPTS_VALUE);
     }
+    else
+        ++mod->mux->encoder_delay;
 
     return i_size;
 }