From f11dd21677f5a3aa2a84b120e4dc66a6bf0e6ba5 Mon Sep 17 00:00:00 2001 From: John Hurliman Date: Mon, 17 Nov 2008 19:08:50 +0000 Subject: [PATCH] * Forced struct alignment to 4-bytes for openjpeg-dotnet on Windows * Removed padding hack from openjpeg * Added sanity check to Simian when copying texture data * Ignore common unused login parameters in Simian git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2357 52acb1d6-8a22-11de-b505-999d5b087335 --- OpenMetaverse/Imaging/OpenJPEG.cs | 4 +-- Programs/Simian/Extensions/ImageDelivery.cs | 28 ++++++++++++++++---- Programs/Simian/Simian.cs | 9 ++++++- bin/openjpeg-dotnet.dll | Bin 196608 -> 196608 bytes openjpeg-dotnet/DllOpenJPEG.vcproj | 18 +++++++------ openjpeg-dotnet/libopenjpeg/openjpeg.h | 2 -- 6 files changed, 43 insertions(+), 18 deletions(-) diff --git a/OpenMetaverse/Imaging/OpenJPEG.cs b/OpenMetaverse/Imaging/OpenJPEG.cs index b2be5ee2..21d20fd6 100644 --- a/OpenMetaverse/Imaging/OpenJPEG.cs +++ b/OpenMetaverse/Imaging/OpenJPEG.cs @@ -341,8 +341,8 @@ namespace OpenMetaverse.Imaging offset += 4; packet.end_pos = Marshal.ReadInt32(marshalled.packets, offset); offset += 4; - // Skip the distortion field (double) and padding (integer) - offset += 12; + //double distortion = (double)Marshal.ReadInt64(marshalled.packets, offset); + offset += 8; packets[i] = packet; } diff --git a/Programs/Simian/Extensions/ImageDelivery.cs b/Programs/Simian/Extensions/ImageDelivery.cs index d2910251..4a6221b9 100644 --- a/Programs/Simian/Extensions/ImageDelivery.cs +++ b/Programs/Simian/Extensions/ImageDelivery.cs @@ -142,7 +142,6 @@ namespace Simian.Extensions else if (block.DiscardLevel == -1 && block.DownloadPriority == 0.0f) { // Aborting a download we are not tracking, ignore - Logger.DebugLog(String.Format("Aborting an image download for untracked image " + block.Image.ToString())); } else { @@ -171,8 +170,16 @@ namespace Simian.Extensions data.ImageData = new ImageDataPacket.ImageDataBlock(); int imageDataSize = (download.Texture.AssetData.Length >= ImageDownload.FIRST_IMAGE_PACKET_SIZE) ? ImageDownload.FIRST_IMAGE_PACKET_SIZE : download.Texture.AssetData.Length; - data.ImageData.Data = new byte[imageDataSize]; - Buffer.BlockCopy(download.Texture.AssetData, 0, data.ImageData.Data, 0, imageDataSize); + try + { + data.ImageData.Data = new byte[imageDataSize]; + Buffer.BlockCopy(download.Texture.AssetData, 0, data.ImageData.Data, 0, imageDataSize); + } + catch (Exception ex) + { + Logger.Log(String.Format("{0}: imageDataSize={1}", ex.Message, imageDataSize), + Helpers.LogLevel.Error); + } server.UDP.SendPacket(agent.AgentID, data, PacketCategory.Texture); @@ -201,8 +208,19 @@ namespace Simian.Extensions transfer.ImageID.ID = block.Image; transfer.ImageID.Packet = (ushort)download.CurrentPacket; transfer.ImageData.Data = new byte[imagePacketSize]; - Buffer.BlockCopy(download.Texture.AssetData, download.CurrentBytePosition(), - transfer.ImageData.Data, 0, imagePacketSize); + + try + { + Buffer.BlockCopy(download.Texture.AssetData, download.CurrentBytePosition(), + transfer.ImageData.Data, 0, imagePacketSize); + } + catch (Exception ex) + { + Logger.Log(String.Format( + "{0}: CurrentBytePosition()={1}, AssetData.Length={2} imagePacketSize={3}", + ex.Message, download.CurrentBytePosition(), download.Texture.AssetData.Length, + imagePacketSize), Helpers.LogLevel.Error); + } server.UDP.SendPacket(agent.AgentID, transfer, PacketCategory.Texture); diff --git a/Programs/Simian/Simian.cs b/Programs/Simian/Simian.cs index daaeea3f..43100721 100644 --- a/Programs/Simian/Simian.cs +++ b/Programs/Simian/Simian.cs @@ -239,9 +239,16 @@ namespace Simian case "channel": channel = reader.ReadElementContentAsString("string", String.Empty); break; + case "platform": + case "mac": + case "id0": + case "options": + // Ignored values + reader.ReadInnerXml(); + break; default: if (reader.Name == "string") - Console.WriteLine(String.Format("Ignore login xml value: name={0}, value={1}", name, reader.ReadInnerXml())); + Console.WriteLine(String.Format("Ignore login xml value: name={0}", name, reader.ReadInnerXml())); else Console.WriteLine(String.Format("Unknown login xml: name={0}, value={1}", name, reader.ReadInnerXml())); break; diff --git a/bin/openjpeg-dotnet.dll b/bin/openjpeg-dotnet.dll index f8d40e8ec8e8553d9f243e531bb76f05d325a945..d5f71c10ca8f1c345c1567367bfea47b291c45f7 100644 GIT binary patch delta 16186 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 delta 16107 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 Y^{Z=$JKsIuy$pN%>V~#<#Zc}40c;q#8vp + + @@ -392,10 +398,6 @@ /> - - @@ -589,6 +591,10 @@ RelativePath="libopenjpeg\cio.h" > + + @@ -625,10 +631,6 @@ RelativePath="libopenjpeg\jpt.h" > - - diff --git a/openjpeg-dotnet/libopenjpeg/openjpeg.h b/openjpeg-dotnet/libopenjpeg/openjpeg.h index 5243c36c..940a9033 100644 --- a/openjpeg-dotnet/libopenjpeg/openjpeg.h +++ b/openjpeg-dotnet/libopenjpeg/openjpeg.h @@ -598,8 +598,6 @@ typedef struct opj_packet_info { int end_pos; /** packet distorsion */ double disto; - /** HACK: padding to maintain 8-byte alignment */ - int padding; } opj_packet_info_t; /**