[libbluray-devel] updated xine plugin: Support clearing part of OSD
hpi1
git at videolan.org
Thu Jun 9 11:04:35 CEST 2011
libbluray | branch: master | hpi1 <hpi1 at anonymous.org> | Thu Jun 9 10:15:55 2011 +0300| [9798296ae3a999ddc7c5feb885f7197964a8d072] | committer: hpi1
updated xine plugin: Support clearing part of OSD
> http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=9798296ae3a999ddc7c5feb885f7197964a8d072
---
player_wrappers/xine/input_bluray.c | 16 ++++++++++++++--
1 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/player_wrappers/xine/input_bluray.c b/player_wrappers/xine/input_bluray.c
index c71ba0d..4527f91 100644
--- a/player_wrappers/xine/input_bluray.c
+++ b/player_wrappers/xine/input_bluray.c
@@ -150,7 +150,7 @@ static void overlay_proc(void *this_gen, const BD_OVERLAY * const ov)
if (!ov || ov->plane == 1)
this->menu_open = 0;
- if (!ov || !ov->img) {
+ if (!ov) {
/* hide OSD */
close_overlay(this);
return;
@@ -161,8 +161,9 @@ static void overlay_proc(void *this_gen, const BD_OVERLAY * const ov)
if (!this->osd) {
this->osd = xine_osd_new(this->stream, 0, 0, 1920, 1080);
}
- if (!this->pg_enable)
+ if (!this->pg_enable) {
_x_select_spu_channel(this->stream, -1);
+ }
/* convert and set palette */
if (ov->palette) {
@@ -189,6 +190,17 @@ static void overlay_proc(void *this_gen, const BD_OVERLAY * const ov)
xine_osd_draw_bitmap(this->osd, img, ov->x, ov->y, ov->w, ov->h, NULL);
free(img);
+
+ } else {
+
+ if (ov->x == 0 && ov->y == 0 && ov->w == 1920 && ov->h == 1080) {
+ /* Nothing to display, close OSD */
+ close_overlay(this);
+ return;
+ }
+
+ /* wipe rect */
+ xine_osd_draw_rect(this->osd, ov->x, ov->y, ov->x + ov->w - 1, ov->y + ov->h - 1, 0xff, 1);
}
/* display */
More information about the libbluray-devel
mailing list