diff options
author | Darren Salt <linux@youmustbejoking.demon.co.uk> | 2007-07-08 15:40:40 +0100 |
---|---|---|
committer | Darren Salt <linux@youmustbejoking.demon.co.uk> | 2007-07-08 15:40:40 +0100 |
commit | 35a0310f9c67e357a3dc8ea3420ec6d25dd2aad9 (patch) | |
tree | e97cbd2454dbe85f17e9e708651151d9b4767911 /src/input/input_dvd.c | |
parent | caf1060d009128fa2526bd238b4746acdaeb5d64 (diff) | |
parent | 425fa4b12abcf5d04544215aeae58b4af3cee24b (diff) | |
download | xine-lib-35a0310f9c67e357a3dc8ea3420ec6d25dd2aad9.tar.gz xine-lib-35a0310f9c67e357a3dc8ea3420ec6d25dd2aad9.tar.bz2 |
Merge from 1.1.
Diffstat (limited to 'src/input/input_dvd.c')
-rw-r--r-- | src/input/input_dvd.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/input/input_dvd.c b/src/input/input_dvd.c index 40464c02a..c55ff8726 100644 --- a/src/input/input_dvd.c +++ b/src/input/input_dvd.c @@ -1489,12 +1489,14 @@ static int dvd_plugin_open (input_plugin_t *this_gen) { trace_print("Called\n"); /* we already checked the "dvd:/" MRL before */ - locator = this->mrl + (sizeof("dvd:") - 1); + locator = strdup (this->mrl + (sizeof("dvd:") - 1)); /* FIXME: call a generic xine-lib MRL parser here to pre-parse * the MRL for ?title=<title>&part=<part> stuff and to expand * escaped characters properly */ - + + _x_mrl_unescape (locator); + this->mode = dvd_parse_mrl(this, &locator, &title_part); if (this->mode == MODE_FAIL) { @@ -1503,8 +1505,11 @@ static int dvd_plugin_open (input_plugin_t *this_gen) { _x_message(this->stream, XINE_MSG_READ_ERROR, /* FIXME: see FIXME in dvd_parse_try_open() */ (strlen(locator) && !(locator[0] == '/' && locator[1] == '\0')) ? locator : class->dvd_device, NULL); + free (locator); return 0; } + + free (locator); dvdnav_get_title_string(this->dvdnav, &this->dvd_name); if(this->dvd_name) |