User:bdinfo/mpls

From Wikibooks, open books for an open world
Jump to navigation Jump to search

Note: All multi-byte integers are in big-endian format.

Blu-Ray Playlist (.mpls) File Format
Field Position in file Size (in bytes) Description
Header $00-$03 4 Consists of the ASCII text "MPLS".
Version Number $04-$07 4 Version number in ASCII format. Usually this will be "0200".
Playlist start address $08-$0B 4 Offset of the Playlist section. Measured from the beginning of the file. This address should be on a word boundary.
Playlist Mark start address $0C-$0F 4 Offset of the Playlist Mark section. Measured from the beginning of the file. This address should be on a word boundary.
Extension Data start address $10-$13 4 Offset of the Extension Data section. Measured from the beginning of the file. A value of $00000000 means that the Extension Data section is not present. If used, this address should be on a word boundary.
Reserved $14-$27 20 Currently unused. All bytes in this section should be set to zero.
Application Info Playlist length $28-$2B 4 Length of the Application Info Playlist section, not counting the four length bytes themselves. This value will almost always be set to $0000000E (14 bytes).
Reserved $2C 1 Currently unused. This byte should be set to zero.
Playback type $2D 1 $01 = Standard play
$02 = Random play
$03 = Shuffle play
Playback count $2E-$2F 2 Only used if Random or Shuffle mode is selected via the previous byte. If Standard mode is selected, this value is disregarded (and usually will be set to $0000).
User operation mask table $30-$37 8 Description pending.
Miscellaneous flags $38 1 Bit 7: Playlist random access flag (1 = this playlist cannot be accessed by user navigation commands)
Bit 6: Allow mixing of sound effects with stream audio (1 = yes)
Bit 5: Lossless sound may bypass mixer (1 = yes)
Bits 4-0: Reserved (set to 0)
Reserved $39 1 Currently unused. This byte should be set to zero.
Playlist section Starts at address specified in $08-$0B Varies See table below for details.
Playlist Mark section Starts at address specified in $0C-$0F Varies See table below for details.
Extension Data section Starts at address specified in $10-$13 Varies No information is available on this segment, which is almost always omitted.
Playlist section
Field Offset Size (in bytes) Description
Length $00-$03 4 Length of the Playlist section, not counting the four length bytes themselves.
Reserved $04-$05 2 Currently unused. These bytes should be set to zero.
Number of Play Items $06-$07 2 Number of Play Items to follow.
Number of Subpaths $08-$09 2 Number of Subpaths to follow. If there are no Subpaths, this value will be set to $0000.
Play Item entries Starts at $0A Varies See table below for details.
Subpath entries Varies Varies See table below for details.
Playlist Mark section
Field Offset Size (in bytes) Description
Length $00-$03 4 Length of the Playlist Mark section, not counting the four length bytes themselves. This value should equal (Number of Playlist Marks * 14) + 2.
Number of Playlist Marks $04-$05 2 Number of marks to follow. Each mark is 14 bytes long.
Playlist Mark entries Starts at $06 Varies Playlist Mark entries follow the section header. See table below for details.
Playlist Mark entry
Field Offset Size (in bytes) Description
Reserved $00 1 Currently unused. This byte should be set to zero.
Mark Type $01 1 1 = Entry Mark
2 = Link Point
Play Item ID $02-$03 2 Determines which Play Item the mark is associated with.
Time Stamp $04-$07 4 Time offset associated with this chapter mark. This is measured in 45000ths of a second.
Entry ESPID $08-$09 2 Exact purpose unknown. This value will usually be set to $FFFF.
Duration $0A-$0D 4 Duration of this chapter. This is measured in 45000ths of a second. A value of $00000000 indicates that there is no fixed duration.