summaryrefslogtreecommitdiff
path: root/noncore/multimedia/opieplayer2/xinevideowidget.cpp
Side-by-side diff
Diffstat (limited to 'noncore/multimedia/opieplayer2/xinevideowidget.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/xinevideowidget.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/noncore/multimedia/opieplayer2/xinevideowidget.cpp b/noncore/multimedia/opieplayer2/xinevideowidget.cpp
index 791818e..0833784 100644
--- a/noncore/multimedia/opieplayer2/xinevideowidget.cpp
+++ b/noncore/multimedia/opieplayer2/xinevideowidget.cpp
@@ -42,27 +42,28 @@
#include <qpe/resource.h>
#include "xinevideowidget.h"
// 0 deg rot: copy a line from src to dst (use libc memcpy)
// 180 deg rot: copy a line from src to dst reversed
static inline void memcpy_rev ( void *dst, void *src, size_t len )
{
- ((char *) src ) += len;
-
len >>= 1;
+
+ ((char *) src ) += ( len << 1 );
+
while ( len-- )
*((short int *) dst )++ = *--((short int *) src );
}
// 90 deg rot: copy a column from src to dst
static inline void memcpy_step ( void *dst, void *src, size_t len, size_t step )
{
len >>= 1;
while ( len-- ) {
*((short int *) dst )++ = *((short int *) src );
((char *) src ) += step;
@@ -183,25 +184,25 @@ void XineVideoWidget::paintEvent ( QPaintEvent * )
if (( y < framerect. top ( )) || ( y > framerect. bottom ( ))) {
// "above" or "below" the video -> black
memset ( dst, 0, clipwidth );
}
else {
if ( leftfill )
memset ( dst, 0, leftfill ); // "left" border -> black
if ( framefill ) { // blit in the video frame
// see above for an explanation of the different memcpys
switch ( rot ) {
- case 0: memcpy ( dst + leftfill, src, framefill ); break;
+ case 0: memcpy ( dst + leftfill, src, framefill & ~1 ); break;
case 1: memcpy_step ( dst + leftfill, src, framefill, m_bytes_per_line_frame ); break;
case 2: memcpy_rev ( dst + leftfill, src, framefill ); break;
case 3: memcpy_step_rev ( dst + leftfill, src, framefill, m_bytes_per_line_frame ); break;
default: break;
}
}
if ( rightfill )
memset ( dst + leftfill + framefill, 0, rightfill ); // "right" border -> black
}
dst += m_bytes_per_line_fb; // advance one line in the framebuffer