libbluray | branch: master | hpi1 <[email protected]> | Sat Mar 22 22:16:47 2014 +0200| [758d47ffa7e2d4a18aaaf8d540f7d48613c1151a] | committer: hpi1
Forward BD-J rate changes to application > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=758d47ffa7e2d4a18aaaf8d540f7d48613c1151a --- src/libbluray/bdj/native/org_videolan_Libbluray.c | 2 ++ src/libbluray/bluray.c | 14 ++++++++++++++ src/libbluray/bluray_internal.h | 2 ++ 3 files changed, 18 insertions(+) diff --git a/src/libbluray/bdj/native/org_videolan_Libbluray.c b/src/libbluray/bdj/native/org_videolan_Libbluray.c index 3135f18..f6c27e9 100644 --- a/src/libbluray/bdj/native/org_videolan_Libbluray.c +++ b/src/libbluray/bdj/native/org_videolan_Libbluray.c @@ -330,6 +330,8 @@ JNIEXPORT jlong JNICALL Java_org_videolan_Libbluray_tellTimeN(JNIEnv * env, JNIEXPORT jint JNICALL Java_org_videolan_Libbluray_selectRateN(JNIEnv * env, jclass cls, jlong np, jfloat rate, jint reason) { + BDJAVA* bdj = (BDJAVA*)(intptr_t)np; + bd_select_rate(bdj->bd, (float)rate, reason); return 1; } diff --git a/src/libbluray/bluray.c b/src/libbluray/bluray.c index ef75edb..277b46c 100644 --- a/src/libbluray/bluray.c +++ b/src/libbluray/bluray.c @@ -1018,6 +1018,20 @@ uint64_t bd_get_uo_mask(BLURAY *bd) return mask.u64; } + +void bd_select_rate(BLURAY *bd, float rate, int reason) +{ + if (reason == 2) { + /* playback stop. Might want to wait for buffers empty here. */ + return; + } + if (rate < 0.5) { + _queue_event(bd, BD_EVENT_STILL, 1); + } else { + _queue_event(bd, BD_EVENT_STILL, 0); + } +} + #endif #ifdef USING_BDJAVA diff --git a/src/libbluray/bluray_internal.h b/src/libbluray/bluray_internal.h index a834fe1..d114ef8 100644 --- a/src/libbluray/bluray_internal.h +++ b/src/libbluray/bluray_internal.h @@ -34,4 +34,6 @@ BD_PRIVATE int bd_play_title_internal(BLURAY *bd, unsigned title); BD_PRIVATE uint32_t bd_reg_read(BLURAY *bd, int psr, int reg); BD_PRIVATE int bd_reg_write(BLURAY *bd, int psr, int reg, uint32_t value); +BD_PRIVATE void bd_select_rate(BLURAY *bd, float rate, int reason); + #endif /* _BLURAY_INTERNAL_H_ */ _______________________________________________ libbluray-devel mailing list [email protected] https://mailman.videolan.org/listinfo/libbluray-devel
