libbluray | branch: master | hpi1 <[email protected]> | Thu Mar 3 10:52:20 2016 +0200| [4c173a189f23a1b9c8203295badae7c90722ec9d] | committer: hpi1
main title selection: prefer playlists with more chapters > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=4c173a189f23a1b9c8203295badae7c90722ec9d --- src/libbluray/bdnav/navigation.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/libbluray/bdnav/navigation.c b/src/libbluray/bdnav/navigation.c index b54cc08..b4e8108 100644 --- a/src/libbluray/bdnav/navigation.c +++ b/src/libbluray/bdnav/navigation.c @@ -205,11 +205,26 @@ _filter_repeats(MPLS_PL *pl, unsigned repeats) * find main movie playlist */ +#define DBG_MAIN_PL DBG_NAV + static int _pl_guess_main_title(MPLS_PL *p1, MPLS_PL *p2) { uint32_t d1 = _pl_duration(p1); uint32_t d2 = _pl_duration(p2); + /* if both longer than 30 min */ + if (d1 > 30*60*45000 && d2 > 30*60*45000) { + + /* prefer many chapters over few chapters */ + int chap_diff = _pl_chapter_count(p2) - _pl_chapter_count(p1); + if (chap_diff < -3 || chap_diff > 3) { + /* chapter count differs by more than 3 */ + BD_DEBUG(DBG_MAIN_PL, "main title: chapter count difference %d\n", chap_diff); + return chap_diff; + } + + } + /* compare playlist duration, select longer playlist */ if (d1 < d2) { return 1; _______________________________________________ libbluray-devel mailing list [email protected] https://mailman.videolan.org/listinfo/libbluray-devel
