MPL: Difference between revisions
m (→Next Part) |
m (→Header) |
||
Line 37: | Line 37: | ||
char[2] {0, 0} | char[2] {0, 0} | ||
char[2] this corresponds with the file size | char[2] this corresponds with the file size differs from the former one | ||
char[12] {0, 0, ...} | char[12] {0, 0, ...} | ||
Revision as of 02:09, 28 January 2011
- Extensions: mpl, mpls
- This is a playlist file used in BluRays and AVCHD (Lite) video camcorders and foto cams.
This site tries to collect information about this file. This information partly comes from reverse engineering. There is no free specification available on the net.
The file is located in a directory structure like this:
/BDMV/PLAYLIST/00000.MPL
it corresponds with the files in this directory:
/BDMV/STREAM/00000.MTS
The following information are reverse engineered from MPL files from a Panasonic GH1 foto cam.
The following file sizes are known:
- 638 bytes
- 800 bytes
- 962 bytes
- 1124 bytes
- 1286 bytes
- 1448 bytes
- 1772 bytes
- 2096 bytes
- 2420 bytes
The difference in size is always a multiple of 162 bytes.
File Structure
The values are written only when they are equal in every file.
Header
char[4] 'MPLS' FOURCC? char[4] '0100' might be version number char[4] {0, 0, 0, 0x3A} char[2] {0, 0} char[2] this corresponds with the file size
char[2] {0, 0} char[2] this corresponds with the file size differs from the former one char[12] {0, 0, ...}
char[8] {0, 0, ...} char[4] {0, 0, 0, 0x0E} char[4] {0, 1, 0, 0}
char[4] {0, 0, 1, 0xCF} char[4] {0x40, 0, 0, 0} char[4] {0, 0, 0, 0} char[2] this corresponds with the file size char[2] {0, 0}
char[2] {0, X} file size = 476 + 162*X in bytes char[2] {0, 0}
M2TS File Meta Data ?
This part ist contained X-times and is 82 bytes in size. The corresponding M2TS file name on the Panasonic is 00012.MTS.
char[2] {0, 'P'} char[10] "00012M2TS" this is a null terminated string of the corresponding MTS file name (without dot '.')
char[4] {1, 0, 0, 0} char[2] {0x40, 0x74} char[2] char[2] char[2] {0, 0} char[4] {0, 0, 0, 0}
char[4] {0, 0, 0, 0} char[4] {0, 0, 0, 0x2E} char[4] {0, 0, 1, 1} char[4] {0, 0, 0, 0}
char[4] {0, 0, 0, 0} char[4] {0, 0, 9, 1} char[4] {0x10, 0x11, 0, 0} char[4] {0, 0, 0, 0}
char[4] {5, 0x1B, 0x43, 0} char[4] {0, 0, 9, 1} char[4] {0x11, 0, 0, 0} char[4] {0, 0, 0, 0}
char[4] {5, 0x81, 0x31, 0x75} char[2] {0xE6, 0x64}
Next Part
TBD
Somewhere in the file are time stamps coded for the corresponding MTS files. This part has the following syntax:
char[2] either {0xFF, 0xFF} or {A, B} char {0x1E} char BCD century char BCD decade char BCD month char BCD day char BCD hour char BCD minute char BCD second char[2] {0x90, 0x0A} char[11] date as string (null terminated; no time) e.g. "2010. 4.18"
A and B tell the name of the corresponding MTS file e.g. (A<<16 + B).MTS = 00012.MTS, A=0, B=0x0C
- BCD
- Binary Coded Decimal