Author: tack
Date: Mon Oct  8 14:44:36 2007
New Revision: 2848

Log:
Round OSD height down to nearest even integer: fixes segv when playing videos
with odd height.


Modified:
   trunk/xine/src/drivers/video_out_kaa.c

Modified: trunk/xine/src/drivers/video_out_kaa.c
==============================================================================
--- trunk/xine/src/drivers/video_out_kaa.c      (original)
+++ trunk/xine/src/drivers/video_out_kaa.c      Mon Oct  8 14:44:36 2007
@@ -860,20 +860,20 @@
 _kaa_blend_osd(kaa_driver_t *this, kaa_frame_t *frame)
 {
     pthread_mutex_lock(&this->osd_buffer_lock);
-    int resized = frame->width != this->osd_w || frame->height != this->osd_h;
+    int resized = frame->width != this->osd_w || (frame->height & ~1) != 
this->osd_h;
     if (resized || frame->format != this->osd_format) {
         if (this->osd_configure_cb && resized) {
             // XXX: could configure cb cause reentry here?  If so, will 
deadlock.
-            this->osd_configure_cb(frame->width, frame->height, frame->ratio, 
this->osd_configure_cb_data,
+            this->osd_configure_cb(frame->width, frame->height & ~1, 
frame->ratio, this->osd_configure_cb_data,
                                    &this->osd_buffer, &this->osd_stride);
         }
         if (this->osd_buffer && this->osd_stride > 0) {
             this->osd_w = frame->width;
-            this->osd_h = frame->height;
-            this->osd_slice_h = frame->height;
+            this->osd_h = frame->height & ~1;
+            this->osd_slice_h = frame->height & ~1;
             alloc_overlay_data(this, frame->format);
-            convert_bgra_to_frame_format(this, 0, 0, frame->width, 
frame->height);
-            image_premultiply_alpha(this, 0, 0, frame->width, frame->height);
+            convert_bgra_to_frame_format(this, 0, 0, this->osd_w, this->osd_h);
+            image_premultiply_alpha(this, 0, 0, this->osd_w, this->osd_h);
             calculate_slice(this);
         } else {
             printf("OSD CONFIGURE FAILED\n");

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to