Log in

View Full Version : Media Browser Theater


Pages : 1 [2]

luke823
1st December 2013, 23:44
In the meantime, can you look at dvd folder playback? that seems to have been broken since you merged your changes.

Also, if I stream from a url, do you know how I can add custom http headers, such as a user agent? thanks.

andyvt
7th December 2013, 11:03
In the meantime, can you look at dvd folder playback? that seems to have been broken since you merged your changes.

Also, if I stream from a url, do you know how I can add custom http headers, such as a user agent? thanks.

DVD folders work in my local branch. I will try with the master branch.

To add a header you will need to implement something in the source filter (assuming that you're using DirectShow). What source are you using?

luke823
7th December 2013, 15:04
DirectShow. I just don't have a code sample for it. Thanks, let me know if you can solve dvd folders.

Also, to enable FSE, go here to line 208 and set the false param to true:

https://github.com/MediaBrowser/MediaBrowser.Theater/blob/master/MediaBrowser.Theater.DirectShow/InternalDirectShowPlayer.cs

The window comes up but then hangs the app and it has to be killed via task manager. I'm not sure yet what the issue is but perhaps you can spot it.

hubblec4
7th December 2013, 21:45
hey luke

is there a chance to support mkv-dvd-menu?
it is a mkv-feature but no splitter is able to support it( at the moment).

luke823
7th December 2013, 21:52
We rely on LAV filters entirely for that type of thing. If we're going to start pursuing our own implementations of these kinds of things we really need to add another regular contributor to the team who can take on some ownership of the video player.

hubblec4
7th December 2013, 22:05
mmh LAV is all around the world...(it is the best splitter at the moment), but i think nev will never support mkv-dvd-menu.

great pity.

andyvt
7th December 2013, 23:40
DirectShow. I just don't have a code sample for it. Thanks, let me know if you can solve dvd folders.

Also, to enable FSE, go here to line 208 and set the false param to true:

https://github.com/MediaBrowser/MediaBrowser.Theater/blob/master/MediaBrowser.Theater.DirectShow/InternalDirectShowPlayer.cs

The window comes up but then hangs the app and it has to be killed via task manager. I'm not sure yet what the issue is but perhaps you can spot it.

I didn't get a chance to look at FSE, but I did get VIDEO_TS working. For some reason that I don't understand the IDvdInfo2 interface stops being valid (is that the same issue you were seeing?). I changed it so that it is no longer assumed to be there, which gets everything going again.

Also made a few changes for supporting DVD menu navigation when not in FSE, but before moving any further we should discuss the best approach. The current implementation exposes the key/mouse events from the hidden window, but that only works when it has focus; which it does not until it's clicked or otherwise selected. Since I don't really understand the larger framework that the DS player exists in I didn't want to start forcing things.

luke823
8th December 2013, 02:08
Excellent, thanks. I'll merge them in.

Tell me what you need in regards to input. I assume what you need is the ability to capture mouse and keyboard events from inside the player, is that correct? If that's the case, I'll re-work it so that you can do that and continue on.

luke823
8th December 2013, 04:18
nevermind, i think i misread. it sounds like what you need is for the player window to be activated and in focus when navigating to the fullscreen view.

andyvt
8th December 2013, 14:03
nevermind, i think i misread. it sounds like what you need is for the player window to be activated and in focus when navigating to the fullscreen view.

Having it in focus is one way to make it work, but not the only way and probably not the best way. The current implementation will only work if it is, but I think it's better to have a unified way to handle/pipeline user input at the application level and let interested handlers subscribe to it because user input can potentially come from many sources (keyboard, mouse, IP control, windows messages, etc.). I don't understand enough about the app's arch to decide where or how to build that though.

luke823
8th December 2013, 19:12
ok, i'll look at that. In the meantime, you're able to continue on, right? If such an abstraction is provided it will still require letting the consumer know where they're listening for messages from - for example, you wouldn't want to interpret regular navigation as dvd navigation, so you need to know the messages are coming from the video player.

andyvt
9th December 2013, 10:47
Input doesn't really originate from the player, it always comes from the user. It's up to the application to understand the intent of the user and act accordingly. The user input manager can be designed to broker input (e.g. priority pipeline using an "hasbeenhandled" property). The UI should probably get first crack at input and have the intelligence to know if it should handle it (is it on top, active, etc.) then forward anything that hasn't been dealt with downstream to other handlers (e.g. the video player).

luke823
9th December 2013, 16:05
Feel free to extend IUserInputManager for this if you like. It's purpose was to abstract user input.

Also minor issue. After merging your changes, if you resize the window during playback it crashes the app.

andyvt
9th December 2013, 17:23
Got latest ->
---------------------------

---------------------------
There was an error launching Media Browser: This license has expired on 1/1/2013 and is not valid for use with this release.
Please see servicestack.net or contact team@servicestack.net for more details.
---------------------------
OK
---------------------------

luke823
9th December 2013, 18:50
is that server or mbt?

luke823
9th December 2013, 18:57
In any event, try now.

andyvt
10th December 2013, 14:45
All good. You should see a pull request.

luke823
10th December 2013, 17:22
Sweet, thanks. All merged.

luke823
10th December 2013, 17:23
Fyi- there are two new guys besides me who are going to be working on the ui, so development should start to move faster now.

luke823
12th December 2013, 19:12
Minor issue spotted - the resize crash is fixed during playback, but still occurs if you resize after playback.

luke823
11th January 2014, 02:58
Andy, thanks for your recent pull request. Wondering if you're able to do a little bit more with dvd playback? Also, do you have any thoughts on the reports of random playback failures that we sometimes get? Is there any more work that needs to be done in terms of blocking unwanted filters? Thanks.

andyvt
12th January 2014, 17:21
Andy, thanks for your recent pull request. Wondering if you're able to do a little bit more with dvd playback? Also, do you have any thoughts on the reports of random playback failures that we sometimes get? Is there any more work that needs to be done in terms of blocking unwanted filters? Thanks.

Sure, what needs adding/fixing?

Do you know why the playback issues are showing up (are you sure it's unwanted filters)? I can't remember off-hand if all the connections b/w filters are via ConnectDirect or Connect. If it's the first, DS shouldn't try to load anything. It's possible to block filters either via a blacklist or whitelist. If you want to add something like that it's not hard.

luke823
12th January 2014, 21:13
Well we are getting some sporadic reports of stuttering:

http://mediabrowser3.com/community/index.php?/topic/3820-like-mbt-but-its-unusable-for-video-playback/
http://mediabrowser3.com/community/index.php?/topic/2517-stuttering-video-on-some-files/

As far as dvd goes, where did you leave off with supporting menus? is that complete? if it's complete then i would say a few things that could be added are:

- ability to load arbitrary external srt into the filter chain
- ability to change display aspect ratio - if you add friendly get/set methods to the player, we'll then add it to the UI
- ability to load ffdshow as a post processor (only post processor). if you were to add this and just have it turned off, we could then add a UI setting to control it

andyvt
16th January 2014, 07:59
Well we are getting some sporadic reports of stuttering:

http://mediabrowser3.com/community/index.php?/topic/3820-like-mbt-but-its-unusable-for-video-playback/
http://mediabrowser3.com/community/index.php?/topic/2517-stuttering-video-on-some-files/

As far as dvd goes, where did you leave off with supporting menus? is that complete? if it's complete then i would say a few things that could be added are:

- ability to load arbitrary external srt into the filter chain
- ability to change display aspect ratio - if you add friendly get/set methods to the player, we'll then add it to the UI
- ability to load ffdshow as a post processor (only post processor). if you were to add this and just have it turned off, we could then add a UI setting to control it

Stuttering is probably because we don't explicitly set HWA. If users don't set that themselves it will be an issue on low-end machines. I'll change the player to take a parameter for that and the audio mode (PCM v. Bitstreaming) when I get a chance, but longer term it should be surfaced as a setting in the GUI so users can specify how they want it to work. I think the safest default setting is DXVA Copyback, but those with older Intel GPUs will want to use QuickSync instead for better VC-1 support.

I think we left menus off where the hidden window needs to receive user input from the main window. If that's wired now, then it should work.

andyvt
16th January 2014, 08:00
- ability to load ffdshow as a post processor (only post processor). if you were to add this and just have it turned off, we could then add a UI setting to control it

What's the use case for this feature?

luke823
16th January 2014, 22:27
What's the use case for this feature?

svp. not high priority at all though.

luke823
17th January 2014, 02:42
I've added the two new settings to the configuration screen.

andyvt
17th January 2014, 10:21
svp. not high priority at all though.

I think using madVR's smooth motion is a better option. I'll see if it's possible to do a runtime config of madVR like it is with LAV.

luke823
17th January 2014, 15:23
I think using madVR's smooth motion is a better option. I'll see if it's possible to do a runtime config of madVR like it is with LAV.

ok. if it's going to cause a major impact to the code then I would say let's not do it, but if it's as simple as adding another filter then go ahead.

andyvt
17th January 2014, 15:44
ok. if it's going to cause a major impact to the code then I would say let's not do it, but if it's as simple as adding another filter then go ahead.

Enabling smooth motion is just a setting for madVR. It eliminates telecine judder when playing at non-native-multiple refresh rates. The basic idea is the same as SVP, w/o the unwanted side effects of frame interpolation.

RetroElectro
17th January 2014, 19:24
Enabling smooth motion is just a setting for madVR. It eliminates telecine judder when playing at non-native-multiple refresh rates. The basic idea is the same as SVP, w/o the unwanted side effects of frame interpolation.

These are two different algorithms for frame rate conversion that people will have different opinions on. Most high end TVs with FRC have user selectable algorithms to support this. Some content such as CG animation looks better with frame interpolation, but again, it's a user preference. Including the FFDshow filter allows the use of avisynth filters so you can use fk3db for debanding, limited sharpen faster for sharpening, etc.

luke823
23rd January 2014, 17:58
Hey Andy,
There are some reports with the new changes that decoding isnt' working:

http://mediabrowser3.com/community/index.php?/topic/4160-recent-build-lost-audio

I'm assuming with the new bitstream setting you added that means we're going to have to add more settings in regards to decoding formats. is that correct?

andyvt
23rd January 2014, 18:44
Hey Andy,
I'm assuming with the new bitstream setting you added that means we're going to have to add more settings in regards to decoding formats. is that correct?

Yes, or make them set it in LAV's config dialog (not ideal but workable).

luke823
12th April 2014, 18:58
Andy, good stuff, thanks. We'll check out the new COM registration in your fork and merge it in.

andyvt
12th April 2014, 20:59
Andy, good stuff, thanks. We'll check out the new COM registration in your fork and merge it in.

To clarify. The change is to use registration free COM similar to how JMC does it for their "Red October" engine.

andyvt
12th April 2014, 21:25
Probably should also point out that the main driver for doing this is the custom EVR presenter developed to enable DXVA2 + subtitles.

luke823
7th May 2014, 03:43
Are there any people here with expert level experience with ffmpeg and media encoding in general? I imagine there must be. I'm looking for people who might be willing to spare a little of their time and help with some Media Browser projects. Thanks.