diff -u -r ./mplayer/command.c /usr/src/mplayer/command.c --- ./mplayer/command.c 2007-12-29 15:17:03.000000000 +0100 +++ /usr/src/mplayer/command.c 2007-12-29 14:40:36.000000000 +0100 @@ -2715,6 +2715,13 @@ tvh->functions->control(tvh->priv,TV_VBI_CONTROL_ADD_DEC,&(cmd->args[0].v.s)); break; } + case MP_CMD_TV_TELETEXT_STEP_SUBPAGE: + { + tvi_handle_t* tvh=(tvi_handle_t *)(mpctx->demuxer->priv); + if (mpctx->file_format == DEMUXER_TYPE_TV) + tvh->functions->control(tvh->priv,TV_VBI_CONTROL_STEP_SUBPAGE,&(cmd->args[0].v.s)); + break; + } case MP_CMD_TV_TELETEXT_GO_LINK: { tvi_handle_t* tvh=(tvi_handle_t *)(mpctx->demuxer->priv); diff -u -r ./mplayer/input/input.c /usr/src/mplayer/input/input.c --- ./mplayer/input/input.c 2007-12-29 15:16:29.000000000 +0100 +++ /usr/src/mplayer/input/input.c 2007-12-29 14:32:10.000000000 +0100 @@ -152,6 +152,7 @@ #ifdef HAVE_TV_TELETEXT { MP_CMD_TV_TELETEXT_ADD_DEC, "teletext_add_dec", 1, { {MP_CMD_ARG_STRING,{0}}, {-1,{0}} } }, { MP_CMD_TV_TELETEXT_GO_LINK, "teletext_go_link", 1, { {MP_CMD_ARG_INT,{0}}, {-1,{0}} } }, + { MP_CMD_TV_TELETEXT_STEP_SUBPAGE, "teletext_step_subpage", 1, { { MP_CMD_ARG_INT ,{0}}, {-1,{0}} }}, #endif #ifdef HAVE_NEW_GUI diff -u -r ./mplayer/input/input.h /usr/src/mplayer/input/input.h --- ./mplayer/input/input.h 2007-12-29 15:16:29.000000000 +0100 +++ /usr/src/mplayer/input/input.h 2007-12-29 14:34:12.000000000 +0100 @@ -98,6 +98,7 @@ #define MP_CMD_SUB_SCALE 97 #define MP_CMD_TV_TELETEXT_ADD_DEC 98 #define MP_CMD_TV_TELETEXT_GO_LINK 99 +#define MP_CMD_TV_TELETEXT_STEP_SUBPAGE 105 #define MP_CMD_TV_START_SCAN 100 #define MP_CMD_SUB_SOURCE 101 #define MP_CMD_SUB_FILE 102 diff -u -r ./mplayer/stream/tv.h /usr/src/mplayer/stream/tv.h --- ./mplayer/stream/tv.h 2007-12-29 15:16:29.000000000 +0100 +++ /usr/src/mplayer/stream/tv.h 2007-12-29 14:45:36.000000000 +0100 @@ -214,6 +214,7 @@ #define TV_VBI_CONTROL_GET_SUBPAGE 0x516 ///< get grabbed teletext page #define TV_VBI_CONTROL_SET_SUBPAGE 0x517 ///< set grab teletext page number +#define TV_VBI_CONTROL_STEP_SUBPAGE 0x518 #define TV_VBI_CONTROL_GET_FORMAT 0x519 ///< get eletext format #define TV_VBI_CONTROL_SET_FORMAT 0x51a ///< set teletext format diff -u -r ./mplayer/stream/tvi_vbi.c /usr/src/mplayer/stream/tvi_vbi.c --- ./mplayer/stream/tvi_vbi.c 2007-12-29 15:16:29.000000000 +0100 +++ /usr/src/mplayer/stream/tvi_vbi.c 2007-12-29 14:26:31.000000000 +0100 @@ -1819,6 +1819,17 @@ case TV_VBI_CONTROL_GET_SUBPAGE: *(int*)arg=priv->subpagenum; return TVI_CONTROL_TRUE; + case TV_VBI_CONTROL_STEP_SUBPAGE: + pthread_mutex_lock(&(priv->buffer_mutex)); + priv->pagenumdec=0; + priv->subpagenum=*(int*)arg+priv->subpagenum; + if(priv->subpagenum<1) + priv->subpagenum=0x3f7f; + if(priv->subpagenum>=VBI_MAX_SUBPAGES) + priv->subpagenum=1; + priv->page_changed=1; + pthread_mutex_unlock(&(priv->buffer_mutex)); + return TVI_CONTROL_TRUE; case TV_VBI_CONTROL_ADD_DEC: vbi_add_dec(priv, *(char **) arg); priv->page_changed=1;