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.

 

Go Back   Doom9's Forum > (HD) DVD, Blu-ray & (S)VCD > (HD) DVD & Blu-ray authoring

Reply
 
Thread Tools Search this Thread Display Modes
Old 14th March 2010, 08:21   #1  |  Link
fangorn
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.
fangorn is offline   Reply With Quote
Old 14th March 2010, 20:37   #2  |  Link
Pelican9
Coder
 
Pelican9's Avatar
 
Join Date: Jan 2007
Location: Around the World
Posts: 697
Ask!
Pelican9 is offline   Reply With Quote
Old 15th March 2010, 18:24   #3  |  Link
fangorn
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.
fangorn is offline   Reply With Quote
Old 15th March 2010, 19:52   #4  |  Link
Pelican9
Coder
 
Pelican9's Avatar
 
Join Date: Jan 2007
Location: Around the World
Posts: 697
Have you checked your mpls file with BDedit?
Pelican9 is offline   Reply With Quote
Old 15th March 2010, 22:04   #5  |  Link
fangorn
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.
fangorn is offline   Reply With Quote
Old 15th March 2010, 23:57   #6  |  Link
Pelican9
Coder
 
Pelican9's Avatar
 
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.
Pelican9 is offline   Reply With Quote
Old 18th March 2010, 15:27   #7  |  Link
fangorn
Registered User
 
Join Date: Jun 2008
Posts: 42
Thanks for the help.

And sorry for being a little stubborn. My workload went a little bit over my head.

I have never heard of BDedit before and also did not try it.
fangorn is offline   Reply With Quote
Old 9th November 2013, 11:15   #8  |  Link
hubblec4
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
hubblec4 is offline   Reply With Quote
Old 9th November 2013, 16:31   #9  |  Link
bigotti5
Spielberger
 
bigotti5's Avatar
 
Join Date: Feb 2005
Posts: 838
time in 45khz ticks

e.g
00 00 AF C8 == 45000 == 1 sec == 00:00:01,000
01 9B FC C0 == 27000000 == 600 sec == 00:10:00,000
bigotti5 is offline   Reply With Quote
Old 9th November 2013, 20:08   #10  |  Link
hubblec4
Matroska find' ich toll
 
Join Date: Apr 2008
Posts: 1,417
thank you. that helps me.

and where i can find the length of the clip?

Last edited by hubblec4; 9th November 2013 at 21:43.
hubblec4 is offline   Reply With Quote
Old 9th November 2013, 20:59   #11  |  Link
bigotti5
Spielberger
 
bigotti5's Avatar
 
Join Date: Feb 2005
Posts: 838
What clip?
Length of the PlayItem(s) in mpls?
Length of clip defined in clpi?
bigotti5 is offline   Reply With Quote
Old 9th November 2013, 21:43   #12  |  Link
hubblec4
Matroska find' ich toll
 
Join Date: Apr 2008
Posts: 1,417
Quote:
Originally Posted by bigotti5 View Post
What clip?
Length of the PlayItem(s) in mpls?
...
sorry. yes the playitem i mean.
hubblec4 is offline   Reply With Quote
Old 9th November 2013, 21:50   #13  |  Link
bigotti5
Spielberger
 
bigotti5's Avatar
 
Join Date: Feb 2005
Posts: 838
Σ of difference(s) between in_time(s) and out_time(s) of PlayItem(s)
bigotti5 is offline   Reply With Quote
Old 10th November 2013, 12:16   #14  |  Link
hubblec4
Matroska find' ich toll
 
Join Date: Apr 2008
Posts: 1,417
thanks again, i found all infos.

Last edited by hubblec4; 12th November 2013 at 19:51.
hubblec4 is offline   Reply With Quote
Old 18th November 2013, 00:27   #15  |  Link
hubblec4
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.
hubblec4 is offline   Reply With Quote
Old 18th November 2013, 19:53   #16  |  Link
bigotti5
Spielberger
 
bigotti5's Avatar
 
Join Date: Feb 2005
Posts: 838
Quote:
in a mpls file i have 2 playitems but only the first will be used (eac3to).
PlayItem or SubPlayItem?

Quote:
in a mpls file with many playitems (seemless branching) one byte is "5E" is this the right byte?
You can identify seamless branching by two bytes immediately after clip_codec_id (4D 32 54 53)
00 01 -> no seamless connection
00 05 -> seamless connection

maybe its easier for us to use german doom9 forum...
bigotti5 is offline   Reply With Quote
Old 19th November 2013, 15:38   #17  |  Link
hubblec4
Matroska find' ich toll
 
Join Date: Apr 2008
Posts: 1,417
Quote:
Originally Posted by bigotti5 View Post
maybe its easier for us to use german doom9 forum...
yes i think too
hubblec4 is offline   Reply With Quote
Reply

Tags
binary, code, documentation, mpls

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 19:59.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.