mirror of
https://github.com/mpv-player/mpv
synced 2024-10-22 08:51:57 +02:00
has_audio checkings at reset and exit added
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@1157 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
e10baf6ffb
commit
17743e35e8
173
mplayer.c
173
mplayer.c
@ -298,89 +298,6 @@ extern void avi_fixate();
|
|||||||
#define GUI_MSG(x)
|
#define GUI_MSG(x)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void exit_player(char* how){
|
|
||||||
|
|
||||||
total_time_usage_start=GetTimer()-total_time_usage_start;
|
|
||||||
|
|
||||||
#ifdef HAVE_GUI
|
|
||||||
if ( !nogui )
|
|
||||||
{
|
|
||||||
if ( how != NULL )
|
|
||||||
{
|
|
||||||
if ( !strcmp( how,"Quit" ) ) mplSendMessage( mplEndOfFile );
|
|
||||||
if ( !strcmp( how,"End of file" ) ) mplSendMessage( mplEndOfFile );
|
|
||||||
if ( !strcmp( how,"audio_init" ) ) mplSendMessage( mplAudioError );
|
|
||||||
}
|
|
||||||
else mplSendMessage( mplUnknowError );
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if(how) printf("\nExiting... (%s)\n",how);
|
|
||||||
if(verbose) printf("max framesize was %d bytes\n",max_framesize);
|
|
||||||
if(benchmark){
|
|
||||||
double tot=video_time_usage+vout_time_usage+audio_time_usage;
|
|
||||||
double total_time_usage=(float)total_time_usage_start*0.000001;
|
|
||||||
printf("BENCHMARKs: V:%8.3fs VO:%8.3fs A:%8.3fs Sys:%8.3fs = %8.3fs\n",
|
|
||||||
video_time_usage,vout_time_usage,audio_time_usage,
|
|
||||||
total_time_usage-tot,total_time_usage);
|
|
||||||
if(total_time_usage>0.0)
|
|
||||||
printf("BENCHMARK%%: V:%8.4f%% VO:%8.4f%% A:%8.4f%% Sys:%8.4f%% = %8.4f%%\n",
|
|
||||||
100.0*video_time_usage/total_time_usage,
|
|
||||||
100.0*vout_time_usage/total_time_usage,
|
|
||||||
100.0*audio_time_usage/total_time_usage,
|
|
||||||
100.0*(total_time_usage-tot)/total_time_usage,
|
|
||||||
100.0);
|
|
||||||
}
|
|
||||||
// restore terminal:
|
|
||||||
#ifdef HAVE_GUI
|
|
||||||
if ( nogui )
|
|
||||||
#endif
|
|
||||||
getch2_disable();
|
|
||||||
video_out->uninit();
|
|
||||||
// audio_out->reset();
|
|
||||||
if(audio_out) audio_out->uninit();
|
|
||||||
if(encode_name) avi_fixate();
|
|
||||||
#ifdef HAVE_LIRC
|
|
||||||
#ifdef HAVE_GUI
|
|
||||||
if ( nogui )
|
|
||||||
#endif
|
|
||||||
lirc_mp_cleanup();
|
|
||||||
#endif
|
|
||||||
//if(play_in_bg) system("xsetroot -solid \\#000000");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
static char* current_module=NULL; // for debugging
|
|
||||||
|
|
||||||
void exit_sighandler(int x){
|
|
||||||
static int sig_count=0;
|
|
||||||
++sig_count;
|
|
||||||
if(sig_count==2) exit(1);
|
|
||||||
if(sig_count>2){
|
|
||||||
// can't stop :(
|
|
||||||
kill(getpid(),SIGKILL);
|
|
||||||
}
|
|
||||||
printf("\nMPlayer interrupted by signal %d in module: %s \n",x,
|
|
||||||
current_module?current_module:"unknown"
|
|
||||||
);
|
|
||||||
#ifdef HAVE_GUI
|
|
||||||
if ( !nogui )
|
|
||||||
{
|
|
||||||
mplShMem->items.error.signal=x;
|
|
||||||
strcpy( mplShMem->items.error.module,current_module?current_module:"unknown" );
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
exit_player(NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
extern int vcd_get_track_end(int fd,int track);
|
|
||||||
extern int init_audio(sh_audio_t *sh_audio);
|
|
||||||
extern int init_video_codec(sh_video_t *sh_video);
|
|
||||||
extern void mpeg2_allocate_image_buffers(picture_t * picture);
|
|
||||||
extern void write_avi_header_1(FILE *f,int fcc,float fps,int width,int height);
|
|
||||||
extern int vo_init(void);
|
|
||||||
extern int decode_audio(sh_audio_t *sh_audio,unsigned char *buf,int minlen,int maxlen);
|
|
||||||
|
|
||||||
// options:
|
// options:
|
||||||
int osd_level=2;
|
int osd_level=2;
|
||||||
int divx_quality=0;
|
int divx_quality=0;
|
||||||
@ -443,11 +360,93 @@ char *sub_name=NULL;
|
|||||||
float sub_delay=0;
|
float sub_delay=0;
|
||||||
float sub_fps=0;
|
float sub_fps=0;
|
||||||
int sub_auto = 1;
|
int sub_auto = 1;
|
||||||
|
|
||||||
char *dsp=NULL;
|
char *dsp=NULL;
|
||||||
|
|
||||||
float rel_seek_secs=0;
|
float rel_seek_secs=0;
|
||||||
|
|
||||||
|
|
||||||
|
void exit_player(char* how){
|
||||||
|
total_time_usage_start=GetTimer()-total_time_usage_start;
|
||||||
|
|
||||||
|
#ifdef HAVE_GUI
|
||||||
|
if ( !nogui )
|
||||||
|
{
|
||||||
|
if ( how != NULL )
|
||||||
|
{
|
||||||
|
if ( !strcmp( how,"Quit" ) ) mplSendMessage( mplEndOfFile );
|
||||||
|
if ( !strcmp( how,"End of file" ) ) mplSendMessage( mplEndOfFile );
|
||||||
|
if ( !strcmp( how,"audio_init" ) ) mplSendMessage( mplAudioError );
|
||||||
|
}
|
||||||
|
else mplSendMessage( mplUnknowError );
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if(how) printf("\nExiting... (%s)\n",how);
|
||||||
|
if(verbose) printf("max framesize was %d bytes\n",max_framesize);
|
||||||
|
if(benchmark){
|
||||||
|
double tot=video_time_usage+vout_time_usage+audio_time_usage;
|
||||||
|
double total_time_usage=(float)total_time_usage_start*0.000001;
|
||||||
|
printf("BENCHMARKs: V:%8.3fs VO:%8.3fs A:%8.3fs Sys:%8.3fs = %8.3fs\n",
|
||||||
|
video_time_usage,vout_time_usage,audio_time_usage,
|
||||||
|
total_time_usage-tot,total_time_usage);
|
||||||
|
if(total_time_usage>0.0)
|
||||||
|
printf("BENCHMARK%%: V:%8.4f%% VO:%8.4f%% A:%8.4f%% Sys:%8.4f%% = %8.4f%%\n",
|
||||||
|
100.0*video_time_usage/total_time_usage,
|
||||||
|
100.0*vout_time_usage/total_time_usage,
|
||||||
|
100.0*audio_time_usage/total_time_usage,
|
||||||
|
100.0*(total_time_usage-tot)/total_time_usage,
|
||||||
|
100.0);
|
||||||
|
}
|
||||||
|
// restore terminal:
|
||||||
|
#ifdef HAVE_GUI
|
||||||
|
if ( nogui )
|
||||||
|
#endif
|
||||||
|
getch2_disable();
|
||||||
|
if(video_out) video_out->uninit();
|
||||||
|
if(audio_out && has_audio) audio_out->uninit();
|
||||||
|
if(encode_name) avi_fixate();
|
||||||
|
#ifdef HAVE_LIRC
|
||||||
|
#ifdef HAVE_GUI
|
||||||
|
if ( nogui )
|
||||||
|
#endif
|
||||||
|
lirc_mp_cleanup();
|
||||||
|
#endif
|
||||||
|
//if(play_in_bg) system("xsetroot -solid \\#000000");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
static char* current_module=NULL; // for debugging
|
||||||
|
|
||||||
|
void exit_sighandler(int x){
|
||||||
|
static int sig_count=0;
|
||||||
|
++sig_count;
|
||||||
|
if(sig_count==2) exit(1);
|
||||||
|
if(sig_count>2){
|
||||||
|
// can't stop :(
|
||||||
|
kill(getpid(),SIGKILL);
|
||||||
|
}
|
||||||
|
printf("\nMPlayer interrupted by signal %d in module: %s \n",x,
|
||||||
|
current_module?current_module:"unknown"
|
||||||
|
);
|
||||||
|
#ifdef HAVE_GUI
|
||||||
|
if ( !nogui )
|
||||||
|
{
|
||||||
|
mplShMem->items.error.signal=x;
|
||||||
|
strcpy( mplShMem->items.error.module,current_module?current_module:"unknown" );
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
exit_player(NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
extern int vcd_get_track_end(int fd,int track);
|
||||||
|
extern int init_audio(sh_audio_t *sh_audio);
|
||||||
|
extern int init_video_codec(sh_video_t *sh_video);
|
||||||
|
extern void mpeg2_allocate_image_buffers(picture_t * picture);
|
||||||
|
extern void write_avi_header_1(FILE *f,int fcc,float fps,int width,int height);
|
||||||
|
extern int vo_init(void);
|
||||||
|
extern int decode_audio(sh_audio_t *sh_audio,unsigned char *buf,int minlen,int maxlen);
|
||||||
|
|
||||||
|
|
||||||
#include "mixer.h"
|
#include "mixer.h"
|
||||||
#include "cfg-mplayer.h"
|
#include "cfg-mplayer.h"
|
||||||
|
|
||||||
@ -1942,7 +1941,8 @@ switch(sh_video->codec->driver){
|
|||||||
|
|
||||||
if(osd_function==OSD_PAUSE){
|
if(osd_function==OSD_PAUSE){
|
||||||
printf("\n------ PAUSED -------\r");fflush(stdout);
|
printf("\n------ PAUSED -------\r");fflush(stdout);
|
||||||
audio_out->pause(); // pause audio, keep data if possible
|
if (audio_out && has_audio)
|
||||||
|
audio_out->pause(); // pause audio, keep data if possible
|
||||||
#ifdef HAVE_GUI
|
#ifdef HAVE_GUI
|
||||||
if ( nogui )
|
if ( nogui )
|
||||||
{
|
{
|
||||||
@ -1959,7 +1959,8 @@ switch(sh_video->codec->driver){
|
|||||||
#ifdef HAVE_GUI
|
#ifdef HAVE_GUI
|
||||||
} else while( osd_function != OSD_PLAY ) usec_sleep( 1000 );
|
} else while( osd_function != OSD_PLAY ) usec_sleep( 1000 );
|
||||||
#endif
|
#endif
|
||||||
audio_out->resume(); // resume audio
|
if (audio_out && has_audio)
|
||||||
|
audio_out->resume(); // resume audio
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user