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 > Hardware & Software > Software players

Reply
 
Thread Tools Search this Thread Display Modes
Old 1st March 2012, 16:18   #1  |  Link
cb2000
Registered User
 
Join Date: Nov 2010
Posts: 91
directshow Bluray disc navigator filter base on libbluray

I have work on "dslibbluray", my directshow Bluray disc navigator filter for several monthes.
Although it is still in very early state, I still post a test build here for maybe someone would like to try it.
http://sourceforge.net/projects/dslibbluray/files/
cb2000 is offline   Reply With Quote
Old 1st March 2012, 16:49   #2  |  Link
dukey
Registered User
 
Join Date: Dec 2005
Posts: 560
Nice work cb2000. What interfaces are planned so we can use this filter ? And why have you made a custom EVR mixer ?
dukey is offline   Reply With Quote
Old 1st March 2012, 17:14   #3  |  Link
Mercury_22
Registered User
 
Join Date: Dec 2007
Posts: 1,138
With the last version (test0301) many BD are working but there are also a lot of crashing or simply not starting
The most frequent crashes are happening with this two messages
1.
Code:
Could not find helper library for argument -Xrunjdwp:transport=dt_socket,server=
n,address=8888
Cannot start VM (error handling -Xrun argument -Xrunjdwp:transport=dt_socket,ser
ver=n,address=8888)
java.lang.UnsatisfiedLinkError: no jdwp.dll in sun.boot.library.path
        at java.lang.ClassLoader.loadLibraryInternal(Compiled Method)(ClassLoade
r.java:1645)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bdj\bdj.c:171: Failed t
o create new Java VM.
2.
Code:
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\decoders\graphics_contr
oller.c:818:    auto-activate #0 not triggered (!cmds)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\decoders\graphics_contr
oller.c:818:    auto-activate #4 not triggered (!cmds)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\decoders\graphics_contr
oller.c:818:    auto-activate #16 not triggered (!cmds)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\decoders\graphics_contr
oller.c:818:    auto-activate #17 not triggered (!cmds)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\decoders\graphics_contr
oller.c:818:    auto-activate #4 not triggered (!cmds)
The first message it's followed by the previous reported error when trying to close Demo_Player
before crashing

Also the problem with the selection in some menus
Quote:
Originally Posted by Mercury_22 View Post
...
4. In some menus I can't see where is the selection: e.g when changing from PLAY to Languages I can't see when Language is selected although pressing enter it's showing the available languages
...
P.S. a small suggestion, if I may, find a way (to get rid of the Win7DSFilterTweaker) so we don't need to "Tweaker" the decoders cause most of us don't want to mess up our systems and in VM things are very slow

But, again this is a great start
__________________
Intel UHD Graphics 750; Win 10 22H2

Last edited by Mercury_22; 1st March 2012 at 17:29.
Mercury_22 is offline   Reply With Quote
Old 1st March 2012, 17:43   #4  |  Link
cb2000
Registered User
 
Join Date: Nov 2010
Posts: 91
Quote:
Originally Posted by dukey View Post
Nice work cb2000. What interfaces are planned so we can use this filter ? And why have you made a custom EVR mixer ?
the bdj graphic output is ARGB, the EVR can't mix it with video.
VMR9 support ARGB, but I have waste about one month to try to work with VMR9, but failed.
So I spend another one month to write a custom EVR mixer. It is working but also some feature not implement.
cb2000 is offline   Reply With Quote
Old 1st March 2012, 17:47   #5  |  Link
cb2000
Registered User
 
Join Date: Nov 2010
Posts: 91
Quote:
Originally Posted by Mercury_22 View Post
1.[CODE]Could not find helper library for argument -Xrunjdwp:transport=dt_socket,server=
n,address=8888
sorry for missing java debug dll, provided in test0302.zip, lazy to compiled a none debug version.
cb2000 is offline   Reply With Quote
Old 1st March 2012, 17:52   #6  |  Link
dukey
Registered User
 
