diff options
author | Petri Hintukainen <phintuka@users.sourceforge.net> | 2013-09-23 11:34:07 +0300 |
---|---|---|
committer | Petri Hintukainen <phintuka@users.sourceforge.net> | 2013-09-23 11:34:07 +0300 |
commit | b0ba25669086ba0a50b2c1a17a8e21d759077144 (patch) | |
tree | 2c2a34af97b785b9dd6ff193bd8fea10d52045a9 /src | |
parent | 766cbfe113630f057b1b38a869c5ffcedc2dcd47 (diff) | |
download | xine-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.c | 9 |
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) { |