Here follows the hex dump of the MPEG2VideoDescriptor:
06 0e 2b 34 02 53 01 01 0d 01 01 01 01 01 51 00 83 00 00 f3 3c 0a 00 10 a3 be 51 b2 00 05 e7 11 bf 82 21 97 f7 a0 14 ed 30 06 00 04 00 00 00 02 30 01 00 08 00 00 ea 60 00 00 03 e9 80 00 00 04 01 c9 c3 80 30 04 00 10 06 0e 2b 34 04 01 01 02 0d 01 03 01 02 04 61 01 32 15 00 01 05 32 0e 00 08 00 00 00 10 00 00 00 09 32 0d 00 10 00 00 00 02 00 00 00 04 00 00 00 1a 00 00 00 00 32 0c 00 01 00 32 08 00 04 00 00 02 d0 32 09 00 04 00 00 05 00 32 02 00 04 00 00 02 d0 32 03 00 04 00 00 05 00 32 01 00 10 06 0e 2b 34 04 01 01 03 04 01 02 02 01 04 03 00 33 02 00 04 00 00 00 02 33 08 00 04 00 00 00 01 33 03 00 01 04 33 01 00 04 00 00 00 08 33 0b 00 01 00 33 07 00 02 00 00 33 04
The first 16 bytes:
06 0e 2b 34 02 53 01 01 0d 01 01 01 01 01 51 00
(UID)
Next 4 bytes is the BER size:
83 00 00 f3
(0xf3 bytes long)
Next 4 bytes:
3c 0a 00 10
(0x3c0a means Instance UUID and 0x0010 is the size)
Then follows the UUID:
a3 be 51 b2 00 05 e7 11 bf 82 21 97 f7 a0 14 ed
Next 4 bytes:
30 06 00 04
(0x3006 means Linked Track ID and 0x0004 is the size)
Next 4 bytes is the Linked Track ID: 00 00 00 02
Next 4 bytes: 30 01 00 08
(0x3001 means Sample Rate and 0x0008 is the size)
The following 8 bytes are actually frame rate numerator and denominator:
0000ea60
== 60000 and 000003e9
== 1001.
Now we have the bold part: 80 00 00 04
.
Can somebody please explain what does it mean?
The next four bytes are 01 c9 c3 80
and it is definitely the bitrate (30000000), but how can I know that for sure?
Edit:
Does 80 00 00 04 mean the following:
0x8000 is a dynamic tag. According to SMPTE 337, tags 0x8000-0xFFFF are dynamically allocated. The 0x0004 is the size (4 bytes). If that's true, how can I tell that the following 4 bytes 01 c9 c3 80
are actually the bitrate? It could be anything, or?
First you have to understand how local tags work. Local tags 0x8000 and above are user defined. You have to look at the primer pack of the header partition. The primer pack translates the local tag to a global UL which may or may not be vendor specific.
Consider the primer pack being a translation table between the 2 byte local tag and the 16 byte UL.