Join Date: Dec 2005
Posts: 560
Quote:
Originally Posted by cb2000 View Post
the bdj graphic output is ARGB, the EVR can't mix it with video.
VMR9 support ARGB, but I have waste about one month to try to work with VMR9, but failed.
So I spend another one month to write a custom EVR mixer. It is working but also some feature not implement.
Yeah I discovered this limitation myself with EVR. VRM9 can do it.
However AYUV should work when sending to EVR, I don't see why you need to make a custom mixer, it doesn't make a lot of sense. If I want to implement this in my own program I need to use your custom mixer?

Just do your ARGB->AYUV conversion in the filter itself, and send the substream to the 2nd EVR pin. I've been working on something similar myself for rendering subtitles on other pins.
dukey is offline   Reply With Quote
Old 1st March 2012, 17:59   #7  |  Link
Mercury_22
Registered User
 
Join Date: Dec 2007
Posts: 1,138
Quote:
Originally Posted by cb2000 View Post
sorry for missing java debug dll, provided in test0302.zip, lazy to compiled a none debug version.
Now I'm getting this
Code:
ERROR: transport error 202: connect failed: Connection refused
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
800
200
205
207
1004
800
java.lang.Error: Not implemented
        at org.havi.ui.event.HRcCapabilities.getRepresentation(Compiled Method)(
HRcCapabilities.java:25)
        at a.a.g.b.c(Compiled Method)(Unknown Source)
        at a.a.g.b.<init>(Compiled Method)(Unknown Source)
        at a.a.b.at.<init>(Compiled Method)(Unknown Source)
        at a.a.b.v.a(Compiled Method)(Unknown Source)
        at a.a.c.a.c(Compiled Method)(Unknown Source)
        at netblender.DoXlet.startXlet(Compiled Method)(Unknown Source)
        at org.videolan.BDJAppProxy.doStart(Compiled Method)(BDJAppProxy.java:17
0)
        at org.videolan.BDJAppProxy.run(Compiled Method)(BDJAppProxy.java:279)
        at java.lang.Thread.run(Compiled Method)(Thread.java:714)
        at java.lang.Thread.startup(Compiled Method)(Thread.java:785)
__________________
Intel UHD Graphics 750; Win 10 22H2
Mercury_22 is offline   Reply With Quote
Old 1st March 2012, 18:00   #8  |  Link
cb2000
Registered User
 
Join Date: Nov 2010
Posts: 91
Quote:
Originally Posted by dukey View Post
Yeah I discovered this limitation myself with EVR. VRM9 can do it.
However AYUV should work when sending to EVR, I don't see why you need to make a custom mixer, it doesn't make a lot of sense. If I want to implement this in my own program I need to use your custom mixer?

Just do your ARGB->AYUV conversion in the filter itself, and send the substream to the 2nd EVR pin. I've been working on something similar myself for rendering subtitles on other pins.
Unfortunately, many video card don't support AYUV also including mine (onboad ati 4250). It only support IA44 and AI44.
also a custom EVR mixer may support PIP feature. both EVR and VMR9 can't do it well.
cb2000 is offline   Reply With Quote
Old 1st March 2012, 18:03   #9  |  Link
cb2000
Registered User
 
