summaryrefslogtreecommitdiffstats
path: root/command.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2012-08-19 18:06:06 +0200
committerwm4 <wm4@nowhere>2012-09-07 16:06:36 +0200
commit1fb275b7de1f58a14182594996930860295af6c4 (patch)
treecd9580d665920bc782eda89637c46205cb761233 /command.c
parent330c90cbb8583ac41547bcd3d7259bc7b9e6a3b5 (diff)
downloadmpv-1fb275b7de1f58a14182594996930860295af6c4.tar.bz2
mpv-1fb275b7de1f58a14182594996930860295af6c4.tar.xz
command: remove sub_remove command
This messes deeply with the subtitle bookkeeping data structures, and would have to be reimplemented anyway. It's not sure what this was even useful for. Possibly for slave mode.
Diffstat (limited to 'command.c')
-rw-r--r--command.c68
1 files changed, 0 insertions, 68 deletions
diff --git a/command.c b/command.c
index 0e33ac3c64..3b8053c303 100644
--- a/command.c
+++ b/command.c
@@ -2486,64 +2486,6 @@ static const char *property_error_string(int error_value)
return "UNKNOWN";
}
-static void remove_subtitle_range(MPContext *mpctx, int start, int count)
-{
- int idx;
- int end = start + count;
- int after = mpctx->set_of_sub_size - end;
- sub_data **subs = mpctx->set_of_subtitles;
-#ifdef CONFIG_ASS
- struct ass_track **ass_tracks = mpctx->set_of_ass_tracks;
-#endif
- if (count < 0 || count > mpctx->set_of_sub_size ||
- start < 0 || start > mpctx->set_of_sub_size - count) {
- mp_msg(MSGT_CPLAYER, MSGL_ERR,
- "Cannot remove invalid subtitle range %i +%i\n", start, count);
- return;
- }
- for (idx = start; idx < end; idx++) {
- sub_data *subd = subs[idx];
- char *filename = "";
- if (subd)
- filename = subd->filename;
-#ifdef CONFIG_ASS
- if (!subd)
- filename = ass_tracks[idx]->name;
-#endif
- mp_msg(MSGT_CPLAYER, MSGL_STATUS,
- "SUB: Removed subtitle file (%d): %s\n", idx + 1, filename);
- sub_free(subd);
- subs[idx] = NULL;
-#ifdef CONFIG_ASS
- if (ass_tracks[idx])
- ass_free_track(ass_tracks[idx]);
- ass_tracks[idx] = NULL;
-#endif
- }
-
- mpctx->global_sub_size -= count;
- mpctx->set_of_sub_size -= count;
- if (mpctx->set_of_sub_size <= 0)
- mpctx->sub_counts[SUB_SOURCE_SUBS] = 0;
-
- memmove(subs + start, subs + end, after * sizeof(*subs));
- memset(subs + start + after, 0, count * sizeof(*subs));
-#ifdef CONFIG_ASS
- memmove(ass_tracks + start, ass_tracks + end, after * sizeof(*ass_tracks));
- memset(ass_tracks + start + after, 0, count * sizeof(*ass_tracks));
-#endif
-
- if (mpctx->set_of_sub_pos >= start && mpctx->set_of_sub_pos < end) {
- mpctx->global_sub_pos = -2;
- mpctx->subdata = NULL;
- mpctx->osd->ass_track = NULL;
- mp_input_queue_cmd(mpctx->input, mp_input_parse_cmd("sub_select"));
- } else if (mpctx->set_of_sub_pos >= end) {
- mpctx->set_of_sub_pos -= count;
- mpctx->global_sub_pos -= count;
- }
-}
-
static char *format_time(double time)
{
int h, m, s = time;
@@ -3145,16 +3087,6 @@ void run_command(MPContext *mpctx, mp_cmd_t *cmd)
}
break;
- case MP_CMD_SUB_REMOVE:
- if (sh_video) {
- int v = cmd->args[0].v.i;
- if (v < 0)
- remove_subtitle_range(mpctx, 0, mpctx->set_of_sub_size);
- else if (v < mpctx->set_of_sub_size)
- remove_subtitle_range(mpctx, v, 1);
- }
- break;
-
case MP_CMD_GET_SUB_VISIBILITY:
if (sh_video) {
mp_msg(MSGT_GLOBAL, MSGL_INFO,