[libbluray-devel] first patch-set

Erik Van Grunderbeeck erik at arawix.com
Tue Jan 25 20:48:33 CET 2011


>I'll check this in couple of days. (I probably have some questions too :)

No worries. Fire away. Btw; I didnt say this yet, but great job on coding
this. The amount (and quality) of the work is damn high.

> Register:
>
>> Set some different initial register values. This prevents sending startup
>> messages for initial states (that are not valid) on a register restore.

>That might have some unwanted side-effects if HDMV application expects
>certain initial values. Maybe this should be fixed somewhere else ;
>what kind of problems do the initial values cause ?
2 fold:

1) My reasoning is that apps dont want the initial values of whatever the
registers are initialized at. Could be any value, and doesnt make sense to
them?

2) I saw some issues where on playback on object gets restored (ege play
title, then go back if I remember correctly). The restore object thus
resends the init values of the registers again, and then whatever the
statemachine is giving. Ill try to repro the restore scenario if you want.


> Mpls parse
>
>> Added a reference comment. I have a couple of blurays where there is
>> certainly a selection possible (a menu is drawn) but the value for the
pgs
>> graphics read is 0. Not sure what is happening there.

>Do you mean menus are visible with some other player ?
Yep. Cyberlink PowerDVD 10

>Playlist sub_count is the number of sub paths. Typically
>non-synchronous menu is stored in separate sub-path (m2ts file) so
>that it can be pre-loaded. But menus can be muxed to the main path too
> (that's not yet supported). That should be possible to check with
>mpls_dump application (mpls_dump -v -i -l -p /path/to/?????.mpls).

Ill check with the BR I have that shows the problem. If you want, and let me
know how I can check for the muxing I can probably give you a patch (I know
and have experience on mpegts muxing)

Further remarks ;)

1) Theres a subtle bug if you use the FILTER values (ege
TITLES_FILTER_DUP_TITLE/TITLES_FILTER_DUP_CLIP). If that is used then some
valid mpls's will be filtered that are valid when the BR is played in
navigation mode. The list that navigation mode uses should be the full list
available on the disc, while the filter values should return a filter lists
based on that. I am also not really sure why that filtering is there anyway?

2) I have some BR's with dynamic PG's (ege animations). Right now, thats not
supported since the object state gets suspened after the VM runs. Any idea
on that? It also fills in with an issue I see/have on pre-buffering of the
streams: in my player, I am running about 5 seconds ahead of the BR mainly
because of audio buffering. When I know a new playlist/clip is going to be
loaded, I let my buffers run clear. However, then I can't get PG's results
anymore, since I can't do a read() (and the pg's VM animation is running in
read()). All of that could be solved if theres some seperate VM run call, on
a callback or so from the library, that would check if a VM run would run a
new clip or just animate a menu.

3) Looking into the java BJ stuff, its probably a good idea to pass an
install path for the library. LoadLib in Java is buggy (ege it doesnt scan
the startup directory, only system libvs on windows). That leads to problems
finding the dll again if its not in the $PATH$/Windows dir.

4) I saw some issues with xlet's starting when bootstrap doesnt allow
internet access, and in some cases where there is no startup flag set for
any xlet (from what I read, should be at least one). Looking into that to
figure whats going on.

Erik



More information about the libbluray-devel mailing list