libbluray | branch: master | hpi1 <[email protected]> | Mon Apr 6 15:36:35 2015 +0300| [13408dd1b89cf955aa0ae09961dd270b660e3b3c] | committer: hpi1
Notify BD-J on stream change > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=13408dd1b89cf955aa0ae09961dd270b660e3b3c --- src/libbluray/bdj/bdj.c | 2 ++ src/libbluray/bdj/bdj.h | 2 ++ src/libbluray/bdj/java/org/videolan/Libbluray.java | 4 +++- .../bdj/java/org/videolan/media/content/BDHandler.java | 8 ++++++++ src/libbluray/bluray.c | 2 ++ 5 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/libbluray/bdj/bdj.c b/src/libbluray/bdj/bdj.c index a168860..671d355 100644 --- a/src/libbluray/bdj/bdj.c +++ b/src/libbluray/bdj/bdj.c @@ -629,6 +629,8 @@ int bdj_process_event(BDJAVA *bdjava, unsigned ev, unsigned param) "STOP", "RATE", + "AUDIO_STREAM", + "SECONDARY_STREAM", }; JNIEnv* env; diff --git a/src/libbluray/bdj/bdj.h b/src/libbluray/bdj/bdj.h index 756395b..c998ceb 100644 --- a/src/libbluray/bdj/bdj.h +++ b/src/libbluray/bdj/bdj.h @@ -40,6 +40,8 @@ typedef enum { BDJ_EVENT_STOP, BDJ_EVENT_RATE, + BDJ_EVENT_AUDIO_STREAM, + BDJ_EVENT_SECONDARY_STREAM, } BDJ_EVENT; typedef struct { diff --git a/src/libbluray/bdj/java/org/videolan/Libbluray.java b/src/libbluray/bdj/java/org/videolan/Libbluray.java index 7239318..261d84b 100644 --- a/src/libbluray/bdj/java/org/videolan/Libbluray.java +++ b/src/libbluray/bdj/java/org/videolan/Libbluray.java @@ -537,7 +537,7 @@ public class Libbluray { } break; default: - System.err.println("Unknown event %d.%d\n", event, param); + System.err.println("Unknown event " + event + "." + param); result = false; } @@ -560,6 +560,8 @@ public class Libbluray { private static final int BDJ_EVENT_STOP = 13; public static final int BDJ_EVENT_RATE = 14; + public static final int BDJ_EVENT_AUDIO_STREAM = 15; + public static final int BDJ_EVENT_SECONDARY_STREAM = 16; /* TODO: use org/bluray/system/RegisterAccess instead */ public static final int PSR_IG_STREAM_ID = 0; diff --git a/src/libbluray/bdj/java/org/videolan/media/content/BDHandler.java b/src/libbluray/bdj/java/org/videolan/media/content/BDHandler.java index 4c92b75..fdc37c6 100644 --- a/src/libbluray/bdj/java/org/videolan/media/content/BDHandler.java +++ b/src/libbluray/bdj/java/org/videolan/media/content/BDHandler.java @@ -381,6 +381,8 @@ public abstract class BDHandler implements Player, ServiceContentHandler { protected void doAngleChanged(int angle) {}; protected void doSubtitleChanged(int param) {}; protected void doPiPChanged(int param) {}; + protected void doAudioStreamChanged(int param) {}; + protected void doSecondaryStreamChanged(int param) {}; /* * @@ -644,6 +646,12 @@ public abstract class BDHandler implements Player, ServiceContentHandler { case Libbluray.BDJ_EVENT_PTS: player.doTimeChanged(param2); break; + case Libbluray.BDJ_EVENT_AUDIO_STREAM: + player.doAudioStreamChanged(param2); + break; + case Libbluray.BDJ_EVENT_SECONDARY_STREAM: + player.doSecondaryStreamChanged(param2); + break; default: System.err.println("Unknown ACTION_STATUS: id " + param + ", value " + param2); break; diff --git a/src/libbluray/bluray.c b/src/libbluray/bluray.c index 58c9922..817962b 100644 --- a/src/libbluray/bluray.c +++ b/src/libbluray/bluray.c @@ -2808,6 +2808,7 @@ static void _process_psr_change_event(BLURAY *bd, BD_PSR_EVENT *ev) break; case PSR_PRIMARY_AUDIO_ID: + _bdj_event(bd, BDJ_EVENT_AUDIO_STREAM, ev->new_val); _queue_event(bd, BD_EVENT_AUDIO_STREAM, ev->new_val); break; @@ -2842,6 +2843,7 @@ static void _process_psr_change_event(BLURAY *bd, BD_PSR_EVENT *ev) _queue_event(bd, BD_EVENT_SECONDARY_AUDIO, !!(ev->new_val & 0x40000000)); _queue_event(bd, BD_EVENT_SECONDARY_AUDIO_STREAM, ev->new_val & 0xff); } + _bdj_event(bd, BDJ_EVENT_SECONDARY_STREAM, ev->new_val); break; /* 3D status */ _______________________________________________ libbluray-devel mailing list [email protected] https://mailman.videolan.org/listinfo/libbluray-devel
