Implemented a zisofs uncompression filter.

This commit is contained in:
2009-04-10 12:16:41 +02:00
parent a809a87eef
commit ce7a5c810f
5 changed files with 315 additions and 73 deletions

View File

@ -29,6 +29,10 @@ The file header has this layout (quoted from zisofs-tools-1.0.8/mkzftree.c):
So its size is 16.
7.3.1 means little endian 4-byte words. 7.1.1. means unsigned single bytes.
Readers shall be able to handle log2(block_size) values 15, 16 and 17
i.e. block sizes 32 kB, 64 kB, and 128 kB.
Block Pointers
There are ceil(input_size / block_size) input resp. output blocks.
@ -43,6 +47,7 @@ So there are ceil(input_size / block_size) + 1 block pointers.
They are stored as an array of 4-byte values which are in ISO 9660:7.3.1 format
directly after the file header, i.e. beginning at byte 16.
Data Part
The data part begins immediately after the pointer array. In principle it
@ -98,7 +103,7 @@ Its fields are:
ISO 9660:7.3.3 means 4-byte word in both byte orders, first little endian, then
big endian.
Example (uncompressed file size = 1,234,567 bytes):
Example (block size 32 kB, uncompressed file size = 1,234,567 bytes):
{ 'Z', "F', 16, 1, 'p', 'z', 16, 15,
0x87, 0xD6, 0x12, 0x00, 0x00, 0x12, 0xD6, 0x87 }