comparison mplayer.c @ 10609:e6b63c53402e

there were no checks in MP_CMD_SUB for sh_video, so mplayer immediately segfaulted when such keys were pressed on non-video files
author alex
date Thu, 14 Aug 2003 21:29:39 +0000
parents a4fb8d7831de
children 012f51c6eaa3
comparison
equal deleted inserted replaced
10608:2cae82f2ab02 10609:e6b63c53402e
2517 eof = PT_PREV_SRC; 2517 eof = PT_PREV_SRC;
2518 } 2518 }
2519 brk_cmd = 1; 2519 brk_cmd = 1;
2520 } break; 2520 } break;
2521 case MP_CMD_SUB_DELAY : { 2521 case MP_CMD_SUB_DELAY : {
2522 #ifdef USE_SUB
2523 if (sh_video) {
2522 int abs= cmd->args[1].v.i; 2524 int abs= cmd->args[1].v.i;
2523 float v = cmd->args[0].v.f; 2525 float v = cmd->args[0].v.f;
2524 if(abs) 2526 if(abs)
2525 sub_delay = v; 2527 sub_delay = v;
2526 else 2528 else
2527 sub_delay += v; 2529 sub_delay += v;
2528 osd_show_sub_delay = 9; // show the subdelay in OSD 2530 osd_show_sub_delay = 9; // show the subdelay in OSD
2531 }
2532 #endif
2529 } break; 2533 } break;
2530 case MP_CMD_SUB_STEP : { 2534 case MP_CMD_SUB_STEP : {
2535 #ifdef USE_SUB
2536 if (sh_video) {
2531 int movement = cmd->args[0].v.i; 2537 int movement = cmd->args[0].v.i;
2532 step_sub(subdata, sh_video->pts, movement); 2538 step_sub(subdata, sh_video->pts, movement);
2533 osd_show_sub_delay = 9; // show the subdelay in OSD 2539 osd_show_sub_delay = 9; // show the subdelay in OSD
2540 }
2541 #endif
2534 } break; 2542 } break;
2535 case MP_CMD_OSD : 2543 case MP_CMD_OSD : {
2544 #ifdef USE_OSD
2536 if(sh_video) { 2545 if(sh_video) {
2537 int v = cmd->args[0].v.i; 2546 int v = cmd->args[0].v.i;
2538 if(v < 0) 2547 if(v < 0)
2539 osd_level=(osd_level+1)%(MAX_OSD_LEVEL+1); 2548 osd_level=(osd_level+1)%(MAX_OSD_LEVEL+1);
2540 else 2549 else
2541 osd_level= v > MAX_OSD_LEVEL ? MAX_OSD_LEVEL : v; 2550 osd_level= v > MAX_OSD_LEVEL ? MAX_OSD_LEVEL : v;
2542 } break; 2551 }
2552 #endif
2553 } break;
2543 case MP_CMD_OSD_SHOW_TEXT : { 2554 case MP_CMD_OSD_SHOW_TEXT : {
2544 #ifdef USE_OSD 2555 #ifdef USE_OSD
2545 if(osd_level && sh_video){ 2556 if(osd_level && sh_video){
2546 osd_show_text=sh_video->fps; // 1 sec 2557 osd_show_text=sh_video->fps; // 1 sec
2547 strncpy(osd_show_text_buffer, cmd->args[0].v.s, 64); 2558 strncpy(osd_show_text_buffer, cmd->args[0].v.s, 64);
2924 #endif 2935 #endif
2925 } 2936 }
2926 } break; 2937 } break;
2927 case MP_CMD_SUB_POS: 2938 case MP_CMD_SUB_POS:
2928 { 2939 {
2940 #ifdef USE_SUB
2941 if (sh_video) {
2929 int v; 2942 int v;
2930 v = cmd->args[0].v.i; 2943 v = cmd->args[0].v.i;
2931 2944
2932 sub_pos+=v; 2945 sub_pos+=v;
2933 if(sub_pos >100) sub_pos=100; 2946 if(sub_pos >100) sub_pos=100;
2934 if(sub_pos <0) sub_pos=0; 2947 if(sub_pos <0) sub_pos=0;
2935 vo_osd_changed(OSDTYPE_SUBTITLE); 2948 vo_osd_changed(OSDTYPE_SUBTITLE);
2936 osd_show_sub_pos = 9; 2949 osd_show_sub_pos = 9;
2937 } break; 2950 }
2951 #endif
2952 } break;
2938 case MP_CMD_SUB_ALIGNMENT: 2953 case MP_CMD_SUB_ALIGNMENT:
2939 { 2954 {
2955 #ifdef USE_SUB
2956 if (sh_video) {
2940 if (cmd->nargs >= 1) 2957 if (cmd->nargs >= 1)
2941 sub_alignment = cmd->args[0].v.i; 2958 sub_alignment = cmd->args[0].v.i;
2942 else 2959 else
2943 sub_alignment = (sub_alignment+1) % 3; 2960 sub_alignment = (sub_alignment+1) % 3;
2944 osd_show_sub_alignment = 9; 2961 osd_show_sub_alignment = 9;
2945 vo_osd_changed(OSDTYPE_SUBTITLE); 2962 vo_osd_changed(OSDTYPE_SUBTITLE);
2946 break; 2963 }
2947 } 2964 #endif
2965 } break;
2948 case MP_CMD_SUB_VISIBILITY: 2966 case MP_CMD_SUB_VISIBILITY:
2949 { 2967 {
2968 #ifdef USE_SUB
2969 if (sh_video) {
2950 sub_visibility=1-sub_visibility; 2970 sub_visibility=1-sub_visibility;
2951 osd_show_sub_visibility = 9; // show state of subtitle visibility in OSD 2971 osd_show_sub_visibility = 9; // show state of subtitle visibility in OSD
2952 vo_osd_changed(OSDTYPE_SUBTITLE); 2972 vo_osd_changed(OSDTYPE_SUBTITLE);
2953 break; 2973 }
2954 } 2974 #endif
2975 } break;
2955 case MP_CMD_VOBSUB_LANG: 2976 case MP_CMD_VOBSUB_LANG:
2956 if (vo_vobsub) 2977 if (vo_vobsub)
2957 { 2978 {
2958 int new_id = vobsub_id + 1; 2979 int new_id = vobsub_id + 1;
2959 if (vobsub_id < 0) 2980 if (vobsub_id < 0)