View Full Version : directshow Bluray disc navigator filter base on libbluray
cb2000
1st March 2012, 16:18
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/
dukey
1st March 2012, 16:49
Nice work cb2000. What interfaces are planned so we can use this filter ? And why have you made a custom EVR mixer ?
Mercury_22
1st March 2012, 17:14
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.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. 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 http://img29.imageshack.us/img29/2623/captureyf.png
before crashing
Also the problem with the selection in some menus ...
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 :rolleyes:
But, again this is a great start :D :thanks:
cb2000
1st March 2012, 17:43
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
1st March 2012, 17:47
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.
dukey
1st March 2012, 17:52
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.
Mercury_22
1st March 2012, 17:59
sorry for missing java debug dll, provided in test0302.zip, lazy to compiled a none debug version.
Now I'm getting this 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)
cb2000
1st March 2012, 18:00
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
1st March 2012, 18:03
Now I'm getting this 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.
dukey
1st March 2012, 18:08
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.
Mercury_22
1st March 2012, 18:09
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
Call Stac bluray.dll!6c20dc9b()
6C20DC9B mov eax,dword ptr [edx+3Ch]
nevcairiel
1st March 2012, 18:17
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. :p
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.
dukey
1st March 2012, 18:37
If its limited to one special custom EVR, i might as well stick to a commercial player. :p
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.
Asmodian
1st March 2012, 19:38
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!
cb2000
2nd March 2012, 03:24
If its limited to one special custom EVR, i might as well stick to a commercial player. :p
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
2nd March 2012, 03:36
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
Inspector.Gadget
2nd March 2012, 04:29
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.
Mercury_22
2nd March 2012, 08:01
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 (http://www.mediafire.com/?g4464umuuq33oi1) and let me know if you need me to add to it
dukey
2nd March 2012, 12:24
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.
cb2000
4th March 2012, 13:18
EDIT: Use this Test_Animated_Button (http://www.mediafire.com/?g4464umuuq33oi1) and let me know if you need me to add to it
www.mediafire.com is blocked by country firewall...
cb2000
4th March 2012, 13:25
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.
the video is decode by another filter, and u do not know how it times its out sample an send to renderer, so don't know how to times substream. This is the biggest isseue when I try to using VMR9.
dukey
4th March 2012, 13:36
Just start pushing samples at 40ms apart as soon as the graph is run, starting from time 0. If there is no subpic, just send empty frames. That's basically how my subtitle renderer works. You just gotta watch out when the user seeks in the graph as it resets the times. You don't even need to time it manually, GetDeliveryBuffer will block until its ready to receive again.
Mercury_22
4th March 2012, 14:18
www.mediafire.com is blocked by country firewall...
Tell me where you want me to upload but the problem with "Animated Button" has been fixed in Revision 27 - Directory Listing
Modified Fri Mar 2 05:58:51 2012 UTC (2 days, 7 hours ago) by cb2000
update libbluray: Fixed displaying of single-loop animated buttons when not using animations
Also can you please add Demo_Player project to the solution so we can build it ourselves ? ( and if necessary a guide / batch file of how to build it )
This way you will not have to post a build for testing every time you change something and also maybe someone else can help
cb2000
4th March 2012, 15:44
Tell me where you want me to upload but the problem with "Animated Button" has been fixed in
Also can you please add Demo_Player project to the solution so we can build it ourselves ? ( and if necessary a guide / batch file of how to build it )
This way you will not have to post a build for testing every time you change something and also maybe someone else can help
I don't know if u can fetch http://www.rayfile.com/en/ ?
I want to show the animate but not only the last image.
The demo_player is copy from MS's DShow sample code "dshowplayer", I'm afraid it has copyright isseue, so I do not put it on SVN.
Ok I will upload it soon.
cb2000
4th March 2012, 16:22
Just start pushing samples at 40ms apart as soon as the graph is run, starting from time 0. If there is no subpic, just send empty frames. That's basically how my subtitle renderer works. You just gotta watch out when the user seeks in the graph as it resets the times. You don't even need to time it manually, GetDeliveryBuffer will block until its ready to receive again.
But the main video maybe gaps between video segment(playlist change control by bdj or hdmv, it may only display substream as ui but no video) and then VMR9 will block waiting main video if u deliver substream.
dukey
4th March 2012, 20:54
You could just get your worker thread to keep sending frames to the renderer, that way blocking wouldn't be an issue.
Mercury_22
4th March 2012, 21:15
I don't know if u can fetch http://www.rayfile.com/en/ ?
I want to show the animate but not only the last image.
The demo_player is copy from MS's DShow sample code "dshowplayer", I'm afraid it has copyright isseue, so I do not put it on SVN.
Ok I will upload it soon.
Try http://www.rayfile.com/files/d24ab047-6635-11e1-947b-0015c55db73d/
cb2000
5th March 2012, 03:25
Try http://www.rayfile.com/files/d24ab047-6635-11e1-947b-0015c55db73d/
Thanks a lot.
Mercury_22
5th March 2012, 09:54
Thanks a lot.
You're welcome :)
Can you add to svn a text file with a guide of how to build ? ( cause I'm missing some dll after building the solution and the jar )
P.S. any chance for a x64 version too ?
cb2000
5th March 2012, 10:13
You're welcome :)
Can you add to svn a text file with a guide of how to build ? ( cause I'm missing some dll after building the solution and the jar )
P.S. any chance for a x64 version too ?
what is missing? cvmi? It is from phoneme.
copy the cvmi.dll, jdwp.dll, dt_socket.dll and the lib dir. to your binary dir. Phoneme is hard to build, just use it.
libbluray.jar is the bdj lib, copy it unless you want to rebuild it from java source in libbluray\src\libbluray\bdj\java
donot foget to register the ax and dll you build.
x64 not available now because phoneme have not be port to x64.
cb2000
5th March 2012, 10:23
You could just get your worker thread to keep sending frames to the renderer, that way blocking wouldn't be an issue.
I had try empty frame then, but because u don't decode the stream, u don not know when it stop and when empty frame should start, none successful. And I had a conclusion that only if the decoder is included in the source filter, the custom mixer is not needed.
Mercury_22
5th March 2012, 10:44
what is missing? cvmi? It is from phoneme.
x64 not available now because phoneme have not be port to x64.
Yes cvmi and dt_socket.dll, jdwp.dll, libbluray.jar
Also on a first build I'm getting 1 failed LINK : fatal error LNK1181: cannot open input file 'BaseClasses.lib'
but after second build there is no more failed
EDIT I see you've edit your post about the rest of the dll so OK I'll copy them but what about libbluray.jar should I copy that too?
dukey
6th March 2012, 00:31
cb2000, I tried using your filter in my video player. It works with EVR, but I can't get it to work using EVR and my custom presenter. I see in my logs it asks for MR_VIDEO_RENDER_SERVICE, about 100 times. For which I
*ppv = m_pDeviceManager;
m_pDeviceManager->AddRef();
then return S_OK
any ideas ?:)
cb2000
6th March 2012, 02:15
cb2000, I tried using your filter in my video player. It works with EVR, but I can't get it to work using EVR and my custom presenter. I see in my logs it asks for MR_VIDEO_RENDER_SERVICE, about 100 times. For which I
*ppv = m_pDeviceManager;
m_pDeviceManager->AddRef();
then return S_OK
any ideas ?:)
mixer need DXVA2 and D3DDevice from D3DDeviceManager before it can accept input connection, check if u have provide D3DDevice to D3DDeviceManager by ResetDevice before return m_pDeviceManager.
dukey
6th March 2012, 11:56
It does
When the class is create it creates the D3D device and does
// Reset the D3DDeviceManager with the new device
hr = m_pDeviceManager->ResetDevice(pDevice, m_DeviceResetToken);
It also does it again when the user sets
SetVideoWindow(HWND)
IanD
8th March 2012, 03:52
Now that Slysoft have added a simple HDMV based menu option to AnyDVD HD (Speed Menu), it would be great if there was a navigator filter available to permit a PC to become a functional player.
I'm not sure if your navigator filter supports this, but it would have to be easier to implement than Java as a first step.
cb2000
12th March 2012, 13:04
EDIT: Use this Test_Animated_Button (http://www.mediafire.com/?g4464umuuq33oi1) and let me know if you need me to add to it
any other java.lang.Error: Not implemented?
I think i should implement most common used funtion of BDJ first.
Mercury_22
12th March 2012, 16:18
any other java.lang.Error: Not implemented?
I think i should implement most common used funtion of BDJ first.
Won't start playing:
Case 1
c:\dslibbluray\libbluray\src\libbluray\bluray.c:848: libbluray version 0.2.2
c:\dslibbluray\libbluray\src\libbluray\bluray.c:564: AACS/Unit_Key_RO.inf not fo
und. No AACS protection (052235C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:690: BDSVM/00000.svm not found.
No BD+ protection (052235C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:871: BLURAY initialized! (052235
C8)
c:\dslibbluray\libbluray\src\libbluray\register.c:391: bd_psr_write(): PSR16 (
AUDIO_LANG) 0xffffff -> 0x656e67
c:\dslibbluray\libbluray\src\libbluray\register.c:391: bd_psr_write(): PSR17 (
PG_AND_SUB_LANG) 0xffffff -> 0x656e67
c:\dslibbluray\libbluray\src\libbluray\register.c:391: bd_psr_write(): PSR18 (
PSR_MENU_LANG) 0xffffff -> 0x656e67
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2074: PSR change: psr3 = 1 (0522
35C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2074: PSR change: psr4 = 65535 (
052235C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2074: PSR change: psr0 = 1 (0522
35C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2074: PSR change: psr1 = 255 (05
2235C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2074: PSR change: psr2 = 2683740
15 (052235C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2074: PSR change: psr14 = 65535
(052235C8)
c:\dslibbluray\libbluray\src\libbluray\register.c:389: bd_psr_write(4, 65535): n
o change in value
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2043: PSR write: psr4 = 65535 (0
52235C8)
ERROR: transport error 202: connect failed: Connection refused
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
c:\dslibbluray\libbluray\src\libbluray\register.c:389: bd_psr_write(4, 65535): n
o change in value
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2043: PSR write: psr4 = 65535 (0
52235C8)
800
java.lang.VerifyError: (class: title.AfricanCatsXletUSA, method: h(Lbj;)Lig;)Wro
ng return type in function
at java.lang.Class.getConstructor0(Native Method)
at org.videolan.BDJAppProxy.doLoad(Compiled Method)(BDJAppProxy.java:132
)
at org.videolan.BDJAppProxy.doInit(Compiled Method)(BDJAppProxy.java:144
)
at org.videolan.BDJAppProxy.doStart(Compiled Method)(BDJAppProxy.java:16
4)
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)
java.lang.Error: Not implemented
at org.bluray.storage.StorageManager.getInstance(Compiled Method)(Storag
eManager.java:25)
at net.rcdb.bdlive.client.BDLiveClientXlet.u(Compiled Method)(SourceFile
:2874)
at net.rcdb.bdlive.client.BDLiveClientXlet.onThreadInit(Compiled Method)
(SourceFile:273)
at com.javelindvd.bluray.xlet.BDJXlet.run(Compiled Method)(SourceFile:18
5)
at java.lang.Thread.run(Compiled Method)(Thread.java:714)
at java.lang.Thread.startup(Compiled Method)(Thread.java:785)
Case 2 c:\dslibbluray\libbluray\src\libbluray\bluray.c:848: libbluray version 0.2.2
c:\dslibbluray\libbluray\src\libbluray\bluray.c:564: AACS/Unit_Key_RO.inf not fo
und. No AACS protection (069835C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:690: BDSVM/00000.svm not found.
No BD+ protection (069835C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:871: BLURAY initialized! (069835
C8)
c:\dslibbluray\libbluray\src\libbluray\register.c:391: bd_psr_write(): PSR16 (
AUDIO_LANG) 0xffffff -> 0x656e67
c:\dslibbluray\libbluray\src\libbluray\register.c:391: bd_psr_write(): PSR17 (
PG_AND_SUB_LANG) 0xffffff -> 0x656e67
c:\dslibbluray\libbluray\src\libbluray\register.c:391: bd_psr_write(): PSR18 (
PSR_MENU_LANG) 0xffffff -> 0x656e67
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2074: PSR change: psr3 = 1 (0698
35C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2074: PSR change: psr4 = 65535 (
069835C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2074: PSR change: psr0 = 1 (0698
35C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2074: PSR change: psr1 = 255 (06
9835C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2074: PSR change: psr2 = 2683740
15 (069835C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2074: PSR change: psr14 = 65535
(069835C8)
c:\dslibbluray\libbluray\src\libbluray\register.c:389: bd_psr_write(4, 65535): n
o change in value
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2043: PSR write: psr4 = 65535 (0
69835C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2346: HDMV event: 7 0
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2346: HDMV event: 3 17
c:\dslibbluray\libbluray\src\libbluray\register.c:391: bd_psr_write(): PSR4 (
TITLE_NUMBER) 0xffff -> 0x11
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2074: PSR change: psr4 = 17 (069
835C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2346: HDMV event: 7 0
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2346: HDMV event: 4 97
c:\dslibbluray\libbluray\src\libbluray\register.c:391: bd_psr_write(): PSR6 (
PLAYLIST) 0x0 -> 0x61
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2074: PSR change: psr6 = 97 (069
835C8)
c:\dslibbluray\libbluray\src\libbluray\register.c:389: bd_psr_write(3, 1): no ch
ange in value
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2043: PSR write: psr3 = 1 (06983
5C8)
c:\dslibbluray\libbluray\src\libbluray\register.c:391: bd_psr_write(): PSR5 (
CHAPTER) 0xffff -> 0x1
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2074: PSR change: psr5 = 1 (0698
35C8)
c:\dslibbluray\libbluray\src\libbluray\register.c:389: bd_psr_write(7, 0): no ch
ange in value
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2043: PSR write: psr7 = 0 (06983
5C8)
c:\dslibbluray\libbluray\src\libbluray\register.c:391: bd_psr_write(): PSR8 (
TIME) 0x0 -> 0x7fff8
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2074: PSR change: psr8 = 524280
(069835C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:190: Selected stream 0
c:\dslibbluray\libbluray\src\libbluray\register.c:391: bd_psr_write(): PSR1 (
PRIMARY_AUDIO_ID) 0xff -> 0x1
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2074: PSR change: psr1 = 1 (0698
35C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:190: Selected stream 0
c:\dslibbluray\libbluray\src\libbluray\register.c:389: bd_psr_write(2, 268374015
): no change in value
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2043: PSR write: psr2 = 26837401
5 (069835C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:1590: Title 00097.mpls selected!
(069835C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:1524: Playback rate change to 1.
000000 ! (069835C8)
Using SVN rev 41 :)
dukey
12th March 2012, 16:39
What files u trying to play Mercury_22 ? Upload some samples :)
Mercury_22
12th March 2012, 16:51
What files u trying to play Mercury_22 ? Upload some samples :)
What server do you want ? and what files are enough ?
@ cb2000 can you "fetch" jumbofiles.com ?
dukey
12th March 2012, 17:09
Just enough files for the menu should be sufficient. I am not sure where is best to host them. cb2000 is behind the great firewall of china
cb2000
12th March 2012, 17:34
What server do you want ? and what files are enough ?
@ cb2000 can you "fetch" jumbofiles.com ?
It seems yes, but please try one first.
Mercury_22
12th March 2012, 18:15
It seems yes, but please try one first.
Ok
With this one http://jumbofiles.com/68n2f1y2d7wp after going to "SETUP" I'm stuck, I can't go / navigate anywhere else
Let me know how jumbofiles works for you
P.S. Check your PM
EDIT: Can't build rev 42 missing time.h ? 2>ClCompile:
2> graphics_controller.c
2>c:\dslibbluray\libbluray\src\libbluray\decoders\graphics_controller.c(29): fatal error C1083: Cannot open include file: 'util/time.h': No such file or directory
2>
2>Build FAILED.
cb2000
13th March 2012, 07:26
Thanks Mercury_22, I've download and fix the bug.
Mercury_22
13th March 2012, 08:10
Thanks Mercury_22, I've download and fix the bug.
:thanks: This one seems different (but I'm not sure:) ) also no start (SVN Rev 45)
Case 3 c:\dslibbluray\libbluray\src\libbluray\bluray.c:695: BDSVM/00000.svm not found.
No BD+ protection (04E435C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:876: BLURAY initialized! (04E435
C8)
c:\dslibbluray\libbluray\src\libbluray\register.c:391: bd_psr_write(): PSR16 (
AUDIO_LANG) 0xffffff -> 0x656e67
c:\dslibbluray\libbluray\src\libbluray\register.c:391: bd_psr_write(): PSR17 (
PG_AND_SUB_LANG) 0xffffff -> 0x656e67
c:\dslibbluray\libbluray\src\libbluray\register.c:391: bd_psr_write(): PSR18 (
PSR_MENU_LANG) 0xffffff -> 0x656e67
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2079: PSR change: psr3 = 1 (04E4
35C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2079: PSR change: psr4 = 65535 (
04E435C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2079: PSR change: psr0 = 1 (04E4
35C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2079: PSR change: psr1 = 255 (04
E435C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2079: PSR change: psr2 = 2683740
15 (04E435C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2079: PSR change: psr14 = 65535
(04E435C8)
c:\dslibbluray\libbluray\src\libbluray\register.c:389: bd_psr_write(4, 65535): n
o change in value
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2048: PSR write: psr4 = 65535 (0
4E435C8)
ERROR: transport error 202: connect failed: Connection refused
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
c:\dslibbluray\libbluray\src\libbluray\register.c:389: bd_psr_write(4, 65535): n
o change in value
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2048: PSR write: psr4 = 65535 (0
4E435C8)
800
200
205
207
1004
800
java.lang.NoSuchMethodError: java.lang.Integer: method valueOf(I)Ljava/lang/Inte
ger; not found
at org.havi.ui.event.HKeyCapabilities.<clinit>(HKeyCapabilities.java:48)
at java.lang.Class.runStaticInitializers(Compiled Method)(Class.java:164
3)
at java.lang.Class.runStaticInitializers(Compiled Method)(Class.java:162
9)
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)
cb2000
13th March 2012, 10:46
try libbluray.jar in just renewed test0313.zip.
:thanks: This one seems different (but I'm not sure:) ) also no start (SVN Rev 45)
Case 3 c:\dslibbluray\libbluray\src\libbluray\bluray.c:695: BDSVM/00000.svm not found.
No BD+ protection (04E435C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:876: BLURAY initialized! (04E435
C8)
c:\dslibbluray\libbluray\src\libbluray\register.c:391: bd_psr_write(): PSR16 (
AUDIO_LANG) 0xffffff -> 0x656e67
c:\dslibbluray\libbluray\src\libbluray\register.c:391: bd_psr_write(): PSR17 (
PG_AND_SUB_LANG) 0xffffff -> 0x656e67
c:\dslibbluray\libbluray\src\libbluray\register.c:391: bd_psr_write(): PSR18 (
PSR_MENU_LANG) 0xffffff -> 0x656e67
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2079: PSR change: psr3 = 1 (04E4
35C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2079: PSR change: psr4 = 65535 (
04E435C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2079: PSR change: psr0 = 1 (04E4
35C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2079: PSR change: psr1 = 255 (04
E435C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2079: PSR change: psr2 = 2683740
15 (04E435C8)
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2079: PSR change: psr14 = 65535
(04E435C8)
c:\dslibbluray\libbluray\src\libbluray\register.c:389: bd_psr_write(4, 65535): n
o change in value
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2048: PSR write: psr4 = 65535 (0
4E435C8)
ERROR: transport error 202: connect failed: Connection refused
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
c:\dslibbluray\libbluray\src\libbluray\register.c:389: bd_psr_write(4, 65535): n
o change in value
c:\dslibbluray\libbluray\src\libbluray\bluray.c:2048: PSR write: psr4 = 65535 (0
4E435C8)
800
200
205
207
1004
800
java.lang.NoSuchMethodError: java.lang.Integer: method valueOf(I)Ljava/lang/Inte
ger; not found
at org.havi.ui.event.HKeyCapabilities.<clinit>(HKeyCapabilities.java:48)
at java.lang.Class.runStaticInitializers(Compiled Method)(Class.java:164
3)
at java.lang.Class.runStaticInitializers(Compiled Method)(Class.java:162
9)
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)
Mercury_22
13th March 2012, 11:04
try libbluray.jar in just renewed test0313.zip.
It's still not working
Also I have a problem with TrueHD
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:450: _preload_
m2ts(): loaded 7231488 bytes from 00006.m2ts
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:1361: _find_ig
_stream(): current IG stream pid 0x1400 sub-path 0
[truehd @ 0003d5a0] mlpparse: Parity check failed.
[truehd @ 0003d5a0] Lossless check failed - expected f3, calculated b7.
[truehd @ 0003d5a0] mlpparse: Parity check failed.
[truehd @ 0003d5a0] Lossless check failed - expected 14, calculated a3.
[truehd @ 0003d5a0] mlpparse: Parity check failed.
[truehd @ 0003d5a0] Lossless check failed - expected e7, calculated 50.
[truehd @ 0003d5a0] mlpparse: Parity check failed.
[truehd @ 0003d5a0] Lossless check failed - expected 14, calculated e7.
[truehd @ 0003d5a0] mlpparse: Parity check failed.
[truehd @ 0003d5a0] Lossless check failed - expected 00, calculated 44.
[truehd @ 0003d5a0] mlpparse: Parity check failed.
[truehd @ 0003d5a0] Lossless check failed - expected a3, calculated 44.
[truehd @ 0003d5a0] Invalid nonrestart_substr.
[truehd @ 0003d5a0] mlpparse: Parity check failed.
[truehd @ 0003d5a0] Lossless check failed - expected 44, calculated f3.
[truehd @ 0003d5a0] mlpparse: Parity check failed.
[truehd @ 0003d5a0] Lossless check failed - expected 00, calculated 50.
[truehd @ 0003d5a0] mlpparse: Parity check failed.
[truehd @ 0003d5a0] mlpparse: Parity check failed.when I use LAV Audio ( with FFDshow there is no problem :) ) maybe is a compatibility problem cause LAV with MPC-HC it's playing fine the same file
Here is the sample http://jumbofiles.com/3fhy4bsvhjcy you need to add it to my previous sample http://www.rayfile.com/zh-cn/files/d24ab047-6635-11e1-947b-0015c55db73d/
EDIT: also I have no sound with any LPCM stream no matter what decoder I'm using FFD or LAV
nevcairiel
13th March 2012, 11:30
TrueHD is special, the Blu-ray source filter needs to remove the embedded AC3 or it won't work properly.
cb2000
13th March 2012, 17:41
try libbluray.jar in test0314.zip. I think there should be no java.lang.*error. last one is not properly compiled. I clean and rebuild it.
decoder compatible is not so high priority, I won't fix it now, maybe someother can help to improve it.
Mercury_22
13th March 2012, 18:17
try libbluray.jar in test0314.zip. I think there should be no java.lang.*error. last one is not properly compiled. I clean and rebuild it.
decoder compatible is not so high priority, I won't fix it now, maybe someother can help to improve it.
I've tried to get some help from Nev but ... he is busy
Anyway with test0314 LPCM it's working but just with FFD
LAV it's failing with this one too [pcm_bluray @ 1c398e20] unsupported channel configuration (0)
As for the java error it's still there e.g. for Case 3 f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:853: libbluray
version 0.2.2
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:569: AACS/Unit
_Key_RO.inf not found. No AACS protection (049D31D8)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:695: BDSVM/000
00.svm not found. No BD+ protection (049D31D8)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:876: BLURAY in
itialized! (049D31D8)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\register.c:391: bd_psr_
write(): PSR16 (AUDIO_LANG) 0xffffff -> 0x656e67
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\register.c:391: bd_psr_
write(): PSR17 (PG_AND_SUB_LANG) 0xffffff -> 0x656e67
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\register.c:391: bd_psr_
write(): PSR18 (PSR_MENU_LANG) 0xffffff -> 0x656e67
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:2079: PSR chan
ge: psr3 = 1 (049D31D8)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:2079: PSR chan
ge: psr4 = 65535 (049D31D8)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:2079: PSR chan
ge: psr0 = 1 (049D31D8)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:2079: PSR chan
ge: psr1 = 255 (049D31D8)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:2079: PSR chan
ge: psr2 = 268374015 (049D31D8)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:2079: PSR chan
ge: psr14 = 65535 (049D31D8)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\register.c:389: bd_psr_
write(4, 65535): no change in value
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:2048: PSR writ
e: psr4 = 65535 (049D31D8)
ERROR: transport error 202: connect failed: Connection refused
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\register.c:389: bd_psr_
write(4, 65535): no change in value
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:2048: PSR writ
e: psr4 = 65535 (049D31D8)
800
200
205
207
1004
800
java.lang.Error: Not implemented
at java.awt.BDGraphics.drawLine(Compiled Method)(BDGraphics.java:324)
at a.a.b.ba.<init>(Compiled Method)(Unknown Source)
at a.a.b.c.<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)
cb2000
14th March 2012, 02:01
"java.lang.Error: Not implemented" is sothing not implemented, other is a bug
java.lang.NoSuchMethodError has gone, that is cause by not correct compile compilation.
I want to know as many as "java.lang.Error: Not implemented" and what cause it (the next line), such as "at java.awt.BDGraphics.drawLine(Compiled Method)(BDGraphics.java:324)
", so that I can implement them first. Pleast post it if u find another.
cb2000
14th March 2012, 02:47
case 2 is ok on my test now. Thanks.
Mercury_22
14th March 2012, 08:32
case 2 is ok on my test now. Thanks.
Yes it seems OK for me too f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:853: libbluray
version 0.2.2
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:569: AACS/Unit
_Key_RO.inf not found. No AACS protection (049131D8)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:695: BDSVM/000
00.svm not found. No BD+ protection (049131D8)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:876: BLURAY in
itialized! (049131D8)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\register.c:391: bd_psr_
write(): PSR16 (AUDIO_LANG) 0xffffff -> 0x656e67
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\register.c:391: bd_psr_
write(): PSR17 (PG_AND_SUB_LANG) 0xffffff -> 0x656e67
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\register.c:391: bd_psr_
write(): PSR18 (PSR_MENU_LANG) 0xffffff -> 0x656e67
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:2079: PSR chan
ge: psr3 = 1 (049131D8)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:2079: PSR chan
ge: psr4 = 65535 (049131D8)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:2079: PSR chan
ge: psr0 = 1 (049131D8)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:2079: PSR chan
ge: psr1 = 255 (049131D8)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:2079: PSR chan
ge: psr2 = 268374015 (049131D8)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:2079: PSR chan
ge: psr14 = 65535 (049131D8)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\register.c:389: bd_psr_
write(4, 65535): no change in value
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:2048: PSR writ
e: psr4 = 65535 (049131D8)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:2351: HDMV eve
nt: 7 0
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\register.c:391: bd_psr_
write(): PSR11 (MENU_PAGE_ID) 0x0 -> 0xff
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:2079: PSR chan
ge: psr11 = 255 (049131D8)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:2351: HDMV eve
nt: 3 17
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\register.c:389: bd_psr_
write(11, 255): no change in value
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:2048: PSR writ
e: psr11 = 255 (049131D8)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\register.c:391: bd_psr_
write(): PSR4 (TITLE_NUMBER) 0xffff -> 0x11
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:2079: PSR chan
ge: psr4 = 17 (049131D8)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:2351: HDMV eve
nt: 7 0
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\register.c:389: bd_psr_
write(11, 255): no change in value
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:2048: PSR writ
e: psr11 = 255 (049131D8)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:2351: HDMV eve
nt: 4 97
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\register.c:389: bd_psr_
write(11, 255): no change in value
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:2048: PSR writ
e: psr11 = 255 (049131D8)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\register.c:391: bd_psr_
write(): PSR6 (PLAYLIST) 0x0 -> 0x61
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:2079: PSR chan
ge: psr6 = 97 (049131D8)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\register.c:389: bd_psr_
write(3, 1): no change in value
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:2048: PSR writ
e: psr3 = 1 (049131D8)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\register.c:391: bd_psr_
write(): PSR5 (CHAPTER) 0xffff -> 0x1
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:2079: PSR chan
ge: psr5 = 1 (049131D8)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\register.c:389: bd_psr_
write(7, 0): no change in value
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:2048: PSR writ
e: psr7 = 0 (049131D8)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\register.c:391: bd_psr_
write(): PSR8 (TIME) 0x0 -> 0x7fff8
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:2079: PSR chan
ge: psr8 = 524280 (049131D8)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:190: Selected
stream 0
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\register.c:391: bd_psr_
write(): PSR1 (PRIMARY_AUDIO_ID) 0xff -> 0x1
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:2079: PSR chan
ge: psr1 = 1 (049131D8)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:1595: Title 00
097.mpls selected! (049131D8)
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:1529: Playback
rate change to 1.000000 ! (049131D8)
but it won't start playing and I suspect it's because it's a VC1. I've tried with both FFD and LAV and with all settings
dukey
14th March 2012, 11:41
if you look at the m2ts files and open with mpc-hc u should be able to see if they are vc1
Mercury_22
14th March 2012, 11:46
if you look at the m2ts files and open with mpc-hc u should be able to see if they are vc1
I'm saying they are VC1 ( no doubt :) ) and they are playing fine with mpc-hc and all decoders and after more tests I can say there is a problem with vc1 (p & i ) none of my VC1 BDs are working
Another problem this one I can play it but in the menu I can't see the buttons http://jumbofiles.com/b1et3hqywezc & http://jumbofiles.com/l973wfnfle33
P.S. I'm using Revision 52
EDIT: And if you have some time I have some crashing too :)Unhandled exception at 0x7072036c (bluray.dll) in demo_player.exe: 0xC0000005: Access violation reading location 0x0000001c.
Call Stack
> bluray.dll!bd_read(bluray * bd, unsigned char * buf, int len) Line 1223 + 0x17 bytes C++
EDIT 2 after rev 54
Unhandled exception at 0x6ffd14db (bluray.dll) in demo_player.exe: 0xC0000005: Access violation reading location 0xddddde19.
Call Stack
> bluray.dll!_find_pg_stream(bluray * bd, unsigned short * pid, int * sub_path_idx) Line 1400 + 0x8 bytes C++
Blight
15th March 2012, 11:57
Hi,
I'd be interested in adding support for this filter in Zoom Player once it's a bit mature.
Please don't lock it to a specific EVR custom presenter,
It would be much friendlier if the filter was self-contained and did the mixing itself as-needed rather than relying on a custom EVR presenter to do the mixing.
dukey
15th March 2012, 14:41
It's not locked to a specific EVR custom presenter. In theory it can can made to work with any. But there are a few things you must do to make it work. It has to be thread safe with regards to direct 3d. The custom evr presenters in MPC-HC are not thread safe. But it's not much work to make them so.
Rectal Prolapse
15th March 2012, 20:47
Will source be available for this? I wrote an engine for PGS decoding and display and I think it can be easily adapted to IG as well, so I can lend a hand with menu display and handling.
dukey
15th March 2012, 21:16
http://dslibbluray.svn.sourceforge.net/viewvc/dslibbluray/trunk/
Give cb2000 a message, I'm sure he add you to the project :)
Rectal Prolapse
15th March 2012, 21:35
Oh I didn't realize it was already there! Thanks!
I will look around the source in a couple of weeks from now and hopefully I can help out!
nevcairiel
15th March 2012, 21:42
The best course of action would be to contribute any improvements to the actual Blu-ray handling back to the libbluray project. In fact, its the only course of action that'll get you proper support.
Rectal Prolapse
15th March 2012, 21:55
I cannot seem to find the libbluray project - only the dslibbluray one on sourceforge. I guess I will have to keep searching around a bit.
I guess it is the VLC one:
http://www.videolan.org/developers/libbluray.html
nevcairiel
15th March 2012, 22:40
Yes thats the one. Its the base library dslibbluray is based on (as one might've guessed from the name)
dukey
18th March 2012, 02:07
cb2000,
is the code in test-60.zip the latest on sourceforge ? Because when I try and BBC_DEEP_BLUE it works fine with that compiled code. But when I compile the mixer myself and run it, it won't run past the menu buttons. Just freezes after. And the compile sizes come out different so I'm guessing there is some changes missing ?
I want to make some changes to the mixer to help with evr custom compatibility but would rather work with the latest version :p
cb2000
18th March 2012, 14:25
some interface function add in IEVRMixer, and be used by dslibbluray, see svn commit log of REV 62.
cb2000,
is the code in test-60.zip the latest on sourceforge ? Because when I try and BBC_DEEP_BLUE it works fine with that compiled code. But when I compile the mixer myself and run it, it won't run past the menu buttons. Just freezes after. And the compile sizes come out different so I'm guessing there is some changes missing ?
I want to make some changes to the mixer to help with evr custom compatibility but would rather work with the latest version :p
dukey
18th March 2012, 18:26
I was using build rev 62. The debug binary comes out a different size than that of the evrmixer.dll in the test-60.zip. I am thinking either you forgot to submit some code or REV 62 introduced a bug :p Since the BBC_DEEP_BLUE wont play past the menu with REV 62 or later.
cb2000
19th March 2012, 08:31
Mainly because the libbluray.jar not compatable with bluray.dll.
Using the the same Rev of code and and libbluray.jar in test build please.
I was using build rev 62. The debug binary comes out a different size than that of the evrmixer.dll in the test-60.zip. I am thinking either you forgot to submit some code or REV 62 introduced a bug :p Since the BBC_DEEP_BLUE wont play past the menu with REV 62 or later.
Mercury_22
19th March 2012, 09:00
I was using build rev 62. The debug binary comes out a different size than that of the evrmixer.dll in the test-60.zip. I am thinking either you forgot to submit some code or REV 62 introduced a bug :p Since the BBC_DEEP_BLUE wont play past the menu with REV 62 or later.
Working fine here
Just make sure you're using ONLY FFD cause from my tests there are big incompatibilities with other decoders e.g. LAV
dukey
19th March 2012, 12:16
Yeah I haven't even got FFD installed at the moment, been using LAV. And I'm also testing from inside my own program with my custom presenter. We should be able to fix those incompatibilities.
dukey
19th March 2012, 12:30
Hm i tried the demo player with FFDShow tryouts
all i get is
Problem signature:
Problem Event Name: APPCRASH
Application Name: demo_player.exe
Application Version: 0.0.0.0
Application Timestamp: 4f5e0938
Fault Module Name: ffdshow.ax
seems to die after
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:1582: Playback
rate change to 1.000000 ! (03D835C0)
Mercury_22
19th March 2012, 14:35
Hm i tried the demo player with FFDShow tryouts
all i get is
Problem signature:
Problem Event Name: APPCRASH
Application Name: demo_player.exe
Application Version: 0.0.0.0
Application Timestamp: 4f5e0938
Fault Module Name: ffdshow.ax
seems to die after
f:\work\bluray\dslibbluray\trunk\libbluray\src\libbluray\bluray.c:1582: Playback
rate change to 1.000000 ! (03D835C0)
Rebuild your FFD (I'm using alexin's http://www.xvidvideo.ru/component/docman/doc_download/8906-ffdshow-tryouts-project-svn-4394-x86-icl12.html since I'm using FFD just for DSLibBluray I'm too lazy to build my own) and use Win7DSFilterTweaker_5_1 to make FFD default for H264, mpeg2 and vc1 cause like I've said before at my end and cb2000's it's working
dukey
19th March 2012, 14:41
same crash
its a null pointer somewhere
Edit: okay vc1 wasn't disabled, works now :)
dukey
19th March 2012, 16:55
Well done a little debugging ..
I found that the DXVA code in the mixer is quite broken. It looks like this
http://i.imgur.com/6EjVv.jpg
If i simply disable it in the code using ..
m_bDVXAUsed = false;
It works fine
http://i.imgur.com/2CXKv.jpg
Would it be best if we just commented out the DXVA code for now ? As clearly it doesn't work right.
cb2000
20th March 2012, 14:49
Using dxva for deinerlace and color space convert, and d3d for alpha blend and scale now.
it is a bug of dxva using output format to X8R8G8 when input is ARGB. I dont find it because my card only support ARGB input in software dxva device.
Well done a little debugging ..
I found that the DXVA code in the mixer is quite broken. It looks like this
Would it be best if we just commented out the DXVA code for now ? As clearly it doesn't work right.
dukey
20th March 2012, 15:10
If i give you access to my machine can you remotely debug it ? :) I can have a go at debugging it myself but I'm not familiar with how it is supposed to work.
cb2000
20th March 2012, 16:53
try REV 76
If i give you access to my machine can you remotely debug it ? :) I can have a go at debugging it myself but I'm not familiar with how it is supposed to work.
dukey
20th March 2012, 17:04
just compiled the latest version, seems to work fine
dukey
20th March 2012, 17:07
Just a quick note, the colour mapping is wrong on the D3D version. Instead of coming out 0-255 it comes out 16-240
The DXVA version seems fine though.
dukey
22nd March 2012, 23:51
Can anyone build a windows version of libaacs?
http://git.videolan.org/?p=libaacs.git
Should compile with mingw I think.
dukey
24th March 2012, 01:07
cb2000,
we should set the proper frame rate here .. instead of
if (SUCCEEDED(pDevice->GetDisplayMode(0, &mode)))
uiFrameRate = mode.RefreshRate;
MFSetAttributeRatio(pOutputType, MF_MT_FRAME_RATE, uiFrameRate, 1)
The refresh rate might bare no relation to the video frame rate.
I want to set the
IMFMediaType *mt = NULL;
if(GetOutputCurrentType(0,&mt)==S_OK)
{
MFRatio fps;
if (SUCCEEDED(GetFrameRate(mt, &fps)) && (fps.Numerator != 0) && (fps.Denominator != 0))
{
MFFrameRateToAverageTimePerFrame(fps.Numerator,fps.Denominator,(UINT64*)&m_hnsFrameInterval);
}
}
If i set the proper
SetSampleDuration()
My jerky problems in menus go away :p
cb2000
24th March 2012, 02:33
I suggest to find out the max frame rate of all input stream.
but it still has a problem, there maybe a condition that, begin stream with no video in stream 0 and the frame
rate is 0, then it appear after some time that other stream had produce some frame.
cb2000,
we should set the proper frame rate here .. instead of
if (SUCCEEDED(pDevice->GetDisplayMode(0, &mode)))
uiFrameRate = mode.RefreshRate;
MFSetAttributeRatio(pOutputType, MF_MT_FRAME_RATE, uiFrameRate, 1)
The refresh rate might bare no relation to the video frame rate.
I want to set the
IMFMediaType *mt = NULL;
if(GetOutputCurrentType(0,&mt)==S_OK)
{
MFRatio fps;
if (SUCCEEDED(GetFrameRate(mt, &fps)) && (fps.Numerator != 0) && (fps.Denominator != 0))
{
MFFrameRateToAverageTimePerFrame(fps.Numerator,fps.Denominator,(UINT64*)&m_hnsFrameInterval);
}
}
If i set the proper
SetSampleDuration()
My jerky problems in menus go away :p
dukey
24th March 2012, 10:13
In the example code for EVR presenter, if there is no frame rate, it just guesses 30fps. Trouble is when set to the refresh rate, or 75fps here, the menus are unusuably slow. Takes 1-2 seconds to respond to key presses. If i set to the correct 24fps, everything works fine.
How can we find the input frame rate?
cb2000
25th March 2012, 07:28
m_pInput[i]->GetMediaType(ppType)
In the example code for EVR presenter, if there is no frame rate, it just guesses 30fps. Trouble is when set to the refresh rate, or 75fps here, the menus are unusuably slow. Takes 1-2 seconds to respond to key presses. If i set to the correct 24fps, everything works fine.
How can we find the input frame rate?
dukey
25th March 2012, 10:13
yeah I tried that, I just got attribute not found. My desktop refresh rate is set to 75, maybe that is too fast for DXVA or something. I tried capping it at 10010000 / 60; (59.57) fps at the problem went away totally. I'll do some more testing.
dukey
25th March 2012, 23:51
Done some more debugging of this problem. I think the issue is the time stamps are broken.
When I hit buttons on the keyboard for the menu, I can see them coming through the function
OnProcessInput()
at the right time. But the time stamps are 2~ seconds off the stream time of stream 0. So I have a menu delay of 2~ seconds.
Time stamps looks something like this
sample time 734290000 stream 0
sample time 734490000 stream 0
sample time 734690000 stream 0
sample time 734890000 stream 0
sample time 735090000 stream 0
sample time 735290000 stream 0
sample time 735490000 stream 0
sample time 750080834 stream 2 <---- stream 2
sample time 735690000 stream 0
sample time 735890000 stream 0
sample time 736090000 stream 0
sample time 736290000 stream 0
I see you are using
pFilter->GetStreamTime();
In a few places. I am not sure how accurate that is. In the documentation it says
samples with start timestamps of this time or before should be rendered by now
cb2000
26th March 2012, 06:50
when start streaming, no video yet, so no frame rate on stream 0,
after som time, video comes out, mixer will be notified by SetInputType with stream id 0, then should recheck the frame rate.
the frame rate of overlay is always not set in current dslibbluray.
yeah I tried that, I just got attribute not found. My desktop refresh rate is set to 75, maybe that is too fast for DXVA or something. I tried capping it at 10010000 / 60; (59.57) fps at the problem went away totally. I'll do some more testing.
cb2000
26th March 2012, 07:01
Maybe cause by not optimized DXVA/D3D process and no frame drop process in the mixer now, so it cannot achieve so high frame rate.
Done some more debugging of this problem. I think the issue is the time stamps are broken.
When I hit buttons on the keyboard for the menu, I can see them coming through the function
OnProcessInput()
at the right time. But the time stamps are 2~ seconds off the stream time of stream 0. So I have a menu delay of 2~ seconds.
Time stamps looks something like this
sample time 734290000 stream 0
sample time 734490000 stream 0
sample time 734690000 stream 0
sample time 734890000 stream 0
sample time 735090000 stream 0
sample time 735290000 stream 0
sample time 735490000 stream 0
sample time 750080834 stream 2 <---- stream 2
sample time 735690000 stream 0
sample time 735890000 stream 0
sample time 736090000 stream 0
sample time 736290000 stream 0
I see you are using
pFilter->GetStreamTime();
In a few places. I am not sure how accurate that is. In the documentation it says
dukey
26th March 2012, 10:22
I thought originally the problem was high frame rates too. But if i set the desktop refresh rate to 60hz, and the interval time to 60hz, then the problem comes back. I am guessing the issue is in the time stamp generation in the source filter, since the subimages render are rendered immediately, but don't display until the time catches up.
cb2000
26th March 2012, 16:11
the source filter lack quality-control process also. yes it may cause video time always in the past
I thought originally the problem was high frame rates too. But if i set the desktop refresh rate to 60hz, and the interval time to 60hz, then the problem comes back. I am guessing the issue is in the time stamp generation in the source filter, since the subimages render are rendered immediately, but don't display until the time catches up.
dukey
27th March 2012, 00:20
Well, I fixed the issue. I rewrote the EVR scheduler to drop late frames. Problems has gone away, menus work beautifully. Can now get onto more productive testing :p
Mercury_22
3rd April 2012, 08:20
@dukey after your changes (rev98->101) I can't exit demo_player ! It stops responding after "stop" and it's crashing when trying to exit ! With rev 97 everything it's OK with the same BD
Please fix this
dukey
3rd April 2012, 11:22
alright i'll look into it. I haven't made any radical changes. By the way, make sure you rebuild the demo_player, as I changed the control interface.
Mercury_22
3rd April 2012, 11:46
alright i'll look into it. I haven't made any radical changes. By the way, make sure you rebuild the demo_player, as I changed the control interface.
Thanks
I've rebuild everything. Also on a new system (just windows ) I'm getting "ActiveMovie Window: demo_player.exe - System Error ...MSVCR71.dll is missing ..." which I don't know if it was there before, but can you also do a static linking please ? :D
dukey
3rd April 2012, 13:21
I checked all the dlls and none depend on that C run time library. Actually that's quite an old library, visual studio 2010 uses a much newer one. You can use
http://www.dependencywalker.com/
to find out which dll is using that dependency. It might be a codec you are using perhaps.
Since you can compile the code yourself.
http://i.imgur.com/bmxSU.png
Sets the run time lib. The dll ones are dynamically linked.
Mercury_22
3rd April 2012, 14:04
I checked all the dlls and none depend on that C run time library. Actually that's quite an old library, visual studio 2010 uses a much newer one. You can use
http://www.dependencywalker.com/
to find out which dll is using that dependency. It might be a codec you are using perhaps.
Since you can compile the code yourself.
http://i.imgur.com/bmxSU.png
Sets the run time lib. The dll ones are dynamically linked.
Sorry you're right was a decoder problem :o
Also the "stops responding / can't exit" it's not decoder related (happens with FFD & LAV & arcsoft) :)
dukey
3rd April 2012, 14:16
I'll upload a binary you can test. I rebuilt the program and tried making it crash but can't replicate it.
Mercury_22
3rd April 2012, 14:41
I'll upload a binary you can test. I rebuilt the program and tried making it crash but can't replicate it.
You need to wait for the main movie to start then -> stop -> Exit
dukey
3rd April 2012, 15:17
Okay will check it out.
You can try changing
while (true) to while(m_Exit)
and removing
if(m_Exit)
break;
Mercury_22
3rd April 2012, 15:37
Okay will check it out.
You can try changing
while (true) to while(m_Exit)
and removing
if(m_Exit)
break;
Worst won't even start playing
(Just to be sure BDSource.cpp line 356 -> no?) :)
dukey
3rd April 2012, 18:05
does this happen with all your blurays ? Or just this particular frozen planet one.
I see it throws an exception when the frozen planet one starts to play the main title
Mercury_22
3rd April 2012, 19:56
does this happen with all your blurays ? Or just this particular frozen planet one.
I see it throws an exception when the frozen planet one starts to play the main title
No it happens with others too
I think it's better to revert rev 99 for the moment
dukey
3rd April 2012, 23:53
Well I tracked the issue down. Well partly at least. It hangs on bd_close. Normally when it exits it throws a load of exceptions, on that frozen planet title. But if you press some keys, which happens to work in a separate thread, it hangs. Not sure why. The critical sections should protect against any thread insanity.
The frozen planet doesn't work with the latest edition though. I get this error. Hopefully useful for cb2000 ;p
c:\users\ian\desktop\bluray\trunk\libbluray\src\libbluray\register.c:391: bd_psr
_write(): PSR4 (TITLE_NUMBER) 0x0 -> 0x4
c:\users\ian\desktop\bluray\trunk\libbluray\src\libbluray\bluray.c:2108: PSR cha
nge: psr4 = 4 (03D445F0)
destroyXlet: lookup( org.videolan.BDJXletContext@5ed01d74, /7fff002e/4001/TitleC
hangeHandler ) = framework.title.TitleChangeProxy_stub2[framework.title.TitleCha
ngeProxy@4d277e8f]
startXlet: lookup( org.videolan.BDJXletContext@5ed01d74, /7fff002e/4001/TitleCha
ngeHandler ) = framework.title.TitleChangeProxy_stub2[framework.title.TitleChang
eProxy@4d277e8f]
c:\users\ian\desktop\bluray\trunk\libbluray\src\libbluray\bdj\bdj_util.c:19: Cla
ss org/videolan/StreamInfo constructor not found
c:\users\ian\desktop\bluray\trunk\libbluray\src\libbluray\bdj\bdj_util.c:19: Cla
ss org/videolan/StreamInfo constructor not found
c:\users\ian\desktop\bluray\trunk\libbluray\src\libbluray\bdj\bdj_util.c:19: Cla
ss org/videolan/StreamInfo constructor not found
c:\users\ian\desktop\bluray\trunk\libbluray\src\libbluray\bdj\bdj_util.c:19: Cla
ss org/videolan/StreamInfo constructor not found
Thread died with exception c0000005 at pc 51ef1795 addr 0
Edit:
heres the link to vid, or menu files anyway
http://www7.zippyshare.com/v/82423600/file.html
cb2000
4th April 2012, 02:39
use same reversion of libbluray.jar and bluray.dll
Mercury_22
4th April 2012, 07:21
Well I tracked the issue down. Well partly at least. It hangs on bd_close. Normally when it exits it throws a load of exceptions, on that frozen planet title. But if you press some keys, which happens to work in a separate thread, it hangs. Not sure why. The critical sections should protect against any thread insanity.
The frozen planet doesn't work with the latest edition though. I get this error. Hopefully useful for cb2000 ;p
Edit:
heres the link to vid, or menu files anyway
http://www7.zippyshare.com/v/82423600/file.html
F.P. works with the latest edition here ! except the "stops responding after stop and exit in the main movie" introduced in rev 99 of course :)
dukey
4th April 2012, 10:15
use same reversion of libbluray.jar and bluray.dll
yeah that worked :)
cb2000 any idea why calling bd_user_input on a separate thread would cause
bd_close to hang ?
It doesn't do it on all titles, just some I think.
dukey
4th April 2012, 22:29
Okay I found out exactly what's happening. I assumed libbluray was thread safe since it uses mutexes to protects its internal state, but it's not.
When
void bdj_process_event(BDJAVA *bdjava, unsigned ev, unsigned param)
is called. It calls
(*bdjava->jvm)->AttachCurrentThread(bdjava->jvm, (void**)&env, NULL);
If you are just using a single thread, this is a no-op according to the documentation. But if the current thread has changed it attaches the new one. This is fine, until it exits.
The VM waits until the main thread is the only user thread before it actually unloads. User threads include both Java threads and attached native threads.
So we must use DetachCurrentThread somewhere to fix this. If we can fix this I can probably finish the rest of the control interface :p
Mercury_22
6th April 2012, 07:49
@dukey after your latest changes building it's failing2>BDSource.obj : error LNK2019: unresolved external symbol "void __cdecl PTSToHMSF(__int64,struct tagDVD_HMSF_TIMECODE *)" (?PTSToHMSF@@YAX_JPAUtagDVD_HMSF_TIMECODE@@@Z) referenced in function "public: virtual long __stdcall CBDSource::GetTotalTitleTime(struct tagDVD_HMSF_TIMECODE *)" (?GetTotalTitleTime@CBDSource@@UAGJPAUtagDVD_HMSF_TIMECODE@@@Z)
2>BDSource.obj : error LNK2019: unresolved external symbol "__int64 __cdecl HMSFToPTS(struct tagDVD_HMSF_TIMECODE *)" (?HMSFToPTS@@YA_JPAUtagDVD_HMSF_TIMECODE@@@Z) referenced in function "public: virtual long __stdcall CBDSource::PlayAtTime(struct tagDVD_HMSF_TIMECODE *)" (?PlayAtTime@CBDSource@@UAGJPAUtagDVD_HMSF_TIMECODE@@@Z)
2>C:\DSLibBluray\Win32\Debug\dslibbluray.ax : fatal error LNK1120: 2 unresolved externals
2>
2>Build FAILED.
2>
2>Time Elapsed 00:00:00.88
========== Build: 1 succeeded, 1 failed, 4 up-to-date, 0 skipped ==========
dukey
6th April 2012, 09:56
try now, i added the files, just forgot to submit changes to project files
Mercury_22
6th April 2012, 10:08
try now, i added the files, just forgot to submit changes to project files
It's working now :)
dukey
9th April 2012, 12:29
Mercury_22,
you got any .m2ts files with enhanced ac3 audio ? I am writing stream parsers at the moment. Finished ac3, but need some test files for e-ac3
nevcairiel
9th April 2012, 12:42
E-AC3 on BD doesn't exist in the real world, its only used on the dolby demo disc.
dukey
9th April 2012, 12:51
Okay, thanks for the heads up. I'm only parsing the stream headers so its only a few lines of code.
Mercury_22
9th April 2012, 13:13
Mercury_22,
you got any .m2ts files with enhanced ac3 audio ? I am writing stream parsers at the moment. Finished ac3, but need some test files for e-ac3
Here it is (http://www14.zippyshare.com/v/64308750/file.html) :)
@ Nev if it's not too much to ask can you help make "dslibbluray" properly decode TrueHD with LAVAudio ?
TrueHD is special, the Blu-ray source filter needs to remove the embedded AC3 or it won't work properly.
With LAV I'm getting [truehd @ 02ad42e0] Invalid nonrestart_substr.
[truehd @ 02ad42e0] mlpparse: Parity check failed.
[truehd @ 02ad42e0] Lossless check failed - expected 85, calculated 5f.
[truehd @ 02ad42e0] mlpparse: Parity check failed.
[truehd @ 02ad42e0] Lossless check failed - expected 19, calculated b7.
...
nevcairiel
9th April 2012, 13:21
@ Nev if it's not too much to ask can you help make "dslibbluray" properly decode TrueHD with LAVAudio ?
No thanks, my time is already occupied.
dukey
9th April 2012, 13:29
If you point me in the right direction can probably write the code
nevcairiel
9th April 2012, 13:38
Its actually pretty simple. You need to check the extended stream id in the PES Header.
http://dvd.sourceforge.net/dvdinfo/pes-hdr.html
In PES Extension 2 (at the bottom of the page), the bits marked "Reserved" are the extended stream id.
If the main stream_type == 0x83 (TrueHD) and extended_stream_id == 0x76, then that PES packet is for the AC3 substream, and needs to be skipped.
You can see the parsing in ffmpeg here:
http://git.1f0.de/gitweb?p=ffmpeg.git;a=blob;f=libavformat/mpegts.c;h=f8c96aeff950b5938dbca3d3f5cf2f8b43160b39;hb=HEAD#l913
dukey
9th April 2012, 13:42
Thanks, that should help a lot :)
nevcairiel
9th April 2012, 13:46
While i'm here, i have another question about the need of the special EVR Mixer.
Is all its required for the need to mix the RGB Overlays on top of the video image?
Or is there more?
If the RGB overlay is all, i could easily make for example LAV Video do that (without DXVA, at least), giving us way more flexibility in how the graph is setup.
If i could get the EVR requirement removed, it would be quite a bit more interesting for me, i might even start helping the development if you let me. :p I don't want to start my own BD project, but i want BDs to work. :p
Mercury_22
9th April 2012, 14:04
That will be great :) and CB2000 knows about the EVR
@dukey Did you manage to do something about the LPCM with LAVAudio ?
dukey
9th April 2012, 15:35
While i'm here, i have another question about the need of the special EVR Mixer.
Is all its required for the need to mix the RGB Overlays on top of the video image?
Or is there more?
If the RGB overlay is all, i could easily make for example LAV Video do that (without DXVA, at least), giving us way more flexibility in how the graph is setup.
If i could get the EVR requirement removed, it would be quite a bit more interesting for me, i might even start helping the development if you let me. :p I don't want to start my own BD project, but i want BDs to work. :p
I think the problem was sometimes the primary video stream stops, and only the substreams render. So with the default evr mixer or vrm9 nothing will render, hence the need for the custom mixer. The custom mixer actually works fairly transparently. You just need to create an instance of it and it pretty much works. I had to make a few changes to get it to work with my custom presenter, ie to make it thread safe with regards to direct3d. I've done a fair bit of work on the mixer, so anyone that uses a custom presenter only minimal changes would be required.
nevcairiel
9th April 2012, 15:38
I don't care if/how the custom mixer works, i just want to be able to use madVR as well. :p
Doesn't sound like it would be impossible to do the same in a decoder or post-processor that just accepts the substream.
Technically, i could write a very simple dummy filter that just accepts the RGB images and uses madVRs OSD functionality to render them. Doesn't even have to be in LAV. :d
dukey
9th April 2012, 15:43
It should be perfectly possible to write your own mixer for it. It's not locked to a custom EVR mixer, it just uses it if its in the graph. You can connect VRM9 to pin0 and it'll render video.
nevcairiel
9th April 2012, 15:45
I was only wondering if the EVR mixer serves another purpose as well, but as i gathered, thats not the case currently.
wanezhiling
10th April 2012, 06:36
Pretty nice, a good step for non-commercial BD navigator!:thanks:
I'll test later.
cb2000
10th April 2012, 14:00
as I mentioned before, the mixer mix 6 stream max, background(raw image or MPEG 2/4 I frame), main video, main subtitle, pip video, pip subtitle, interactive overlay(HDMV IG or BDJ), now in dslibbluray just implement main video, main subtitle and interactive overlay. To mix them, three solution, 1. custom mixer, 2. intergrate all video decoder inside soure filter, 3.the decoder can decode all streams and mix it. Current using solution 1.
cb2000
10th April 2012, 14:06
for solution 1 and 3 the mixer/decoder should accept souce filter to adjust position and scale of either stream, especialy the pip video and subtitle. Although it is not implement now.
cb2000
10th April 2012, 14:15
wishes more people can help or join to improve it, because I just start to work in a new company and can not work on it full time like before...
nevcairiel
10th April 2012, 14:51
Like i said, i would be happy to help with the little time i have. Once i got it working the way i like it, anyway. :)
cb2000
10th April 2012, 15:09
What shall I do for you?
Like i said, i would be happy to help with the little time i have. Once i got it working the way i like it, anyway. :)
wanezhiling
10th April 2012, 15:16
:)Wow it's worth waiting when another so talented developer joins.
nevcairiel
10th April 2012, 15:22
What shall I do for you?
The important part is to figure out how to build everything properly. I can compile the C++ parts just fine, but how do you build the BD-J parts, and where do the three extra DLLs come from that you include in the zip? :)
I'm a Java developer at my day job, so working on the BD-J parts would seem like a logical choice, I can do enough C++ on my other projects. ;)
Of course another aspect would be trying to fix issues that only occur with my decoders, once everything is stable enough for those aspects.
Anyway, my SF name is the same as here.
If more people join, maybe some place should be setup where efforts can be coordinated, so that nothing is done twice? :d
dukey
10th April 2012, 15:32
I think they are java related dlls, but really I am not sure.
Edit:
I actually know java too. I did it for about 3 years, but it's been a while :p
cb2000
10th April 2012, 16:52
There is a ant build.xml in bdjpath, I use eclipse to compile it.
three extra DLLs are compiled from phoneme(with my patch), a J2ME VM from http://phoneme.java.net/, should I upload it? It is so big about 10000 files and 100+M.
The important part is to figure out how to build everything properly. I can compile the C++ parts just fine, but how do you build the BD-J parts, and where do the three extra DLLs come from that you include in the zip? :)
I'm a Java developer at my day job, so working on the BD-J parts would seem like a logical choice, I can do enough C++ on my other projects. ;)
Of course another aspect would be trying to fix issues that only occur with my decoders, once everything is stable enough for those aspects.
nevcairiel
10th April 2012, 16:59
I see. Just wanted to know where its from.
I'll try to compile the BDJ parts later, need to create a new Eclipse setup.
cb2000
10th April 2012, 17:07
file needed to build java code can be found in test-120.zip. and should config the java compiler to ouput 1.4 class file.
I see. Just wanted to know where its from.
I'll try to compile the BDJ parts later, need to create a new Eclipse setup.
dukey
10th April 2012, 17:25
Bill,
did you see this post ?
http://forum.doom9.org/showpost.php?p=1569205&postcount=116
About fixing DTS
nevcairiel
10th April 2012, 18:56
Bill,
did you see this post ?
http://forum.doom9.org/showpost.php?p=1569205&postcount=116
About fixing DTS
Its about TrueHD, not DTS. :)
I can probably implement that, as long as noone complains that the AC3 substream is then completely dropped.
I just need to find a disc with TrueHD. ;)
dukey
10th April 2012, 19:18
pm Mercury_22. He has quite a collection which I'm sure he could upload a few samples for :)
starla
10th April 2012, 19:24
If more people join, maybe some place should be setup where efforts can be coordinated, so that nothing is done twice? :d
There already is duplicate effort done - to bad that the forces havent been joined earlier. Only the BD-J is missing from the http://forum.team-mediaportal.com/threads/native-blu-ray-support.102375/
I personally would have helped with the venture if it had happened earlier, but now there isn't that much for the personal gain - as only the BD-J side is missing and that is something I cannot help as I'm a complete Java noob.
--
tourettes
dukey
10th April 2012, 19:32
It happens. I only discovered your project existed a few days ago :p Can it work as a standalone filter, or is just for media portal ?
nevcairiel
10th April 2012, 19:42
The problem is that many people just start working on things instead of inquiring if stuff already exists.
I have known about MPs version of a BD filter for quite a while, but sadly some decisions were made in that project that make it harder to run it outside of MediaPortal (quite some changes to the player are required for it to work at this time), and i sadly noticed it too late to be still able to influence anyone.
I cannot say which of the two has a better chance for the future. It would of course be beneficial to join forces and try to create one universal solution, but of course that means there is some extra effort on both sides.
The BD-J changes for one can (and should) be contributed back to libbluray itself, so that everyone can benefit from them.
Mercury_22
10th April 2012, 21:11
@ Nev thanks for fixing pcm_mpeg decoding ! and I'm thinking that this is a good moment if you can spare some time to add some simple tray icons for LAVFilters so we can be sure that LAV it's used when testing DSLibBluray
nevcairiel
10th April 2012, 21:15
@ Nev thanks for fixing pcm_mpeg decoding ! and I'm thinking that this is a good moment if you spare some time to add some simple tray icons for LAVFilters so we can be sure that LAV it's used when testing DSLibBluray
Use GraphStudio and connect to the graph to check. :p
Also, decoding wasnt broken, it was just outputting those stupid warnings for no good reason.
Mercury_22
10th April 2012, 21:25
Use GraphStudio and connect to the graph to check. :p
Also, decoding wasnt broken, it was just outputting those stupid warnings for no good reason.
Good to know about PCM as for GraphStudio ...:D
EDIT maybe it's the same case with mpeg 2 (stupid warnings) ?
dukey
10th April 2012, 21:54
what warnings do you get with mpeg2?
Mercury_22
10th April 2012, 22:33
what warnings do you get with mpeg2?
[mpeg2video @ 037f13a0] hardware accelerator failed to decode picture
But it's playing
nevcairiel
11th April 2012, 06:55
[mpeg2video @ 037f13a0] hardware accelerator failed to decode picture
But it's playing
This should usually be limited to the start of the video for one or two frames, if it keeps happening on a regular basis something is wrong.
Mercury_22
11th April 2012, 08:34
This should usually be limited to the start of the video for one or two frames, if it keeps happening on a regular basis something is wrong.
You're right it happens only at the "start of the video" so it's just another "stupid warning" ?:)
Also DSLibBluray has big problems with both LAV's VC-1 but that's something for another time if you'll have the time to take a look after TrueHD :p
dukey
11th April 2012, 15:53
What happens with VC1 ? I don't have any VC1 stuff to test with.
nevcairiel
11th April 2012, 16:10
Without looking, my guess is that VC-1 isnt properly assembled back into frames, which is required for it.
Mercury_22
11th April 2012, 17:55
What happens with VC1 ? I don't have any VC1 stuff to test with.
It's even crashing DSLibBluray with some BD but since it's working with FFD let's wait for the TruHD fix first :)
P.S. e.g.[vc1 @ 03e3bcc0] Chroma scaling is not supported, expect wrong picture
[vc1 @ 03e3bcc0] warning: first frame is no keyframe
or [vc1 @ 0263e320] Interlaced frames/fields support is incomplete or [vc1 @ 03ee5c00] Pan-scan not implemented. Update your FFmpeg version to the new
est one from Git. If the problem still occurs, it means that your file has a fea
ture which has not been implemented.
[vc1 @ 03ee5c00] get_buffer() failed (-1 0 00000000)with LAV's wmv9 DMO
nevcairiel
11th April 2012, 18:51
Those errors wouldn't happen with the DMO, its ffmpeg warnings. :p
But its most likely like i expected, its not sending full frames like you have to for VC-1
Mercury_22
11th April 2012, 19:04
Those errors wouldn't happen with the DMO, its ffmpeg warnings. :p
But its most likely like i expected, its not sending full frames like you have to for VC-1
Yeah I thought so too but I have DMO selected in LAVVideo :confused:
Mercury_22
12th April 2012, 19:16
@Nev after latest changes in LAV I'm getting a c:\dslibbluray\libbluray\src\libbluray\bluray.c:2108: PSR change: psr8 = 296776
(06B84620)
[pcm_bluray @ 03d83b00] PCM packet too small
EDIT: something weird it's happening when using LAV decoders : if I use LAVVideo = CB I get the above message about the PCM, but if I use LAVVideo = SW then there's no PCM message :confused:
dukey
15th April 2012, 18:51
cb2000,
why does the filter create a folder called
dvb.persistent.root
in whatever folder it is run from ?
cb2000
16th April 2012, 02:48
for BD-JAVA application to store application specified information, such as last playback position for resume while reopen.
cb2000,
why does the filter create a folder called
dvb.persistent.root
in whatever folder it is run from ?
dukey
16th April 2012, 10:04
I see, probably should be stored in x:\users\username\appdata somewhere
dukey
18th April 2012, 14:03
cb2000, I get this crashing rendering the 5th element bluray menu
Dunno if this is any help at all.
http://i.imgur.com/kZr7a.png
Looks like not all the memory for BOG_DATA is valid.
cb2000
18th April 2012, 16:10
can you send me the disc or tell me where I can get it?
and how can I reproduce it?
cb2000, I get this crashing rendering the 5th element bluray menu
Dunno if this is any help at all.
http://i.imgur.com/kZr7a.png
Looks like not all the memory for BOG_DATA is valid.
dukey
18th April 2012, 17:47
Fixed it, I think.
for (ii = 0; &gc->bog_data[ii] != bog_data; ii++) {
if (_areas_overlap(bog_data, &bog_data[ii]))
skip = 1;
/* FIXME: clean non-overlapping area */
}
to
for (ii = 0; &gc->bog_data[ii] != bog_data; ii++) {
if (_areas_overlap(bog_data, &gc->bog_data[ii]))
skip = 1;
/* FIXME: clean non-overlapping area */
}
was reading past the array boundary. Problem was only showing up in my program.
dukey
19th April 2012, 20:17
Got another crash cb2000. Well technically not a crash, I think it's a thread deadlock.
http://i.imgur.com/wV8kB.png
Not limited to any specific title. But if you just hold down the right key on some of the menu titles, eventually it locks up. Scene selection seems to be a favourite to break :p
Mercury_22,
give the version on sourceforge a build + test. Hopefully TrueHD should be fixed now. Will try and look at this VC1 issue.
Mercury_22
5th May 2012, 16:12
Mercury_22,
give the version on sourceforge a build + test. Hopefully TrueHD should be fixed now. Will try and look at this VC1 issue.
Yes TrueHD it's working with LAVAudio too now !
A big :thanks: for this one :)
Mercury_22
5th May 2012, 18:55
Excellent :)
I spoke too soon :( now TrueHD it's broken with FFD
Maybe Nev can help :rolleyes::p
perhaps ffdshow for whatever reason expects the AC3 substream inside of TrueHD .. I really don't know.
nevcairiel
5th May 2012, 20:12
perhaps ffdshow for whatever reason expects the AC3 substream inside of TrueHD .. I really don't know.
Then it would be broken with LAV Splitter as well.
Mercury_22
6th May 2012, 20:51
Was just a bad version of FFD now everything it's working OK with last FFD version
dukey
17th May 2012, 01:26
Mercury_22,
Run this disc -> NATIONAL_GEOGRAPHIC_RELENTLESS_ENEMIES
Then compile the latest code and run it again :p
dukey
18th May 2012, 01:21
http://www.mediafire.com/?qi9bdzzyfu35dr2
Latest build if anyone can test it.
Snowknight26
18th May 2012, 04:17
Works well with the Animusic Blu-ray. The only issue, surprisingly, were the cmd files (the unregister ones had invalid syntax). Here's what I'd recommend you replace them with:
register32bit.bat
%windir%\System32\regsvr32.exe dslibbluray.ax
%windir%\System32\regsvr32.exe EVRMixer.dll
register64bit.bat
%windir%\SysWOW64\regsvr32.exe dslibbluray.ax
%windir%\SysWOW64\regsvr32.exe EVRMixer.dll
uregister32bit.bat
%windir%\System32\regsvr32.exe /u dslibbluray.ax
%windir%\System32\regsvr32.exe /u EVRMixer.dll
uregister64bit.bat
%windir%\SysWOW64\regsvr32.exe /u dslibbluray.ax
%windir%\SysWOW64\regsvr32.exe /u EVRMixer.dll
Ironically, even on a 64-bit system, using the 32-bit regsvr32.exe seems to work. Maybe you can remove the 64-bit register/unregister files.
dukey
18th May 2012, 10:05
Oh the bat files were me trying to be helpful :)
I'll amend with your suggestion
cengizhan
18th May 2012, 19:15
Snowknight26,
under windows 64 bit:
syswow64 is for 32 bit files,
system32 is for 64 bit files.
so your cmd files' names should be swapped.
nevcairiel
18th May 2012, 19:29
It doesn't matter anyway, the 64-bit regsvr32 can register both 32 and 64 bit dlls. Just don't specify a path to it at all.
Mercury_22
18th May 2012, 19:34
Or you can use my "tweak" Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.AX]
@="axfile"
[HKEY_CLASSES_ROOT\axfile\shell\Register]
@="Register"
[HKEY_CLASSES_ROOT\axfile\shell\Register\command]
@="regsvr32.exe \"%1\""
[HKEY_CLASSES_ROOT\axfile\shell\UNRegister]
@="UNRegister"
[HKEY_CLASSES_ROOT\axfile\shell\UNRegister\command]
@="regsvr32.exe /u \"%1\""
[HKEY_CLASSES_ROOT\dllfile\shell\Register]
@="Register"
[HKEY_CLASSES_ROOT\dllfile\shell\Register\command]
@="regsvr32.exe \"%1\""
[HKEY_CLASSES_ROOT\dllfile\shell\UNRegister]
@="UNRegister"
[HKEY_CLASSES_ROOT\dllfile\shell\UNRegister\command]
@="regsvr32.exe /u \"%1\""
[HKEY_CLASSES_ROOT\.OCX]
@="ocxfile"
[HKEY_CLASSES_ROOT\ocxfile\shell\Register]
@="Register"
[HKEY_CLASSES_ROOT\ocxfile\shell\Register\command]
@="regsvr32.exe \"%1\""
[HKEY_CLASSES_ROOT\ocxfile\shell\UNRegister]
@="UNRegister"
[HKEY_CLASSES_ROOT\ocxfile\shell\UNRegister\command]
@="regsvr32.exe /u \"%1\""
to add a "Register" and a "Unregister" option / command to your right click menu for .ax, .dll and .ocx files :p
Snowknight26
18th May 2012, 21:08
Snowknight26,
under windows 64 bit:
syswow64 is for 32 bit files,
system32 is for 64 bit files.
so your cmd files' names should be swapped.
Oops, small oversight. But yes, as nevcairiel and I recommended, there should be only one pair of bats, in which case you can simply leave off the path.
Blight
5th June 2012, 14:44
I'm trying to get the filter working in GraphStudio.
What's the difference between the 'Audio' and 'Sound' pins?
What are the 'PG' and 'IG' pins? And which filters should they connect to?
My goal is to check if I can integrate support for the filter into Zoom Player.
An 'integrator guide' is required for this project to gain more support...
dukey
5th June 2012, 18:09
Audio is .. audio. The sound pin is for the sound effects for menu buttons etc. Both can be playing at the same time. PG and IG are program graphics and interactive graphics. Again this is for menus overlays, buttons etc.
A guide is not really needed. Just look at the example code in the demo_player app. There is still some work to do to complete the control interface. But basically it works.
dukey
6th June 2012, 15:09
Dunno if this helps blight
http://i.imgur.com/V8gTO.png
In the future there might be more outputs to EVR, because some of the needed pins are missing I believe.
dansrfe
14th June 2012, 20:30
Support for madVR yet?
dukey
15th June 2012, 00:50
You can use it, but you won't get any menu buttons etc because it only supports 1 pin. You could write a custom mixer for it, but my gut feeling is it would be too slow, even on fast hardware.
nevcairiel
15th June 2012, 07:12
You could just use software mixing, blend the menu in software onto the image. That shouldn't take all that much performance.
As an alternative, madVR already supports custom OSD overlays, would just have to write an adapter to send the menu data to its OSD interface instead of on separate pins.
dukey
15th June 2012, 12:38
It's not just mixing, the streams can be different sizes. So you'd have to resize in software too.
fairchild
19th June 2012, 00:56
Thanks to the devs for all the work on this, but can someone educate me on if this is to the point where it can be added as a filter in MPC-HC then used to open Blu-Ray discs and have fully functional menus?
Or is the only option still to use something like PowerDVD or WinDVD?
dukey
19th June 2012, 20:44
Thanks to the devs for all the work on this, but can someone educate me on if this is to the point where it can be added as a filter in MPC-HC then used to open Blu-Ray discs and have fully functional menus?
Yeah it plays most discs. It only works with unencrypted content at the moment, so you'll either need to compile libaacs and get that to work. Or use something like anydvd-hd.
It needs to be paired with a decoder that'll handle mpeg2/4/ and VC1. So the internal mpc-hc decoder should do the trick.
For renderer support it'll work out the box with EVR, but to get the custom presenter to work will require a few small changes. Ie to make it thread safe for direct 3d. And maybe check a few states.
The interface closely resembles that of the DVD navigator. It might change somewhat in the future. But for basic functionality all you need to do is pass key presses to it. The rest could be ignored.
Wile-E-Coyote
21st June 2012, 03:00
Hey guys. Thank you all for working on this.
I'm having a problem. I downloaded the latest build and followed the readme.txt instructions. The menus and movies in the demo_plyer play but are very choppy. I don't have this kind of problem when I read a blu-ray with any commercial player or even mpc-hc.
dukey
21st June 2012, 16:27
can u upload a sample of the video ? The menu files should suffice
Wile-E-Coyote
22nd June 2012, 06:02
can u upload a sample of the video ? The menu files should suffice
I've tried with two blu-rays so far. One shows the menu when inserted, the other starts the movie directly. And both have choppy playback. You sure the menu would be enough?
Mercury_22
22nd June 2012, 10:43
I've tried with two blu-rays so far. One shows the menu when inserted, the other starts the movie directly. And both have choppy playback. You sure the menu would be enough?
What decoder are you using ? What BD ? What OS, video, drivers.....
Also try this http://www63.zippyshare.com/v/27242529/file.html
Are they choppy using the same decoder in MPC too ?
Wile-E-Coyote
22nd June 2012, 11:25
What decoder are you using ? What BD ? What OS, video, drivers.....
Also try this http://www63.zippyshare.com/v/27242529/file.html
I'm following the readme's intructions, so the decoder, both audio and video is ffdshow (tryouts rev 4422).
My OS is Win 7 x64, running a Geforce GTX 570 with drivers 301.42
The latest directX runtime is installed.
So far I've tried the BDs of Kingdom of Heaven DC and The Last Samurai.
Are they choppy using the same decoder in MPC too ?
Like I said above no. Playback in MPC-HC is smooth, no matter what decoder I use. In fact I would be using it if it could play blu-ray menus.
I downloaded the file you linked me and replaced the original with it but it had no effect.
dukey
22nd June 2012, 12:46
Upload a sample so we can test it. Menu files + small cutting off the main title should do.
Wile-E-Coyote
22nd June 2012, 14:36
Sorry I have no idea how to rip the menus off a blu-ray. I'm gonna need time to find out how to do it.
On a side-note, is the navigation button in the player supposed to have any effect? When I click it nothing happens.
dukey
22nd June 2012, 16:16
There is functionality inside the filter to navigate and skip chapters. But it hasn't been added to the example program yet.
Mercury_22
22nd June 2012, 16:50
Sorry I have no idea how to rip the menus off a blu-ray. I'm gonna need time to find out how to do it.
On a side-note, is the navigation button in the player supposed to have any effect? When I click it nothing happens.
To navigate use F8 "for main menu" beside the arrows :)and for the menus just archive all the BD folders BUT inside STREAM folder leave just the m2ts files needed for the menu
EDIT AFAIK both BDs are VC-1 no ? Try changing the decoder for VC-1 in ffd or try to use LAV But VC-1 it's still not quite finish
DanB
16th July 2012, 18:09
This looks very promising ! I tested the 120 Build.
Would it be possible to use dslibbluray in the near future with WMP12 ?
I guess there is still the need of an DS Source Filter, and that one is not available today. Who would be able to write this filter ?
And how much work would this be for someone that now this stuff ?
whurlston
13th August 2012, 22:31
Video corruption when using LAV Video Decoder with Sucker Punch (US) but works fine on other H.264 discs.
http://www.htpcplugins.com/BDVideoCorruption.jpg
dukey
13th August 2012, 23:01
I don't get that corruption
you using dxva ?
whurlston
13th August 2012, 23:20
No (ATI card).
But thanks to your confirmation that it worked for you I played around with the settings some more and was able to get it to display properly if I set YUY2 as the only enabled output format in the LAV decoder settings.
Edit: NV12 was the offending format. With that disabled, it plays perfectly.
Absolutely awesome job on this guys!
dukey
14th August 2012, 10:25
It could be a problem with the custom mixer. Could you find out exactly what output settings you use that cause the problem ?
nevcairiel
14th August 2012, 11:58
Looks like a problem with the pitch negotiation, which i suppose would be the mixers job.
This is why i don't think this approach is the right one, implementing a custom mixer just to blend the menu graphics onto the video is way too complicated and limiting design.
I should really find the time to go about this with a more flexible approach and a clean design. Considering this project is rather dead itself, guess i don't have to work too fast. :p
dukey
14th August 2012, 12:43
Well without some sort of mixer you can't use this with any of the standard renderers. If you want to dream up a better solution feel free. It's not just menu graphics, there are background and subtitle images as well that need mixing. At least this solution works with DXVA.
Fixing VC1 would be real nice with LAV. I tried extensively but just failed to get it working.
nevcairiel
14th August 2012, 12:58
Using a custom mixer isn't exactly a standard renderer anymore, either. :)
I'll have to test my theories, we'll see if they work as expected.
dukey
14th August 2012, 13:18
Could you try and fix VC1 ? I tried sending complete frames, it was either absurdly slow or just didn't work at all.
nevcairiel
14th August 2012, 13:54
I tried to look into the code a while ago, but its already as unstructured and ugly as the old MPC-HC or ffdshow code, so i refrained from doing any work on it and decided that on the long run i'll be creating my own (also because i consider it a fun challenge).
PS:
No offense meant to all the effort that went into it, but its just not something i want to work on, because in the long run it just feels like pain.
dukey
14th August 2012, 17:35
The code is not bad at all. The directshow part isn't exactly a huge. Seems a shame to rewrite the wheel.
whurlston
14th August 2012, 20:53
Could you find out exactly what output settings you use that cause the problem ?
Enabling NV12 output caused the problem.
dukey
14th August 2012, 22:20
dxva enabled ?
whurlston
15th August 2012, 00:26
Found the problem. I had an older version of LAV on my test machine. Updated it and I am able to play using dxva (native). I get a green screen when switching between m2ts files but once the video starts, it plays perfectly. DXVA2 (copy-back) stutters but DXVA2 (native) works.
Interestingly, dslibbluray + LAV Video uses 10% of the CPU power that LAV Splitter + LAV Video does:
dslibbluray + LAV Video = 2-3% CPU
LAV Splitter + LAV Video = 25-30% CPU
Other tests:
Arcsoft Video Decoder = stuttering video
Cyberlink Video Decoder (PDVD11) w/ HAM = stuttering video
Cyberlink Video Decoder (PDVD11) w/ DXVA = perfect playback with 6% CPU
Microsoft DTV-DVD Video Decoder = perfect playback with 2% CPU.
dukey
15th August 2012, 01:27
Yeah copy back it pretty ghetto on ATI. The Microsoft DTV-DVD Video Decoder also works really nicely, shame it doesn't support VC1 as well. That would save a lot of headaches.
whurlston
27th August 2012, 02:22
Any chance of getting the licensed changed to LGPL (like the underlying libbluray) instead of GPL? Also, the license is completely missing from the test builds, it's only in the source code.
dukey
27th August 2012, 22:34
why do you want the license changed
whurlston
28th August 2012, 02:01
According to the FSF (who owns the GPL License text), any software that directly loads a GPL library (which would need to be done to use dslibbluray) needs to GPL the main app. Other interpretations are more lenient but I (and a lot of others) tend to stay clear of GPL libraries just to avoid issues. LGPL would still protect open source intent of the library itself and allow software like J River Media Center (paid) and NextPVR (free but closed source) to be able to use dslibbluray without the headache of possible legal headaches.
dukey
14th September 2012, 00:53
If you look at GPL it really shouldn't be an issue. But I am not worried about it at this stage. Trying to backport all the work that was done in dslibbluray into libbluray. Also making libbluray .. visual studio 2010 friendly. The problem was libbluray was written in c99 which visual studio 2010 doesn't support (cause it sucks in that regard). So the library was modified a fair bit to make it work in visual studio and then work continued on it. Quite a lot of work. Things like animated buttons work in dslibbluray which don't work in libbluray, as well as all the java menu stuff.
That work is almost done. So there will be no more separate branch of libbluray, as I can't maintain a separate branch.
nevcairiel
14th September 2012, 08:01
And i was wondering who was sending patches to libbluray, because cb2000 seems to still be MIA.
At least one part i don't have to bother doing, have been postponing it anyway, so thanks. Upstreaming any useful changes is always the best course of action. :)
dukey
14th September 2012, 10:53
Actually it's hpi submitting those patches too. Hpi has also done some super clever stuff to make it compile in c++. Autocasting of void pointers. The only thing stopping it compiling in vs2010 at the moment is structs with default values or whatever they are called.
nevcairiel
14th September 2012, 11:00
Designated initializers, yes. I have kept a big patch myself that just changes all related things for VS2010 compiling, only the initializers left, but there is no smart solution for those, either you use them, or you don't (or you use a pre-processors to get rid of them)
dukey
26th January 2013, 15:16
http://i.imgur.com/o3rkU3D.jpg
I'm sure someone could write a custom mixer for other renders should they feel like it
dukey
15th February 2013, 14:22
https://sourceforge.net/projects/dslibbluray/files/test-175.zip/download
Many fixes
dukey
6th March 2013, 01:52
Test 185
http://sourceforge.net/projects/dslibbluray/files/test-185.zip/download
Knocked about 200meg off the mem usage. A bunch of other fixes.
Some working BD-J titles
http://i.imgur.com/MCK1tG3.jpg
The framework for the java code for BD-J is basically done. But there are a lot of unimplemented functions. So depending on what parts of the framework titles use, will depend on what works. Libbluray needs a bunch of java guys to fill in the stubbed functions.
apgood
6th March 2013, 02:08
hi dukey
Can this filter be used with any player (e.g. mpc-hc) and render (e.g. madvr) and splitter (e.g. lab splitter)? If not which ones need to be used and why?
Cheers alex
Sent from my HTC One X using Tapatalk 2
dukey
6th March 2013, 02:26
Splitter: Not needed because the filter does the splitting itself
Renderer: It'll connect to anything, but to have working overlay graphics requires a custom mixer. There is a custom evr mixer inside the project, which allows dxva acceleration. It also allows EVR to accept formats it does not normally, ie rgba or AYUV even if the hardware can't natively accelerate that format with DXVA. Someone could write a custom mixer to support all renderers, ie for madvr support etc, but it probably wouldn't work with DXVA.
In order for the filter to be used inside mpc-hc the dev guys would need to add support for it. Maybe 100 lines of code or less and you could have basic playback support. The demo_player app has example source code of how to use this filter.
apgood
6th March 2013, 02:44
Thanks for the quick reply. Might play around with it when I get the chance.
Sent from my HTC One X using Tapatalk 2
dukey
23rd March 2013, 02:05
Test-191.zip (https://sourceforge.net/projects/dslibbluray/files/test-191.zip/download)
Hopefully fixed the time stamps on VC-1 files. Apparently vc-1 needs DTS as well as PTS flags. Who would have guessed ? :p
A whole bunch more bd-j titles should work. There is still an annoying bug in libbluray which means bd-j won't close. It's waiting for a thread to or some resource to die. If any kind java developers have some time, libbluray could really do with some java help :)
starla
25th March 2013, 14:36
There is still an annoying bug in libbluray which means bd-j won't close. It's waiting for a thread to or some resource to die. If any kind java developers have some time, libbluray could really do with some java help :)
Actually this looks more an issue with the JAVA itself, at least if you Google around for the JVM / JNI and destroying the VM.
dukey
25th March 2013, 14:55
It's an issue with libbluray.jar which of course is the java code :)
starla
27th March 2013, 11:19
It's an issue with libbluray.jar which of course is the java code :)
Could be related http://bugs.sun.com/view_bug.do?bug_id=7097333
It is the AWT thread that keeps VM alive (all other threads are closed down nicely with few libbluray java code changes - there are some resources not properly released etc.)
dukey
30th March 2013, 11:00
Thankfully the issue seems to be fixed now after the last update by hpi
dukey
1st April 2013, 19:45
Test 200
http://sourceforge.net/projects/dslibbluray/files/test-200.zip/download
Closing on bd-j titles now works correctly, instead of hanging indefinitely on exit. Quite a few more bd-j titles work.
Some bluray samples if people want to test. Yes just samples, theres only a few seconds of the main feature :)
http://www.mediafire.com/download.php?otlrwzqknk1ra41
http://www.mediafire.com/download.php?ffy987mc4wb84bv
5th element
http://www.mediafire.com/download.php?4pd0v1hu1n819z0
http://www.mediafire.com/download.php?c1464iqnaevuhor
http://www.mediafire.com/download.php?3k67d3en9c1ct1m
Snowknight26
2nd April 2013, 04:47
Any chance of including a .pdb?
It's interesting to note that if you use ffdshow to decode the video and VC-1 is set to disabled, when the disc switches from MPEG-2 to VC-1 the player crashes. I guess it doesn't recreate the filter chain on format change? (Not that it matters, not using ffdshow fixes that..)
Seems as if none of the options under the Options menu work either.
When trying to use the arrow keys on the main menu of the 2nd sample the console spits out the following (and the key stokes do nothing):
BDRootWindow.java:java.awt.BDRootWindow.postKeyEvent:86: *** java.lang.NullPointerException
BDRootWindow.java:java.awt.BDRootWindow.postKeyEvent:86: *** java.lang.NullPointerException
BDRootWindow.java:java.awt.BDRootWindow.postKeyEvent:86: *** java.lang.NullPointerException
dukey
2nd April 2013, 10:17
It's interesting to note that if you use ffdshow to decode the video and VC-1 is set to disabled, when the disc switches from MPEG-2 to VC-1 the player crashes.
Yeah I know it does this. I think it's ffdshow that crashes. I think it's offering up vc-1 even when you've disabled it. Then when it comes to decoding just sorta dies.
Seems as if none of the options under the Options menu work either.
They all work but, only certain operations are allowed at certain points. Like the popup menu option, most discs I've tried don't have popup menus. Just need some way of graying the options out at particular times in the movie.
When trying to use the arrow keys on the main menu of the 2nd sample the console spits out the following (and the key stokes do nothing):
Yes this is a libbluray bug. I have a workaround, but it causes bd-j to not exit upon closing (slaps head). Some of the samples I uploaded are the broken samples list :)
fairchild
30th May 2013, 21:46
I was trying to get this installed today but it won't register the dslibbluray.ax file
It registers the evrmixer.dll fine, but I keep getting the following error:
The module "dslibbluray.ax" failed to load.
Make sure the binary is stored at the specified path or debug it to check for problems with the binary or dependent .DLL files.
The specified module could not be found.
The readme.txt doesn't specify that I have to copy any files anywhere. I just simply created a directory named dslibbluray on my C: and tried to register the files as normal. I did though have to copy the evrmixer.dll to the syswow64 directory.
dukey
30th May 2013, 23:23
for win64
the batch files are
%windir%\SysWOW64\regsvr32.exe dslibbluray.ax
%windir%\SysWOW64\regsvr32.exe EVRMixer.dll
if %windir% doesn't resolve to the correct path ?
You could always try
c:\windows\SysWOW64\regsvr32.exe "c:\pathofdll\dslibluray.ax"
c:\windows\SysWOW64\regsvr32.exe "c:\pathofdll\EVRMixer.dll"
At some point I plan on making a proper installer for the filter, but it's not really needed for beta versions.
Blight
31st May 2013, 14:45
Dukey:
I've went through the readme file, can you clarify what you mean by 'customer mixer', how does it affect the graph?
The readme states that this filter is similar to the DVD navigator filter. Does this mean it supports ALL the DVD Navigator's classes/interfaces?
fairchild
31st May 2013, 18:19
At some point I plan on making a proper installer for the filter, but it's not really needed for beta versions.
The direct pointing to it did the trick. :thanks:
dukey
31st May 2013, 18:47
Dukey:
I've went through the readme file, can you clarify what you mean by 'customer mixer', how does it affect the graph?
The readme states that this filter is similar to the DVD navigator filter. Does this mean it supports ALL the DVD Navigator's classes/interfaces?
The customer mixer doesn't really effect the graph at all. You just create an instance of it, and when you create EVR call
pRenderer->InitializeRenderer(pMixer, NULL);
http://msdn.microsoft.com/en-gb/library/windows/desktop/ms704667%28v=vs.85%29.aspx
The same way you create a customer presenter for EVR. With this design you can also use a custom presenter with the customer mixer if you want.
The interfaces are very similar to the DVD navigator, but not identical. I figured if you were supporting both DVD and Bluray it would make sense to make them at least similar. But the interface is the easiest part of the filter, it could be changed with very little work really.
dukey
1st June 2013, 18:21
The direct pointing to it did the trick. :thanks:
I don't suppose you could do this for me
Go to windows console .. type
Echo %systemroot%
and
Echo %windir%
Hopefully this should show why the batch file is failing :)
fairchild
1st June 2013, 21:09
both say it's c:\windows
Blight
1st June 2013, 23:09
dukey:
Where are the docs for these interfaces?
dukey
2nd June 2013, 00:38
Hi Blight,
the interface can be found here
http://sourceforge.net/p/dslibbluray/code/HEAD/tree/trunk/dslibbluray/IBDNav.h
You should also check out the source for demo_player in the project as it has quite a minimalist example of how to create and use the filter. If you are doing c++ you could probably recycle most of it, but I have a feeling zoom player is written in something else.
The interface I don't consider finished yet, some of the functions are stubbed and do nothing at the moment. But if you have useful feedback of what kind of functions you need/want from the filter then I can modify as needed. Feedback in this regard would be most useful.
For basic support, simply supporting KeyInput()
would be enough to get started. That enables menu navigation which lets you basically do everything.
Blight
2nd June 2013, 13:01
dukey:
I'm interested in mouse/touch navigation.
ZP is written in Delphi, so if you can include the C and Delphi headers in the ZIP package, that would surely save a lot of time and increase participation by player devs.
dukey
2nd June 2013, 13:06
If you scroll down, you'll see the interface has a C interface as well. I really know nothing about delphi
Mouse support is on my to do list, but it's quite complicated because have to talk to the renderer to work out window position, scaling options etc
nevcairiel
2nd June 2013, 14:16
Mouse support is something the player should implement, and just give you the x/y of the click relative to the unscaled video size, like DVD. Everything else is much too complicated.
ddjmagic
2nd June 2013, 14:46
Nice work on this project.
I tried a few HDMV titles and they seem to be working well, the only difference to TMT is some of the menus slide up/down in TMT where as they just appear with dslibbluray, other than that HDMV menu navigation worked great, popup menu during the main movie works nicely and language switching/ scene selection worked from the popup menu too, special features seemed to load correctly, the only issue I had was a photo gallery didn't respond correctly.
Java titles were hit and miss and some either got stuck or crashed the player. A couple worked quite well though.
I will post up some samples later from various discs, so people can have a play around if they want :)
dukey
2nd June 2013, 18:11
The sliding menus are probably animated buttons, which libbluray doesn't support yet. Test 120 had animated button support but that was using our own libbluray branch, or cb2000's branch.
ddjmagic
2nd June 2013, 18:30
Is it possible for me to try/install Test 120 without overwriting Test 200?
dukey
3rd June 2013, 11:47
Just register/unregister the files, then it should work.
ALLTHEBOYSLOVEMANDY is fixed in the current source I just uploaded. Hopefully it should get added to the libbluray source soon too :)
Superb
3rd June 2013, 13:08
Any reason not to use http://code.google.com/p/win-iconv/ instead of the fully blown libiconv?
ddjmagic
3rd June 2013, 13:13
Just register/unregister the files, then it should work.
ALLTHEBOYSLOVEMANDY is fixed in the current source I just uploaded. Hopefully it should get added to the libbluray source soon too :)
Great! I'll check it out on next release.
You were correct about the sliding menus being animated buttons, I tried Test 120 and the menus did slide out correctly.
dukey
3rd June 2013, 14:12
Any reason not to use http://code.google.com/p/win-iconv/ instead of the fully blown libiconv?
Is there much difference ?
Superb
4th June 2013, 08:29
Depends on what you consider "much" to be. :) Should be smaller + faster to compile.
mark0077
4th June 2013, 09:50
Guys is there a thread somewhere that describes how to use this with the likes of LAV Filters? I tried out the test player that comes with it and found it very good, but can't seem to get it to work in conjunction with LAV + mpc-hc. I'm a little confused between the different libblurays out there and whats in / not in lav already.
ddjmagic
9th June 2013, 16:32
A few samples for people to play around with as promised -
All the Boys Love Mandy Lane (UK Region B Import)
Menu button loads too early (Fixed in latest source)
Part 1 (http://www.mediafire.com/download/reqj1r3ar568nnt/ALLTHEBOYSLOVEMANDY.zip.001)
Part 2 (http://www.mediafire.com/download/vsq82xwsu68b5ki/ALLTHEBOYSLOVEMANDY.zip.002)
Black Snake Moan (US Region A)
Photo Gallery doesn't seem to work correctly, and menu not animated.
Part 1 (http://www.mediafire.com/download/4aqa74xx7cv79xk/BLACK_SNAKE_MOAN.zip.001)
Part 2 (http://www.mediafire.com/download/hv6kxopg1j2d76m/BLACK_SNAKE_MOAN.zip.002)
The Strangers (US Region A)
Stuck at first selection menu (Choice between Theatrical/Extended cut)
Part 1 (http://www.mediafire.com/download/k0hodvt5550s2ge/THE_STRANGERS.zip.001)
Part 2 (http://www.mediafire.com/download/3yw9ubzj6ju9dsa/THE_STRANGERS.zip.002)
Shutter Island (US Region A)
Loads menu but does not respond to any selections
Part 1 (http://www.mediafire.com/download/06770kvi6njiso3/SHUTTER_ISLAND_AC.zip.001)
Part 2 (http://www.mediafire.com/download/fx7ygtxmopvn3tn/SHUTTER_ISLAND_AC.zip.002)
:)
dukey
9th June 2013, 17:17
Thanks for the samples ddjmagic :)
nautilus7
9th June 2013, 18:10
If you want any specific sample, i can provide it. i have lots of blu-ray discs.
dukey
9th June 2013, 18:44
Samples that have problems with dslibbluray or libbluray are most welcome :)
DanB
20th June 2013, 17:43
last year i was asking dukey if it would be possible to use dslibbluray with WMP/WMC .
One year has gone, and I would like to discuss what theoretical or technical steps are necessary (or possible at all) to use it with WMC.
I did some digging into some dll´s from mc to analyze what’s going on when mc discover a bd based disc. I also found the blacklist “Feature” for this file types.
I am very into WMC programming, so any work that has to be done (Background addin , catching key presses , talking to the filter etc.) could be done by me.
but I don’t have that much knowledge on ds filter stuff, so your help and information are very welcome.
Thx, Daniel
#
dukey
22nd June 2013, 22:45
Test 226 (http://sourceforge.net/projects/dslibbluray/files/test-226.zip/download)
New build of dslibbluray.
- Added mouse support (only works for hdmv titles)
- Audio stream selection should now work
- Subtitle stream selection should now work
- I've rewritten the overlay code to buffer the data and render in a different thread. Prevents the program from deadlocking if too much data from libbluray is pushed. Also dramatically cuts the memory requirements.
- Lots of libbluray fixes too
ddjmagic
23rd June 2013, 10:24
Thanks for the new build. Mouse selection seems to work on the HDMV menus I tried. Audio/Subtitle switching too.
ALLTHEBOYSLOVEMANDY is fixed in the current source I just uploaded. Hopefully it should get added to the libbluray source soon too :)
Is this fix in the latest build? As the menu buttons still seem to load early for me.
Also with the new build, the Shutter Island sample crashes the player after the paramount intro .
I get - "demo_player.exe has stopped working"
Build 200 loads the menu, no crash.
dukey
23rd June 2013, 12:27
Is this fix in the latest build? As the menu buttons still seem to load early for me.
Not currently, but it'll get fixed in libbluray at some point. I'll check out the other video crashing.
mark0077
30th June 2013, 14:58
Is it possible to get this to work with the likes of mpc-hc + lav guys? Can't get it working.
ddjmagic
30th June 2013, 15:02
Is it possible to get this to work with the likes of mpc-hc + lav guys? Can't get it working.
I don't think it is possible at the moment. MPC-HC would need to add support for it first.
ddjmagic
30th June 2013, 19:59
Also with the new build, the Shutter Island sample crashes the player after the paramount intro .
I get - "demo_player.exe has stopped working"
Build 200 loads the menu, no crash.
This was a problem with my PC :devil:, it's all sorted now with no crash.
Menu selection with Shutter Island now works in build 226, in fact this disc now seems to work 100%, scene selection, pop up menu, audio/subtitle switching and all special features worked fine - Thanks :)
dukey
30th June 2013, 21:40
Is it possible to get this to work with the likes of mpc-hc + lav guys? Can't get it working.
Put a request in for the developers to add support for it. They just need to create an instance of the filter, render the pins. And add support for the mouse and keyboard interface. Theres a few other things, but for minimal support that would be sufficient.
MokrySedeS
30th June 2013, 22:16
I asked about it (http://forum.doom9.org/showthread.php?p=1623820#post1623820) some time ago. There was no reply :(
dukey
30th June 2013, 23:06
I think this is the official support ticket.
https://trac.mpc-hc.org/ticket/1295
I might try making a patch myself, but my free time is kinda busy spent finishing dslibbluray
ddjmagic
2nd July 2013, 18:06
A few more samples -
Karate Kid 1984 (US Region A)
Menu seems to work, but seems a bit laggy/unresponsive (could just be me though)
Part 1 (http://www.mediafire.com/download/xpiq6sah8q6rmb7/KARATE_KID.zip.001)
Part 2 (http://www.mediafire.com/download/fromk6e9xdt5c24/KARATE_KID.zip.002)
Part 3 (http://www.mediafire.com/download/k3p8ndlw3j235am/KARATE_KID.zip.003)
Crank (US Region A)
Loads the menu background video, but no actual menu or buttons are shown. Also skips the Lionsgate intro video.
Part 1 (http://www.mediafire.com/download/oq7h4b3fmoybm7b/CRANK.zip.001)
Part 2 (http://www.mediafire.com/download/3fv5i29pzr4otd2/CRANK.zip.002)
Atonement (US Region A)
Gets stuck in BD_EVENT_NONE/BD_EVENT_IDLE loop and never loads a menu.
Part 1 (http://www.mediafire.com/download/o1hskr19lban4vw/ATONEMENT.zip.001)
Part 2 (http://www.mediafire.com/download/5x8ild8sqikbcbs/ATONEMENT.zip.002)
King Kong (US Region A)
Loads the menu fine, the only thing I see wrong is once you select either Extended/Theatrical, the loading bar comes over the top (The 'King Kong' image doesn't disappear). See this screenshot (http://i.imgur.com/6cwaUkW.jpg) for example.
Part 1 (http://www.mediafire.com/download/6phiglegx8h6i51/KING_KONG.zip.001)
Part 2 (http://www.mediafire.com/download/s3auyf1tawckzjn/KING_KONG.zip.002)
Note - All these samples contain just the files needed to make the menu load.
dukey
2nd July 2013, 20:34
Are they all bd-j (java) samples ?
ddjmagic
2nd July 2013, 21:47
Are they all bd-j (java) samples ?
Yes. I think so (they have a JAR folder)
dukey
2nd July 2013, 22:00
If they have stuff in the jar folder, that normally means they are bd-j :)
Thanks for the samples. I'll check them out
ddjmagic
2nd July 2013, 22:08
If they have stuff in the jar folder, that normally means they are bd-j :)
Thanks for the samples. I'll check them out
Yes, just checked, they all have files inside the JAR folder :)
starla
3rd July 2013, 12:58
King Kong (US Region A)
Loads the menu fine, the only thing I see wrong is once you select either Extended/Theatrical, the loading bar comes over the top (The 'King Kong' image doesn't disappear). See this screenshot (http://i.imgur.com/6cwaUkW.jpg) for example.
Part 1 (http://www.mediafire.com/download/6phiglegx8h6i51/KING_KONG.zip.001)
This is probably player and/or filter specific, not related to the libbluray itself since it seems to work with another DS source filter and player.
Other samples behave the same so they are most likely libbluray related issues we are seeing.
dukey
3rd July 2013, 15:56
This is probably player and/or filter specific, not related to the libbluray itself since it seems to work with another DS source filter and player.
Other samples behave the same so they are most likely libbluray related issues we are seeing.
ARGB overlays have no timestamps, so they just render immediately.
starla
3rd July 2013, 19:14
ARGB overlays have no timestamps, so they just render immediately.
Wasn't the issue with King Kong about "loading" gfx hanging on the screen?
dukey
3rd July 2013, 19:22
When I tried the disc in power dvd, you see the loading bar over a black screen, instead of the King Kong image. I am not sure which is correct, maybe both. But I have no control over this, it just draws whatever libbluray feeds it. It doesn't hang either, on my machine anyway ;p
ddjmagic
3rd July 2013, 19:57
When I tried the disc in power dvd, you see the loading bar over a black screen, instead of the King Kong image. I am not sure which is correct, maybe both. But I have no control over this, it just draws whatever libbluray feeds it. It doesn't hang either, on my machine anyway ;p
TMT/PowerDVD and both my Standalone players show the loading bar over a black screen, so I assume that's how it should be, it's only for a second anyway, I was just being picky :D
dukey
4th July 2013, 01:08
Do you guys have any BD samples with secondary audio ? I need to add support for that at some point
wOxxOm
4th September 2013, 17:46
A typo in register64bit.cmd: missing backslash in the first line after %systemroot%
I've tested demo_player with a few anime BDs (dual-language content if that matters) and apparently some menu items don't work:
everything except a background disappears after clicking the disk is read entirely for a few minutes with the menu frozen and then the menu is reactivated after clicking the BD menu a few times PC lags like it operates at 1MHz, yet CPU usage in task manager is ~1%, the player is operational but the lagging won't disappear until I close the demo_player.
It would also be nice to have a 'save screenshot' menu command *and* a hotkey for that in the demo_player.
dukey
4th September 2013, 19:28
What titles are you trying that don't work ?
And can you provide samples
and thanks for the heads up about the missing back slash :)
dukey
5th September 2013, 12:49
I tested the copy you sent me wOxxOm,
off my hard disk it seems to work flawlessly.
What decoders are you using ? DXVA mode ?
What do I have to do exactly to replicate that bug ?
As for saving screenshots
alt + print screen -> paste in mspaint or similar
http://i.imgur.com/ohl0PxH.jpg
wOxxOm
5th September 2013, 12:53
dukey,
the extras button doesn't work and just makes demo_player read entire BD byte by byte for a few minutes then the menu is reactivated as for absence of the lags, maybe the trimmed copy I sent you isn't enough to reproduce my default decoder is LAV, I've tried it with CUVID and pure software decoding Alt-PrintScreen and then manual cropping? Of course I know it's possible but a hotkey to save the screenshot to an autonumbered png file would be soooo much nicer.
Edit: now I think the lag problem might have been caused by LAV in CUVID GPU decoding mode as my graphics card is far from being high-performance, it's a fanless low-power GT 640.
dukey
5th September 2013, 13:28
Since you are playing directly from disc,
what are you using for decryption ? Anydvd ?
wOxxOm
5th September 2013, 13:29
no, I've temporarily copied it to hdd, so no extra software.
whurlston
11th September 2013, 18:34
the extras button doesn't work and just makes demo_player read entire BD byte by byte for a few minutes then the menu is reactivatedThis is typical if you have AnyDVD (or other decryption software) set to remove titles shorter than x number of minutes and the extra clips are shorter than x.
no, I've temporarily copied it to hdd, so no extra software.You needed to decrypt it before copying to the hdd or it wouldn't play at all.
wOxxOm
11th September 2013, 18:36
This is typical if you have AnyDVD (or other decryption software) set to remove titles shorter than x number of minutes and the extra clips are shorter than x.
You needed to decrypt it before copying to the hdd or it wouldn't play at all.
Thanks, but it's irrelevant in this case, I should have said (but regrettably didn't) that Arcsoft TMT plays the extras fine from the same hdd folder.
whurlston
11th September 2013, 19:03
Ah, yes. That changes things. I don't have a copy of that movie to test but dukey is definitely more qualified anyway. (My c++ is rusty at best.)
@dukey: I've found that the demo player will not use any of the "Cyberlink Video Decoder (PDVDx)" decoders. If you change the VC1 Media type on dslibbluray (BDVideoDemuxer.cpp) and the EnumMatchingFilters in the demo player to use DEFINE_GUID(MEDIASUBTYPE_WVC1_CYBERLINK,
0xd979f77b, 0xdbea, 0x4bf6, 0x9e, 0x6d, 0x1d, 0x7e, 0x57, 0xfb, 0xad, 0x53);
and then set EnumMatchingFilters to MERIT_DO_NOT_USE, these decoders will be able to be used.
Other decoders (LAV, ArcSoft, etc) also accept that media type so the only thing that changes is that EnumMatchingFilters will return the newer Cyberlink decoders in the list in addition to the other decoders it already returned.
dukey
11th September 2013, 23:48
The demo player has a little logic that just enums all the filters and asks which support all 3 video codecs (h264/mpeg2/vc1). Any matching that can be used, failing that, it'll just try and connect a h264 decoder.
In the source that is ..
arrayInTypes[0] = MEDIATYPE_Video;
arrayInTypes[1] = MEDIASUBTYPE_MPEG2_VIDEO;
arrayInTypes[2] = MEDIATYPE_Video;
arrayInTypes[3] = MEDIASUBTYPE_H264;
arrayInTypes[4] = MEDIATYPE_Video;
arrayInTypes[5] = MEDIASUBTYPE_WVC1;
So you saying that the powerdvd decoders don't support
MEDIASUBTYPE_WVC1 ? There is a lower case version of that subtype maybe they support that ?
MEDIASUBTYPE_wvc1
whurlston
12th September 2013, 10:20
I really need to stop testing things at 3:00am. Turns out that I had not changed the merit when I tested using MEDIASUBTYPE_WVC1 and I didn't see that subtype when I enumerated the supported media types on the filter.
Using MEDIASUBTYPE_WVC1 and MERIT_DO_NOT_USE, the newer Cyberlink decoders do get returned in the supported decoders list. Using MERIT_DO_NOT_USE + 1, only the older "CyberLink Video/SP Decoder" gets used.
dukey
12th September 2013, 10:50
I can change the merit to MERIT_DO_NOT_USE if you want. My only question is why is the merit on that filter so low ?
whurlston
12th September 2013, 20:31
Not sure why the merit is so low. I guess they just didn't want it used in third party apps.
I don't need you to change the merit just for me, it was really just an FYI. I'm actually using the filter in a C# application (and it's been working quite nicely for me so far).
dukey
12th September 2013, 20:42
That's cool. Feedback from other developers is always useful. It's basically been just me working on it for the past year. I've ironed out pretty much most of the bugs in the directshow part. Just many to be fixed in libbluray, especially with regards to java.
KeyserSoze17
29th December 2013, 09:30
Dunno if this helps blight
http://i.imgur.com/V8gTO.png
In the future there might be more outputs to EVR, because some of the needed pins are missing I believe.
I'm trying to test this out in GraphStudio, but I cannot get the EVRMixer.dll to show up in the directshow filter list. When I register the filter, it says it was registered correctly. Is there anything else I should be doing to get this to show up? The dslibbluray.ax shows up in the filter list just fine.
Thanks
dukey
29th December 2013, 11:10
The evr mixer is a media foundation object. You can't instantiate it in graph studio. When you write the code, you don't have to manually connect the IMFTransform filter (evrmixer) to the graph, all you have to do is to tell EVR to use a custom mixer and it does the rest.
whurlston
3rd January 2014, 21:03
libbluray\src\file\dirs.h missing in SVN (referenced in bdj.c and dirs._win32.c since commit r245):
/*
* This file is part of libbluray
* Copyright (C) 2011-2013 VideoLAN
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see
* <http://www.gnu.org/licenses/>.
*/
#ifndef BLURAY_DIRS_H
#define BLURAY_DIRS_H
#include <util/attributes.h>
#ifdef _WIN32
BD_PRIVATE int win32_mkdir(const char *dir);
#endif
/*
* Config, cache and data dirs
*/
BD_PRIVATE const char *file_get_config_home(void);
BD_PRIVATE const char *file_get_config_system(const char *dir);
BD_PRIVATE const char *file_get_cache_home(void);
BD_PRIVATE const char *file_get_data_home(void);
#endif
@dukey, I finally figured out how to build libbluray.jar too. :)
dukey
3rd January 2014, 21:56
Building the jar is not too hard. Just need to build against the j2me classes instead of the regular ones. But I might switch it to full desktop java at some point, so maybe we have a 64bit version of the filter too. Because the phoneme jvm has no 64bit compiler. Although if we run the JVM in a separate process maybe this doesn't matter anyway :)
IanD
4th March 2014, 17:13
Is it any easier to implement menu support for AnyDVD HD SpeedMenu?
Java menus seem to be so complex in some cases that I fear it will be impossible to support them all the time, however SpeedMenu is much simpler and can be generated for any Bluray, yet there is currently no support within MPC and it is thus difficult to play a title on a PC platform with non-Cinavia software.
whurlston
4th March 2014, 18:55
Is it any easier to implement menu support for AnyDVD HD SpeedMenu?
Java menus seem to be so complex in some cases that I fear it will be impossible to support them all the time, however SpeedMenu is much simpler and can be generated for any Bluray, yet there is currently no support within MPC and it is thus difficult to play a title on a PC platform with non-Cinavia software.
it already works with AnyDVD's Speed Menus.
dukey
4th March 2014, 21:36
That's nice, never actually tried speed menus.
dukey
12th March 2014, 21:16
http://sourceforge.net/projects/dslibbluray/files/test-248.zip/download
New version if people want to test. First version I've released for 9~ months.
Quite a few improvements to libbluray, and some to dslibbluray
Also for java discs, you need desktop java installed. Previous builds didn't because we used the phoneme jvm
Ceremony
13th March 2014, 00:14
fantastic work! too bad one cant use it within mpc yet (well, i couldnt make menus work, playlists (short ad-like clips before the movie play) do work fine though), but it was fun to check out my bluray menus for the first time ever xD
Also, the register64bit.cmd contains an unfortunate typo:
%systemroot\%SysWOW64\regsvr32.exe dslibbluray.ax
%systemroot%\SysWOW64\regsvr32.exe EVRMixer.dll
dukey
13th March 2014, 00:41
Oops, I thought I had fixed that. Well spotted.
If you got discs that don't work, or have problems, samples would be great. Generally just need enough to load the menus, which normally is a few hundred meg.
Ceremony
13th March 2014, 01:16
Oops, I thought I had fixed that. Well spotted.
If you got discs that don't work, or have problems, samples would be great. Generally just need enough to load the menus, which normally is a few hundred meg.
the ones i tried thus far all worked (none of them are BD-Js). If i find one that screws up, ill up the important parts for you :)
One of the BDs i tried was pretty annoying though:
The bluray for millennium actress has a chapter menu with previews and such. if i open it, it gets placed above the main menu options which are located at the bottom of the screen. however, it automatically closes if I hover over any of the main menu options, including the already active chapter option. here's a screenshot, of the menu with the chapters open:
http://storage.superconnected.org/img/millenniumactress.png
not sure if thats the intended behaviour, closing on hover, as it seems counter intuitive. cant check with powerdvd or any other crappy commercial software, so should i mebbe upload it? the rest works though, but unlike my other blurays, it directly starts the movie (after some logo animations).
P.S. Im not a fan of java... so once its fully supported, id like to see a "disable for BD-J" option ^^
dukey
13th March 2014, 01:54
Mouse navigation in bluray is a bit of a hack. Some discs can't be made to work properly with mouse navigation. (Personally I think this is a design flaw). In these cases you either have to use a keyboard/remote. As for java, maybe 70% of discs use it, so it cant be ignored.
If you can cut and upload a sample I am more than happy to check it out.
Ceremony
13th March 2014, 08:12
Mouse navigation in bluray is a bit of a hack. Some discs can't be made to work properly with mouse navigation. (Personally I think this is a design flaw). In these cases you either have to use a keyboard/remote. As for java, maybe 70% of discs use it, so it cant be ignored.
If you can cut and upload a sample I am more than happy to check it out.how do old hw players handle these BD-J discs? java wasnt part of the bluray specifications from the very beginning now, was it?
nevcairiel
13th March 2014, 09:40
how do old hw players handle these BD-J discs? java wasnt part of the bluray specifications from the very beginning now, was it?
They just don't work on those.
nautilus7
13th March 2014, 14:41
Hi, thanks for the updated version. I will try it with my discs and i'll report if something isn't working.
What are the future plans for this project? Is it going to be a part of mpc-hc or lav filters? Thanks.
Ceremony
13th March 2014, 19:09
They just don't work on those.so they dont play at all or do they at least play the main movie?
dukey
14th March 2014, 17:13
What are the future plans for this project? Is it going to be a part of mpc-hc or lav filters? Thanks.
Just to make it rock solid stable. I need to add rate control to the filter. The evr mixer needs some work as well.
As for mpc-hc, people are free to implement this into whatever projects they want. I have no plans to do this.
Ceremony
15th March 2014, 00:58
Just to make it rock solid stable. I need to add rate control to the filter. The evr mixer needs some work as well.
As for mpc-hc, people are free to implement this into whatever projects they want. I have no plans to do this.Understandable, though kind of a pity.
anyway, I obv have no clue about how bluray menus work and stuff, but why do we need a new presenter to handle it? Main reason im "complaining" is, that I would need to pick either madVR or your EVR
Are DVD menus also handled by the renderer?
Mercury_22
15th March 2014, 10:49
Understandable, though kind of a pity.
anyway, I obv have no clue about how bluray menus work and stuff, but why do we need a new presenter to handle it? Main reason im "complaining" is, that I would need to pick either madVR or your EVR
Are DVD menus also handled by the renderer?
Better ask madshi to add support for it in madVR I'll support you :p
dukey
15th March 2014, 10:53
With the standard directshow renderers, that support multiple input pins, they are driven by the primary video input pin. The trouble is, some bluray discs will stop rendering the primary video stream and just render overlays. In this situation normal renderers just wont display anything. So some sort of custom mixer is required.
haha01haha01
20th March 2014, 23:32
hey dukey,
im trying to get this filter integrated into mpc-hc, but whenever i initialize EVR with your mixer and MPC's custom presenter, there is no video output. I have debugged the issue for a bit and it seems that the call to ProcessOutput always returns with mf_e_transform_need_more_input. Do you have any idea what may be causing this?
dukey
21st March 2014, 11:13
Hi haha01haha01,
did you make the mpc custom presenter thread safe with regards to d3d ? Normally this isn't required because in evr the mixer uses straight dxva so doesn't share with d3d. But our own mixer uses d3d so it is required. I might try and write a pure dxva path, but it needs new hardware since older hardware lacks being able to do alpha blend or some mode I forgot about in dxva.
You need to use these functions
http://msdn.microsoft.com/en-us/library/windows/desktop/ms697056%28v=vs.85%29.aspx
Just lock and unlock the device when you are using it.
Also because they are both using d3d, the presenter might set some d3d state that interfears with the mixer. I tried to make the mixer restore all states that it changed, but I only really checked for compatibility with my own presenter. If there are states you see that are conflicting get in contact and maybe we can sort something out.
As for mf_e_transform_need_more_input that should be fine. That's normal for interlaced video when waiting for complete frames etc. But I can double check it
Ceremony
21st March 2014, 13:08
@haha and dukey:
i was unable to use your custom EVR within MPCBE (tried both 32bit and 64bit builds). When i installed it, it wasnt available as a custom filter (or is it under a inconspicuous name?), nor did adding the dll manually work for me. the bluray lib however was available and loaded the correct streams (short streams before loading the menu and such). menus did not work and were only partially shown as the presenter was missing.
dukey
21st March 2014, 17:49
You need to call InitializeRenderer with a pointer to the mixer, the same way you sent a custom presenter
http://msdn.microsoft.com/en-us/library/windows/desktop/ms704667%28v=vs.85%29.aspx
ddjmagic
26th March 2014, 00:04
Thanks for the new update dukey :cool:
On my tests so far, the new version shows vast improvements.
A summary of samples found in my previous posts:
Samples from this post (http://forum.doom9.org/showpost.php?p=1632329&postcount=252) -
All the Boys Love Mandy Lane - Fixed - Menu buttons now load perfectly.
Black Snake Moan - Fixed -Menu now animated.
The Strangers - Still gets stuck at first selection menu (Choice between Theatrical/Extended cut)
Shutter Island - Fixed - Menu now loads perfectly and responds to selections.
Samples from this post (http://forum.doom9.org/showpost.php?p=1635212&postcount=266) -
Karate Kid 1984 - Still seems a bit unresponsive on menu selections and animations.
Crank - Menu/buttons still missing.
Atonement - Fixed - Menu loads perfectly, no more endless loop.
King Kong - Menu stills works fine.
Going to test a few more discs this weekend, so I'll probably post some more samples for any to take a look at.
dukey
26th March 2014, 00:28
I fixed karate kid being slow in the java code.
And crank is fixed too, but the animated buttons are somewhat slow. If someone can write a fast image resizer in java, or native C, that would be great.
ddjmagic
26th March 2014, 01:04
Strange, I don't see any menu items at all on Crank (just the background video) - Screenshot (http://i.imgur.com/qqFLMoG.jpg)
One other thing I've notice on a most discs, is that the "Pop-Up Menu" option in Demo Player seems to be grayed out , so there becomes no way of returning to the menu without closing and opening again (libbluray says Top Menu is masked by BD-J so that can't be used)
dukey
26th March 2014, 11:28
Because the source is out of date. If you can compile the java code you can check it out for yourself :p It's not really that hard, just download eclipse, import sources, export jar.
ddjmagic
26th March 2014, 13:21
Because the source is out of date. If you can compile the java code you can check it out for yourself :p It's not really that hard, just download eclipse, import sources, export jar.
Great :cool: I might give it a go later.
Any comment on not being able select "Pop-Up Menu" option in the demo player on some discs? (or is this yet to be fully implemented)
dukey
26th March 2014, 13:50
Popup is a special kind of menu, it's something you can open whilst the main title is playing. Only a few discs I've uncounted so far seem to have them.
ddjmagic
26th March 2014, 14:30
Popup is a special kind of menu, it's something you can open whilst the main title is playing. Only a few discs I've uncounted so far seem to have them.
So how do I return to the menu while playing the main movie or special feature in demo player when "Top Menu" is masked by BD-J and "Pop-Up Menu" is grayed out, without having to restart the disc?
Note: On the discs in question PDVD/TMT uses the pop up menu to allow you to return to the menu.
ddjmagic
26th March 2014, 15:00
Just to clarify here - 8/8 of the sample discs I have posted contain a selectable Pop Up menu in PDVD/TMT, only 2/8 have a selectable Pop-Up menu in demo player (both are HDMV)
Without the Pop-Up menu there is no way to get back to the menu or select features of any of these discs once the movie has started.
dukey
26th March 2014, 15:08
I'll check it out, the demo player really was meant to just test the filter than that be a full blown player. But I guess I can add those features.
ddjmagic
26th March 2014, 15:26
I'll check it out, the demo player really was meant to just test the filter than that be a full blown player. But I guess I can add those features.
The Pop-Up menu option is already listed in the demo player, it just doesn't seem to be selectable on BD-J discs.
It is selectable and works perfectly on all HDMV discs I have tried.
It would save having to keep restarting the disc after testing each aspect of the menu.
A couple questions on compiling the latest source :) - Any particular version of Eclipse needed? or will the 'Standard 4.3.2' be OK?
Do I get the latest libbluray source from the Videolan git?
dukey
26th March 2014, 16:25
Just normal eclipse should be fine, and yes, just grab the latest code from videolan
ddjmagic
26th March 2014, 17:19
Just normal eclipse should be fine, and yes, just grab the latest code from videolan
Thanks :) Does the exported JAR file have to be named anything in particular?
dukey
26th March 2014, 17:42
the same name as is already in the package
ddjmagic
26th March 2014, 21:11
A few samples (it's actually quite difficult to find a disc that fails to load at all ;) )
Cabin in the Woods (US Region A)
Gets stuck in BD_EVENT_NONE/BD_EVENT_IDLE loop and never loads a menu.
Part 1 (https://www.mediafire.com/?ud55j8cd0abpxe5)
Here Comes The Boom (US Region A)
Gets stuck in BD_EVENT_NONE/BD_EVENT_IDLE loop and never loads a menu.
Part 1 (http://www.mediafire.com/download/sk1jmdnjaykqm1j/HERE_COMES_THE_BOOM.zip.001)
Part 2 (http://www.mediafire.com/download/54juce9pvn37hn3/HERE_COMES_THE_BOOM.zip.002)
Note: On both of these discs samples I had to blank a bunch of trailers to save space/time, so hopefully they are still OK (they still load to a menu in TMT)
Now a couple of cool menus that load perfectly if anyone wants to look/play around with -
Django Unchained (US Region A)
Part 1 (http://www.mediafire.com/download/h5ekp74m9t03833/DJANGO_UNCHAINED.zip)
Mrs Doubtfire (US Region A)
Part 1 (http://www.mediafire.com/download/9vrxc9p89mj7d3v/MRS_DOUBTFIRE.zip)
Note: There is no movie/features files, just enough to show the menu.
Also I am still using the last build of libbluray as I failed at trying to compile the latest source :D
dukey
26th March 2014, 22:34
try this one
http://sourceforge.net/projects/dslibbluray/files/libbluray-j2se-0.2.jar/download
ddjmagic
27th March 2014, 11:10
try this one
http://sourceforge.net/projects/dslibbluray/files/libbluray-j2se-0.2.jar/download
I have replaced the 248 build jar with that jar, and I can't seem to get any BD-J discs to load. If I put the old jar back they load again.
Is that the correct procedure to update the jar file?
This is the error I get - Screenshot (http://i.imgur.com/nX8TjNd.png)
dukey
27th March 2014, 11:56
i'll do a full build at some point
dukey
8th April 2014, 13:43
http://sourceforge.net/projects/dslibbluray/files/test-262.zip/download
ddjmagic
8th April 2014, 16:24
Thanks for the new build :) Karate Kid menu is now very responsive and Crank menu buttons now show/load.
dukey
8th April 2014, 16:29
Yes it's a lot better :) There is an option in crank to turn on menu animations and that generally works quite nicely. Crank so far is the only BD i've come across that uses image scaling. Those 2 samples you posted above, I couldn't get either to work with powerdvd, maybe missing files or something.
ddjmagic
8th April 2014, 16:42
Yes it's a lot better :) There is an option in crank to turn on menu animations and that generally works quite nicely. Crank so far is the only BD i've come across that uses image scaling. Those 2 samples you posted above, I couldn't get either to work with powerdvd, maybe missing files or something.
I tried to blank some stuff out to keep the sample size down (almost 15 minutes of trailers before the menu)
I'll take a look and see if I can find out where it went wrong and post fixed samples :)
nautilus7
8th April 2014, 17:41
Am I supposed to put the 2 files (.ax and .dll) inside the system32 folder in order to register them succesfully? The script can't locate them by default. Maybe windows 8.1 is the problem?
dukey
8th April 2014, 17:55
I've not used win 8.1 .. but if you are just using the 64bit version u should just use the 64bit batch file to register. What error message did u get ?
ddjmagic
8th April 2014, 18:20
I've had a look a the "Here Comes The Boom" sample and it looks like 00033.m2ts & 00034.m2ts are missing, if you add a couple of blank files it should then work.
Not sure why Cabin in the Woods sample doesn't work (it does in TMT, but not PDVD)
nautilus7
8th April 2014, 18:50
I've not used win 8.1 .. but if you are just using the 64bit version u should just use the 64bit batch file to register. What error message did u get ?
http://t1.someimage.com/HYqLJnH.jpg (http://someimage.com/HYqLJnH)
Same error for evr dll also. It seems like the full path to the file is needed so it can be registered succesfully.
dukey
8th April 2014, 22:18
Try replacing %windir% with %systemroot% and see if that fixes it for you
nautilus7
8th April 2014, 22:37
It's already %systemroot%. I am getting this error when I run the bat script as administrator. When I run it normally (double click) I get a different error. See below:
http://t1.someimage.com/gVHp5KU.jpg (http://someimage.com/gVHp5KU)
Prinz
9th April 2014, 11:53
I had a similar problem in Win7 x64. Right clicking and run as Admin doesn't work here too. I have to open an Admin command prompt, change to the dir and start the register64bit.cmd inside this Admin prompt.
Mercury_22
9th April 2014, 12:16
You can try my "reg method" :) it adds "Register" and "Unregister" in right click menu for ax, dll, and ocx filesWindows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.AX]
@="axfile"
[HKEY_CLASSES_ROOT\axfile\shell\Register]
@="Register"
[HKEY_CLASSES_ROOT\axfile\shell\Register\command]
@="regsvr32.exe \"%1\""
[HKEY_CLASSES_ROOT\axfile\shell\UNRegister]
@="UNRegister"
[HKEY_CLASSES_ROOT\axfile\shell\UNRegister\command]
@="regsvr32.exe /u \"%1\""
[HKEY_CLASSES_ROOT\dllfile\shell\Register]
@="Register"
[HKEY_CLASSES_ROOT\dllfile\shell\Register\command]
@="regsvr32.exe \"%1\""
[HKEY_CLASSES_ROOT\dllfile\shell\UNRegister]
@="UNRegister"
[HKEY_CLASSES_ROOT\dllfile\shell\UNRegister\command]
@="regsvr32.exe /u \"%1\""
[HKEY_CLASSES_ROOT\.OCX]
@="ocxfile"
[HKEY_CLASSES_ROOT\ocxfile\shell\Register]
@="Register"
[HKEY_CLASSES_ROOT\ocxfile\shell\Register\command]
@="regsvr32.exe \"%1\""
[HKEY_CLASSES_ROOT\ocxfile\shell\UNRegister]
@="UNRegister"
[HKEY_CLASSES_ROOT\ocxfile\shell\UNRegister\command]
@="regsvr32.exe /u \"%1\""
nautilus7
9th April 2014, 14:01
So, with this method, all i need is to right click the file i want to register?
Anyway, i have change the dir of the ax/dll files inside the bat script an i have succesfully register them. The whole point is to correct the script so others don't face this problem.
Thanks everybody for their response.
dukey
9th April 2014, 14:05
Does this help ?
http://stackoverflow.com/questions/1894967/how-to-request-administrator-access-inside-a-batch-file
It should request admin for the batch file
nevcairiel
9th April 2014, 14:35
What you need to do is put this line as the first line in the batch file:
cd /d "%~dp0"
Run As Administrator changes the working directory, so the batch file needs to change it back, or it won't find its own files.
Also, you really don't need to specify the full path to regsvr32, just calling the .exe plain and simple does it all, no matter if 32 or 64 bit.
Mercury_22
9th April 2014, 14:44
So, with this method, all i need is to right click the file i want to register?
Anyway, i have change the dir of the ax/dll files inside the bat script an i have succesfully register them. The whole point is to correct the script so others don't face this problem.
Thanks everybody for their response.
Yes!
... and click "Register":)
nautilus7
9th April 2014, 17:38
What you need to do is put this line as the first line in the batch file:
cd /d "%~dp0"
Run As Administrator changes the working directory, so the batch file needs to change it back, or it won't find its own files.
Also, you really don't need to specify the full path to regsvr32, just calling the .exe plain and simple does it all, no matter if 32 or 64 bit.
Thanks nev. I confirm the following works.
cd /d "%~dp0"
regsvr32 dslibbluray.ax
regsvr32 EVRMixer.dll
nautilus7
9th April 2014, 17:39
Yes!
... and click "Register":)Thanks. It's very useful.
dukey
12th April 2014, 13:07
If people have java discs that don't work, especially those with unimplemented functions, please post samples :)
ddjmagic
12th April 2014, 14:07
Did you have any luck getting the previous samples to work? (one with missing files)
dukey
12th April 2014, 14:18
nope, need the missing files :p
ddjmagic
12th April 2014, 14:29
nope, need the missing files :p
For Here Comes The Boom you can just need to add 2 blank m2ts files and name them:
00033.m2ts
00034.m2ts
00031.m2ts & 00032.m2ts are both already blank so you can copy and rename those if you wanted.
Once those two files are added it should work in PowerDVD :)
Note: PowerDVD still plays the blank files as if they were full length files (it will look like a blank screen) so you will have to manually skip these parts to get to the menu.
dukey
12th April 2014, 18:40
Here comes the boom is almost missing the 2nd file .. link doesn't point anywhere
dukey
12th April 2014, 18:57
If you can see any unimplmented functions on the console, print them out and I'll give it a go :)
ddjmagic
12th April 2014, 18:59
Here comes the boom is almost missing the 2nd file .. link doesn't point anywhere
Sorry part 2 link fixed :)
ddjmagic
12th April 2014, 19:29
If you can see any unimplmented functions on the console, print them out and I'll give it a go :)
Here's a screenshot of what the console shows for those broken samples (if its any help to you at all)
Here Come The Boom (http://i.imgur.com/cvaC1YC.png)
Cabin In The Woods (http://i.imgur.com/1c5Zfuj.png)
dukey
12th April 2014, 19:35
Do you have that config.xml that cabin the woods can't find ?
ddjmagic
12th April 2014, 19:43
Do you have that config.xml that cabin the woods can't find ?
No the config.xml isn't present - I have loaded the original disc with AnyDVD disabled and browsed in that location but it doesn't seem to exist.
dukey
12th April 2014, 19:44
Okay thanks
ddjmagic
13th April 2014, 11:10
I tried about about 50 more BD's (with build 262) and these are the only ones that I couldn't get to load to the menu -
Disturbia (UK Region B)
Gets stuck after the studio introduction and warnings- Console (http://i.imgur.com/KRY4c1i.png)
Sample (http://www.mediafire.com/download/cb7f8em4sm48i8a/DISTURBIA.zip)
Friday The 13th (US Region A)
Doesn't seem to load anything (just a blank screen) - Console (http://i.imgur.com/550Hwhs.png)
Sample (http://www.mediafire.com/download/7qki5kex8fp58u0/FRIDAY_THE_13TH.zip)
Ice Age (US Region A)
Sample (http://www.mediafire.com/download/162kd6gro9zr877/ICE_AGE.zip)
This disc loads the menu fine, but the menu buttons appear too early - see Screenshot (http://i.imgur.com/YpttifS.png).
I'm really surprised that this hasn't been added as at least an option to any of the free video players yet, the last few builds have improved BD-J playback drastically and HDMV menus seem pretty much perfect.
dukey
13th April 2014, 13:30
Thanks for the samples. The first two should be easy enough to fix, they are both missing the same functions, and it's not a lot of code I don't think :)
Casshern
21st April 2014, 19:12
This thingie works great. I tried numerous Blurays and most of them worked right away and much , much , much faster than with PowerDVD. On one BD though I got a region code warning, is there any place to change the region code of the demo player? Is there anything i must do to install BD-J support? I just extracted the folder, ran the register batch inside and use the demo player? Keep up the great work, can't wait for the day i can finally ditch PowerDVD. The BD menus and the frame-packed 3D playback are the only things keeping me from finally being free of cyberlinks bloatware.
dukey
21st April 2014, 21:43
is there any place to change the region code of the demo player
Not yet in the demo player, but the filter has methods which you can call to do this. By default I think it's set to US English
Is there anything i must do to install BD-J support?
For java support you must have desktop java installed. Version 8 isn't yet supported in the code .. but should be soon. But any older versions from 5-7 should be fine.
http://javadl.sun.com/webapps/download/AutoDL?BundleId=86895
haha01haha01
6th June 2014, 15:51
Hi haha01haha01,
did you make the mpc custom presenter thread safe with regards to d3d ? Normally this isn't required because in evr the mixer uses straight dxva so doesn't share with d3d. But our own mixer uses d3d so it is required. I might try and write a pure dxva path, but it needs new hardware since older hardware lacks being able to do alpha blend or some mode I forgot about in dxva.
You need to use these functions
http://msdn.microsoft.com/en-us/library/windows/desktop/ms697056%28v=vs.85%29.aspx
Just lock and unlock the device when you are using it.
Also because they are both using d3d, the presenter might set some d3d state that interfears with the mixer. I tried to make the mixer restore all states that it changed, but I only really checked for compatibility with my own presenter. If there are states you see that are conflicting get in contact and maybe we can sort something out.
As for mf_e_transform_need_more_input that should be fine. That's normal for interlaced video when waiting for complete frames etc. But I can double check it
Hi again,
I've worked a bit on this today and added locks around functions that use the D3DDevice, however I ran into some nasty deadlocks. Even when wrapping only the EVR Presenter's Paint function with lock\unlock, whenever the function is called the device is already locked, causing a deadlock. My addition to this function is the only time in the whole sources of MPC-HC where LockDevice is called, so it cannot be a different MPC module interfering with it. Is it possible that the mixer does not unlock the device properly, or that I need to tell it to unlock the device when I want to use it myself?
EDIT: I have researched the issue more in-depth, debugging both MPC-HC and EVRMixer at the same time. As I suspected, the deadlock is caused by a synchronization bug in EVRMixer - in the function EVRCustomMixer::OnProcessOutput, the function always locks the D3DDevice. However, if m_hnsFrame < 0, the function will return with MF_E_TRANSFORM_NEED_MORE_INPUT immediately, without freeing the D3DDevice.
On a side note, I found it very interesting that this bug went undetected for so long (since it seems like EVRMixer should always deadlock after MF_E_TRANSFORM_NEED_MORE_INPUT has been returned once, on all applications, providing a non-working library), and researched further to check why is it working correctly in the demo player, and found that the key is in your reference counting system in EVRCustomMixer::LockD3DDevice. Is there a particular reason you chose to implement it like that? Because at first glance, this seems like a horrible idea. By implementing reference counting you are eliminating the whole purpose of the exclusive locks (since now 2 different threads can successfully LockD3DDevice and use the device simultaneously, merely increasing its reference count to 2) AND you miss out on deadlocks like this one (since forgetting to release a lock will just increment the refcount and cause no actual bug).
Cheers,
haha01haha01
dukey
6th June 2014, 18:58
http://sourceforge.net/p/dslibbluray/code/HEAD/
should fix it
I didn't write the ref counting code, but perhaps I should simply remove it.
haha01haha01
6th June 2014, 20:12
http://sourceforge.net/p/dslibbluray/code/HEAD/
should fix it
I didn't write the ref counting code, but perhaps I should simply remove it.
Yea, I did pretty much the same patch in my own code. It does cause the screen to flip though, probably because of some initialization settings that get reset when unlocking and locking the D3DDevice. I do not know the code of EVRMixer well enough to find where you set that, it would be nice if you could fix that as well.
Also, do you know of any problems specific to ffdshow? I seem to get a blank screen in MPC whenever I use this mixer with ffdshow video decoder (LAV works fine).
dukey
6th June 2014, 23:22
I haven't tested ffdshow in a long time, but it worked fine last I tested. Probably not in dxva mode though.
haha01haha01
7th June 2014, 09:24
I haven't tested ffdshow in a long time, but it worked fine last I tested. Probably not in dxva mode though.Alright, I'll deal with that later. Do you have any guess about the flipped screen, though?
EDIT: Nevermind, found it. Remove the minus from the height calculation of the orthogonal matrix in EVRCustomMixer::InitD3D.
edison
7th June 2014, 13:21
Is that possible use this filter without JAVA ? If yes, then it will be much easy to integration to the player or LAV filter ?
nevcairiel
7th June 2014, 15:21
If a Blu-ray uses Java menus, you need Java to use them.
whurlston
26th June 2014, 18:11
I had some trouble getting PlayAtTime (REFERENCE_TIME *pTime) to work (probably just an error in my the way I'm invoking it in C#) but I was able to get it working with DVD_HMSF_TIMECODE instead.
If anyone is interested, here is a patch that changes PlayAtTime(REFERENCE_TIME *pTime) to PlayAtTime(DVD_HMSF_TIMECODE *pTime) and changes GetCurrentLocation(BDPlaybackLocation *pLocation) to GetCurrentLocation(BDPlaybackLocation *pLocation, DVD_HMSF_TIMECODE *pTimeCode)
Index: BDSource.cpp
===================================================================
--- BDSource.cpp (revision 265)
+++ BDSource.cpp (working copy)
@@ -1131,6 +1131,7 @@
return S_OK;
}
+/*
STDMETHODIMP CBDSource::PlayAtTime(REFERENCE_TIME *pTime)
{
CAutoLock cObjectLock(&m_InterfaceLock);
@@ -1142,7 +1143,20 @@
bd_seek_time(m_pBluray,RT2PTS(*(REFERENCE_TIME*)pTime));
return S_OK;
}
+*/
+STDMETHODIMP CBDSource::PlayAtTime(DVD_HMSF_TIMECODE *pTime)
+{
+ CAutoLock cObjectLock(&m_InterfaceLock);
+
+ if(m_pBluray==NULL) return E_FAIL;
+ if(m_State==State_Stopped) return VFW_E_DVD_INVALIDDOMAIN;
+ if(pTime==NULL) return E_POINTER;
+
+ bd_seek_time(m_pBluray,HMSFToPTS(pTime));
+ return S_OK;
+}
+
STDMETHODIMP CBDSource::PlayAtTimeInTitle(ULONG uiTitle, REFERENCE_TIME *pTime)
{
CAutoLock cObjectLock(&m_InterfaceLock);
@@ -1390,6 +1404,7 @@
return S_OK;
}
+/*
STDMETHODIMP CBDSource::GetCurrentLocation(BDPlaybackLocation *pLocation)
{
CAutoLock cObjectLock(&m_InterfaceLock);
@@ -1410,7 +1425,30 @@
return S_OK;
}
+*/
+STDMETHODIMP CBDSource::GetCurrentLocation(BDPlaybackLocation *pLocation, DVD_HMSF_TIMECODE *pTimeCode)
+{
+ CAutoLock cObjectLock(&m_InterfaceLock);
+
+ if(pLocation==NULL)
+ {
+ return E_POINTER;
+ }
+
+ if(m_Chapter==-1 || m_Title==-1)
+ {
+ return E_FAIL;
+ }
+
+ pLocation->ChapterNum = m_Chapter;
+ pLocation->TitleNum = m_Title;
+ LONGLONG pts = BDGetPlayListTime();
+ PTSToHMSF(pts, pTimeCode);
+ pLocation->TimeCode = PTS2RT(pts);
+ return S_OK;
+}
+
STDMETHODIMP CBDSource::SelectParentalCountry(BYTE bCountry[2])
{
if(m_State!=State_Stopped)
Index: BDSource.h
===================================================================
--- BDSource.h (revision 265)
+++ BDSource.h (working copy)
@@ -333,7 +333,23 @@
return CBaseFilter::Stop();
}
-
+/*
+ STDMETHODIMP JoinFilterGraph(IFilterGraph *pGraph, LPCWSTR pName)
+ {
+ if (pGraph)
+ {
+ IBaseFilter *pNpvrbd = NULL;
+ HRESULT hr2 = CoCreateInstance(CLSID_NPVRBD, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void**)&pNpvrbd);
+ if (SUCCEEDED(hr2)) { hr2 = pGraph->AddFilter(pNpvrbd, L"NPVR BD Controller"); }
+ if (pNpvrbd)
+ {
+ pNpvrbd->Release();
+ pNpvrbd = NULL;
+ }
+ }
+ return CBaseFilter::JoinFilterGraph(pGraph, pName);
+ }
+*/
// IFileSourceFilter
STDMETHODIMP Load(LPCOLESTR pszFileName, const AM_MEDIA_TYPE* pmt);
STDMETHODIMP GetCurFile(LPOLESTR* ppszFileName, AM_MEDIA_TYPE* pmt);
@@ -368,7 +384,8 @@
STDMETHODIMP SelectAngle (ULONG ulAngle);
STDMETHODIMP GetCurrentAngle (ULONG *pulAnglesAvailable, ULONG *pulCurrentAngle);
STDMETHODIMP GetTotalTitleTime (REFERENCE_TIME *pTotalTime);
- STDMETHODIMP PlayAtTime (REFERENCE_TIME *pTime);
+ //STDMETHODIMP PlayAtTime (REFERENCE_TIME *pTime);
+ STDMETHODIMP PlayAtTime (DVD_HMSF_TIMECODE *pTime);
STDMETHODIMP PlayAtTimeInTitle (ULONG uiTitle,REFERENCE_TIME *pTime);
STDMETHODIMP GetCurrentAudio (ULONG *pulStreamsAvailable, ULONG *pulCurrentStream);
STDMETHODIMP SelectAudioStream (ULONG ulAudio);
@@ -384,7 +401,8 @@
STDMETHODIMP GetDefaultMenuLanguage (LCID *pLanguage);
STDMETHODIMP GetDefaultSubpictureLanguage (LCID *pLanguage);
STDMETHODIMP GetCurrentDomain (BDDomain *pDomain);
- STDMETHODIMP GetCurrentLocation (BDPlaybackLocation *pLocation);
+ //STDMETHODIMP GetCurrentLocation (BDPlaybackLocation *pLocation);
+ STDMETHODIMP GetCurrentLocation (BDPlaybackLocation *pLocation, DVD_HMSF_TIMECODE *pTimeCode);
STDMETHODIMP SelectParentalCountry (BYTE bCountry[2]);
STDMETHODIMP SelectParentalLevel (BYTE bParentalLevel);
};
Index: IBDNav.h
===================================================================
--- IBDNav.h (revision 265)
+++ IBDNav.h (working copy)
@@ -179,8 +179,11 @@
virtual HRESULT STDMETHODCALLTYPE GetTotalTitleTime(
/* [out] */ REFERENCE_TIME *pTotalTime) = 0;
+ //virtual HRESULT STDMETHODCALLTYPE PlayAtTime(
+ // /* [in] */ REFERENCE_TIME *pTime) = 0;
+
virtual HRESULT STDMETHODCALLTYPE PlayAtTime(
- /* [in] */ REFERENCE_TIME *pTime) = 0;
+ /* [in] */ DVD_HMSF_TIMECODE *pTime) = 0;
virtual HRESULT STDMETHODCALLTYPE PlayAtTimeInTitle(
/* [in] */ ULONG uiTitle,
@@ -233,8 +236,12 @@
virtual HRESULT STDMETHODCALLTYPE GetCurrentDomain(
/* [out] */ BDDomain *pDomain) = 0;
+ //virtual HRESULT STDMETHODCALLTYPE GetCurrentLocation(
+ // /* [out] */ BDPlaybackLocation *pLocation) = 0;
+
virtual HRESULT STDMETHODCALLTYPE GetCurrentLocation(
- /* [out] */ BDPlaybackLocation *pLocation) = 0;
+ /* [out] */ BDPlaybackLocation *pLocation,
+ /* [out] */ DVD_HMSF_TIMECODE *pTimeCode) = 0;
virtual HRESULT STDMETHODCALLTYPE SelectParentalCountry(
/* [in] */ BYTE bCountry[2]) = 0;
whurlston
26th June 2014, 18:39
@dukey, did you ever figure out the issue with Cabin In the Woods and not finding config.xml? I have a couple of other movies with the same issue:
Hunger Games: Catching Fire
Ender's Game
Both have their config.xml located in \BDMV\JAR\00005 instead of \BDMV\JAR\030000
dukey
27th June 2014, 10:04
I know what the bug is. It's resolving the config.xml to the wrong path. I think a bunch of discs are suffering from resource related loading bugs. I did look into fixing it, then i switched my desktop java to .. version 8. And 8 apparently causes more problems as they've changed some stuff. The libbluray code relies on hooking the IO to remap the directories and stuff. Anyway the hooking fails under java 8 so makes this problem even worse. The phoneme code is not very stable also right now, and the latest drawing patch by HPI has messed up the drawing code for a bunch of discs :o
Libbluray just needs more devs, only has a few (2-3) guys working on it with very limited spare time.
whurlston
27th June 2014, 18:32
No worries. I appreciate all you've done so far. I wish I could be of help with Libbluray but it's beyond my capabilities.
haha01haha01
28th June 2014, 16:11
@whurlston
Did you find seeking via PlayAtTime to be working well? I have recently implemented seeking in my attempt to integrate bluray into MPC, and every time I seek it takes a few seconds for the video to start playing, which also puts video and audio out of sync.
whurlston
28th June 2014, 22:59
I've found skipping is very video decoder dependent, whether it's using PlayAtTime or Next/PreviousChapter.
MS DTV decoder: Instant skips with no audio sync issues. Win 8 requires Media Center Pack for MPEG2.
LAV DXVA Native: Instant skips with no audio sync issues.
LAV Quicksync: Crashes whenever I try to use it so couldn't test.
ArcSoft TMT3: Stutters constantly. Unwatchable even without skipping.
Cyberlink Video Decoder (PDVD 12): Stutters after skipping and audio sync issues. Pause/Unpause sometimes resolves it.
Cyberlink Video/SP decoder: Doesn't work.
Haven't tested MPC filters.
I do set the the sync source to the audio renderer when building the graph:
_gb.SetDefaultSyncSource(); // _gb is an IGraphBuilder instance.
IReferenceClock clock;
audioRenderer1.GetSyncSource(out clock);
((IMediaFilter)_gb).SetSyncSource(clock);
whurlston
30th June 2014, 06:18
Error in CBDSource::GetCurrentAudio and CBDSource::SelectAudioStream (in BDSource.cpp):
if(m_PlayItem<1 || m_pPlayList==NULL)
Should be:
if(m_PlayItem<0 || m_pPlayList==NULL)
dukey
30th June 2014, 10:55
I'll try test out PlayAtTime later this evening. Libluray should fire a BD_EVENT_SEEK event which should flush downstream.
AS for decoder compatability, only tested LAV and FFDshow
I can't test quicksync but both CUVID mode, software mode, and DXVA mode work. Maybe quicksync has some bugs related to changing streams. Ask nev.
whurlston
2nd July 2014, 12:55
@whurlston
Did you find seeking via PlayAtTime to be working well? I have recently implemented seeking in my attempt to integrate bluray into MPC, and every time I seek it takes a few seconds for the video to start playing, which also puts video and audio out of sync.
I'll try test out PlayAtTime later this evening. Libluray should fire a BD_EVENT_SEEK event which should flush downstream.
The flush seems to be what was causing the issue.
@haha01haha01: try removing BeginFlush() and EndFlush() from the BD_EVENT_SEEK case in CBDSource::ThreadProc() :
case BD_EVENT_SEEK:
if (m_eState == STATE_PLAYING)
{
//BeginFlush();
BDPause();
BDPlay();
//EndFlush();
}
break;
dukey
2nd July 2014, 13:08
can you skip chapters without issue?
nevcairiel
2nd July 2014, 13:48
You need to flush the decoders when seeking, or who knows what can happen.
whurlston
2nd July 2014, 14:05
Skipping chapters has the same sync issues as PlayAtTime (at least for me).
whurlston
2nd July 2014, 23:54
You need to flush the decoders when seeking, or who knows what can happen.
Would calling m_pVideoDemuxer/m_pAudioDemuxer->Flush() work? (Which just releases the samples.)
nevcairiel
3rd July 2014, 03:57
If you break a continous stream and start decoding from some other position, you need to send a flush to the decoder, or you will end up having problems. You need to call BeginFlush/EndFlush/NewSegment, usually in that order.
whurlston
3rd July 2014, 12:40
Thanks for the explanation.
With that knowledge, I decided to look at it again and the fix turned out to be even simpler: Issuing BDStop() instead of BDPause() results in instant skips and also fixes the audio sync issue:
case BD_EVENT_SEEK:
if (m_eState == STATE_PLAYING)
{
BeginFlush();
BDStop(); // BDPause();
BDPlay();
EndFlush();
}
break;
dukey
3rd July 2014, 13:50
Which decoder you using ? Calling stop will attach a new media type for negotiation with the decoder, which I guess is fine. But I didn't think was required for simply seeking in the same stream, but I am sure nevcairiel can shed light on the issue.
whurlston
3rd July 2014, 14:29
That's for the Cyberlink decoder. Nev's video decoder works just fine for me with BDPause ().
whurlston
7th July 2014, 19:44
I had to put a Sleep(10) command in BDSource.cpp ThreadProc's BD_EVENT_END_OF_TITLE case after BDStop() to fix an END_OF_TITLE loop issue. It's rare and highly configuration dependent. Conditions where it could occur are:
Java disc with AnyDVD's SpeedMenu enabled and "Keep original menu" option selected.
"Remove annoying adverts and trailers" and/or "Remove video sequences shorter than ..." are selected in AnyDVD.
User selects "Original Menu" from the speed menu selections.
Only happens with certain discs (eg: Babylon A.D.)
Only happens with certain video decoders (eg: Cyberlink)
case BD_EVENT_END_OF_TITLE:
{
CAutoLock cObjectLock(&m_InterfaceLock);
m_llPlayItemCurrent = m_llPlayItemOut;
m_Chapter = m_PlayItem = -1;
}
BDStop();
Sleep(10);
break;
All in all, I am really satisfied with the progress of this filter (many, many thanks cb2000/dukey). It's time for an open beta for NextPVR. :D
whurlston
11th July 2014, 04:22
Patch to remove GC_ERROR in libbluray on forced subtitles (they actually work):
Index: libbluray/src/libbluray/decoders/graphics_controller.c
===================================================================
--- libbluray/src/libbluray/decoders/graphics_controller.c (revision 270)
+++ libbluray/src/libbluray/decoders/graphics_controller.c (working copy)
@@ -1174,9 +1174,6 @@
/* render objects */
for (ii = 0; ii < pcs->num_composition_objects; ii++) {
BD_PG_COMPOSITION_OBJECT *cobj = &pcs->composition_object[ii];
- if (cobj->forced_on_flag) {
- GC_ERROR("_render_pg(): forced_on_flag not implemented\n");
- }
if (cobj->forced_on_flag || display_flag) {
_render_pg_composition_object(gc, pcs->pts, cobj, palette);
}
whurlston
11th July 2014, 04:41
dslibbluray patch (apologies for any screw-ups on naming conventions):
Fix E_NOTIMPL returned on GetCurrentSubpicture()
Add ability to set default region code
Add additional methods (some were of use to me but may not be relevant to the main project):
STDMETHODIMP SelectPlayerRegion (UINT32 uRegion);
STDMETHODIMP GetTitleInfo (ULONG ulTitle, BLURAY_TITLE_INFO *pInfo);
STDMETHODIMP GetClipInfo (ULONG ulTitle, ULONG ulClip, BLURAY_CLIP_INFO *pInfo);
STDMETHODIMP GetChapterInfo (ULONG ulTitle, ULONG ulChapter, BLURAY_TITLE_CHAPTER *pInfo);
STDMETHODIMP GetVideoInfo (BLURAY_STREAM_INFO *pInfo);
STDMETHODIMP GetAudioInfo (ULONG ulStream, BLURAY_STREAM_INFO *pInfo);
STDMETHODIMP GetSubpictureInfo (ULONG ulStream, BLURAY_STREAM_INFO *pInfo);
STDMETHODIMP GetCurrentDVDLocation (BDPlaybackLocation *pLocation, DVD_HMSF_TIMECODE *pTimeCode);
STDMETHODIMP PlayAtDVDTime (DVD_HMSF_TIMECODE *pTime);
Index: dslibbluray/BDSource.cpp
===================================================================
--- dslibbluray/BDSource.cpp (revision 270)
+++ dslibbluray/BDSource.cpp (working copy)
@@ -141,7 +141,7 @@
(disc_info->bdplus_detected && !disc_info->bdplus_handled))
goto error;
- bd_set_player_setting(m_pBluray, BLURAY_PLAYER_SETTING_REGION_CODE, 1);
+ bd_set_player_setting(m_pBluray, BLURAY_PLAYER_SETTING_REGION_CODE, m_regionCode);
bd_set_player_setting(m_pBluray, BLURAY_PLAYER_SETTING_DECODE_PG, 1);
bd_set_player_setting_str(m_pBluray, BLURAY_PLAYER_SETTING_COUNTRY_CODE,m_countryCode);
@@ -1255,7 +1255,7 @@
*pulCurrentStream = m_PG-1;
*pbIsDisabled = !m_PGEnable;
- return E_NOTIMPL;
+ return S_OK;
}
STDMETHODIMP CBDSource::SelectSubpictureStream(ULONG ulSubPicture)
@@ -1438,5 +1438,172 @@
return E_NOTIMPL;
}
+STDMETHODIMP CBDSource::GetClipInfo(ULONG ulTitle, ULONG ulClip, BLURAY_CLIP_INFO *pInfo)
+{
+ CAutoLock cObjectLock(&m_InterfaceLock);
+ if(pInfo==NULL)
+ {
+ return E_POINTER;
+ }
+ BLURAY_TITLE_INFO *bto = bd_get_title_info(m_pBluray,ulTitle,0);
+
+ if(bto==NULL)
+ {
+ return E_FAIL;
+ }
+
+ *pInfo = bto->clips[ulClip];
+
+ bd_free_title_info(bto);
+
+ return S_OK;
+}
+
+STDMETHODIMP CBDSource::SelectPlayerRegion(UINT32 uRegion)
+{
+ if(m_State!=State_Stopped)
+ {
+ return VFW_E_DVD_INVALIDDOMAIN;
+ }
+
+ if(uRegion==NULL)
+ {
+ return E_POINTER;
+ }
+
+ m_regionCode = uRegion;
+
+ // validate country code ?
+
+ return S_OK;
+}
+
+STDMETHODIMP CBDSource::GetTitleInfo(ULONG ulTitle, BLURAY_TITLE_INFO *pInfo)
+{
+ CAutoLock cObjectLock(&m_InterfaceLock);
+
+ if(pInfo==NULL)
+ {
+ return E_POINTER;
+ }
+
+ BLURAY_TITLE_INFO *bto = bd_get_title_info(m_pBluray,ulTitle,0);
+
+ if(bto==NULL)
+ {
+ return E_FAIL;
+ }
+
+ *pInfo = *bto;
+
+ bd_free_title_info(bto);
+
+ return S_OK;
+}
+
+STDMETHODIMP CBDSource::GetChapterInfo(ULONG ulTitle, ULONG ulChapter, BLURAY_TITLE_CHAPTER *pInfo)
+{
+ CAutoLock cObjectLock(&m_InterfaceLock);
+
+ if(pInfo==NULL)
+ {
+ return E_POINTER;
+ }
+
+ BLURAY_TITLE_INFO *bto = bd_get_title_info(m_pBluray,ulTitle,0);
+
+ if(bto==NULL)
+ {
+ return E_FAIL;
+ }
+
+ *pInfo = bto->chapters[ulChapter - 1];
+
+ bd_free_title_info(bto);
+
+ return S_OK;
+}
+
+STDMETHODIMP CBDSource::GetVideoInfo(bd_stream_info *pInfo)
+{
+ if (m_pPlayList->clips[m_PlayItem].video_stream_count > 0)
+ {
+ *pInfo = m_pPlayList->clips[m_PlayItem].video_streams[0];
+ return S_OK;
+ }
+ return E_PENDING;
+}
+
+STDMETHODIMP CBDSource::GetAudioInfo(ULONG ulStream, bd_stream_info *pInfo)
+{
+ CAutoLock cObjectLock(&m_InterfaceLock);
+
+ if(pInfo==NULL) return E_POINTER;
+ if(m_pPlayList==NULL) return E_FAIL;
+ if(m_PlayItem<0) return E_FAIL;
+
+ if(ulStream+1 > m_pPlayList->clips[m_PlayItem].audio_stream_count)
+ {
+ return E_INVALIDARG;
+ }
+
+ *pInfo = m_pPlayList->clips[m_PlayItem].audio_streams[ulStream];
+
+ return S_OK;
+}
+
+STDMETHODIMP CBDSource::GetSubpictureInfo(ULONG ulStream, bd_stream_info *pInfo)
+{
+ CAutoLock cObjectLock(&m_InterfaceLock);
+
+ if(pInfo==NULL) return E_POINTER;
+ if(m_pPlayList==NULL) return E_FAIL;
+ if(m_PlayItem<0) return E_FAIL;
+
+ if(ulStream+1 > m_pPlayList->clips[m_PlayItem].pg_stream_count)
+ {
+ return E_INVALIDARG;
+ }
+
+ *pInfo = m_pPlayList->clips[m_PlayItem].pg_streams[ulStream];
+
+ return S_OK;
+}
+
+STDMETHODIMP CBDSource::GetCurrentDVDLocation(BDPlaybackLocation *pLocation, DVD_HMSF_TIMECODE *pTimeCode)
+{
+ CAutoLock cObjectLock(&m_InterfaceLock);
+
+ if(pLocation==NULL)
+ {
+ return E_POINTER;
+ }
+
+ if(m_pPlayList==NULL || m_pPlayList->idx == -1 || m_pPlayList->chapters->idx == -1)
+ {
+ return E_FAIL;
+ }
+
+ pLocation->ChapterNum = m_pPlayList->chapters->idx;
+ pLocation->TitleNum = m_pPlayList->idx;
+ LONGLONG pts = BDGetPlayListTime();
+ PTSToHMSF(pts, pTimeCode);
+ pLocation->TimeCode = PTS2RT(pts);
+ return S_OK;
+}
+
+STDMETHODIMP CBDSource::PlayAtDVDTime(DVD_HMSF_TIMECODE *pTime)
+{
+ CAutoLock cObjectLock(&m_InterfaceLock);
+
+ if(m_pBluray==NULL) return E_FAIL;
+ if(m_State==State_Stopped) return VFW_E_DVD_INVALIDDOMAIN;
+ if(pTime==NULL) return E_POINTER;
+ uint64_t t = HMSFToPTS(pTime);
+ uint64_t t2 = bd_seek_time(m_pBluray,t);
+ //BeginFlush();
+ //BDPause();
+ return S_OK;
+}
Index: dslibbluray/BDSource.h
===================================================================
--- dslibbluray/BDSource.h (revision 270)
+++ dslibbluray/BDSource.h (working copy)
@@ -85,6 +85,7 @@
CCritSec m_InterfaceLock; // for locking above
+ uint32_t m_regionCode;
char m_countryCode[3];
char m_defaultAudioLanguage[4];
char m_defaultMenuLanguage[4];
@@ -184,6 +185,7 @@
m_pVideoDemuxer = new CBDVideoDemuxer(this, m_VideoPin);
m_pAudioDemuxer = new CBDAudioDemuxer(this, m_AudioPin);
+ m_regionCode = 1;
strcpy_s(m_countryCode,"us");
strcpy_s(m_defaultAudioLanguage,"eng");
strcpy_s(m_defaultMenuLanguage,"eng");
@@ -387,6 +389,15 @@
STDMETHODIMP GetCurrentLocation (BDPlaybackLocation *pLocation);
STDMETHODIMP SelectParentalCountry (BYTE bCountry[2]);
STDMETHODIMP SelectParentalLevel (BYTE bParentalLevel);
+ STDMETHODIMP SelectPlayerRegion (UINT32 uRegion);
+ STDMETHODIMP GetTitleInfo (ULONG ulTitle, BLURAY_TITLE_INFO *pInfo);
+ STDMETHODIMP GetClipInfo (ULONG ulTitle,ULONG ulClip, BLURAY_CLIP_INFO *pInfo);
+ STDMETHODIMP GetChapterInfo (ULONG ulTitle,ULONG ulChapter, BLURAY_TITLE_CHAPTER *pInfo);
+ STDMETHODIMP GetVideoInfo (BLURAY_STREAM_INFO *pInfo);
+ STDMETHODIMP GetAudioInfo (ULONG ulStream, BLURAY_STREAM_INFO *pInfo);
+ STDMETHODIMP GetSubpictureInfo (ULONG ulStream, BLURAY_STREAM_INFO *pInfo);
+ STDMETHODIMP GetCurrentDVDLocation (BDPlaybackLocation *pLocation, DVD_HMSF_TIMECODE *pTimeCode);
+ STDMETHODIMP PlayAtDVDTime (DVD_HMSF_TIMECODE *pTime);
};
#endif // _BDSOURCE_
Index: dslibbluray/IBDNav.h
===================================================================
--- dslibbluray/IBDNav.h (revision 270)
+++ dslibbluray/IBDNav.h (working copy)
@@ -242,6 +242,41 @@
virtual HRESULT STDMETHODCALLTYPE SelectParentalLevel(
/* [in] */ BYTE bParentalLevel) = 0;
+ virtual HRESULT STDMETHODCALLTYPE SelectPlayerRegion(
+ /* [in] */ UINT32 uRegion) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetTitleInfo(
+ /* [in] */ ULONG ulTitle,
+ /* [out] */ BLURAY_TITLE_INFO *pInfo) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetClipInfo(
+ /* [in] */ ULONG ulTitle,
+ /* [in] */ ULONG ulClip,
+ /* [out] */ BLURAY_CLIP_INFO *pInfo) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetChapterInfo(
+ /* [in] */ ULONG ulTitle,
+ /* [in] */ ULONG ulChapter,
+ /* [out] */ BLURAY_TITLE_CHAPTER *pInfo) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVideoInfo(
+ /* [out] */ BLURAY_STREAM_INFO *pInfo) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetAudioInfo(
+ /* [in] */ ULONG ulStream,
+ /* [out] */ BLURAY_STREAM_INFO *pInfo) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetSubpictureInfo(
+ /* [in] */ ULONG ulStream,
+ /* [out] */ BLURAY_STREAM_INFO *pInfo) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetCurrentDVDLocation(
+ /* [out] */ BDPlaybackLocation *pLocation,
+ /* [out] */ DVD_HMSF_TIMECODE *pTimeCode) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE PlayAtDVDTime(
+ /* [in] */ DVD_HMSF_TIMECODE *pTime) = 0;
+
};
#else /* C style interface */
whurlston
11th July 2014, 18:17
Missing a file in libbluray: libbluray\src\libbluray\bdj\java\org\videolan\media\content\PlayerManager.java
/*
* This file is part of libbluray
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see
* <http://www.gnu.org/licenses/>.
*/
package org.videolan.media.content;
import java.util.ArrayList;
public class PlayerManager {
private static PlayerManager instance = new PlayerManager();
public static PlayerManager getInstance() {
return instance;
}
/*
*
*/
private ArrayList registeredPlayers = new ArrayList(1);
private BDHandler playlistPlayer = null;
private BDHandler videoDripPlayer = null;
private ArrayList audioPlayerList = new ArrayList(8);
private Object playlistPlayerLock = new Object();
private Object videoDripPlayerLock = new Object();
private Object audioPlayerLock = new Object();
public void releaseAllPlayers(boolean unconditional) {
BDHandler[] players = null;
synchronized (registeredPlayers) {
players = (BDHandler[])registeredPlayers.toArray(new BDHandler[0]);
}
for (int i = 0; i < players.length; i++) {
if (unconditional) {
players[i].close();
} else if (players[i].getOwnerContext() != null && players[i].getOwnerContext().isReleased()) {
players[i].close();
}
}
}
protected void releaseResource(BDHandler player) {
if (player instanceof org.videolan.media.content.playlist.Handler) {
synchronized (playlistPlayerLock) {
if (player == playlistPlayer) {
playlistPlayer = null;
}
}
return;
}
if (player instanceof org.videolan.media.content.sound.Handler) {
return;
}
System.err.println("unknown player type: " + player.getClass().getName());
}
protected boolean allocateResource(BDHandler player) {
if (player instanceof org.videolan.media.content.playlist.Handler) {
synchronized (playlistPlayerLock) {
if (playlistPlayer != null && player != playlistPlayer) {
playlistPlayer.stop();
playlistPlayer.deallocate();
}
playlistPlayer = player;
}
return true;
}
if (player instanceof org.videolan.media.content.sound.Handler) {
return true;
}
System.err.println("unknown player type: " + player.getClass().getName());
return false;
}
protected void unregisterPlayer(BDHandler player)
{
synchronized (registeredPlayers) {
if (registeredPlayers.contains(player)) {
registeredPlayers.remove(player);
}
}
}
protected void registerPlayer(BDHandler player)
{
synchronized (registeredPlayers) {
if (!registeredPlayers.contains(player)) {
registeredPlayers.add(player);
}
}
}
/*
*
*/
public void onPlaylistEnd(int playlist) {
synchronized (playlistPlayerLock) {
if (playlistPlayer != null)
playlistPlayer.endOfMedia(playlist);
}
}
public void onPlaylistTime(int pts) {
synchronized (playlistPlayerLock) {
if (playlistPlayer != null)
playlistPlayer.updateTime(pts);
}
}
public void onChapterReach(int param) {
synchronized (playlistPlayerLock) {
if (playlistPlayer != null)
playlistPlayer.doChapterReach(param);
}
}
public void onMarkReach(int param) {
synchronized (playlistPlayerLock) {
if (playlistPlayer != null)
playlistPlayer.doMarkReach(param);
}
}
public void onPlaylistStart(int param) {
synchronized (playlistPlayerLock) {
if (playlistPlayer != null)
playlistPlayer.doPlaylistStart(param);
}
}
public void onPlayItemReach(int param) {
synchronized (playlistPlayerLock) {
if (playlistPlayer != null)
playlistPlayer.doPlayItemReach(param);
}
}
public void onAngleChange(int param) {
synchronized (playlistPlayerLock) {
if (playlistPlayer != null)
playlistPlayer.doAngleChange(param);
}
}
public void onRateChange(float rate) {
synchronized (playlistPlayerLock) {
if (playlistPlayer != null)
playlistPlayer.updateRate(rate);
}
}
public void onSubtitleChange(int param) {
synchronized (playlistPlayerLock) {
if (playlistPlayer != null)
playlistPlayer.doSubtitleChange(param);
}
}
public void onPiPChange(int param) {
synchronized (playlistPlayerLock) {
if (playlistPlayer != null)
playlistPlayer.doPiPChange(param);
}
}
}
dukey
11th July 2014, 19:26
Will check it out when in back at my pc. You actually compiling the java code
whurlston
11th July 2014, 21:15
GetCurrentLocation keeps returning the wrong title/chapter for me (timecode is correct). I had to change it to:
STDMETHODIMP CBDSource::GetCurrentLocation(BDPlaybackLocation *pLocation)
{
CAutoLock cObjectLock(&m_InterfaceLock);
if(pLocation==NULL)
{
return E_POINTER;
}
if(m_pPlayList==NULL || m_pPlayList->idx == -1 || m_pPlayList->chapters->idx == -1)
{
return E_FAIL;
}
pLocation->ChapterNum = m_pPlayList->chapters->idx;
pLocation->TitleNum = m_pPlayList->idx;
pLocation->TimeCode = PTS2RT(BDGetPlayListTime());
return S_OK;
}
Edit: Might be better to update m_Title/m_Chapter on a PlayList event in ThreadProc() instead of changing GetCurrentLocation()?
Edit2: Nope, setting it in ThreadProc doesn't work quite right. It always returns 1 as the current chapter instead of 0 when the playlist first starts. Doesn't get changed until we hit the third chapter (idx of 2).
whurlston
11th July 2014, 21:18
Will check it out when in back at my pc. You actually compiling the java code
Yup. Java code is compiling good for me (once I added that file). I get some warnings about "ArrayList/Class (etc) is a raw type..." but no errors. Haven't run into any problems playing known working discs (I haven't tested any non working discs yet to see if they work now).
Blight
23rd July 2014, 08:15
I'd like to see if I can integrate support for this filter into Zoom Player.
Is there a Delphi translation of the filter's API? If none is planned, which header file should I look at?
Also, does bluray playback require a custom EVR filter as renderer? what about supporting madVR?
dukey
23rd July 2014, 09:24
Is there a Delphi translation of the filter's API? If none is planned, which header file should I look at?
Everything you need should be in the IBDNav.h file, there is no delphi translation, but there is a C api available. Dunno if that helps.
I will look at madVR support sometime in the future, but right now my time is tied up with other projects. I also might bundle some java version with later versions of dslibbluray, and not rely on whatever versions the user has installed.
huhn
23rd July 2014, 12:37
I'd like to see if I can integrate support for this filter into Zoom Player.
Is there a Delphi translation of the filter's API? If none is planned, which header file should I look at?
Also, does bluray playback require a custom EVR filter as renderer? what about supporting madVR?
have a look at this: http://forum.doom9.org/showthread.php?t=170811
if Madshi finds time to add support for the PG IG "stream" we get MadVR with Blu ray menu support
The code inside dslibluray to control the mixer is literally a few lines. I am sure it could be swapped out with something else if needed. Someone could write some custom mixer that does the same that sits in between the filter and madVR. The 2nd pin needs to be able to render full frame rate over the main video. Overlays also still need to be able to render even when the main video pin is turned off. Bluray is a pain in the ass like that.
madshi
23rd July 2014, 16:08
I will look at madVR support sometime in the future, but right now my time is tied up with other projects.
FWIW, if there's anything madVR related I can you with, just let me know. You can contact me via PM or eMail, if you like. I'm willing to add custom interfaces to madVR, if that makes your life easier. Such interfaces should ideally be "final", though. Don't want to change such interfaces all the time.
dukey
23rd July 2014, 17:13
Can you add support for multiple input pins ? I am sure the dvd navigator would benefit from this also.
madshi
23rd July 2014, 17:27
Uhm, it's on my long term to do list, but I fear that would be quite a lot of work. E.g. what happens if the resolutions and/or framerates of the multiple pins don't match? What happens if one of the pins stops sending images but the other doesn't? I'd also need to support multiple allocators etc. It's all possible, but really *a lot* of work... :(
whurlston
23rd July 2014, 18:58
I wrote a DirectShow filter in C# that connects to the PG and IG pins and also accepts an third image (for an OSD) via a custom interface. It mixes all the images and calls IMFVideoMixerBitmap::SetAlphaBitmap (or ClearAphaBitmap) on the standard EVR filter (not using the dslibbluray's custom mixer). I still have a few tweaks to make but you can see the results here:
http://forums.gbpvr.com/attachment.php?attachmentid=38725&stc=1&d=1406138038 http://forums.gbpvr.com/attachment.php?attachmentid=38700&stc=1&d=1405745133
I plan to add support for other renderers including MadVR.
madshi
23rd July 2014, 21:20
That sounds nice, thanks. IIRC madVR doesn't support SetAlphaBitmap right now, but there are some madVR private OSD interfaces which are quite near to what SetAlphaBitmap does, so it shouldn't be too hard to make it work. If you run into any problems, just let me know.
whurlston
23rd July 2014, 21:23
I will. I've looked at the MadVR interfaces so I have a general idea of how to do it. I just haven't had time to actually start implementing it yet.
dukey
24th July 2014, 00:40
I wrote a DirectShow filter in C# that connects to the PG and IG pins and also accepts an third image (for an OSD) via a custom interface. It mixes all the images and calls IMFVideoMixerBitmap::SetAlphaBitmap (or ClearAphaBitmap) on the standard EVR filter (not using the dslibbluray's custom mixer).
.
Will that work if the primary video stream turns off ? Some bd menus do this.
whurlston
24th July 2014, 03:25
It depends on when it turns off.
Scenario 1 (AnyDVD's Speedmenus which delivers 1 video frame and then turns off): This works because my filter calls RepaintVideo() on the EVR filter whenever it updates the OSD. Not ideal but it works.
Scenario 2 (discs like "Non Stop" where the top menu has no video and no frames at all are sent to the renderer): Does not work in this case.
I haven't quite decided how I want to deal with scenario 2 yet. Whether to insert something between the video decoder and renderer or modify dslibbluray to send at least one black frame. Ideally, dslibbluray would send black frames at the proper frame rate but that may be beyond my limited C++ capabilities (for now).
On another note: My previous fix to GetCurrentLocation was still unreliable. I finally changed it to this to get it to work properly:
pLocation->ChapterNum = bd_get_current_chapter(m_pBluray);
pLocation->TitleNum = bd_get_current_title(m_pBluray);
ddjmagic
1st September 2014, 14:44
Just checking in to see how everything is going which this project. I haven't seen a new build for a while :( (I know everyone is busy :))
I need something to play/mess with :D
dukey
1st September 2014, 16:05
Submitted a few patches to libluray, but they haven't been merged yet. Still after samples of discs that don't work, or only partially work.
phate89
13th September 2014, 15:31
I'm trying libbluray embedded in xbmc in a special build:
http://forum.xbmc.org/showthread.php?tid=170329&pid=1793374#pid1793374
It's up to date to libbluray 0.6.2 and libbluray is fully logged. I already have some log. Are you interested in logs and not working samples? Or i have to use before your tool?
dukey
15th September 2014, 17:10
Logs are useful. But non working samples are more useful.
phate89
17th September 2014, 01:13
Logs are useful. But non working samples are more useful.
No problem I can upload them with some help. There is a way to know what are the essential files for the menu to upload only the strict files needed?
I already have a sample of an authored bd menu created with Blu-Disc Studio MX that doesn't work:
https://dl.dropboxusercontent.com/u/2219086/output.rar
I only get "Listening for transport dt_socket at address: 8000" and the disc doesn't load at all.
Here's the discs i tested so far and do not work in both test262 (is there a newer build?) and xbmc with libbluray 0.6.2
Partially working:
the prestige (HDMV) - extras play all works, play single track doesn't load video and audio, only subs - Log (http://xbmclogs.com/show.php?id=294508)
Not working:
star trek (BD-J) - black screen with grey hover in the menu no text but i can move - Log (http://xbmclogs.com/show.php?id=294503)
star trek extras (BD-J) - black screen with grey hover in the menu no text but i can move - Log (http://xbmclogs.com/show.php?id=294502)
Spider-man 2 (BD-J) - black screen and doesn't load - Log (http://xbmclogs.com/show.php?id=294500)
Spider-man 3 (BD-J) - black screen and doesn't load - Log (http://xbmclogs.com/show.php?id=294501)
Man in black 3 (BD-J) - black screen and hangs on menu load (after sony video logo) - Log (http://xbmclogs.com/show.php?id=294497)
Shindler's list (BD-J) - black screen and doesn't load - Log (http://xbmclogs.com/show.php?id=294499)
Avatar ext coll edition extra 2 (BD-J) - black screen and doesn't load - Log (http://xbmclogs.com/show.php?id=294493)
THese are xbmc logs but they have libbluray logs in it.
I also have some bd with bd-j menu that doesn't load main menu when the disc start so i can't test them with your tool because bd-j popup menu almost never works so i can't load the menu in any way.
Last question. I have some bd disc that is localized. Total media theater shows it to me in italian but your tool and xbmc shows it in english. Is it already supported by libbluray and simply not implemented or there isn't a support for it yet in libbluray?
starla
17th September 2014, 09:59
No problem I can upload them with some help. There is a way to know what are the essential files for the menu to upload only the strict files needed?
What are needed:
- all folders excluding STREAMS
- "selected" amount of .mt2s files from STREAMS folder. Only thing you should be cutting is the main movie (this is especially hard with seamless branching disks)
phate89
17th September 2014, 10:14
So i have to leave every file and just cut the biggest one? What tool can i use to cut them and i can leave them short as i want?
madshi
17th September 2014, 10:21
I would guess that you can probably cut all the m2ts files to e.g. 10MB or so. Personally, I'm using the free hexeditor "HxD" for cutting files.
dukey
17th September 2014, 10:32
Generally for testing having enough video to get to the menu is sufficient. So no extras or main title
phate89
17th September 2014, 11:25
I would guess that you can probably cut all the m2ts files to e.g. 10MB or so. Personally, I'm using the free hexeditor "HxD" for cutting files.
Sadly no at least dslibbluray needs the right length for menu stuff. If i cut a video before the menu i get an error "error reading after EOF". With tmt works.
I can only cut main video and extras.
I'm starting to upload samples but for example with the prestige i don't know how to behave. It has a single file of 2 gb with all the extra and the problem is not loading all the extra but a specific one. What hould i do? Upload the whole 2 gb file?
EDIT: Nevermind. I managed to build your 281 and with that version "The Prestige" works well. The only problem is that all bd-j discs doesn't work. Is there something special to do to build it with bd-j support?
starla
17th September 2014, 18:51
I would guess that you can probably cut all the m2ts files to e.g. 10MB or so. Personally, I'm using the free hexeditor "HxD" for cutting files.
That can cause some weird issues (for example some disk could seek to specific place in the m2ts file and failure to do so will cause playback to fail). So it is better to have at least all the required files that are played before the main menu is visible. Extras are something that aren't needed (unless there is some specific issue related to those).
starla
17th September 2014, 18:52
EDIT: Nevermind. I managed to build your 281 and with that version "The Prestige" works well. The only problem is that all bd-j discs doesn't work. Is there something special to do to build it with bd-j support?
Did you build the Java side?
phate89
17th September 2014, 19:01
Did you build the Java side?
OF course not :cool: :goodpost:
Is it already in the project? What should i do? Thanks btw
phate89
17th September 2014, 21:38
Here's my samples. I did my best to shrink them but menus are full of video animations and there's always a trailer before the menu.
BD menu created with Blu-Disc Studio MX
Sample (https://dl.dropboxusercontent.com/u/2219086/output.rar)
Star trek
Sample (http://www.mediafire.com/download/62lu367qdask3gz/Star.trek.7z)
Spider-Man 2
Sample (http://www.mediafire.com/download/i7icwi543hd9sus/Spider-Man.2.7z)
Men In Black 3
Sample (http://www.mediafire.com/download/ui9pn0ijbyvayd7/men.in.black.3.7z)
dukey
18th September 2014, 10:54
thanks for the samples :)
walexago
18th September 2014, 18:37
Hi,
I created above sample with Blu-Studio MX (with a very simple menu): I am here if you need others custom BD-J samples (also with more complex BD-J menu).
foxyshadis
19th September 2014, 16:13
OF course not :cool: :goodpost:
Is it already in the project? What should i do? Thanks btw
There's not a lot of documentation, but you need to have both JDK & Ant installed, and configure with --JDK_HOME=/wherever/it/is --enable-bdjava
Joniii
24th September 2014, 13:12
Thanks for the great work. Worked without problems on 20+ Blu-rays i tested. Is there any way to use dslibbluray.ax on MPC-HC?
huhn
24th September 2014, 18:44
Thanks for the great work. Worked without problems on 20+ Blu-rays i tested. Is there any way to use dslibbluray.ax on MPC-HC?
there is a test build for it can't find it right now should be in this subforum.
Aman87
28th February 2015, 21:58
so any news here?
VLC 2.2.0 came out with BD-J support and it works quite well as far as I have tested.
Would be a killer feature to have it in MPC-HC.
dukey
2nd March 2015, 15:00
i'll build a new version sometime soon
was just waiting for certain things in libbluray to be fixed, wasn't really releasable before
Stereodude
3rd March 2015, 18:44
Would be a killer feature to have it in MPC-HC.
I'd classify it more as necessary, as would having MPC-HC actually honor the commands linked to playlists for stream selection and the like.
ddjmagic
4th March 2015, 15:54
i'll build a new version sometime soon
Great. Look forward to trying it :)
dukey
6th April 2015, 16:28
http://sourceforge.net/projects/dslibbluray/files/test-288.zip/download
Make sure to read the readme file :)
starla
9th April 2015, 06:44
Make sure to read the readme file :)
I did... and it has it's own errors :P
but BD-J discs are still at an early stage.
Based on testing results around 70 to 90% titles are already working.
A few features are still missing (animated buttons).
I think those are supported.
dukey
9th April 2015, 17:55
Yes, bd-j support is quite mature now. I think the vast majority of discs work. Quite a few still throw relating to unimplemented functions but they are mostly non critical.
I'll update the rest of the readme :) just the bottom part about how to run it is relevant for most people
ddjmagic
21st April 2015, 20:21
Somehow missed this new build. Pretty much every non working BD-J sample I posted here is now working (Only Cabin in the Woods doesn't load)
BD-J is vastly improved now, thanks for the new build :)
dukey
22nd April 2015, 15:50
Yeah the java side of libbluray has made some significant progress, basically all my discs work.
ikarad
21st November 2015, 17:48
This project is dead?
dukey
27th November 2015, 23:02
Not really. The filter itself is quite stable. Just libbluray is still in development.
ikarad
28th November 2015, 13:12
Not really. The filter itself is quite stable. Just libbluray is still in development.
Thanks.
Is it possible to integrate with mpc-hc?
Nullack
28th November 2015, 23:46
One of the MPC-HC Devs here on Doom9 expressed his personal view that he couldnt care about full bluray menus when he'll just click through it to play the main title. Im not sure what the overall project view is however. Personally I think such views are unnecessarily dismissive of valuable use cases - for example, the use case where I dont want to see the longest title say its the directors cut, I want to see the theatrical cut for the film. Its most intuitive and easy for a user to do that within the java menus of blurays. Frankly MPC-HC doesnt seem to get much action anyway these days in terms of dev commits and ongoing work - MPC-BE with the Russian devs on the other hand seem to be deeply engaged into going dev work.
phate89
28th November 2015, 23:52
One of the MPC-HC Devs here on Doom9 expressed his personal view that he couldnt care about full bluray menus when he'll just click through it to play the main title. Im not sure what the overall project view is however. Personally I think such views are unnecessarily dismissive of valuable use cases - for example, the use case where I dont want to see the longest title say its the directors cut, I want to see the theatrical cut for the film. Its most intuitive and easy for a user to do that within the java menus of blurays. Frankly MPC-HC doesnt seem to get much action anyway these days in terms of dev commits and ongoing work - MPC-BE with the Russian devs on the other hand seem to be deeply engaged into going dev work.
Without corner cases like director's cut there's a far better reason to need the menu. To "prevent piracy" some bluray have hundreds of mpls everyone with a different order of the same parts. Only one is correct but you don't have any way to tell what's the right one since they all have the same length and you can't check them all watching.. in this case the only solution is to use the menu or search manually online hoping to find it
Matching_Mole
29th November 2015, 14:38
For some series on bluray, episodes are split on multiple playlist, so the longest playlist is just one episode... For such case also, menu are required.
Nullack
29th November 2015, 23:24
Yes fellas, clearly there is multiple use cases for the feature
Given atleast one of the MPC-HC Dev is personally against it, and he also said on this forum that according to him no-one wants to work on it, on further reading of his post it would seem to me that MPC-HC as a project are against working on it. Heres the quote
This would require separate filter it isn't a job for the player. And since no one is willing to work on it. We have what we have. I personally care too little about menus which only made me click few times more before I can actually watch a video.
So I guess that leaves MPC-BE. Wonder what their thinking is?
nevcairiel
29th November 2015, 23:36
If you want to collect quotes from random developers, here is one for MPC-BE:
http://forum.doom9.org/showthread.php?p=1623157#post1623157
For me, most of the reasons posted here are not really things were menus are "required", if you want to switch from Directors Cut to Theatrical, you can just switch to the next playlist with the slightly shorter movie. Or switch the playlists for individual episodes.
Sure, there is no fancy menu to select them, but since you are using a desktop-focused player like MPC-HC or BE already, using a mouse to switch between playlists is still much faster than sitting through commercials and trailers.
The only thing which are truely painful without menus are extras and specials, but then again I really never watch those, ever. So thats where my personal motivation ends - not that I'm involved with the development of either of these players.
In any case, you should find a developer interested in this. This filter is no longer under proper development and could use some much needed improvements, and players need proper integration similar to DVD menus.
Its just how open source works, developers often just work on what they either want as a feature themself, or what they consider important. So motivate a developer to do the work for you, or become one! :)
Someone once started to work on a patch for MPC-HC, but it was never finished and vanished into the ether. No-one would object to a patch from an outside developer, if the developer is willing to ensure it integrates seamlessly and works fine.
Nullack
30th November 2015, 08:25
Thanks for sharing your thoughts Nevcairiel. I am certainly very appreciative of your lav filters, all the MPC HC and BE Devs, as well as the wider projects like ffmpeg. I realise that open source devs "tend to scratch their own itch" as the phrase goes and you as explain. The work that is done for free, is just awesome! My thanks to everyone who has helped in these projects - it really has resulted in video software that performs more reliably and is generally more useful than commercial alternatives. Hopefully over time there will be no user features missing in open source players as compared to commercial alternatives like bluray menu playback.
dukey
30th November 2015, 13:14
I don't have the time nor interest to attempt to integrate into MPC-HC. But the current design of the filter means it should be actually fairly easy to do. The current design means it'll work with EVR out of the box, but other renders would require more work due to the complex nature of how bluray renders its overlays. They'll just stop rendering the mainvideo stream and only render overlays. Current renders will render nothing unless you constantly invalidate the drawing window and force it to redraw. Other solutions would be custom interfaces with the renderer, or the filter itself could do all the mixing itself and spit out RGBX. This solution probably wouldn't work with DXVA. Java overlays draw immediately, but others such as subtitles, will queue up and need to be drawn at a specific time. This is where a renderer with multiple rendering pins comes in ..
The problem is really lack of interest, if people really cared, it would have happened. The mixing part is probably the easiest solution to solve anyway.
madshi
30th November 2015, 13:39
FWIW, newer madVR builds render all the time, even in stopped mode. Is there anything I can do to make madVR support happen?
But I suppose adding madVR support would be useless as long as there's no media player supporting this filter?
nevcairiel
30th November 2015, 13:41
Supporting madVR shouldn't need any changes in madVR itself, you could use the existing OSD or subtitle interfaces to draw interactive menus. But yeah, without any player supporting it, its kinda pointless.
madshi
30th November 2015, 14:11
I suppose if one media player added support for it, the others would probably follow suit sooner or later. dukey, I dont suppose you feel like adding madVR support, do you? If you did, I'd actively lobby my media player dev contacts to add support for this.
dukey
30th November 2015, 14:13
If you really are rendering even in stop mode. Supporting multiple pins would be great. Don't need anything fancy for the overlays, just RGBA/AYUV support with a bilinear resize would suffice. This would make integration trivial.
The custom mixer composites at 60fps or the refresh rate, which makes menus nice and responsive. But, worst case at 24, it's still quite usable.
dukey
30th November 2015, 14:15
I can take a look at madVR support with the current interfaces.
nevcairiel
30th November 2015, 14:30
Note that for commercial players there is also a question of legality and licensing. Open-Source often doesn't care, but someone that is making good money on the sales of a player probably should.
Multimedia is a patent license minefield. Someone who doesn't make money is often not a target worth going after, but someone that does ...
dukey
30th November 2015, 15:19
Commercial players will have to handle the license problem of decryption.
madshi
30th November 2015, 15:24
If you really are rendering even in stop mode. Supporting multiple pins would be great. Don't need anything fancy for the overlays, just RGBA/AYUV support with a bilinear resize would suffice. This would make integration trivial.
The custom mixer composites at 60fps or the refresh rate, which makes menus nice and responsive. But, worst case at 24, it's still quite usable.
I can take a look at madVR support with the current interfaces.
Rendering is done at the refresh rate.
Adding support for multiple pins would be possible, but quite a bit of work. If you could use one of the current interfaces that would save me a lot of time. But if that's really problematic for you, I guess I can look into adding support for multiple pins.
Note that for commercial players there is also a question of legality and licensing. Open-Source often doesn't care, but someone that is making good money on the sales of a player probably should.
Multimedia is a patent license minefield. Someone who doesn't make money is often not a target worth going after, but someone that does ...
Isn't the same true for decoders? Yet everybody is using ffmpeg/libav and there don't seem to be any problems. I'm not sure if Blu-Ray menu support would be much different?
Maybe it would. But then, if media players just add support for this libbluray DirectShow filter, but don't distribute it, I see no grounds for legal action against them. If users have to manually add this libbluray DirectShow filter, all problems should be solved, no?
Commercial players will have to handle the license problem of decryption.
I don't think it's a big problem if we only support un-encrypted content. After all there's Slysoft.
Manni
30th November 2015, 15:25
I would love to see this supported by MadVR/LAV and a player like MPC-BE.
I can't do much except say that these efforts would be much appreciated :)
madshi
30th November 2015, 15:30
@dukey,
you can check out the "madVR\developers\interfaces\mvrInterfaces.h" interfaces. Alternatively the XySubFilter-style subtitle interface might also be a good choice:
http://madshi.net/SubRenderIntf.h
The LAV Video Decoder also uses the XySubFilter-stype sub interface to transport DVD subtitles to madVR. One additional benefit of the XySubFilter-style subtitle interface is that MPC-HC's EVR-Custom renderer also supports it, IIRC. FWIW, you wouldn't have to support the complicated reposition logic. LAV doesn't support it, either.
Stereodude
1st December 2015, 01:29
For me, most of the reasons posted here are not really things were menus are "required", if you want to switch from Directors Cut to Theatrical, you can just switch to the next playlist with the slightly shorter movie. Or switch the playlists for individual episodes.
Sure, there is no fancy menu to select them, but since you are using a desktop-focused player like MPC-HC or BE already, using a mouse to switch between playlists is still much faster than sitting through commercials and trailers.
The only thing which are truely painful without menus are extras and specials, but then again I really never watch those, ever. So thats where my personal motivation ends - not that I'm involved with the development of either of these players.
Even the movie only crowd should want menu support. Without menu support you can't play back the movie with the correct audio and subtitle tracks properly & automatically selected. LAV automatically watches the first subtitle track it sees for forced subtitles. Often that's not the right one to monitor. The hearing impaired subtitle track is generally the first one. That track won't have the flagged forced subtitles. Additionally, there are a variety of discs where the "forced" subtitles aren't flagged as forced, but are in a separate subtitle stream that is automatically selected by VM commands when the disc playback is started from the menu.
BTW, on a multi episode TV series blu-ray how is someone supposed to know what playlist is which episode? They're not always in numerical order. A disc with 5 episodes doesn't necessarily have only 5 playlists to pick from with E01 being playlist 801, E02, being playlist 802, etc, etc... Some don't even have separate playlists for each episode, but one playlist.
Unless the only thing everyone plays is remuxed mkv's or ISOs where they've already gone through the process of fixing the subtitle situation I can't see how everyone doesn't see the current method as at least somewhat broken.
nijiko
1st December 2015, 21:00
For some series on bluray, episodes are split on multiple playlist, so the longest playlist is just one episode... For such case also, menu are required.
I have the problem too. In my some BD, bonus is longer than movie, so MPC-HC play bonus video (such as making video) by default...
I think this logic was wrong.
nevcairiel
1st December 2015, 21:00
I have the problem too. In my some BD, bonus is longer than movie, so MPC-HC play bonus video (such as making video) by default...
I think this logic was wrong.
Just switch the track using the title menu in MPC-HC.
Fullmetal Encoder
2nd December 2015, 00:20
But what, then, is the difference? To me, it's a larger frustration to have to right-click and navigate through multiple pop-up menus and then to have to discern which item to select among an enormous list of generically named Chapter entries than it is to click a couple of graphical menu items. I guess playlists and chapter files can fix this but that seems like a lot of extra work to solve a problem that already has a full-fledged solution in the menus that come on disc (a solution that we've already paid for) complete with human readable chapter names/descriptions. I understand that not everyone sees it the same way and I respect any developers decision to not work on this either out of personal preference or a lack of available time (the latter would apply to me) but personally, as a user and as a would-be developer myself, it's very frustrating that all we have available is a half-assed implementation (DVD menus, but no BD menus) in a media player that can't, uh, play the media.
As for finding developers, that's why this whole subject keeps coming back around. It's in the hopes that someone would be willing to create it. But amazingly (magically), we are surrounded only by developers that want nothing to do with it; filter developers, renderer developers, player developers, library developers and not a single taker :D
ddjmagic
2nd December 2015, 01:39
It's definitely a shame to see no real interest from developers who would probably make a huge difference, though I understand the reasoning.
I'm a big fan of this project, a proper 'full' BD player is the only thing missing from my HTPC, the licensed players are just too slow and bloated for my liking.
I like just playing the main movie as much as anyone, but it would be nice to have the option to play the 'full' disc too, especially in a nice lightweight player like MPC.
Stereodude
2nd December 2015, 05:21
There's a reason why I recently bought several 3D capable stand alone Blu-ray players without Cinavia. I wish we had a viable PC solution, but we don't and I suspect we never will. For whatever reason the people with the know-how to do it can't see any value in other people's use cases or that there is a compelling reason to do this.
I'd suggest putting together some sort of crowdfunded bounty to pay someone to do it, but a bounty has been completely ineffective at getting MVC support added to FFMPEG/libavcodec.
Nullack
2nd December 2015, 05:30
The problem is the licensed commercial players just dont work properly. For example in PowerDVD 15, deinterlacing has not worked properly since I reported it to Cyberlink in version 10 of powerdvd. This is for both top field first and bottom field first interlaced content. Powerdvd 15 has major problems with UHD 4K resolutions on Windows 10, especially involving 3D bluray discs. Cyberlink has an awful track record in terms of software quality and robust testing processes. They claim they are windows 10 platform ready, when in fact they have developed kernel mode processes that fail Microsofts tests for platform readiness - the bloat goes down to include kernel mode device drivers, and those systems components from Cyberlink dont even pass Microsofts device driver verifier tests. They cannot actually claim they are windows 10 platform ready, because they fail the readiness tests. All they do is say they are sorry on their forums, and their customer support is next to useless where they often just give irrelevant boilerplate responses or ask for things already provided in the original support ticket. They fail to engage their community in any meaningful way - like they do these so called "betas" on their forums, but they lock the beta thread forum topic so no user can actually report beta bugs and help contribute to bug fixing. I ended up having to start other threads on basic beta stuff like how does Cyberlink want beta people to engage them on bug reports.....And then they promptly chose to ignore the majority of real and repeatable bugs that I reported. Honestly, I cant imagine a worse software company than Cyberlink and I've been around for a long long time in the industry.
Thankfully with FFMPEG, Lav Filters, the various MPC forks, its a very different situation where high quality, robust and feature useful software is provided. Ironically for free!
I honestly feel the challenge for open source video players is to build on what they do well now, to plug the feature gaps that exist to commercial software. Like bluray menu support, like easy methods for 3D MVC bluray disc playback including auto fullscreen changes to 3D mode etcetc.
I think part of the problem is the level of piracy in video. If piracy didnt exist, there'd be allot more interest in supporting real physical bluray disc stuff, like full bluray menus.
dukey
3rd December 2015, 13:03
I tested powerdvd a bit when working on dslibbluray, to check discs were drawing correctly. I really didn't think the player was that bad or bloated.
3d is a difficult problem because there are so many ways of doing it, and so many potential output modes. The decoding is probably the easiest part, there are no standard methods to pass 3d to a renderer. And up until dx11? there was no standard way of even outputting stereo. OpenGL has supported quad buffer since the 90's, but only high end hardware ever supported it.
nijiko
3rd December 2015, 13:30
Just switch the track using the title menu in MPC-HC.
For some BD, that maybe preventing pirates(?), it must use BD Menu/Nav to play, there is no .mpls, or standalone .bdmv, the movie was splitted to a lot of randomly .bdmv files, which order was disrupted.
Nullack
4th December 2015, 22:17
I really didn't think the player was that bad
* Deinterlacing does not work and has not worked since I first reported it in PowerDVD10, both in TFF and BFF formats
* The bloat includes kernel mode ring 0 processes that fails to meet Microsofts platform readiness tests. They falsely claim in marketing support for certain MS OS's, yet they have defective software in kernel mode processes that both prevents them form being eligible for the windows platform readiness, and worse, means that for users the Cyberlink kernel mode processes are unreliable and the cause of much of the BSOD's and general lack of robustness that comes from Powerdvd.
* Subtitles are horrendously broken for high DPI situations say with 4K
* 3D bluray playback for Windows 10 doesnt work, despite what they claim in marketing. Generally their marketing is deceptive and untrue against the reality of what the software actually provides. Theyve done this before when there was a scandal with DVD audio support being pulled from the software yet they continued to market it as a feature in multiple versions of the product. A fundamental tenant of trade practices law and spirit, is that in good faith products and services do what is claimed they can do.
* Serious security problems with the java bluray implementation in PowerDVD has resulted in users running compromised machines that are weak to cyber attack
* I could go on, but suffice to say there is a litany of issues with PowerDVD
Blight
5th December 2015, 23:38
I'm looking into integrating support for this filter into Zoom Player, sadly it doesn't have a translation of the API to Delphi which adds some work load on my side.
If anyone is volunteering to translate IBDNav.h (http://sourceforge.net/p/dslibbluray/code/HEAD/tree/branch/NextPVR/dslibbluray/IBDNav.h) to pascal, it would help speed things along.
I'd also like to see it work with MadVR, so any progress on that front would certainly add motivation.
dukey
6th December 2015, 11:38
How about something like this?
http://rvelthuis.de/programs/convertpack.html
The key input function might be enough to get you going. But how do you manage with the rest of the directshow filters? Do they all have pascal APIs ?
Blight
10th December 2015, 15:42
dukey:
Some (like MadVR) have pascal header files, some I had to translate myself, but I'm not an expert in these conversions and may introduce errors.
The DirectShow headers themselves are translated, so only custom interfaces require a translation.
I looked at that program, it doesn't support my old version of delphi i'm afraid.
jmone
16th December 2015, 08:06
Most of the time not having a Menu is great as the main title just plays. Alt Endings are not to bad as I can Identify and tag them in JRiver Media Center easy enough post ripping. Where I would really love to have a BD Menu however is for TV Eps disks as there is no easy way on some of these disks to work out what playlist = what eps as many seem to deliberatly no keep any order in the mpls naming. To make it harder they now seem to have multiple playlists for the same eps (one with a "in the last eps" into and one without).
I'd love to have an option in a player like JRiver to bring up a BD Menu when required.
Nullack
19th December 2015, 09:31
Adding to the list of use cases expressed here, I've recently learnt that forced bluray subtitles wont work reliably for all discs without bluray full menu support. It seems to me there is a whole bunch of use cases as to why full bluray menus is an important user feature. Its just a shame VLC is the only project pushing it in their version 3 nightly builds. I look forward to what might happen with Zoom player, I have not to date experimented with it.
Stereodude
19th December 2015, 15:25
Adding to the list of use cases expressed here, I've recently learnt that forced bluray subtitles wont work reliably for all discs without bluray full menu support.
I already hit on that in post #455.
Nullack
7th January 2016, 01:23
Thanks Stereodude.
Sitting down with the family to watch the bluray disc "Wall-e" I realised yet another frustration with the lack of bluray menu support with open source players. There is visual content in wall-e that changes according to selections in the menus. Without it, the viewer misses out in important dramatic/story aspects of the film. Like there is a scene early on where wall-e travels over an old newspaper, which by default using mpc-be, lav filters results in the newspaper footage being in some sort of Russian like language rather than english which is what the audio track defaults too. That particular scene is setting the story context for why humans arent on planet earth anymore.
I can accept when open source Devs say they dont want to personally work on it. However, for any open source devs to claim that it is a viable substitute to have what is implemented now where we dont have full menus and we just get the longest title played by default, well thats an ignorant position to take that dismisses some very real use cases. By any measure, whats implemented now is sorely lacking. And I deeply suspect that if it werent for rampant piracy far more people would be interested in this feature.
v0lt
28th November 2016, 04:33
Hi.
"EVR Custom Mixer" can be used as an external renderer?
I registered it on my system, but it does not appear in the list of DirectShow filters.
Orf
5th December 2016, 09:22
@v0lt
EVR Custom Mixer is not standalone DS filter. It is one of the interfaces implemented by EVR itself. You need to create EVR instance at first, Custom Mixer instance at second and then substitute EVR standard mixer with custom using the IMFVideoRenderer::InitializeRenderer (https://msdn.microsoft.com/en-us/library/windows/desktop/ms704667(v=vs.85).aspx) method
Aman87
25th January 2017, 17:55
Hey Guys,
any updates? I just tried VLC 3.0 nightly and it did a good job of displaying the blu-ray menu (Game of Thrones S6 and Breaking Bad S3 tested)
It would be great to have that in MPC-HC and preferably with madvr. Its just a pain to watch Tv series and bonus features without it.
fairchild
26th January 2017, 02:51
Hey Guys,
any updates? I just tried VLC 3.0 nightly and it did a good job of displaying the blu-ray menu (Game of Thrones S6 and Breaking Bad S3 tested)
It would be great to have that in MPC-HC and preferably with madvr. Its just a pain to watch Tv series and bonus features without it.
I've never been able to get VLC to work with blurays, even when doing all the AACS key file copying. The only thing that works is either decrypting it with some other software like AnyDVD or using a blu-ray player that has built in decrypting. This is on Windows7 64-bit. And yes, I tried the latest VLC nightly (the 64-bit) and copied the necessary AACS decryption files around. :(
hubblec4
26th January 2017, 02:59
Thanks for this info. It looks good but work not perfect yet.(Tested with Star Trek TNG)
hubblec4
26th January 2017, 03:02
I've never been able to get VLC to work with blurays, even when doing all the AACS key file copying. The only thing that works is either decrypting it with some other software like AnyDVD or using a blu-ray player that has built in decrypting. This is on Windows7 64-bit. And yes, I tried the latest VLC nightly (the 64-bit) and copied the necessary AACS decryption files around. :(
Im not sure but makemkv has a dll for this and you can copy this to vlc.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.