summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDiego 'Flameeyes' Pettenò <flameeyes@gmail.com>2007-12-11 20:57:35 +0100
committerDiego 'Flameeyes' Pettenò <flameeyes@gmail.com>2007-12-11 20:57:35 +0100
commit594d847a3398e58eefed8c8c8fad900d035d7ed0 (patch)
tree102dab0ddf965f96677b7d1fc77c25f7582f714f /src
parent0c14df4d032947b635815e7acf537bd6a49315e5 (diff)
downloadxine-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.c13
-rw-r--r--src/demuxers/demux_ts.c34
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;