-rw-r--r-- | noncore/multimedia/opieplayer2/xinevideowidget.cpp | 52 |
1 files changed, 23 insertions, 29 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,7 +1,6 @@ - /* This file is part of the Opie Project Copyright (c) 2002 Max Reiss <harlekin@handhelds.org> Copyright (c) 2002 L. Potter <ljp@llornkcor.com> Copyright (c) 2002 Holger Freyther <zecke@handhelds.org> @@ -212,29 +211,34 @@ void XineVideoWidget::paintEvent2 ( QPaintEvent * ) break; break; } int middle_w = _vw/2; int middle_h = _vh/2; m_thisframe.setRect(width()/2-middle_w,height()/2-middle_h,_vw,_vh); - QRect topFill,rightFill,leftFill,downFill; - topFill. setRect(0,0 ,width(),m_thisframe.top()); - downFill.setCoords(0,m_thisframe.bottom(),width(),height()); - rightFill.setCoords(m_thisframe.right(),0,width(),height()); - leftFill.setCoords(0,0,m_thisframe.left(),height()); - - if (topFill.isValid()) { - p.fillRect(topFill,black); - } - if (downFill.isValid()) { - p.fillRect(downFill,black); - } - if (rightFill.isValid()) { - p.fillRect(rightFill,black); - } - if (leftFill.isValid()) { - p.fillRect(leftFill,black); + + { + // is this stuff realy needed? it seems working without, too. + QRect topFill,rightFill,leftFill,downFill; + topFill. setRect(0,0 ,width(),m_thisframe.top()); + downFill.setCoords(0,m_thisframe.bottom(),width(),height()); + rightFill.setCoords(m_thisframe.right(),0,width(),height()); + leftFill.setCoords(0,0,m_thisframe.left(),height()); + + if (topFill.isValid()) { + p.fillRect(topFill,black); + } + if (downFill.isValid()) { + p.fillRect(downFill,black); + } + if (rightFill.isValid()) { + p.fillRect(rightFill,black); + } + if (leftFill.isValid()) { + p.fillRect(leftFill,black); + } + } uchar *fb = dp. frameBuffer ( ); uchar *frame = m_buff; // where is the video frame in fb coordinates QRect framerect = qt_screen-> mapToDevice ( QRect ( mapToGlobal ( m_thisframe. topLeft ( )), m_thisframe. size ( )), QSize ( qt_screen-> width ( ), @@ -264,19 +268,12 @@ void XineVideoWidget::paintEvent2 ( QPaintEvent * ) default: break; } dst += m_bytes_per_line_fb; } } - - - { - // QVFB hack by Martin Jones - // We need to "touch" all affected clip rects with a normal QPainter in addition to the QDirectPainter - p.fillRect(QRect(mapFromGlobal (m_thisframe. topLeft ( )), m_thisframe.size ()),QBrush(NoBrush)); - } } } QImage *XineVideoWidget::logo ( ) const { return m_logo; @@ -308,25 +305,22 @@ void XineVideoWidget::setVideoFrame ( uchar* img, int w, int h, int bpl ) m_buff = new uchar[l]; odebug << "Point to: " << (unsigned long)m_buff << oendl; m_lastsize=l; } else { m_buff = 0; } - } else if (l==0){ - delete[] m_buff; - m_buff = 0; } m_lastsize = l; m_framesize = QSize(w,h); if (m_buff && m_lastsize) { memcpy(m_buff,img,m_lastsize); } m_bytes_per_line_frame = bpl; } // Release Mutex - paintEvent2(0); + if (m_buff) paintEvent2(0); } void XineVideoWidget::resizeEvent ( QResizeEvent * ) { emit videoResized( videoSize() ); } |