[Matroska-users] Matroska file decoding - Question on seekhead

Dave Rice daverice at mac.com
Sun Sep 3 17:55:45 CEST 2017


Hi Austin,

> On Sep 3, 2017, at 9:08 AM, Austin Einter <austin.einter at gmail.com> wrote:
> 
> First of all a BIG THANKS to Matroska, for providing a open source media file container. 
> 
> I have a requirement, where I need to parse a matroska file. Initial few bytes of file is given as below.
> 
> 0x1a 0x45 0xdf 0xa3 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x23 0x42 0x86 0x81 0x01
> 0x42 0xf7 0x81 0x01 0x42 0xf2 0x81 0x04 0x42 0xf3 0x81 0x08 0x42 0x82 0x88 0x6d
> 0x61 0x74 0x72 0x6f 0x73 0x6b 0x61 0x42 0x87 0x81 0x04 0x42 0x85 0x81 0x02 0x18
> 0x53 0x80 0x67 0x01 0x00 0x00 0x00 0x00 0x33 0xdb 0x10 0x11 0x4d 0x9b 0x74 0x40
> 0x42 0xbf 0x84 0x11 0xac 0x83 0x8a 0x4d 0xbb 0x8b 0x53 0xab 0x84 0x15 0x49 0xa9
> 0x66 0x53 0xac 0x81 0xe5 0x4d 0xbb 0x8c 0x53 0xab 0x84 0x16 0x54 0xae 0x6b 0x53
> 0xac 0x82 0x01 0x56 0x4d 0xbb 0x8c 0x53 0xab 0x84 0x12 0x54 0xc3 0x67 0x53 0xac
> 0x82 0x11 0x5c 0x4d 0xbb 0x8d 0x53 0xab 0x84 0x1c 0x53 0xbb 0x6b 0x53 0xac 0x83
> 0x33 0xd9 0x1c 0xec 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x94 0x00 0x00 0x00 0x00
> 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
> 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
> 
> I am trying to parse this file. I have parsed first 59 bytes successfully. Now I am at 60th byte. From 6th byte bytes are 0x11 0x4d 0x9b 0x74, so it means seekhead is starting. 
> 
> I used mkvinfo to view parsed data. As per mkvinfo as shown below, seekhead starts at 59 which is fine.  
> 
>  <image.png>
> 
> 
> Looks the first seek entry starts at 71. Now from 59th to 71st position what is there. This part I am not able to understand.
> 
> Can somebody please help me to understand this part.


As noted the SeekHead element starts at position 59. The first Child Element of SeekHead is then a CRC-32 element, which is:
> 0xbf 0x84 0x11 0xac 0x83 0x8a

Element ID: 0xbf
Element Data Size: 0x84
Element Value: 0x11 0xac 0x83 0x8a

After the CRC-32 Element is the first Seek Element.

More info about the CRC-32 element is in the EBML specification, see https://tools.ietf.org/html/draft-ietf-cellar-ebml <https://tools.ietf.org/html/draft-ietf-cellar-ebml>.
Dave Rice
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.matroska.org/pipermail/matroska-users/attachments/20170903/89d377de/attachment.html>


More information about the Matroska-users mailing list