tourettes wrote: > 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
No, not to title index but playlist ID. Using that as title index would be a bug. Note that title_idx (title index) is index to internal array of titles, playlist ID is the number in playlist file name. > 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. BD_EVENT_PLAYLIST reports current playlist ID, not title index. Also PSR_PLAYLIST must contain playlist ID, on-disc applications (HDMV/BD-J titles / popup menus) except it. With BD_EVENT_PLAYLIST you can use bd_get_playlist_info() instead of bd_get_title_info(). Those provide the same information. Maybe API documentation of those functions could be clarified ? I don't belive BD_EVENT_TITLE_IDX would be very useful, it would be generated only when application selects title with bd_select_title(bd, title_idx) - already knowing the title_idx. > 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
