From b6a0fee3502442e46c5347a8d01bdf74702819dd Mon Sep 17 00:00:00 2001 From: alex Date: Sun, 23 Jun 2002 17:34:29 +0000 Subject: mono mp3 encoding support by Paul Ortyl git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@6531 b3059339-0415-0410-9bf9-f77b7e298cf2 --- mencoder.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'mencoder.c') diff --git a/mencoder.c b/mencoder.c index c7109d9760..b95777a901 100644 --- a/mencoder.c +++ b/mencoder.c @@ -716,10 +716,10 @@ case ACODEC_VBRMP3: if(sizeof(MPEGLAYER3WAVEFORMAT)!=30) mp_msg(MSGT_MENCODER,MSGL_WARN,"sizeof(MPEGLAYER3WAVEFORMAT)==%d!=30, maybe broken C compiler?\n",sizeof(MPEGLAYER3WAVEFORMAT)); mux_a->wf=malloc(sizeof(MPEGLAYER3WAVEFORMAT)); // should be 30 mux_a->wf->wFormatTag=0x55; // MP3 - mux_a->wf->nChannels=sh_audio->channels; + mux_a->wf->nChannels=(lame_param_mode == 3) ? 1 : sh_audio->channels; mux_a->wf->nSamplesPerSec=force_srate?force_srate:sh_audio->samplerate; mux_a->wf->nAvgBytesPerSec=192000/8; // FIXME! - mux_a->wf->nBlockAlign=(mux_a->h.dwRate<32000)?576:1152; // requires for l3codeca.acm + WMP 6.4 + mux_a->wf->nBlockAlign=(mux_a->h.dwRate<32000)?576:1152; // required for l3codeca.acm + WMP 6.4 mux_a->wf->wBitsPerSample=0; //16; // from NaNdub: (requires for l3codeca.acm) mux_a->wf->cbSize=12; @@ -732,6 +732,8 @@ case ACODEC_VBRMP3: } } +if (verbose>1) print_wave_header(mux_a->wf); + printf("Writing AVI header...\n"); aviwrite_write_header(muxer,muxer_f); @@ -849,9 +851,18 @@ if(sh_audio){ unsigned char tmp[2304]; int len=dec_audio(sh_audio,tmp,2304); if(len<=0) break; // eof - len=lame_encode_buffer_interleaved(lame, + /* mono encoding, a bit tricky */ + if (mux_a->wf->nChannels == 1) + { + len = lame_encode_buffer(lame, tmp, tmp, len/4, + mux_a->buffer+mux_a->buffer_len, mux_a->buffer_size-mux_a->buffer_len); + } + else + { + len=lame_encode_buffer_interleaved(lame, tmp,len/4, mux_a->buffer+mux_a->buffer_len,mux_a->buffer_size-mux_a->buffer_len); + } if(len<0) break; // error mux_a->buffer_len+=len; } -- cgit v1.2.3