Added a patch to the OpenJPEG wrapper to try and correct bad J2KLayerInfo.End values that occur on 64-bit systems
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2907 52acb1d6-8a22-11de-b505-999d5b087335
This commit is contained in:
@@ -391,12 +391,42 @@ namespace OpenMetaverse.Imaging
|
||||
"Inconsistent packet data in JPEG2000 stream:\n");
|
||||
for (int j = 0; j < layerInfo.Length; j++)
|
||||
output.AppendFormat("Layer {0}: Start: {1} End: {2}\n", j, layerInfo[j].Start, layerInfo[j].End);
|
||||
Logger.Log(output.ToString(), Helpers.LogLevel.Error);
|
||||
Logger.DebugLog(output.ToString());
|
||||
|
||||
success = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!success)
|
||||
{
|
||||
for (int i = 0; i < layerInfo.Length; i++)
|
||||
{
|
||||
if (i < layerInfo.Length - 1)
|
||||
layerInfo[i].End = layerInfo[i + 1].Start - 1;
|
||||
else
|
||||
layerInfo[i].End = marshalled.length;
|
||||
}
|
||||
|
||||
Logger.DebugLog("Corrected JPEG2000 packet data");
|
||||
success = true;
|
||||
|
||||
for (int i = 0; i < layerInfo.Length; i++)
|
||||
{
|
||||
if (layerInfo[i].Start >= layerInfo[i].End ||
|
||||
(i > 0 && layerInfo[i].Start <= layerInfo[i - 1].End))
|
||||
{
|
||||
System.Text.StringBuilder output = new System.Text.StringBuilder(
|
||||
"Still inconsistent packet data in JPEG2000 stream, giving up:\n");
|
||||
for (int j = 0; j < layerInfo.Length; j++)
|
||||
output.AppendFormat("Layer {0}: Start: {1} End: {2}\n", j, layerInfo[j].Start, layerInfo[j].End);
|
||||
Logger.DebugLog(output.ToString());
|
||||
|
||||
success = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user