From 7ee489237d37242aebbdacb7204ca4807723cd55 Mon Sep 17 00:00:00 2001 From: WerWolv Date: Mon, 29 Aug 2022 15:02:08 +0200 Subject: [PATCH] patterns: Added Ogg pattern --- README.md | 1 + patterns/ogg.hexpat | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 patterns/ogg.hexpat diff --git a/README.md b/README.md index 6639558..09cb1bf 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,7 @@ Hex patterns, include patterns and magic files for the use with the ImHex Hex Ed | File System | | `patterns/fs.hexpat` | Drive File System | | Bencode | `application/x-bittorrent` | `patterns/bencode.hexpat` | Bencode encoding, used by Torrent files | | Protobuf | | `patterns/protobuf.hexpat` | Google Protobuf encoding | +| Ogg | | `patterns/ogg.hexpat` | Ogg Audio format | ### Scripts diff --git a/patterns/ogg.hexpat b/patterns/ogg.hexpat new file mode 100644 index 0000000..ee02550 --- /dev/null +++ b/patterns/ogg.hexpat @@ -0,0 +1,29 @@ +#pragma MIME audio/ogg + +#include +#include + +bitfield HeaderType { + Continuation : 1; + BeginOfStream : 1; + EndOfStream : 1; +}; + +struct SegmentData { + u8 data[parent.segmentTable[std::core::array_index()]]; +}; + +struct Ogg { + char capturePattern[4]; + u8 version; + HeaderType headerType; + u64 granulePosition; + u32 bitstreamSerialNumber; + u32 pageSequenceNumber; + u32 checksum; + u8 pageSegments; + u8 segmentTable[pageSegments]; + SegmentData data[pageSegments]; +}; + +Ogg ogg[while(!std::mem::eof())] @ 0x00; \ No newline at end of file