* README.md:
	* DiscImageChef.DiscImages/CDRDAO.cs:
	* DiscImageChef.DiscImages/DiscImageChef.DiscImages.csproj:
	  Added support for cdrdao images. Solves #53

	* DiscImageChef.DiscImages/CDRWin.cs:
	  Implemented FLAGS field support and
	  quadraphonic/broadcasting flag.
	Return CD track flags for any track type.

	* DiscImageChef.Filesystems/ISO9660.cs:
	  Filter null characters from Volume Descriptors.
	If Joliet descriptor is null, or ISO descriptor is longer, use
	  ISO descriptor for XML metadata.

	* DiscImageChef/Commands/CreateSidecar.cs:
	  If a filesystem plugin crashes, do not abort.

	* DiscImageChef/DetectImageFormat.cs:
	  If an image plugin crashes, keep trying the others.
This commit is contained in:
2015-12-23 23:46:31 +00:00
parent eef78b50f2
commit 3b368e0bd4
11 changed files with 1906 additions and 39 deletions

View File

@@ -1,3 +1,11 @@
2015-12-23 Natalia Portillo <claunia@claunia.com>
* Commands/CreateSidecar.cs:
If a filesystem plugin crashes, do not abort.
* DetectImageFormat.cs:
If an image plugin crashes, keep trying the others.
2015-12-13 Natalia Portillo <claunia@claunia.com>
* Commands/MediaInfo.cs:

View File

@@ -1010,11 +1010,18 @@ namespace DiscImageChef.Commands
foreach (Plugin _plugin in plugins.PluginsList.Values)
{
if (_plugin.Identify(_imageFormat, partitions[i].PartitionStartSector, partitions[i].PartitionStartSector+partitions[i].PartitionSectors-1))
try
{
string foo;
_plugin.GetInformation(_imageFormat, partitions[i].PartitionStartSector, partitions[i].PartitionStartSector+partitions[i].PartitionSectors-1, out foo);
lstFs.Add(_plugin.XmlFSType);
if (_plugin.Identify(_imageFormat, partitions[i].PartitionStartSector, partitions[i].PartitionStartSector+partitions[i].PartitionSectors-1))
{
string foo;
_plugin.GetInformation(_imageFormat, partitions[i].PartitionStartSector, partitions[i].PartitionStartSector+partitions[i].PartitionSectors-1, out foo);
lstFs.Add(_plugin.XmlFSType);
}
}
catch
{
//DicConsole.DebugWriteLine("Create-sidecar command", "Plugin {0} crashed", _plugin.Name);
}
}
@@ -1032,11 +1039,18 @@ namespace DiscImageChef.Commands
foreach (Plugin _plugin in plugins.PluginsList.Values)
{
if (_plugin.Identify(_imageFormat, (ulong)xmlTrk.StartSector, (ulong)xmlTrk.EndSector))
try
{
string foo;
_plugin.GetInformation(_imageFormat, (ulong)xmlTrk.StartSector, (ulong)xmlTrk.EndSector, out foo);
lstFs.Add(_plugin.XmlFSType);
if (_plugin.Identify(_imageFormat, (ulong)xmlTrk.StartSector, (ulong)xmlTrk.EndSector))
{
string foo;
_plugin.GetInformation(_imageFormat, (ulong)xmlTrk.StartSector, (ulong)xmlTrk.EndSector, out foo);
lstFs.Add(_plugin.XmlFSType);
}
}
catch
{
//DicConsole.DebugWriteLine("Create-sidecar command", "Plugin {0} crashed", _plugin.Name);
}
}

View File

@@ -55,12 +55,18 @@ namespace DiscImageChef.ImagePlugins
// Check all but RAW plugin
foreach (ImagePlugin _imageplugin in plugins.ImagePluginsList.Values)
{
if(_imageplugin.PluginUUID != new Guid("12345678-AAAA-BBBB-CCCC-123456789000"))
if (_imageplugin.PluginUUID != new Guid("12345678-AAAA-BBBB-CCCC-123456789000"))
{
if (_imageplugin.IdentifyImage(imagePath))
try
{
if (_imageplugin.IdentifyImage(imagePath))
{
_imageFormat = _imageplugin;
break;
}
}
catch
{
_imageFormat = _imageplugin;
break;
}
}
}
@@ -70,12 +76,18 @@ namespace DiscImageChef.ImagePlugins
{
foreach (ImagePlugin _imageplugin in plugins.ImagePluginsList.Values)
{
if(_imageplugin.PluginUUID == new Guid("12345678-AAAA-BBBB-CCCC-123456789000"))
if (_imageplugin.PluginUUID == new Guid("12345678-AAAA-BBBB-CCCC-123456789000"))
{
if (_imageplugin.IdentifyImage(imagePath))
try
{
if (_imageplugin.IdentifyImage(imagePath))
{
_imageFormat = _imageplugin;
break;
}
}
catch
{
_imageFormat = _imageplugin;
break;
}
}
}