Mercurial > mplayer.hg
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) |