diff options
author | wm4 <wm4@nowhere> | 2013-04-14 06:23:12 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2013-04-20 23:28:24 +0200 |
commit | 5dabaaf0939c4ed2e2549318bf5243948a1cd964 (patch) | |
tree | f25ba4289ee2b74a508a996cc173c3349258a2a6 /demux | |
parent | 69258b2c7113d380e3baf4717aac71dc71872394 (diff) | |
download | mpv-5dabaaf0939c4ed2e2549318bf5243948a1cd964.tar.bz2 mpv-5dabaaf0939c4ed2e2549318bf5243948a1cd964.tar.xz |
demux_mkv: use new way of track switching
Since demux_mkv queries the demuxer state when reading packets, track
switching is completely passive. Cycling etc. is done by the frontend.
As result, all track switching code can be removed.
Diffstat (limited to 'demux')
-rw-r--r-- | demux/demux_mkv.c | 45 |
1 files changed, 0 insertions, 45 deletions
diff --git a/demux/demux_mkv.c b/demux/demux_mkv.c index e0b5e289e0..42b251ac1a 100644 --- a/demux/demux_mkv.c +++ b/demux/demux_mkv.c @@ -2591,51 +2591,6 @@ static int demux_mkv_control(demuxer_t *demuxer, int cmd, void *arg) *((double *) arg) = (double) mkv_d->duration; return DEMUXER_CTRL_OK; - - case DEMUXER_CTRL_SWITCH_AUDIO:; - int new_aid = *(int *) arg; - int current_aid = demuxer->audio->id; - if (current_aid < 0) - current_aid = -1; - if (new_aid == -1) { // cycle to next - new_aid = current_aid; - while (1) { - new_aid = (new_aid + 2) % (mkv_d->num_audio_tracks + 1) - 1; - if (new_aid == -1 || demuxer->a_streams[new_aid]) - break; - } - } - if (new_aid < 0 || new_aid >= mkv_d->num_audio_tracks || - !demuxer->a_streams[new_aid]) - new_aid = -2; - *(int *) arg = new_aid; - if (current_aid != new_aid) - ds_free_packs(demuxer->audio); - demuxer->audio->id = new_aid; - return DEMUXER_CTRL_OK; - - case DEMUXER_CTRL_SWITCH_VIDEO:; - int new_vid = *(int *) arg; - int current_vid = demuxer->video->id; - if (current_vid < 0) - current_vid = -1; - if (new_vid == -1) { // cycle to next - new_vid = current_vid; - while (1) { - new_vid = (new_vid + 2) % (mkv_d->num_video_tracks + 1) - 1; - if (new_vid == -1 || demuxer->v_streams[new_vid]) - break; - } - } - if (new_vid < 0 || new_vid >= mkv_d->num_video_tracks || - !demuxer->v_streams[new_vid]) - new_vid = -2; - *(int *) arg = new_vid; - if (current_vid != new_vid) - ds_free_packs(demuxer->video); - demuxer->video->id = new_vid; - return DEMUXER_CTRL_OK; - default: return DEMUXER_CTRL_NOTIMPL; } |