From dc7f2d3624375c6ac8e2f255ce0b5dc1872a178a Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 22 May 2005 11:03:57 +0200 Subject: [PATCH] Removed converting byte order on big endian systems from cDvbOsd::Flush() --- CONTRIBUTORS | 8 ++++++++ HISTORY | 4 +++- dvbosd.c | 6 +----- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 39d70776..ba23c73f 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1338,3 +1338,11 @@ Wolfgang Fritz Michael Reinelt for reporting a problem with the EPG scan on systems that don't use DiSEqC + +Johannes Stezenbach + for pointing out that the byte swap for big endian systems in cDvbOsd::Flush() + is wrong + +Paavo Hartikainen + for verifying that the byte swap for big endian systems in cDvbOsd::Flush() was + wrong diff --git a/HISTORY b/HISTORY index 44ba0212..49c50ee1 100644 --- a/HISTORY +++ b/HISTORY @@ -3513,7 +3513,7 @@ Video Disk Recorder Revision History - Fixed a wrong inheritance in libsi's SubtitlingDescriptor::Subtitling (thanks to Marco Schlüßler). -2005-05-16: Version 1.3.25 +2005-05-22: Version 1.3.25 - Updated the Estonian OSD texts (thanks to Arthur Konovalov). - Some cable providers don't mark short channel names according to the standard, @@ -3546,3 +3546,5 @@ Video Disk Recorder Revision History such descriptions were available in the EPG data when the recording was made, and are stored in the info.vdr file). - Avoiding extra blanks at the end of names of instant recordings. +- Removed converting byte order on big endian systems from cDvbOsd::Flush(), + which, according to Johannes Stezenbach and Paavo Hartikainen, is wrong. diff --git a/dvbosd.c b/dvbosd.c index 360825fc..458ec9ce 100644 --- a/dvbosd.c +++ b/dvbosd.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbosd.c 1.26 2005/02/12 15:36:31 kls Exp $ + * $Id: dvbosd.c 1.27 2005/05/22 10:57:45 kls Exp $ */ #include "dvbosd.h" @@ -151,10 +151,6 @@ void cDvbOsd::Flush(void) for (int i = 0; i < NumColors; i++) { // convert AARRGGBB to AABBGGRR (the driver expects the colors the wrong way): colors[i] = (Colors[i] & 0xFF000000) | ((Colors[i] & 0x0000FF) << 16) | (Colors[i] & 0x00FF00) | ((Colors[i] & 0xFF0000) >> 16); -#if __BYTE_ORDER == __BIG_ENDIAN - // actually the driver itself should access the bytes according to the current endianness! - colors[i] = ((colors[i] & 0xFF) << 24) | ((colors[i] & 0xFF00) << 8) | ((colors[i] & 0xFF0000) >> 8) | ((colors[i] & 0xFF000000) >> 24); -#endif } Colors = colors; //TODO end of stuff that should be fixed in the driver