|
<?xml version="1.0"?>
<!DOCTYPE binary_file_format SYSTEM "BinaryFileFormat.dtd">
<binary_file_format name="MPEG" allow_editing="false">
<define_struct type_name="header" comment="" expr="={this.start_code;%.02X}">
<data type="int" name="start_code" format="unsigned" domain="this >= 0x00000100 && this <= 0x000001FF" display="" byte_order="big" len="4"/>
<if test="start_code==0x000001BA" comment="">
<struct name="PackLayer" type_name="" comment="" expr="">
<data type="none" name="PackLayerData" len="8"/>
</struct>
</if>
<if test="start_code==0x000001BB" comment="">
<struct name="SystemHeader" type_name="" comment="" expr="">
<data type="int" name="header_length" format="unsigned" len="2" display="" byte_order="big"/>
<data type="none" name="SystemHeaderData" len="header_length"/>
</struct>
</if>
<if test="start_code==0x000001BE" comment="">
<struct name="Padding Stream" type_name="" comment="" expr="">
<data name="padding_length" type="int" len="2" format="unsigned" display="" byte_order="big"/>
<data type="none" name="padding" len="padding_length"/>
</struct>
</if>
<if test="start_code==0x000001E0" comment="">
<struct name="Video Packet Stream" type_name="" comment="" expr="">
<data name="packet_length" type="int" len="2" format="unsigned" display="" byte_order="big"/>
<data type="none" name="VideoPacketStreamData" len="packet_length"/>
</struct>
</if>
<if test="start_code==0x000001C0" comment="">
<struct name="Audio Packet Stream" type_name="" comment="" expr="">
<data name="packet_length" type="int" len="2" format="unsigned" display="" byte_order="big"/>
<data type="none" name="AudioPacketStreamData" len="packet_length"/>
</struct>
</if>
</define_struct>
<for name="header" count="99" stop_test="" type_name="" comment="">
<use_struct name="head" expr="" type_name="header" comment=""/></for>
<data type="none" name="unparsed_data"/></binary_file_format>
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Andrew has a BSc (1983) from Sydney University in Computer Science and Mathematics. Andrew began programming professionally in C in 1984 and has since used many languages but mainly C, C++, and C#.
Andrew has a particular interest in STL, .Net, and Agile Development. He has written articles on STL for technical journals such as the C/C++ User's Journal.
In 1997 Andrew began using MFC and released the source code for a Windows binary file editor called HexEdit, which was downloaded more than 1 million times. From 2001 there was a shareware version of HexEdit (later called HexEdit Pro). HexEdit has been updated to uses the new MFC (based on BCG) and is once more open source.