summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPetri Hintukainen <phintuka@users.sourceforge.net>2013-09-23 11:34:07 +0300
committerPetri Hintukainen <phintuka@users.sourceforge.net>2013-09-23 11:34:07 +0300
commitb0ba25669086ba0a50b2c1a17a8e21d759077144 (patch)
tree2c2a34af97b785b9dd6ff193bd8fea10d52045a9 /src
parent766cbfe113630f057b1b38a869c5ffcedc2dcd47 (diff)
downloadxine-lib-b0ba25669086ba0a50b2c1a17a8e21d759077144.tar.gz
xine-lib-b0ba25669086ba0a50b2c1a17a8e21d759077144.tar.bz2
input_bluray: support overlay timings
Diffstat (limited to 'src')
-rw-r--r--src/input/input_bluray.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/input/input_bluray.c b/src/input/input_bluray.c
index 7b2d57647..a1cdee5d8 100644
--- a/src/input/input_bluray.c
+++ b/src/input/input_bluray.c
@@ -254,6 +254,7 @@ static void overlay_proc(void *this_gen, const BD_OVERLAY * const ov)
{
bluray_input_plugin_t *this = (bluray_input_plugin_t *) this_gen;
xine_osd_t *osd;
+ int64_t vpts = 0;
if (!this) {
return;
@@ -284,6 +285,10 @@ static void overlay_proc(void *this_gen, const BD_OVERLAY * const ov)
return;
}
+ if (ov->pts > 0) {
+ vpts = ov->pts + this->stream->metronom->get_option(this->stream->metronom, METRONOM_VPTS_OFFSET);
+ }
+
switch (ov->cmd) {
case BD_OVERLAY_DRAW:
draw_bitmap(osd, ov);
@@ -305,9 +310,9 @@ static void overlay_proc(void *this_gen, const BD_OVERLAY * const ov)
case BD_OVERLAY_FLUSH:
if (!osd->osd.area_touched) {
- xine_osd_hide(osd, 0);
+ xine_osd_hide(osd, vpts);
} else {
- xine_osd_show(osd, 0);
+ xine_osd_show(osd, vpts);
}
#if BLURAY_VERSION < BLURAY_VERSION_CODE(0, 2, 2)
if (ov->plane == 1) {