Join Date: Nov 2010
Posts: 91
Quote:
Originally Posted by Mercury_22 View Post
Now I'm getting this
Code:
ERROR: transport error 202: connect failed: Connection refused
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
800
200
205
207
1004
800
java.lang.Error: Not implemented
        at org.havi.ui.event.HRcCapabilities.getRepresentation(Compiled Method)(
HRcCapabilities.java:25)
        at a.a.g.b.c(Compiled Method)(Unknown Source)
        at a.a.g.b.<init>(Compiled Method)(Unknown Source)
        at a.a.b.at.<init>(Compiled Method)(Unknown Source)
        at a.a.b.v.a(Compiled Method)(Unknown Source)
        at a.a.c.a.c(Compiled Method)(Unknown Source)
        at netblender.DoXlet.startXlet(Compiled Method)(Unknown Source)
        at org.videolan.BDJAppProxy.doStart(Compiled Method)(BDJAppProxy.java:17
0)
        at org.videolan.BDJAppProxy.run(Compiled Method)(BDJAppProxy.java:279)
        at java.lang.Thread.run(Compiled Method)(Thread.java:714)
        at java.lang.Thread.startup(Compiled Method)(Thread.java:785)
many BD-Java feature is not implement yet, sorry.
cb2000 is offline   Reply With Quote
Old 1st March 2012, 18:08   #10  |  Link
dukey
Registered User
 
Join Date: Dec 2005
Posts: 560
Quote:
Originally Posted by cb2000 View Post
Unfortunately, many video card don't support AYUV also including mine (onboad ati 4250). It only support IA44 and AI44.
also a custom EVR mixer may support PIP feature. both EVR and VMR9 can't do it well.
Yeah that may well be true. My subtitle renderer only uses AI44, not even tried AYUV yet. Would be good to know what gfx cards support it, and what don't.

I suppose using a custom EVR mixer for this wouldn't be a deal breaker at all.
dukey is offline   Reply With Quote
Old 1st March 2012, 18:09   #11  |  Link
Mercury_22
Registered User
 
Join Date: Dec 2007
Posts: 1,138
Quote:
Originally Posted by cb2000 View Post
many BD-Java feature is not implement yet, sorry.
No problem I can wait

I don't know if it helps but I'm getting this when trying to debug one crash which happens after selecting start in the BD menu and pressing enter
Code:
Call Stac bluray.dll!6c20dc9b()
6C20DC9B  mov         eax,dword ptr [edx+3Ch]
__________________
Intel UHD Graphics 750; Win 10 22H2
Mercury_22 is offline   Reply With Quote
Old 1st March 2012, 18:17   #12  |  Link
nevcairiel
Registered Developer
 
Join Date: Mar 2010
Location: Hamburg/Germany
Posts: 10,344
Quote:
Originally Posted by dukey View Post
I suppose using a custom EVR mixer for this wouldn't be a deal breaker at all.
If its limited to one special custom EVR, i might as well stick to a commercial player.

IMHO the right approach would be to define an interface which is used to communicate the overlays, and then let other renderers implement that if they want to.
If you already spend alot of time on this, might as well do it right, otherwise it'll still be as limited as the commercial players are.

Writing Blu-ray support is easy, doing it the full flexible DirectShow way we all like so much, is hard.
__________________
LAV Filters - open source ffmpeg based media splitter and decoders

Last edited by nevcairiel; 1st March 2012 at 18:24.
nevcairiel is offline   Reply With Quote
Old 1st March 2012, 18:37   #13  |  Link
dukey
Registered User
 
Join Date: Dec 2005
Posts: 560
Quote:
Originally Posted by nevcairiel View Post
If its limited to one special custom EVR, i might as well stick to a commercial player.
I don't see it being such an issue. Would just be like using any other filter. If you had to use a custom presenter, that would be quite different. The alternative is, to just not bother with graphics cards that lack support for AYUV, which ever ones they are.

And if you want to spend 100 dollars on powerdvd Nothing stopping you lol.
dukey is offline   Reply With Quote
Old 1st March 2012, 19:38   #14  |  Link
Asmodian
Registered User
 
Join Date: Feb 2002
Location: San Jose, California
Posts: 4,406
I like using MadVR as it has support for calibration (yCMS). I don't know if Madishi would be willing to impliment an interface used to communicate the overlays but that does sound cool!
Asmodian is offline   Reply With Quote
Old 2nd March 2012, 03:24   #15  |  Link
cb2000
Registered User
 
