Mercurial > mplayer.hg
changeset 23667:568e9190f631
Implemented tv://[<channel>][/<input_id>] url syntax
to allow users start watching from S-Video or Composite
input without touching '-tv input=' option.
author | voroshil |
---|---|
date | Thu, 28 Jun 2007 18:36:05 +0000 |
parents | 5c3c7efd9b75 |
children | 9fa2149ea603 |
files | DOCS/man/en/mplayer.1 stream/stream_tv.c stream/tvi_vbi.c |
diffstat | 2 files changed, 37 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/DOCS/man/en/mplayer.1 Thu Jun 28 11:24:12 2007 +0000 +++ b/DOCS/man/en/mplayer.1 Thu Jun 28 18:36:05 2007 +0000 @@ -70,7 +70,7 @@ . .br .B mplayer -tv://[channel] +tv://[channel][/input_id] [options] . .br @@ -1728,7 +1728,8 @@ This option tunes various properties of the TV capture module. For watching TV with MPlayer, use 'tv://' or 'tv://<channel_number>' or even 'tv://<channel_name> (see option channels for channel_name below) -as a movie URL. +as a movie URL. You can also use 'tv:///<input_id>' to start watching +movie from Composite or S-Video input (see option input for details). .sp 1 Available options are: .RSs
--- a/stream/stream_tv.c Thu Jun 28 11:24:12 2007 +0000 +++ b/stream/stream_tv.c Thu Jun 28 18:36:05 2007 +0000 @@ -24,17 +24,48 @@ #include "stream.h" #include "libmpdemux/demuxer.h" +#include "m_option.h" +#include "m_struct.h" + +#include <stdio.h> + +static struct stream_priv_s { + /* if channels parameter exist here will be channel number otherwise - frequency */ + int input; + char* channel; +} stream_priv_dflts = { + 0, + NULL +}; + +#define ST_OFF(f) M_ST_OFF(struct stream_priv_s,f) +static m_option_t stream_opts_fields[] = { + {"hostname", ST_OFF(channel), CONF_TYPE_STRING, 0, 0 ,0, NULL}, + {"filename", ST_OFF(input), CONF_TYPE_INT, 0, 0 ,0, NULL}, + { NULL, NULL, 0, 0, 0, 0, NULL } +}; + +static struct m_struct_st stream_opts = { + "tv", + sizeof(struct stream_priv_s), + &stream_priv_dflts, + stream_opts_fields +}; static int tv_stream_open (stream_t *stream, int mode, void *opts, int *file_format) { extern char* tv_param_channel; + extern int tv_param_input; + struct stream_priv_s* p=(struct stream_priv_s*)opts; stream->type = STREAMTYPE_TV; *file_format = DEMUXER_TYPE_TV; - if (strlen (stream->url) > 5 && stream->url[5] != '\0') - tv_param_channel = strdup (stream->url + 5); + tv_param_input=p->input; + if (p->channel) + tv_param_channel=strdup (p->channel); +fprintf(stderr,"%p\n",p->channel) ; return STREAM_OK; } @@ -45,6 +76,6 @@ "", tv_stream_open, { "tv", NULL }, - NULL, + &stream_opts, 1 };