Mercurial > libavcodec.hg
diff mp3lameaudio.c @ 2091:02a4fd7c606c libavcodec
flush audio encoder buffers at the end
fix vorbis in nut again
author | michael |
---|---|
date | Tue, 22 Jun 2004 21:14:01 +0000 |
parents | 81a1a5be13aa |
children | e25782262d7d |
line wrap: on
line diff
--- a/mp3lameaudio.c Mon Jun 21 01:01:44 2004 +0000 +++ b/mp3lameaudio.c Tue Jun 22 21:14:01 2004 +0000 @@ -136,7 +136,9 @@ int lame_result; /* lame 3.91 dies on '1-channel interleaved' data */ - if (s->stereo) { + + if(data){ + if (s->stereo) { lame_result = lame_encode_buffer_interleaved( s->gfp, data, @@ -144,7 +146,7 @@ s->buffer + s->buffer_index, BUFFER_SIZE - s->buffer_index ); - } else { + } else { lame_result = lame_encode_buffer( s->gfp, data, @@ -153,6 +155,13 @@ s->buffer + s->buffer_index, BUFFER_SIZE - s->buffer_index ); + } + }else{ + lame_result= lame_encode_flush( + s->gfp, + s->buffer + s->buffer_index, + BUFFER_SIZE - s->buffer_index + ); } if(lame_result==-1) { @@ -174,7 +183,6 @@ memmove(s->buffer, s->buffer+len, s->buffer_index); //FIXME fix the audio codec API, so we dont need the memcpy() - //FIXME fix the audio codec API, so we can output multiple packets if we have them /*for(i=0; i<len; i++){ av_log(avctx, AV_LOG_DEBUG, "%2X ", frame[i]); }*/ @@ -201,5 +209,6 @@ sizeof(Mp3AudioContext), MP3lame_encode_init, MP3lame_encode_frame, - MP3lame_encode_close + MP3lame_encode_close, + .capabilities= CODEC_CAP_DELAY, };