[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