Join Date: Nov 2010
Posts: 91
Quote:
Originally Posted by nevcairiel View Post
If its limited to one special custom EVR, i might as well stick to a commercial player.

IMHO the right approach would be to define an interface which is used to communicate the overlays, and then let other renderers implement that if they want to.
If you already spend alot of time on this, might as well do it right, otherwise it'll still be as limited as the commercial players are.

Writing Blu-ray support is easy, doing it the full flexible DirectShow way we all like so much, is hard.
For any renderer that support mixing following streams can be used with dslibbluray, no limitted.
1. two yuv video stream, either maybe difference start time, duration, frame rate, fame size, interlaced or not;
2. ARGB/AYUV substream (current it only use ARGB, but it is easy to coverrt to AYUV by software), and each sample only has start time but no stop time;
3.eatch stream may occor or disappear at any time

Unfortunately, no one now. So I had write a custom EVR mixer because it is some easy than write a new renderer from scratch.
cb2000 is offline   Reply With Quote
Old 2nd March 2012, 03:36   #16  |  Link
cb2000
Registered User
 
Join Date: Nov 2010
Posts: 91
Anyone will suggest an BD with HDMV animate button that I can download for debugging?
Maybe "Mercury_22: 4. In some menus I can't see where is the selection:" one of bug of animate button
cb2000 is offline   Reply With Quote
Old 2nd March 2012, 04:29   #17  |  Link
Inspector.Gadget
Registered User
 
Join Date: May 2008
Posts: 1,618
I can't use this at the moment, but I wanted to thank you, cb2000, for your hard work and dedication to improving the state of BD playback outside of proprietary applications.
Inspector.Gadget is offline   Reply With Quote
Old 2nd March 2012, 08:01   #18  |  Link
Mercury_22
Registered User
 
Join Date: Dec 2007
Posts: 1,138
Quote:
Originally Posted by cb2000 View Post
Anyone will suggest an BD with HDMV animate button that I can download for debugging?
Maybe "Mercury_22: 4. In some menus I can't see where is the selection:" one of bug of animate button
EDIT: Use this Test_Animated_Button and let me know if you need me to add to it
__________________
Intel UHD Graphics 750; Win 10 22H2

Last edited by Mercury_22; 2nd March 2012 at 09:20.
Mercury_22 is offline   Reply With Quote
Old 2nd March 2012, 12:24   #19  |  Link
dukey
Registered User
 
Join Date: Dec 2005
Posts: 560
Quote:
Originally Posted by cb2000 View Post
For any renderer that support mixing following streams can be used with dslibbluray, no limitted.
1. two yuv video stream, either maybe difference start time, duration, frame rate, fame size, interlaced or not;
2. ARGB/AYUV substream (current it only use ARGB, but it is easy to coverrt to AYUV by software), and each sample only has start time but no stop time;
3.eatch stream may occor or disappear at any time

Unfortunately, no one now. So I had write a custom EVR mixer because it is some easy than write a new renderer from scratch.
Substreams on EVR can be any frame rate you want. Even variable frame rate is fine. The catch is, the substream will only update if the picture on pin1 is updating, so the substream is locked to the references streams frame rate.

Start and stop times on substreams are not a problem. Just fake something. If the video is 25fps, just send the stop time to be +40ms of the start time.

The other catch is, the video one pin0 will stop if there is no substream picture. So either send an end of stream notification or just send blank frames to keep the renderer happy.
dukey is offline   Reply With Quote
Old 4th March 2012, 13:18   #20  |  Link
cb2000
Registered User
 
Join Date: Nov 2010
Posts: 91
Quote:
Originally Posted by Mercury_22 View Post
EDIT: Use this Test_Animated_Button and let me know if you need me to add to it
www.mediafire.com is blocked by country firewall...
cb2000 is offline   Reply With Quote
Reply

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 23:01.


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