summaryrefslogtreecommitdiff
path: root/noncore/multimedia
authoralwin <alwin>2005-04-13 12:55:44 (UTC)
committer alwin <alwin>2005-04-13 12:55:44 (UTC)
commitcb10570b4118161a066b741c2674d8d522670623 (patch) (side-by-side diff)
tree149a5c77bc252443efe658e61717e47cee786f59 /noncore/multimedia
parentbe565a8eb0c602e5173b71cf71ba510a7a7f4520 (diff)
downloadopie-cb10570b4118161a066b741c2674d8d522670623.zip
opie-cb10570b4118161a066b741c2674d8d522670623.tar.gz
opie-cb10570b4118161a066b741c2674d8d522670623.tar.bz2
sometimes the display must painted black - we'll just use memset
'cause working on fb itself so we'll not interfer with qpaint from main thread
Diffstat (limited to 'noncore/multimedia') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/xinevideowidget.cpp24
-rw-r--r--noncore/multimedia/opieplayer2/xinevideowidget.h3
2 files changed, 25 insertions, 2 deletions
diff --git a/noncore/multimedia/opieplayer2/xinevideowidget.cpp b/noncore/multimedia/opieplayer2/xinevideowidget.cpp
index b27b8e1..7c98ce5 100644
--- a/noncore/multimedia/opieplayer2/xinevideowidget.cpp
+++ b/noncore/multimedia/opieplayer2/xinevideowidget.cpp
@@ -118,3 +118,3 @@ static inline void memcpy_step_rev ( void *_dst, void *_src, size_t len, size_t
XineVideoWidget::XineVideoWidget ( QWidget* parent, const char* name )
- : QWidget ( parent, name, WRepaintNoErase | WResizeNoErase )
+ : QWidget ( parent, name, WRepaintNoErase | WResizeNoErase ),old_framerect(0,0,0,0),old_size(0,0)
{
@@ -133,3 +133,3 @@ XineVideoWidget::~XineVideoWidget ( )
{
- ThreadUtil::AutoLock a(m_bufmutex);
+#if 0
if (m_buff) {
@@ -139,2 +139,3 @@ XineVideoWidget::~XineVideoWidget ( )
}
+#endif
if (m_logo) {
@@ -146,2 +147,3 @@ void XineVideoWidget::clear ( )
{
+#if 0
ThreadUtil::AutoLock a(m_bufmutex);
@@ -152,2 +154,3 @@ void XineVideoWidget::clear ( )
}
+#endif
repaint ( false );
@@ -212,2 +215,14 @@ void XineVideoWidget::paintEvent2 ( QPaintEvent * )
+ /* clean up the fb screen when shrinking the image only! */
+ if (old_framerect.isValid() && old_size.width()==width()&&old_size.height()==height() &&
+ (old_framerect.width()>framerect.width() || old_framerect.height()>framerect.height())) {
+ uchar*_dst = fb+old_framerect.y()*m_bytes_per_line_fb+old_framerect.x()*m_bytes_per_pixel;
+ for (int z=0;z<old_framerect.height();++z) {
+ memset(_dst,0,m_bytes_per_line_fb);
+ _dst+=m_bytes_per_line_fb;
+ }
+ }
+ old_framerect=framerect;
+ old_size = size();
+
if (framerect.height()!=m_framesize.height()) {
@@ -267,2 +282,3 @@ void XineVideoWidget::setVideoFrame ( uchar* img, int w, int h, int bpl )
int l = h*bpl;
+#if 0
if (l!=m_lastsize) {
@@ -279,4 +295,6 @@ void XineVideoWidget::setVideoFrame ( uchar* img, int w, int h, int bpl )
}
+#endif
m_lastsize = l;
m_framesize = QSize(w,h);
+#if 0
if (m_buff && m_lastsize) {
@@ -284,2 +302,4 @@ void XineVideoWidget::setVideoFrame ( uchar* img, int w, int h, int bpl )
}
+#endif
+ m_buff = img;
m_bytes_per_line_frame = bpl;
diff --git a/noncore/multimedia/opieplayer2/xinevideowidget.h b/noncore/multimedia/opieplayer2/xinevideowidget.h
index a0ec5bc..f240b1c 100644
--- a/noncore/multimedia/opieplayer2/xinevideowidget.h
+++ b/noncore/multimedia/opieplayer2/xinevideowidget.h
@@ -36,2 +36,3 @@
#include <qwidget.h>
+#include <qrect.h>
@@ -59,2 +60,4 @@ protected:
virtual void resizeEvent ( QResizeEvent *r );
+ QRect old_framerect;
+ QSize old_size;