summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiego 'Flameeyes' Pettenò <flameeyes@gmail.com>2007-12-18 16:49:04 +0100
committerDiego 'Flameeyes' Pettenò <flameeyes@gmail.com>2007-12-18 16:49:04 +0100
commitb864b902b6ba16c7bcee14fcb7f71cac640a23c2 (patch)
treea3689d425267114dabab54a7d92f122ffc23fa38
parentb41af27637477297a1b575904a596d1dfa8a7531 (diff)
downloadxine-lib-b864b902b6ba16c7bcee14fcb7f71cac640a23c2.tar.gz
xine-lib-b864b902b6ba16c7bcee14fcb7f71cac640a23c2.tar.bz2
Fix demuxing of VCDs, DVDs and PVR streams.
-rw-r--r--src/demuxers/demux_mpeg_block.c36
1 files changed, 2 insertions, 34 deletions
diff --git a/src/demuxers/demux_mpeg_block.c b/src/demuxers/demux_mpeg_block.c
index 2f7c48d44..91b69328c 100644
--- a/src/demuxers/demux_mpeg_block.c
+++ b/src/demuxers/demux_mpeg_block.c
@@ -1452,39 +1452,7 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen, xine_stream_t *str
}
break;
- case METHOD_BY_MRL: {
- char *ending;
-
- const char *const mrl = input->get_mrl (input);
-
- if(!strncmp(mrl, "vcd:", 4)) {
- this->blocksize = 2324;
- demux_mpeg_block_accept_input (this, input);
- } else if(!strncmp(mrl, "dvd:", 4) || !strncmp(mrl, "pvr:", 4)) {
- this->blocksize = 2048;
- demux_mpeg_block_accept_input (this, input);
- } else {
- ending = strrchr(mrl, '.');
-
- if (!ending) {
- free (this->scratch_base);
- free (this);
- return NULL;
- }
- if ( (!strncasecmp (ending, ".vob", 4)) ||
- (!strncmp((ending + 3), "mpeg2", 5)) ||
- (!strncmp((ending + 3), "mpeg1", 5)) ) {
- this->blocksize = 2048;
- demux_mpeg_block_accept_input(this, input);
- } else {
- free (this->scratch_base);
- free (this);
- return NULL;
- }
- }
- }
- break;
-
+ case METHOD_BY_MRL:
case METHOD_EXPLICIT: {
this->blocksize = input->get_blocksize(input);
@@ -1525,7 +1493,7 @@ static void *init_plugin (xine_t *xine, void *data) {
this->demux_class.description = N_("DVD/VOB demux plugin");
this->demux_class.identifier = "MPEG_BLOCK";
this->demux_class.mimetypes = NULL;
- this->demux_class.extensions = "vob";
+ this->demux_class.extensions = "vob vcd:/ dvd:/ pvr:/";
this->demux_class.dispose = default_demux_class_dispose;
return this;