cporrasa / xy-vsfilter

Automatically exported from code.google.com/p/xy-vsfilter
0 stars 0 forks source link

Custom interface for rendering subtitles on an RGBA texture(s) | (XySubFilter for madVR) [Part 3] #152

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
Part 1: http://code.google.com/p/xy-vsfilter/issues/detail?id=40

Part 2: http://code.google.com/p/xy-vsfilter/issues/detail?id=91

Topic to continue discussions about the subtitle interface we created along 
with madshi, which is now supported by madVR as well as xy-VSFilter in the form 
of XySubFilter.

Latest revision of the new subtitle interface:
http://madshi.net/SubRenderIntf.h

Original issue reported on code.google.com by cyber.sp...@gmail.com on 16 Jul 2013 at 6:50

GoogleCodeExporter commented 8 years ago
> But I think this should already be possible right now,
> simply by blocking the auto-load helper, right?

Yes, I'd assume so. Though if you do not desire XySubFilter to automatically 
find and load external subtitles itself when it enters the graph, you'd need to 
disable "Loading -> External" in settings. Which is another difference compared 
to VSFilter.

VSFilter (auto-loading version):
Renderer
Loads external and embedded subtitles
MERIT_PREFERRED + 2
Any Type pin (dummy)
Video pin (real)
Subtitle pin (real)

VSFilter:
Renderer
Loads embedded subtitles only
MERIT_DO_NOT_USE
Any Type pin (dummy)
Video pin (real)
Subtitle pin (real)

XySubFilterAutoLoader
Helper Filter
Loads XySubFilter (if needed)
Unloads VSFilter (if needed)
Merit 0xFFFFFFFF
Any Type pin (dummy)

XySubFilter
Renderer
Loads external and embedded subtitles
MERIT_PREFERRED + 2
Subtitle pin (real)

Original comment by cyber.sp...@gmail.com on 13 May 2014 at 7:21

GoogleCodeExporter commented 8 years ago
Is there some sort of API/function available with which MPC-HC could tell 
XySubFilter to not load external subtitles automatically? And another API with 
which MPC-HC could tell XySubFilter to load the external subtitle file XXX? I 
think those 2 APIs might be needed for MPC-HC to automate everything? These 
might also be needed for xy-VSFilter, I guess.

Of course MPC-HC could just change the global XySubFilter settings to disable 
automatic loading of embedded subtitle tracks, but I think doing that would not 
be a good idea because if the user has different media players installed, he 
might want to use XySubFilter's automatic loading of external subtitle tracks 
for some other media player, while MPC-HC might want to have that functionality 
disabled (for only for MPC-HC, not globally).

Original comment by mad...@gmail.com on 13 May 2014 at 7:50

GoogleCodeExporter commented 8 years ago
> I think those 2 APIs might be needed for MPC-HC to automate everything? 
> These might also be needed for xy-VSFilter, I guess.

Both these functions already exist in the APIs (IDirectVobSub.h & 
IDirectVobSubXy.h), as well as nearly all other settings and functionality. Use 
of the API is the recommended way a media player should interact with and 
control VSFilter-based filters. Zoom Player's SmartPlay (no XySubFilter support 
yet) as well as MPC-BE already make extensive use of these APIs.

FWIW, a couple months ago we opened a feature request on MPC-HC's issue tracker 
to backport MPC-BE's VSFilter API integration: 
https://trac.mpc-hc.org/ticket/4122

Original comment by cyber.sp...@gmail.com on 13 May 2014 at 8:21

GoogleCodeExporter commented 8 years ago
And these APIs are local to the current process / media player (no global 
changes)?

Sounds great!

Original comment by mad...@gmail.com on 13 May 2014 at 8:24

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
One problem with implementing an option to choose the subtitle provider is that 
we will force the user to make a single choice between the providers. This may 
be a problem for users who have a setup where either xy-VSFilter or XySubFilter 
can be loaded. But I am not at all familiar with these kinds of setups.

How does the user currently configure XySubFilter to correctly fallback to 
xy-VSFilter? On based on what criteria will this fallback happen?

Original comment by Jules.B...@gmail.com on 14 May 2014 at 1:20

GoogleCodeExporter commented 8 years ago
> on what criteria will this fallback happen?

Consumer Detection:
VSFilter is found in the graph, but no Consumer is detected.

Loading == Load when needed:
Embedded subtitles enabled? Subtitle pin? Does the splitter exist in whitelist 
(HKCU\Software\Gabest\XySubFilter\KnownSourceFilter\)?
External subtitles enabled? External subtitles found in path? Does the external 
subtitle format exist in whitelist 
(HKEY_CURRENT_USER\Software\Gabest\XySubFilter\General\load_ext_list)?

Loading == Do not Load

Original comment by cyber.sp...@gmail.com on 14 May 2014 at 2:32

GoogleCodeExporter commented 8 years ago
> One problem with implementing an option
> to choose the subtitle provider is that
> we will force the user to make a single
> choice between the providers.

You could add an option like "use default subtitle renderer based on DirectShow 
merit" or something like that, which would simply disable the ISR and leave the 
rest up to the DirectShow graph builder logic.

Original comment by mad...@gmail.com on 14 May 2014 at 4:16