comparison mplayer.c @ 8800:2485bc98772d

fixed some possible overflow places
author alex
date Sun, 05 Jan 2003 15:39:16 +0000
parents 6e190ea2abba
children 477d42e66e8b
comparison
equal deleted inserted replaced
8799:f08d507eb683 8800:2485bc98772d
594 */ 594 */
595 #if defined(SYS_DARWIN) && defined(HAVE_SDL) 595 #if defined(SYS_DARWIN) && defined(HAVE_SDL)
596 #include <SDL.h> 596 #include <SDL.h>
597 #endif 597 #endif
598 598
599
599 int main(int argc,char* argv[]){ 600 int main(int argc,char* argv[]){
600 601
601 602
602 603
603 static demux_stream_t *d_audio=NULL; 604 static demux_stream_t *d_audio=NULL;
663 #ifdef HAVE_SSE2 664 #ifdef HAVE_SSE2
664 mp_msg(MSGT_CPLAYER,MSGL_INFO," SSE2"); 665 mp_msg(MSGT_CPLAYER,MSGL_INFO," SSE2");
665 #endif 666 #endif
666 mp_msg(MSGT_CPLAYER,MSGL_INFO,"\n\n"); 667 mp_msg(MSGT_CPLAYER,MSGL_INFO,"\n\n");
667 #endif 668 #endif
668
669 #endif 669 #endif
670 670
671 #ifdef USE_TV 671 #ifdef USE_TV
672 tv_param_immediate = 1; 672 tv_param_immediate = 1;
673 #endif 673 #endif
2992 2992
2993 //================= Update OSD ==================== 2993 //================= Update OSD ====================
2994 #ifdef USE_OSD 2994 #ifdef USE_OSD
2995 if(osd_level>=1){ 2995 if(osd_level>=1){
2996 int pts=d_video->pts; 2996 int pts=d_video->pts;
2997 char osd_text_tmp[50]; 2997 char osd_text_tmp[64];
2998 if(pts==osd_last_pts-1) ++pts; else osd_last_pts=pts; 2998 if(pts==osd_last_pts-1) ++pts; else osd_last_pts=pts;
2999 vo_osd_text=osd_text_buffer; 2999 vo_osd_text=osd_text_buffer;
3000 #ifdef USE_DVDNAV 3000 #ifdef USE_DVDNAV
3001 if (osd_show_dvd_nav_delay) { 3001 if (osd_show_dvd_nav_delay) {
3002 sprintf(osd_text_tmp, "DVDNAV: %s", dvd_nav_text); 3002 snprintf(osd_text_tmp, 63, "DVDNAV: %s", dvd_nav_text);
3003 osd_show_dvd_nav_delay--; 3003 osd_show_dvd_nav_delay--;
3004 } else 3004 } else
3005 #endif 3005 #endif
3006 #ifdef USE_TV 3006 #ifdef USE_TV
3007 if (osd_show_tv_channel && tv_channel_list) { 3007 if (osd_show_tv_channel && tv_channel_list) {
3008 sprintf(osd_text_tmp, "Channel: %s", tv_channel_current->name); 3008 snprintf(osd_text_tmp, 63, "Channel: %s", tv_channel_current->name);
3009 osd_show_tv_channel--; 3009 osd_show_tv_channel--;
3010 } else 3010 } else
3011 #endif 3011 #endif
3012 if (osd_show_sub_visibility) { 3012 if (osd_show_sub_visibility) {
3013 sprintf(osd_text_tmp, "Subtitles: %sabled", sub_visibility?"en":"dis"); 3013 snprintf(osd_text_tmp, 63, "Subtitles: %sabled", sub_visibility?"en":"dis");
3014 osd_show_sub_visibility--; 3014 osd_show_sub_visibility--;
3015 } else 3015 } else
3016 if (osd_show_vobsub_changed) { 3016 if (osd_show_vobsub_changed) {
3017 const char *language = "none"; 3017 const char *language = "none";
3018 if (vo_vobsub && vobsub_id >= 0) 3018 if (vo_vobsub && vobsub_id >= 0)
3019 language = vobsub_get_id(vo_vobsub, (unsigned int) vobsub_id); 3019 language = vobsub_get_id(vo_vobsub, (unsigned int) vobsub_id);
3020 sprintf(osd_text_tmp, "Subtitles: (%d) %s", vobsub_id, language ? language : "unknown"); 3020 snprintf(osd_text_tmp, 63, "Subtitles: (%d) %s", vobsub_id, language ? language : "unknown");
3021 osd_show_vobsub_changed--; 3021 osd_show_vobsub_changed--;
3022 } else 3022 } else
3023 if (osd_show_sub_delay) { 3023 if (osd_show_sub_delay) {
3024 sprintf(osd_text_tmp, "Sub delay: %d ms", ROUND(sub_delay*1000)); 3024 snprintf(osd_text_tmp, 63, "Sub delay: %d ms", ROUND(sub_delay*1000));
3025 osd_show_sub_delay--; 3025 osd_show_sub_delay--;
3026 } else 3026 } else
3027 if (osd_show_sub_pos) { 3027 if (osd_show_sub_pos) {
3028 sprintf(osd_text_tmp, "Sub position: %d/100", sub_pos); 3028 snprintf(osd_text_tmp, 63, "Sub position: %d/100", sub_pos);
3029 osd_show_sub_pos--; 3029 osd_show_sub_pos--;
3030 } else 3030 } else
3031 if (osd_show_sub_alignment) { 3031 if (osd_show_sub_alignment) {
3032 sprintf(osd_text_tmp, "Sub alignment: %s", 3032 snprintf(osd_text_tmp, 63, "Sub alignment: %s",
3033 (sub_alignment == 2 ? "bottom" : 3033 (sub_alignment == 2 ? "bottom" :
3034 (sub_alignment == 1 ? "center" : "top"))); 3034 (sub_alignment == 1 ? "center" : "top")));
3035 osd_show_sub_alignment--; 3035 osd_show_sub_alignment--;
3036 } else 3036 } else
3037 if (osd_show_av_delay) { 3037 if (osd_show_av_delay) {
3038 sprintf(osd_text_tmp, "A-V delay: %d ms", ROUND(audio_delay*1000)); 3038 snprintf(osd_text_tmp, 63, "A-V delay: %d ms", ROUND(audio_delay*1000));
3039 osd_show_av_delay--; 3039 osd_show_av_delay--;
3040 } else if(osd_level>=2) { 3040 } else if(osd_level>=2) {
3041 int len = demuxer_get_time_length(demuxer); 3041 int len = demuxer_get_time_length(demuxer);
3042 int percentage = -1; 3042 int percentage = -1;
3043 char percentage_text[50]; 3043 char percentage_text[10];
3044 if (osd_show_percentage) { 3044 if (osd_show_percentage) {
3045 percentage = demuxer_get_percent_pos(demuxer); 3045 percentage = demuxer_get_percent_pos(demuxer);
3046 osd_show_percentage--; 3046 osd_show_percentage--;
3047 } 3047 }
3048 if (percentage >= 0) 3048 if (percentage >= 0)
3049 sprintf(percentage_text, " (%d%%)", percentage); 3049 snprintf(percentage_text, 9, " (%d%%)", percentage);
3050 else 3050 else
3051 percentage_text[0] = 0; 3051 percentage_text[0] = 0;
3052 if (osd_level == 3) 3052 if (osd_level == 3)
3053 sprintf(osd_text_tmp,"%c %02d:%02d:%02d / %02d:%02d:%02d%s",osd_function,pts/3600,(pts/60)%60,pts%60,len/3600,(len/60)%60,len%60,percentage_text); 3053 snprintf(osd_text_tmp, 63, "%c %02d:%02d:%02d / %02d:%02d:%02d%s",osd_function,pts/3600,(pts/60)%60,pts%60,len/3600,(len/60)%60,len%60,percentage_text);
3054 else 3054 else
3055 sprintf(osd_text_tmp,"%c %02d:%02d:%02d%s",osd_function,pts/3600,(pts/60)%60,pts%60,percentage_text); 3055 snprintf(osd_text_tmp, 63, "%c %02d:%02d:%02d%s",osd_function,pts/3600,(pts/60)%60,pts%60,percentage_text);
3056 } else osd_text_tmp[0]=0; 3056 } else osd_text_tmp[0]=0;
3057 3057
3058 if(strcmp(vo_osd_text, osd_text_tmp)) { 3058 if(strcmp(vo_osd_text, osd_text_tmp)) {
3059 strcpy(vo_osd_text, osd_text_tmp); 3059 strncpy(vo_osd_text, osd_text_tmp, 63);
3060 vo_osd_changed(OSDTYPE_OSD); 3060 vo_osd_changed(OSDTYPE_OSD);
3061 } 3061 }
3062 } else { 3062 } else {
3063 if(vo_osd_text) { 3063 if(vo_osd_text) {
3064 vo_osd_text=NULL; 3064 vo_osd_text=NULL;