* More friendly OpenJpeg error handling.

* Often times now the only reason OpenJpeg doesn't work is because it requires Glibc 2.4    The error messages reflect that.
* In J2kDecoder module, It stops trying to decode modules if it encounters a dllnotfound exception and instead sends a full resolution layer that causes the texture sender to only send the full resolution image.  (big decrease in texture download speed, but it's better then nasty repeating error messages)
This commit is contained in:
Teravus Ovares
2009-01-21 11:16:33 +00:00
parent 0e7aac0f65
commit 1a55dd11f1
7 changed files with 136 additions and 38 deletions

View File

@@ -2136,7 +2136,25 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
Stream tgadata = new MemoryStream(ic.Asset.Data);
temp = LoadTGAClass.LoadTGA(tgadata);
ic.Asset.Data = OpenJPEG.EncodeFromImage(temp, true);
try
{
ic.Asset.Data = OpenJPEG.EncodeFromImage(temp, true);
}
catch (DllNotFoundException)
{
Rest.Log.ErrorFormat("OpenJpeg is not installed correctly on this system. Asset Data is emtpy for {0}", ic.Item.Name);
ic.Asset.Data = new Byte[0];
}
catch (IndexOutOfRangeException)
{
Rest.Log.ErrorFormat("OpenJpeg was unable to encode this. Asset Data is emtpy for {0}", ic.Item.Name);
ic.Asset.Data = new Byte[0];
}
catch (Exception)
{
Rest.Log.ErrorFormat("OpenJpeg was unable to encode this. Asset Data is emtpy for {0}", ic.Item.Name);
ic.Asset.Data = new Byte[0];
}
}
ic.reset();