diff --git a/packages/mediacenter/xbmc/patches/xbmc-10.1-Dharma-334-libexif_byteorder-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-10.1-Dharma-334-libexif_byteorder-0.1.patch new file mode 100644 index 0000000000..ee6f18eb73 --- /dev/null +++ b/packages/mediacenter/xbmc/patches/xbmc-10.1-Dharma-334-libexif_byteorder-0.1.patch @@ -0,0 +1,56 @@ +From 00e3095dd47d6474fa6befcbd85157e27f6f68fa Mon Sep 17 00:00:00 2001 +From: vdrfan +Date: Mon, 1 Aug 2011 16:53:16 +0200 +Subject: [PATCH] fixed: make sure libexif is using the correct byte order + (intel or motorola) when processing gps information (fixes + #8427) + +--- + lib/libexif/ExifParse.cpp | 12 ++++++------ + 1 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/xbmc/lib/libexif/ExifParse.cpp b/xbmc/lib/libexif/ExifParse.cpp +index 41690df..74ecbbe 100644 +--- a/xbmc/lib/libexif/ExifParse.cpp ++++ b/xbmc/lib/libexif/ExifParse.cpp +@@ -810,15 +810,15 @@ void CExifParse::ProcessGpsInfo( + const unsigned char* const OffsetBase, + unsigned ExifLength) + { +- int NumDirEntries = Get16(DirStart); ++ int NumDirEntries = Get16(DirStart, m_MotorolaOrder); + + for (int de=0;de= NUM_FORMATS) + { + // (-1) catches illegal zero case as unsigned underflows to positive large. +@@ -834,7 +834,7 @@ void CExifParse::ProcessGpsInfo( + + if (ByteCount > 4) + { +- unsigned OffsetVal = (unsigned)Get32(DirEntry+8); ++ unsigned OffsetVal = (unsigned)Get32(DirEntry+8, m_MotorolaOrder); + // If its bigger than 4 bytes, the dir entry contains an offset. + if (OffsetVal+ByteCount > ExifLength) + { +@@ -878,7 +878,7 @@ void CExifParse::ProcessGpsInfo( + case TAG_GPS_ALT: + { + char temp[18]; +- sprintf(temp,"%dm", Get32(ValuePtr)); ++ sprintf(temp,"%dm", Get32(ValuePtr, m_MotorolaOrder)); + strcat(m_ExifInfo->GpsAlt, temp); + } + break; +-- +1.7.5.4 +