patterns: Added SWF header pattern (#219)

* patterns: Added pattern for SWF files.

* Added test file for SWF header.

* Update README with SWF file type.
This commit is contained in:
lucia c
2024-01-27 14:53:16 +00:00
committed by GitHub
parent 35cc68544b
commit e7d1973957
3 changed files with 30 additions and 0 deletions

View File

@@ -101,6 +101,7 @@ Everything will immediately show up in ImHex's Content Store and gets bundled wi
| SPIRV | | [`patterns/spirv.hexpat`](patterns/spirv.hexpat) | SPIR-V header and instructions |
| STL | `model/stl` | [`patterns/stl.hexpat`](patterns/stl.hexpat) | STL 3D Model format |
| StuffItV5 | `application/x-stuffit` | [`patterns/sit5.hexpat`](patterns/sit5.hexpat) | StuffIt V5 archive |
| SWF | |[`patterns/swf.hexpat`](patterns/swf.hexpat) | Shockwave Flash file format |
| TAR | `application/x-tar` | [`patterns/tar.hexpat`](patterns/tar.hexpat) | Tar file format |
| TIFF | `image/tiff` | [`patterns/tiff.hexpat`](patterns/tiff.hexpat) | Tag Image File Format |
| TGA | `image/tga` | [`patterns/tga.hexpat`](patterns/tga.hexpat) | Truevision TGA/TARGA image |

29
patterns/swf.hexpat Normal file
View File

@@ -0,0 +1,29 @@
#pragma author saturnaliam
#pragma description SWF file header
#pragma endian little
#include <type/magic.pat>
// RECTs are more complicated, but for the header,
// this works fine.
bitfield Rect {
nSize : 5 [[name("N Size")]];
signed xMin : 15 [[name("X Min")]];
signed xMax : 15 [[name("X Max")]];
signed yMin : 15 [[name("Y Min")]];
signed yMax : 15 [[name("Y Max")]];
};
struct Header {
char compressionSignature [[name("Compression"), comment("F - Uncompressed\nC - zlib Compressed\nZ - LZMA compressed")]];
type::Magic<"WS"> signature [[name("Signature")]];
u8 swfVersion [[name("SWF Version")]];
u32 bytesSize [[name("Uncompressed Size")]];
be Rect rect [[name("Frame Size"), comment("Needs to be uncompressed to have the correct value.")]];
padding[1];
u8 frameRate [[name("Framerate"), comment("Needs to be uncompressed to have the correct value.")]];
u16 frameCount [[name("Frame Count"), comment("Needs to be uncompressed to have the correct value.")]];
};
Header header @ 0x00;

Binary file not shown.