View Full Version : directshow Bluray disc navigator filter base on libbluray
Pages :
1
2
3
4
5
6
7
8
[
9]
10
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 ...
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.