summaryrefslogtreecommitdiffstats
path: root/libmpcodecs/ve_xvid.c
diff options
context:
space:
mode:
Diffstat (limited to 'libmpcodecs/ve_xvid.c')
-rw-r--r--libmpcodecs/ve_xvid.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/libmpcodecs/ve_xvid.c b/libmpcodecs/ve_xvid.c
index bfb08b70fb..881d9508a5 100644
--- a/libmpcodecs/ve_xvid.c
+++ b/libmpcodecs/ve_xvid.c
@@ -378,6 +378,10 @@ config(struct vf_instance_s* vf,
vbrInit(&fp->vbr_state);
+#ifdef XVID_API_UNSTABLE
+ fp->mux->decoder_delay = enc_param.max_bframes ? 1 : 0;
+#endif
+
return 1;
}
@@ -523,7 +527,10 @@ put_image(struct vf_instance_s* vf, mp_image_t *mpi)
#endif
// write output
+ if (fp->enc_frame.length > 0)
muxer_write_chunk(fp->mux, fp->enc_frame.length, fp->enc_frame.intra==1 ? 0x10 : 0, MP_NOPTS_VALUE, MP_NOPTS_VALUE);
+ else
+ ++fp->mux->encoder_delay;
// update the VBR engine
vbrUpdate(&fp->vbr_state, enc_stats.quant, fp->enc_frame.intra,