diff options
author | phintuka <phintuka> | 2009-11-08 20:02:16 +0000 |
---|---|---|
committer | phintuka <phintuka> | 2009-11-08 20:02:16 +0000 |
commit | fd05421bd094683886465f86858d12cc2b3fff74 (patch) | |
tree | 6426fb2cbc0f8640ac9417b9e31be4bfa39b44ad /xine/BluRay/input_bluray.c | |
parent | 104f69bce0f122cd43ef0e62a79b53ef2db4feee (diff) | |
download | xineliboutput-fd05421bd094683886465f86858d12cc2b3fff74.tar.gz xineliboutput-fd05421bd094683886465f86858d12cc2b3fff74.tar.bz2 |
Parse mpls file for current title
Diffstat (limited to 'xine/BluRay/input_bluray.c')
-rw-r--r-- | xine/BluRay/input_bluray.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/xine/BluRay/input_bluray.c b/xine/BluRay/input_bluray.c index d5c09b15..0d2715e2 100644 --- a/xine/BluRay/input_bluray.c +++ b/xine/BluRay/input_bluray.c @@ -91,6 +91,9 @@ typedef struct { char *mrl; BLURAY *bdh; + NAV_TITLE *nav_title; + char current_title[11]; /* ?????.mpls\0 */ + } bluray_input_plugin_t; @@ -200,6 +203,9 @@ static void bluray_plugin_dispose (input_plugin_t *this_gen) if (this->bdh) bd_close(this->bdh); + if (this->nav_title) + nav_title_close(this->nav_title); + free (this->mrl); free (this); @@ -288,8 +294,16 @@ static int bluray_plugin_open (input_plugin_t *this_gen) free(disc_root); return -1; } + snprintf(this->current_title, sizeof(this->current_title), "%05d.mpls", title); TRACE("bd_select_title(%d) OK\n", title); + /* acquire navigation data and stream info */ + + this->nav_title = nav_title_open(disc_root, this->current_title); + if (!this->nav_title) { + LOGMSG("nav_title_open(%s,%s) FAILED\n", disc_root, this->current_title); + } + /* set stream metainfo */ TRACE("title length: %"PRIu64" bytes\n", this->bdh->s_size); |