[vlc-commits] contribs: bluray: fix stream selection without menus

Francois Cartegnie git at videolan.org
Tue Nov 13 19:56:22 CET 2018


vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Tue Nov 13 19:52:42 2018 +0100| [3117b4091438ec1ae5625dccda030cd048ce0873] | committer: Francois Cartegnie

contribs: bluray: fix stream selection without menus

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=3117b4091438ec1ae5625dccda030cd048ce0873
---

 ...h-menuless-user-selected-streams-between-.patch | 257 +++++++++++++++++++++
 contrib/src/bluray/rules.mak                       |   1 +
 2 files changed, 258 insertions(+)

diff --git a/contrib/src/bluray/0001-keep-on-with-menuless-user-selected-streams-between-.patch b/contrib/src/bluray/0001-keep-on-with-menuless-user-selected-streams-between-.patch
new file mode 100644
index 0000000000..85fbba320a
--- /dev/null
+++ b/contrib/src/bluray/0001-keep-on-with-menuless-user-selected-streams-between-.patch
@@ -0,0 +1,257 @@
+From c95ae5538b5c9cb0d59db377a9f6658c0b80b4b0 Mon Sep 17 00:00:00 2001
+From: Francois Cartegnie <fcvlcdev at free.fr>
+Date: Tue, 13 Nov 2018 19:27:18 +0100
+Subject: [PATCH] keep on with menuless user selected streams between clips
+
+---
+ libbluray.config       |   2 +
+ libbluray.creator      |   1 +
+ libbluray.files        | 156 +++++++++++++++++++++++++++++++++++++++++
+ libbluray.includes     |  15 ++++
+ src/libbluray/bluray.c |  20 +-----
+ 5 files changed, 176 insertions(+), 18 deletions(-)
+ create mode 100644 libbluray.config
+ create mode 100644 libbluray.creator
+ create mode 100644 libbluray.files
+ create mode 100644 libbluray.includes
+
+diff --git a/libbluray.config b/libbluray.config
+new file mode 100644
+index 0000000..e0284f4
+--- /dev/null
++++ b/libbluray.config
+@@ -0,0 +1,2 @@
++// Add predefined macros for your project here. For example:
++// #define THE_ANSWER 42
+diff --git a/libbluray.creator b/libbluray.creator
+new file mode 100644
+index 0000000..e94cbbd
+--- /dev/null
++++ b/libbluray.creator
+@@ -0,0 +1 @@
++[General]
+diff --git a/libbluray.files b/libbluray.files
+new file mode 100644
+index 0000000..8a8ce0b
+--- /dev/null
++++ b/libbluray.files
+@@ -0,0 +1,156 @@
++config.h
++jni/darwin/jni_md.h
++jni/jni.h
++jni/linux/jni_md.h
++jni/win32/jni_md.h
++player_wrappers/xine/input_bluray.c
++src/devtools/bdj_test.c
++src/devtools/bdjo_dump.c
++src/devtools/clpi_dump.c
++src/devtools/hdmv_test.c
++src/devtools/mobj_dump.c
++src/devtools/mpls_dump.c
++src/devtools/strings.h
++src/devtools/util.c
++src/devtools/util.h
++src/examples/bd_info.c
++src/examples/bdsplice.c
++src/examples/index_dump.c
++src/examples/libbluray_test.c
++src/examples/list_titles.c
++src/examples/sound_dump.c
++src/file/dir_posix.c
++src/file/dir_win32.c
++src/file/dirs.h
++src/file/dirs_darwin.c
++src/file/dirs_win32.c
++src/file/dirs_xdg.c
++src/file/dl.h
++src/file/dl_posix.c
++src/file/dl_win32.c
++src/file/file.c
++src/file/file.h
++src/file/file_posix.c
++src/file/file_win32.c
++src/file/filesystem.c
++src/file/filesystem.h
++src/file/mount.c
++src/file/mount.h
++src/file/mount_darwin.c
++src/libbluray/bdj/bdj.c
++src/libbluray/bdj/bdj.h
++src/libbluray/bdj/bdjo_data.h
++src/libbluray/bdj/bdjo_parse.c
++src/libbluray/bdj/bdjo_parse.h
++src/libbluray/bdj/native/bdjo.c
++src/libbluray/bdj/native/bdjo.h
++src/libbluray/bdj/native/java_awt_BDFontMetrics.c
++src/libbluray/bdj/native/java_awt_BDFontMetrics.h
++src/libbluray/bdj/native/java_awt_BDGraphics.c
++src/libbluray/bdj/native/java_awt_BDGraphics.h
++src/libbluray/bdj/native/org_videolan_Libbluray.c
++src/libbluray/bdj/native/org_videolan_Libbluray.h
++src/libbluray/bdj/native/org_videolan_Logger.c
++src/libbluray/bdj/native/org_videolan_Logger.h
++src/libbluray/bdj/native/register_native.c
++src/libbluray/bdj/native/register_native.h
++src/libbluray/bdj/native/util.c
++src/libbluray/bdj/native/util.h
++src/libbluray/bdnav/bdid_parse.c
++src/libbluray/bdnav/bdid_parse.h
++src/libbluray/bdnav/bdmv_parse.c
++src/libbluray/bdnav/bdmv_parse.h
++src/libbluray/bdnav/bdparse.h
++src/libbluray/bdnav/clpi_data.h
++src/libbluray/bdnav/clpi_parse.c
++src/libbluray/bdnav/clpi_parse.h
++src/libbluray/bdnav/extdata_parse.c
++src/libbluray/bdnav/extdata_parse.h
++src/libbluray/bdnav/index_parse.c
++src/libbluray/bdnav/index_parse.h
++src/libbluray/bdnav/meta_data.h
++src/libbluray/bdnav/meta_parse.c
++src/libbluray/bdnav/meta_parse.h
++src/libbluray/bdnav/mpls_data.h
++src/libbluray/bdnav/mpls_parse.c
++src/libbluray/bdnav/mpls_parse.h
++src/libbluray/bdnav/navigation.c
++src/libbluray/bdnav/navigation.h
++src/libbluray/bdnav/sound_parse.c
++src/libbluray/bdnav/sound_parse.h
++src/libbluray/bdnav/uo_mask.c
++src/libbluray/bdnav/uo_mask.h
++src/libbluray/bdnav/uo_mask_table.h
++src/libbluray/bluray-version.h
++src/libbluray/bluray.c
++src/libbluray/bluray.h
++src/libbluray/bluray_internal.h
++src/libbluray/decoders/graphics_controller.c
++src/libbluray/decoders/graphics_controller.h
++src/libbluray/decoders/graphics_processor.c
++src/libbluray/decoders/graphics_processor.h
++src/libbluray/decoders/hdmv_pids.h
++src/libbluray/decoders/ig.h
++src/libbluray/decoders/ig_decode.c
++src/libbluray/decoders/ig_decode.h
++src/libbluray/decoders/m2ts_demux.c
++src/libbluray/decoders/m2ts_demux.h
++src/libbluray/decoders/m2ts_filter.c
++src/libbluray/decoders/m2ts_filter.h
++src/libbluray/decoders/overlay.h
++src/libbluray/decoders/pes_buffer.c
++src/libbluray/decoders/pes_buffer.h
++src/libbluray/decoders/pg.h
++src/libbluray/decoders/pg_decode.c
++src/libbluray/decoders/pg_decode.h
++src/libbluray/decoders/rle.c
++src/libbluray/decoders/rle.h
++src/libbluray/decoders/textst.h
++src/libbluray/decoders/textst_decode.c
++src/libbluray/decoders/textst_decode.h
++src/libbluray/decoders/textst_render.c
++src/libbluray/decoders/textst_render.h
++src/libbluray/disc/aacs.c
++src/libbluray/disc/aacs.h
++src/libbluray/disc/bdplus.c
++src/libbluray/disc/bdplus.h
++src/libbluray/disc/dec.c
++src/libbluray/disc/dec.h
++src/libbluray/disc/disc.c
++src/libbluray/disc/disc.h
++src/libbluray/disc/enc_info.h
++src/libbluray/disc/properties.c
++src/libbluray/disc/properties.h
++src/libbluray/disc/udf_fs.c
++src/libbluray/disc/udf_fs.h
++src/libbluray/hdmv/hdmv_insn.h
++src/libbluray/hdmv/hdmv_vm.c
++src/libbluray/hdmv/hdmv_vm.h
++src/libbluray/hdmv/mobj_data.h
++src/libbluray/hdmv/mobj_parse.c
++src/libbluray/hdmv/mobj_parse.h
++src/libbluray/hdmv/mobj_print.c
++src/libbluray/hdmv/mobj_print.h
++src/libbluray/keys.h
++src/libbluray/player_settings.h
++src/libbluray/register.c
++src/libbluray/register.h
++src/util/array.c
++src/util/array.h
++src/util/attributes.h
++src/util/bits.c
++src/util/bits.h
++src/util/event_queue.c
++src/util/event_queue.h
++src/util/log_control.h
++src/util/logging.c
++src/util/logging.h
++src/util/macro.h
++src/util/mutex.c
++src/util/mutex.h
++src/util/refcnt.c
++src/util/refcnt.h
++src/util/strutl.c
++src/util/strutl.h
++src/util/time.c
++src/util/time.h
+diff --git a/libbluray.includes b/libbluray.includes
+new file mode 100644
+index 0000000..71354a7
+--- /dev/null
++++ b/libbluray.includes
+@@ -0,0 +1,15 @@
++.
++jni
++jni/darwin
++jni/linux
++jni/win32
++src/devtools
++src/file
++src/libbluray
++src/libbluray/bdj
++src/libbluray/bdj/native
++src/libbluray/bdnav
++src/libbluray/decoders
++src/libbluray/disc
++src/libbluray/hdmv
++src/util
+diff --git a/src/libbluray/bluray.c b/src/libbluray/bluray.c
+index 1728801..aa3135e 100644
+--- a/src/libbluray/bluray.c
++++ b/src/libbluray/bluray.c
+@@ -323,24 +323,8 @@ static void _update_clip_psrs(BLURAY *bd, NAV_CLIP *clip)
+     /* Update selected audio and subtitle stream PSRs when not using menus.
+      * Selection is based on language setting PSRs and clip STN.
+      */
+-    if (bd->title_type == title_undef) {
+-
+-        if (stn->num_audio) {
+-            _update_stream_psr_by_lang(bd->regs,
+-                                       PSR_AUDIO_LANG, PSR_PRIMARY_AUDIO_ID, 0,
+-                                       stn->audio, stn->num_audio,
+-                                       &audio_lang, 0);
+-        }
+-
+-        if (stn->num_pg) {
+-            _update_stream_psr_by_lang(bd->regs,
+-                                       PSR_PG_AND_SUB_LANG, PSR_PG_STREAM, 0x80000000,
+-                                       stn->pg, stn->num_pg,
+-                                       NULL, audio_lang);
+-        }
+-
+     /* Validate selected audio, subtitle and IG stream PSRs when using menus */
+-    } else {
++    {
+         uint32_t psr_val;
+ 
+         if (stn->num_audio) {
+@@ -367,7 +351,7 @@ static void _update_clip_psrs(BLURAY *bd, NAV_CLIP *clip)
+             }
+             bd_psr_unlock(bd->regs);
+         }
+-        if (stn->num_ig) {
++        if (stn->num_ig && bd->title_type != title_undef) {
+             bd_psr_lock(bd->regs);
+             psr_val = bd_psr_read(bd->regs, PSR_IG_STREAM_ID);
+             if ((psr_val == 0) || (psr_val > stn->num_ig)) {
+-- 
+2.17.2
+
diff --git a/contrib/src/bluray/rules.mak b/contrib/src/bluray/rules.mak
index c2de93fd89..d147afb153 100644
--- a/contrib/src/bluray/rules.mak
+++ b/contrib/src/bluray/rules.mak
@@ -49,6 +49,7 @@ $(TARBALLS)/libbluray-$(BLURAY_VERSION).tar.bz2:
 bluray: libbluray-$(BLURAY_VERSION).tar.bz2 .sum-bluray
 	$(UNPACK)
 	$(APPLY) $(SRC)/bluray/0001-Implement-dl_get_path-for-darwin-macOS.patch
+	$(APPLY) $(SRC)/bluray/0001-keep-on-with-menuless-user-selected-streams-between-.patch
 	$(call pkg_static,"src/libbluray.pc.in")
 	$(MOVE)
 



More information about the vlc-commits mailing list