changeset 13249:a6642a4330fa

ensure that avi files have a valid header as soon as possible. without this, the header says 0x0 video size, which works with mplayer when the video size is stored in the codec data, but it does NOT work with other players or with codecs that don't store size (e.g. snow). actually i don't like having seeks in the muxer module, but i don't know any other way to implement this fix without major changes to mencoder. if you have a better fix, please reverse this and commit yours.
author rfelker
date Sun, 05 Sep 2004 16:51:15 +0000
parents 80d80d449057
children b8b626781ab0
files libmpdemux/muxer_avi.c
diffstat 1 files changed, 7 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/libmpdemux/muxer_avi.c	Sun Sep 05 13:02:31 2004 +0000
+++ b/libmpdemux/muxer_avi.c	Sun Sep 05 16:51:15 2004 +0000
@@ -195,6 +195,13 @@
     struct avi_stream_info *vsi = muxer->def_v->priv;
     int paddedlen = len + (len&1);
 
+    if (s->type == MUXER_TYPE_VIDEO && !s->h.dwSuggestedBufferSize) {
+	off_t pos=ftell(muxer->file);
+	fseek(muxer->file, 0, SEEK_SET);
+	avifile_write_header(muxer);
+	fseek(muxer->file, pos, SEEK_SET);
+    }
+
     rifflen = muxer->file_end - vsi->riffofs[vsi->riffofspos] - 8;
     if (vsi->riffofspos == 0) {
 	rifflen += 8+muxer->idx_pos*sizeof(AVIINDEXENTRY);