comparison mplayer.c @ 18897:78547a882a09

support for audio streams that appear after unsuccessful probing
author nicodvb
date Tue, 04 Jul 2006 20:40:18 +0000
parents ab29b3c4f94e
children 89af7441989b
comparison
equal deleted inserted replaced
18896:4f6312855a7d 18897:78547a882a09
2343 if(sh_audio){ 2343 if(sh_audio){
2344 current_module="init_audio_codec"; 2344 current_module="init_audio_codec";
2345 mp_msg(MSGT_CPLAYER,MSGL_INFO,"==========================================================================\n"); 2345 mp_msg(MSGT_CPLAYER,MSGL_INFO,"==========================================================================\n");
2346 if(!init_best_audio_codec(sh_audio,audio_codec_list,audio_fm_list)){ 2346 if(!init_best_audio_codec(sh_audio,audio_codec_list,audio_fm_list)){
2347 sh_audio=d_audio->sh=NULL; // failed to init :( 2347 sh_audio=d_audio->sh=NULL; // failed to init :(
2348 d_audio->id = -2;
2348 return; 2349 return;
2349 } else 2350 } else
2350 inited_flags|=INITED_ACODEC; 2351 inited_flags|=INITED_ACODEC;
2351 mp_msg(MSGT_CPLAYER,MSGL_INFO,"==========================================================================\n"); 2352 mp_msg(MSGT_CPLAYER,MSGL_INFO,"==========================================================================\n");
2352 2353
2376 ao_data.format,0))){ 2377 ao_data.format,0))){
2377 // FAILED: 2378 // FAILED:
2378 mp_msg(MSGT_CPLAYER,MSGL_ERR,MSGTR_CannotInitAO); 2379 mp_msg(MSGT_CPLAYER,MSGL_ERR,MSGTR_CannotInitAO);
2379 uninit_player(INITED_ACODEC); // close codec 2380 uninit_player(INITED_ACODEC); // close codec
2380 sh_audio=d_audio->sh=NULL; // -> nosound 2381 sh_audio=d_audio->sh=NULL; // -> nosound
2382 d_audio->id = -2;
2381 return; 2383 return;
2382 } else { 2384 } else {
2383 // SUCCESS: 2385 // SUCCESS:
2384 inited_flags|=INITED_AO; 2386 inited_flags|=INITED_AO;
2385 mp_msg(MSGT_CPLAYER,MSGL_INFO,"AO: [%s] %dHz %dch %s (%d bytes per sample)\n", 2387 mp_msg(MSGT_CPLAYER,MSGL_INFO,"AO: [%s] %dHz %dch %s (%d bytes per sample)\n",
3609 3611
3610 if(!sh_audio){ 3612 if(!sh_audio){
3611 mp_msg(MSGT_CPLAYER,MSGL_INFO,MSGTR_NoSound); 3613 mp_msg(MSGT_CPLAYER,MSGL_INFO,MSGTR_NoSound);
3612 mp_msg(MSGT_CPLAYER,MSGL_V,"Freeing %d unused audio chunks.\n",d_audio->packs); 3614 mp_msg(MSGT_CPLAYER,MSGL_V,"Freeing %d unused audio chunks.\n",d_audio->packs);
3613 ds_free_packs(d_audio); // free buffered chunks 3615 ds_free_packs(d_audio); // free buffered chunks
3614 d_audio->id=-2; // do not read audio chunks 3616 //d_audio->id=-2; // do not read audio chunks
3615 //uninit_player(INITED_AO); // close device 3617 //uninit_player(INITED_AO); // close device
3616 } 3618 }
3617 if(!sh_video){ 3619 if(!sh_video){
3618 mp_msg(MSGT_CPLAYER,MSGL_INFO,MSGTR_Video_NoVideo); 3620 mp_msg(MSGT_CPLAYER,MSGL_INFO,MSGTR_Video_NoVideo);
3619 mp_msg(MSGT_CPLAYER,MSGL_V,"Freeing %d unused video chunks.\n",d_video->packs); 3621 mp_msg(MSGT_CPLAYER,MSGL_V,"Freeing %d unused video chunks.\n",d_video->packs);
3648 eof=PT_NEXT_ENTRY; goto goto_next_file; 3650 eof=PT_NEXT_ENTRY; goto goto_next_file;
3649 } 3651 }
3650 3652
3651 while(!eof){ 3653 while(!eof){
3652 float aq_sleep_time=0; 3654 float aq_sleep_time=0;
3655 if(!sh_audio && d_audio->sh) {
3656 sh_audio = d_audio->sh;
3657 sh_audio->ds = d_audio;
3658 reinit_audio_chain();
3659 }
3653 3660
3654 /*========================== PLAY AUDIO ============================*/ 3661 /*========================== PLAY AUDIO ============================*/
3655 3662
3656 while(sh_audio){ 3663 while(sh_audio){
3657 unsigned int t; 3664 unsigned int t;