cporrasa / xy-vsfilter

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

XySubFilter always Inserts itself into Graph #189

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. Build manual graph with ffdshow subtitle renderer, and no XYSubFilter
2.
3.

What is the expected output? What do you see instead?
XYSubFilter inserts itself into the graph automatically, even though ffdshow is 
already the subtitle filter and the graph was built manually. XYSubFilter 
should not insert itself into the graph.

What version of the product are you using? On what operating system?
XYSubFilter Beta 2.

Please provide related subtitle script (if any). And the less characters
the script is, the less effort I have to make to fix the issue, so if you
could make the script as simple as possible, that would be appreciated.

Please provide any additional information below.
Logged at request of bLight, he is still having some issues getting XySubFilter 
to work with Zoom Player. He said that "There is a conflict issue between 
ffdshow subtitles and xysubfilter, if xysubfilter is registered it inserts 
itself into the graph automatically even while the ffdshow subtitle filter is 
in the graph and the graph is built manually" and he asked me to log a bug 
report for it.

Original issue reported on code.google.com by forum.an...@gmail.com on 24 Jun 2014 at 5:22

GoogleCodeExporter commented 8 years ago
Assuming SmartPlay still performs manual subtitle detection, filter loading, 
and pin connections, is bLight remembering to set set XySubFilter's loading 
setting to "Do not Load" via the API and/or blocking XySubFilterAutoloader via 
merit override on graph creation?

Original comment by cyber.sp...@gmail.com on 24 Jun 2014 at 2:19

GoogleCodeExporter commented 8 years ago
Is the API this document?
http://madshi.net/SubRenderIntf.h

If not, a link would be good :)

bLight is trying to de-register XYSubFilter, but regsvr32 /u does not work when 
UAC is enabled. For this function, he would prefer a registry key that he can 
set during installation of the filter.

Original comment by forum.an...@gmail.com on 25 Jun 2014 at 10:44

GoogleCodeExporter commented 8 years ago
Sorry - the registry key thing is not about UAC, forget that. It is regarding 
being able to disable the auto-loading behaviour of XYSubFilter that clashes 
with ffdshow.

Original comment by forum.an...@gmail.com on 25 Jun 2014 at 12:26

GoogleCodeExporter commented 8 years ago
So in summary:
1. Link to the API;
2. How to disable the auto-loader? bLight would like an option to totally 
disable the auto-loading functionality, and he would prefer a registry option, 
as having to use an API call presumably requires you to load the filter first.

Original comment by forum.an...@gmail.com on 25 Jun 2014 at 12:43

GoogleCodeExporter commented 8 years ago
Legacy VSFilter 2.39 API:
https://github.com/Cyberbeing/xy-VSFilter/blob/xy_sub_filter_rc3/src/filters/tra
nsform/vsfilter/IDirectVobSub.h

New API with XySubFilter specific functions included:
https://github.com/Cyberbeing/xy-VSFilter/blob/xy_sub_filter_rc3/src/filters/tra
nsform/vsfilter/IDirectVobSubXy.h

If you find it desired to just set the loading setting for XySubFilter 
system-wide, the related registry values are:
HKEY_CURRENT_USER\Software\Gabest\XySubFilter\General\
load_level = [disabled|when_needed|always]
emb_load = [0|1]
ext_load = [0|1]

emb_load & ext_load only apply if when_needed is set.

Original comment by cyber.sp...@gmail.com on 25 Jun 2014 at 1:13

GoogleCodeExporter commented 8 years ago
Great, thanks - much appreciated. I am happy for the report to be closed now.

Original comment by forum.an...@gmail.com on 26 Jun 2014 at 9:43

GoogleCodeExporter commented 8 years ago
There is another issue here,

When setting the "load_level" key to "disabled", trying to connect an embedded 
sub pin from the source filter to xySubFilter fails with error 0x80070490 
(E_PROP_ID_UNSUPPORTED).

When "load_level" is set to "when_needed", xySubFilter automatically inserts 
itself into graphs I'm building manually...

What I'm trying to do is:

1. Add the filter manually when sub files a sub-pin are detected by the player, 
the video renderer is set to MadVR and xySubFilter is set in the Player's 
options dialog.
2. If none of the conditions in #1 are set, the filter shouldn't load.

Original comment by inmat...@gmail.com on 26 Jun 2014 at 12:34

GoogleCodeExporter commented 8 years ago
I don't understand this "automatically inserts itself into graphs I'm building 
manually" part.

Please ensure you are using latest madVR and XySubFilter Beta2. madVR versions 
0.87.4 and prior utilized a different auto-loading method which had madVR 
itself always load XySubFilter into the graph. This behavior was removed in 
madVR 0.87.5, and XySubFilter Beta2 depends on DirectShow merit alone to enter 
the graph.

Otherwise, why are you allowing DirectShow unrestricted ability to load and 
connect filters by merit when you are building the graph manually with 
SmartPlay? DirectShow merit is the only way XySubFilter could possibly enter 
the graph automatically.

1) If you do not want DirectShow to load XySubFilter by merit, you need to 
override the merit of XySubFilter & XySubFilterAutoLoader to (MERIT_DO_NOT_USE) 
within your graph. In MPC-HC's FGManager.cpp you can see an example of how 
overriding filter merits locally within the current graph is performed: 
https://github.com/mpc-hc/mpc-hc/blob/master/src/mpc-hc/FGManager.cpp#L2091 
https://github.com/mpc-hc/mpc-hc/blob/master/include/moreuuids.h#L1188

2) If you only desire to dynamically restrict XySubFilter from loading embedded 
and/or external subtitles on graph creation, the API functions exist for that 
purpose.

If you wanted to make XySubFilter behave like VSFilter:
See, https://code.google.com/p/xy-vsfilter/issues/detail?id=152#c151
Perform 1) to override merits, and then disable auto-loading of external 
subtitles with 2)

Original comment by cyber.sp...@gmail.com on 26 Jun 2014 at 3:55

GoogleCodeExporter commented 8 years ago
I'm using MadVR 0.87.10.0.
I am manually building the graph, connecting each filter directly.

I did an initial test and couldn't find any code path that would have created 
xySubFilter filter when I set Zoom Player to use ffdshow as the sub filter. But 
somehow, xySubFilter filter was in the graph.

I will double check my code to verify I didn't miss anything and report back.

Original comment by inmat...@gmail.com on 27 Jun 2014 at 9:51

GoogleCodeExporter commented 8 years ago
I've attached the latest XySubFilter logging build, which may help you track 
this down. By default the log is written to C:\ root, but can be changed in 
XySubFilter.dll.properties if needed. Also, keep in mind that logging builds 
often have a performance penalty on intense subtitles compared to normal builds.

Original comment by cyber.sp...@gmail.com on 27 Jun 2014 at 4:17

Attachments: