-rw-r--r-- | noncore/multimedia/opieplayer2/xinevideowidget.cpp | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/noncore/multimedia/opieplayer2/xinevideowidget.cpp b/noncore/multimedia/opieplayer2/xinevideowidget.cpp index 7f59085..78ebe19 100644 --- a/noncore/multimedia/opieplayer2/xinevideowidget.cpp +++ b/noncore/multimedia/opieplayer2/xinevideowidget.cpp | |||
@@ -1,5 +1,4 @@ | |||
1 | |||
2 | /* | 1 | /* |
3 | This file is part of the Opie Project | 2 | This file is part of the Opie Project |
4 | 3 | ||
5 | Copyright (c) 2002 Max Reiss <harlekin@handhelds.org> | 4 | Copyright (c) 2002 Max Reiss <harlekin@handhelds.org> |
@@ -214,8 +213,11 @@ void XineVideoWidget::paintEvent2 ( QPaintEvent * ) | |||
214 | } | 213 | } |
215 | int middle_w = _vw/2; | 214 | int middle_w = _vw/2; |
216 | int middle_h = _vh/2; | 215 | int middle_h = _vh/2; |
217 | m_thisframe.setRect(width()/2-middle_w,height()/2-middle_h,_vw,_vh); | 216 | m_thisframe.setRect(width()/2-middle_w,height()/2-middle_h,_vw,_vh); |
217 | |||
218 | { | ||
219 | // is this stuff realy needed? it seems working without, too. | ||
218 | QRect topFill,rightFill,leftFill,downFill; | 220 | QRect topFill,rightFill,leftFill,downFill; |
219 | topFill. setRect(0,0 ,width(),m_thisframe.top()); | 221 | topFill. setRect(0,0 ,width(),m_thisframe.top()); |
220 | downFill.setCoords(0,m_thisframe.bottom(),width(),height()); | 222 | downFill.setCoords(0,m_thisframe.bottom(),width(),height()); |
221 | rightFill.setCoords(m_thisframe.right(),0,width(),height()); | 223 | rightFill.setCoords(m_thisframe.right(),0,width(),height()); |
@@ -232,8 +234,10 @@ void XineVideoWidget::paintEvent2 ( QPaintEvent * ) | |||
232 | } | 234 | } |
233 | if (leftFill.isValid()) { | 235 | if (leftFill.isValid()) { |
234 | p.fillRect(leftFill,black); | 236 | p.fillRect(leftFill,black); |
235 | } | 237 | } |
238 | |||
239 | } | ||
236 | uchar *fb = dp. frameBuffer ( ); | 240 | uchar *fb = dp. frameBuffer ( ); |
237 | uchar *frame = m_buff; | 241 | uchar *frame = m_buff; |
238 | 242 | ||
239 | // where is the video frame in fb coordinates | 243 | // where is the video frame in fb coordinates |
@@ -266,15 +270,8 @@ void XineVideoWidget::paintEvent2 ( QPaintEvent * ) | |||
266 | } | 270 | } |
267 | dst += m_bytes_per_line_fb; | 271 | dst += m_bytes_per_line_fb; |
268 | } | 272 | } |
269 | } | 273 | } |
270 | |||
271 | |||
272 | { | ||
273 | // QVFB hack by Martin Jones | ||
274 | // We need to "touch" all affected clip rects with a normal QPainter in addition to the QDirectPainter | ||
275 | p.fillRect(QRect(mapFromGlobal (m_thisframe. topLeft ( )), m_thisframe.size ()),QBrush(NoBrush)); | ||
276 | } | ||
277 | } | 274 | } |
278 | } | 275 | } |
279 | 276 | ||
280 | QImage *XineVideoWidget::logo ( ) const | 277 | QImage *XineVideoWidget::logo ( ) const |
@@ -310,11 +307,8 @@ void XineVideoWidget::setVideoFrame ( uchar* img, int w, int h, int bpl ) | |||
310 | m_lastsize=l; | 307 | m_lastsize=l; |
311 | } else { | 308 | } else { |
312 | m_buff = 0; | 309 | m_buff = 0; |
313 | } | 310 | } |
314 | } else if (l==0){ | ||
315 | delete[] m_buff; | ||
316 | m_buff = 0; | ||
317 | } | 311 | } |
318 | m_lastsize = l; | 312 | m_lastsize = l; |
319 | m_framesize = QSize(w,h); | 313 | m_framesize = QSize(w,h); |
320 | if (m_buff && m_lastsize) { | 314 | if (m_buff && m_lastsize) { |
@@ -322,9 +316,9 @@ void XineVideoWidget::setVideoFrame ( uchar* img, int w, int h, int bpl ) | |||
322 | } | 316 | } |
323 | m_bytes_per_line_frame = bpl; | 317 | m_bytes_per_line_frame = bpl; |
324 | } // Release Mutex | 318 | } // Release Mutex |
325 | 319 | ||
326 | paintEvent2(0); | 320 | if (m_buff) paintEvent2(0); |
327 | } | 321 | } |
328 | 322 | ||
329 | void XineVideoWidget::resizeEvent ( QResizeEvent * ) | 323 | void XineVideoWidget::resizeEvent ( QResizeEvent * ) |
330 | { | 324 | { |