diff options
author | Diego 'Flameeyes' Pettenò <flameeyes@gmail.com> | 2007-12-11 20:57:35 +0100 |
---|---|---|
committer | Diego 'Flameeyes' Pettenò <flameeyes@gmail.com> | 2007-12-11 20:57:35 +0100 |
commit | 594d847a3398e58eefed8c8c8fad900d035d7ed0 (patch) | |
tree | 102dab0ddf965f96677b7d1fc77c25f7582f714f /src | |
parent | 0c14df4d032947b635815e7acf537bd6a49315e5 (diff) | |
download | xine-lib-594d847a3398e58eefed8c8c8fad900d035d7ed0.tar.gz xine-lib-594d847a3398e58eefed8c8c8fad900d035d7ed0.tar.bz2 |
Allow the TS demuxer to accept dvb streams; fix BY_MRL detection for slave.
Diffstat (limited to 'src')
-rw-r--r-- | src/demuxers/demux_slave.c | 13 | ||||
-rw-r--r-- | src/demuxers/demux_ts.c | 34 |
2 files changed, 9 insertions, 38 deletions
diff --git a/src/demuxers/demux_slave.c b/src/demuxers/demux_slave.c index d7a17546f..fc42ae4c4 100644 --- a/src/demuxers/demux_slave.c +++ b/src/demuxers/demux_slave.c @@ -335,16 +335,6 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen, xine_stream_t *str switch (stream->content_detection_method) { - case METHOD_BY_MRL: { - const char *const mrl = input->get_mrl (input); - - if(!strncmp(mrl, "slave://", 8)) - break; - - free (this); - return NULL; - } - case METHOD_BY_CONTENT: { if (_x_demux_read_header(input, this->scratch, SCRATCH_SIZE) > 0) { @@ -356,6 +346,7 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen, xine_stream_t *str return NULL; } + case METHOD_BY_MRL: case METHOD_EXPLICIT: break; @@ -398,7 +389,7 @@ static void *init_plugin (xine_t *xine, void *data) { this->demux_class.description = ""; this->demux_class.identifier = "slave"; this->demux_class.mimetypes = NULL; - this->demux_class.extensions = NULL; + this->demux_class.extensions = "slave://"; this->demux_class.dispose = default_demux_class_dispose; return this; diff --git a/src/demuxers/demux_ts.c b/src/demuxers/demux_ts.c index 5c2a124c1..e320a6760 100644 --- a/src/demuxers/demux_ts.c +++ b/src/demuxers/demux_ts.c @@ -2162,32 +2162,7 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen, } break; - case METHOD_BY_MRL: { - const char *const mrl = input->get_mrl (input); - - /* check extension */ - if (_x_demux_check_extension (mrl, class_gen->extensions)) - break; - - /* accept dvb streams */ - /* - * Also handle the special dvbs,dvbt and dvbc mrl formats: - * the content is exactly the same but the input plugin - * uses a different tuning algorithm [Pragma] - */ - - if (!strncasecmp (mrl, "dvb://", 6)) - break; - if (!strncasecmp (mrl, "dvbs://", 7)) - break; - if (!strncasecmp (mrl, "dvbc://", 7)) - break; - if (!strncasecmp (mrl, "dvbt://", 7)) - break; - - return NULL; - } - + case METHOD_BY_MRL: case METHOD_EXPLICIT: break; @@ -2272,7 +2247,12 @@ static void *init_class (xine_t *xine, void *data) { this->demux_class.description = N_("MPEG Transport Stream demuxer"); this->demux_class.identifier = "MPEG_TS"; this->demux_class.mimetypes = NULL; - this->demux_class.extensions = "ts m2t trp"; + + /* accept dvb streams; also handle the special dvbs,dvbt and dvbc + * mrl formats: the content is exactly the same but the input plugin + * uses a different tuning algorithm [Pragma] + */ + this->demux_class.extensions = "ts m2t trp dvb:// dvbs:// dvbc:// dvbt://"; this->demux_class.dispose = default_demux_class_dispose; return this; |