[Mplayer-cvslog] CVS: main mencoder.c,1.234,1.235

Alex Beregszaszi syncmail at mplayerhq.hu
Wed Feb 18 14:33:19 CET 2004


CVS change done by Alex Beregszaszi

Update of /cvsroot/mplayer/main
In directory mail:/var2/tmp/cvs-serv12945

Modified Files:
	mencoder.c 
Log Message:
write out extraheaders from lavc

Index: mencoder.c
===================================================================
RCS file: /cvsroot/mplayer/main/mencoder.c,v
retrieving revision 1.234
retrieving revision 1.235
diff -u -r1.234 -r1.235
--- mencoder.c	17 Feb 2004 12:43:06 -0000	1.234
+++ mencoder.c	18 Feb 2004 13:33:16 -0000	1.235
@@ -730,6 +730,8 @@
 
 mux_a->buffer_size=0x100000; //16384;
 mux_a->buffer=malloc(mux_a->buffer_size);
+if (!mux_a->buffer)
+    mencoder_exit(1,"memory allocation failed");
 
 mux_a->source=sh_audio;
 
@@ -894,10 +896,7 @@
 	exit(1);
     }
 
-    if (sizeof(MPEGLAYER3WAVEFORMAT) != 30)  // should be 30
-	broken_c_compiler___size_of_MPEGLAYER3WAVEFORMAT_not_30();
-
-    mux_a->wf = malloc(sizeof(MPEGLAYER3WAVEFORMAT));
+    mux_a->wf = malloc(sizeof(WAVEFORMATEX)+lavc_actx->extradata_size+256);
     mux_a->wf->wFormatTag = lavc_param_atag;
     mux_a->wf->nChannels = lavc_actx->channels;
     mux_a->wf->nSamplesPerSec = lavc_actx->sample_rate;
@@ -942,11 +941,21 @@
 	((MPEGLAYER3WAVEFORMAT *) (mux_a->wf))->nCodecDelay = 0;
 	break;
     default:
-	mux_a->wf->cbSize = 0;
 	mux_a->wf->wBitsPerSample = 0; /* Unknown */
+	if (lavc_actx->extradata && (lavc_actx->extradata_size > 0))
+	{
+	    memcpy(mux_a->wf+sizeof(WAVEFORMATEX), lavc_actx->extradata,
+		    lavc_actx->extradata_size);
+	    mux_a->wf->cbSize = lavc_actx->extradata_size;
+	}
+	else
+	    mux_a->wf->cbSize = 0;
 	break;
     }
 
+    // Fix allocation    
+    mux_a->wf = realloc(mux_a->wf, sizeof(WAVEFORMATEX)+mux_a->wf->cbSize);
+
     // setup filter:
     if (!init_audio_filters(
 	sh_audio,
@@ -1827,6 +1836,9 @@
     if(! strcasecmp(codec, "adpcm_ima_wav"))
        return 0x11;
 
+    if(! strncasecmp(codec, "bonk", 4))
+       return 0x2048;
+
     return 0;
 }
 #endif




More information about the MPlayer-cvslog mailing list