Author Topic: Lack of compression format support in XMPlay archive plugins  (Read 6217 times)

quanta

  • Guest
XMPlay ZIP plugin (rev.9) do not support implode and Deflate64 compression methods once supported in XMPlay ZIP plugin (rev.8). Furthermore, current XMPlay ZIP plugin does not support BZip2, PPMd, LZMA, shrink, reduce compression formats.  Since some of the file formats supported by XMPlay plugins have been around in 1980s (eg: MIDI), it is important to add all compression formats in ZIP archive.

In the case of XMPlay 7-Zip plugin, the BZip2 and PPMd compression methods are not supported.

To properly support existing and future compression formats within archives, XMPlay should separate archive container and compression method decoders, so that updating archive reader does not cause archive compression format regression.

Ian @ un4seen

  • Administrator
  • Posts: 20396
There were some big changes in the latest ZIP plugin release (basically a totally new plugin), so it is possible that some previously supported stuff no longer is. If you have found some standard ZIP files that are not working, please upload some examples to have a look at here...

   ftp.un4seen.com/incoming/

quanta

  • Guest
There were some big changes in the latest ZIP plugin release (basically a totally new plugin), so it is possible that some previously supported stuff no longer is. If you have found some standard ZIP files that are not working, please upload some examples to have a look at here...

   ftp.un4seen.com/incoming/

I uploaded several versions of compressed ANALYZER.MOD in following file formats:
gzip (.gz)
Bzip2 (.bz)
XZ (.xz)
ZIP (.zip)
7-Zip (.7z)

Compression formats used include:
gzip (.gz): deflate
Bzip2 (.bz): Bzip2
XZ (.xz): LZMA2
ZIP (.zip): reduce, shrink, implode, deflate, deflate64, Bzip2, PPMd, LZMA
7-Zip (.7z): LZMA, BZip2, PPMd

All the above file formats can be opened by 7-Zip, except for the ZIP archive with reduce method. The reducing algorithm is described in APPNOTE.TXT - .ZIP File Format Specification[1].

[1] http://www.pkware.com/support/zip-app-note/archives

Ian @ un4seen

  • Administrator
  • Posts: 20396
I think the reduce/shrink/implode methods are from ancient times and aren't used nowadays? I had a look through a bunch of old ZIP files for some examples, and I did find a couple that used the implode method. So here's an updated ZIP plugin with support added for the implode method, as well as deflate64...

   www.un4seen.com/stuff/xmp-zip.dll

Please report any problems. From PKWARE's specs, it looks like it is possible for ZIP files to use Wavpack encoding. I don't think I have ever encountered any examples of that but it's minimal extra code, so this update should also support that with the Wavpack plugin installed.

For gzip files, Fraggie's gzip plugin can be used...

   www.dhost.info/pieknyman/html/plugins.html

Ian @ un4seen

  • Administrator
  • Posts: 20396
I think I may have been a bit hasty with yesterday's update, and the implode method support might not have been working properly in some cases. So here's another update...

   www.un4seen.com/stuff/xmp-zip.dll

I also went searching for some old ZIP files that use the shrink method, and from what I found, it appears to have only ever been used on very small text files. So there is probably no need for XMPlay to have support for that method.

Chinese Sausage

  • Posts: 424
Thank you Ian!  :D

quanta

  • Guest
I also went searching for some old ZIP files that use the shrink method, and from what I found, it appears to have only ever been used on very small text files. So there is probably no need for XMPlay to have support for that method.

Actually, the shrink method isn't limited to text files. As with any loseless compression methods, there can be instances where older compression schemes beating new ones. It doesn't hurt to add support of it.

saga

  • Posts: 2179
It doesn't hurt, but it costs time. Do you bruteforce which compression works best on your files, just to make them as small as possible, or why would you want support for all zip sub types (which are hardly supported by anyone)? Deflate is the de-facto standard for zip, and as far as I can see most tools can't even create anything but deflate zip files. If a zip file uses a compression scheme not supported by xmp-zip, there's always the possibility to recompress it.

Ian @ un4seen

  • Administrator
  • Posts: 20396
Actually, the shrink method isn't limited to text files. As with any loseless compression methods, there can be instances where older compression schemes beating new ones. It doesn't hurt to add support of it.

Is there any software that will create ZIP files using the shrink method nowadays? From what I've seen, the shrink method appears to have only been used before the deflate method was introduced.

Anyway, if you can point me to some ZIP files in the wild (eg. not test files) that use the shrink method for non-text files, I may reconsider adding support for it :)

quanta

  • Posts: 16
XMPlay ZIP plugin (rev.10a) (from XMPlay 3.8.0.5) recognizes implode and Deflate64 compression methods, but not more methods than XMPlay ZIP plugin (rev. 8). Specifically, BZip2, PPMd, LZMA methods are missing, which are ironically supported by the current 7-Zip plugin.