Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
![]() |
#1 | Link |
Registered User
Join Date: Jun 2008
Posts: 42
|
MPLS binary format documentation needed
Hi,
I am writing a little Perl program that reads MPLS files and displays information (a rewrite of mpls_dump) and can export video, audio and subtitle streams to TS container using tsMuxeR or optionally demux Sup subtitle streams and recode them to Vobsub format using BDSup2Sub. It is designed to run on any OS that has a Standard Installation of Perl. Even if I am developing on Linux. ![]() The Parser works perfect (thanks guys), but some information about stream types are missing. I only have the codes and need some information, what the code means. This information is necessary to improve the automatisms. My scripts (see my Sig.) are designed for batch processing and therefore use sensible defaults and automatic checking to get good results even when the user specifies nothing at all. (At the moment, most of my scripts are Bash scripts running only on Linux, but I am in the process of reimplementing them in Perl so most of the features would be available on any platform.) Now to my question: Is there a documentation of the MPLS binary file freely available? I did not find anything. I know that normally these specifications are financially painful to get when it is an "industry standard". Last edited by fangorn; 14th March 2010 at 08:28. |
![]() |
![]() |
![]() |
#3 | Link |
Registered User
Join Date: Jun 2008
Posts: 42
|
At the moment I am seeking a list of allowed stream types where I have only the numbercodes.
I already have lists of codec types and other information. But I think I will need more information later. I reimplemented the parser of mpls_dump that works perfect, but the number of elements where the read information is actually made sense of is limited. |
![]() |
![]() |
![]() |
#5 | Link |
Registered User
Join Date: Jun 2008
Posts: 42
|
Yeah, I think I could do that, even if I am on Linux. But I not just want one code that I happen to have on one example disk, but - if that is possible - all possibilities defined in the standard.
Normally, if I write a program, I do it as universal as possible. |
![]() |
![]() |
![]() |
#6 | Link |
Coder
Join Date: Jan 2007
Location: Around the World
Posts: 697
|
You can see all the codes because you can change the values...
But anyway: subpath_type[0]:='-'; subpath_type[1]:='-'; subpath_type[2]:='p. Audio'; subpath_type[3]:='IG menu'; subpath_type[4]:='Text sub'; subpath_type[5]:='OoM Sync'; subpath_type[6]:='OoM Async'; subpath_type[7]:='IM Sync'; stream_type[0]:=''; stream_type[1]:='PlayItem'; stream_type[2]:='SubPath'; stream_type[3]:='IM PIP'; tstream[$02]:='MPEG-2'; tstream[$1b]:='AVC'; tstream[$ea]:='VC1'; tstream[$80]:='LPCM'; tstream[$81]:='DD'; tstream[$82]:='DTS'; tstream[$83]:='Dolby Lossless'; tstream[$84]:='DD+'; tstream[$85]:='DTS-HD ex. XLL'; tstream[$86]:='DTS-HD XLL'; tstream[$a1]:='DD+'; tstream[$a2]:='DTS-HD'; tstream[$90]:='PG'; tstream[$91]:='IG'; tstream[$92]:='Text'; fvideo[0]:='-'; fvideo[1]:='480i'; fvideo[2]:='576i'; fvideo[3]:='480p'; fvideo[4]:='1080i'; fvideo[5]:='720p'; fvideo[6]:='1080p'; fvideo[7]:='576p'; fvideo[8]:='res.'; fvideo[9]:='res.'; fvideo[10]:='res.'; fvideo[11]:='res.'; fvideo[12]:='res.'; fvideo[13]:='res.'; fvideo[14]:='res.'; fvideo[15]:='res.'; frame[0]:='-'; frame[1]:='23.976'; frame[2]:='24'; frame[3]:='25'; frame[4]:='29.97'; frame[5]:='-'; frame[6]:='50'; frame[7]:='59.94'; frame[8]:='res.'; frame[9]:='res.'; frame[10]:='res.'; frame[11]:='res.'; frame[12]:='res.'; frame[13]:='res.'; frame[14]:='res.'; frame[15]:='res.'; taudio[0]:='-'; taudio[1]:='Mono'; taudio[2]:='-'; taudio[3]:='Stereo'; taudio[4]:='-'; taudio[5]:='-'; taudio[6]:='Multi-ch.'; taudio[7]:='-'; taudio[8]:='-'; taudio[9]:='-'; taudio[10]:='-'; taudio[11]:='-'; taudio[12]:='St.+M-ch.'; taudio[13]:='res.'; taudio[14]:='res.'; taudio[15]:='res.'; freq[0]:='-'; freq[1]:='48 kHz'; freq[2]:='-'; freq[3]:='-'; freq[4]:='96 kHz'; freq[5]:='192 kHz'; freq[6]:='-'; freq[7]:='-'; freq[8]:='-'; freq[9]:='-'; freq[10]:='-'; freq[11]:='-'; freq[12]:='c:48/96, e:192 kHz'; freq[13]:='-'; freq[14]:='c:48, e:192 kHz'; freq[15]:='res.'; tappl[0]:='res.'; tappl[1]:='Main TS for a Movie'; tappl[2]:='Main TS for a Time based slide show'; tappl[3]:='Main TS for a Browsable slide show'; tappl[4]:='Sub TS for a Browsable slide show'; tappl[5]:='Sub TS for a Interactive Graphics menu'; tappl[6]:='Sub TS for a Text subtitle'; tappl[7]:='Sub TS for a one or more elementary streams path'; Last edited by Pelican9; 16th March 2010 at 00:00. |
![]() |
![]() |
![]() |
#8 | Link |
Matroska find' ich toll
Join Date: Apr 2008
Posts: 1,417
|
hi pelican
hi fangorn im looking for a guide/example that explain me the structure of a MPLS (bluray) file. i found out where the chapter-marks are stored in the file but i dont understand the format for the time. i hope you have same information for me. hubble |
![]() |
![]() |
![]() |
#15 | Link |
Matroska find' ich toll
Join Date: Apr 2008
Posts: 1,417
|
hi bigotti
i hope you can help me again. in a mpls file i have 2 playitems but only the first will be used (eac3to). which byte have the info which playtitem is used? in a mpls file with many playitems (seemless branching) one byte is "5E" is this the right byte? Last edited by hubblec4; 18th November 2013 at 10:41. |
![]() |
![]() |
![]() |
#16 | Link | ||
Spielberger
Join Date: Feb 2005
Posts: 838
|
Quote:
Quote:
00 01 -> no seamless connection 00 05 -> seamless connection maybe its easier for us to use german doom9 forum... |
||
![]() |
![]() |
![]() |
#17 | Link |
Matroska find' ich toll
Join Date: Apr 2008
Posts: 1,417
|
|
![]() |
![]() |
![]() |
Tags |
binary, code, documentation, mpls |
Thread Tools | Search this Thread |
Display Modes | |
|
|