[PATCH] Make use of the new xine_osd_set_video_window() in input_vdr

View: New views
1 Messages — Rating Filter:   Alert me  

[PATCH] Make use of the new xine_osd_set_video_window() in input_vdr

by Reinhard Nissl :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Patch subject is complete summary.


1 file changed, 24 insertions(+), 15 deletions(-)
src/vdr/input_vdr.c |   39 ++++++++++++++++++++++++---------------




# HG changeset patch
# User Reinhard Nißl <rnissl@...>
# Date 1244724129 -7200
# Node ID b0a000e3f4099ae71eab7d74685108bab0701037
# Parent  e9675a108ff67871bdf570dd662773397ef38d7a
Make use of the new xine_osd_set_video_window() in input_vdr.

diff --git a/src/vdr/input_vdr.c b/src/vdr/input_vdr.c
--- a/src/vdr/input_vdr.c
+++ b/src/vdr/input_vdr.c
@@ -164,6 +164,9 @@ struct vdr_input_plugin_s
   pthread_mutex_t     vpts_offset_queue_lock;
   pthread_cond_t      vpts_offset_queue_changed_cond;
   int                 vpts_offset_queue_changes;
+
+  int                         video_window_active;
+  vdr_set_video_window_data_t video_window_event_data;
 };
 
 
@@ -453,6 +456,13 @@ static off_t vdr_execute_rpc_command(vdr
       
       if (0 != this->osd[ data->window ].window)
       {
+#ifdef XINE_OSD_CAP_VIDEO_WINDOW
+        xine_osd_set_video_window(this->osd[ data->window ].window
+          , this->video_window_active ? this->video_window_event_data.x : 0
+          , this->video_window_active ? this->video_window_event_data.y : 0
+          , this->video_window_active ? this->video_window_event_data.w : 0
+          , this->video_window_active ? this->video_window_event_data.h : 0);
+#endif
         if (this->osd_unscaled_blending)
           xine_osd_show_unscaled(this->osd[ data->window ].window, 0);
         else
@@ -471,12 +481,7 @@ static off_t vdr_execute_rpc_command(vdr
         return -1;
       
       if (0 != this->osd[ data->window ].window)
-      {
-        if (this->osd_unscaled_blending)
-          xine_osd_show_unscaled(this->osd[ data->window ].window, 0);
-        else
-          xine_osd_show(this->osd[ data->window ].window, 0);
-      }
+        xine_osd_hide(this->osd[ data->window ].window, 0);
     }
     break;
     
@@ -758,18 +763,22 @@ static off_t vdr_execute_rpc_command(vdr
 */    
       {
         xine_event_t event;
-        vdr_set_video_window_data_t event_data;
+
+        this->video_window_active = (data->x != 0
+          || data->y != 0
+          || data->w != data->w_ref
+          || data->h != data->h_ref);
         
-        event_data.x = data->x;
-        event_data.y = data->y;
-        event_data.w = data->w;
-        event_data.h = data->h;
-        event_data.w_ref = data->w_ref;
-        event_data.h_ref = data->h_ref;
+        this->video_window_event_data.x = data->x;
+        this->video_window_event_data.y = data->y;
+        this->video_window_event_data.w = data->w;
+        this->video_window_event_data.h = data->h;
+        this->video_window_event_data.w_ref = data->w_ref;
+        this->video_window_event_data.h_ref = data->h_ref;
         
         event.type = XINE_EVENT_VDR_SETVIDEOWINDOW;
-        event.data = &event_data;
-        event.data_length = sizeof (event_data);
+        event.data = &this->video_window_event_data;
+        event.data_length = sizeof (this->video_window_event_data);
         
         xine_event_send(this->stream, &event);
       }


------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
xine-devel mailing list
xine-devel@...
https://lists.sourceforge.net/lists/listinfo/xine-devel