# HG changeset patch # User nicodvb # Date 1145997166 0 # Node ID e0470e00b3bdae995bed34d409c49b6cad5e455b # Parent 368eac8237ea2186f4d30d9925efe6f31e09e8f0 simplified management of dvb channel switching diff -r 368eac8237ea -r e0470e00b3bd mplayer.c --- a/mplayer.c Tue Apr 25 20:28:48 2006 +0000 +++ b/mplayer.c Tue Apr 25 20:32:46 2006 +0000 @@ -118,6 +118,7 @@ #ifdef HAS_DVBIN_SUPPORT #include "libmpdemux/dvbin.h" static int last_dvb_step = 1; +static int dvbin_reopen = 0; extern void cache_uninit(stream_t *s); #endif @@ -3224,11 +3225,7 @@ dir = DVB_CHANNEL_LOWER; if(dvb_step_channel(priv, dir)) - { - uninit_player(INITED_ALL-(INITED_STREAM|INITED_INPUT)); - cache_uninit(stream); - goto goto_enable_cache; - } + eof = dvbin_reopen = 1; } } #endif @@ -4451,11 +4448,7 @@ if(dvb_step_channel(priv, dir)) - { - uninit_player(INITED_ALL-(INITED_STREAM|INITED_INPUT)); - cache_uninit(stream); - goto goto_enable_cache; - } + eof = dvbin_reopen = 1; } } #endif /* HAS_DVBIN_SUPPORT */ @@ -4484,11 +4477,7 @@ last_dvb_step = -1; if(dvb_set_channel(priv, cmd->args[1].v.i, cmd->args[0].v.i)) - { - uninit_player(INITED_ALL-(INITED_STREAM|INITED_INPUT)); - cache_uninit(stream); - goto goto_enable_cache; - } + eof = dvbin_reopen = 1; } } } @@ -5084,6 +5073,16 @@ mp_msg(MSGT_GLOBAL,MSGL_V,"EOF code: %d \n",eof); +#ifdef HAS_DVBIN_SUPPORT +if(dvbin_reopen) +{ + eof = 0; + uninit_player(INITED_ALL-(INITED_STREAM|INITED_INPUT)); + cache_uninit(stream); + dvbin_reopen = 0; + goto goto_enable_cache; +} +#endif } goto_next_file: // don't jump here after ao/vo/getch initialization!