# HG changeset patch # User henry # Date 1136014657 0 # Node ID 13b99f89969fc86a6fd858413b01e287fd726bd0 # Parent 30f4c40e137fdf1488d7c4f72baa3887724e67b0 check the intermediate audio buffer otherwise, data can get stuck between the demuxer and filter layer causing a premature end of audio. diff -r 30f4c40e137f -r 13b99f89969f mplayer.c --- a/mplayer.c Sat Dec 31 00:41:35 2005 +0000 +++ b/mplayer.c Sat Dec 31 07:37:37 2005 +0000 @@ -2599,7 +2599,7 @@ current_module="decode_audio"; // Enter AUDIO decoder module t=GetTimer(); while(sh_audio->a_out_buffer_leneof || sh_audio->a_in_buffer_len > 0)){ + (!d_audio->eof || sh_audio->a_in_buffer_len > 0 || sh_audio->a_buffer_len > 0)){ int ret=decode_audio(sh_audio,&sh_audio->a_out_buffer[sh_audio->a_out_buffer_len], playsize-sh_audio->a_out_buffer_len,sh_audio->a_out_buffer_size-sh_audio->a_out_buffer_len); if(ret<=0) { // EOF?