Mercurial > mplayer.hg
changeset 21067:baf2e8bed3d1
during DEMUXER_CTRL_SWITCH_x *arg set to -2 identifies 'disable stream x'
author | nicodvb |
---|---|
date | Sun, 19 Nov 2006 23:10:30 +0000 |
parents | 6196ba31e97e |
children | 3172431edc3a |
files | libmpdemux/demux_ts.c |
diffstat | 1 files changed, 20 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/libmpdemux/demux_ts.c Sun Nov 19 22:35:17 2006 +0000 +++ b/libmpdemux/demux_ts.c Sun Nov 19 23:10:30 2006 +0000 @@ -3189,13 +3189,20 @@ { case DEMUXER_CTRL_SWITCH_AUDIO: { - sh_audio_t *sh_audio = demuxer->audio->sh; sh_audio_t *sh_a = NULL; int i, n; - if(!sh_audio) - return DEMUXER_CTRL_NOTIMPL; n = *((int*)arg); + if(n == -2) + { + reset_fifos(priv, 1, 0, 0); + demuxer->audio->id = -2; + demuxer->audio->sh = NULL; + ds_free_packs(demuxer->audio); + *((int*)arg) = demuxer->audio->id; + return DEMUXER_CTRL_OK; + } + if(n < 0) { for(i = 0; i < 8192; i++) @@ -3243,13 +3250,20 @@ case DEMUXER_CTRL_SWITCH_VIDEO: { - sh_video_t *sh_video = demuxer->video->sh; sh_video_t *sh_v = NULL; int i, n; - if(!sh_video) - return DEMUXER_CTRL_NOTIMPL; n = *((int*)arg); + if(n == -2) + { + reset_fifos(priv, 0, 1, 0); + demuxer->video->id = -2; + demuxer->video->sh = NULL; + ds_free_packs(demuxer->video); + *((int*)arg) = demuxer->video->id; + return DEMUXER_CTRL_OK; + } + if(n < 0) { for(i = 0; i < 8192; i++)