Hi,

Some BDs have .mpls file indices that aren't continuos. For example one BD has 00001, 00002, 00003, 00004, 00006 & 00007 .mpls (00005 is missing).

Current implementation is using the atoi to convert the filename directly into the title index where as the proposed patch is using bd->title_idx. I have tested this patch with approx 20 BDs and it seems to work fine. Now BD_EVENT_PLAYLIST's parameter is providing the correct title index and it can be used to query the currently active title information.

I'm not sure if that is the correct way to fix the issue, maybe there are some other parts in the library that are generating the filename based on that index information and in that case we should have "ghost" entries in the title list to fill in those missing .mpls files.


From d2f5137724263531594306adf7587fd75e197c47 Mon Sep 17 00:00:00 2001
From: tourettes <[email protected]>
Date: Tue, 15 Mar 2011 16:13:47 +0200
Subject: [PATCH] Fixed _open_playlist - wrong tile index was used
On BDs that have "jumps" in the .mpls filename numbering a wrong title index could be used.

---
 src/libbluray/bluray.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/libbluray/bluray.c b/src/libbluray/bluray.c
index 138ab01..0af8eaa 100644
--- a/src/libbluray/bluray.c
+++ b/src/libbluray/bluray.c
@@ -1243,7 +1243,7 @@ static int _open_playlist(BLURAY *bd, const char *f_name)

     bd->next_chapter_start = bd_chapter_pos(bd, 1);

-    bd_psr_write(bd->regs, PSR_PLAYLIST, atoi(bd->title->name));
+    bd_psr_write(bd->regs, PSR_PLAYLIST, bd->title_idx);
     bd_psr_write(bd->regs, PSR_ANGLE_NUMBER, bd->title->angle + 1);
     bd_psr_write(bd->regs, PSR_CHAPTER, 1);

_______________________________________________
libbluray-devel mailing list
[email protected]
http://mailman.videolan.org/listinfo/libbluray-devel

Reply via email to