summaryrefslogtreecommitdiff
path: root/xine/BluRay/input_bluray.c
diff options
context:
space:
mode:
authorphintuka <phintuka>2009-11-08 20:02:16 +0000
committerphintuka <phintuka>2009-11-08 20:02:16 +0000
commitfd05421bd094683886465f86858d12cc2b3fff74 (patch)
tree6426fb2cbc0f8640ac9417b9e31be4bfa39b44ad /xine/BluRay/input_bluray.c
parent104f69bce0f122cd43ef0e62a79b53ef2db4feee (diff)
downloadxineliboutput-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.c14
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);