View Full Version : xy-VSFilter Project (High Performance VSFilter Compatible Subtitle Filters)
cyberbeing
19th July 2013, 17:15
Our project was first publicly released in 2011, with the goal of bringing VSFilter performance closer to that of Libass. We succeeded.
xy-VSFilter has been included in most well known codec packs (CCCP, K-Lite, Shark, KCP), as well as distributed with players like Zoom Player.
Now in 2013, we bring XySubFilter, a collaboration with madshi (developer of madVR) using a brand-new subtitle interface for high quality rendering.
__________
Stable Release
The current xy-VSFilter stable version is: 3.0.0.306 (git 9a21450)
The current XySubFilter stable version is: 3.1.0.752 (git 7cdd471)
xy-VSFilter .zip Archive (32-bit) (https://github.com/Cyberbeing/xy-VSFilter/releases/download/3.0.0.306/xy-VSFilter_3.0.0.306_x86.zip) | xy-VSFilter .zip Archive (64-bit) (https://github.com/Cyberbeing/xy-VSFilter/releases/download/3.0.0.306/xy-VSFilter_3.0.0.306_x64.zip)
Debug Symbols for XySubFilter 3.0.0.306 (https://github.com/Cyberbeing/xy-VSFilter/releases/download/3.0.0.306/xy-VSFilter_3.0.0.306_Debug_Symbols.7z)
Installation Instructions (http://code.google.com/p/xy-vsfilter/#Install)
Troubleshooting Q&A (http://code.google.com/p/xy-vsfilter/#Troubleshooting_Q&A)
XySubFilter .zip Archive (32-bit) (https://github.com/Cyberbeing/xy-VSFilter/releases/download/3.1.0.752/XySubFilter_3.1.0.752_x86.zip) | XySubFilter .zip Archive (64-bit) (https://github.com/Cyberbeing/xy-VSFilter/releases/download/3.1.0.752/XySubFilter_3.1.0.752_x64.zip)
Debug Symbols for XySubFilter 3.1.0.752 (https://github.com/Cyberbeing/xy-VSFilter/releases/download/3.1.0.752/XySubFilter_3.1.0.752_Debug_Symbols.7z)
Note: XySubFilter requires a compatible subtitle consumer. We recommend madVR 0.87.5+ (http://madshi.net/madVR.zip) or MPC-HC 1.7.2+ (EVR-CP) (http://mpc-hc.org/)
After downloading XySubFilter, you must ensure to run the 'Install' bat (not only replace) or else XySubFilter's autoload helper required for entering the DirectShow graph with external subtitles will not be installed.
__________
Preview Release
The current xy-VSFilter beta version is: None
The current XySubFilter beta version is: None
__________
What Is Different
Recent Changelog (https://github.com/Cyberbeing/xy-VSFilter/releases)
Old Changelog (http://code.google.com/p/xy-vsfilter/wiki/ReleaseNotes?tm=6)
Significantly faster overall compared to Libass.
Up to multiple orders of magnitude faster than VSFilter 2.41
High resolution subtitle rendering (XySubFilter only)
External support for PGS/HDMV subtitles (XySubFilter only)
New Style Override Dialog (XySubFilter only)
Force Default Style (XySubFilter only)
Support U+10000-U+10FFFF UTF-8 encoded character (XySubFilter only)
Subpics are now drawn directly in YUV/RGB as needed to improve performance
Official VSFilter always rendered subtitles in RGB and did a RGB -> YUV conversion when outputting YUV formats
Floating-point Gaussian Blur implementation (higher quality + significantly faster with large blur values)
More efficient Border code (higher quality + up to 12x faster with large border sizes)
More efficient Clip code (significantly faster + up to 1.8GB reduction in RAM usage when rendering gradients)
More efficient Color Conversion, Chroma Placement, Alpha Blending, and Rasterization code (SSE2 optimized)
Alpha blending on dirty areas of the frame only
Alpha-blending with sub-sampled/interlaced chroma where applicable
Addition of numerous caches to speed up animated effects
Proper implementation of animation detection to speed up static typesetting
New script parser to speed up loading of very large subtitle scripts
75% reduction in CPU load overhead when idle
__________
Create New Bug Report (http://code.google.com/p/xy-vsfilter/issues/entry)
Reported Issues List (http://code.google.com/p/xy-vsfilter/issues/list)
cyberbeing
19th July 2013, 17:16
MPC-HC & MPC-BE Users:
http://i.imgbox.com/te6UYrFS.png
Failure to do so with xy-VSFilter (VSFilter.dll) will result in it being blocked and not used.
Failure to do so with XySubFilter will in result in horrible performance since the ISR will be rendering subtitles with madVR at the same time as XySubFilter.
If you are not achieving near-identical performance with XySubFilter+madVR compared to xy-VSFilter+madVR, this is the most likely reason why.
cyberbeing
19th July 2013, 17:16
Reserved
madshi
19th July 2013, 17:21
From what I can see, XySubFilter should combine all advantages of the MPC-HC internal subtitle renderer (high-resolution rendering, DXVA decoding compatability) with all advantages of VSFilter (correct colors, correct drawing of all ASS effects) and all advantages of xy-VSFilter (less CPU consumption etc). So for madVR users it should be the ultimate subtitle rendering solution. Of course rendering subtitles at a higher resolution does come with a cost (slightly higher CPU and GPU consumption), but it shouldn't be too much, I hope...
There's one limitation: The combination of XySubFilter + madVR only works properly if your GPU is able to perform alpha blending in more than 8bit. Some older GPUs (e.g. NVidia 9xxx series up to 2xx or maybe 3xx) can only perform alpha blending up to 10bit. For these GPUs you have to enable the madVR option "use 10bit image buffer instead of 16bit". Newer generation GPUs have no problem performing alpha blending at 16bit. Very very old GPUs might not even be able to do alpha blending at 10bit. If you have such a GPU you may have to stick with xy-VSFilter or the internal MPC-HC subtitle renderer.
wanezhiling
19th July 2013, 18:03
@madshi, can you post an standard ass/ssa sample file and screenshots between 16bit and 10bit/8bit? Then we can be sure if our GPUs is capable of "XySubFilter + madVR". :)
zero9999
19th July 2013, 18:04
There's one limitation: The combination of XySubFilter + madVR only works properly if your GPU is able to perform alpha blending in more than 8bit. Some older GPUs (e.g. NVidia 9xxx series up to 2xx or maybe 3xx) can only perform alpha blending up to 10bit. For these GPUs you have to enable the madVR option "use 10bit image buffer instead of 16bit". Newer generation GPUs have no problem performing alpha blending at 16bit. Very very old GPUs might not even be able to do alpha blending at 10bit. If you have such a GPU you may have to stick with xy-VSFilter or the internal MPC-HC subtitle renderer.
<__ar> tp7, with that alpha blending issue, uh i managed to trigger it by changing rgb levels from pc -> auto in the most recent one i built. when i changed it back to pc it worked fine.
...
<__ar> tp7, yeah so changing RGB Level from Auto->PC in xy_sub_filter settings fixes the black box problem.
<__ar> leaving it on tv or auto
<__ar> causes the alpha blending to fail
any idea why this would fix the issue?
pirlouy
19th July 2013, 18:13
I don't manage to get *.srt subtitles to work.
Windows 7 x64
MadVR 0.86.9
Lav Filters 0.58.1
XySubFilter 3.1.0.546
MPC-BE dev 3073 (http://dev.mpc-next.ru/index.php/topic,1648.0.html) 32bits
I don't have the green arrow in systray. Which filter is responsible to detect .srt file (with the same name as the video file) ?
Embed subtitles are working though. FYI, I have uninstalled xy-VSFilter in order to have only XySubFilter.
Soukyuu
19th July 2013, 18:25
I can confirm setting RGB output level to PC fixes the opaque box problem for me (260GTX) without having to switch to 10bit image buffer.
edit: how well threaded is XySubFilter? I'm still having dropped frames on some overstyled subtitles, without my CPU hitting 50% usage. Shouldn't be an I/O problem since I also tested playing back the same video from a RAM disk and it stuttered just as bad. madvr's OSD shows subtitle queue dropping to 0 so XySubFilter should be the one causing it. My CPU is an AMD Phenom II X4 970BE@4GHz.
nevcairiel
19th July 2013, 18:47
@madshi, can you post an standard ass/ssa sample file and screenshots between 16bit and 10bit/8bit? Then we can be sure if our GPUs is capable of "XySubFilter + madVR". :)
There is no big difference visible that you can easily screenshot between 16 or 10-bit, you would notice if your GPU is not compatible when the subtitles have a black opaque box around them.
wanezhiling
19th July 2013, 19:10
You would notice if your GPU is not compatible when the subtitles have a black opaque box around them.
Thx, got it.
http://forum.doom9.org/showpost.php?p=1637413&postcount=1398
@cyberbeing, why XySubFilter is still in filter chains under such situations?
Overdrive80
19th July 2013, 19:19
Great, is big new. Thanks for your effort.
Keiyakusha
19th July 2013, 19:41
Is it possible to make an option for XySubFilter to apply blur to the subtitles before they are rendered on the screen? Possibly with selectable strength.
For example I'd like to have some equivalent to gaussing blur with radius 0.1-0.5 (edit: well, this is for 1080p screen, for bigger screens I probably want more)
Or this is should be request for the consumer?
Nevilne
19th July 2013, 20:06
^
Use 8x8 bilinear Subpixel Position
Keiyakusha
19th July 2013, 20:32
^
Use 8x8 bilinear Subpixel Position
I don't see how it helps.
8x8 (https://dl.dropboxusercontent.com/u/110558786/Comparison/XySubFilter/8x8.png) 8x8bilinear (https://dl.dropboxusercontent.com/u/110558786/Comparison/XySubFilter/8x8b.png)
0.5gauss (https://dl.dropboxusercontent.com/u/110558786/Comparison/XySubFilter/0.5g.png) <- I want this and possibility to set it stronger or weaker.
Edit: and yes I tried setting layout res to something like 576p and checking "render at video res", this is what I'll use probably, but it adds aliasing.
Warlock
19th July 2013, 20:34
From what I can see, XySubFilter should combine all advantages of the MPC-HC internal subtitle renderer (high-resolution rendering, DXVA decoding compatability) with all advantages of VSFilter (correct colors, correct drawing of all ASS effects) and all advantages of xy-VSFilter (less CPU consumption etc). So for madVR users it should be the ultimate subtitle rendering solution. Of course rendering subtitles at a higher resolution does come with a cost (slightly higher CPU and GPU consumption), but it shouldn't be too much, I hope...
There's one limitation: The combination of XySubFilter + madVR only works properly if your GPU is able to perform alpha blending in more than 8bit. Some older GPUs (e.g. NVidia 9xxx series up to 2xx or maybe 3xx) can only perform alpha blending up to 10bit. For these GPUs you have to enable the madVR option "use 10bit image buffer instead of 16bit". Newer generation GPUs have no problem performing alpha blending at 16bit. Very very old GPUs might not even be able to do alpha blending at 10bit. If you have such a GPU you may have to stick with xy-VSFilter or the internal MPC-HC subtitle renderer.
The GeForce 8600GT has alpha blending?
This here is another question I have. When the XySubFilter is installed, looks like this:
http://i.imgur.com/Qr8zLGo.jpg
When the xy-VSFilter looks like this:
http://i.imgur.com/q3XaV74.jpg
It's supposed to be so even with the XySubFilter installed? Another thing I noticed was regarding the pin info generated by lav. When the xy-VSFilter is installed, the pin info output equals pin info input, in the case of the video image is 720p. Already in XySubFilter, Pin out information generated is 2048x720. Is that correct?
TheShadowRunner
19th July 2013, 20:38
Thank you for this beta of xySubFilter, I just tested and have a couple of questions / bugs to report:
My setup: WinXP SP3, Zoom Player Max, xySubFilter beta 3.1.0.546 (removed all traces of previous XYVSfilter/VSFilter), madVR 0.86.9, newest Haali 1.13.138.14.
Bugs:
1. The subtitles never display when they are embedded!? (for exemple all the matroska files I tested).
madVR does report "subtitle queue 7-8/8" so I know the filter is connected.
On the property page of xySubFilter, Language is empty and grayed out, like if it wasn't able to load the subtitle track at all.
"Loading when needed" with "External" and "Embedded" checked.
Please see: xysubfilterbug.png (http://videoff7.free.fr/xysubfilterbug.png)
External subtitles are picked up and work correctly.
2. The "PAR compensation" setting doesn't stick. I chose "Accurate Size", restart playback, and it's reset to "Disabled". (even tried to force automatic_par_compensation to reg_dword value 3, no go)
Questions:
3. What is the purpose (if any) of the option "Render To Original Video Size" when "Use Original Video Size" is selected in the dropdown menu?
4. What is the difference between "Auto" and "Guess" settings for the YCbCr matrix ?
Please let me know!
huhn
19th July 2013, 20:53
at 1: try lavfilter haali is so old the page is even down.
TheShadowRunner
19th July 2013, 20:55
at 1: try lavfilter haali is so old the page is even down.
This very Haali was released a month ago. And it works perfectly fine with XY-VSFilter/VSFilter, that's not it.
(edit: as you can see on the picture i linked, the subtitle track was auto-selected correctly in XYSubFilter context menu)
DarkSpace
19th July 2013, 21:08
PAR compensation
PAR Compensation broke, use Layout Resolution instead (set it to anamorphic-corrected video size).
What is the purpose (if any) of the option "Render To Original Video Size" when "Use Original Video Size" is selected in the dropdown menu?
Those two are totally separate things.
Render To Original Video Size makes XySubFilter output subtitles at video resolution instead of using the scaled output resolution.
Use Original Video Size sets the Layout Resolution to use the original video size.
What is the difference between "Auto" and "Guess" settings for the YCbCr matrix ?
Auto uses the ASS script's YCbCr Matrix flag if it's present and otherwise defaults to using TV.601 (or, for PC-range content, PC.601) YUV values.
Guess chooses the YUV values to use by resolution, although I don't know if it attempts to read the YCbCr Matrix field first.
huhn
19th July 2013, 21:13
that's "normal" that xysubfilter is loaded with every file at least for me. it's maybe a bug.
when i start a file without subtitle i get the same filter like you with "(xySubFilter connected with madvr, none)".
i just tryed haali and it works after i block xyvobsub.
vivan
19th July 2013, 21:22
Those two are totally separate things.
Render To Original Video Size makes XySubFilter output subtitles at video resolution instead of using the scaled output resolution.
Use Original Video Size sets the Layout Resolution to use the original video size."Render To Original Video Size" just switches from rendering at renderer resolution to selected resolution (video or AR adjusted or custom). At least that's how it works for me.
I think it's better to remove that checkbox and add option "Use Renderer resolution" or something like that to the list instead.
Also looks like I found small bug: if you choose custom resolution, but "Render to original video size" option is disabled then subtitles are stretched to compensate AR of entered resolution.
http://2.firepic.org/2/thumbs/2013-07/19/of18sr5c96au.png (http://2.firepic.org/2/images/2013-07/19/of18sr5c96au.png)
Soukyuu
19th July 2013, 21:48
I can confirm setting RGB output level to PC fixes the opaque box problem for me (260GTX) without having to switch to 10bit image buffer.As a follow up to that, if I set the RGB output to "auto", then turn off the "optimize subtitle quality for performance instead of quality", the opaque box goes away as well!
@madshi: You should think about renaming that one btw, it is confusing to read, maybe something like "optimize subtitles rendering for performance instead of quality"
detmek
19th July 2013, 22:13
Is there any way to set xySubFilter to render subtitles over black borders added by render? Now, it renders subtitles over image, no matter what size of black borders is. MPC-HC ISR renders subtitles after black borders are added by render.
kasper93
19th July 2013, 22:15
@cyberbeing: I thought you will make different threads for xy-vsfilter and XySubFilter. For me those are different things and you should make this clear for end user to avoid confusion. Anyway it doesn't matter as far as you will be able to keep this thread clean and separate problems with xy-vsfilter and XySubFilter.
TheShadowRunner
19th July 2013, 22:22
PAR Compensation broke, use Layout Resolution instead (set it to anamorphic-corrected video size).
I don't have any "Layout Resolution" setting anywhere in XYSubFilter 3.1.0.546.
I only see "Renderer Layout Options" with 3 possibilities:
-Use Original Video Size
-Use AR adjusted video size
-Customize..
So...??
Those two are totally separate things.
Render To Original Video Size makes XySubFilter output subtitles at video resolution instead of using the scaled output resolution.
Use Original Video Size sets the Layout Resolution to use the original video size.
I understand the theory, I think. Will have to try in real world. ^^;
Auto uses the ASS script's YCbCr Matrix flag if it's present and otherwise defaults to using TV.601 (or, for PC-range content, PC.601) YUV values.
Guess chooses the YUV values to use by resolution, although I don't know if it attempts to read the YCbCr Matrix field first.
Alright, thanks for this precision.
sneaker_ger
19th July 2013, 22:25
Is there any way to set xySubFilter to render subtitles over black borders added by render? Now, it renders subtitles over image, no matter what size of black borders is. MPC-HC ISR renders subtitles after black borders are added by render.
Quoting from the madVR thread:
i`ve just installed xysub but i dont know where is the option to put subtitles in the botton black bar on 2.35 movies :(
To-do list. The subtitle interface was explicitly designed to support this, but madVR doesn't yet expose this functionality to users.
detmek
19th July 2013, 22:31
Thanks. I didn't read madVR tread.
cyberbeing
19th July 2013, 23:28
I don't manage to get *.srt subtitles to work.
...
MPC-BE
http://code.google.com/p/xy-vsfilter/issues/detail?id=156
FYI, I have uninstalled xy-VSFilter in order to have only XySubFilter.
https://github.com/mpc-hc/mpc-hc/pull/97
We are awaiting both MPC-HC & MPC-BE to merge the above.
edit: how well threaded is XySubFilter? I'm still having dropped frames on some overstyled subtitles, without my CPU hitting 50% usage. Shouldn't be an I/O problem since I also tested playing back the same video from a RAM disk and it stuttered just as bad. madvr's OSD shows subtitle queue dropping to 0 so XySubFilter should be the one causing it. My CPU is an AMD Phenom II X4 970BE@4GHz.
Did you remember to disable the MPC-HC ISR? Uncheck Playback -> Auto-load subtitles
When right-clicking the MPC-HC window "Subtitles" should be grayed out & inaccessible.
If the high CPU usage persists, uninstall XySubFilter, and install xy-VSFilter 3.0.0.211 (http://xy-vsfilter.googlecode.com/files/xy-VSFilter_3.0.0.211_Installer.exe).
Is performance the same?
@cyberbeing, why XySubFilter is still in filter chains under such situations?
The graph starts before we know if a Subtitle Consumer like madVR exists or not.
Is it possible to make an option for XySubFilter to apply blur to the subtitles before they are rendered on the screen? Possibly with selectable strength.
For example I'd like to have some equivalent to gaussing blur with radius 0.1-0.5 (edit: well, this is for 1080p screen, for bigger screens I probably want more)
Or this is should be request for the consumer?
We were already considering the idea of simulating upscaling blur awhile back. Possibility for the future. This is something which would need to be implemented in the XySubFilter (provider).
F.Y.I. Because of how Blur was originally implemented in VSFilter 2.39, \blur must have a value greater than 0.3 to have an effect.
Zoom Player Max
Bugs:
1. The subtitles never display when they are embedded!? (for exemple all the matroska files I tested).
madVR does report "subtitle queue 7-8/8" so I know the filter is connected.
On the property page of xySubFilter, Language is empty and grayed out, like if it wasn't able to load the subtitle track at all.
"Loading when needed" with "External" and "Embedded" checked.
Please see: xysubfilterbug.png (http://videoff7.free.fr/xysubfilterbug.png)
External subtitles are picked up and work correctly.
Zoom Player does not yet support use of XySubFilter with SmartPlay. Disable SmartPlay and embedded subtitles should display properly.
2. The "PAR compensation" setting doesn't stick. I chose "Accurate Size", restart playback, and it's reset to "Disabled". (even tried to force automatic_par_compensation to reg_dword value 3, no go)
http://code.google.com/p/xy-vsfilter/issues/detail?id=155
3. What is the purpose (if any) of the option "Render To Original Video Size" when "Use Original Video Size" is selected in the dropdown menu?
VSFilter.dll performs both Layout & Rendering @ Original Video Size
(lower quality, subtitles alpha-blended before resizing)
XySubFilter by default performs Layout @ Original Video Size but and our scale function is used for Rendering @ Output Window Size
(higher quality, subtitles alpha-blended after resizing)
Enabling "Render To Original Video Size" disables our scale function, and enables lower quality VSFilter-like behavior in XySubFilter. There are some people who prefer the appearance of VSFilter-like rendering, since typesetting will usually blend more transparently when subtitle resolution and video resolution matches. If you one of those people who dislike high resolution subtitles on lower resolution video, this option is for you. Otherwise leave it in its default disabled state.
4. What is the difference between "Auto" and "Guess" settings for the YCbCr matrix ?
Setting to anything but "Auto" will break scripts, don't touch it. It exists as an override for script debugging purposes only.
As DarkSpace already mentioned, by default "Auto" will use the YCbCr Matrix value in a ASS script, else if YCbCr Matrix is missing from script TV.601 is used for legacy VSFilter.dll compatibility. This is the behavior you want.
"Guess" is essentially "Guess Matrix by Resolution", which will result in incorrect colors on most scripts.
F.Y.I. For future reference, treat any "Auto" setting in XySubFilter & xy-VSFilter as defaults which should not be changed. Most of the "Auto" settings have adaptive behavior to ensure intended behavior in various different scenarios.
"Render To Original Video Size" just switches from rendering at renderer resolution to selected resolution (video or AR adjusted or custom). At least that's how it works for me.
No, setting "Render To Original Video Size" will *always* render to original video size.
The Layout Options *never* affect rendering resolution, only how subtitle scripts are scaled to output resolution.
Setting Layout to "Customize" is another debugging setting, which is normally useless. If you have a script authored with advanced typesetting for a 1280x720 video, yet you are using it on a 1920x1080 video, you would set "Customize" to 1280x720 to achieve proper scaling.
Also looks like I found small bug: if you choose custom resolution, but "Render to original video size" option is disabled then subtitles are stretched to compensate AR of entered resolution.
http://2.firepic.org/2/thumbs/2013-07/19/of18sr5c96au.png (http://2.firepic.org/2/images/2013-07/19/of18sr5c96au.png)
You are misunderstanding and misusing these settings. This isn't a bug, it's working exactly as intended.
XySubFilter does not contain a custom resolution setting, only a custom layout setting. The *only* correct setting for Layout is the original authored video resolution of a script. Setting anything else will result in incorrect scaling behavior.
As a follow up to that, if I set the RGB output to "auto", then turn off the "optimize subtitle quality for performance instead of quality", the opaque box goes away as well!
Please open a bug on madshi bug tracker (http://bugs.madshi.net/my_view_page.php) about this. This would be a madVR bug.
Is there any way to set xySubFilter to render subtitles over black borders added by render? Now, it renders subtitles over image, no matter what size of black borders is. MPC-HC ISR renders subtitles after black borders are added by render.
To-do list. You'll need to wait for madVR to implement this, as the Subtitle Consumer needs to initiate requests for such black border rendering.
cyberbeing
19th July 2013, 23:33
And just a reminder to everyone. If you have an actual bug report, please create a new issue (http://code.google.com/p/xy-vsfilter/issues/entry) on our GoogleCode Issue tracker.
turbojet
19th July 2013, 23:39
Styles aren't working for me, are they working for anyone?
Is there a way to block xysubfilter in mpc without setting it to not load subs?
cyberbeing
19th July 2013, 23:47
Styles aren't working for me, are they working for anyone?
XySubFilter style overrides are working just fine here. What exactly wasn't working for you? You need to edit each style individually, else set "Force Default" to override all styles with the "Global Default".
xy-VSFilter (VSFilter.dll) intentionally does not support style overrides on ASS scripts. This is not a bug. Eventually it will gain a style editor dialog similar to XySubFilter and we'll re-enable this functionally.
Is there a way to block xysubfilter in mpc without setting it to not load subs?
Not currently.
sneaker_ger
20th July 2013, 00:13
Auto uses the ASS script's YCbCr Matrix flag if it's present and otherwise defaults to using TV.601 (or, for PC-range content, PC.601) YUV values.
Guess chooses the YUV values to use by resolution, although I don't know if it attempts to read the YCbCr Matrix field first.
cyberbeing has already posted the correct description, but just to make sure: if the "YCbCr Matrix" field of an ASS file is missing, it will always report "TV.601", even on PC content. This is to ensure compatibility to "legacy" vsfilter, which always assumes TV.601, too. XySubFilter has no way to discern between full and limited range videos in the first place, because it lacks the ability to read those info from the video stream/splitter and as long as all conversions are done by the consumer it does not even need this feature.
Soukyuu
20th July 2013, 00:14
Did you remember to disable the MPC-HC ISR? Uncheck Playback -> Auto-load subtitles
When right-clicking the MPC-HC window "Subtitles" should be grayed out & inaccessible.Yes, it's off.
If the high CPU usage persists, uninstall XySubFilter, and install xy-VSFilter 3.0.0.211 (http://xy-vsfilter.googlecode.com/files/xy-VSFilter_3.0.0.211_Installer.exe).
Is performance the same?No, no, the CPU usage is not high enough! I have over 50% of my CPU resources free, yet both Xy-VSFilter and XySubFilter choke on those subs instead of making use of those free resources. That's my problem. In other words, yes, the bad performance is the same with either of them.
cyberbeing
20th July 2013, 00:29
The GeForce 8600GT has alpha blending?
This here is another question I have. When the XySubFilter is installed, looks like this:
http://i.imgur.com/Qr8zLGo.jpg
When the xy-VSFilter looks like this:
http://i.imgur.com/q3XaV74.jpg
It's supposed to be so even with the XySubFilter installed?
What was the problem in these images? Those screenshots seem to be of karaoke effects hardsubbed into the video during encoding.
If the issue is xy-VSFilter loading instead of XySubFilter with madVR, we are awaiting MPC-HC to apply a fix for this.
Another thing I noticed was regarding the pin info generated by lav.
...
Pin out information generated is 2048x720. Is that correct?
madVR always requests frame size padded to common texture widths from the video decoder, this is normal.
TheShadowRunner
20th July 2013, 00:37
Zoom Player does not yet support use of XySubFilter with SmartPlay. Disable SmartPlay and embedded subtitles should display properly.
Oh damn, so that was it! Didn't occur to me SmartPlay could interfere :S
VSFilter.dll performs both Layout & Rendering @ Original Video Size
(lower quality, subtitles alpha-blended before resizing)
XySubFilter by default performs Layout @ Original Video Size but and our scale function is used for Rendering @ Output Window Size
(higher quality, subtitles alpha-blended after resizing)
Enabling "Render To Original Video Size" disables our scale function, and enables lower quality VSFilter-like behavior in XySubFilter. There are some people who prefer the appearance of VSFilter-like rendering, since typesetting will usually blend more transparently when subtitle resolution and video resolution matches. If you one of those people who dislike high resolution subtitles on lower resolution video, this option is for you. Otherwise leave it in its default disabled state.
Great explanation, thank you very much.
Makes me wonder if what I've always wanted in VSFilter is now available by default in xySubFilter?
You say xySub (with "Render To Original Video Size" disabled) now uses an internal scale function for Rendering @ Output Window Size. Would it, as a consequence, also keep subtitles size constant regardless of output window size?
I explain: I use my display for scaling, every media content below 720p, the resolution sent is 1280x720. Anything above 720p, the resolution sent is 1920x1080.
With good old VSFilter, I had to sometimes adjust the font size because of the different media resolution / window size (1280x720 versus 1920x1080).
Could it be that now I only need to set the font size once and it'll work for every scenario?
Setting to anything but "Auto" will break scripts, don't touch it. It exists as an override for script debugging purposes only.
As DarkSpace already mentioned, by default "Auto" will use the YCbCr Matrix value in a ASS script, else if YCbCr Matrix is missing from script TV.601 is used for legacy VSFilter.dll compatibility. This is the behavior you want.
Indeed, thanks for confirming ;)
F.Y.I. For future reference, treat any "Auto" setting in XySubFilter & xy-VSFilter as defaults which should not be changed. Most of the "Auto" settings have adaptive behavior to ensure intended behavior in various different scenarios.
Understood.
cyberbeing
20th July 2013, 00:51
No, no, the CPU usage is not high enough! I have over 50% of my CPU resources free, yet both Xy-VSFilter and XySubFilter choke on those subs instead of making use of those free resources. That's my problem. In other words, yes, the bad performance is the same with either of them.
Oh, that what you meant, lol.
Unfortunately, VSFilter, xy-VSFilter, XySubFilter, and even Libass are all essentially single-threaded subtitle renderers. They will never utilize more than a single CPU core. If you provide a sample script(s) which bottleneck your CPU, we could look into possible optimizations. Otherwise my only recommendation to is to buy Intel the next time you upgrade you PC. When it comes to subtitle rendering, single-thread IPC is king.
I'd also recommend to try setting the madVR CPU queue to much higher value like 64 or even the maximum 128, and see if its enough to get you through these difficult subtitle sections.
Soukyuu
20th July 2013, 01:14
Unfortunately, VSFilter, xy-VSFilter, XySubFilter, and even Libass are all essentially single-threaded subtitle renderers. They will never utilize more than a single CPU core. If you provide a sample script(s) which bottleneck your CPU, we could look into possible optimizations.Hmm that's too bad, I was under the impression xy-version was multithreaded. I sent you a PM with the sample(s)
Otherwise my only recommendation to is to buy Intel the next time you upgrade you PC. When it comes to subtitle rendering, single-thread IPC is king.Yes, I'm aware of the massive differences between Intel and AMD single-thread performance, what I didn't know is that it was that bad. If a 4GHz core is struggling with those subs, how can lower end CPUs cope with that @_@
I'd also recommend to try setting the madVR CPU queue to much higher value like 64 or even the maximum 128, and see if its enough to get you through these difficult subtitle sections.64 is quite enough for that sample, I even have 5-11/64 left in my queue after that fragment. Most of other subs only need a queue of 12, so it's really an extreme example.
cyberbeing
20th July 2013, 02:06
You say xySub (with "Render To Original Video Size" disabled) now uses an internal scale function for Rendering @ Output Window Size. Would it, as a consequence, also keep subtitles size constant regardless of output window size?
I explain: I use my display for scaling, every media content below 720p, the resolution sent is 1280x720. Anything above 720p, the resolution sent is 1920x1080.
With good old VSFilter, I had to sometimes adjust the font size because of the different media resolution / window size (1280x720 versus 1920x1080).
Could it be that now I only need to set the font size once and it'll work for every scenario?
Hmm... I'm a bit unclear about your exact situation relates to setting font size?
In order for XySubFilter to scale properly, it needs to know the original authored video resolution of the script. Normally this would be the resolution of video with embedded subtitles, and this is what is used by default. If you upscale the video before madVR, scaling of *.ass scripts will no longer function correctly.
All font sizes, effects, blurs, typesetting, and so on, are scaled to always maintain relative appearance in relationship to the original video resolution. Essentially near-perfect scaling of xy-VSFilter output. The best way to see this effect is to toggle the "Render to Original Video Size" on & off in the middle of playback. Both should look near-identical with the exception of rendering resolution.
Hmm that's too bad, I was under the impression xy-version was multithreaded.
You're not the first person to think that, so I don't blame you.
Eventually we may look to see if there is anything from the dead Threaded-VSFilter (http://code.google.com/p/threaded-vsfilter/) project worth salvaging (the developer was optimizing for an AMD Quad-Core CPU nearly identical to yours). Overall, xy-VSFilter surpassed the performance of Threaded-VSFilter a long time ago, even though we are single threaded, but there still may be certain types of bottlenecks where it is faster. Multi-threading is difficult to execute well on ass subtitle scripts, especially since we value maintaining identical output to VSFilter 2.39 for compatibility reasons.
Yes, I'm aware of the massive differences between Intel and AMD single-thread performance, what I didn't know is that it was that bad. If a 4GHz core is struggling with those subs, how can lower end CPUs cope with that @_@
The difference can be pretty huge nowadays, especially for owners of older AMD CPUs like yours. Unfortunately xy-VSFilter has made some fansubbers a bit more bold and sometimes sloppy about releasing extremely computationally heavy scripts.
[Edit: A quick test shows me that a Intel Ivy Bridge Dual-Core @2.1Ghz offers around the same performance as your AMD PhenomII Quad @4Ghz with XySubFilter/xy-VSFilter]
64 is quite enough for that sample, I even have 5-11/64 left in my queue after that fragment. Most of other subs only need a queue of 12, so it's really an extreme example.
Well that's at least somewhat good news.
Which reminds me, anybody on a 32-bit OS using XySubFilter, do not set madVR's CPU Queue higher than 64.
cyberbeing
20th July 2013, 03:02
As a workaround for users of MPC-BE, if you rename "mpc-be.exe" to "mpc-hc.exe" it will allow XySubFilter to load external subtitles.
This goes for anybody else who renames their MPC-HC executables as well. Currently our workaround in Beta searches explicitly for an application name containing "mpc-hc".
TheShadowRunner
20th July 2013, 03:44
Hmm... I'm a bit unclear about your exact situation relates to setting font size?
In order for XySubFilter to scale properly, it needs to know the original authored video resolution of the script. Normally this would be the resolution of video with embedded subtitles, and this is what is used by default. If you upscale the video before madVR, scaling of *.ass scripts will no longer function correctly.
All font sizes, effects, blurs, typesetting, and so on, are scaled to always maintain relative appearance in relationship to the original video resolution. Essentially near-perfect scaling of xy-VSFilter output. The best way to see this effect is to toggle the "Render to Original Video Size" on & off in the middle of playback. Both should look near-identical with the exception of rendering resolution.
Oh sure, sorry, I meant for unstyled subtitles (srt), definitely should have mentionned it. ^^;
I'm looking for good samples, it'll be easier to explain. Will get back to you on this.
andybkma
20th July 2013, 04:04
Zoom Player does not yet support use of XySubFilter with SmartPlay. Disable SmartPlay and embedded subtitles should display properly.
Is this something that Zoom Player has to fix or is it the fault of xySubFilter? Thanks...
cyberbeing
20th July 2013, 05:24
Zoom Player would need to fix it. They have special handling of subtitles and manually load and connect VSFilter to the graph in Smart Play mode. So they would actually need to add an option to use XySubFilter instead of xy-VSFilter. In a future version of the subtitle interface, we'll likely offer a way for players to disable madVR auto-loading XySubFilter, to make support for manual graph building such as SmartPlay easier.
thewebchat
20th July 2013, 06:05
The performance scalability of scripts in XySubFilter confuses me. I have two essentially equivalent scripts:
http://pastebin.ws/1f27q4
http://pastebin.ws/787m8p
The first script executes with nearly zero overhead as measured by CPU load. The second one uses 100% CPU on fullscreen (2560x1600) and causes massive stuttering. Looking at the tags, I can't see any obvious reason one would be slower than the other. If anything, the first one should be slower since it uses a wider blur and has a secondary layer.
cyberbeing
20th July 2013, 08:32
Which queue in madVR drops first?
Do you have any Flush & Wait settings enabled? If so, try setting all to "Don't Flush".
What CPU, GPU, OS?
I'm not seeing anything particularly abnormal as far as CPU usage on the second sample on my System.
704x480->853x480 = 1% CPU Usage by XySubFilter
704x480->2560x1440 = 3% CPU Usage by XySubFilter
The first sample likely just caches well by chance.
Just to make sure, I'll have our dev double check that nothing strange is going on with second sample.
wanezhiling
20th July 2013, 09:41
Now xysub is always loaded when using madVR even you play a file without any sub... madVR should just let the player decide everything.
cyberbeing
20th July 2013, 10:02
Now xysub is always loaded when using madVR even you play a file without any sub... madVR should just let the player decide everything.
It's still currently under debate, but it seems likely the next update of the new subtitle interface will allow players to disable auto-loading of Subtitle Providers (i.e XySubFilter) by the Subtitle Consumer (i.e. madVR) in some fashion. Beyond that we need feedback from developers, particularly media player developers, about any specific changes they desire from the current revision of the subtitle interface. Currently we've heard from MPC-HC only. Any developer is welcome to contribute to the ongoing discussion here (http://code.google.com/p/xy-vsfilter/issues/detail?id=152) about the future of the subtitle interface. We are open to ideas and suggestions, and would like to resolve any major issues or roadblocks to adoption within the next month.
Moragg
20th July 2013, 12:52
Here's some feedback from me:
My "benchmark" for subtitles was Commie's Shingeki no Kyojin ep1v2 - roughly 100K line of typesetting in 7 seconds.
With xyvsfilter and a queue of 128 I got a second of playback (at best) before the whole thing froze and skipped 10secs.
With xysubfilter and a queue of 128 I get 0 dropped/delayed frames (not optimising for performance) at original res (720p)
If I also playback at fullscreen (1440p) then some dropped frames do happen - with optimising for performance I get 10 dropped, without I get 17 dropped.
So a massive performance boost. Certainly much more than I was expecting. Thanks!
Soukyuu
20th July 2013, 13:41
Moragg, curious, which CPU do you have? That's the same sample my CPU can pass with a queue of 64.
edit: xy-VSFilter vs xySubFilter: 5/64 and 11/64 for subtitle queue respectively, so not that much of a difference.
Also, about multithreading, wouldn't it be possible to say, split the screen in 4 subpictures and let each thread render one of them? I know multithreading isn't that easy from my tries to implement it for a much smaller project, but it would really be a huge benefit to have it. Especially for AMD users, since multithreading is where their CPUs excel at.
madshi
20th July 2013, 13:41
@Everyone: The "opaque black box" problem should be fixed in the next madVR build for 99.9% of all DX9 GPUs (I hope).
Here's some feedback from me:
My "benchmark" for subtitles was Commie's Shingeki no Kyojin ep1v2 - roughly 100K line of typesetting in 7 seconds.
With xyvsfilter and a queue of 128 I got a second of playback (at best) before the whole thing froze and skipped 10secs.
With xysubfilter and a queue of 128 I get 0 dropped/delayed frames (not optimising for performance) at original res (720p)
If I also playback at fullscreen (1440p) then some dropped frames do happen - with optimising for performance I get 10 dropped, without I get 17 dropped.
So a massive performance boost. Certainly much more than I was expecting. Thanks!
That sounds very good, actually I'm surprised that it performs this well.
How about you other users? How does XySubFilter + madVR compare on your PCs in terms of performance and quality to other solutions like VSFilter, xy-VSFilter and the internal MPC-HC ISR?
clsid
20th July 2013, 14:16
There does not seem to be an elegant solution for the auto-loading problems, and most suggested workarounds involve assistance from the player. So I suggest to keep things as simple as possible: give the player complete control of loading a subtitle provider (when needed) and limit the interface to the communication between providers and consumers.
In other words:
* A consumer does not do anything related to loading. It only communicates with providers.
* A provider should not attempt to auto-load itself unless it is able to load itself for external subs (which implies it connects to the video pin). This means that a filter like XySubFilter should have a merit equal to MERIT_DO_NOT_USE.
* The player is responsible for loading (non-video handling) subtitle providers such as XySubFilter. All players that are capable of using a non-standard video renderer are already customizing the graph building, so it should be rather trivial to add for player developers.
It is theoretically possible that multiple providers are in the graph. In case of external subs, this means a sub file could be loaded twice. This could be prevented by letting the (first) provider setting a mutex, signaling to other providers that a file is already loaded (and thus should be skipped). The mutex could be for example "MadSubInterface" + HashOf(subtitle_filename). The reason for mutexing individual files, is because providers might only support a subset of all formats, or use different auto-loading rules and source locations.
I suggest adding a function to XySubFilter (or maybe all non-video handling providers) that allows the player to instruct it to add an external subtitle file. This could be used by for example MPC-HC to load a downloaded subtitle file, or a file that is added through drag&drop. Such a direct function would not require any dynamic DirectShow graph handling (and the complexities that implies). Then XySubFilter could be used as a full ISR replacement in the case where madVR is used as video renderer.
madshi
20th July 2013, 14:37
There does not seem to be an elegant solution for the auto-loading problems, and most suggested workarounds involve assistance from the player. So I suggest to keep things as simple as possible: give the player complete control of loading a subtitle provider (when needed) and limit the interface to the communication between providers and consumers.
In other words:
* A consumer does not do anything related to loading. It only communicates with providers.
* A provider should not attempt to auto-load itself unless it is able to load itself for external subs (which implies it connects to the video pin). This means that a filter like XySubFilter should have a merit equal to MERIT_DO_NOT_USE.
* The player is responsible for loading (non-video handling) subtitle providers such as XySubFilter. All players that are capable of using a non-standard video renderer are already customizing the graph building, so it should be rather trivial to add for player developers.
All of that could be achieved by my suggested modification of the new subtitle header. Media players who prefer your suggested behaviour would simply have to call "EnableSubtitleAutoLoading(false)" before building the graph.
The problem with following your suggestion by default is that auto-loading would stop working for every single media player out there, until they manually add support for it. And that is a situation I don't like at all. If a media player is willing to add support for the new subtitle interface, then it should be easy for the media player to call "EnableSubtitleAutoLoading(false)" before building the graph. And that would fulfil most (all?) of your wishes.
Adding a video input pin to XySubFilter is a bad idea, IMHO, because it wouldn't be used for any purpose (other than to get loaded), and it would add complication to XySubFilter development, and maybe harm DXVA decoding compatability.
It is theoretically possible that multiple providers are in the graph. In case of external subs, this means a sub file could be loaded twice. This could be prevented by letting the (first) provider setting a mutex, signaling to other providers that a file is already loaded (and thus should be skipped). The mutex could be for example "MadSubInterface" + HashOf(subtitle_filename). The reason for mutexing individual files, is because providers might only support a subset of all formats, or use different auto-loading rules and source locations.
Yes, that sounds like a useful addition. Instead of explaining the mutex logic in the header, I'd prefer to add a little helper function, though, to make things easier for the media player devs.
I suggest adding a function to XySubFilter (or maybe all non-video handling providers) that allows the player to instruct it to add an external subtitle file. This could be used by for example MPC-HC to load a downloaded subtitle file, or a file that is added through drag&drop. Such a direct function would not require any dynamic DirectShow graph handling (and the complexities that implies). Then XySubFilter could be used as a full ISR replacement in the case where madVR is used as video renderer.
Yes, that would be useful. It would be nice to have this as part of the interface, though, so that it isn't XySubFilter specific but could also be used by/with other providers.
clsid
20th July 2013, 15:13
All of that could be achieved by my suggested modification of the new subtitle header. Media players who prefer your suggested behaviour would simply have to call "EnableSubtitleAutoLoading(false)" before building the graph.
The problem with following your suggestion by default is that auto-loading would stop working for every single media player out there, until they manually add support for it. And that is a situation I don't like at all. If a media player is willing to add support for the new subtitle interface, then it should be easy for the media player to call "EnableSubtitleAutoLoading(false)" before building the graph. And that would fulfil most (all?) of your wishes.
The players that are currently capable of using madVR (the only existing consumer atm) will all have to deal with the new situation one way or another. Most have an ISR and/or smart graph building. They all should have situations in which they need to block the interface to prevent handling subs twice.
Opt-out:
[-] Players might show subs twice until player is capable of blocking the use of the interface.
Opt-in:
[+] Simpler interface.
[-] Player can't use the interface until it adds support for loading a provider.
I don't expect much problems getting the players to implement the loading functionality. XySubFilter is still in early beta stage, so there is plenty of time. MPC-HC and MPC-BE will be able to add it very quickly. PotPlayer and KMPlayer will no doubt 'borrow' that code as they usually do. The ZoomPlayer dev (Blight) is Doom9 member, so I expect no problems there either.
Adding a video input pin to XySubFilter is a bad idea, IMHO, because it wouldn't be used for any purpose (other than to get loaded), and it would add complication to XySubFilter development, and maybe harm DXVA decoding compatability.I wasn't suggesting to add a video pin. I think you misunderstood/misread.
The MERIT_DO_NOT_USE idea is for the subtitle pin. To prevent it from loading itself for embedded subs.
madshi
20th July 2013, 15:30
Opt-out:
[-] Players might show subs twice until player is capable of blocking the use of the interface.
Opt-in:
[+] Simpler interface.
[-] Player can't use the interface until it adds support for loading a provider.
You didn't list the key advantage of Opt-in, though, which is:
[+] Makes external subtitle tracks work automatically with every media player.
Please don't under-estimate that. Maybe some day madVR will work in media players which don't explicitly support it. Maybe LAV Video Decoder will become a subtitle consumer and thus make the use of XySubFilter possible in all media players. Furthermore I think it's easy enough in most (all?) media players to simply disable the internal subtitle rendering engine, so the disadvantage of "Opt-out" you mentioned is a simple configuration issue the end-user can take care of himself.
I very much understand your point of view, though, and if the majority of developers prefers removing auto-loading in its current form, I will bow to the majority. I just think it really needs to be carefully considered. And my suggestion to support disabling of the auto-loading by the media player still stands. Actually, I've just released madVR v0.86.10, which already supports my suggested method to disable auto-loading...
xabregas
20th July 2013, 16:20
SO i use mpc int subtitle renderer and xysub filter doesnt yet support srt subtitles to be rendered outside the movie window. Can i use xy-vsfilter with extend to 16:9 option and still have better performance than with MPC internal subtitle renderer?
TIA
clsid
20th July 2013, 16:21
Well, I suppose since either solution requires at least some effort from player developers, your opt-out solution would be fine too. But perhaps a mutex would be much simpler for players to implement?
I think it would be best to change the auto-loading of the providers by the consumer from a requirement to a recommendation. Then at least a consumer has the freedom to decide if auto-loading is desired in any given situation. The function/mutex to disable auto-loading is of course mandatory.
Perhaps consumers should also create a mutex to signal their presence. Suppose that LAV Video becomes a consumer in the future. Then for example (xy-)VSFilter could check for such a mutex and decide to refuse to join the graph.
Speaking of mutexes, they should contain a unique ID of the current graph. Otherwise undesirable behavior might occur with multiple simultaneous graphs.
clsid
20th July 2013, 16:24
SO i use mpc int subtitle renderer and xysub filter doesnt yet support srt subtitles to be rendered outside the movie window. Can i use xy-vsfilter with extend to 16:9 option and still have better performance than with MPC internal subtitle renderer?Yes. However, the subtitles will be rendered at the resolution of the video (expanded to 16:9) while the ISR can render at the resolution of your screen. So subs may be a bit less sharp for low resolution videos.
@cyberbeing
Can an "expand to 16:10" option be added to xy-VSFilter? Many people have monitors with such an AR.
DarkSpace
20th July 2013, 16:49
Nice work on the Beta so far!
However, I get a crash on certain files. I have not yet been able to create a sample which reproduces the crash, so I hope that uploading the Debug Log and Crash Report from madVR helps solve the issue. If you need more information or a sample file, I'll be happy to provide more information and I can upload a file after the weekend (unless I manage to create a small sample that reproduces the issue in the meantime), but right now, my Internet is slow.
Could the crash maybe related to Issue 153 (http://code.google.com/p/xy-vsfilter/issues/detail?id=153)? I made sure to have all the Debug Symbols in the respective filters' directories when creating the logs (https://mega.co.nz/#!h8hjAbbA).
The crash happens with both madVR 0.86.9 and 0.86.10.
thewebchat
20th July 2013, 16:59
Which queue in madVR drops first?
Do you have any Flush & Wait settings enabled? If so, try setting all to "Don't Flush".
What CPU, GPU, OS?
I'm not seeing anything particularly abnormal as far as CPU usage on the second sample on my System.
704x480->853x480 = 1% CPU Usage by XySubFilter
704x480->2560x1440 = 3% CPU Usage by XySubFilter
The first sample likely just caches well by chance.
Just to make sure, I'll have our dev double check that nothing strange is going on with second sample.
Change flush does absolutely nothing. I see the subtitle queue instantly drop to 1 as soon as the first subtitle event activates. I observe average 8% CPU usage windowed and 30% CPU (one core completely saturated) in fullscreen.
CPU: Intel Ivy Bridge M @ 2.3 GHz
GPU: Nvidia GT650M
OS: Windows 8
Regardless of my hardware, the subtitle renderer should never cause the video renderer to drop frames. If the subtitle renderer can't meet its deadlines, it should drop *subtitles* instead of causing unwatchable video.
Edit: I don't observe any performance problems when pre-scaling the subtitles to 2560x1440 using Aegisub. The example file http://www.sendspace.com/file/iybf50 plays without any issues while the original file chokes Xy.
Moragg
20th July 2013, 17:28
Moragg, curious, which CPU do you have? That's the same sample my CPU can pass with a queue of 64.
edit: xy-VSFilter vs xySubFilter: 5/64 and 11/64 for subtitle queue respectively, so not that much of a difference.
Also, about multithreading, wouldn't it be possible to say, split the screen in 4 subpictures and let each thread render one of them? I know multithreading isn't that easy from my tries to implement it for a much smaller project, but it would really be a huge benefit to have it. Especially for AMD users, since multithreading is where their CPUs excel at.
My CPU is a PhenomII 1055T - 2.8Ghz 6 core, so not very good at single threaded stuff.
While I would like multithreading "just because" it'll only make any difference on stupidly heavy typesetting, so I'm not sure it's really worth the effort.
That sounds very good, actually I'm surprised that it performs this well.
Appears I was badly mistaken, previous attempts to play this with xy-vsfilter got the result I mentioned, but a retry gets only 22 dropped frames with xy-vsfilter. xy-subfilter is still better at ~10 dropped frames though.
One thing I am confused about: why should the size at which I playback affect the subtitle queue? With no upscaling/downscaling I get perfect playback, but playing back at fullscreen gives me dropped frames.
sneaker_ger
20th July 2013, 17:41
One thing I am confused about: why should the size at which I playback affect the subtitle queue? With no upscaling/downscaling I get perfect playback, but playing back at fullscreen gives me dropped frames.
Since XySubFilter renders at the target resolution (by default) it will have more work to do in fullscreen compared to rendering for only a small target window, I guess?
A quick question:
I've noticed that people said xysubfilter can be used with DXVA native. However, I don't seem to be able to use DXVA native, in ZoomPlayer, when using LAV video for decoding H264, xysubfilter, and madVR v0.86.10. As soon as I unregister xysubfilter, DXVA native works (there are no other subtitle filters registered on the system).
I have disabled "Smart play" in ZoomPlayer to be able to see subtitles. xy-vsfilter is unregistered, so only xysubfilter is registered. XYSubFilter is configured with the default settings.
Are there any specific requirements to be able to use DXVA native (in ZoomPlayer) ?
Pulstar
20th July 2013, 19:30
Yes. However, the subtitles will be rendered at the resolution of the video (expanded to 16:9) while the ISR can render at the resolution of your screen. So subs may be a bit less sharp for low resolution videos.
@cyberbeing
Can an "expand to 16:10" option be added to xy-VSFilter? Many people have monitors with such an AR.
I'm reverting to xy-VSfilter because of this.
turbojet
20th July 2013, 21:10
ASS subs were the reason for style not working, would be nice to force a style on them in the future. Styles are working fine on other text subs.
Thinking way ahead would there be any consideration in resizing image based subs (sup, vobsub, etc.)? Bdsup2sub can do this but it seems like a lot more work than is necessary.
Moragg
20th July 2013, 22:30
If possible, a feature I'd like is to turn the horrible yellow vobsub into something better - like a simple white font.
Soukyuu
20th July 2013, 23:17
I'm not quite sure, but isn't vobsub basically bitmaps? I don't think you can restyle them.
Moragg
20th July 2013, 23:33
Okay, I read up a bit and it looks like each subtitle is rendered as its own bitmap - didn't think anyone would do that as it seems horribly inefficient.
Maybe incorporate some on-the-fly character recognition and replacement? Or - slightly (a lot?) easier to do - force vobsubs to be rendered in black and white. What I hate most of all is the yellow colour, get it white and I'd be much happier.
turbojet
20th July 2013, 23:35
They are images so no chance to change font but the colors are controlled by a palette thats configurable in *vsfilter. I'm not sure it works, nothing handy to test atm but vaguely remember mpc isr working fine to change colors.
Scaling options move image subtitles, the only thing that's missing that should be possible is resizing/zooming.
onomatopellan
20th July 2013, 23:42
Are there any known plans to make more xySubFilter subtitle consumers? As I can't use madVR because of my intel integrated graphics I'm using latest MPC-HC with LAVFilters and EVR-CP as video renderer and I'd like to use xySubFilter.
filler56789
21st July 2013, 03:23
If possible, a feature I'd like is to turn the horrible yellow vobsub into something better - like a simple white font.
Just for the record --- there ARE people who think quite the opposite, i.e., "simple white fonts" do not have sufficient visual contrast, and we prefer yellow subtitles to white subtitles. No, we don't like to manually edit the color palette in the .IDX files, but this is what we have to do now and then.
cyberbeing
21st July 2013, 03:51
Change flush does absolutely nothing. I see the subtitle queue instantly drop to 1 as soon as the first subtitle event activates. I observe average 8% CPU usage windowed and 30% CPU (one core completely saturated) in fullscreen.
CPU: Intel Ivy Bridge M @ 2.3 GHz
GPU: Nvidia GT650M
OS: Windows 8
Hopefully we can find a way to optimize the effect in this script a bit more.
Regardless of my hardware, the subtitle renderer should never cause the video renderer to drop frames. If the subtitle renderer can't meet its deadlines, it should drop *subtitles* instead of causing unwatchable video.
Open a bug report on madshi's bugtracker (http://bugs.madshi.net/my_view_page.php). madVR is in charge of requesting and displaying subtitle bitmaps, so you have that reversed. If madVR cannot meet it's deadlines it should either A) not be requesting new subtitle bitmaps or B) dropping existing subtitle requests in favor of not dropping video frames. Currently madVR is likely designed to drop video frames when subtitle request are late, so you'd need to request this be changed.
Edit: I don't observe any performance problems when pre-scaling the subtitles to 2560x1440 using Aegisub. The example file http://www.sendspace.com/file/iybf50 plays without any issues while the original file chokes Xy.
You've not scaled \be in that sample though. If you replace every \be1 with \be3 or \be4 does it still play fine?
I've noticed that people said xysubfilter can be used with DXVA native. However, I don't seem to be able to use DXVA native, in ZoomPlayer, when using LAV video for decoding H264, xysubfilter, and madVR v0.86.10.
This problem cannot be caused by XySubFilter, since we never connect to a video pin or do anything else which would interfere with DXVA. At least that we are aware of. If DXVA is not working, it must be a madVR bug or ZoomPlayer bug.
ASS subs were the reason for style not working, would be nice to force a style on them in the future. Styles are working fine on other text subs.
You were using xy-VSFilter (VSFilter.dll) then? The reason this was disabled in xy-VSFilter is because the existing VSFilter override behavior for how this was triggered and applied to ASS subtitles was rather annoying.
Have you tested our new style override dialog for ASS subtitles in XySubFilter?
Thinking way ahead would there be any consideration in resizing image based subs (sup, vobsub, etc.)? Bdsup2sub can do this but it seems like a lot more work than is necessary.
In xy-VSFilter (VSFilter.dll) no, there are no plans to add resize functionality for image-based subtitles.
With XySubFilter, madVR is in charge of resizing all image based subtitles.
Okay, I read up a bit and it looks like each subtitle is rendered as its own bitmap - didn't think anyone would do that as it seems horribly inefficient.
Exactly the opposite, multiple smaller bitmaps is often more efficient than combining everything into one massive bitmap.
Maybe incorporate some on-the-fly character recognition and replacement?
What do you mean by this?
Or - slightly (a lot?) easier to do - force vobsubs to be rendered in black and white. What I hate most of all is the yellow colour, get it white and I'd be much happier.
If possible, a feature I'd like is to turn the horrible yellow vobsub into something better - like a simple white font.
Possibility for the future.
In the meantime, you could always force a custom style for VOBSUBs by enabling "custom colors" in the IDX file and editing the style to your preferences. This is something VSFilter has always supported, but rarely used for some reason.
Are there any known plans to make more xySubFilter subtitle consumers?
No known plans at the moment, but MPC-HC at least seems to be considering the possibility.
cyberbeing
21st July 2013, 04:30
MPC-HC has merged a change into the latest nightly to allow both xy-VSFilter (VSFilter.dll) & XySubFIlter to co-exist a bit better. This change will block VSFilter.dll from being used with madVR when XySubFilter is installed, while still allowing VSFilter to remain installed and be used with other video renderers. MPC-HC nightly builds can be found here (http://nightly.mpc-hc.org/)
sneaker_ger
21st July 2013, 07:13
I kinda liked the older revisions better: just block xy-vsfilter under external filters if you want to use XySubFilter, or set to "prefer" if you do in fact want to use it. Now, if you want to quickly switch to xy-vsfilter for a test you have to actually un-register XySubFilter. Well, it's a good enough quick fix for beginners...
Okay, I read up a bit and it looks like each subtitle is rendered as its own bitmap - didn't think anyone would do that as it seems horribly inefficient.
Exactly the opposite, multiple smaller bitmaps is often more efficient than combining everything into one massive bitmap.
A typical bitmap based subtitle for a cinema movie is maybe a few Megabytes in size. This is still an order of magnitude bigger than text based ones (unless you stuff your mkv with fonts!), but compared to the video and audio data it's almost negligible. Or maybe he means "one bitmap for every video picture" instead of "for every line"? The former would indeed be more inefficient, but DVD and Blu-Ray use the latter, i.e. one subtitle line that spans over 10 seconds uses only one bitmap. At least Blu-Rays even support simple effects like fading for PGS subs without creating a new picture for every frame of the effect. Also, some RLE compression is used (and zlib in mkv, though optional).
What do you mean by this?
He means real-time OCR (https://en.wikipedia.org/wiki/Optical_character_recognition), i.e. internally converting to text based subs and then rendering with whatever style (font, color,...) you want. Everyone who has some experience with converting bitmap based subs to text based ones will know that this would be a very ambitious feature - even the programs that are specifically designed for the job and have had years of development still require lots of user-interaction regularly, so it's not really suited for full automation/real-time (at least with existing free libraries).
cyberbeing
21st July 2013, 08:06
I kinda liked the older revisions better: just block xy-vsfilter under external filters if you want to use XySubFilter, or set to "prefer" if you do in fact want to use it. Now, if you want to quickly switch to xy-vsfilter for a test you have to actually un-register XySubFilter. Well, it's a good enough quick fix for beginners...
Well this is one of those things where if someone installs XySubFilter, there is an expectation they actually want it to be used with madVR. If you just want to see what something would look like with VSFilter.dll style rendering, you could always enable the "Render to Original Video Size" option in XySubFilter.
Maybe you could request that MPC-HC add a registry key to toggle this behavior, like the hidden key they use to toggle the ISR blocking VSFilter behavior.
one subtitle line that spans over 10 seconds still uses only one picture.
The subtitle interface actually works in this way already. Each bitmap is given a unique id as well as a start/stop time.
We also have an advanced multi-level caching mechanism in xy-VSFilter/XySubFilter which makes rendering identical portions of text subtitle lines use nearly zero CPU time. This caching is what makes Libass so much slower than xy-VSFilter at times. Libass is forced to re-render identical computational heavy operations every frame, while we render once and then pull it from our cache for future frames.
He means real-time OCR (https://en.wikipedia.org/wiki/Optical_character_recognition), i.e. internally converting to text based subs and then rendering with whatever style (font, color,...) you want. Everyone who has some experience with converting bitmap based subs to text based ones will know that this would be a very ambitious feature - even the programs that are specifically designed for the job and have had years of development still require lots of user-interaction regularly, so it's not really suited for full automation/real-time (at least with existing free libraries).
...yeah, probably not going to happen. VSFilter traditionally has always converted VOBSUB bitmaps to vector though.
From what I can tell, all image based subtitles formats (VOBSUB/PGS/DVB) have a color palette, but the hard part would likely be knowing which color of the palette to modify. Overall since our focus has mainly been on text subtitles, any features such as this would best be requested of MPC-HC or MPC-BE who actually work on improving the code for image based formats.
sneaker_ger
21st July 2013, 08:14
Well this is one of those things where if someone installs XySubFilter, there is an expectation they actually want it to be used with madVR. If you just want to see what something would look like with VSFilter.dll style rendering, you could always enable the "Render to Original Video Size" option in XySubFilter.
Maybe you could request that MPC-HC add a registry key to toggle this behavior, like the hidden key they use to toggle the ISR blocking VSFilter behavior.
Yes, that would be nice maybe. But I know this is still being discussed and I'm currently sticking to an older MPC-HC revision anyways because the current ones override LAV Filter's stream selection logic.
cyberbeing
21st July 2013, 10:48
How to take madVR screenshots with MPC-HC which include XySubFilter subtitles (http://forum.doom9.org/showpost.php?p=1637684&postcount=19673)
cyberbeing
21st July 2013, 11:45
Yeah vivan, as you discovered yourself (https://code.google.com/p/xy-vsfilter/issues/detail?id=105) in your edit, both .\sub unable to be created and the default path entries unable to be deleted are behaviors inherited from VSFilter which have never been fixed or modified.
Also I would like to remove "c:\subtitles" path, but Remove button is disabled.
http://imageshack.us/a/img594/6916/bq21.png
No idea why this is, but this was what Gabest set as the default behavior when he originally created VSFilter and nobody ever thought to change it. Eventually, this legacy search path behavior will likely be scraped and replaced with something more feature rich. Until then, it is how it is.
Moragg
21st July 2013, 11:48
Just for the record --- there ARE people who think quite the opposite, i.e., "simple white fonts" do not have sufficient visual contrast, and we prefer yellow subtitles to white subtitles. No, we don't like to manually edit the color palette in the .IDX files, but this is what we have to do now and then.
I normally watch anime, and yellow just doesn't work - since the backgrounds are often bright and have a similar texture it clashes badly (in my eyes) and makes it harder to read.
The argument is a lot stronger for live-action movies, but even there I find them too intrusive, and white wouldn't upset my viewing as much. But here I would also say that yellow could be a better option in many circumstances.
Exactly the opposite, multiple smaller bitmaps is often more efficient than combining everything into one massive bitmap.
But much less efficient than a font and text and video.
In the meantime, you could always force a custom style for VOBSUBs by enabling "custom colors" in the IDX file and editing the style to your preferences. This is something VSFilter has always supported, but rarely used for some reason.
Didn't know about this, will definitely check it out, thanks.
...yeah, probably not going to happen.
Shame, didn't realise it was that difficult to do.
cyberbeing
21st July 2013, 11:59
But much less efficient than a font and text and video.
Depends on the font, some complex font outlines are extremely computationally heavy to render. ;)
Telion
21st July 2013, 13:06
Can you please implement a feature to save & reopen last selected properties tab? It will be especially handy considering the current workaround for taking screenshots with subtitles. Timing corrections will also benefit from this.
cyberbeing
21st July 2013, 13:11
We'll look into it, I created Issue #158 (http://code.google.com/p/xy-vsfilter/issues/detail?id=158). In the future, feel free to make such feature requests directly on our bug tracker.
Telion
21st July 2013, 13:48
OK, thank you.
TheSkiller
21st July 2013, 15:21
At least Blu-Rays even support simple effects like fading for PGS subs without creating a new picture for every frame of the effect. Also, some RLE compression is used (and zlib in mkv, though optional).Just for the record, DVD has a fade feature as well (which uses just one subpic for the period of a subtitle) and the bitmaps are RLE compressed as well. :)
There are also wipe effects (used for karaoke).
One thing to consider when choosing to make subtitles "white" is if you intend to display them on a TV you should not make them 100% opaque and 100% white because it will look blindingly bright if the movie background is dark and you're watching in a dark room.
Better use a light grey color and make the subtitles slightly translucent so that they can adapt to the brightness of the movie background to some degree. My recommendation based on my exhaustive subtitle creations is a color of around 230,230,230 and an opacitiy of 66-75%.
When it comes to visibility I'm 50/50 about white vs yellow. Both can be read equally well from all kinds of backgrounds if only the (black!) outline is thick enough which from what I've seen is rarely the case unfortunately. My recommendation for outline width: about as thick as a stroke of the characters used.
filler56789
21st July 2013, 15:44
I normally watch anime, and yellow just doesn't work - since the backgrounds are often bright and have a similar texture it clashes badly (in my eyes) and makes it harder to read.
The argument is a lot stronger for live-action movies, but even there I find them too intrusive, and white wouldn't upset my viewing as much. But here I would also say that yellow could be a better option in many circumstances.
Ideally, the "releasers" :rolleyes: should offer BOTH white and yellow(/green/whatever) subtitles. And just for the notes again, it's not a matter of "anime vs. live action", it's just the fact that different eyeballs and/or different visual cortices will perceive brightness, contrast and color saturation differently ;)
But I agree, it would be very-nice if (xy)VSFilter had an option for easily overriding the color palette from the IDX files. While this doesn't happen, you could give a try to Mplayer --- because Mplayer completely ignores the color palette from the bitmap subs and gives you "simple white fonts" all the time :(
michkrol
21st July 2013, 17:44
Thanks for your effort to bring us this software, works great.
While testing various files, I've encountered a rather curious behavior. I have a file that has crazy subs effects (around 10k lines in ~7 seconds), after adjusting madVR CPU queue to 24 this effects plays fine on my PC, with no dropped frames, but ~25 seconds later (with only simple text on screen) the playback freezes completely for a few seconds, also freezing the player controls, the sound plays fine. The playback then recovers with ~150 dropped frames.
What's curious is it only freezes if you play the file without pausing and seeking. If you seek somewhere between the heavy effects and the moment it freezes the playback goes over this part flawlessly as expected. It might be caused by the caches being emptied all at once.
I'm not opening a bug report, since I would like to confirm first, whether it's XySubFilter or madVR causing this.
Below is my system config:
Intel Core i5-3570K
Intel HD4000
16GB RAM
Windows 7 x64
MPC-HC 1.7.0.7646 (f6f1b82) (official nightly build)
LAVFilters 0.58.1 (official release)
XySubFilter 3.0.546 (official beta release)
madVR v0.86.10 (official release)
How to reproduce the problem:
Set madVR CPU queue to 24, to get smooth subtitles effects playback. (Of course it will differ between PCs, just don't set it to max.)
Open the file in windowed MPC-HC at movie resolution (1280x720).
Open the file.
The title with effects plays smoothly.
Continue playback without pausing and seeking.
Around 0:33 playback freezes, recovers for a split second, and freezes again. This takes around 7 seconds in total for me.
Playback recovers and the rest plays smoothly.
Link to the file in question:
http://www.mediafire.com/download/cl9plddqpfa0c80/Shingeki_subs_test.zip
I've replaced the video with something pointless (with same parameters as original) and file is zipped to save bandwidth (the subs are over 35MB and compress quite well).
I know the subs in this file are crazy, but inspecting this might help improve performance in other extreme cases.
Thanks for your time and please tell me, if I've overlooked some important info.
sneaker_ger
21st July 2013, 18:21
I can reproduce the performance drop at 0:33 - really strange.
Soukyuu
21st July 2013, 20:13
I must admit I snickered when I saw the filename. So I guess Commie's typesetting make intel CPUs stutter as well :P
Before that, Koharubi's bakemonogatari ep02 @1080p was my benchmark for subtitle renderer performance, but xySubFilter masters that one thanks to the cache (it had a half second alternation of two typesets covering the whole screen)
turbojet
21st July 2013, 20:58
You were using xy-VSFilter (VSFilter.dll) then? The reason this was disabled in xy-VSFilter is because the existing VSFilter override behavior for how this was triggered and applied to ASS subtitles was rather annoying.
Have you tested our new style override dialog for ASS subtitles in XySubFilter?
It was subfilter, forcing default style had no effect, is there something I'm missing?
In xy-VSFilter (VSFilter.dll) no, there are no plans to add resize functionality for image-based subtitles.
With XySubFilter, madVR is in charge of resizing all image based subtitles.
Right but madvr needs to be instructed to zoom in/out and subfilter needs an option for zoom level, for example: Double the size of image subs zoom 2.0x, reduce them by half, zoom 0.5x
Wouldn't it make more sense to keep all subtitle options out of madvr to reduce user confusion? There currently is one but wouldn't it be better for subfilter to instruct madvr how to handle that code instead?
ikarad
21st July 2013, 22:10
What are the differences between xy-vsfilter and Xysubfilter?
Moragg
21st July 2013, 22:11
Link to the file in question:
http://www.mediafire.com/download/cl9plddqpfa0c80/Shingeki_subs_test.zip
I've replaced the video with something pointless (with same parameters as original) and file is zipped to save bandwidth (the subs are over 35MB and compress quite well).
I know the subs in this file are crazy, but inspecting this might help improve performance in other extreme cases.
.
I have the original version of that - 90K lines in 7 secs :devil:
But if you want help, press ctrl+j to bring up madvr info, and look down to the queue information. During playback watch the queues, problems usually occur when they fall to very low values (0) - you'll likely find frames dropped/delayed when that happens. If so, try increasing those queue sizes.
If not it may be a memory flushing thing which I have no clue whatsoever about.
Edit: I can reproduce the problem, both in the file you gave me and in Commie's Shingeki ep1v2 - the one with 90k lines - a completely different file. Same thing happens, video freezes and subtitle queue just empties. Other queues are fine.
What are the differences between xy-vsfilter and Xysubfilter?
Xy-vsfilter is the old one and has a stable release, xy-subfilter is the new, improved version but is currently in beta testing, and can only be used with madvr.
ikarad
21st July 2013, 22:32
Xy-vsfilter is the old one and has a stable release, xy-subfilter is the new, improved version but is currently in beta testing, and can only be used with madvr.
1) xyvsfilter will never updated anew?
2) If I want to use xysubfilter is it necessary to have xyvsfilter installed or not?
3) What are the ameliorations in comparaison with xyvsfilter?
Blight
21st July 2013, 23:00
This is just a heads-up to Zoom Player users,
I plan to add support for this interface in the next release, you will probably see a beta within the next month as I'm currently focusing most of my time on Zoom Commander and other non-coding chores.
Moragg
21st July 2013, 23:20
1) xyvsfilter will never updated anew?
2) If I want to use xysubfilter is it necessary to have xyvsfilter installed or not?
3) What are the ameliorations in comparaison with xyvsfilter?
1)not as far as I know. Hasn't for nearly a year, with xysubfilter out I doubt anyone will bother.
2)No.
3)Not entirely sure, but perhaps: better colour accuracy, faster. I know it renders subs at a different res. And in madvr you can make it optimize performance if you have a slow CPU.
Asteague
22nd July 2013, 02:10
Any reason why xySubFilter would work flawlessly for files with subtitles in the container, but refuses to show up for files with only external subs? In some rare cases it does show up, but I have no idea why it won't always show up.
Any ideas?
My setup:
Win 8 x64
MPC-HC 1.7.0.7646
madVR 0.86.10
LavFilters 0.58.1
xy-vsFilter not installed (didn't work even if installed)
cyberbeing
22nd July 2013, 04:11
Thanks for your effort to bring us this software, works great.
While testing various files, I've encountered a rather curious behavior. I have a file that has crazy subs effects (around 10k lines in ~7 seconds), after adjusting madVR CPU queue to 24 this effects plays fine on my PC, with no dropped frames, but ~25 seconds later (with only simple text on screen) the playback freezes completely for a few seconds, also freezing the player controls, the sound plays fine. The playback then recovers with ~150 dropped frames.
Issue #159 (http://code.google.com/p/xy-vsfilter/issues/detail?id=159)
I noticed this exact same issue with the original script in your sample the other day. Not sure what causes it at the moment, we are looking into it.
I'll attach the sample you provided to the issue, but at this point I'm more interested in obtaining any other scripts which are able to trigger this bug.
sneaker_ger
22nd July 2013, 04:17
1) xyvsfilter will never updated anew?
2) If I want to use xysubfilter is it necessary to have xyvsfilter installed or not?
3) What are the ameliorations in comparaison with xyvsfilter?
1)not as far as I know. Hasn't for nearly a year, with xysubfilter out I doubt anyone will bother.
2)No.
3)Not entirely sure, but perhaps: better colour accuracy, faster. I know it renders subs at a different res. And in madvr you can make it optimize performance if you have a slow CPU.
1.) Development of xy-vsfilter has been continuing in the background, even though the last official version is 8 months old. It is not dead and new official versions will come.
2.) Correct. (no)
3.)
The main difference between the two is that xy-vsfilter sits in the DirectShow chain as a link between video decoder and the video renderer. It overlays subtitles onto the video frames it receives from the video decoder and then passes the result on to the video renderer.
This is has following disadvantages for the typical end-user:
- the subtitles will be rendered at the video resolution (and with chroma sub-sampling if applicable), so for videos whose resolutions are much lower than the display resolution they may look blurry or aliased.
- DXVA2 (native) does not work because it requires a direct connection between the video decoder and the video renderer.
- rendering in the black bars can be problematic, because xy-vsfilter does not really know the target rectangle and changing resolutions during runtime may introduce some problems.
XySubFilter on the other hand renders at the display resolution (without chroma sub-sampling) by default, which makes the subtitles always look sharp. It is not connected to the video decoder at all, but only sits between the splitter and the renderer. Since the video decoder can now directly connect to the video renderer again DXVA2 (native) will work fine.
Concerning colors: xy-vsfilter will also have "correct" color handling (similar to XySubFilter) - or rather has the most important stuff already. This is more of an advantage of XySubFilter over MPC-HC's internal renderer (this is related to historic limitations of the old vsfilter, which didn't know anything but limited range BT.601 colors, resulting in obscure workarounds which break colors with MPC-HC's internal renderer/VLC and a bunch of others. A new extension of the ASS "spec" is supposed to harmonize the different renderers again to some extent.)
Any performance differences should ideally only be related to the different resolutions/color spaces at which they render by default - so new optimizations will likely be used in both versions. The madVR performance trade off option should not make XySubFilter faster than xy-vsfilter - it just relegates some color conversion stuff from madVR to XySubFilter, which uses some simpler conversion on the CPU instead of the GPU like madVR (nothing to worry about - that's why it's on by default. cyberbeing's more technical explanation (http://forum.doom9.org/showpost.php?p=1636975&postcount=19564)). xy-vsfilter always has to do these things itself since it does not pass on the subtitles through a separate pin to the renderer but overlays them onto the video itself.
About rendering in the black bars:
While the new subtitle interface that connects XySubFilter and madVR has been designed with enabling subtitle rendering in the black bars in mind (if the user wishes so), this has not yet been implemented.
cyberbeing
22nd July 2013, 04:40
It was subfilter, forcing default style had no effect, is there something I'm missing?
XySubFilter only overrides the styles defined in the header of a script, it does not strip style override tags. Is that it?
If not, please provide a sample which easily reproduces the issue.
In xy-VSFilter (VSFilter.dll) no, there are no plans to add resize functionality for image-based subtitles.
With XySubFilter, madVR is in charge of resizing all image based subtitles. Right but madvr needs to be instructed to zoom in/out and subfilter needs an option for zoom level, for example: Double the size of image subs zoom 2.0x, reduce them by half, zoom 0.5x
madVR doesn't need to be instructed. XySubFilter always passes bitmap subtitles at original resolution and madVR scales them as needed automatically.
Wouldn't it make more sense to keep all subtitle options out of madvr to reduce user confusion? There currently is one but wouldn't it be better for subfilter to instruct madvr how to handle that code instead?
I'm a bit confused. If you are requesting that madVR be instructed to apply arbitrary non-default scaling to bitmaps, our subtitle interface does not support that currently. I'd suggest explaining your feature request to madshi in the madVR thread.
What are the differences between xy-vsfilter and Xysubfilter?
XySubFilter
Requires madVR (or other Subtitle Consumer supporting SubRenderIntf.h (http://madshi.net/SubRenderIntf.h))
Higher Quality
RGB Subtitles
Renders subtitles after scaling is performed by the video render (allows high resolution subtitles)
Subtitles alpha-blended on the GPU
Image based subtitles are scaled to any video resolution
Works with DXVA Decoding
Allows Deinterlacing via bitstream flags
Compatibility option to support anamorphic video
Allows all colorspaces supported by the video renderer to be used
xy-VSFilter (VSFilter.dll)
Works with any video renderer.
Lower Quality
Usually YCbCr Subtitles
Renders subtitles prior to scaling at original video resolution
Subtitles alpha-blended on the CPU
Image based subtitles are not scaled and must match video resolution
Breaks DXVA Decoding
Blocks Deinterlacing bitstream flags
Requires all subtitles scripts be compensated for VSFilter behavior with anamorphic video
Only a more restrictive set of colorspaces supported by xy-VSFilter can be used by the video renderer
1) xyvsfilter will never updated anew?
2) If I want to use xysubfilter is it necessary to have xyvsfilter installed or not?
1) An official update to xy-VSFilter (VSFilter.dll) is planned after we release a stable build of XySubFilter. Though after that point, the future of legacy VSFilter.dll releases from us is unknown.
2) Update to the latest MPC-HC x86 nightly build (http://nightly.mpc-hc.org/) and both filters can co-exist, but it is not required to have both installed. XySubFilter will be used with madVR, while xy-VSFilter will be used by all other renderers.
Any reason why xySubFilter would work flawlessly for files with subtitles in the container, but refuses to show up for files with only external subs? In some rare cases it does show up, but I have no idea why it won't always show up.
Any ideas?
...
xy-vsFilter not installed (didn't work even if installed)
Did you remember to disable the MPC-HC ISR by unchecking "Auto-load subtitles" under "Playback" in MPC-HC settings?
Are you positive the external subtitle files have an identical file name to your video? Please double-check by renaming one to the other with copy/paste (not including file extension).
turbojet
22nd July 2013, 06:47
XySubFilter only overrides the styles defined in the header of a script, it does not strip style override tags. Is that it?
If not, please provide a sample which easily reproduces the issue.
http://www.sendspace.com/file/bt4zd8 I'm not 100% sure what format these subs are in, it's been awhile. They have color but extract fine as srt, could be colorized srt. Known srt subs tested style fine in subfilter.
madVR doesn't need to be instructed. XySubFilter always passes bitmap subtitles at original resolution and madVR scales them as needed automatically.
This is concerning the question about considering zooming bitmap subs in the future, many are very small. No subtitle renderer does it yet but I'm pretty sure it's possible to do it like bdsup2sub does. Madvr might be able to help out but the options wouldn't belong in madvr.
I'm a bit confused. If you are requesting that madVR be instructed to apply arbitrary non-default scaling to bitmaps, our subtitle interface does not support that currently. I'd suggest explaining your feature request to madshi in the madVR thread.
As vanilla madvr has nothing to do with subtitles doesn't subtitle options such as the current optimize seem out of place? I'm suggesting have the option in xysubfilter that triggers code in madvr.
Aleksoid1978
22nd July 2013, 07:12
Question to developers:
1 - can you merge this 2 menu items section :
http://i.imgur.com/1CVrmda.png
Then it would be convenient to switch the built-in and external subtitles in the menu
2 - Where can be find source(full or just for interfaces)? It's need for better integration with MPC-BE.
Toku
22nd July 2013, 08:10
I have a file that causes both MPC and madVR to crash when using XySubFilter but works fine when using xy-VSFilter, no crash occurs when subtitles are disabled
https://imageshack.us/a/img854/7515/7chq.png
10 Second sample- here (http://darkwalker31.poseidon.feralhosting.com/%5bKaylith-Music%5d%20supercell%20-%20Hakushukassai%20Utaawase%20%5b1080p%5d%5b4E39737B%5d%20cut%20(1)-001.mkv)
cyberbeing
22nd July 2013, 08:29
http://www.sendspace.com/file/bt4zd8 I'm not 100% sure what format these subs are in, it's been awhile. They have color but extract fine as srt, could be colorized srt. Known srt subs tested style fine in subfilter.
Yes, those are SRT subtitles. I don't see the problem though, our style override dialog functions just fine on that sample.
Override Style
1) Open your sample (http://www.sendspace.com/file/bt4zd8) in MPC-HC
2) Pause video
3) Right-click MPC-HC window -> Filters -> XySubFilter -> Properties
4) Click "Styles"
5) Click the "Default" tab
6) Edit to bogus value like "Border Width = 10"
7) Click "Ok" to style Dialog
8) Click "Apply" to main setting dialog [note: the need to press Apply here first seems to be a bug]
9) Click "Okay to main setting dialog
10) Style with "Border Width = 10" is applied to subtitles.
OR
Force Default Style
1) Open your sample (http://www.sendspace.com/file/bt4zd8) in MPC-HC
2) Pause video
3) Right-click MPC-HC window -> Filters -> XySubFilter -> Properties
4) Click "Styles"
5) Click the "Global Default" tab
6) Edit to bogus value like "Border Width = 10"
7) Click "Ok" to style Dialog
8) Check "Force Default" in main setting dialog
9) Click "Okay to main setting dialog
10) Style with "Border Width = 10" is applied to subtitles.
11) Exit MPC-HC
12) Re-open your video
13) "Border Width = 10" is still applied to subtitles
This is concerning the question about considering zooming bitmap subs in the future, many are very small. No subtitle renderer does it yet but I'm pretty sure it's possible to do it like bdsup2sub does. Madvr might be able to help out but the options wouldn't belong in madvr.
We currently have no intentions of adding a bitmap resizing function within XySubFilter. The actual resizing code should exist in madVR, even if we ourselves trigger use of such code.
As vanilla madvr has nothing to do with subtitles doesn't subtitle options such as the current optimize seem out of place? I'm suggesting have the option in xysubfilter that triggers code in madvr.
madVR has much to do with the subtitle interface used by XySubFilter. Unless madVR adds such code to madVR, and offers a way for us to trigger such functionality, there is nothing we can do. You need to make a case to madshi for why he should support such a feature in madVR and the subtitle interface.
cyberbeing
22nd July 2013, 08:40
Question to developers:
1 - can you merge this 2 menu items section :
[IMG]
Then it would be convenient to switch the built-in and external subtitles in the menu
Could you give a "mock-up" example of how you would like them merged/grouped, as I'm still a bit unclear with that image?
I'll need to look back, since Zoom Player had special requirements for grouping of these menus and api which we implemented in xy-VSFilter (VSFilter.dll) last year.
2 - Where can be find source(full or just for interfaces)? It's need for better integration with MPC-BE.
The current revision of the subtitle interface can always be found at SubRenderIntf.h (http://madshi.net/SubRenderIntf.h). Currently a revision is under discussion for changing how auto-loading behavior is handled. If you have an opinion one way or another about loading behavior, or would like other changes to the subtitle interface, please express your desires here (http://code.google.com/p/xy-vsfilter/issues/detail?id=152).
madshi
22nd July 2013, 08:41
@cyberbeing, there currently doesn't seem to be an easy way to get debug symbols for XySubFilter? At least there's no link in the first post. I've just received a madVR crash report which was really a crash in XySubFilter.dll. Due to missing debug symbols the crash report is of no use because there's no XySubFilter callstack...
Toku
22nd July 2013, 09:03
@cyberbeing, there currently doesn't seem to be an easy way to get debug symbols for XySubFilter? At least there's no link in the first post. I've just received a madVR crash report which was really a crash in XySubFilter.dll. Due to missing debug symbols the crash report is of no use because there's no XySubFilter callstack...
I think this might have been mine. Was the contact name given Alex? After sending the report I uploaded the problem file to my server and posted it here, but got a message saying my post had to be moderated (Probably because it was a direct link)
Ah yes, that was me. Just received your email. I'll reply with the link of the file. :)
cyberbeing
22nd July 2013, 09:10
I've added a link to the first post with the PDB debug symbols for XySubFilter Beta.
Debug Symbols for XySubFilter 3.1.0.546 (http://xy-vsfilter.googlecode.com/files/XySubFilter_3.1.0.546_Debug_Symbols.7z)
Aleksoid1978
22nd July 2013, 09:57
Could you give a "mock-up" example of how you would like them merged/grouped, as I'm still a bit unclear with that image?
I'll need to look back, since Zoom Player had special requirements for grouping of these menus and api which we implemented in xy-VSFilter (VSFilter.dll) last year.
The current revision of the subtitle interface can always be found at SubRenderIntf.h (http://madshi.net/SubRenderIntf.h). Currently a revision is under discussion for changing how auto-loading behavior is handled. If you have an opinion one way or another about loading behavior, or would like other changes to the subtitle interface, please express your desires here (http://code.google.com/p/xy-vsfilter/issues/detail?id=152).
Can you made that XySubFilter show all internal + external subtitles list and a can select it from API.
Now a can select subtitle stream, example of code:
if (SUCCEEDED(pDVS->get_LanguageCount(&nLangs)) && nLangs) {
bool fHideSubtitles = false;
pDVS->get_HideSubtitles(&fHideSubtitles);
if (!fHideSubtitles) {
int iSelected = 0;
pDVS->get_SelectedLanguage(&iSelected);
iSelected = (iSelected+(nID==0?1:nLangs-1))%nLangs;
pDVS->put_SelectedLanguage(iSelected);
WCHAR* pName = NULL;
pDVS->get_LanguageName(iSelected, &pName);
}
}
But subtitle's stream from LAV/MPC MPEGSplitter not in this list and only show from tray menu of filter.
nautilus7
22nd July 2013, 12:31
Hi cyberbeing, can I use xysubfilter in avisynth scripts like I did with xy-vsfilter? Thanks.
cyberbeing
22nd July 2013, 12:55
Can you made that XySubFilter show all internal + external subtitles list and a can select it from API.
Now a can select subtitle stream, example of code:
...
I passed this along to our developer. The following was his interpretation of your problem:
Source filters like LAVFilter expose only one subtitle output pin and that is treated as one language in VSFilter/XySubFilter. He can NOT select embedded subtitles using the IDirectVobSub interface. However the XySubFilter's systray does allow one to do that. The embedded subtitles list in systray popup menu comes from source filter in such cases.
If the above is a correct interpretation, his response was:
He wants to enumerate all languages using IDirectVobSub interface? Hmmm... maybe it is possible. But I feel that using the IAMStreamSelect interface would be better. IAMStreamSelect of XySubFilter currently can NOT list all embedded subtitles either. It can be changed.
Aleksoid1978
22nd July 2013, 13:03
cyberbeing
It's easy support select stream use IAMStreamSelect(as you do throw tray menu) inside IDirectVobSub interface. Is currently being used is a similar in MPC-BE and we see audio & subtitle in ONE(Single) menu. But to complicate it further and to support XySubFilter i think wrong way, better do it's on you side :)
cyberbeing
22nd July 2013, 13:07
Hi cyberbeing, can I use xysubfilter in avisynth scripts like I did with xy-vsfilter? Thanks.
Unfortunately, no.
But speaking of this, we are looking for a developer who would be willing to assist in updating our Avisynth plugin to support the new colorspaces in version 2.6, as well as write us a VapourSynth plugin. This is not our area of expertise, so we feel it would be more efficient to outsource it to a developer who is already familiar with writing such plugins.
clsid
22nd July 2013, 13:22
@cyberbeing
The tray icon enumerates IAMStreamSelect from other filters in the graph. That can make it a bit messy, for example if ffdshow video decoder is used (which copies list from other filters). It would probably be best to disable this behavior and only show a list for the subs handled by xy*filter itself.
Relevant code can be found in systray.cpp, CSystrayWindow::OnNotifyIcon
Telion
22nd July 2013, 13:41
Aleksoid1978
cyberbeing
It would be very nice to be able to switch subtitles through MPC-BE hotkeys/button menu at last. I hope you come to a decision allowing this, and also backport it to xy-VSFilter if possible.
karamancho
22nd July 2013, 15:27
Aleksoid1978
cyberbeing
It would be very nice to be able to switch subtitles through MPC-BE hotkeys/button menu at last. I hope you come to a decision allowing this, and also backport it to xy-VSFilter if possible.
you can do this in MPC-HC with the 's' key, it shouldn't be much different in MPC-BE.
it works with internal subs, but does nothing with the external ones (well maybe it does but I never have more than one sub loaded so I wouldn't know)
it would be great if you could add an 'subs off' state with external subs in xy-VSFilter. that way we could enable/disable external subs with the keyboard (without leaving the fullscreen)
Asteague
22nd July 2013, 15:38
Did you remember to disable the MPC-HC ISR by unchecking "Auto-load subtitles" under "Playback" in MPC-HC settings?
Are you positive the external subtitle files have an identical file name to your video? Please double-check by renaming one to the other with copy/paste (not including file extension).
Yes, I'm positive on both accounts.
The ISR is disabled, has been for ages since I started using xy-subFilter.
The file name is correct, it worked perfectly before with xy-vsfilter or when enabling ISR. Only xySubFilter has problems with it, for whatever reason, and sporadically it does work, although I haven't managed to reproduced it reliably.
What I forgot to mention: xySubFilter doesn't even seem to load, at least it doesn't show up in the Filters list in the context menu. Also doesn't change if I explicitly set xySubFilter as a preferred external filter.
Telion
22nd July 2013, 15:42
you can do this in MPC-HC with the 's' key, it shouldn't be much different in MPC-BE.
Unfortunately it is, MPC-BE authors removed this function for external splitters.
Kurtnoise
22nd July 2013, 15:48
I'm just wondering coz I didn't found anything on this yet, does the xy-VSFilter/xySubFilter still have an Avisynth interface ? If so, how to manage it ?
:thanks:
Navitron
22nd July 2013, 16:29
Just wanted to say what a great job you guys have done and are still doing! Keep up the great work. :)
GrofLuigi
22nd July 2013, 16:47
I'm just wondering coz I didn't found anything on this yet, does the xy-VSFilter/xySubFilter still have an Avisynth interface ? If so, how to manage it ?
:thanks:
The answer (http://forum.doom9.org/showthread.php?p=1637847#post1637847) (if I didn't misunderstand something). :o
GL
Aleksoid1978
22nd July 2013, 23:23
Unfortunately it is, MPC-BE authors removed this function for external splitters.
Where did you get that info ?
The MPC-BE is perfectly switches the audio and subtitle tracks with hot keys, besides all the audio and subtitle organized in a common menu.
turbojet
22nd July 2013, 23:45
Yes, those are SRT subtitles. I don't see the problem though, our style override dialog functions just fine on that sample.
Override Style
1) Open your sample (http://www.sendspace.com/file/bt4zd8) in MPC-HC
2) Pause video
3) Right-click MPC-HC window -> Filters -> XySubFilter -> Properties
4) Click "Styles"
5) Click the "Default" tab
6) Edit to bogus value like "Border Width = 10"
7) Click "Ok" to style Dialog
8) Click "Apply" to main setting dialog [note: the need to press Apply here first seems to be a bug]
9) Click "Okay to main setting dialog
10) Style with "Border Width = 10" is applied to subtitles.
OR
Force Default Style
1) Open your sample (http://www.sendspace.com/file/bt4zd8) in MPC-HC
2) Pause video
3) Right-click MPC-HC window -> Filters -> XySubFilter -> Properties
4) Click "Styles"
5) Click the "Global Default" tab
6) Edit to bogus value like "Border Width = 10"
7) Click "Ok" to style Dialog
8) Check "Force Default" in main setting dialog
9) Click "Okay to main setting dialog
10) Style with "Border Width = 10" is applied to subtitles.
11) Exit MPC-HC
12) Re-open your video
13) "Border Width = 10" is still applied to subtitles
That worked fine and it's finally working correctly for those subs. There may not be a logical reason to it and couldn't reproduce it on a vm, but font size and style had no effect (Arial bold 72 looked identical to Arial narrow 8) until the font changed then everything started working. The few other subs tested style/size worked. This is the first time xysubfilter was installed, vsfilter was never installed on a windows 7 x64 as a non-admin user, the problematic subs were the first subs tested. Probably a fluke?
We currently have no intentions of adding a bitmap resizing function within XySubFilter. The actual resizing code should exist in madVR, even if we ourselves trigger use of such code.
Oh well, could really make subfilter stick out. A DVD/BD with small subs currently requires ripping, extracting the subs, resizing the subs with bdsup2sub, muxing them back together, playing the muxed file. Could take well over an hour for a BD as opposed to a few seconds adjusting zoom of the sub renderer.
madVR has much to do with the subtitle interface used by XySubFilter. Unless madVR adds such code to madVR, and offers a way for us to trigger such functionality, there is nothing we can do. You need to make a case to madshi for why he should support such a feature in madVR and the subtitle interface.
It doesn't bother me and there's no need for a third party to get involved but it's comparable to subfilter having options to control madvr's refresh rate changer.
Is there any way to get subfilter to use the same size font independent of the aspect ratio. 1.33:1 subs are much larger than 2.35:1 at the same 'font size'. Examples at http://www.sendspace.com/file/hsaiei
cyberbeing
23rd July 2013, 01:30
This is the first time xysubfilter was installed, vsfilter was never installed on a windows 7 x64 as a non-admin user, the problematic subs were the first subs tested. Probably a fluke?
Can you reproduce this if you delete the entire XySubFilter registry key? We don't write settings to the registry until the setting dialog is closed for the first time, so maybe that could be related.
HKEY_CURRENT_USER\Software\Gabest\xysubfilter
Is there any way to get subfilter to use the same size font independent of the aspect ratio.
Not currently, since our scale function in XySubFilter is based around VSFilter behavior, which adjusts font size based on frame height + layout resolution. This only works in MPC-HC ISR since they always render based on a fixed frame size (and hence fixed relative font size), while XySubFilter renders directly to target size. Maybe we could look into such an option for SRT and other plaintext subtitles.
Yes, I'm positive on both accounts.
The ISR is disabled, has been for ages since I started using xy-subFilter.
The file name is correct, it worked perfectly before with xy-vsfilter or when enabling ISR. Only xySubFilter has problems with it, for whatever reason, and sporadically it does work, although I haven't managed to reproduced it reliably.
What I forgot to mention: xySubFilter doesn't even seem to load, at least it doesn't show up in the Filters list in the context menu. Also doesn't change if I explicitly set xySubFilter as a preferred external filter.
No idea. madVR is in currently in charge of loading XySubFilter into the graph for external subtitles, so if XySubFilter doesn't even show up in Filters, it could be a madVR bug. I'd suggest creating a new bug on madshi's bug tracker (http://bugs.madshi.net/my_view_page.php) about this, and attach a madVR debug log. Depending on what madshi has to say, we'll see where to go from there.
What happens if you uninstall XySubFilter, xy-VSFilter, LAV Filters, and Haali Splitter, madVR and then:
Install CCCP Beta RC3-2013-07-22 (http://www.cccp-project.net/beta/Combined-Community-Codec-Pack-RC3-2013-07-22.exe)
From CCCP Settings run "Reset User Settings" & "Repair CCCP"
Install XySubFilter (http://code.google.com/p/xy-vsfilter/downloads/detail?name=XySubFilter_3.1.0.546_BETA_Installer_v2.exe)
Install madVR (http://madshi.net/madVR.zip)
Run the MPC-HC build provided with CCCP
Select madVR as video renderer
Attempt to reproduce the issue
Does that resolve the problem?
Also be aware of this issue (http://code.google.com/p/xy-vsfilter/issues/detail?id=156). We have a workaround in place for MPC-HC based media players, which currently requires the app name contain "mpc-hc". Does this issue occur with other media players like Zoom Player (http://www.inmatrix.com/download_relay/beta/zoomplayer.com_free.html) with "Smart Play" disabled? If not, maybe our workaround has an intermittent issue on Win8, in which case I *really* hope MPC-based players can add an exception, so our workaround could be removed from future releases.
cyberbeing
23rd July 2013, 06:07
As of MPC-BE r3087 and newer Issue #156 (MPC-BE prevents XySubFilter from loading external subtitles) (http://code.google.com/p/xy-vsfilter/issues/detail?id=156) has been resolved.
turbojet
23rd July 2013, 07:07
Can you reproduce this if you delete the entire XySubFilter registry key? We don't write settings to the registry until the setting dialog is closed for the first time, so maybe that could be related.
HKEY_CURRENT_USER\Software\Gabest\xysubfilter
Nope, tried 3 times.
Aleksoid1978
23rd July 2013, 07:12
Another bug.
If no embedded subtitle, call IDirectVobSub->put_FileName() but subtitle is not displayed. Call get_HideSubtitles(&fHideSubtitles) return fHideSubtitles == false;
To improve this situation i need after
put_FileName()
call
put_HideSubtitles(true);
put_HideSubtitles(false);
After that subtitle display.
Telion
23rd July 2013, 11:18
Where did you get that info ?
The MPC-BE is perfectly switches the audio and subtitle tracks with hot keys, besides all the audio and subtitle organized in a common menu.
From my experience with LAV Splitter/Haali and xy-VSFilter/XySubFilter. Obviously I'm not talking about ISR here, which works as you described, and not about audio tracks either. With the same set of external filters installed in OS, MPC-HC switches multiple subtitle tracks in MKV with S/Shift-S and lists them all in Navigate/Subtitle Language submenu, while MPC-BE doesn't, as there is always one track in that menu - the one selected through xy-VSFilter tray menu. If you're telling me that there should be no difference, then what's wrong with my setup? Am I the only one experiencing this problem with MPC-BE here?
Aleksoid1978
23rd July 2013, 11:57
From my experience with LAV Splitter/Haali and xy-VSFilter/XySubFilter. Obviously I'm not talking about ISR here, which works as you described, and not about audio tracks either. With the same set of external filters installed in OS, MPC-HC switches multiple subtitle tracks in MKV with S/Shift-S and lists them all in Navigate/Subtitle Language submenu, while MPC-BE doesn't, as there is always one track in that menu - the one selected through xy-VSFilter tray menu. If you're telling me that there should be no difference, then what's wrong with my setup? Am I the only one experiencing this problem with MPC-BE here?
What about open in MPC-HC + LAV + VSFilter files with embedded subtitle + external. Can you change it within MPC-HC menu, what you see.
Telion
23rd July 2013, 14:12
Aleksoid1978
In both players 1 external track takes precedence over 2 embedded after playback starts (VSFilter set to External - Load when needed). In MPC-HC menu I don't see external track, only 2 embedded. I can switch between embedded and external only through VSFilter. In the player I can switch between 2 embedded after I switch from external to embedded in VSFilter. In MPC-BE menu I see external track and 1 embedded (chosen by splitter as default one according to track selection preferences). I can switch between them. To be able to select second embedded track I must go to VSFilter tray menu.
Asteague
23rd July 2013, 17:30
(snip)
Does that resolve the problem?
Also be aware of this issue (http://code.google.com/p/xy-vsfilter/issues/detail?id=156). We have a workaround in place for MPC-HC based media players, which currently requires the app name contain "mpc-hc". Does this issue occur with other media players like Zoom Player (http://www.inmatrix.com/download_relay/beta/zoomplayer.com_free.html) with "Smart Play" disabled? If not, maybe our workaround has an intermittent issue on Win8, in which case I *really* hope MPC-based players can add an exception, so our workaround could be removed from future releases.
Nope, still the same problem in MPC-HC, xySubFilter still not showing up in the filter list.
Using Zoom Player on the other hand, everything works as one would expect. xySubFilter shows up in the list and successfully loads the external sub file.
I'd kind of understand if xySubFilter completely refused to work with MPC-HC, but it's only happening with files that have only external sub files, for whatever reason...
cyberbeing
23rd July 2013, 19:20
I'd kind of understand if xySubFilter completely refused to work with MPC-HC, but it's only happening with files that have only external sub files, for whatever reason...
MPC-HC has code which removes XySubFilter from the graph with external subtitles if we don't have a connected subtitle pin. Our beta build has a workaround, but maybe it's not working correctly for you and MPC-HC removes us anyway. Do XySubFIlter external subtitles work with MPC-BE r3087 (http://dev.mpc-next.ru/index.php/topic,1654.msg9236.html#msg9236) without issue?
If it does, I'm going to need to make another push on the MPC-HC devs to add an exception for XySubFilter in this code.
Stephen R. Savage
23rd July 2013, 19:32
Hopefully we can find a way to optimize the effect in this script a bit more.
You've not scaled \be in that sample though. If you replace every \be1 with \be3 or \be4 does it still play fine?
Why would XySubFilter do something as exceedingly performance-pessimistic as this? There's already a de-facto standard for scaling ASS subtitles, and that's Aegisub's automatic resolution adjustment. Increasing the number of \be passes (which is not an edge blur radius) has a drastic effect on performance.
nevcairiel
23rd July 2013, 19:40
Why would XySubFilter do something as exceedingly performance-pessimistic as this? There's already a de-facto standard for scaling ASS subtitles, and that's Aegisub's automatic resolution adjustment. Increasing the number of \be passes (which is not an edge blur radius) has a drastic effect on performance.
To be fair, the de-facto ASS standard is how VSFilter 2.39 renders it.
cyberbeing
23rd July 2013, 20:29
To be fair, the de-facto ASS standard is how VSFilter 2.39 renders it.
Correct, and this means our scale function attempts to maintain the original resolution VSFilter 2.39 appearance of \be when scaled.
There's already a de-facto standard for scaling ASS subtitles, and that's Aegisub's automatic resolution adjustment.
Aegisub's resample resolution function has always been a half-way solution which requires to re-doing many effects from scratch. It's not a de-facto standard, its a time-saving measure which breaks scripts. The main reason that Aegisub doesn't scale \be is because it only accepts integer values, and cannot be scaled easily.
The \be function should have never even been patched into to VSFilter 2.39 in the first place because of these scaling limitations, but now we are stuck with it. Scripts which use \be will appear incorrect if we do not scale it properly. We've added floating-point and anamorphic support for \be, and made adjustments the active blurring area to assist in achieving subjectively accurate scaling. Not as perfect a match as \blur scaling, but it comes close enough.
Why would XySubFilter do something as exceedingly performance-pessimistic as this?
Increasing the number of \be passes (which is not an edge blur radius) has a drastic effect on performance.
Well I'm still waiting to hear back from thewebchat about this. I'm not yet convinced that \be is the cause of his problem on his Ivy Bridge laptop. On my Ivy Bridge desktop, 90%+ of the total CPU use still exists @2560x1440 even after I strip \be and \fade effects from the script. I'm suspecting the source of his performance issue is elsewhere. But yes, the computation load of multiple \be passes are rather linear, but it shouldn't be too bad on a modern CPU since its been re-written and SSE2 optimized compared to the original VSFilter 2.39 implementation which was very slow.
Asteague
23rd July 2013, 22:08
MPC-HC has code which removes XySubFilter from the graph with external subtitles if we don't have a connected subtitle pin. Our beta build has a workaround, but maybe it's not working correctly for you and MPC-HC removes us anyway. Do XySubFIlter external subtitles work with MPC-BE r3087 (http://dev.mpc-next.ru/index.php/topic,1654.msg9236.html#msg9236) without issue?
If it does, I'm going to need to make another push on the MPC-HC devs to add an exception for XySubFilter in this code.
Yep, using MPC-BE works flawlessly. It seems you'll have to push MPC-HC in the right direction in this case.
cyberbeing
24th July 2013, 02:38
Yep, using MPC-BE works flawlessly. It seems you'll have to push MPC-HC in the right direction in this case.
I've heard back that MPC-HC will hopefully commit a fix sometime tomorrow.
They've also been making good initial progress on writing a Subtitle Consumer supporting XySubFilter for other MPC-HC renderers like EVR-CP. Still in the very early stages of development, but for users who do not have GPUs capable of running madVR, this is something to keep an eye out for in the future.
Starks
24th July 2013, 05:34
XySubfilter is really nice so far. Much faster than libass and no slowdown when rendering high-resolution karaoke or signs.
That being said, I can't help but wonder if an opportunity is being missed to make a cross-platform successor to vsfilter and its forks. libass hasn't fulfilled that role well enough and the main dev is pretty much on his own.
madshi
24th July 2013, 07:37
I can't help but wonder if an opportunity is being missed to make a cross-platform successor to vsfilter
XySubFilter is still based on the VSFilter rendering engine (although with a lot of tweaks). This rendering engine uses a lot of win32 API calls, so it can't be easily converted to other OSs. The XySubFilter main developer has enough work on his hands as it is. You can't expect him to do what nobody before him dared to do in all those years, namely making the VSFilter rendering engine work on other OSs.
If you want XySubFilter to be cross-platform, of course you're free to work on this yourself, or to hire a professional developer to do the work... ;)
Aleksoid1978
24th July 2013, 07:55
If who interested - i make full integrate VSFilter/XySubFilter's subtitle selection mechanism into MPC-BE. Now you see and can select any subtitle stream from MPC-BE, embedded and external.
I combined IDirectVobSub & IAMStreamSelect interface control in one :)
http://aleksoid.voserver.net/MPC-BE/mpc-be.exe_VSFilter_XySubFilter_General_SubtitleMenu_Final.7z
Who interested - test please.
Soukyuu
24th July 2013, 12:00
That being said, I can't help but wonder if an opportunity is being missed to make a cross-platform successor to vsfilter and its forks. libass hasn't fulfilled that role well enough and the main dev is pretty much on his own.You know, I think the major problem with the linux world is that people don't concentrate on improving existent software but instead start their own thing - that ends up just as half-assed because they lose interest halfway.
IMHO, a better idea would be a collaboration between xySubFilter and libass, for example to assist the libass devs in implementing a cache so that only the portion of the output that changed has to be rendered, not the whole screen as libass does now.
Telion
24th July 2013, 13:40
Aleksoid1978
Thank you very much, now the last major inconvenience of MPC-BE has gone! But I suggest to exclude the "No subtitles" item from the S/Shift-S cycle, since there is another hotkey to enable/disable subtitles. It's not very reasonable to have a no-subtitle slot when I want to repeatedly switch between different subtitles (e.g. to compare variants of translation).
cyberbeing
24th July 2013, 14:01
But I suggest to exclude the "No subtitles" item from the S/Shift-S cycle, since there is another hotkey to enable/disable subtitles. It's not very reasonable to have a no-subtitle slot when I want to repeatedly switch between different subtitles (e.g. to compare variants of translation).
I disagree with this. I personally use the "s" key with the intention of disabling subtitles, much more often than I use it with the intention of switching subtitles. It's convenient to have both functions using the intuitive "s" (subtitle) hotkey with the default behavior. Any new hotkey behavior which disables built-in functionality which has always existed for over a decade since the Gabest days, should get a new non-default setting under Player->Keys, as to not force millions of users to relearn a new hotkey, IMHO. More often than not, we the subtitle filter get stuck supporting such users when core functionality like this breaks unexpectedly.
ryrynz
24th July 2013, 14:21
Who interested - test please.
Ran that build tonight, experienced two crashes, no subtitles for that episode either. Anyone else?
Telion
24th July 2013, 15:34
No crashes here as yet. But there is a reported problem with >1 external subtitle tracks, guess it'll be fixed soon. Is this your case?
cyberbeing
24th July 2013, 19:35
If who interested - i make full integrate VSFilter/XySubFilter's subtitle selection mechanism into MPC-BE. Now you see and can select any subtitle stream from MPC-BE, embedded and external.
http://aleksoid.voserver.net/MPC-BE/mpc-be.exe_VSFilter_XySubFilter_General_SubtitleMenu_Final.7z
Good:
MPC-BE prevents XySubFilter & ISR from running at the same time, which avoid performance issues and duplicates with both being active. MPC-BE ISR disables itself when XySubFilter is present, even if "Auto-Load Subtitles" is enabled. (MPC-HC doesn't do this for some reason, which can lead to issues)
MPC-BE "Sub" button on main window can be used to switch all available subtitle tracks with XySubFilter/xy-VSFilter during playback.
MPC-BE "Load Subtitle" can be used to load external subtitles with XySubFilter/xy-VSFilter during playback.
MPC-BE drag and drop can be used to load external subtitles with XySubFilter/xy-VSFilter during playback.
MPC-BE "Subtitles" context menu can be used to enable/disable subtitles with XySubFilter/xy-VSFilter during playback.
MPC-BE seems to prevent XySubFilter BETA from entering graph with EVR-CP and other renderers without a Subtitle Consumer.
Issue:
MPC-BE "Subtitle Database" download "replace currently loaded subtitles" does not load subtitles into XySubFilter/xy-VSFilter when active.
MPC-BE does not prevent XySubFilter from entering the graph with EVR-CP if another filter loads it into the graph by mistake. Not an issue with Beta, but at least until a Subtitle Consumer which is not a video renderer exists, you may want to block XySubFilter from loading with any video renderer without a known Subtitle Consumer. [Edit: We recommend that you wait until we can send you a test build for our next release]
madshi
24th July 2013, 22:52
MPC-BE does not prevent XySubFilter from entering the graph with EVR-CP if another filter loads it into the graph by mistake. Not an issue with Beta, but at least until a Subtitle Consumer which is not a video renderer exists, you may want to block XySubFilter from loading with any video renderer without a known Subtitle Consumer. Our recommended future-proof way to do this is by exposing the dummy IXySubFilterGraphMutex (https://github.com/Cyberbeing/xy-VSFilter/commit/ef5b1d6151fa40db2bef1fe78daef31b4d0a31ce) interface, which will prevent XySubFilter from entering the graph when present.
I find this dummy IXySubFilterGraphMutex interface an unnecessarily complicated solution to the problem. Why not simply dynamically blocking XySubFilter (and the auto-load helper) instead? Much easier and no dummy interface needed.
Aleksoid1978
25th July 2013, 00:15
Good:
Issue:
MPC-BE "Subtitle Database" download "replace currently loaded subtitles" does not load subtitles into XySubFilter/xy-VSFilter when active.
I update build - now it's normal open and manipulate of multiple external subtitles.
http://aleksoid.voserver.net/MPC-BE/mpc-be.exe_VSFilter_XySubFilter_General_SubtitleMenu_Final_2.7z
About "subtitle database" - i have tried many times to download subtitles, but my films there was nothing :).
Can you upload a video that i can download subtitle. Then I can fix this issue.
cyberbeing
25th July 2013, 03:38
I find this dummy IXySubFilterGraphMutex interface an unnecessarily complicated solution to the problem. Why not simply dynamically blocking XySubFilter (and the auto-load helper) instead? Much easier and no dummy interface needed.
What auto-load helper? Until we actually release something, there is no new behavior or filter to dynamically block. ;)
[Edit: I've just clarified with our dev, and you are correct, I misunderstood something. IXySubFilterGraphMutex was intended for use by directshow filter developers, not player developers. Sorry about the confusion Aleksoid1978, you shouldn't have any need for this in MPC-BE.]
But yes, the new auto-load helper test code you provided causes this bad behavior. I've been throwing ideas back and forth with our dev for the last few days in private, attempting to figure our a way to fix it without breaking something else even worse in the process. Now that I've seen MPC-BE behavior in this build, we need to be extra careful not to break its functionality. The hope is that media players won't need any workarounds whatsoever, but I have no way to guarantee that at this time. This is not a discussion for this thread, as there may be no problems at all once we release our next build.
About "subtitle database" - i have tried many times to download subtitles, but my films there was nothing :).
Can you upload a video that i can download subtitle. Then I can fix this issue.
Sure, I'll send you a sample.
And as implied above, specifics of loading behavior for the next release XySubFilter are still uncertain. It may be best to wait it out until we send you a test build which can be specifically designed around. We also will likely have bug-fixes for some of the other issues you've mentioned to us.
Telion
25th July 2013, 03:46
I update build - now it's normal open and manipulate of multiple external subtitles.
In case of multiple external subtitles it now works with VSFilter but doesn't work with XySubFilter, the filter doesn't get loaded.
Aleksoid1978
25th July 2013, 03:53
In case of multiple external subtitles it now works with VSFilter but doesn't work with XySubFilter, the filter doesn't get loaded.
Must work fine - it's use one interface.
http://i.imgur.com/qsJhY5l.png
http://i.imgur.com/PC8Lwsm.png
Telion
25th July 2013, 04:06
Aleksoid1978
The problem appears here with SRT subs and AVI/MKV without embedded subs. If MKV has embedded sub track, then it works.
cyberbeing
I noticed that double-clicking on XySubFilter tray icon doesn't bring up Properties, as it does with xy-VSFilter. Can you confirm this?
Aleksoid1978
25th July 2013, 04:19
Telion
All ok for me.
http://i.imgur.com/g9gqfwP.png
http://i.imgur.com/sYqKl9p.png
can you upload a avi/mkv + .srt files for test ??
cyberbeing
25th July 2013, 04:19
cyberbeing
I noticed that double-clicking on XySubFilter tray icon doesn't bring up Properties, as it does with xy-VSFilter. Can you confirm this?
What OS are you running? This works fine for me with XySubFilter Beta on Win7 SP1 x64.
Can anyone else reproduce this problem with double-clicking the tray icon which Telion is reporting?
Telion
25th July 2013, 12:34
Aleksoid1978
cyberbeing
I discovered that both of my problems are due to just adding XySubFilter to External Filters in MPC-BE and not installing it into OS. I thought there should be no difference, am I wrong? Now I found out that registered XySubFilter can't be blocked through External Filters, and I must unregister it to switch back to VSFilter for comparison. Not very convenient, but I'm OK with this, thank you.
cyberbeing
25th July 2013, 13:33
XySubFilter 3.1.0.546 uses version 1.0.6 of the subtitle interface which requires that the Subtitle Consumer (e.g. madVR) always auto-load XySubFilter into the graph for external subtitles. When XySubFilter is installed, it writes its GUID to HKCR\Autoload.SubtitleProvider , which the Subtitle Consumer uses to find and load XySubFilter into the graph. We are currently in the process of investigating alternative methods which can be used to load Subtitle Providers for external subtitles. So it's very possible a future build may function as you desire, depending on the solution we come up with.
Moragg
26th July 2013, 00:32
Aleksoid1978
cyberbeing
I discovered that both of my problems are due to just adding XySubFilter to External Filters in MPC-BE and not installing it into OS. I thought there should be no difference, am I wrong? Now I found out that registered XySubFilter can't be blocked through External Filters, and I must unregister it to switch back to VSFilter for comparison. Not very convenient, but I'm OK with this, thank you.
My original installation of xysubfilter alongside xyvsfilter allowed me to block xysubfilter in external filters... though that was in MPC-HC.
DarkSpace
26th July 2013, 14:08
I've got a request: Currently, when opening either XySubFilter's or xy-VSFilter's properties page during video playback by double-clicking on the tray icon, the window opens in the top left area of whatever monitor currently plays the video. Is it possible to have the window open on the primary monitor instead, like e.g. madVR's configuration window does, or, when tray icons are enabled, the LAV Filter properties pages do?
cyberbeing
26th July 2013, 16:53
So you want the properties page to be opened on the same monitor the tray icon is clicked from? The current behavior of opening within the video window was likely done internationally in the legacy VSFilter tray code, but we could probably change that. Create a new issue on our bug tracker if you want us to consider it.
mindbomb
27th July 2013, 00:37
should we specify our monitor resolution anywhere in xy subfilter like with mpc hc's subtitle renderer?
I notice an area in renderer layout options where it appears you can enter a resolution, but I suspect it is for something else.
cyberbeing
27th July 2013, 04:36
should we specify our monitor resolution anywhere in xy subfilter like with mpc hc's subtitle renderer?
____
No, you do not need to specify anything. Output resolution is dynamic, and always matches the resolution of video after resizing.
For example with Default behavior:
720x480 16:9 anamorphic DVD encode
Viewed at 100% 853x480 = 853x480 Subtitle Resolution
Viewed fullscreen at 1920x1080 = 1920x1080 Subtitle Resolution
Viewed at 50% 427x240 = 427x240 Subtitle Resolution
...and so on
Always rendering fonts at the resolution of the video after resizing along with automated scaling of effects, yields the highest quality.
____
The only resolution option which exists in XySubFilter, is the "Render to Original Video Size" option. This option enables VSFilter style rendering behavior, with rendering resolution always matching the original video, and subtitles blended prior to resizing:
720x480 16:9 anamorphic DVD encode
Viewed at 100% 853x480 = 720x480 Subtitle Resolution
Viewed fullscreen at 1920x1080 = 720x480 Subtitle Resolution
Viewed at 50% 427x240 = 720x480 Subtitle Resolution
...and so on
Normally you should not enable this, as it somewhat defeats the purpose of using XySubFilter. We've primarily left such an option in for users who are bothered by high resolution subtitles on low resolution video. Though you do still get higher quality color-corrected 4:4:4 RGB rendering with this option enabled, instead of the sub-sampled 4:2:0 YCbCr output common with VSFilter.
____
I notice an area in renderer layout options where it appears you can enter a resolution, but I suspect it is for something else.
Yes, that "Customize" setting is primarily for debugging scripts, and is not related to rendering resolution at all. So while it does exist, and has some alternative uses, that setting is not user friendly at all and as such not intended for end-users. Out of infinite possibilities, there is never more than a single layout resolution which ever correct here (the video resolution which a script was authored to), setting to anything else will break scripts. Our default behavior is VSFilter compatible, and assumes the resolution of the video being used with the script during playback, matches the resolution of the video used in script authoring.
ryrynz
27th July 2013, 04:41
Normally you should not enable this, as it defeats the purpose of using XySubFilter. We've left such an option in for users who are bothered by high resolution subtitles on low resolution video.
High resolution subs on low resolution video just looks wrong to me, so I enable it. Would it be worthwhile to have another option further to this where the resolution of the content must exceed a specified value for this to become active?
Soukyuu
27th July 2013, 10:22
Normally you should not enable this, as it somewhat defeats the purpose of using XySubFilter. We've primarily left such an option in for users who are bothered by high resolution subtitles on low resolution video.I'm not sure that would be possible at all, but how about an option for unstyled (default position, not additional ASS tags) to be rendered at output resolution, while styled are rendered at video resolution? Watching DVD resolution video with typesetted signs at output resolution looks weird to me because the typesetting and signs don't blend, but dialogue is easier on the eyes when it's not blurry.
madshi
27th July 2013, 10:27
Another option would be to render at video resolution but to blur the subtitles appropriately. This would have the nice benefit that the subtitles would have a similar sharpness to the video, but zero *aliasing*.
ryrynz
27th July 2013, 11:01
Another option would be to render at video resolution but to blur the subtitles appropriately.
Saw somebopdy suggest that earlier and Cyberbeing said it was on the cards.
cyberbeing
27th July 2013, 12:29
How to take madVR screenshots with MPC-HC which include XySubFilter subtitles [Updated] (http://forum.doom9.org/showpost.php?p=1638448&postcount=19731)
Tornado15550
27th July 2013, 19:31
Will there be a 64bit release of xySubFilter?
Right now, I'm running the 64bit release of xy-VSFilter.
Also, is it a must to have MadVR in order for XySubFilter to work?
nevcairiel
27th July 2013, 20:03
Also, is it a must to have MadVR in order for XySubFilter to work?
At the moment, madVR is the only thing which supports it, and since madVR is only 32-bit, the 64-bit question answers itself for now.
However, the MPC-HC devs are working on making XySubFilter work with the internal renderers, as well.
Tornado15550
28th July 2013, 03:22
At the moment, madVR is the only thing which supports it, and since madVR is only 32-bit, the 64-bit question answers itself for now.
However, the MPC-HC devs are working on making XySubFilter work with the internal renderers, as well.
Makes sense.
Thanks for the reply.
Asteague
29th July 2013, 16:06
I've heard back that MPC-HC will hopefully commit a fix sometime tomorrow.
Just to let everyone know, the mentioned fix has since been committed and xySubFilter works flawlessly even when there's only external subtitles.
Aleksoid1978
1st August 2013, 01:28
To developers - filter can't render some subtitle from DVD(VOBSUB). If need - i can upload example of this files.
cyberbeing
1st August 2013, 06:49
To developers - filter can't render some subtitle from DVD(VOBSUB). If need - i can upload example of this files.
Do your samples work in MPC-BE without XySubFilter/xy-VSFilter? It's quite possible we forgot to merge a bug-fix commit from MPC-BE somewhere, in which case it could be more helpful to just point out what you did to fix this issue. In general when it comes to VOBSUB/PGS/DVB image-based subtitles, we often only merge changes and fix regressions compared to MPC-HC & MPC-BE, and otherwise let these projects be in charge of maintaining this code rather than working on it ourselves.
None the less, if it is broken in all versions of VSFilter, please provide a sample.
Aleksoid1978
1st August 2013, 09:53
Yes - it' samples work in MPC-BE. But fail in MPC-HC/XySubFilter/xy-VSFilter.
JEEB
1st August 2013, 10:44
Please feel free to upload the samples, but can you also check if this fork (https://github.com/jeeb/xy-vsfilter/releases/download/2013-07-16-beta/2013-07-16-xy-vsfilter.7z) of xy-VSFilter I'm (trying to) maintain fails them too :) ?
cyberbeing
1st August 2013, 11:27
XySubFilter contains all the VOBSUB fixes from JEEB's branch, so it's most likely the same behavior.
I took a quick look, and it seems like we are missing this (http://svnlog.mpc-next.ru/diff.php?repname=MPC-BE+Team&path=%2Ftrunk%2Fsrc%2FSubtitles%2FVobSubImage.cpp&rev=1459&peg=1459) commit from MPC-BE r1459. Would need a sample to confirm this fixes Aleksoid's issue though.
Aleksoid1978
1st August 2013, 13:07
XySubFilter contains all the VOBSUB fixes from JEEB's branch, so it's most likely the same behavior.
I took a quick look, and it seems like we are missing this (http://svnlog.mpc-next.ru/diff.php?repname=MPC-BE+Team&path=%2Ftrunk%2Fsrc%2FSubtitles%2FVobSubImage.cpp&rev=1459&peg=1459) commit from MPC-BE r1459. Would need a sample to confirm this fixes Aleksoid's issue though.
Yes - it's changes :)
Superb
1st August 2013, 14:12
Am I the only one having trouble following the git development? What are all these (31) branches?
Maybe I'm a git newbie, but using forks/pull/push seems much more organized. Releases should be tagged, and so on...
cyberbeing
1st August 2013, 18:45
Stable releases have been tagged ever since version 3.0.0.0. Other releases are usually are not tagged, with versioning dependent on our build script. It's always possible to check-out a non-tagged release by the GIT hash we list in our release notes.
At one point in time last year, we ended up with two "master" branches at the same time, which was becoming a problem. When we released 3.0.0.211 our "old" Master was replaced with our "new" Master. Some of the older development branches may appear stranded because of this.
Anything which hasn't been merged into Master branch is not final. New branches are created whenever we are testing new features, or potentially unstable changes.
In general, ignore any branch which haven't been updated since our last release.
Our developer usually does a revert and force push whenever he needs to replace a broken commit on a development branch. He also rarely merges or rebases development branches into each other, rather creating a new branch and commiting each change again from scratch.
xy_sub_filter_rc (branch) = XySubFilter Beta 3.1.0.546
It shouldn't be too hard to follow our GIT development enough to get a general idea of what we've been working on, but the concept of "nightly builds" is not really compatible with our development style. Not a major problem from our point of view, since we don't accept bug reports or offer support on anything but official releases anyway.
Aleksoid1978
2nd August 2013, 01:13
Here is a sample - http://aleksoid.voserver.net/Sample/Subtitle/DVD/
Another sample - http://aleksoid.voserver.net/Sample/Subtitle/VOBSUB/, also do not show subtitle, maybe the same bug.
mindbomb
2nd August 2013, 01:22
However, the MPC-HC devs are working on making XySubFilter work with the internal renderers, as well.
so, is it just gonna replace the current mpc hc subtitle renderer when it works with the internal renderers?
cyberbeing
2nd August 2013, 02:52
Here is a sample - http://aleksoid.voserver.net/Sample/Subtitle/DVD/
Another sample - http://aleksoid.voserver.net/Sample/Subtitle/VOBSUB/, also do not show subtitle, maybe the same bug.
Thanks. I've confirmed the MPC-BE r1459 commit resolves the issue with all of these samples. We'll make sure to include this fix in our next release.
krmit
3rd August 2013, 23:06
"auto-reload sub after detecting modification" option seems broken.
editing subtitle file cause no change at screen (both options checked), but CPU load increasing significantly (about 50-60% per core from 6-12%) and keep that level.
tested with MPC-BE r3149/madVR 0.86.10/LAV 0.58.2/.ass subs
cyberbeing
4th August 2013, 01:51
"auto-reload sub after detecting modification" option seems broken
Reproduced this issue in XySubFilter Beta, so I've created Issue #164 (http://code.google.com/p/xy-vsfilter/issues/detail?id=164). Thanks for the report. This is one feature I've never really used before, so I probably wouldn't have noticed it otherwise.
Gagorian
11th August 2013, 00:10
I'm having a small problem with XySubFilter. When viewed on my 119" white screen I can see some faint horizontal artifacting between letters (two very thin barely visible horizontal lines between the upper and lower parts of the letters). It seems like it's some problem with the transparency of the background. I think I had the same problem on the MPC internal filter and that's actually a reason for the switch.
I'm using MPC-HC and LAV filters with madVR (all latest versions). My GPU is the iGPU on A10-5700. I'm not using DXVA.
Any solutions to the issue?
cyberbeing
11th August 2013, 00:39
I'm having a small problem with XySubFilter. When viewed on my 119" white screen I can see some faint horizontal artifacting between letters (two very thin barely visible horizontal lines between the upper and lower parts of the letters). It seems like it's some problem with the transparency of the background. I think I had the same problem on the MPC internal filter and that's actually a reason for the switch.
I'm using MPC-HC and LAV filters with madVR (all latest versions). My GPU is the iGPU on A10-5700. I'm not using DXVA.
Any solutions to the issue?
I'm having trouble picturing what you describe. It sounds like it may be an artifact of your projector or screen, but I would need a screenshot to verify.
Disable Fullscreen Exclusive in madVR, and take a screenshot with PrtScn which shows the issue. paste that into Paint or similar, save and upload it somewhere.
Gagorian
11th August 2013, 21:10
I'm having trouble picturing what you describe. It sounds like it may be an artifact of your projector or screen, but I would need a screenshot to verify.
Disable Fullscreen Exclusive in madVR, and take a screenshot with PrtScn which shows the issue. paste that into Paint or similar, save and upload it somewhere.
Using this methodology I pinpointed the issue to the Darbee Darblet video processor I have hooked up in my video chain. It seems to create the minor artifacting. So the problem is solved, thanks.
river1
12th August 2013, 01:32
Can XySubFilter render subtitles in 60fps?
I use SVP to interpolate 23.976fps videos into 60fps, and xy-vsfilter will render subtitles in 60fps when I put it after ffdshow. XySubFilter seems to always render subtitles in 23.976fps and does not look as smooth as the interpolated 60fps video.
cyberbeing
12th August 2013, 02:31
Can XySubFilter render subtitles in 60fps?
Yes.
I use SVP to interpolate 23.976fps videos into 60fps
...
does not look as smooth as the interpolated 60fps video.
We've been discussing this issue with madshi for the past day, since technically, madVR isn't sending XySubFilter Beta the information it expects for a 60fps video when SVP interpolation is used. The issue is a bit more complex then that though. I'll reply to your comment on GoogleCode (http://code.google.com/p/xy-vsfilter/issues/detail?id=154#c10) as soon as we have a definite answer, you didn't need to cross-post it here.
Raylan Givens
12th August 2013, 14:36
I'm using the beta subFilter at 2560x1600 resolution on a 1080p monitor, but I'd like to know if there is a way to avoid the distortion when I see a movie on lower than native resolution...
When the movie's resolution is 1280x528 for instance, the high-res fonts are being squeezed... Only when I see an HDTV serial which uses fullscreen the fonts are perfect...
I hope you get what I mean. Is there a way to keep the high-res fonts intact even when the movie ain't fullscreen?
Here you can see the settings: http://i5.minus.com/i5CDWJn9HEZQY.png
cyberbeing
12th August 2013, 15:01
Do not set "Customize", as it is NOT a rendering resolution setting. Leave it at the default of "Use Original Video Size" if you want proper scaling to Desktop resolution.
Also do not force YCbCr Matrix or RGB Levels PC either, leave both on the default setting of Auto or you'll have incorrect levels. Setting YCbCr Matrix to Guess will result incorrect subtitle colors in most cases, so leave that as the default setting of "Auto" as well.
Last but not least, 8x8 Bilinear sub-pixel positioning should generally not be used either, since it will make subtitles inconsistently blurry because of this old bug (http://code.google.com/p/xy-vsfilter/issues/detail?id=114). It's best to leave it at the default setting of "8x8 (vsfilter)".
Raylan Givens
12th August 2013, 15:28
But my goal is to get 2560x1600 res fonts with Scale X 100 - Scale Y 100 on all videos... No matter the video's resolution... I'd like on all movies the same high-res fonts.
So, this ain't possible, right?
I noticed the uneven blurring, but I couldn't be sure it's a bug. Also, if I leave the Matrix to "guess" it usually says "TV.709" or "TV.601" for example... Shouldn't be PC? Just asking... Now all on "Auto" it just says "None".
cyberbeing
12th August 2013, 15:35
But my goal is to get 2560x1600 res fonts with Scale X 100 - Scale Y 100 on all videos... No matter the video's resolution... I'd like on all movies the same high-res fonts.
Why do you want this?
So, this ain't possible, right?
Correct, XySubFilter does not allow rendering at an arbitrary resolution. Fonts are always rendered at output resolution, since that yields the highest quality.
Also, if I leave the Matrix to "guess" it usually says "TV.709" or "TV.601" for example... Shouldn't be PC? Just asking... Now all on "Auto" it just says "None".
No, "None" is usually what you want to see there. On ASS subtitles (assuming Auto is set) it means XySubFilter is performing color correction itself instead of madVR. On SRT subtitles it means no color correction is being performed. For the next XySubFilter release, we have already removed matrix information reported to madVR from the filter name to make this less confusing for users.
Raylan Givens
12th August 2013, 15:48
Why do you want this?
Uhm... Because it's too damn perfect? High-res fonts? Check this out and tell me...
http://i3.minus.com/ibzrKGwmBpgA7q.png
In combination with Alpha link channels, it gives very smooth results. Now when I go back even to 1080p res fonts, they seem too fat :P -but anyway.
Thanks for the Matrix-related info.
cyberbeing
12th August 2013, 16:23
http://i3.minus.com/ibzrKGwmBpgA7q.png
In combination with Alpha link channels, it gives very smooth results.
That's because MPC-HC ISR scales subtitles with bilinear, which will give a very blurry/smooth output.
Even if we implemented a function for arbitrary output resolution in XySubFilter, madVR would scale with whatever algorithm you use for downscaling video (usually a algorithm much sharper than bilinear). MPC-HC is working on a Subtitle Consumer for XySubFilter as well, so when they finish it, maybe we'll consider adding such an option if many users prefer the appearance of blurry downscaled output.
Otherwise, we have already been considering adding an option to have XySubFilter blur the subtitles before output, which will likely yield superior results to bilinear downscaling with a lower performance penalty.
Raylan Givens
12th August 2013, 20:42
My point wasn't the blurriness... My point is the 2560x1600 subtitles to be rendered as-is despite video's resolution. What you see on the image is still your Subfilter with billinear. I was just trying to show the perfect resolution on a full screen video ( without being distorted 'cause of the scale ).
In a so high resolution you don't even need anti-aliasing... It's smooth anyway. You know, Potplayer does exactly what I'd prefer by your Subfilter, but unfortunately it doesn't provide higher resolutions. On Potplayer for instance, I can have 16px fonts on all videos, fullscreen or not and certainly unrelated to original video sizes.
Also, for some reason MPC HC ISR does not give me 1600p resolution anymore. I don't know why.
Anyway, thanks for the general info you provided.
P.S. Damn, I am not good at English and apparently I become tedious whilst I could make my point in one phrase or two. I apologise.
cyberbeing
12th August 2013, 21:42
My point wasn't the blurriness... My point is the 2560x1600 subtitles to be rendered as-is despite video's resolution. What you see on the image is still your Subfilter with billinear. I was just trying to show the perfect resolution on a full screen video ( without being distorted 'cause of the scale ).
In a so high resolution you don't even need anti-aliasing... It's smooth anyway. You know, Potplayer does exactly what I'd prefer by your Subfilter, but unfortunately it doesn't provide higher resolutions. On Potplayer for instance, I can have 16px fonts on all videos, fullscreen or not and certainly unrelated to original video sizes.
Okay, so you just want to be able to set a constant (relative) font size under Styles for SRT subtitles, so you do not need to change it on videos of different resolution? Someone requested a function like this for SRT subtitles earlier in the thread, and we are considering it.
madshi
12th August 2013, 21:51
I think what he wants is "oversampling". Rendering to a higher resolution, then filter down. Basically similar to how "Supersampling" works for games. I think that's a valid suggestion. However, I don't like the idea to always render to a specific resolution specified by the user. That would make the options dialog more complicated than necessary. Instead I could imagine an option like "oversample 50%" and "oversample 100%" to render subtitles with 50% higher or double resolution. 50% higher for fullscreen playing with a FullHD display would be 2880x1620.
cyberbeing
12th August 2013, 22:36
I don't think that's the case madshi, as he seemed to make it clear that smoothness was not the primary goal in his request. He seems to just want a constant font size without degrading subtitle quality. Currently whenever the user-defined font style in settings is active, the relative font size will change whenever the original video resolution changes. This is a bit of a problem with SRT subtitles or when forcing a default subtitle style to use with all videos.
Instead I could imagine an option like "oversample 50%" and "oversample 100%" to render subtitles with 50% higher or double resolution.
FWIW, all VSFilter based filters like XySubFilter already oversample font vectors to 800% output resolution. These massive vectors are then passed through a rasterizer which generates anti-aliased subtitle bitmaps at output resolution with 8x8 subpixel positioning. We have no intention of implementing game-like "supersampled" anti-aliasing of oversampled bitmaps internally, as its very expensive to do via CPU.
madshi
13th August 2013, 08:40
You wouldn't have to downsample via CPU. You'd just have to render subtitles to a 50% higher bitmap resolution and feed that to madVR. madVR would then automatically scale that down. At least I think it should. So basically the only added cost would be that instead of rendering to 1920x1080 you would render to 2880x1620. The rest of the work would be done by madVR, and it wouldn't cost much performance, thanks to bilinear filtering hardware in the GPU. That said, I don't know if it would look any better. Maybe it would look even worse, I don't know. It was just a thought...
Raylan Givens
13th August 2013, 12:35
He seems to just want a constant font size without degrading subtitle quality.
Exactly that... As simple as it gets. Just 2560x1600 resolution at default 18px subtitles on all videos. That's it! I'm not talking about anti-aliasing. Just the crisp high-res subs at a standard size despite video's resulution.
Also, I just found that if I set on MadVR Image Upscaling to Billinear destroys the subtitles quality when in full screen... Is it known bug? Check this image:
http://i1.minus.com/ibeZbjR0h4NTvM.png
I tried both subpixel position methods, 8x8 bilinear and 8x8 2.39 with no results. Even worse on "nearest neighbor" http://i4.minus.com/ibmA9L32N8M77X.png -so I'm even not sure whether this is a bug or not... Perhaps it might be expected.
Incidentally, could you please tell me what's the shortcut for subtitles delay +/- ( equilavent of default F1/F2 )? I can't find it...
Soukyuu
13th August 2013, 13:49
From what I understand, the resizing of the subtitles is handled by madvr, so the results are to be expected. Nearest neighbor, as the name implies, picks the nearest value without interpolation, so ugly results are to be expected, especially on edges. Bilinear interpolation, being linear, still has some artifacts, which is why bicubic is the lowest I would use.
cyberbeing
13th August 2013, 14:30
Also, I just found that if I set on MadVR Image Upscaling to Billinear destroys the subtitles quality when in full screen... Is it known bug? Check this image:
http://i1.minus.com/ibeZbjR0h4NTvM.png
I tried both subpixel position methods, 8x8 bilinear and 8x8 2.39 with no results. Even worse on "nearest neighbor" http://i4.minus.com/ibmA9L32N8M77X.png -so I'm even not sure whether this is a bug or not... Perhaps it might be expected.
That's a madVR bug. It would need to be reported on madshi's bug tracker (http://bugs.madshi.net/my_view_page.php) for it to be fixed.
From what I understand, the resizing of the subtitles is handled by madvr, so the results are to be expected. Nearest neighbor, as the name implies, picks the nearest value without interpolation, so ugly results are to be expected, especially on edges. Bilinear interpolation, being linear, still has some artifacts, which is why bicubic is the lowest I would use.
No, XySubFilter usually renders directly to output resolution without any scaling being performed by madVR. The only time madVR scales subtitles itself is when you are using a bitmap format like VOBSUB/DVB/PGS, or you have the "Render to Original Video Size" option enabled for Text subtitles.
Assuming those are text-based subtitles, appearance of those screenshots makes it look like madVR is not handling the subtitle bitmaps correctly when those "texture-based" default GPU resize algorithms are used, compared to the custom madVR "shader-based" resize algorithms. madVR is probably missing a shader pass somewhere and blending subtitles at the wrong time in the processing chain.
Incidentally, could you please tell me what's the shortcut for subtitles delay +/- ( equilavent of default F1/F2 )? I can't find it...
MPC-BE nightly builds (http://sourceforge.net/projects/mpcbe/files/MPC-BE/Nightly%20Builds%20%28from%20svn%20trunk%29/) from the past couple weeks support using the default F1/F2 hotkeys with XySubFilter.
Otherwise, you'd need to ask your media player of choice to support this via the IDirectVobSub interface.
You wouldn't have to downsample via CPU. You'd just have to render subtitles to a 50% higher bitmap resolution and feed that to madVR. madVR would then automatically scale that down. At least I think it should. So basically the only added cost would be that instead of rendering to 1920x1080 you would render to 2880x1620. The rest of the work would be done by madVR, and it wouldn't cost much performance, thanks to bilinear filtering hardware in the GPU. That said, I don't know if it would look any better. Maybe it would look even worse, I don't know. It was just a thought...
Yeah I know, I was just addressing why we do not perform supersampling like that within xy-VSFilter/XySubFilter. You would really need to supersample by 2x2, 4x4, or 8x8 output resolution for it to have any positive effect on quality. Even then the benefit is rather questionable considering you are increasing computation cost by an order of magnitude. In the future, there is still potential to increase the output quality of the rasterizer without resorting to this.
Soukyuu
13th August 2013, 15:12
No, XySubFilter usually renders directly to output resolution without any scaling being performed by madVR. The only time madVR scales subtitles itself is when you are using a bitmap format like VOBSUB/DVB/PGS, or you have the "Render to Original Video Size" option enabled for Text subtitles.So I at least partially got it right for the two latter cases :P
I don't see how that's a madvr bug though, the results are to be expected unless Raylan Givens renders the subs to output resolution, not video resolution.
cyberbeing
13th August 2013, 15:57
So I at least partially got it right for the two latter cases :P
I don't see how that's a madvr bug though, the results are to be expected unless Raylan Givens renders the subs to output resolution, not video resolution.
The issue occurs when XySubFilter is passing madVR subtitle bitmaps at output resolution. madVR should not be scaling anything, so it's a bug. It's actually something I reproduced before we released XySubFilter Beta, but I forgot to mention it to madshi. So you could say it's a known issue with madVR currently.
TheShadowRunner
13th August 2013, 20:50
Okay, so you just want to be able to set a constant (relative) font size under Styles for SRT subtitles, so you do not need to change it on videos of different resolution? Someone requested a function like this for SRT subtitles earlier in the thread, and we are considering it.
It was me, thanks for considering it!
cyberbeing
13th August 2013, 21:10
It would probably help if you added an entry to our issue tracker (http://code.google.com/p/xy-vsfilter/issues/entry) we don't forgot about it. Our developer never checks this Doom9 thread, so any issues or feature requests left here and not on our GoogleCode project page risk being forgotten about or neglected in terms of allocated development time.
Iorek
14th August 2013, 03:56
Hello, I'm getting seemingly random MadVR crashes with PotPlayer + madVR + XySubFilter. The crash report seems to indicate that it's a conflict with XySubFilter.
Crash report #1: http://pastebin.com/Ssy2a04C
Crash report #2: http://pastebin.com/xAwrDnMm
I've setup my player using this guide: http://bit.ly/kGMJTO
I can't replicate any of the crashes... it's 100% random. It's happened on different files at different times and doesn't repeat.
cyberbeing
14th August 2013, 04:43
@Iorek
madVR crash reports aren't very useful without the Debug Symbols present. Download the XySubFilter Debug Symbols (http://xy-vsfilter.googlecode.com/files/XySubFilter_3.1.0.546_Debug_Symbols.7z) and place the PDB in the same directory as XySubFilter.dll . After you do that, please post your next madVR crash report here.
Currently, the only crash with Beta which we are aware of is Issue #153 (http://code.google.com/p/xy-vsfilter/issues/detail?id=153), which only occurred at certain window sizes because of a bug in our combine bitmap function. Were you using windowed playback when these crashes occurred? Otherwise, any details you can provide about settings, subtitle format, fullscreen/windowed, play or pause, if it was soon after opening a new file, embedded or external subs, XySubFilter only installed or xy-VSFilter as well, filters shown under the PotPlayer filters context menu, and so on when crash occurred would be useful.
Iorek
14th August 2013, 12:53
@Iorek
madVR crash reports aren't very useful without the Debug Symbols present. Download the XySubFilter Debug Symbols (http://xy-vsfilter.googlecode.com/files/XySubFilter_3.1.0.546_Debug_Symbols.7z) and place the PDB in the same directory as XySubFilter.dll . After you do that, please post your next madVR crash report here.
Currently, the only crash with Beta which we are aware of is Issue #153 (http://code.google.com/p/xy-vsfilter/issues/detail?id=153), which only occurred at certain window sizes because of a bug in our combine bitmap function. Were you using windowed playback when these crashes occurred? Otherwise, any details you can provide about settings, subtitle format, fullscreen/windowed, play or pause, if it was soon after opening a new file, embedded or external subs, XySubFilter only installed or xy-VSFilter as well, filters shown under the PotPlayer filters context menu, and so on when crash occurred would be useful.
Thanks for the info. No, PotPlayer was fullscreen @ 1080p when the crashes occur. I've placed the .pdb file and will provide as much info as possible along with the crash report the next time it happens. Thanks!
sk4zzy
14th August 2013, 13:37
Hello guys, I have been using the xysub for over a week now, and the first thing I miss from the old sub renderer is the subtitle sync with the hotkeys during playback (F1,F2) and last, and most importantly for my usage scenario, a little setting that made all the difference - Default Style subtitle placement below the video frame (in the black bar).
That was possible with VobSub and the internal MPC-HC font default styles, but with the current state of XySub that option (http://i6.minus.com/ifj5s27xIBRZe.jpg) was left out.
Does anyone know an alternative to solving this problem?
cyberbeing
14th August 2013, 14:36
subtitle sync with the hotkeys during playback (F1,F2) and last
See my post from the other day.
MPC-BE nightly builds (http://sourceforge.net/projects/mpcbe/files/MPC-BE/Nightly%20Builds%20%28from%20svn%20trunk%29/) from the past couple weeks support using the default F1/F2 hotkeys with XySubFilter.
Otherwise, you'd need to ask your media player of choice to support this via the IDirectVobSub interface.
and most importantly for my usage scenario, a little setting that made all the difference - Default Style subtitle placement below the video frame (in the black bar).
That was possible with VobSub and the internal MPC-HC font default styles, but with the current state of XySub that option (http://i6.minus.com/ifj5s27xIBRZe.jpg) was left out.
Does anyone know an alternative to solving this problem?
This is not a XySubFilter (Subtitle Provider) limitation, but rather a madVR (Subtitle Consumer) limitation. madVR (Subtitle Consumer) does not yet support black bar rendering below the video frame when using the new subtitle interface. Last time I asked madshi, it sounded like it would require a quite a bit of work because of technical issues specific to madVR rendering, so I'm unsure when he'll get around to it. I suspect that once MPC-HC finishes their Subtitle Consumer for XySubFilter it will support this. All we can do is wait.
sk4zzy
14th August 2013, 14:56
Thanks a lot for your answers cyberbeing.
mandarinka
15th August 2013, 23:26
BTW, do you intend to implement black bars rendering even for ASS subs?
(Those usually have given positioning, but perhaps it could be done for dialogue subtitles that only use implicit placement (\an2) and as such it can probably be assumed that they can be moved to the black area. Subtitles with explicit alignment would need to stay matched with the actual image area though...)
cyberbeing
16th August 2013, 00:45
BTW, do you intend to implement black bars rendering even for ASS subs?
Yes, we already implemented black bar rendering support for ASS subtitles a few weeks ago. Basic details of this initial implementation are below, but no way to test it without a Subtitle Consumer which supports black bar rendering:
Finished initial implementation of ASS black bar support, but no way to test it yet. The moving would be operated every subtitle line. I've defined a "hard positioning level" range of 0 to 2 for each ASS tag. Subtitle lines would not be moved if it contains a ASS tag which has a "hard positioning level" higher than certain threshold. That threshold would default to 0. It can be -1 which means move if only there's no ASS commands.
This is the ASS tag hard positioning level table:
1c NONE;
2c NONE;
3c NONE;
4c NONE;
1a NONE;
2a NONE;
3a NONE;
4a NONE;
alpha NONE;
an NONE;
a NONE;
blur NONE;
bord NONE;
be NONE;
b NONE;
clip HARD;
iclip HARD;
c NONE;
fade NONE;
fad NONE;
fax SOFT;
fay SOFT;
fe NONE;
fn NONE;
frx SOFT;
fry SOFT;
frz SOFT;
fr SOFT;
fscx SOFT;
fscy SOFT;
fsc SOFT;
fsp SOFT;
fs SOFT;
i NONE;
kt SOFT;
kf SOFT;
K SOFT;
ko SOFT;
k SOFT;
move HARD;
org HARD;
pbo HARD;
pos HARD;
p HARD;
q NONE;
r NONE;
shad NONE;
s NONE;
t NONE;
u NONE;
xbord NONE;
xshad NONE;
ybord NONE;
yshad NONE;
mandarinka
17th August 2013, 11:03
Ah. Thanks for the info.
Iorek
18th August 2013, 20:27
Thanks for the info. No, PotPlayer was fullscreen @ 1080p when the crashes occur. I've placed the .pdb file and will provide as much info as possible along with the crash report the next time it happens. Thanks!
I've discovered a repeatable crash. It happens in this file (http://www.nyaa.se/?page=view&tid=407791) at 03:34 when the screen zooms in on the tablet. I'm assuming this is a result of the translated text higher in the picture. Now that I think about it, it's possible that some or all of my crashes occured under similar circumstances.
Anyway here is the crash report: http://pastebin.com/HKUvyLNL
One thing worth noting is that this only happens when the video is fullscreen (Happens both with or without MadVR's exclusive fullscreen option). Filters in use are: LAV Splitter Source, LAV Video Decoder, Madshi Video Renderer, XySubFilter, LAV Audio Decoder, and DirectSound Audio Renderer. Subtitle type is embedded Text/ASS.
The video also crashes in the same spot when using DirectVobSub, but there's no crash report. Does this mean it's a problem elsewhere?
Thanks.
cyberbeing
19th August 2013, 17:45
Since that crash report points to:
malloc.c.malloc (XySubFilter.dll)
And all your logs show:
allocated memory : 1.45 GB
largest free block : 10.76 MB
It seems this is likely an out-of-memory crash from reaching the 32-bit 2GB process limitation in PotPlayer. Unlike MPC-HC & MPC-BE, it doesn't appear that PotPlayer has LargeAddressAware enabled.
MPC-HC:
allocated memory : 1.63 GB
largest free block : 1.64 GB
No crash, but performs poorly.
PotPlayerMini edited to enable LargeAddressAware:
allocated memory : 1.43 GB
largest free block : 1.95 GB
PotPlayer (LAA enabled) + XySubFilter actually seems to perform considerably better than with MPC-HC on this sample.
Until we look into it, it's hard to say if this say if the sudden +1GB RAM usage by XySubFilter @1080p is working-as-intended or not for that typesetting effect. It is a problem if we are running out of memory though.
ryrynz
20th August 2013, 07:24
Just wondering if anyone else has experienced subtitles staying stuck on the screen? I was using xySubfilter with MadVR.
michkrol
20th August 2013, 21:26
Just wondering if anyone else has experienced subtitles staying stuck on the screen? I was using xySubfilter with MadVR.
Not happening here.
A sample file and more info, like your system specs (CPU, GPU), operating system, player, whether you're playing it full-screen or windowed, using software or hardware decoding (DXVA-native/-copyback / CUVID / QuickSync) might be useful for investigating this.
ryrynz
21st August 2013, 00:06
Not happening here.
A sample file and more info, like your system specs (CPU, GPU), operating system, player, whether you're playing it full-screen or windowed, using software or hardware decoding (DXVA-native/-copyback / CUVID / QuickSync) might be useful for investigating this.
I know. I'm not investigating it, too time consuming. I'm just asking the question.
agustin9
22nd August 2013, 03:53
I'm experiencing high dpc latency when madvr is in Fullscreen Exclusive Mode. Anyone else having this problem?
EDIT: Sorry, I'm not sure it's because of this filter
cyberbeing
22nd August 2013, 05:10
AMD/ATI cards in general have been known to have DPC latency issues with madVR depending on settings. If you have an NVIDIA card, no idea. Try setting both the madVR GPU Queue & Fullscreen Exclusive "Present frames in advance" to 6. This isn't an XySubFilter issue though, so if this doesn't resolve your DPC issue, you should move further discussion to the madVR thread (http://forum.doom9.org/showthread.php?t=146228).
agustin9
22nd August 2013, 05:19
No, you're right, this is and amd/ati issue. Higher queues make higher the latency for me. I guess the subtitle queue in madvr using the filter makes the problem worse. Thanks for the quick response.
octal9
20th September 2013, 14:28
thanks for all your great work on xysubfilter! love being able to edit fonts/styles/etc. on the fly to make subs look however i want and the subtitles are beyond flawless image-wise - i have a very old/slow pc and the rendering speed is nearly (if not just as) fast as xy-vs.....i was wondering if it is possible to add additional fonts to the sub filter? would love to see this feature if it is not currently available, and if it is, how would i do it?
michkrol
20th September 2013, 21:28
...i was wondering if it is possible to add additional fonts to the sub filter? would love to see this feature if it is not currently available, and if it is, how would i do it?
You can use all the fonts installed in your system.
In summary: get any TrueType Font (*.ttf), right-click it, select install, you're done. Keep in mind having to many (hundreds?) of fonts installed can and will slow down your system and some programs (word processors, etc).
You can attach fonts to video files in Matroska (*.mkv) format, to use them with given video on other systems without installing additional fonts. To do this use MKVToolnix. You can also extract fonts from such files using MKVExtractGUI-2.
Other apps can do this too, but those two are proven and available for free.
octal9
21st September 2013, 10:08
thanks kindly to michkrol - works like a charm!
BatmanInTheBatCave
1st October 2013, 13:18
Is it possible or planned for XySubFilter to work with the MPC-HC subtitle downloader?
the_weirdo
1st October 2013, 15:34
Is it possible or planned for XySubFilter to work with the MPC-HC subtitle downloader?
Because XySubFilter has already worked fine with MPC-BE subtitle downloader, I think you should ask MPC-HC developers about supporting that feature in their player too.
bugmen0t
1st October 2013, 19:58
how to screenshot with subtitle using XySubFilter?
it's only work on xy-VSfilter
sneaker_ger
1st October 2013, 20:05
Unless you're working with a screen capture program the consumer (e.g. madVR/MPC-HC combo) is responsible for that:
http://forum.doom9.org/showpost.php?p=1638448&postcount=19730
bugmen0t
1st October 2013, 20:38
the 2nd option working here, but i'm little bit anxious with "(note that this is a lower-quality option similar in appearance to VSFilter.dll RGB output)" :rolleyes:
btw, thanks for reply
Tornado15550
11th October 2013, 18:58
The MPC-HC Dev Team has released a test build (https://github.com/mpc-hc/mpc-hc/pull/114) of MPC-HC that adds support for XySubFilter to the VMR-9 and EVR-CP video renderers, so that you can use it without installing MadVR. Feel free to test it out and provide feedback!
LDD9O
15th October 2013, 23:09
Will VS/Sub filter ever support "Subresync" (View > Subresync or Ctrl+6)?
the_weirdo
20th October 2013, 16:04
Can XySubFilter change to automatically deal with ASS subtitles of anamorphic videos? Because as you may aware of, there're subtitles that try to adapt to MPC-HC ISR behaviour while other subtitles are designed based on the way VSFilter rendering subtitles on anamorphic videos. I know I can switch Renderer Layout Options to appropriate method for each kind of subtitles, but it's a litle inconvenient so I hope there's a way to do that automatically.
THX-UltraII
28th October 2013, 12:59
Hi guys,
I m using external .srt subtitles for all my content because I can move external subtitles (embedded subtitles cannot be moved).
However, it the subtitle options in MPC-BE does not have what I am looking for. What I want/need are keyboard shortcuts that takes care of moving subtitles UP and another keyboard shortcut that moves the external subtitles DOWN. Even if this WOULD work in MPC-BE, there still seems to be a bug: when you change the subtitle postion in the menu of MPC-BE you have to refresh the subtitles before it actaully moves UP or DOWN.
In a recent topic I started (http://forum.doom9.org/showthread.php?t=169585) someone told me that PotPlayer has what I am looking for but I m using some exclusive MPC-BE features so would like to keep using that one.
I also got a reply that I could ask here to see of VSFilter can do what I want. Can someone tell me if VSFilter has got what I m looking for? What would be even greater is that I can make 3 or 4 pre-set 'custom subtitle positions'. If I can make shotcuts for these custom predifined positions I could assign these to my Logitech Harmony Remote. But simply moving them up and down keyboard shortcuts would be a good thing to start with.
THX-UltraII
5th November 2013, 08:45
No ideas anyone?
octal9
10th November 2013, 12:15
recently switched over to windows 7 64-bit from windows xp 32-bit - one of the things i like best about xysubfilter is the ability to edit font style, size, etc. on the fly - however, now that i switched os, every time i try to apply font changes, mpc-be or mpc-hc freezes and i have to force quit the program.........any ideas how to solve this?
MistahBonzai
11th November 2013, 05:55
I almost never utilize subtitles however I had a chunk of spare time and decided to set them up. The first issue I encountered was MPC-HC/XySubFilter hang when attempting to select fonts. Only way out was the task manager. Windows 7/64-bit. All MPC-hc components are 32-bit.
Edit: Looks like I resolved the issue by resetting >LAV Spliter >Subtitle Selection Mode>default.
octal9
11th November 2013, 18:35
I almost never utilize subtitles however I had a chunk of spare time and decided to set them up. The first issue I encountered was MPC-HC/XySubFilter hang when attempting to select fonts. Only way out was the task manager. Windows 7/64-bit. All MPC-hc components are 32-bit.
Edit: Looks like I resolved the issue by resetting >LAV Spliter >Subtitle Selection Mode>default.tried this, but lav splitter was already set to default..........anyone else have any ideas? i be at the end of my rope (i'm missin' my pretty subs)! lastly, y'all are geniuses - lovely work!!!
MistahBonzai
11th November 2013, 23:06
tried this, but lav splitter was already set to default..........anyone else have any ideas? i be at the end of my rope (i'm missin' my pretty subs)! lastly, y'all are geniuses - lovely work!!!
Here's how my submenus pertaining to subtitle set-up look (see attached desktop.zip file). I had a momentary hang (see #5) but as soon as I closed out all the screen shots in my graphics editor I was able to close the "style" submenu normally.
Whoops..200kb size limit :mad: Maybe I could mail the zip archive to you (5.67MB - 7 tiff files sized at 1280x720). If not then simply ask how I've set specific subtitle options and I could take screen shot crops (they should be less than 200kb ea.) or try to tell ya:D
Edit: for the sake of completeness ;) Octal9 discovered (and I've verfied) that full screen in MadVR will lock the player session (MPC-HC) when Filters > XySubFilter > Properties > Style > Font is selected. Task Manager > MPC-HC.exe > Stop Process will close the locked session.
vinnytx
14th November 2013, 11:38
Hi, Greetings to al forum members
I have a problem with XySubFilter
When I install XySubFilter PowerDVD 12 doesn't show subtitles anymore
octal9
14th November 2013, 13:03
solved my problem regarding substyle changes causing mpc/potplayer freeze (with a workable work-around) (with thanks due to MistahBonzai) - seems if i pause player, exit fullscreen and then do any sub edits, the player doesn't freeze (again, using windows 7 64-bit, main players being latest beta/nightly of mpc-be or potplayer) - after doing edits, i go back to fullscreen mode and continue watching......would be nice if this bug could be figured out and fixed (although xysubfilter is still miles beyond and above any other sub renderer, even in the current beta state).........
Warlock
29th November 2013, 15:06
Guys, what is the most current version of xysubfilter? I am currently using version 3.1.0.640, have some newer version than this?
the_weirdo
29th November 2013, 15:52
Guys, what is the most current version of xysubfilter? I am currently using version 3.1.0.640, have some newer version than this?
The latest official version of XySubFilter is 3.1.0.546 (beta). You can check here (https://code.google.com/p/xy-vsfilter/wiki/Downloads?tm=2).
There has been a lot changes in the codebase from that version, but XySubFilter developers have not released new build yet. (They have been inactive for a while. Hopefully they'll resume the developement of this great subtitle renderer soon).
ikarad
18th January 2014, 22:27
This project is dead?
cyberbeing
19th January 2014, 08:52
The project is still alive, it's just been stalled the past few months when we failed to find an easy & stable solution for preventing out-of-memory crashes. Our latest XySubFilter GIT build from a few months ago added a mechanism for limiting RAM usage, but while most of the time this functioned as expected, with certain memory intensive scripts the limiting mechanism would cause crashes. There is an inherent problem with memory management in all versions of VSFilter which needs be resolved. Ultimately what needs to be done is figuring out a way to reduce memory usage and improve performance with massive objects similar to Libass (which rarely uses more than 50-100MB RAM on such scripts), rather than just limit it and/or prevent crashes.
With XySubFilter scaling these memory issues are exacerbated compared to VSFilter.dll. We decided to hold off releasing a XySubFilter stable build until we figured out of a proper solution to the issue. We'd like to see scaling of heavy scripts in XySubFilter remain viable up to at least 4K UHD without running into memory and/or performance issues. Since this will likely require a major re-factor or re-write of the VSFilter core, the project got stalled since the developer was too busy for it at that time.
Work on xy-VSFilter project may slowly start back up soon, as the developer mentioned he wouldn't be as busy starting next month.
Soukyuu
19th January 2014, 12:27
Ultimately what needs to be done is figuring out a way to reduce memory usage and improve performance with massive objects similar to Libass (which rarely uses more than 50-100MB RAM on such scripts), rather than just limit it and/or prevent crashes.Might be a silly question, but what stops you from ...copying the way libass does it?
cyberbeing
19th January 2014, 14:51
Things are rarely that simple.
Soukyuu
19th January 2014, 19:23
Well it's true that your algorithm is probably different, but shouldn't the concept at least be partially transferable?
The main reason I was asking though was in case it's a license issue or something along those lines.
cyberbeing
19th January 2014, 20:54
At this point, I'm more curious to see if Libass starts running into the same memory issues once they stop using glyph-by-glyph bitmap rendering along with astiob's 8x8 VSFilter-like supersampling commit added on top. The question is still up in the air as to what exactly causes the occasional large discrepancies between VSFilter and Libass memory consumption.
mandarinka
20th January 2014, 22:03
Could you perhaps make another testing/alpha "release" of XySubFilter (even if just provisional) from current codebase, if it is not too much trouble?
The last available binary (unless I missed something) has that bug with non-functioning reloading of subtitle files that were changed. It can be surprisingly annoying bug when you quality check/edit scripts for fansubs :) Otherwise the Subfilter flavour is pretty nice, it has befriended me quickly.
SecurityBunny
1st February 2014, 01:45
Could you perhaps make another testing/alpha "release" of XySubFilter (even if just provisional) from current codebase, if it is not too much trouble?
I'd also like to see a new test build if time permits to compile one. Been following the github repo diligently. Many of the changes and fixes very much interest me, including the blur_be_fixes branch. I'd very much like to be able to test and use a newer build.
cyberbeing
1st February 2014, 04:36
The developer only became active a couple days ago, and there is a bit of a backlog at the moment. New builds of both xy-VSFilter (VSFilter.dll) and XySubFilter are planned. Code maintenance and some bugfixes will likely come first. Then we need to once and for all finalize the external subtitle autoloading behavior for XySubFilter. xy-VSFilter on the other hand is rather bugged in XySubFilter branches at the moment, so we need to figure out what to do about that.
That blur_be_fixes branch was spurred by recent conversions our dev had with astiob @Libass (https://github.com/libass/libass/issues/9#issuecomment-33290889) about differences between our \blur & \be implementation behaves compared to how the one in VSFilter 2.39 behaved. I wouldn't recommend touching that branch at the moment, since it has at least one confirmed subtitle corruption bug.
JEEB
4th February 2014, 15:31
I hope that after the VSFilter part has become possible to build on the current code base (the XySubFilter-related branch), you will look at some of the changes (https://github.com/cccp/xy-VSFilter/commits/blitzkrieg) that me and Lord have brewed up on the CCCP side, such as the colormatrix reading :) .
SecurityBunny
6th February 2014, 06:13
Thanks for the update, Cyberbeing. I guess I'm just getting ahead of myself, becoming anxious looking at all the newer source commits. I tried to compile the source myself, but ran into issues. So the only way I'll be able to satisfy my craving to be 'up to date' is hoping a newer experimental build will be out sooner than later.
cyberbeing
6th February 2014, 07:23
I tried to compile the source myself, but ran into issues.
What type of issues?
Did you remember to download and place "yasm.exe" in Visual Studio's ..\VC\bin directory?
Did you install GIT and use it to clone our source code?
If so, it should build cleanly with Visual Studio 2010 by just running build_vsfilter.sh in the root directory.
SecurityBunny
6th February 2014, 08:28
What type of issues?
Did you remember to download and place "yasm.exe" in Visual Studio's ..\VC\bin directory?
Did you install GIT and use it to clone our source code?
If so, it should build cleanly with Visual Studio 2010 by just running build_vsfilter.sh in the root directory.
I was using Visual Studio 2013 (2012) on Windows 8.1, downloaded the source manually off the github repository branch, as well as downloaded the windows SDK for 8.1 which includes the DirectX SDK I believe.
There were errors when it tried to convert everything over to the newer visual studio and when building the files. Then again, I may have become a little bit confused reading the 'HowToCompile.txt' from two years ago. I did however see recent commits regarding fixing compilation with Visual Studio 2012, which is why I used the latest IDE release.
https://github.com/Cyberbeing/xy-VSFilter/blob/xy_sub_filter_rc2/docs/HowToCompile.txt
Being unable to build the source myself isn't a big deal. Just means I'll have to wait for a new build to become available for testing. I'm hoping I'll be able to test the latest and greatest changes sooner rather than later considering the last release was back in July, 2013. I have also been using the latest test builds of MadVR, so I am eager to jump right into anything recent.
Perhaps I'll try compiling again later in the week.
cyberbeing
6th February 2014, 11:15
Currently we only officially support building with Visual Studio 2010.
Our Visual Studio 2012 project files were never fully optimized, and still produce bloated DLLs with slightly lower performance than our VS2010 builds the last time I tested it.
When I spoke of a need to do some code maintenance earlier, fixing conflicts and improving support for Visual Studio 2012 & 2013 in our project files was one of the things on our to-do list.
kasper93
6th February 2014, 12:15
Well you could just merge PRs https://github.com/Cyberbeing/xy-VSFilter/pulls this guy cleaned up repo pretty nice and remove a lot of garbage.
cyberbeing
6th February 2014, 13:33
Well you could just merge PRs https://github.com/Cyberbeing/xy-VSFilter/pulls this guy cleaned up repo pretty nice and remove a lot of garbage.
I was hopeful early last month when I tested them, but merging those pulls in their current state is likely not going to happen. They completely broke building with Visual Studio 2010, and didn't fix Visual Studio 2013 support. Unfortunately the submitter only tested his changes against Visual Studio 2012, and that's all they work with. They may still be used for inspiration though.
SecurityBunny
6th February 2014, 22:30
Currently we only officially support building with Visual Studio 2010.
Our Visual Studio 2012 project files were never fully optimized, and still produce bloated DLLs with slightly lower performance than our VS2010 builds the last time I tested it.
When I spoke of a need to do some code maintenance earlier, fixing conflicts and improving support for Visual Studio 2012 & 2013 in our project files was one of the things on our to-do list.
Apologies for going off topic again. I wiped my laptop completely to try and compile again, but still running into issues.
- Installed Visual Studio C++ 2010 Express.
- Installed GIT.
- Downloaded Win32 VS2010 yasm.exe from here (http://yasm.tortall.net/Download.html) and placed 'vsyasm.exe' & a copy renamed as 'yasm.exe' in '/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin'.
Launched Git Bash and ran the following commands.
- mkdir xy_sub_filter_rc2
- cd xy_sub_filter_rc2
- git init
- git remote add -t xy_sub_filter_rc2 -f origin https://github.com/Cyberbeing/xy-VSFilter.git
- git checkout xy_sub_filter_rc2
Navigated to 'C:\Users\Computer\xy_sub_filter_rc2' and ran the 'build_vsfilter.sh' file. The script console window kept closing immediately, so I ran it in command prompt. Here is the output. I assume this is the next issue stopping me from compiling.
Link to console output. (http://i.imgur.com/XZloMDo.png)
Any advice in how to properly compile would be much appreciated. :)
cyberbeing
7th February 2014, 01:23
It would seem Express versions do not contain devenv, but instead have a uniquely name file which serves a similar purpose.
Try changing:
devenv "'$solution'" /'$action' "'$configuration'" /project "'$project'"
to
vcexpress "'$solution'" /'$action' "'$configuration'" /project "'$project'"
near the end of the script and see if it functions.
SecurityBunny
7th February 2014, 02:47
Reverting back to devenv and updated to full Visual Studio 2010, build still seems to be failing.
xy_sub_filter.log (paste.ubuntu.com/6888719)
vsfilter_2010.log (paste.ubuntu.com/6888806)
Any other suggestions to fix compiling?
cyberbeing
7th February 2014, 04:21
That error is probably because you haven't installed VS2010 Service Pack 1 (http://www.microsoft.com/en-us/download/details.aspx?id=23691).
SecurityBunny
7th February 2014, 07:45
Ah! Silly me, that definitely was it. Thanks for all your help, cyberbeing. Finally able to compile the source into a functional build for testing. :)
mark0077
17th February 2014, 20:28
Hi guys, I know xySubFilter is still beta and is a wip but I have one question. I have an issue and I see very similar if not identical issues mentioned in both madVR and in xySubFilter bug reports. Its basically when using xySubFilter, when I reach the first frame that has some subtitles I get a block of frame drops reported in madVR. Rewinding and playing back over that portion shows 0 more drops. cpu usage spikes massively on that initial few frames where the subtitles appear.
Does anyone else have this or is it a known issue? I'm usually running about 60% cpu load with SVP interpolating to 60fps, but when testing with things like "Avatar" / "This Is It" that have subtitles, I get a big bunch of drops and cpu spike to 100% for a second or so at the first occurrence of subtitles. After that it seems fine and I don't get any more drops so looks to be only when the first subtitles appear.
Thanks in advance and I look forward to future versions of xysubfilter.
[ReX]
18th February 2014, 15:53
I was hopeful early last month when I tested them, but merging those pulls in their current state is likely not going to happen. They completely broke building with Visual Studio 2010, and didn't fix Visual Studio 2013 support. Unfortunately the submitter only tested his changes against Visual Studio 2012, and that's all they work with. They may still be used for inspiration though.
Sorry, I didn't know they broke VS2010. :(
I wonder if I can install VS2010 after VS2013, probably not.
I will take a look into the VS2013 errors.
Edit: VS2013 compilation was fixed.
Edit 2: Fixed VS2010 compilation, turns out the problem was an WINVER define from the debug configurations, which I mistakenly assumed was correct and applied to all configurations.
cyberbeing
19th February 2014, 11:05
I have an issue and I see very similar if not identical issues mentioned in both madVR and in xySubFilter bug reports.
Which similar bug reports are you referring to?
Its basically when using xySubFilter, when I reach the first frame that has some subtitles I get a block of frame drops reported in madVR.
Rewinding and playing back over that portion shows 0 more drops. cpu usage spikes massively on that initial few frames where the subtitles appear.
What type of subtitles are we talking about? If you could provide a sample that may be helpful.
Which queue(s) drop first in madVR's CTRL+J stats right before the dropped frames occur?
Have you ensured to disable the MPC-HC ISR (http://forum.doom9.org/showpost.php?p=1637437&postcount=2), so they are not both rendering subtitles at the same time?
Check to make sure you don't have "Flush & Wait (Loop)" enabled under any madVR's Windowed or Exclusive Mode settings.
Does this same issue also occur when using XySubFilter with EVR-CP in recent MPC-HC versions?
Does this same issue also occur when using xy-VSFilter, MPC-HC VSFilter, or the MPC-HC ISR instead?
I'm usually running about 60% cpu load with SVP interpolating to 60fps
Do you also have dropped frames like this when not using SVP?
;1669107']Edit: VS2013 compilation was fixed.
Edit 2: Fixed VS2010 compilation, turns out the problem was an WINVER define from the debug configurations, which I mistakenly assumed was correct and applied to all configurations.
Next thing to look into, would be finding the compiler variable MPC-HC uses to eliminate the MFC bloat with VS2012 & VS2013, and only using the .../thirdparty/mfc/ directory when compiling with VS2010.
Another few comments:
The shell script should not be building xy_sub_filter_consumer.dll & unittest.exe by default, only VSFilter & XySubFilter + dependencies. Only occurs with VS2012 & VS2013.
-action clean causes the project to build when -compiler VS2012 or -compiler VS2013 is specified.
Your lib_update branch still has compile errors, but your other branch seems fine.
You should be using the WinXP compatible toolsets Visual Studio 2012 (v110_xp) & Visual Studio 2013 (v120_xp) and settings in those compilers.
JEEB
19th February 2014, 11:30
Next thing to look into, would be finding the compiler variable MPC-HC uses to eliminate the MFC bloat with VS2012 & VS2013, and only using the .../thirdparty/mfc/ directory when compiling with VS2010.
_AFX_NO_MFC_CONTROLS_IN_DIALOGS ? As noted in acad0a8 (https://github.com/mpc-hc/mpc-hc/commit/acad0a8).
BTW, I also recommend that at some point the project files move to being minimalistic themselves, and using a common properties file to set most of the settings that most probably are common between all of the projects :) . It's a boring thing in a solution that has many projects, but often leads to nice results since you do not have to care as much regarding if all projects do the same thing.
cyberbeing
19th February 2014, 13:09
_AFX_NO_MFC_CONTROLS_IN_DIALOGS ? As noted in acad0a8 (https://github.com/mpc-hc/mpc-hc/commit/acad0a8).
Thanks, that's hopefully the one.
BTW, I also recommend that at some point the project files move to being minimalistic themselves, and using a common properties file to set most of the settings that most probably are common between all of the projects :) . It's a boring thing in a solution that has many projects, but often leads to nice results since you do not have to care as much regarding if all projects do the same thing.
A couple weeks ago, fooled around with seeing if I could adapt MPC-HC's exact diirectory and project/solution structure to xy-VSFilter in order to make updating of dependencies a bit simpler. My first attempt at this didn't go so well though, as I took the brash approach of importing xy-VSFilter files wholesale on top of MPC-HC and then fixing things. Eventually I got stuck, as fixing all the includes, dependency differences, project/solution files was way outside my comfort zone. The more sane approach of adding such common properties files and updating the project/solution files only, I would expect go more smoothly. Maybe that's something else [ReX] would consider looking into.
JEEB, do you have any idea why MPC-HC removed libssf from VSFilter awhile back?
JEEB
19th February 2014, 13:33
JEEB, do you have any idea why MPC-HC removed libssf from VSFilter awhile back?
Given the fact of what SSF was (http://devel.aegisub.org/wiki/SubtitleFormats/SSF) (unfinished child of Gabest's ideas that was generally unused), I would guess its removal was mostly based on the fact that no-one actually used it for anything. And that its code added extra complexity to maintain.
Of course, it is possible that someone actually used that unfinished implementation, but nothing of the sort ever came up on the issue tracker, either.
mark0077
19th February 2014, 20:05
Hi cyberbeing
This is the bug report I'm referring to
https://code.google.com/p/xy-vsfilter/issues/detail?id=159
I have taken a screenshot from Avatar (see below), I'm not an expert on subtitles so am not sure what type of subtitle it is. Its the internal subtitles embedded into the blu-ray.
In madVR, I have set all queues as high as they will go, and the queues to drop at the first instance of the subtitles are backbuffer queue, and then render queue. The others don't seem to move. Because subtitle queue doesn't move does this mean its nothing to do with xysubfilter?
Heres the screenshot where after I seek to a few seconds before the subtitles, the frame drops start occuring as soon as the subtitle appear.
Screenshot (http://i58.tinypic.com/ztf21h.jpg)
mpc-be auto load subtitles is disabled.
"Flush & Wait (Loop)" isn't in any of my windowed or exclusive mode settings, only default flushing settings.
Using EVR-CP no subtitles appear at all with xySubFilter + mpc-be. Is this supposed to work? I was half expecting to see a similar frame drop / blip in EVR-CP's Ctrl-J Stats but not a budge.
With EVR-CP and xyVSFilter, I see no drops or blips in the CTRL-J graph.
With madVR and xyVSFilter, I again see no frame drops, none of the queues drop either. Its perfect.
With madVR and xyVSFilter but without SVP I get no frame drops, the render queue still drops slightly the first time the subtitle appears from 23-24 to 22-24
I assume its the combination of madVR / SVP and xySubFilter, the cpu / gpu usage just spikes so high during that very first subtitle. Why theres no problems the second time around I have no idea but heres my findings.
In terms of gpu usage, with madVR and xySubFilter and without SVP, heres how the gpu stats look according to gpu-z before the first subtitle appears. With SVP they are all that little bit higher.
Memory Used: 420MB
GPU Load: 23%
Memory Controller Load: 8%
Video Engine Load: 0%
The moment the first subtitle appears heres how the stats look.
Memory Used: 476MB
GPU Load: 27%
Memory Controller Load: 12%
Video Engine Load: 0%
For the remainder of the playback, the above stats remaing constant. Even rewinding to before the subtitle, resetting madVR's stats and letting it play back over it again I get 0 drops. Its only on the very very first subtitle, whatever happens at that time is causing the drops.
It doesn't matter how high or low I set my queues, the same pattern emerges. This was with 128 decoder / subtitle queue, with lower queues memory also takes a jump at the initial subtitle and the frame drops occur. Its like whatever is allocating that extra memory is causing the first spike which causes the drops, but after that, the memory already seems to be allocated so I get 0 frame drops until the next time I restart mpc / recreate the graph.
If a sample is needed I can upload one. Any idea what causes this?
Thanks
clsid
19th February 2014, 20:14
;1669107']Edit 2: Fixed VS2010 compilation, turns out the problem was an WINVER define from the debug configurations, which I mistakenly assumed was correct and applied to all configurations.
For XP compatibility you should use in all VS configs:
WINVER=0x501;PSAPI_VERSION=1
[ReX]
19th February 2014, 21:04
Next thing to look into, would be finding the compiler variable MPC-HC uses to eliminate the MFC bloat with VS2012 & VS2013, and only using the .../thirdparty/mfc/ directory when compiling with VS2010. Fixed
Another few comments:
The shell script should not be building xy_sub_filter_consumer.dll & unittest.exe by default, only VSFilter & XySubFilter + dependencies. Only occurs with VS2012 & VS2013. Fixed
-action clean causes the project to build when -compiler VS2012 or -compiler VS2013 is specified. Fixed
Your lib_update branch still has compile errors, but your other branch seems fine. (I force-push this one a lot so I'll have to test again)
You should be using the WinXP compatible toolsets Visual Studio 2012 (v110_xp) & Visual Studio 2013 (v120_xp) and settings in those compilers. Fixed (and also moved PlatformToolset to an external file)
_AFX_NO_MFC_CONTROLS_IN_DIALOGS ? As noted in acad0a8 (https://github.com/mpc-hc/mpc-hc/commit/acad0a8).
BTW, I also recommend that at some point the project files move to being minimalistic themselves, and using a common properties file to set most of the settings that most probably are common between all of the projects :) . It's a boring thing in a solution that has many projects, but often leads to nice results since you do not have to care as much regarding if all projects do the same thing.
Thanks, that's hopefully the one.
[...]
Maybe that's something else [ReX] would consider looking into.
I'll look into it.
For XP compatibility you should use in all VS configs:
WINVER=0x501;PSAPI_VERSION=1
It's not possible to compile the MFC hack with that WINVER define, even with VS2010, any ideas?
Compilation error:
10>..\..\..\thirdparty\mfc\afxglobals.cpp(2599): error C2039: 'ShellCreateItemFromParsingName' : is not a member of 'AFX_GLOBAL_DATA'
10> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\include\afxglobals.h(119) : see declaration of 'AFX_GLOBAL_DATA'
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\include\afxglobals.h:
#if (WINVER >= 0x0600)
[...]
HRESULT ShellCreateItemFromParsingName(PCWSTR pszPath, IBindCtx *pbc, REFIID riid, void **ppv);
#endif
cyberbeing
19th February 2014, 21:13
This is the bug report I'm referring to...
That is something else related to cache bug with text subtitles, which has been resolved in GIT. Your issue sounds like it's with PGS subtitles.
In madVR, I have set all queues as high as they will go, and the queues to drop at the first instance of the subtitles are backbuffer queue, and then render queue. The others don't seem to move. Because subtitle queue doesn't move does this mean its nothing to do with xysubfilter?
Heres the screenshot where after I seek to a few seconds before the subtitles, the frame drops start occuring as soon as the subtitle appear.
Screenshot (http://i58.tinypic.com/ztf21h.jpg)
...
If a sample is needed I can upload one. Any idea what causes this?
Yes, please provide a sample.
If only the render queue drops, this could be another issue with madVR requesting information but XySubFilter blocking the thread until the PGS subtitle finishes rendering. The odd part is you say this only occurs with the first subtitle line though, and not additional lines? In that case, it could just be a madVR performance issue when initializing display of PGS subtitles.
mpc-be auto load subtitles is disabled.
Using EVR-CP no subtitles appear at all with xySubFilter + mpc-be. Is this supposed to work?
Only MPC-HC supports the XySubFilter consumer in EVR-CP, please retest this there. Also re-test madVR in MPC-HC as well to ensure there are no differences.
Lastly check to see if you can reproduce this in madVR 0.86.9 [ madVR0869.zip ] (http://www.videohelp.com/tools/madVR/old-versions#download) to make sure this wasn't a madVR regression.
cyberbeing
19th February 2014, 22:05
;1669356']It's not possible to compile the MFC hack with that WINVER define, even with VS2010, any ideas?
You'll need to wait for clsid to respond on that, since he was the one who originally committed the MFC hack to MPC-HC along with WINVER=0x0601;PSAPI_VERSION=1. Though obviously 0x0601 is Win7, and "ShellCreateItemFromParsingName" in afxglobals.cpp does not exist on WinXP. It certainly hasn't caused any WinXP bug reports, so maybe VSFilter doesn't use that MFC function? If this is an issue, I have no idea how to fix the MFC hack properly.
[ReX]
19th February 2014, 22:46
You'll need to wait for clsid to respond on that, since he was the one who originally committed the MFC hack to MPC-HC along with WINVER=0x0601;PSAPI_VERSION=1. Though obviously 0x0601 is Vista, and "ShellCreateItemFromParsingName" in afxglobals.cpp does not exist on WinXP. It certainly hasn't caused any WinXP bug reports, so maybe VSFilter doesn't use that MFC function? If this is an issue, I have no idea how to fix the MFC hack properly.
Do you guys even support XP currently?
The file common.props already "WINVER=0x0601" in there.
clsid
19th February 2014, 23:00
The important part is PSAPI_VERSION=1, which you should use in all configs. You can use WINVER=0x0600 for the VS2010 config to fix the compilation. Should run fine on XP as long as no Vista+ functions are used. The MFC stuff should only be included in the 2010 solution.
For 2012/2013 you could probably drop the WINVER define. Instead use <PlatformToolset>v110_xp</PlatformToolset> and <PlatformToolset>v120_xp</PlatformToolset>.
mark0077
19th February 2014, 23:15
cyberbeing cheers for the replies.
I installed mpc-hc and disabled autoload subtitles etc, and hooked up to ffdshow raw to get SVP working. Heres my findings.
mpc-hc + madVR = same frame drops the first time the subtitle appears, rewinding and playing back over it theres 0 drops.
mpc-hc + evrcp = Although the dropped count in mpc statistics window doesn't increase, the CTRL-J graph visibly makes a huge jerk, and the image does look to drop some frames, but then both graph and smoothness immediately returns to normal. Rewinding and playing back over the same part shows a very similar jerk in the graph but the dropped count doesn't increase again, its hard to visually tell whether its any better the second time around with evrcp. (Can mpc statistics dropped count be trusted for mpc-hc?)
I have also now just tried reverting to madVR 0.69 and wow, 0 frame drops :O Actually all versions are fine except from 0.87.4 and onwards. 0.87.3 has 0 frame drops. I guess its something that I need to bring to madshi on the madVR thread. In the meantime I'll prepare a sample.
EDIT: Sample uploaded here https://www.mediafire.com/?0x4jr0ho6seup3z and madVR bug created http://bugs.madshi.net/view.php?id=153
cyberbeing
19th February 2014, 23:41
;1669377']Do you guys even support XP currently?
The file common.props already "WINVER=0x0601" in there.
That what I was saying, but xy-VSFilter has always functioned just fine on WinXP. For the longest time, I both built and tested xy-VSFilter on WinXP only.
The important part is PSAPI_VERSION=1, which you should use in all configs. You can use WINVER=0x0600 for the VS2010 config to fix the compilation. Should run fine on XP as long as no Vista+ functions are used. The MFC stuff should only be included in the 2010 solution.
Would the MFC hack still be valid if I just added "#if (WINVER >= 0x0600)" around those "ShellCreateItemFromParsingName" entries in .../mfc/afxglobals.cpp and used "WINVER=0x501;PSAPI_VERSION=1" as you originally stated? It seems to compile fine if I then replace MAXINT32 with INT32_MAX in GFN.cpp.
#if (WINVER >= 0x0600)
HRESULT AFX_GLOBAL_DATA::ShellCreateItemFromParsingName(PCWSTR pszPath, IBindCtx *pbc, REFIID riid, void **ppv)
{
return SHCreateItemFromParsingName(pszPath, pbc, riid, ppv);
}
#endif
#if (WINVER >= 0x0600)
HRESULT AFX_GLOBAL_DATA::ShellCreateItemFromParsingName(PCWSTR pszPath, IBindCtx *pbc, REFIID riid, void **ppv)
{
static HMODULE hShellDll = AfxCtxLoadLibrary(_T("Shell32.dll"));
ENSURE(hShellDll != NULL);
typedef HRESULT (__stdcall *PFNSHCREATEITEMFROMPARSINGNAME)(
PCWSTR,
IBindCtx*,
REFIID,
void**
);
PFNSHCREATEITEMFROMPARSINGNAME pSHCreateItemFromParsingName =
(PFNSHCREATEITEMFROMPARSINGNAME)GetProcAddress(hShellDll, "SHCreateItemFromParsingName");
if (pSHCreateItemFromParsingName == NULL)
{
return E_FAIL;
}
return (*pSHCreateItemFromParsingName)(pszPath, pbc, riid, ppv);
}
#endif
GFN.cpp
while(wtf.ReadString(fn) && fn.Find(_T("://")) >= 0)
{
SubFile f;
f.full_file_name = fn;
f.extra_name = fn.Mid(fn.ReverseFind('/')+1);
f.ext_order = INT32_MAX;
f.path_order = INT32_MAX;
ret.Add(f);
}
common.props
<PreprocessorDefinitions>WINVER=0x0501;PSAPI_VERSION=1;_WINDOWS;WINDOWS;_USE_MATH_DEFINES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
sneaker_ger
20th February 2014, 00:53
In that case, it could just be a madVR performance issue when initializing display of PGS subtitles.
Does madVR even know or care about the subtitle format?
clsid
20th February 2014, 01:04
@cyberbeing
Completely removing the function should be fine since it isn't used anyway. If it compiles and runs then I would say go for it.
cyberbeing
20th February 2014, 01:36
Does madVR even know or care about the subtitle format?
Yes and no. No it doesn't know the subtitle format specifically, but yes it does care and treat such formats differently. Bitmap subtitles formats need to be scaled by madVR from native subtitle resolution to output resolution. Normally with text subtitles, XySubFilter renders directly to output resolution without madVR scaling anything. Though if you enabled "Render to Original Video Size", even text subtitles will be scaled by madVR.
@cyberbeing
Completely removing the function should be fine since it isn't used anyway. If it compiles and runs then I would say go for it.
Okay, thanks.
[ReX]
20th February 2014, 03:17
Tested "_AFX_NO_MFC_CONTROLS_IN_DIALOGS" with VS2013:
VSFilter.dll:
Before 2.96MB
After: 1.55MB
VS2010+MFC bloat fix: 1.54MB
XySubFilter.dll:
Before 2.72MB
After: 1.32MB
VS2010+MFC bloat fix: 1.31MB
Edit: the "lib_update" branch seems to be compiling fine, let me know if there's any problem (weirdly enough, the DLLs are even smaller with the updated libraries).
cyberbeing
20th February 2014, 10:43
;1669429']Tested "_AFX_NO_MFC_CONTROLS_IN_DIALOGS" with VS2013:
VSFilter.dll:
Before 2.96MB
After: 1.55MB
VS2010+MFC bloat fix: 1.54MB
XySubFilter.dll:
Before 2.72MB
After: 1.32MB
VS2010+MFC bloat fix: 1.31MB
Looks good. I wonder why the VS2012 builds come out 0.10MB larger then VS2010 & VS2013. Not worth worrying about though.
;1669429']Edit: the "lib_update" branch seems to be compiling fine, let me know if there's any problem (weirdly enough, the DLLs are even smaller with the updated libraries).
Logging builds (see vsfilter_config.h) are broken in the "lib_update" branch by the new log4cplus version, and even normal builds are throwing out log4cplus warnings during compile. I'd just say revert "Log4cplus library updated from v1.0.4 to v1.1.2", and not worry about it. Our developer will update his custom logging function utilizing newer Log4cplus releases in due time, if he thinks it necessary.
Also it seems you copied over the entire ~91MB Boost library, instead of just the ~12MB of what we needed. Take a look at Update boost to boost 1.55.0 [PART.1] (https://github.com/Cyberbeing/xy-VSFilter/commit/cfa10edbd2b9bd3d2e030ef3b5d8cc1c9f2dc9a9) & Update boost to boost 1.55.0 [PART.2] (https://github.com/Cyberbeing/xy-VSFilter/commit/c6759325bbb39a06ac5a031a393b23353dd69e4c) as a reference for which files can be removed.
If your new VSFilter.sln could be moved to the repository root directory as well, that would make it more convenient. May as well remove those mpc_vs2008 & mpc_vs2005 solution files while your at it.
I see, "warning MSB8030: The linker switch "Minimum Required Version" requires "SubSystem" to be set" when building. Simple fix.
Aegisub has a couple changes which may be worthwhile as well:
Convert MFC-using stuff to Unicode (https://github.com/tgoyne/xy-vsfilter/commit/76ebd510b4385f071d7122d3ff7352d779074b52)
Build with /Gw (https://github.com/tgoyne/xy-vsfilter/commit/9cfda339482ea539304a67846ed42bf3fffa6436) (VS2013 only)
Clean up common.props to remove unused configurations like "Release Filter" and "Release Lite" which only exist in MPC-HC.
-action clean causes the project to build when -compiler VS2012 or -compiler VS2013 is specified.
When you look into resolving this, it would also be worthwhile for VS2010, VS2012, VS2013 to have all their compiled libraries and objects output in separate directories for each project and compiler. Keep each compiler's build outputs and cleaning operations partitioned from each other, so they don't build over or clean a different compiler's outputs.
[ReX]
20th February 2014, 19:29
I didn't see there were new commits to the repo, I'll be easier to sync the branch and cherry-pick the changes on top of it.
If your new VSFilter.sln could be moved to the repository root directory as well, that would make it more convenient. May as well remove those mpc_vs2008 & mpc_vs2005 solution files while your at it.
See: https://github.com/Cyberbeing/xy-VSFilter/pull/4
Or is that not good enough?
Also, I fixed some stuff already, see here (http://forum.doom9.org/showpost.php?p=1669356&postcount=270).
cyberbeing
20th February 2014, 23:24
Ah, I remember seeing that pull but forgot it wasn't already merged in your other branches. Took another look and the removed files seem fine.
Which reminds me, I should probably create a .gitattributes file and normalize newlines. I think there may still be a few files with mixed eol return methods on the repository. Came up with this (https://www.mediafire.com/?cac7tuk14jiy94l) very quickly, but that operation is probably best done last after any pulls are merged.
Thanks for all your work on this [ReX].
[ReX]
20th February 2014, 23:29
I did some pulls to both branches, let me know if we need to change something before you can merge them.
After the merge we can get started on using the common.props file, there are some options (not mutually exclusive):
a) cleanup redundant properties from the project files that use it currently
b) create a *.props file just for the 3 VSFilter projects (maybe just temporarily) since they are pretty much the same project
c) fix common.props to play nice with the VSFilter projects
cyberbeing
21st February 2014, 11:16
Debug builds are failing. It seems there are a few more lines beyond Aegisub's commit which need to be changed in VirtualDub's debug.cpp to be compatible with the MFC change.
MessageBox -> MessageBoxA
wsprintf -> wsprintfA
64bit builds are also failing, but that seems to be our fault. A previous manual merge from MPC-HC missed a line in plugins.cpp. May as well go ahead and fix that on your branch [ReX].
Change plugins.cpp (line 668) from:
dst.bits = (LPVOID)fa->src.data;
to
dst.bits = (BYTE*)fa->src.data;
For the shell build script, it should be modified to either accept both "vs2010|vs2012|vs2013" & "VS2010|VS2012|VS2013" or just abort with invalid argument instead of allowing the following to occur:
-action clean causes the project to always clean with VS2013 when -compiler vs2012 or -compiler vs2010 is specified.
-plat x64 -compiler vs2012 & -plat x64 -compiler vs2010 calls %VS120COMNTOOLS% and compiles with VS2013.
Essentially, I think it's a bad idea to fallback to %VS120COMNTOOLS% and succeed, when an invalid argument is passed via -compiler.
[ReX]
21st February 2014, 19:32
Done, the build script will now abort if the compiler flag is not recognized.
Also, any reason the installer script is not included in the repository?
cyberbeing
21st February 2014, 21:58
;1669759']Also, any reason the installer script is not included in the repository?
A combination of forgetfulness, and not thinking it necessary. I probably should though, since it seems shortly after making a release I always accidentally delete it a few weeks later, wiping out all changes, when cleaning up untracked files from the Git repository... I guess you could add a 'distrib' folder to root as a placeholder for an installer script, but at this time I have nothing up to date to place in it. When the time comes for another release, I'll need to re-adapt it from MPC-HC's VSFilter installer script again.
That reminds me of something else which you could help out with. Could you add the static unrar support from MPC-HC to our repository and changes required to XySubFilter & xy-VSFilter? I made an attempt at this at one point, but was having trouble figuring out how to integrate it into the project files and enable it to link properly. The related commits can be found, here (https://github.com/mpc-hc/mpc-hc/commits/master/src/thirdparty/unrar), here (https://github.com/mpc-hc/mpc-hc/commit/cf2e54265644a24c91671331a566b2c6f2651333), here (https://github.com/mpc-hc/mpc-hc/commit/0c9afa6dca90811c8cadb5da517c9abb9457c16b), and here (https://github.com/mpc-hc/mpc-hc/commit/b18faab4208d8368d28c7b51afe5a73bbc90b05e). This would remove the need for a separate unrar.dll to be installed on the system for VOBSUB in rar support.
[ReX]
21st February 2014, 23:19
I'm gonna try to get static UnRAR into lib_update, so if you wanna merge the other branch, you can go ahead.
cyberbeing
22nd February 2014, 00:04
I wasn't really planning on doing any merge until at least Monday away, so you have time. This weekend, I'll likely re-verify everything once again and do some tests to ensure builds from each compiler are functioning as expected. If everything looks good, I'll push it as a new xy_sub_filter_rc3 branch.
Afterwords, if you could create separate pull requests for your changes which are adapted to the vsfilter_rc branch, that would also be useful.
[ReX]
22nd February 2014, 01:30
I pushed static UnRAR to the lib_update branch, seemed like the right place for it.
I will see what can be backported to the vsfilter_rc branch.
cyberbeing
22nd February 2014, 03:11
x64 Debug is failing to build with all compilers:
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(714,5): error MSB3191: Unable to create directory "C:\Users\Alex\Documents\xy_vsfilter\src\thirdparty\log4cplus\msvc\.\C:\Users\Alex\Documents\xy_vsfilter\bin\obj10\Debug_Unicode_x64\log4cplus_static". The given path's format is not supported.
...
LINK : fatal error LNK1104: cannot open file 'log4cplus_staticD.lib'
[ReX]
22nd February 2014, 04:16
That's caused by some properties in the log4cplus.props file, I will do a commit correcting them and actually merging the common properties there.
cyberbeing
22nd February 2014, 06:25
Another few things noticed:
Add '#define USE_UNRAR_STATIC' as a togglable variable somewhere, possibly vsfilter_config.h, instead of always being forced.
Rename 'UNRAR.H' & 'UNRARDLL.TXT' to 'unrar.h' & 'unrardll.txt'
Change 'EnableEnhancedInstructionSet' from 'StreamingSIMDExtensions' to 'NotSet' in common.props. This was a mistake on our part during a previous merge. Ever since we added sse2 runtime detection, minimum requirement was supposed to be MMX.
Enable Whole Program Optimization (LTCG) for all projects
Add "Release Unicode" & "Debug Unicode" as 'Or' conditions to common.props
Set libssf & unrar projects as \Ob1 \Os to cut down on binary size a bit, since these are rarely used and not particularly performance critical.
[ReX]
22nd February 2014, 09:03
Done. That goes to show even projects already using common.props have a lot of redundant properties.
cyberbeing
22nd February 2014, 15:34
For some reason 'Configuration Properties -> General' shows 'No Whole Program Optimization' for all projects, while 'C++ -> Optimization' is set to 'Yes (/GL)' & 'Linker -> Optimization' is set to '(/LTCG)'. As far as I'm aware, 'Whole Program Optimization' under 'Configuration Properties -> General' is the toggle for the default state of both /GL & /LTCG, and if set properly there should be no need for additional overrides. Even though this is cosmetic only, it would be nice to have the 'General' setting show 'Use Link Time Code Generation' to avoid confusion when building from the solution file.
[ReX]
22nd February 2014, 20:08
We need a file like platform.props for that, meaning, it needs to be loaded outside of "PropertySheets".
I think the best way to handle this is to rename platform.props to something like "configuration.props", so it can be also used for other things in the "Configuration" PropertyGroup.
Edit: I should have done that to begin with, it was way easier.
sexus
22nd February 2014, 22:45
got a issue to report guys
xysubfilter and xysubfilter autoloader are currently broken so it would seem, ive used a january build of ranphas lav megamix and ive noticed with ass subs that if i run them in anything but a regular window aka maximized or fullscreen , the screen freezes
after a couple secs while playing , the audio continues thou , so i have to end potplayer over taskmanager , now with the new lav megamix build i dont have the issue no more since theyre currently disabled by ranphas new potplayer config, is xysubfilter currently broken or wtf
heres a link to ranphas lav megamix build page
http://imouto.my/configuring-potplayer-for-gpu-accelerated-video-playback-with-dxva-or-cuda-and-also-high-performance-software-decoding/comment-page-89/#comments
btw ive noticed the issue is still there as soon as you set both filters to prefer again in the latest lav build so its not the builds its xysubfilter , freezes on maximized or fullscreen with ass subs after a few secs, help
cyberbeing
23rd February 2014, 01:38
The GIT builds of XySubFilter do not have any specific freezing issue with Potplayer + LAV Filters + madVR that we are aware of.
That said, we do not offer support of unofficial builds at all. From what I remember, the memory limiter "More -> Cache Size (MB)" was broken in that 3.1.0.640 version they are distributing, and would cause occasional crashes at the default value. You could try setting "Cache Size (MB)" to 2048 and see if the issue goes away, as that's how I personally was working around the issue when development got stalled. A couple bugs related to memory limiter crashes were fixed a few weeks ago, but there are other issues you may run into with the latest GIT. If XySubFilter Beta 3.1.0.546 works for you, I recommend you just use that for now until we make another official release.
Otherwise, if the issue still occurs, you could ask ranphas for a full set of PDB debug symbols for all components and generate a madVR crash report with CTRL+SHIFT+ALT+BREAK the next time the freeze occurs. madVR's freeze/crash logs can be quite useful for pointing out offending code when the necessary PDB debug symbols are present.
cyberbeing
23rd February 2014, 05:17
@[ReX]
unit_test project:
Build dependencies are not set correctly in the solution file.
_WIN32_WINNT not defined
sexus
23rd February 2014, 12:13
The GIT builds of XySubFilter do not have any specific freezing issue with Potplayer + LAV Filters + madVR that we are aware of.
That said, we do not offer support of unofficial builds at all. From what I remember, the memory limiter "More -> Cache Size (MB)" was broken in that 3.1.0.640 version they are distributing, and would cause occasional crashes at the default value. You could try setting "Cache Size (MB)" to 2048 and see if the issue goes away, as that's how I personally was working around the issue when development got stalled. A couple bugs related to memory limiter crashes were fixed a few weeks ago, but there are other issues you may run into with the latest GIT. If XySubFilter Beta 3.1.0.546 works for you, I recommend you just use that for now until we make another official release.
Otherwise, if the issue still occurs, you could ask ranphas for a full set of PDB debug symbols for all components and generate a madVR crash report with CTRL+SHIFT+ALT+BREAK the next time the freeze occurs. madVR's freeze/crash logs can be quite useful for pointing out offending code when the necessary PDB debug symbols are present.
yep settting the cache to 2048 worked half way , meaning it doesnt immediately freeze but a couple seconds more and it still does go into a freeze state but atleast i can exit potplayer normaly now without having to go into taskmanager , so somethings still wrong with xysubfilter, guess im gona have to wait till the next official build gets released since these issues have been fixed apparently, ive tried 3.1.0.546 also , and that ones the same , freezes in fullscreen or maximized with ass subs
cyberbeing
23rd February 2014, 16:40
yep settting the cache to 2048 worked half way , meaning it doesnt immediately freeze but a couple seconds more and it still does go into a freeze state but atleast i can exit potplayer normaly now without having to go into taskmanager , so somethings still wrong with xysubfilter, guess im gona have to wait till the next official build gets released since these issues have been fixed apparently, ive tried 3.1.0.546 also , and that ones the same , freezes in fullscreen or maximized with ass subs
Strange, does this occur with all ASS subtitles or just certain ones? If only certain ones, I'll need a sample. If it occurs with all subtitle samples, it could be a madVR issue. Have you tried lowering madVR's CPU queue setting? This is the only report we've had on such a problem in the 7 months since we released XySubFilter Beta, so it seems likely whatever the issue is, it's not widespread and may be something specific about your setup. What are your system specifications? CPU, RAM, GPU, OS?
Please try to get us a madVR freeze report, since without a way to reproduce this, I have little hope it will just get resolved on its own.
Since it occurs with 3.1.0.546 Beta as well, I'll troubleshoot this with you. Download the PDB symbols from here (http://code.google.com/p/xy-vsfilter/downloads/detail?name=XySubFilter_3.1.0.546_Debug_Symbols.7z), place them in the same directory as XySubFilter.dll 3.1.0.546, and generate a madVR freeze report CTRL+ALT+SHIFT+BREAK when this occurs with PotPlayer.
Also see if you can reproduce it in MPC-HC as well. Download MPC-HC 1.7.3 (http://sourceforge.net/projects/mpc-hc/files/MPC%20HomeCinema%20-%20Win32/MPC-HC_v1.7.3_x86/MPC-HC.1.7.3.x86.7z/download), MPC-HC 1.7.3 PDB symbols (http://sourceforge.net/projects/mpc-hc/files/MPC%20HomeCinema%20-%20Win32/MPC-HC_v1.7.3_x86/MPC-HC.1.7.3.x86.pdb.7z/download), uncheck Playback -> Autoload subtitles, disable all MPC-HC internal filters, copy over the your Lav Filters installed by that megapack with the Official 0.60.1 release (http://files.1f0.de/lavf/LAVFilters-0.60.1.zip) (run install_all.bat) & 0.60.1 PDB debug symbols (http://files.1f0.de/lavf/LAVFilters-0.60.1-symbols.zip). Test both XySubFilter with madVR, as well as EVR-CP. If you have the same freeze in maximized/fullscreen with madVR using MPC-HC, generated another freeze report. If the problem doesn't occur with XySubFilter + EVR-CP, it could be a madVR issue. In which case, activate madVR debug mode, and give madshi a zipped debug log.
cyberbeing
23rd February 2014, 19:37
@[ReX]
I've now pushed a new xy_sub_filter_rc3 (https://github.com/Cyberbeing/xy-VSFilter/tree/xy_sub_filter_rc3) branch to GitHub which includes your pull requests.
Thank you for all your hard work on this much need project cleanup and repository maintenance. And I have to apologize for likely making this back and forth all more time consuming than you most likely originally imagined. Feel free to take a break, but if you have any luck adapting these changes to the vsfilter_rc branch, put up a new pull request on GitHub.
sexus
23rd February 2014, 20:39
Strange, does this occur with all ASS subtitles or just certain ones? If only certain ones, I'll need a sample. If it occurs with all subtitle samples, it could be a madVR issue. Have you tried lowering madVR's CPU queue setting? This is the only report we've had on such a problem in the 7 months since we released XySubFilter Beta, so it seems likely whatever the issue is, it's not widespread and may be something specific about your setup. What are your system specifications? CPU, RAM, GPU, OS?
Please try to get us a madVR freeze report, since without a way to reproduce this, I have little hope it will just get resolved on its own.
Since it occurs with 3.1.0.546 Beta as well, I'll troubleshoot this with you. Download the PDB symbols from here (http://code.google.com/p/xy-vsfilter/downloads/detail?name=XySubFilter_3.1.0.546_Debug_Symbols.7z), place them in the same directory as XySubFilter.dll 3.1.0.546, and generate a madVR freeze report CTRL+ALT+SHIFT+BREAK when this occurs with PotPlayer.
Also see if you can reproduce it in MPC-HC as well. Download MPC-HC 1.7.3 (http://sourceforge.net/projects/mpc-hc/files/MPC%20HomeCinema%20-%20Win32/MPC-HC_v1.7.3_x86/MPC-HC.1.7.3.x86.7z/download), MPC-HC 1.7.3 PDB symbols (http://sourceforge.net/projects/mpc-hc/files/MPC%20HomeCinema%20-%20Win32/MPC-HC_v1.7.3_x86/MPC-HC.1.7.3.x86.pdb.7z/download), uncheck Playback -> Autoload subtitles, disable all MPC-HC internal filters, copy over the your Lav Filters installed by that megapack with the Official 0.60.1 release (http://files.1f0.de/lavf/LAVFilters-0.60.1.zip) (run install_all.bat) & 0.60.1 PDB debug symbols (http://files.1f0.de/lavf/LAVFilters-0.60.1-symbols.zip). Test both XySubFilter with madVR, as well as EVR-CP. If you have the same freeze in maximized/fullscreen with madVR using MPC-HC, generated another freeze report. If the problem doesn't occur with XySubFilter + EVR-CP, it could be a madVR issue. In which case, activate madVR debug mode, and give madshi a zipped debug log.
well actually yes this happens for all animes with ass subs , and no the version does not matter if 3.1.0.546 or 3.1.0.640, happens with both, cpu is a 980x i7 4.13ghz , OS is w7 x64 sp1 with all updates , gpu is titan gtx with vbios mod, ram is 24gb dominators running 1600 at 9x9x9x24 t2
madvrs gpu queue is set to max as well as cpu queue
update> it was the cpu queue had it set too high apparently or have i? , after lowering it retesting no more freeze and when setting it back to max thou the issue is still gone , odd :scared:
cyberbeing
23rd February 2014, 21:11
Using of XySubFilter with madVR adds a Subtitle queue in addition to the CPU queue which caches entire frames. Essentially it doubles madVR RAM usage. From my tests, setting any CPU queue over 64 is extremely dangerous and runs the risk of exceeding the 32bit virtual memory process limit. If your monitor is higher resolution than 2560x1440, you may need to set it even lower. Reducing memory usage in XySubFilter itself is something on our to-do list, but memory allocated by madVR for its subtitle queue is outside our control.
Personally, I see setting madVR's CPU queue to anything over 48 as rather excessive. For normal everyday usage on my i5-3570K @4.4Ghz + GTX 770 2GB, I use CPU queue 24 and GPU queue 16 respectively.
when setting it back to max thou the issue is still gone , odd :scared:
*shrug* maybe madVR had a setting bug caused by recent updates which borked the subtitle queue.
mark0077 a couple pages back also reported a performance regression with 0.87.4, so maybe it's all related.
sexus
23rd February 2014, 21:40
i see so i guess ill keep the cpu queue at 48 then and gpu queue at max aka 24 , makes you wonder for what theres higher than 48 cpu queue available thou hmmm...., just thought the higher the better , my bad i guess
fagoatse
23rd February 2014, 22:07
Is there any reason why xysubfilter isn't provided in 64bit?
cyberbeing
23rd February 2014, 22:10
makes you wonder for what theres higher than 48 cpu queue available thou hmmm...., just thought the higher the better , my bad i guess
Only when not using XySubFilter, is madVR's max CPU queue size of 128 viable. During early development, I actually tried to convince madshi to not make such a large CPU size available in madVR v0.86.2 as it would pose risk out out-of-memory crashes with XySubFilter, but people with old slow CPUs were requesting it just so they could software decode video reliably without subtitles. Before we released XySubFilter Beta, I once again requested that the CPU queue be limited to to 64, create a separate Subtitle queue setting in the madVR gui, or at least warn people about the danger of setting such a high CPU queue size, but he wasn't interested in doing so.
End result is the CPU queue in madVR requires some basic user-responsibility to not set it so high that it causes crashes or other issues. madshi's general mindset on the queues, is to set them as low as you possibly can while still avoiding dropped frames or other performance/reliability issues. Bigger isn't always better. Even with XySubFilter's own LV1/LV2/LV3/LV4 caches, setting them higher than the defaults will often just increase memory usage and hurt overall performance.
Is there any reason why xysubfilter isn't provided in 64bit?
At the time we released XySubFilter 3.1.0.546 Beta, madVR was the only subtitle consumer, and madVR is 32bit only. Since then, MPC-HC has added support for a subtitle consumer in EVR-CP & VMR9 as well, so for our next release we will consider releasing a 64bit version.
[ReX]
23rd February 2014, 22:39
@[ReX]
I've now pushed a new xy_sub_filter_rc3 (https://github.com/Cyberbeing/xy-VSFilter/tree/xy_sub_filter_rc3) branch to GitHub which includes your pull requests.
Thank you for all your hard work on this much need project cleanup and repository maintenance. And I have to apologize for likely making this back and forth all more time consuming than you most likely originally imagined. Feel free to take a break, but if you have any luck adapting these changes to the vsfilter_rc branch, put up a new pull request on GitHub.
No problem, since I can't really contribute code to the project, this is the least I can do. Seems like you missed the last three commits in xy_sub_filter_rc2 when creating the new branch, though.
cyberbeing
23rd February 2014, 22:50
;1670234']Seems like you missed the last three commits in xy_sub_filter_rc2 when creating the new branch, though.
Four actually, and that was on purpose. Those partial rasterize and partial scan-line convert commits had some stability bugs. Our developer has a tendency to rollback and force-push fixes (which hilariously actually broke GitHub's backend updates on our repository for many months awhile back), so I figured I better back out the problem commits now so he'll have an easier time commiting fixed versions. ;)
madshi
23rd February 2014, 23:04
memory allocated by madVR for its subtitle queue is outside our control.
From what I remember right now, I think madVR does not consume any RAM for storing subtitles in the queue at all. The madVR subtitle queue only contains a reference to the ISubRenderFrame object delivered by XySubFilter for every video frame in the queue. So basically the RAM consumption depends on nothing else but how much RAM XySubFilter needs to keep all the queued ISubRenderFrame objects working.
cyberbeing
23rd February 2014, 23:36
Assuming that accurate, it's only a technicality and my point still stands. As long as madVR has ISubRenderFrame objects referenced for the entire Subtitle queue, XySubFilter is not allowed to release the bitmaps, lest they be requested again. In practice, it mimics the RAM usage of madVR's CPU queue in size, and higher when upscaling. madVR could just as easily store bitmaps in the subtitle queue and allow XySubFilter to release the references, with memory usage staying the same either way. That wasn't the point.
What I meant, was that XySubFilter as a subtitle provider honors all requests of subtitle consumers, per requirements of the subtitle interface we specified. Excessive requests for subtitle frames by the subtitle provider, via madVR's user-set subtitle queue setting, are outside our control. That said, madVR requesting more than 64 subtitles frames at any given time is risky @2560x1440, and I've mentioned this to you before by email. Since you didn't want to increase complexity (understandable) by allowing madVR's Subtitle queue to have different limits than the CPU queue, and desired to offer a CPU queue size of 128 to the user who required it (also understandable), it is how it is and requires user restraint and responsibility to not have madVR settings crash their media player when XySubFilter is used.
Soukyuu
23rd February 2014, 23:52
From my tests, setting any CPU queue over 64 is extremely dangerous and runs the risk of exceeding the 32bit virtual memory process limit. If your monitor is higher resolution than 2560x1440, you may need to set it even lower. Reducing memory usage in XySubFilter itself is something on our to-do list, but memory allocated by madVR for its subtitle queue is outside our control.I can't say I had any issues with a queue of 128 so far. Going below that made the playback stutter on some insane typesets, though.
Personally, I see setting madVR's CPU queue to anything over 48 as rather excessive. For normal everyday usage on my i5-3570K @4.4Ghz + GTX 770 2GB, I use CPU queue 24 and GPU queue 16 respectively.Not if you're stuck with and AMD CPU/APU, the single-threaded bottleneck really shows there.
cyberbeing
24th February 2014, 00:03
@Soukyuu
All I can say, is beware of the type of insane subtitle samples which require a lot of memory to render. If you experience a crash, you'll know why.
When I was stuck on an old AMD X2 4800+ system until mid-2012, I still thought that a CPU queue of over 48 was excessive. Not because my old CPU could handle everything, but rather since there are limits to how much madVR's queues can used as a crutch for a slow system. If you cannot handle a script with a CPU queue of 48, either the script itself needs to be toned down, or CPU upgraded. In most such cases, toning down the script (or requesting such) is the correct answer.
We are working on memory usage improvements for the next XySubFilter release, but even then I stand by my statement that setting madVR's CPU queue size over 64 puts you at risk of out-of-memory errors when combined with 2560x1440 monitor. Before we released Beta, I had samples which brought me within 100MB of the 32bit process limit when using a madVR CPU queue of 64 @2560x1440.
madshi
24th February 2014, 00:22
Assuming that accurate, it's only a technicality and my point still stands.
I was just commenting on you saying:
> memory allocated by madVR for its subtitle
> queue is outside our control.
My comment to that was that there is no memory allocated by madVR for its subtitle queue. That's not a technicality, but relevant information.
Of course XySubFilter is forced to spend large amounts of RAM on storage, if madVR keeps a reference to many subtitle frame objects. That is a separate issue/topic and nothing XySubFilter can do anything about.
FWIW, one thing you could optimize is the following: I've noticed that XySubFilter often sends subtitles in the whole size of the video frame instead of sending only bitmaps in the size of the small subtitle line. The latter would cut memory storage costs to a fraction. Not sure if XySubFilter does this for all subtitle formats, though, might be specific to some formats.
cyberbeing
24th February 2014, 00:37
Wasn't there a combine bitmap setting somewhere which the subtitle consumer sets? Aside from that, there is a certain logic to when we send text subtitle lines in larger chunks rather than smaller. Though I don't believe we should ever send entire video frames unless we are talking about PGS? Maybe I'm mistaken. Which subtitle formats were you seeing this behavior with? My memory about this is sketchy, since I thought that either we or you did something before we released Beta to optimize display of PGS subtitle lines?
madshi
24th February 2014, 08:02
Yes, there's a "combineBitmaps" option, which allows the subtitle consumer to ask for a combined bitmap. I'm not setting it, though, and according to the header it should default to "false".
It could very well have been PGS. Is there no position/size information for PGS at all? I guess if all else fails, you could do a very simple PGS pixel search. Should be very fast using SSE2. You could do the pixel search while copying the data to your internal buffers. That's how madVR does its fade detection: when copying the video frames. This nicely hides the cost of the fade detection.
sneaker_ger
24th February 2014, 08:40
Is there no position/size information for PGS at all?
Are you talking about the PGS format itself or the way XySubFilter sends it? The format itself does know smaller images and positioning information and can even split the big picture up into multiple smaller ones IIRC. It can be necessary to help work around the small PGS buffer Blu-Ray allows.
madshi
24th February 2014, 08:52
Are you talking about the PGS format itself or the way XySubFilter sends it? The format itself does know smaller images and positioning information and can even split the big picture up into multiple smaller ones IIRC. It can be necessary to help work around the small PGS buffer Blu-Ray allows.
I meant the PGS format itself. Thanks for the information, didn't know that.
sneaker_ger
24th February 2014, 09:29
Anyways, it does not necessarily mean that the picture actually was cropped by the author so I guess it doesn't make any difference.
kasper93
24th February 2014, 13:47
It could very well have been PGS. Is there no position/size information for PGS at all?
There is, but current pgs/dvb renderer sends always full subtitle frames. At least in mpc-hc but IIRC it is exactly the same code. I want to change this one day. But honestly there are more important bugs in rendering path than this performance issue :)
Tapatalk 4 @ GT-I9300
cyberbeing
24th February 2014, 14:46
I looked back and figured out what I was thinking of:
XySubFilter fixed this for DVB subtitles and only when there was a single line, not PGS/HDMV.
madVR optimized performance for this by "only uploading every bitmap ID once" to the GPU instead of "uploading every subtitle frame".
@madshi for reference, we discussed exactly this problem with PGS by email around 6/24/2013
Reino
25th February 2014, 20:22
I haven't read through this entire thread, but I have used search, which came up with nothing, so excuse me if this has been asked before.Input/Output support for AYUV 4:4:4 YUV formatI've tried to use TextSub("subtitles.ass") on top of a yuv 4:4:4 (yv24) video-stream in Avisynth, but the subtitles don't show up at all. yx-VSFilter doesn't through an error either. When I convert the video-stream to yuv 4:2:0 (yv12), the subtitles do show up? Am I doing something wrong?
cyberbeing
25th February 2014, 20:56
We only support AYUV (packed 4:4:4 YUV) at this time, not YV24 (planar 4:4:4 YUV), and VSFilter in general only supports the Avisynth 2.5 plugin interface, not 2.6.
Supporting DirectShow YV24 input/output is something on our to-do list for a future release, but I don't see there being any Avisynth 2.6 support (which added support for additional color formats like YV24) for TextSub unless MPC-HC/MPC-BE add such support themselves, or someone provides us a patch. Same goes for something like VapourSynth support, patches welcome.
cyberbeing
5th March 2014, 19:49
XySubFilter Beta2 has been released (https://github.com/Cyberbeing/xy-VSFilter/releases/tag/3.1.0.682)
GoogleCode no longer allows adding downloads, so all future releases will be made on GitHub
XySubFilter Beta2 .zip Archive (32-bit) (https://github.com/Cyberbeing/xy-VSFilter/releases/download/3.1.0.682/XySubFilter_3.1.0.682_x86_BETA2.zip) | XySubFilter Beta2 .zip Archive (64-bit) (https://github.com/Cyberbeing/xy-VSFilter/releases/download/3.1.0.682/XySubFilter_3.1.0.682_x64_BETA2.zip)
Debug Symbols for XySubFilter 3.1.0.682 (https://github.com/Cyberbeing/xy-VSFilter/releases/download/3.1.0.682/XySubFilter_3.1.0.682_Debug_Symbols.7z)
Note: XySubFilter requires a compatible subtitle consumer. We recommend madVR 0.87.5+ (http://madshi.net/madVR.zip).
MPC-HC 1.7.2+ 64-bit (EVR-CP) or other 64-bit Subtitle Consumer is required to use the 64-bit build.
Features & Changes
Static Unrar support
Maximum cache size limiter (defaults to 512MB on 32bit, 1/4 Physical RAM on 64bit)
Autoload Helper for external subtitles
Style Editor: Support floating point Border & Shadow values
Initial implementation for rendering subtitles outside the video frame (requires Consumer support)
SourceFilter/Splitter whitelist moved to registry key
Removed legacy PAR compensation function (superseded by 'Use AR Adjusted Video Size')
Removed connected YCbCr Matrix from filter name
Removed legacy function for changing playback speed
Support for building with Visual Studio 2013
Bug Fix
Subpixel gaps visible between the main glyph and the border (certain limitations)
Crash when resizing to certain window sizes
Unexpected slowdown 30 seconds after intense subtitles
Improve handling of empty VobSub frames
Double-clicking the tray icon doesn't open properties page on the same monitor it is called from
Subtitle were rendered at FPS value reported by Consumer, even when incorrect
Corruption with extremely large border sizes
CPU loop after external subtitle modification
Improve style override logic
Allow connection to Consumer even if values provided are invalid
Various stability fixes
Complete Changelog (http://code.google.com/p/xy-vsfilter/wiki/ReleaseNotes?tm=6)
__________
Primarily a bug-fix release, to sync with the bug-fixes and changes made in madVR 0.87.5. Installer will be added at a later date. madVR no longer loads XySubFilter itself.
You must ensure to run the 'Install' bat (not only replace) or else XySubFilter's autoload helper required for entering the DirectShow graph with external subtitles will not be installed.
sneaker_ger
5th March 2014, 19:54
Which git branch was 682 built from? I kinda lost track.
cyberbeing
5th March 2014, 20:01
xy_sub_filter_rc3 branch (https://github.com/Cyberbeing/xy-VSFilter/tree/xy_sub_filter_rc3)
GitHub requires tagging to make releases, so the exact 3.1.0.682 tree can be found here (https://github.com/Cyberbeing/xy-VSFilter/tree/3.1.0.682), or from links on the GitHub release (https://github.com/Cyberbeing/xy-VSFilter/releases/tag/3.1.0.682) page.
Most of the interesting (unstable) stuff we've been working recently has been backed out and delayed till a Beta3 release.
sneaker_ger
5th March 2014, 20:08
Thx...
mandarinka
5th March 2014, 21:18
Ah, great! Thanks for the update & continued work.
dansrfe
5th March 2014, 21:19
The position override isn't working properly in the XYSubFilter beta 2 build for me.
Is there a way to get the subtitles rendered with respect to the window size and its aspect rather than the video's size/aspect? This might also solve the bitmap subtitles from bluray discs from getting truncated when the position is overided beyond the border of the video's resolution.
cyberbeing
5th March 2014, 21:32
The position override isn't working in the XYSubFilter beta 2 build for me.
If you mean "Override Placement", that was changed in XySubFilter Beta1 to only apply to VobSub.
dansrfe
5th March 2014, 21:34
If you mean "Override Placement", that was changed in XySubFilter Beta1 to only apply to VobSub.
Ah, that's why it only works for bitmap subtitles. I set the vertical position to 99 and in a typical video A/R of 2.4 (black borders removed in encode) the subtitles get cut off beyond the video's border. Is it possible to position the bitmap subtitles with respect to the screen in this case?
Also, I'm curious, why was positioning removed for text subtitles?
Also, when I drag another file into MPC-HC (nightly) using madVR (latest), the player crashes. When XYSubFilter is not loaded, the player doesn't crash.
cyberbeing
5th March 2014, 21:45
Is there a way to get the subtitles rendered with respect to the window size and its aspect rather than the video's size/aspect? This might also solve the bitmap subtitles from bluray discs from getting truncated when the position is overided beyond the border of the video's resolution.
Is it possible to position the bitmap subtitles with respect to the screen in this case?
I do not believe any Subtitle Consumer has added support for rendering outside the video frame yet, if that's what you're asking. It should work with XySubFilter Beta2 for text-based subtitles if such support is added though. For bitmap subtitles like Blu-ray PGS, the rasterizer always outputs at frame size (usually 1920x1080) so repositioning may not be as easily possible.
Also, I'm curious, why was positioning removed for text subtitles?
Redundant. Positioning can be performed via the Style Editor.
Also, when I drag another file into MPC-HC (nightly) using madVR (latest), the player crashes. When XYSubFilter is not loaded, the player doesn't crash.
I do not believe MPC-HC has implemented drag-n-drop subtitle support for XySubFilter. If a crash occurs because of that, it's not our bug, or at least shouldn't be. Only MPC-BE has such support.
When you say 'drag another file' did you mean something else?
dansrfe
6th March 2014, 04:48
When I drag and drop another container file (mkv/mp4) then it crashes the player.
cyberbeing
6th March 2014, 05:11
No idea. Can anyone else reproduce this? If you have a crash dump, please upload it somewhere. If madVR is generating crash reports, download the PDB debug symbols for MPC-HC and XySubFilter and upload the next crash report.
Do you have any external subtitles in the directories you drag and drop files from? If so, which formats?
Is there anything special about your playback setup?
Installed Video Decoders & Splitters?
Any post-processing filters or MPC-HC shaders active?
Any subtitle filters other than XySubFilter.dll installed or active? VSFilter.dll? FFDShow? MPC-HC ISR?
Any filters you've added to MPC-HC External Filters?
Does it occur with both madVR and EVR-CP using XySubFilter in MPC-HC?
Does it occur with madVR using XySubFilter in MPC-BE?
Which OS?
Shii
6th March 2014, 11:32
After updating xySubFilter to latest 3.1.0.682 Beta2 and madVR to 0.87.5 subtitles no longer loads in Zoom Player 8.6.1 (Smart Play enabled). MadVR 0.87.4 and 3.1.0.682 works fine. Is any way to force loading subtitle filter without rolling back to 0.87.4?
VSFilter and ffdshow not installed, only registered new XySubFilter.dll. Using latest LavFilters for decoding and splitting.
I think it happens because latest change in madVR: * removed XySubFilter auto-loading functionality, it's now XySubFilter's job
cyberbeing
6th March 2014, 11:54
After updating xySubFilter to latest 3.1.0.682 Beta2 and madVR to 0.87.5 subtitles no longer loads in Zoom Player 8.6.1 (Smart Play enabled). MadVR 0.87.4 and 3.1.0.682 works fine. Is any way to force loading subtitle filter without rolling back to 0.87.4?
You'll need to disable Smart Play.
madshi
6th March 2014, 13:17
@cyber, can you write a small summary of what ZoomPlayer could/should do to support XySubFilter optimally? I'll then send it directly to the ZoomPlayer dev.
cyberbeing
6th March 2014, 13:48
Blight only needs to support XySubFilter with SmartPlay, the way he currently supports xy-VSFilter. They share the same API, so that part should be simple enough. The only time consuming part is likely rewriting the GUI, settings dialog, and subtitle filter loading logic, since XySubFilter could only be used with madVR. ZoomPlayer's SmartPlay is already fully manual graph building which manages detection/loading of external subtitles into xy-VSFilter itself. In that regard, the only other change is XySubFilter supports external Blu-ray PGS files (.sup). He likely just hasn't gotten around to adding XySubFilter SmartPlay support yet, probably since we haven't released a stable version. Not to mention that he usually likes to distribute all filters himself through the ZoomPlayer Download Center.
Kado
6th March 2014, 23:39
@cyberbeing
I'm having some issues with the new build (XySubFilter 3.1.0.682).
Basicaly MPC-HC (v1.7.3) crashes after opening a video using either EVR CP or madvr (v0.87.6). Such issues don't occur with the previous release (XySubFilter v3.1.0.546). Not all videos generate this issue but also happens if reopening some videos during playback.
I've downloaded the pdb files for mpc and xy-subfilter, set them in place and triggered the issue to generate dump files.
Dumps are here (http://www.mediafire.com/download/sq2s296gc8acarg/dump_1st_open.rar) (for both evr cp and madvr)
Video that triggers the crash here (http://www.mediafire.com/download/bxk1vwrs1jb8b84/[Asenshi]_Onee-chan_ga_Kita!_-_09_[B17FE372].mkv).
System specs here (http://firegoon.com/u/tc88wn.png).
If you require additional information or more testing let me know!
Thanks!
Kado
madshi
7th March 2014, 00:32
FWIW, the madVR crash report looks "good" to me. It should be helpful to the XySubFilter developer. Doesn't look like an "out of memory" problem.
cyberbeing
7th March 2014, 00:37
I'm having some issues with the new build (XySubFilter 3.1.0.682).
Cannot seem to reproduce this, so I may need to provide you a few builds with changes rolled back based on your dump & crash report to track down the cause. If luck has it, this will be the same issue dansrfe reported. Before I do that, could you use this logging build (https://www.mediafire.com/?bxixb7x9gbo7v4n) and upload the log it generates up until the crash occurs. The shorter the log the better, so try to delete it between attempts. If you could upload logs for a couple variations of triggering the crash, that could also be useful. You can edit the target in the .properties file, but currently I have it set to write to C:\
Edit: I've sent you a PM with some builds to test. Some of those may actually be less stable, but see if any resolve this particular crash.
EndlessD
7th March 2014, 06:51
The AutoLoader doesn't seem to work for me. The only way to load external subtitles with XySubFilter is to name them exactly the same as the videofile. Subtitles muxed with the video load fine.
I use MPC-HC 1.7.3 + LAV Filters 0.61.0 + madVR 0.87.6 + XySubFilter 3.1.0.682 BETA2.
XySubFilterAutoLoader & XySubFilter are set to Prefer in the External Filters settings (set merit doesn't work either).
Kado
7th March 2014, 09:15
@cyberbeing
Thanks, will do when I get back from work!
Sent from my SGS3 with Temasek 's CM11 & Tapatalk Pro!
cyberbeing
7th March 2014, 19:49
The only way to load external subtitles with XySubFilter is to name them exactly the same as the videofile.
This is expected behavior. Only subtitles found within the search paths, with identical file names will be loaded. Unique identifiers for each subtitle file can be added after the identical segment, following a period, like the following:
VideoTitle.mkv
VideoTitle.en.srt
VideoTitle.jp.srt
VideoTitle.fr.srt
VideoTitle.styled.ass
VideoTitle.bluray.sup
EndlessD
7th March 2014, 20:58
This is expected behavior. Only subtitles found with the search paths, with identical file names will be loaded. Unique identifiers for each subtitle file can be added after the identical segment, following a period, like the following:
VideoTitle.mkv
VideoTitle.en.srt
VideoTitle.jp.srt
VideoTitle.fr.srt
VideoTitle.styled.ass
VideoTitle.bluray.sup
Thanks for the fast answer!
I already thought that it was ment to be like that...
Isn't there a way to work around this? So XySubFilter gets always loaded, like it was before? I would have to rename 200+ files to get all my subtitles working.
Switching back to an older version of madVR fixes this, but I don't want to loose the new features of madVR.
cyberbeing
7th March 2014, 21:07
I'm not sure what you mean exactly, since even if XySubFilter is present in the graph in prior versions of madVR, those external subtitles still wouldn't be auto-loaded? Were you manually opening your subtitle files in prior versions? If you want XySubFilter Beta2 to always be present in the graph even when no subtitles are detected, open the configuration dialog and set 'Main -> Loading' to "Always Load".
Kado
7th March 2014, 21:17
@cyberbeing
After testing with the files you have provided here's the results (file was always registered before testing):
additiondraw = crash
autoload = ok
bugfix = ok
merge = crash
vs2010 = crash
vs2013 = crash
Maybe the autoload code and the bugfixes are "incompatible" (well at least in my system).
Also here's the log (http://www.mediafire.com/view/513kovc01t6v5kw/XySubFilter.log) generated by the logging build you provided.
Hope this helps!
Thanks
Kado
cyberbeing
7th March 2014, 21:30
Thanks. The "bugfix" reverted our bug fixes, but not the auto loader or addition draw. So it would seems one of our bug fixes is causing a new crash on your system.
I'll PM you so more builds in awhile, to see if we can track down the specific commit.
Edit: PM sent
Edit2: I notice from your log you are using "ffdshow Audio Processor". If you uninstall ffdshow, does it resolve your crash with Beta2?
Edit3: You also appear to have set "Cache Size" to a very low 32MB. If you change this back to the default of -1 does it resolve your crash? (And yes, I realize text input for that Cache setting box behaves strangely, if it takes the -1 correctly, it should show "Auto" the next time used)
EndlessD
8th March 2014, 00:48
I'm not sure what you mean exactly, since even if XySubFilter is present in the graph in prior versions of madVR, those external subtitles still wouldn't be auto-loaded? Were you manually opening your subtitle files in prior versions? If you want XySubFilter Beta2 to always be present in the graph even when no subtitles are detected, open the configuration dialog and set 'Main -> Loading' to "Always Load".
Yes I was opening them manually all the time, no autoloading. I thought the AutoLoader was a autoloader for XySubFilter not for subtitles (dumb me).
The "Always Load" works fine! I messed around with settings yesterday and checked that too, but it didn't work maybe something interfered with it.
Thank You for your help!
Stephen R. Savage
8th March 2014, 09:55
Some time ago, I complained about performance problems with xySubFilter in full resolution mode. I'm still seeing occasional heavy frame drops with xySubFilter in the beta 2 release. Looking at the execution of mpc-hc.exe under Process Explorer, I notice the GPU memory usage fluctuating heavily as though a lot of dynamic allocation was being performed. Is this expected?
cyberbeing
8th March 2014, 10:36
Some time ago, I complained about performance problems with xySubFilter in full resolution mode. I'm still seeing occasional heavy frame drops with xySubFilter in the beta 2 release.
Beta 2 doesn't contain any new performance optimizations, so I guess that's to be expected. I looked back in the thread only see a single post from you though, and it was a response to someone else. If you find scripts which are causing performance issues, please upload samples so we know what still needs to be optimized. Increasing madVR's CPU queue can help in that regard to a certain extent, but certain computationally heavy operations will always be slow. For Beta 3, I'm hoping to put more focus on performance improvements.
Looking at the execution of mpc-hc.exe under Process Explorer, I notice the GPU memory usage fluctuating heavily as though a lot of dynamic allocation was being performed. Is this expected?
That's probably a better question for the madVR thread, or MPC-HC thread (if using EVR-CP's consumer). All XySubFilter does is send bitmaps when requested, beyond that GPU memory allocations are in the hands of the subtitle consumer. You could try adding a DWORD value "MAX_BITMAP_COUNT" under HKEY_CURRENT_USER\Software\Gabest\XySubFilter\Performance\ and play with the value to see if it changes this behavior at all. The default value is 8 (decimal), but not a lot of testing has been done to determine if this is the optimal value in terms of CPU & GPU load.
Kado
8th March 2014, 17:01
@cyberbeing
Regarding cache those values were me messing around as they were at auto(511) before, also even without ffdshow it crashes.
Did some tests and the file in folder "[2]/InsaneBorder" does not crash MPC-HC.
Cheers!
Kado
cyberbeing
8th March 2014, 22:14
Thanks, I'll pass it along to our developer. That build reverted the two insane border support commits [1] (https://github.com/Cyberbeing/xy-VSFilter/commit/fc3b925f403f1b8d854a6067d20e4c4ed7c5034e) [2] (https://github.com/Cyberbeing/xy-VSFilter/commit/0d1b62494d61b53869fbc55aa5ee32beee38b60e), which was a separate enhancement from the bugfix for Issue #166 (http://code.google.com/p/xy-vsfilter/issues/detail?id=166) which should still be fixed.
I've created an entry on our bug tracker as Issue #181 (http://code.google.com/p/xy-vsfilter/issues/detail?id=181), and attached the XySubFilter Test Build you've stated resolved your crash.
Kado
8th March 2014, 23:01
Very well. Thanks for your support!
Cheers!
Kado
wOxxOm
9th March 2014, 00:13
This is expected behavior. Only subtitles found within the search paths, with identical file names will be loaded.
How do I make it work with DVD/bluray playback in MPCHC?
cyberbeing
9th March 2014, 00:46
For standard DVD disc playback, I'm unsure it's possible with VSFilter-based filters in general unless you find a splitter which exposes a subtitle pin. DVD disc subtitles are normally rendered by the Video Decoder. The VSFilter VOBSUB format requires ripping subtitles from DVDs, at least as far as I'm aware. DVD playback is not my area of expertise. You may get a better answer in the MPC-HC thread, as the same would apply to their version of VSFilter.dll.
For Blu-ray playback, XySubFilter should be used normally to render the PGS subtitles directly embedded in the TS files on the disc, assuming LAV Splitter is used and no other subtitle renderer is enabled.
wOxxOm
9th March 2014, 00:49
For standard DVD disc playback, I'm unsure it's possible with VSFilter-based filters in general
Well, I meant it was previously possible (with xySubFilter) to just drag'n'drop any srt/ass subtitle in the MPCHC window while watching a DVD. Now it's no longer possible with xySubFilter, I assume?
Also, as of now it's not possible to start watching a video without any subtitles (either internal or external) and later drag'n'drop/load arbitrary subtitles with xySubFilter, right?
cyberbeing
9th March 2014, 00:53
Well, I meant it was previously possible (with xySubFilter) to just drag'n'drop any srt/ass subtitle in the MPCHC window while watching a DVD. Now it's no longer possible, I assume?
Nothing has changed as far as subtitle loading is concerned in BETA2. As far as drag'n'drop support for XySubFilter, this is only functional in MPC-BE I believe. If you drag a subtitle into MPC-HC it enables the ISR on-the-fly and XySubFilter will not be used, even in previous versions.
Also, as of now it's not possible to start watching a video without any subtitles (either internal or external) and later drag'n'drop/load arbitrary subtitles with xySubFilter, right?
Same as above, you need to use MPC-BE. XySubFilter should always be present in the graph, assuming the video has an audio track and subtitles exist. Otherwise, you can set it to "Always Load".
With MPC-HC, you'd actually need to open up XySubFilter settings during playback and use Main -> Open... to select your subtitle.
wOxxOm
9th March 2014, 00:59
I think MPC-BE now behaves the same as MPC-HC and just uses ISR for drag'n'dropped subtitles. It's rather disappointing not having a way to force xySubFilter to load always...
cyberbeing
9th March 2014, 01:03
I think MPC-BE now behaves the same as MPC-HC and just uses ISR for drag'n'dropped subtitles. It's rather disappointing not having a way to force xySubFilter to load always...
No, I'm 100% positive drag'n'drop support is functional with XySubFilter in MPC-BE. He specially designed it to always use VSFilter/xy-VSFilter/XySubFilter if they are active in the graph, instead of the ISR. You can confirm this by opening up VSFilter/xy-VSFilter/XySubFilter settings after dragging a subtitle file into MPC-BE, as it will show the subtitle file you just dragged as being open.
Only MPC-HC loads the ISR on-the-fly and doesn't use XySubFilter with drag'n'drop.
wOxxOm
9th March 2014, 01:07
Huh, just tried MPCBE 4580 on several subtitle-less files, DVD as well, and no, xySubFilter doesn't get loaded in filter graph after drag'n'drop, thus I guess ISR is used.
cyberbeing
9th March 2014, 01:10
Huh, just tried MPCBE 4580 on several subtitle-less files, DVD as well, and no, xySubFilter doesn't get loaded in filter graph after drag'n'drop, thus I guess ISR is used.
XySubFilter needs to already be present in the graph (idle) for that to function. There is no way for it to be added to the graph on-the-fly. You may need to set XySubFilter to "Always Load" in settings to ensure it is present in the graph.
wOxxOm
9th March 2014, 01:15
You may need to set XySubFilter to "Always Load" in settings to ensure it is present in the graph.
Of course it's set to 'always', I'm sorry for not mentioning it right away. And dx merit is 'preferred+2'. And it's not blocked in MPCBE's external filters page.
As far as I know MPCBE guys reused the new MPCHC ISR code (or parts of it) and probably decided to mimick its behaviour regarding autoloading of xySubFilter (or lack thereof) as well.
cyberbeing
9th March 2014, 01:46
Not sure why this isn't working for you. The MPC-BE guys explicitly added support for XySubFilter/xy-VSFilter a long time ago, and change the ISR behavior so it wouldn't conflict. I've tested it in the latest stable releases and nightly of MPC-BE and it continues to function as expected. XySubFilter has never been loaded by the media player. With XySubFilter Beta1, it was loaded by madVR. With XySubFilter Beta2, DirectShow loads XySubFilterAutoLoader which then loads XySubFilter if needed based on settings.
Do you have the ISR disabled in MPC-BE? Auto-load subtitles unchecked? (http://i1.someimage.com/QvsKanJ.png)
XySubFilter set to Always Load (http://i1.someimage.com/1yPcOvW.png)
This shouldn't be needed, but have you tried setting XySubFilterAutoLoader to Prefer in MPC-BE External Filters? (http://i1.someimage.com/NT8MNei.png)
Remember that XySubFilter can only be loaded into the graph when the video is initially opened. If you are saying it's not entering the graph at all, even when doing all of the above, you may need to provide a sample or more details about the directshow filters you have installed. If you download that logging build (https://www.mediafire.com/?bxixb7x9gbo7v4n) I posted eariler and upload a log, it may give a hint of why it's failing to add XySubFilter to the graph.
wOxxOm
9th March 2014, 12:08
cyberbeing, thanks, running install.bat helped, I didn't expect it was needed after updating the dll, so in case I'm not the only dumb one: how about adding a notice in bold red to remind that beta2 *must* be re-registered by running the install bat file?
cyberbeing
9th March 2014, 13:19
I did have a note in my Beta2 release post about it, but I've taken your suggestion and made it bold red (http://forum.doom9.org/showpost.php?p=1672047&postcount=324). I'll also add a notice to the first post of the thread.
Soukyuu
9th March 2014, 22:18
I have sent you a PM cyberbeing, with a sample file that stutters badly when attempting to display the first subtitle line, which only happens with xy-subfilter beta2. I did not test it with beta1, but I did test it with mpv and it doesn't happen there, so it shouldn't be a limitation of my AMD CPU (single-threaded bottleneck).
I re-registered the beta2 dll just to be sure but that didn't change anything.
cyberbeing
10th March 2014, 00:06
Cannot seem to reproduce this. Does it occur with xy-VSFilter 3.0.0.211 or the MPC-HC ISR? Does it occur when using XySubFilter with EVR-CP? What is your CPU usage like on each thread without any subtitle renderer active/installed? If you lower madVR's CPU queue to something like 24, does anything improve? I'll try to debug this with you via PM.
Soukyuu
10th March 2014, 12:13
I think it might be a VRAM issue (the one you warned me about previously), setting queue from 32 down to 24 didn't change anything, but setting it to 14 solves it. I am not sure why it doesn't trigger it with xy-VSFilter or ISR. Basically, a combination of madvr debanding triggering + high queues + xy-subfilter is what kills playback for me on that scene.
cyberbeing
10th March 2014, 12:48
You mentioned via PM, that you thought this issue was being triggered by madVR's debanding fade detection. Does using constant debanding, with fade detection disabled in madVR 'trade quality for performance' settings actually resolve the issue? From what you've stated so far, this doesn't sound like a XySubFilter bug especially if you say you're running out of GPU VRAM? I'll pass on your madVR debug log to madshi and see what he thinks.
Soukyuu
11th March 2014, 01:22
I actually have "do not re-render frames when fadeout detected" enabled, so I guess it's not even the fade detection, but debanding itself.
Disabling it completely solves the issue (as does lowering the GPU queue), it is using the "low" preset otherwise.
What I see on the Ctrl+J OSD is that it freezes completely for a few seconds, then the next moment it updates and I think I see the render queue filling up from 5 to 24, while the backbuffer queue is 0-0/8. I also see that with GPU queue set to 24, the rendering time is twice the time (~40ms) compared to when I lower it to around 10 (~20ms). I am using windowed mode without overlay, but it happens in both the overlay and the fullscreen exclusive mode. The freeze is less severe in exclusive mode, more of a stutter, but is the same in overlay mode.
I do think it's merely a problem of my GPU running out of VRAM, I only have 896MB of it and win8.1 already eats about 150MB of it for it's crippled desktop composition. That would explain why exclusive mode is not as bad, I guess. I don't know why xy-VSFilter doesn't have the problem, maybe because it's not passing the subtitles directly through madVR. Lowering the GPU queue but keeping CPU queue high solves the problem for me, I have both low-ms rendering times and some insurance in case subtitles become heavy enough for my crappy CPU to bottleneck me.
Anyway, here is the log xy-SubFilter created: click (https://dl.dropboxusercontent.com/u/19330332/XySubFilter_knk.log).
Edit: and here (https://dl.dropboxusercontent.com/u/19330332/madVR%20-%20log_knk.7z) are some madVR logs. I tried my best to get as close as possible to the point it happens, but it looks like it only stutters if I jump about 2-3 seconds before the event, otherwise it plays it smoothly. I have made 3 attempts, I guess you could start looking at the small one then work up if you don't see anything.
cyberbeing
11th March 2014, 03:48
With XySubFilter, madVR does need to upload subtitle bitmaps to the GPU VRAM which has an impact on GPU performance. There is also an additional GPU overhead in regards to shader passes required + subtitle alphablending. With xy-VSFilter, there is no additional GPU overhead since subtitles are blended into video frames before being passed to madVR.
There shouldn't be any problem with having a lower GPU queue set in madVR, as long as you aren't overburdening your GPU core. For both XySubFilter & xy-VSFilter, CPU queue is more important.
madshi
11th March 2014, 09:40
Which kind of subtitles are we talking about here? SRT? ASS? PGS? The GPU RAM consumption of SRT subtitles should be extremely small. Animated ASS subtitles require more GPU RAM because the subtitle change all the time. However, XySubFilter is supposed to only send madVR the subtitle rectangles which actually have content in them, which should save a lot of RAM. PGS is weird in that it always sends the full screen size, but it shouldn't change all the time, so PGS probably shouldn't be a RAM size problem, either.
In any case, there's not much I can do about this. GPU RAM consumption is what it is, and I don't think there's anything I can optimize there. If you're running out of GPU RAM, the easiest workaround is to reduce the GPU queue size. Alternatively you could buy a GPU with more RAM. I don't know if XySubFilter can be optimized to send the subtitles bitmaps with less RAM consumption. Maybe it is already as optimized as possible, I don't know...
nevcairiel
11th March 2014, 09:59
PGS is weird in that it always sends the full screen size, but it shouldn't change all the time, so PGS probably shouldn't be a RAM size problem, either.
While some discs do that, not all do, and its not an inherent property of the PGS format (unless its a thing the PGS decoder in xy-vsfilter does?)
madshi
11th March 2014, 10:13
I'm not sure. I just noticed that once, it could have been the disc.
cyberbeing
11th March 2014, 11:55
Which kind of subtitles are we talking about here? SRT? ASS? PGS?
ASS subtitles. Though from his XySubFilter log, they are just simple unanimated dialog lines being displayed at the beginning. Nothing special.
While some discs do that, not all do, and its not an inherent property of the PGS format (unless its a thing the PGS decoder in xy-vsfilter does?)
xy-VSFilter uses the MPC-HC PGS decoder, so the output limitations are the same. At least in my experience, the MPC-HC PGS decoder always outputs 1920x1080 subtitle bitmaps for PGS from Blu-rays.
madshi
11th March 2014, 12:57
ASS subtitles. Though from his XySubFilter log, they are just simple unanimated dialog lines being displayed at the beginning. Nothing special.
But if they're not animated, then even a GPU queue of a hundred frames should just end up uploading 1-3 different bitmaps to the GPU!? How can that cause problems with the GPU RAM? Is it possible that XySubFilter does not reuse the same bitmap ids if the subtitle images don't change? Of course if XySubFilter sends a new image for every video frame, although the subtitles don't change, that would increase GPU RAM consumption quite a lot. Do you have logs from XySubFilter which tell us whether it reuses the bitmaps ids, as long as the subtitles don't change?
Soukyuu
11th March 2014, 21:18
It just seems to be an unlucky coincidence of an older GPU being run with settings that nearly max it out, the debanding triggering using some more ram and subtitles pushing it over the edge of max VRAM usage. At least from my uneducated point of view. It does not happen with such simple subtitles usually. And I'm fine with keeping the GPU queue low, I don't know why I increased it in the first place.
If you need more logs though, I can provide them.
cyberbeing
11th March 2014, 21:32
Do you have logs from XySubFilter which tell us whether it reuses the bitmaps ids, as long as the subtitles don't change?
I'm positive that XySubFilter re-uses Bitmap IDs for identical segments. In the XySubFilter log Soukyuu posted, there is only a single Bitmap ID for each of those lines, and only 2 Bitmap IDs total. I've double checked with my own logs and XySubFilter is definitely behaving as expected. I played back the first 374 unique lines in that script, and XySubFilter generated 374 Bitmap IDs, with each Bitmap ID provided to madVR for multiple frames as needed for display.
XySubRenderFrame::GetBitmap :0 id: 1 dirty_rect: x 322, y 962, w 1276, h 56 pitch:5120 pixels:0DDF36B8
XySubRenderFrame::GetBitmap :0 id: 2 dirty_rect: x 492, y 962, w 936, h 68 pitch:3776 pixels:25A58B50
@Soukyuu
Are you positive you didn't cut off the XySubFilter log before the issue occurred? I do see 364 lines of motion track typesetting, but those would start around 30 seconds after your log ended. Though if your issue occurs before XySubFilter even receives those lines from the splitter, I can't see how they could be to blame.
Soukyuu
11th March 2014, 21:39
I am sure I did not cut the log, the line the issue happens at is the
00:00:00,002 00:00:00,002 There was a time when I bore witness to two worlds.
line (line 1059 in my log). The image gets stuck before the line is displayed, then unstucks before the line disappears from the screen, then the next line (1495) is displayed, and I even waited until the third line was displayed (1815) before cutting it off.
madshi
12th March 2014, 17:48
I'm positive that XySubFilter re-uses Bitmap IDs for identical segments. In the XySubFilter log Soukyuu posted, there is only a single Bitmap ID for each of those lines, and only 2 Bitmap IDs total. I've double checked with my own logs and XySubFilter is definitely behaving as expected. I played back the first 374 unique lines in that script, and XySubFilter generated 374 Bitmap IDs, with each Bitmap ID provided to madVR for multiple frames as needed for display.
That's good to hear, thanks.
cyberbeing
12th March 2014, 20:40
I am sure I did not cut the log, the line the issue happens at is the
00:00:00,002 00:00:00,002 There was a time when I bore witness to two worlds.
line (line 1059 in my log). The image gets stuck before the line is displayed, then unstucks before the line disappears from the screen, then the next line (1495) is displayed, and I even waited until the third line was displayed (1815) before cutting it off.
Ah, so you really were serious when you said it occurred on the very first line of the script. Did you already test the MPC-HC EVR-CP consumer for XySubFilter, to confirm this problem only occurs with madVR? If you monitor with GPU-Z, do you actually see that first subtitle line push you over your GPU VRAM limit with madVR + debanding? How much does VRAM increase on that first line with madVR vs EVR-CP right as your issue occurs? Are there any notable spikes in GPU load or Memory Controller load at the same time?
@madshi
Does some kind of initialization occur when the first subtitle bitmap are sent which has some kind of one-time-only GPU overhead? This sound similar to the issue mark007 experienced on initial load of PGS subtitles (http://bugs.madshi.net/view.php?id=153). Yet this time, we just have simple text dialog lines with tiny bitmaps. Did something regarding subtitle handling change after you added Debanding, DirectCompute dither, or OpenCL NNEDI3? Otherwise, what are your thoughts at this point? Is there anything to suggest XySubFilter specially is at fault for this, or is this just some kind of coincidence that Soukyuu happened to be riding madVR too close to his GPU VRAM limit for awhile now, but somehow only triggered a problem now?
Soukyuu
12th March 2014, 21:57
Yes, I did test it with evr-cp and it doesn't hang there. Looking at the VRAM usage, I get the following:
- idle: 214/896MB used
- mpc-hc w evr-cp: 294/896MB
- mpc-hc w madvr, q10: 714/896MB, with a peak of 761MB
- mpc-hc w madvr, q24: 846/896MB, with a peak of 874MB
- mpc-hc w madvr, q24, no debanding: 873MB peak
- mpc-hc w madvr, q24, no subs: 870MB peak
The interesting thing for me is that madvr's peak VRAM usage is at launch, not at the position where debanding/subtitles kick in, as I'd expect.
Looking at memory controller, there are no spikes, the load is around 14-21%. GPU has a "spike" from 86% to 91%, and memory load seems to drop at that point. Maybe it tries to free some VRAM but doesn't manage to? I don't know if there is "swapping" going on, but judging by the memory controller load, it doesn't seem what slows me down.
Considering that I'm at around 20MB under max memory limit, it could be madVR requests more memory than is free and doesn't get it from the OS, which results in stutter/hang.
Also, I'm pretty much sure it's just a coincidence and not really a bug. I think I remember having stutters on some complex typesets, but that was on 720p content and I attributed those to my AMD cpu limiting me. But seeing it happening with a simple line made me wonder.
madshi
13th March 2014, 00:49
No subtitle related changes related to debanding, DirectCompute or OpenCL. I did do some subtitle bugfixes recently which involved some small changes, but I doubt they would cause such problems. Since the problem goes away for Soukyuu when using a smaller GPU queue, and since he's really near to using all of the GPU RAM, that sounds like a good enough explanation/solution for me.
agustin9
14th March 2014, 05:57
It's possible to put the subtitles outside the video area with madvr yet?
cyberbeing
14th March 2014, 06:41
No, not yet. madshi will need to do a major refactor before madVR will be capable of supporting it. You my have better luck putting in a feature request to MPC-HC, asking them to support it in their EVR-CP consumer. Since MPC-HC already supports this with the ISR, they may be able to add such XySubFilter 'outside the video frame' support more easily in their current framework.
madshi
14th March 2014, 09:14
FWIW, this is very high on my to do list, together with some other related changes/improvements.
agustin9
15th March 2014, 02:08
Great madshi, i will wait for madvr then, thanks
fagoatse
16th March 2014, 08:42
Hey there,
just wanted to report 2 issues:
1) the included batch script fails to register the filter in 64 bit windows 8.1 update 1.
A simple "regsvr32 xysubfilter.dll" in elevated cmd did the trick though.
2) for some reason the color space isn't shown during playback in mpc-hc's filters menu. XySubFilter is present there and connected to evr-cp just fine though.
cyberbeing
16th March 2014, 09:05
1) the included batch script fails to register the filter in 64 bit windows 8.1 update 1.
A simple "regsvr32 xysubfilter.dll" in elevated cmd did the trick though.
No idea, it must be a security measure of some kind. I'll get around to releasing an innosetup installer for Beta2 eventually, which should resolve such issues.
Does the install.bat from LAV Filters zip releases (http://files.1f0.de/lavf/LAVFilters-0.61.1.zip) also fail? We use the same script. If it does fail, bring it up to Nev in his thread (http://forum.doom9.org/showthread.php?t=156191) and see if he has any ideas.
2) for some reason the color space isn't shown during playback in mpc-hc's filters menu. XySubFilter is present there and connected to evr-cp just fine though.
This is something we changed in Beta2:
Removed connected YCbCr Matrix from filter name
michkrol
16th March 2014, 12:11
No idea, it must be a security measure of some kind. I'll get around to releasing an innosetup installer for Beta2 eventually, which should resolve such issues.
The brackets in the filename are the problem. Windows treats them as special characters or something and looks for file named "Install_XySubFilter_", at least for me on Win 8.1 x64. It does work if you either change filename or call the *.bat directly from an elevated command line. Pretty strange, if you ask me, but at least easy to fix ;)
Soukyuu
16th March 2014, 13:29
I'm on 8.1 x64 and it did register the .dll without problems? At least it said "registration succeeded".
cyberbeing
16th March 2014, 13:34
Hmm... I can reproduce this in folders like Desktop, Downloads, Documents, but not in our our standard C:\Program Files (x86)\xy-VSFilter install directory or some other folders I create. This has to be a strange Windows 8.1 bug regarding running bat files elevated, since I've never heard of parentheses being treated as special characters in regards to filenames.
I'll rename the bat files and replace the archives on GitHub shortly.
Edit: Done. I replaced the 7z archives with zip archives containing the renamed bat files. No other changes.
Conquerist
18th March 2014, 21:58
Are there plans for kerning support in xy-vsfilter?
cyberbeing
19th March 2014, 06:04
Which subtitle format in particular did you desire kerning support for? Aside from SSF, none actually specify whether kerning should be used or not at the script level.
Edit: Someone pointed out to me that libass already added a script header for toggling kerning in ASS (https://github.com/libass/libass/commit/0d3ddc12295e38cdcb11c79f8dcb5c8d9f1a8b69) many years ago, so I guess we could look into supporting it in that way.
Conquerist
19th March 2014, 15:55
I had ASS in mind. I was comparing the rendering output of libass in VLC and xy-vsfilter in MPC-HC, and noticed that libass was applying kerning, but xy-vsfilter was not. As you're saying, it doesn't look like "Kerning: yes" is documented in the SSA specs, but IMHO a consistent output of libass and xy-vsfilter is a good idea.
cyberbeing
19th March 2014, 16:34
Libass has kerning disabled by default though, which matches VSFilter. If we decide to add support for kerning for ASS scripts, it would remain disabled by default unless that "Kerning: yes" script header was present.
Conquerist
19th March 2014, 18:58
That sounds good to me.
Maybe you can also add an option to the styles editor to force kerning on or off. I think that would be especially useful in combination with the style override feature that was added in XySubFilter.
kirakami
20th March 2014, 16:41
can i have latest xy-vsfilter.dll?
edit: got it from cccp :)
Plorkyeran
20th March 2014, 20:24
I'd be okay with exposing the Kerning header in Aegisub's UI and eventually enabling it by default in new scripts if xy-VSFilter implements it in a way compatible with libass.
mindbomb
20th March 2014, 21:33
with xy vsfilter and catalyst 14.2, i have green pgs subs with black borders. windows 7 and a radeon 6310.
madshi
20th March 2014, 21:34
With madVR or EVR? Please try both.
mindbomb
20th March 2014, 22:01
with evr, mpc hc's evr cp, and madvr. with dxva copyback and software decoding. xy vsfilter btw, not xy subfilter.
madshi
20th March 2014, 22:34
Ah, xy-vsfilter, not XySubFilter, missed that.
cyberbeing
20th March 2014, 22:47
Please provide a sample mindbomb.
Actually, your issue was probably because this commit (https://github.com/mpc-hc/mpc-hc/commit/2fc627e) from MPC-HC which fixed a bug with PGS palette parsing, was only merged into our codebase in March 2013 while xy-VSFilter 3.0.0.211 was released in November 2012. Releasing a new official xy-VSFilter build is still on our to-do list. The unofficial build of xy-VSFilter included with CCCP codec pack (http://www.cccp-project.net/) already includes this and other fixes backported from our newer branches. Try installing xy-VSFilter from CCCP and see if it resolves your issue.
mindbomb
21st March 2014, 05:45
yea, that fixed it.
sexus
22nd March 2014, 02:43
ok ive got a couple questions , since im kinda mindboggled here , first one whats the difference between xy-vsfilter and xysubfilter arent they the same or what
second one is whats kerning whats its purpose and whats the benefits of including it in xy-vsfilter, will it improve the sub playback quality , speed or what
and a quote from over at xbmc forums xy-vsfilter cannot scale graphic PGS subtitles, unlike DVDplayer and DSplayer internal subtitles renderers, so effectively xy-vsfilter is not a universal solution, and we need something better.
is this true and if can it be fixed, i very much would like to see xy-vsfilter be the nr.1 used sub renderer for its universality, speed and quality or was it xysubfilter ?, lols , perhaps well know once my first question gets cleared up, since its being worked on using it with xbmc dsplayer builds over here http://forum.xbmc.org/showthread.php?tid=154534&pid=1659806#pid1659806
, thanks in advance
kasper93
22nd March 2014, 05:04
xy-vsfilter and other VSFilter like renderers are lost cause. Currently either you should use xysubfilter or internal subtitle renderer of MPC-HC (or BE ;p). About scaling PGS, this is rarely needed in fact more common are SD DVB subtitles in HD video. But anyway xysubfilter can handle all things well.
cyberbeing
22nd March 2014, 05:37
difference between xy-vsfilter and xysubfilter arent they the same or what
xy-VSFilter (VSFilter.dll) requires input from a video decoder, renders subtitles directly on the video at original resolution, then outputs the video frames to the video renderer. The main reason VSFilter exists is to essentially hardsub video in realtime. For playback this isn't optimal for quality (usually 4:2:0 YCbCr), but it has superior compatibility from taking special APIs and separate subtitle bitmaps out of the equation. It also can be used in VirtualDub and Avisynth, it you needed to encode a hardsubbed video from some reason.
XySubFilter (XySubFilter.dll) connects directly to a "Subtitle Consumer" using the SubRenderIntf (http://madshi.net/SubRenderIntf.h) we developed with madshi, and never touches video frames. The subtitles (4:4:4 RGB) are output at the resolution requested by the video renderer as separate bitmaps. This offers the highest quality for playback purposes, but requires explicit support of our subtitle interface. Currently only madVR and MPC-HC (EVR-CP/VMR9) support it. Everywhere else you'd be forced to use some other subtitle filter.
whats kerning whats its purpose and whats the benefits of including it in xy-vsfilter
Kerning is essentially per-Glyph spacing based on surrounding Glyphs. If the font includes good kerning metrics, it should improve readability. If the font include bad kerning metrics (not uncommon), it will hurt quality. Wikipedia: Kerning (http://en.wikipedia.org/wiki/Kerning)
quote from over at xbmc forums (about PGS not being scaled by VSFilter.dll)
A couple days ago MPC-BE added support for PGS/DVB scaling in VSFilter.dll (https://github.com/jeeb/mpc-be/commit/fa118c34a0d3ef5dbdfc81f91f7fd58135f1d407), but I haven't looked into it yet.
Ver Greeneyes
22nd March 2014, 16:26
XySubFilter has completely stopped loading for me in MPC-HC and I can't figure out why. I've tried:
1) running Uninstall_XySubFilter.bat and Install_XySubFilter.bat (with administrative privileges)
2) switching between stable versions of MPC-HC (1.7.2 and 1.7.3) and the latest nightly
3) adding XySubFilter and XySubFilterAutoLoader to the External Filters list and setting them to Prefer (and setting DirectVobSub (auto-loading version) to Block)
4) disabling all the internal filters so external LAV filters are used.
5) toggling the Auto-load subtitles option in MPC-HC's playback settings
None of these cause XySubFilter to be loaded, even though it worked before! I think this started after I first ran Uninstall_XySubFilter.bat and Install_XySubFilter.bat after reading about having to do that here (I updated madVR and XySubFilter at the same time and it seemed to Just Work before), but that might be a total red herring. I watch videos with subtitles maybe twice a week so this may have been broken for a few days before I noticed it.
I'm out of ideas for what to try myself, though I bet it ends up being something simple :\
cyberbeing
22nd March 2014, 16:46
Please upload a log from the logging build (https://www.mediafire.com/?bxixb7x9gbo7v4n).
Ver Greeneyes
22nd March 2014, 17:04
Oh jeez, I'm a moron.. I got the 32-bit and 64-bit versions mixed up in my head :( (I realized after the 32-bit logging build worked normally) No wonder it didn't work.. sorry about the noise!
sexus
22nd March 2014, 19:37
xy-VSFilter (VSFilter.dll) requires input from a video decoder, renders subtitles directly on the video at original resolution, then outputs the video frames to the video renderer. The main reason VSFilter exists is to essentially hardsub video in realtime. For playback this isn't optimal for quality (usually 4:2:0 YCbCr), but it has superior compatibility from taking special APIs and separate subtitle bitmaps out of the equation. It also can be used in VirtualDub and Avisynth, it you needed to encode a hardsubbed video from some reason.
XySubFilter (XySubFilter.dll) connects directly to a "Subtitle Consumer" using the SubRenderIntf (http://madshi.net/SubRenderIntf.h) we developed with madshi, and never touches video frames. The subtitles (4:4:4 RGB) are output at the resolution requested by the video renderer as separate bitmaps. This offers the highest quality for playback purposes, but requires explicit support of our subtitle interface. Currently only madVR and MPC-HC (EVR-CP/VMR9) support it. Everywhere else you'd be forced to use some other subtitle filter.
Kerning is essentially per-Glyph spacing based on surrounding Glyphs. If the font includes good kerning metrics, it should improve readability. If the font include bad kerning metrics (not uncommon), it will hurt quality. Wikipedia: Kerning (http://en.wikipedia.org/wiki/Kerning)
A couple days ago MPC-BE added support for PGS/DVB scaling in VSFilter.dll (https://github.com/jeeb/mpc-be/commit/fa118c34a0d3ef5dbdfc81f91f7fd58135f1d407), but I haven't looked into it yet.
ok that explaines quite a few things , thanks , ok so i suppose xy-vsfilter is out of the equation since XySubFilter is the nr.1 , thanks for that and i hope that that pgs scaling can be added into XySubFilter, thanks again and ill update the guys over at the dsplayer thread about this
cyberbeing
22nd March 2014, 19:53
The lack of PGS/DVB scaling is only a problem when using xy-VSFilter (VSFilter.dll), since it requires the PGS/DVB resolution to match the video resolution.
With XySubFilter this is not a problem, since it never touches video frames. PGS/DVB scaling is instead performed by Subtitle Consumer if needed, which both madVR and MPC-HC (EVR-CP/VMR9) support.
sexus
22nd March 2014, 20:26
oh wow! never knew that so its already there , lols , well one more reason for the guys to make the transition better now than later ill add this immediately , thanks cyber for all the great insightful info ive learned quite abit and keep up the great work on the epic XySubFilter the Nr.1
Plutotype
24th March 2014, 00:18
Hi,
Would it be difficult to add support for rendering multiple subtitle streams? I mean having for example 2 external srt files ( with different language ) positioned nicely up and down?
I think I can do this with using MPC built in subtitle renderer with XySubFilter ( with different srt file ) at once, but just asking... sorry its crazy
Thanks
Sm3n
24th March 2014, 01:22
Hi,
I had the same issues as some of you guys with the latest version of xysubfilter. Now it's fixed by renaming files like it has been said...
But I noticed something, some srt still can't be loaded with some TS file. I don't know why. In the same folder I'm able to load the same subtitle on a mp4 file per example.
The solution? I have to convert the srt file to an ass file, and then the xysubfilter will load correctly the subtitle...
(sorry if I missed something on the issue, I didn't read all the replies.)
Cheerz
cyberbeing
24th March 2014, 11:23
Sm3n, could you provide a sample of the TS + srt subtitle which refuses to load? The format of the video file shouldn't matter when loading external subtitles.
Do you use a different splitter, video decoder, or audio decoder for TS videos than you do for MP4 videos? Also, which media player do you use?
Does XySubFilter get loaded and fail to display the srt file, or does it fail to get loaded at all? If you set "XySubFilter settings -> Main -> Loading -> Always Load", does anything change?
Since you say that converting the srt file to an ass file resolved the issue, if you then convert the resulting ass file back to a srt file can you still reproduce the issue?
Is there anything special about the directory name or file name of the TS video? If you move and rename them to C:\test.ts & C:\test.srt does it resolve the issue?
Please upload a log from the logging build (https://www.mediafire.com/?bxixb7x9gbo7v4n).
Sm3n2
24th March 2014, 16:40
OK, so.
I tried everything you asked to the moment I saw that my subtitle in question, didn't start with positive value:
1
00:00:00,-069 --> 00:00:01,238
My bad, I didn't pay attention when I resynced it... ^^'
So with negative value, xysubfilter doesn't load. My .ass subtitle was loading because of the conversion. My subtitle's converter put the negative value on "-0".
And when I said:
In the same folder I'm able to load the same subtitle on a mp4 file per example.
it was for sure not the same. (was the same but synced differently.)
Issue solved. xD Thx for your help!
And just to answer, I use MPC-HC + MadVR + Lav (splitter & video) + FFDShow (raw video & audio) + AutoFrequency + ReClock.
ps: what difference there is between the version you uploaded on mediafire and the version on code.google?
cyberbeing
24th March 2014, 18:36
my subtitle in question, didn't start with positive value:
1
00:00:00,-069 --> 00:00:01,238
My bad, I didn't pay attention when I resynced it... ^^'
So with negative value, xysubfilter doesn't load. My .ass subtitle was loading because of the conversion. My subtitle's converter put the negative value on "-0".
What application were you using for resyncing and converting your subtitles? Have you considered using Aegisub?
ps: what difference there is between the version you uploaded on mediafire and the version on code.google?
If the mediafire build you are talking about is XySubFilter_3.1.0.682_x86_Logging.7z , the only difference is that it writes a debug log to C:\XySubFilter.log. The logging builds should not be used unless you actually require the debug log, since they can have significantly lower performance.
Sm3n2
24th March 2014, 21:28
If the mediafire build you are talking about is XySubFilter_3.1.0.682_x86_Logging.7z , the only difference is that it writes a debug log to C:\XySubFilter.log. The logging builds should not be used unless you actually require the debug log, since they can have significantly lower performance.
OK. I'll keep using the No_Logging version.
What application were you using for resyncing and converting your subtitles? Have you considered using Aegisub?
Aegisub is good for fansuber of anime. But not enough for my purpose.
I prefer VisualSubSync (also called VSS). It uses its own presets for a pro utilisation of subtitling. I don't know if you know it. The french teams of subtitling (among others) are using this perfect tool. :)
I simply made an small error, but next time I'll be more vigilant. ^^'
n2k3
30th March 2014, 02:57
Thanks for making/continuing this filter! Only thing I need for perfect viewing pleasure is that hopefully madshi will add a way to put the subtitles below the video.
ryrynz
30th March 2014, 03:49
Don't need to hope, he'll save it in a new version soon enough.
andyvt
4th April 2014, 12:24
XySubFilter (XySubFilter.dll) connects directly to a "Subtitle Consumer" using the SubRenderIntf (http://madshi.net/SubRenderIntf.h) we developed with madshi, and never touches video frames. The subtitles (4:4:4 RGB) are output at the resolution requested by the video renderer as separate bitmaps. This offers the highest quality for playback purposes, but requires explicit support of our subtitle interface. Currently only madVR and MPC-HC (EVR-CP/VMR9) support it. Everywhere else you'd be forced to use some other subtitle filter.
Is the latest code for XySubFilter available somewhere? I pulled down the repro (https://github.com/Cyberbeing/xy-VSFilter) and tried searching for "ISubRenderConsumer/ISubRenderProvider" (is that the right interface), but couldn't find it.
The reason I ask is because I've been looking into adding support for the EVR. The first approach (custom EVR presenter implementing ISubRenderConsumer) I tried won't work because [I'm guessing] XySubFilter only QI the filters in the graph and doesn't crawl through the EVR to see if the presenter will respond - which I was planning to change...
That said, I'm not sure it's the most flexible approach after doing some more digging. Have you looked at using the IMFVideoMixerBitmap interface on the EVR Mixer? I did a quick POC and you can overlay arbitrary bitmaps on the surfaces in the mixer. The main benefit is that it would work in any player that uses the EVR. The downside is that the bitmaps aren't timestamped so setting/clearing would have to be done by the filter.
Thanks
sneaker_ger
4th April 2014, 14:14
Is the latest code for XySubFilter available somewhere? I pulled down the repro (https://github.com/Cyberbeing/xy-VSFilter) and tried searching for "ISubRenderConsumer/ISubRenderProvider" (is that the right interface), but couldn't find it.
The current official build is from xy_sub_filter_rc3. (Though there seems to be some work on xy_sub_filter_rc2 as well.)
i.e. git clone -b xy_sub_filter_rc3 https://github.com/Cyberbeing/xy-VSFilter.git
andyvt
4th April 2014, 14:18
The current official build is from xy_sub_filter_rc3. (Though there seems to be some work on xy_sub_filter_rc2 as well.)
i.e. git clone -b xy_sub_filter_rc3 https://github.com/Cyberbeing/xy-VSFilter.git
Thanks!
sneaker_ger
4th April 2014, 15:31
The latest version of SubRenderIntf.h can be found on madshi's (author of madvr) site, btw:
http://madshi.net/SubRenderIntf.h
cyberbeing
4th April 2014, 19:05
The current official build is from xy_sub_filter_rc3. (Though there seems to be some work on xy_sub_filter_rc2 as well.)
Yes, the latest 'stable' code for XySubFilter is in xy_sub_filter_rc3 branch. Any commits you see on the xy_sub_filter_rc2 branch are work towards fixing bugs in features which were backed out prior to creation of the xy_sub_filter_rc3 branch. Once fixed, those features will be merged back into xy_sub_filter_rc3.
The current 'Master' & "vsfilter_rc" branches are xy-VSFilter only, prior to work on XySubFilter.
The reason I ask is because I've been looking into adding support for the EVR. The first approach (custom EVR presenter implementing ISubRenderConsumer) I tried won't work because [I'm guessing] XySubFilter only QI the filters in the graph and doesn't crawl through the EVR to see if the presenter will respond - which I was planning to change...
MPC-HC already supports SubRenderIntf with EVR-CP & VMR9 Renderless. You could look at their code (https://github.com/mpc-hc/mpc-hc/commit/d1d119178cf003289d6fb285e55344893a2e7be2) to get an idea of how they implemented it.
That said, I'm not sure it's the most flexible approach after doing some more digging. Have you looked at using the IMFVideoMixerBitmap interface on the EVR Mixer? I did a quick POC and you can overlay arbitrary bitmaps on the surfaces in the mixer. The main benefit is that it would work in any player that uses the EVR. The downside is that the bitmaps aren't timestamped so setting/clearing would have to be done by the filter.
SubRenderIntf was created by madshi, since he was unsatisfied with the capabilities exposed by existing interfaces like iSubRender & EVR's. Until we release a final build of XySubFilter, I doubt we are going to add built-in support for any additional interfaces unless someone provides a patch. Currently XySubFilter supports SubRenderIntf, while xy-VSFilter|VSFilter supports CSRI, Avisynth, and VirtualDub interfaces.
andyvt
4th April 2014, 21:45
MPC-HC already supports SubRenderIntf with EVR-CP & VMR9 Renderless. You could look at their code (https://github.com/mpc-hc/mpc-hc/commit/d1d119178cf003289d6fb285e55344893a2e7be2) to get an idea of how they implemented it.
I figured out how they did it (wrapping the EVR in a custom class that knows when to delegate ISubRenderConsumer).
That requires more messing than I'd like to do so I made a small modification to xy_sub_filter -> FindAndConnectConsumer.
...
CComQIPtr<ISubRenderConsumer> new_consumer(pBF);
CLSID filterID;
hr = pBF->GetClassID(&filterID);
if(!new_consumer && filterID == CLSID_EnhancedVideoRenderer)
{
//EVR wouldn't implement ISubRenderConsumer itself, but a custom presenter might.
CComQIPtr<IMFGetService> evrservices(pBF);
if(evrservices)
{
ISubRenderConsumer * tmpCI = NULL;
HRESULT hrevr = evrservices->GetService(MR_VIDEO_RENDER_SERVICE, __uuidof(ISubRenderConsumer), (LPVOID*)&tmpCI);
if(tmpCI)
{
CComQIPtr<ISubRenderConsumer> tmpconsumer(tmpCI);
new_consumer = tmpconsumer;
SAFE_RELEASE(tmpCI);
}
}
}
if (new_consumer)
{
...
If that's OK I can put in a pull request.
SubRenderIntf was created by madshi, since he was unsatisfied with the capabilities exposed by existing interfaces like iSubRender & EVR's. Until we release a final build of XySubFilter, I doubt we are going to add built-in support for any additional interfaces unless someone provides a patch. Currently XySubFilter supports SubRenderIntf, while xy-VSFilter|VSFilter supports CSRI, Avisynth, and VirtualDub interfaces.
Just a thought given that it appears that the project is going for broader player support. I'm fine with using SubRenderIntf since it's for a player where I control the code.
madshi
4th April 2014, 22:09
Have you looked at using the IMFVideoMixerBitmap interface on the EVR Mixer? I did a quick POC and you can overlay arbitrary bitmaps on the surfaces in the mixer. The main benefit is that it would work in any player that uses the EVR. The downside is that the bitmaps aren't timestamped so setting/clearing would have to be done by the filter.
How would you know which subtitle to display when? If you have a subtitle animation, the rendering of the subtitles must be perfectly synced to the video frame presentation, otherwise you'll get stuttering subtitle animation. Every new video frame must be matched with exactly one new subtitle frame to achieve smooth video playback + smooth subtitle animations. XySubFilter can't do this synchronization from the outside, because it doesn't know in which moment EVR switches from one video frame to the next.
The basic concept of SubRenderIntf.h is that XySubFilter is relieved of any presentation/synchronization duties. It's now reduced to just be a subtitle bitmap delivery service that is fully controlled by the video renderer. This gives the video renderer all the power and flexibility. Which is ideal for madVR, but it should also work fine for other video renderers. But it does require quite a bit of extra code in the video renderer, because XySubFilter does less work than xy-vsfilter used to do.
andyvt
4th April 2014, 22:48
How would you know which subtitle to display when? If you have a subtitle animation, the rendering of the subtitles must be perfectly synced to the video frame presentation, otherwise you'll get stuttering subtitle animation. Every new video frame must be matched with exactly one new subtitle frame to achieve smooth video playback + smooth subtitle animations. XySubFilter can't do this synchronization from the outside, because it doesn't know in which moment EVR switches from one video frame to the next.
Fancy subtitles that change quickly would be a problematic use case :). TBH, I'm not sure that it would work well enough to be practical. I've never played with a renderer before, as I dig further into getting a custom presenter working I'm beginning to see why this might not be a good approach (probably intended more for watermarking).
The basic concept of SubRenderIntf.h is that XySubFilter is relieved of any presentation/synchronization duties. It's now reduced to just be a subtitle bitmap delivery service that is fully controlled by the video renderer. This gives the video renderer all the power and flexibility. Which is ideal for madVR, but it should also work fine for other video renderers. But it does require quite a bit of extra code in the video renderer, because XySubFilter does less work than xy-vsfilter used to do.
I agree, but it's not an approach that is valid for every player because you don't always have a choice in what video renderer is used.
cyberbeing
5th April 2014, 01:41
If that's OK I can put in a pull request.
If you see such a change as useful for your consumer implementation, feel free to make a pull request and I'll have our dev look it over.
Just a thought given that it appears that the project is going for broader player support.
I hear what you're saying, we just haven't put much thought in XySubFilter supporting anything but SubRenderIntf. There is no particular reason a Subtitle Consumer for XySubFilter needs to be a video renderer. It could be a video decoder, transform filter, or some other Consumer filter which outputs bitmaps from XySubFilter into an entirely different API.
An example of a transform filter based Consumer for SubRenderIntf, exists in our project as xy_sub_filter_consumer. It's currently a very buggy though.
madshi
5th April 2014, 08:37
I agree, but it's not an approach that is valid for every player because you don't always have a choice in what video renderer is used.
If you need something that works for every player without the player even knowing/supporting it, xy-vsfilter is your ticket. It works well enough for that purpose. Of course it has its problems and limitations (e.g. always rendering in the original video resolution, color & chroma format, no DXVA support, rendering is done before deinterlacing, etc...). That's why we're doing XySubFilter now, which gets rid of all the limitations. Basically if I had implemented subtitle rendering in madVR itself, it would not work any better than using the SubRenderIntf.h.
There is no particular reason a Subtitle Consumer for XySubFilter needs to be a video renderer. It could be a video decoder, transform filter, or some other Consumer filter which outputs bitmaps from XySubFilter into an entirely different API.
Yeah, at some point nevcairiel also considered making LAV Video Decoder a SubRenderIntf.h consumer. Not sure if he still considers/plans that.
andyvt
5th April 2014, 09:13
If you need something that works for every player without the player even knowing/supporting it, xy-vsfilter is your ticket. It works well enough for that purpose. Of course it has its problems and limitations (e.g. always rendering in the original video resolution, color & chroma format, no DXVA support, rendering is done before deinterlacing, etc...). That's why we're doing XySubFilter now, which gets rid of all the limitations. Basically if I had implemented subtitle rendering in madVR itself, it would not work any better than using the SubRenderIntf.h.
It's just a different set of unpalatable compromises in its current form. For e.g. there are a whole class of HTPC (anything with an Atom, Zacate or similar) where that approach is worse than poorly timed subtitles. IIRC it also breaks protected playback, so anyone with CableCARD content is out as well.
It's unfortunate that the EVR only allows secondary input pins to be added before it is connected.
TBC, it's not my goal to knock SubRenderIntf. If you have control over the components in the graph it a solid way to get things done. Just trying to think of alternative approaches that don't have the same negative consequences as VSFilter where the components can't be controlled as tightly.
dansrfe
7th April 2014, 17:51
Is it possible to position the subtitles relative to the frame?
e.g. at 99% height the subtitles should show in the black bar region when a 2.4 aspect video is played on a 16/9 display.
real.finder
8th April 2014, 01:55
hi
I have a script get problems in xy-vsfilter, Whether in mpc or aegi
the problems is shades inaccurate and crash
Although this problems does not appear in the last aegisub (3.1.3) with xy-vsfilter in it
sub and font (http://www.mediafire.com/?baxhxtsq57tce0t)
thanks
cyberbeing
8th April 2014, 03:15
the problems is shades inaccurate and crash
The crash occurs because you used a border size of 2000 pixels. xy-VSFilter 3.0.0.211 was unable to render border sizes larger than 150px or so because of a 32-bit Integer overflow (Issue #166 (http://code.google.com/p/xy-vsfilter/issues/detail?id=166)), while support for insane border sizes such as 2000px (from a memory consumption and performance perspective) were not supported until XySubFilter Beta2.
Is it possible to position the subtitles relative to the frame?
e.g. at 99% height the subtitles should show in the black bar region when a 2.4 aspect video is played on a 16/9 display.
Requires support from the Subtitle Consumer.
FWIW, this is very high on my to do list, together with some other related changes/improvements.
real.finder
8th April 2014, 12:21
I think We need a new version with all issues fix https://code.google.com/p/xy-vsfilter/issues/list
Or at least most of them, even if it beta
Because the latest version nearly two years ago, and even there is no a beta version, and I do not use XySubFilter, It does not even work in avisynth
thanks
dansrfe
8th April 2014, 21:31
Requires support from the Subtitle Consumer.
Does madVR support this?
filler56789
8th April 2014, 23:40
I think We need a new version with all issues fix https://code.google.com/p/xy-vsfilter/issues/list
Or at least most of them, even if it beta
Because the latest version nearly two years ago, and even there is no a beta version, and I do not use XySubFilter, It does not even work in avisynth
FWIW, you can extract xy-VSFilter 3.0.0.284 from the latest CCCP's installer,
http://www.cccp-project.net/beta/Combined-Community-Codec-Pack-2014-03-31-BETA.exe
real.finder
8th April 2014, 23:53
FWIW, you can extract xy-VSFilter 3.0.0.284 from the latest CCCP's installer,
http://www.cccp-project.net/beta/Combined-Community-Codec-Pack-2014-03-31-BETA.exe
I use cccp already, and these problems still exist
even in this https://github.com/jeeb/xy-vsfilter/releases
cyberbeing
8th April 2014, 23:54
The CCCP version is a separate branch. I don't think they've merged in the large border fixes yet.
JEEB could easily merge in the fix for the 32-bit integer overflow (https://github.com/Cyberbeing/xy-VSFilter/commit/901436c97d98d3f4f817132193e75a279f2ea4b0) which would allow border sizes up to ~1000px before crashing (out-of-memory), but there is currently a bug (http://code.google.com/p/xy-vsfilter/issues/detail?id=181) in the commits which improved performance and reduced memory usage to allow for insanely large borders up to ~6500px or so (64-bit integer limits). Though for the sample real.finder posted, there was no purpose in using such 2000px border which exceeded the video size by 2-4x. If there was a need to black out the screen, a simple vector shape should be used.
huhn
9th April 2014, 09:23
Does madVR support this?
read post 1. MadVR was the first with support.
Note: XySubFilter requires a compatible subtitle consumer. We recommend madVR 0.87.5+ or MPC-HC 1.7.2+ (EVR-CP)
dansrfe
9th April 2014, 10:41
read post 1. MadVR was the first with support.
Yes, but how can I configure the subtitles to position relatively to the window frame? Furthermore, how can I configure the subtitles to size relative to the window size?
cyberbeing
9th April 2014, 13:18
Yes, but how can I configure the subtitles to position relatively to the window frame? Furthermore, how can I configure the subtitles to size relative to the window size?
I thought I already answered this?
Is it possible to position the subtitles relative to the frame?
e.g. at 99% height the subtitles should show in the black bar region when a 2.4 aspect video is played on a 16/9 display.
Requires support from the Subtitle Consumer.
FWIW, this is very high on my to do list, together with some other related changes/improvements.
As implied in that post, there isn't a Subtitle Consumer which has added support for this functionality yet. Though it is something on madshi's to-do list.
FreeFall
13th April 2014, 07:40
cyberbeing,
Could you include the latest subtitle fixes from MPC-HC team in the next xy-VSFilter, XySubFilter releases?
Thanks to Underground78's hard work.
Fixes PGS Subtitle timing problems.
https://trac.mpc-hc.org/ticket/3691
Fixes animated VobSub Subtitles were not supported
https://trac.mpc-hc.org/ticket/1814
Thanks.
cyberbeing
13th April 2014, 12:51
cyberbeing,
Could you include the latest subtitle fixes from MPC-HC team in the next xy-VSFilter, XySubFilter releases?
Thanks to Underground78's hard work.
Fixes PGS Subtitle timing problems.
https://trac.mpc-hc.org/ticket/3691
Fixes animated VobSub Subtitles were not supported
https://trac.mpc-hc.org/ticket/1814
Thanks.
XySubFilter Test build with these changes has been attached to Issue #68 (http://code.google.com/p/xy-vsfilter/issues/detail?id=68#c8). Please follow-up in that Issue if any problems remain.
mindbomb
15th April 2014, 21:39
idk if this issue has been reported, but external subtitles don't work if mpc-hc's audio switcher is enabled.
cyberbeing
15th April 2014, 23:10
idk if this issue has been reported, but external subtitles don't work if mpc-hc's audio switcher is enabled.
Seems fine here using MPC-HC nightly and LAV Filters. You'll need to provide more information.
kasper93
16th April 2014, 00:30
I've also tried and couldn't reproduce... I don't even see how audio switcher might be related.
mindbomb
16th April 2014, 01:41
Someone told me he was having this problem, and then I tried it and also had the same issue. I was using mpc hc 1.7.2, with evr cp, xy subfilter 682. He was using madvr, and said it happened with every version newer than 87.4. I tried mpc hc 1.7.3 and also ran into this issue.
So the problem was any video file, an external srt file in the same directory with the same name, and with the audio switcher enabled, xy subfilter doesn't load, but with it disabled, xy subfilter loads. I assume this has something to do with the mechanism the audio switcher uses to detect external audio files clashing with xy subfilter's autoloader's mechanism to detect external subtitles.
vivan
16th April 2014, 02:52
I can confirm this issue. Happens with both madVR and EVR, with any external subtitle file (.ass too).
Happens only with internal LAV Audio Decoder...
cyberbeing
16th April 2014, 06:23
I am still unable to reproduce this. Did any of you have FFDShow installed, or otherwise overriding merits in MPC-HC External Filters?
http://i.imgbox.com/uNLKklDT.png http://i.imgbox.com/xGMG7JTZ.png
2 internal audio tracks + 1 external audio track + 2 external subtitle tracks
Please try the following:
Uninstall XySubFilter Beta2 with the bat (DllUnregister Server in xysubfilter.dll succeeded)
Run the XySubFilter_Restore_Defaults.reg from here (http://code.google.com/p/xy-vsfilter/issues/detail?id=26#c3)
Install XySubFilter Beta2 with the bat (DllRegister Server in xysubfilter.dll succeeded)
Download and extract/install MPC-HC x86 nightly (http://nightly.mpc-hc.org/)
Open MPC-HC options and run -> Miscellaneous -> Setting Management -> Reset
Open MPC-HC options and disable -> Playback -> Use built-in subtitle renderer
Do not change any other settings.
Create a new folder
Copy your problem video/subtitles/audio to this new folder
Rename to simple names like test.mkv test.ass test.srt test.flac
Open your renamed test.mkv which has external subtitles
Does the problem still exist?
If still having issues:
Please upload a log from the logging build (https://www.mediafire.com/?bxixb7x9gbo7v4n).
The log is written to C:\XySubFilter.log by default.
mindbomb
16th April 2014, 15:39
The problem still exists. Here is the log with audio switcher enabled http://pastebin.com/m6eWKW9X
Here with it disabled http://pastebin.com/mGcTTBy4
cyberbeing
17th April 2014, 12:56
mindbomb, does this only occur when using Internal LAV Audio like vivan?
In the log you posted it appears the MPC-HC audio switcher appears too early, and DirectShow ends up kicking XySubFilterAutoLoader out of the graph. In my log, XySubFilterAutoLoader connects to LAV Audio, loads XySubFilter, leaves the graph, and only then does the MPC-HC audio switcher appear.
vivan, if you could post a log as well, that would be useful for comparison.
Does the same thing occur with the MPC-BE 1.4.2 (http://sourceforge.net/projects/mpcbe/files/MPC-BE/MPC-BE%20Win32/MPC-BE%20Win32%201.4.2/) audio switcher? Or what about this specific MPC-HC 1.7.3.23 Nightly (http://nightly.mpc-hc.org/old/1.7.3.23/) or an old build like MPC-HC 1.6.8 stable (http://sourceforge.net/projects/mpc-hc/files/MPC%20HomeCinema%20-%20Win32/MPC-HC_v1.6.8_x86/)?
I'm curious as to why this only occurs for certain people. For reference, could you download Graph Studio Next (https://code.google.com/p/graph-studio-next/downloads/detail?name=graphstudionext_0_6_1_265.zip) drag your test video into it, and then:
1) Take a screenshot of the connected filters
2) Save and upload the Graph Construction Report (View Menu)
3) Upload a XySubFilter log for this operation
In mean-time, I suspect setting XySubFilter "Loading -> Always Load" will workaround any such audio switcher issues, since that setting does not require a connectable audio pin.
vivan
17th April 2014, 16:16
Logs:
With enabled audio switcher and internal audio decoder enabled - http://pastebin.com/QzpcBKzj (I have no idea what I'm doing wrong, but it's that short. And it doesn't like look mindbomb's log).
With enabled audio switcher and internal audio decoder disabled - http://pastebin.com/pBd4Uy0w (first 100 lines)
With disabled audio switcher - http://pastebin.com/hLzv1EBy (first 100 lines)
Btw, I have registed LAV Filters in MPC-HC folder, so when I'm disabling internal filters - MPC-HC is still using the same exact filters, just loads them in a different way.
I've checked MPC-BE - same behavior.
If built-in audio switcher is disabled - xysubfilter loads.
If built-in audio switcher is enabled and internal audio decoder is disabled - xysubfilter loads.
If built-in audio switcher is enabled and internal audio decoder is enabled - xysubfilter doesn't load.
With MPC-HC 1.7.3.23 and MPC-HC 1.6.8 stable - same behavior.
GSN:
graph - http://i.imgur.com/vnjo1xi.png
report - http://pastebin.com/bthB07nV
log - http://pastebin.com/zx4a8qFE
In mean-time, I suspect setting XySubFilter "Loading -> Always Load" will workaround any such audio switcher issues, since that setting does not require a connectable audio pin.Yes, it does help. That was the first thing I did when encountered this issue after updating xysubfilter (and re-registering it). And then I completely forgot about this issue.
P.s. is it possible to write log to a different place? It requires admin rights, and when I launch application with admin rights I can't use drag-n-drop to open files in it.
cyberbeing
17th April 2014, 16:31
Something is strange with all of your XySubFilter logs vivan, to the point of being useless as they are missing all the logging prior to subtitle rendering. You are using the logging build I linked, correct? Ensure that you've actually installed XySubFilter successfully and you extracted the XySubFilter.dll.properties file to the same directory. Try resetting settings to defaults with that registry file (http://code.google.com/p/xy-vsfilter/issues/detail?id=26#c3) as well. Maybe your custom path settings broke the logger or something.
Also, what OS are you running?
The Graph Construction Report seems normal, with XySubFilterAutoLoader present, and without DirectShow loading any unneeded filters.
P.s. is it possible to write log to a different place? It requires admin rights, and when I launch application with admin rights I can't use drag-n-drop to open files in it.
Edit the "log4cplus.appender.OUTFILE.File" line in the .properties file.
vivan
17th April 2014, 16:58
Maybe your custom path settings broke the logger or something.
Also, what OS are you running?
Edit the "log4cplus.appender.OUTFILE.File" line in the .properties file.Exactly. I had path "Субтитры", I've removed it and now my log is similar to mindbomb's.
W7 HP x64.
Thanks, I'll redo everything soon.
cyberbeing
17th April 2014, 17:09
Happens only with internal LAV Audio Decoder...
I've checked MPC-BE - same behavior.
Could you clarify this. MPC-BE doesn't use LAV Filters internally, so when you say 'same behavior' do you also mean only with MPC-BE's internal audio decoder?
vivan
17th April 2014, 17:15
Could you clarify this. MPC-BE doesn't use LAV Filters internally, so when you say 'same behavior' do you also mean only with MPC-BE's internal audio decoder?Yes. Same with MPC-HC 1.6.8 (LAV replaced internal filters in 1.7.0).
So it doesn't matter what that decoder is - only the fact that it's internal matters.
cyberbeing
17th April 2014, 17:21
kasper93 if you are still around, do you have any insight on the timing of the Audio Switcher entering the graph, and connection logic?
vivan
17th April 2014, 17:33
http://pastebin.com/2cQvAwpq switcher enabled, internal audio enabled (failed to load)
http://pastebin.com/2XRqQ4HG switcher disabled, internal audio enabled (loaded)
http://pastebin.com/YEuFNLum switcher enabled, internal audio disabled (loaded)
http://pastebin.com/hqYWScd8 switcher enabled, internal audio disabled, added LAV audio decoder in external filters and set it to "prefer" (failed to load)
http://pastebin.com/ipfVP7NB - GSN log
mindbomb
17th April 2014, 18:26
mindbomb, does this only occur when using Internal LAV Audio like vivan?
yes, that is the case.
cyberbeing
17th April 2014, 21:21
mindbomb & vivan, could you test both of these builds (www.mediafire.com/?cqzlf711cb1l0zq) and see if it makes any difference? Make sure you uninstall/install each time, and that you remove XySubFilterAutoLoader from External Filters if previously present. Both builds make some pin changes, and will be broken unless you re-register the filter. I'm not particularly hopeful these builds will make any difference, but worth a shot.
mindbomb
18th April 2014, 03:04
yea, they didn't work. Btw, we were both using windows 7, so many it is an OS specific thing?
cyberbeing
18th April 2014, 11:24
I don't think that's it, since I am also running Win7 SP1 x64 and I don't have this issue. At this point I can only assume that there must be some strange timing issue which either causes a delay in Directshow adding the AutoLoader to the graph, or otherwise the graph entering the running state too early. One last test build to try here (https://www.mediafire.com/?3ad7m6i6rfdawir). If this doesn't work, there is nothing more I need from you at the moment. I just hope our developer can reproduce this.
Also out of curiosity, what happens if you have xy-VSFilter 3.0.0.211 installed in addition to XySubFilter Beta2?
mindbomb
18th April 2014, 20:27
That build didn't work.
With xyvsfilter and xysubfilter installed, when the audio switcher is enabled, xyvsfilter is used, when it is disabled, xysubfilter is used. Only one of them is enabled in any given scenario.
cyberbeing
18th April 2014, 21:37
Okay, thanks.
madshi
18th April 2014, 21:45
Maybe the auto loader should register for video tracks instead of audio tracks? Or maybe both, just to be safe? Just a thought...
cyberbeing
19th April 2014, 00:09
Were you also able to reproduce this issue being reported madshi? MPC-HC Audio Switcher + MPC-HC Internal Audio Decoder = XySubFilter not loaded with external subtitles only?
Maybe the auto loader should register for video tracks instead of audio tracks? Or maybe both, just to be safe? Just a thought...
The AutoLoader is already registered for Video/Audio/Subtitle tracks as it has an GUID_NULL (Any Type) input pin with maximum merit. Entering the graph isn't an issue, something is just preventing DirectShow from attempting to connect the AutoLoader to an Audio pin after entering the graph. Normally the AutoLoader seems to connect directly to the Splitter pin, though in the case of mindbomb/vivan, the Internal Audio Decoder + Audio Switcher are able to make their connection first, and for some reason this causes things to fail. I would not be surprised if this was actually a bug in MPC-HC, which breaks raw audio filters for mindbomb/vivan as well.
If XySubFilterAutoLoader utilizes a video track for loading XySubFilter, it has the side-effect of preventing VSFilter.dll from being used globally. This is why by default, video track connections are rejected unless the user has sets XySubFilter to "Always Load". Not using a video track also goes hand-in-hand with the limited Consumer detection which the XySubFilterAutoLoader preforms, to improve co-existence with VSFilter.
vivan
19th April 2014, 01:05
Regarding all 3 builds and xyvsfilter - everything is the same as with mindbomb.
Also it happens on my another PC, with a similar setup...
I would not be surprised if this was actually a bug in MPC-HC, which breaks raw audio filters for mindbomb/vivan as well.I'm not sure if I understood this right - but I have no problems playing pcm audio
http://i.imgur.com/kyGGtjC.png
madshi
19th April 2014, 08:00
Were you also able to reproduce this issue being reported madshi? MPC-HC Audio Switcher + MPC-HC Internal Audio Decoder = XySubFilter not loaded with external subtitles only?
Haven't tried yet.
The AutoLoader is already registered for Video/Audio/Subtitle tracks as it has an GUID_NULL (Any Type) input pin with maximum merit. Entering the graph isn't an issue, something is just preventing DirectShow from attempting to connect the AutoLoader to an Audio pin after entering the graph.
I don't remember the nasty details, but do you really have to accept a connection at all in the auto loader? I thought the trick would be to refuse any connections, but to take the opportunity to look for external tracks, anyway. And if external tracks are found, manually add XySubFilter to the graph. Shouldn't that work without you having to accept any connections? But I guess you guys have probably thought that through, so it might not make sense for me to question the inner workings of the auto loader now.
nevcairiel
19th April 2014, 10:43
It should be enough to enter the graph, as thats all you really need to get access to the graph object and then force load another filter into the graph if needed.
cyberbeing
19th April 2014, 11:43
Also it happens on my another PC, with a similar setup...
Yeah... I don't have an explanation for that. There seems to be some unknown factor involved.
I'm not sure if I understood this right - but I have no problems playing pcm audio
What I meant was something like FFDShow's Raw Audio Processor. If you install only the FFDShow Raw Audio Processor, open Graph Studio Next -> Insert Filter -> find FFDShow Audio Processor -> and set Change Merit 0xFFFFFFFF, is the FFDShow's Raw Audio Processor then able to connect to MPC-HC's Audio Switcher automatically without having an entry in MPC-HC External Filters?
It should be enough to enter the graph, as thats all you really need to get access to the graph object and then force load another filter into the graph if needed.
Okay, I'll pass that along.
cyberbeing
19th April 2014, 11:53
Yeah... I don't have an explanation for that. There seems to be some unknown factor involved.
I was able to reproduce this on another computer and figured out the cause. That pesky RDPRedirectionFilter is to blame. The same which prevented VSFilter from auto-loading in MPC-HC for many years in the past. I thought MPC-HC blacklisted it entirely, but it seems not. If any MPC-HC devs are around, could you look into why RDPRedirectionFilter is not being completely blocked?
The reason this issue didn't occur on my primary dev computer, is I had taken ownership of that filter from Trusted Installer and disabled it with a merit of Do Not Use a long time ago. When I do the same on my other household computer, it fixes this issue as well.
Alternatively, if you set XySubFilterAutoLoader to Prefer in MPC-HC External Filters, it also seems to resolve it (the same workaround as when VSFilter was affected by this RDPRedirectionFilter issue in MPC). In any case, like before, I would classify this as a bug in the MPC graph manager.
nevcairiel
19th April 2014, 12:05
Not blacklisting a broken filter seems hardly to qualify as a bug, you should ideally design a system that even works when the default non-customized graph builder is used. It makes it several times easier for other players to adopt it.
cyberbeing
19th April 2014, 12:23
Looking at the commit in question (https://github.com/mpc-hc/mpc-hc/commit/ad11b629af15eb81414ad1b211f7c4f3f068cacd), it seems MPC-HC was only blocking RDPRedirectionFilter for Video, but not Audio.
Not blacklisting a broken filter seems hardly to qualify as a bug, you should ideally design a system that even works when the default non-customized graph builder is used. It makes it several times easier for other players to adopt it.
This RDPRedirectionFilter issue is unique to MPC's graph manager. Other media players do not have this issue.
This remained broken for years in MPC-HC, since nobody could figure out how to fix it on the VSFilter.dll side (we've looked into this before). Hence, it was fixed in MPC-HC instead. I'd assume if someone figured out how to fix VSFilter.dll with the commit I linked above reverted, the same fix would apply to XySubFilter as well. I'm unconvinced it is even possible to fix this on our end though, as it seems MPC's graph manager is causing unintended behavior.
nevcairiel
19th April 2014, 12:39
Oh, I see, MPC-HC bumps the merits of its renderers higher to avoid issues with this filter. Thats indeed a bug, and not the usual filter blacklisting that happens in several other places (ie. preventing broken filters from entering the graph)
cyberbeing
19th April 2014, 13:37
Applying that same fix for Audio in MPC-HC FGManager.cpp resolves the issue:
GUID guidsAudio[] = {MEDIATYPE_Audio, MEDIASUBTYPE_NULL};
if (SUCCEEDED(m_pFM->EnumMatchingFilters(&pEM, 0, FALSE, MERIT_DO_NOT_USE + 1,
TRUE, 1, guidsAudio, nullptr, nullptr, TRUE, FALSE, 0, nullptr, nullptr, nullptr))) {
for (CComPtr<IMoniker> pMoniker; S_OK == pEM->Next(1, &pMoniker, nullptr); pMoniker = nullptr) {
CFGFilterRegistry f(pMoniker);
if (f.GetCLSID() != CLSID_RDPDShowRedirectionFilter) {
m_armerit = std::max(m_armerit, f.GetMerit());
}
}
}
Here is a MPC-HC build (https://www.mediafire.com/?23lnv93vfyr1a4x) with that change.
cyberbeing
19th April 2014, 14:48
I don't remember the nasty details, but do you really have to accept a connection at all in the auto loader? I thought the trick would be to refuse any connections, but to take the opportunity to look for external tracks, anyway. And if external tracks are found, manually add XySubFilter to the graph. Shouldn't that work without you having to accept any connections? But I guess you guys have probably thought that through, so it might not make sense for me to question the inner workings of the auto loader now.
I would naively think this was done to ensure:
A) DirectShow gives up on connecting the AutoLoader to the video pin and is able to fallback to a filter with a lower merit (i.e. VSFilter)
B) AutoLoader can then decide whether or not remove VSFilter from the graph (load XySubFilter), perform Consumer detection, and perform External Subtitle detection
C) AutoLoader is not kicked out of the graph too early.
...but I'm not positive over the exact reasoning for the implementation either. The current 'Load when needed' AutoLoader implementation only attempts to load XySubFilter once DirectShow no longer is attempting to connect it to the video pin. Maybe some operations could be moved earlier as Nev stated, but a quick test removing the input pin MEDIATYPE checks ends up preventing DirectShow from attempting to load VSFilter into the graph system-wide. Assuming it is possible, it would likely require re-factoring the entire AutoLoader. I'm not sure it's worth it unless an actual bug is found, since currently it is working-as-intended from what I can tell.
madshi
19th April 2014, 16:29
Now that you found the cause of the recently reported problem (RDPRedirectionFilter), there's probably no reason to change anything.
vivan
20th April 2014, 01:34
Applying that same fix for Audio in MPC-HC FGManager.cpp resolves the issue:
...
Here is a MPC-HC build (https://www.mediafire.com/?23lnv93vfyr1a4x) with that change.Yeap, I can confirm that it fixed that issue for me.
cyberbeing
20th April 2014, 06:16
Yes, and thanks vivan & mindbomb for putting through with all my requests for logs and testing.
ikarad
20th April 2014, 10:02
When can we hope a new version of xy-vsfilter beta or stable version?
Soukyuu
20th April 2014, 11:57
Is it possible to configure xy-subfilter (or mpc-hc) to load the subtitles, but not display them until user presses the subtitle key? Normally, the first track is auto-loaded, pressing the subtitle key cycles between other tracks and empty.
michkrol
20th April 2014, 12:15
Is it possible to configure xy-subfilter (or mpc-hc) to load the subtitles, but not display them until user presses the subtitle key? Normally, the first track is auto-loaded, pressing the subtitle key cycles between other tracks and empty.
I understand you mean internal subs (in *.mkv, etc.)? They are selected by either splitter or media player.
If you're using LAVFilters (LAV Splitter) go to the splitter settings and for Subtitle Selection Mode select No subtitles, instead of Default.
For it to work you might need to disable Allow overriding external splitter choice under Default track selection in Playback settings in MPC-HC.
Soukyuu
20th April 2014, 12:30
Works, thanks! I guess I assumed "no subtitles" would not load subtitles at all, meaning disabling xy-subfilter.
cyberbeing
20th April 2014, 18:49
When can we hope a new version of xy-vsfilter beta or stable version?
No later than the time when we release XySubFilter Beta3.
If it looks like XySubFilter Beta3 is going to be delayed, I may end up releasing a xy-VSFilter build based on CCCP's branch as the next stable as a temporary measure.
Works, thanks! I guess I assumed "no subtitles" would not load subtitles at all, meaning disabling xy-subfilter.
The 'Hide Subtitles' setting under the 'More' tab is also remembered. If you use MPC-BE you can then show subtitles on demand with the 'W' hotkey.
MPC-HC does not yet support such VSFilter API hotkeys, but there is currently a feature request ticket you can track here (https://trac.mpc-hc.org/ticket/4122).
ryrynz
21st April 2014, 03:23
If it looks like XySubFilter Beta3 is going to be delayed, I may end up releasing a xy-VSFilter build based on CCCP's branch as the next stable as a temporary measure.
It might be worth using this as the ongoing stable branch considering how often it's tweaked and prodded.
cyberbeing
21st April 2014, 07:49
It might be worth using this as the ongoing stable branch considering how often it's tweaked and prodded.
The CCCP branch is rarely tweaked and prodded, as it is made up almost entirely of various fixes which were backported from old commits in our latest branches to ensure stability. I've been working with them to that extent for quite awhile now as a stop-gap measure for keeping xy-VSFilter somewhat up-to-date, while we were focused on XySubFilter. It was never intended to be a long-term solution. There are a lot of features, functionality, and other changes from our latest branches, which are just not practical to backport. If I go this route, it would only be temporary until we resolve the issues which recently broke VSFilter in our lastest branches.
minaust
25th April 2014, 12:27
Hi everybody!
I've come here from the MPC-HC thread, as cyberbeing and I were about to wander off-topic. I've been using Media Player Classic since Gabest was maintaining it, and I've always used the ISR. Never saw a need to change. But in the last couple of days, I've had to more or less "get up to speed", and xysubfilter seems to fill the bill.
I had two gripes with it, and one has been fixed. The other is this: The subtitle file must be named identically to the video file. Meanwhile, I have movies with 2 and even 3 different sets of English subs. Xysubfilter is only seeing the one set named identically to the movie. The ISR would see them all.
I realize there are problems when you have multiple subs, but anybody with multiple subs using the ISR has most likely solved that by now.
Any fix in the works for this? Or is there a naming convention or configuration switch I've missed?
cyberbeing
25th April 2014, 17:32
Currently, the naming convention required for subtitle loading multiple subtitles in xy-VSFilter/XySubFilter matches Gabest's original MPC and VSFilter projects exactly.
Unique identifiers for each subtitle file can be added after the identical segment, following a period, like the following:
VideoTitle.mkv
VideoTitle.en.srt
VideoTitle.jp.srt
VideoTitle.fr.srt
VideoTitle.styled.ass
VideoTitle.bluray.sup
These subtitles would then respectively show up with the names, "en", "jp", "fr", "styled", and "bluray" from the xy-VSFilter/XySubFilter context menu.
It does appears that MPC-HC has changed this slightly. They still require that the exact video title exist at the very beginning of the subtitle filename, but remove the requirement for a period before the unique section? The change in question appears to be this commit (https://github.com/mpc-hc/mpc-hc/commit/82bbcaf00ff0f8bdd8f797d04467c3076cc7fa0c), which was introduced a few months ago in MPC-HC 1.7.2
VideoTitle.mkv
VideoTitle.en.srt
VideoTitle en.srt
VideoTitle_en.srt
VideoTitleRandomString.srt
MPC-HC then shows the entire subtitle name, including video title. minaust, was this type of autoload naming which you were thinking of?
Enhancing the external subtitle autoload and path behavior along with support for language matching has been something on our to-do list for awhile now.
I'd recommend creating a new issue on our bugtracker (http://code.google.com/p/xy-vsfilter/issues/list) listing the specific behavior you'd like to see supported, so we do not forget about it.
minaust
26th April 2014, 01:41
Currently, the naming convention required for subtitle loading multiple subtitles in xy-VSFilter/XySubFilter matches Gabest's original MPC and VSFilter projects exactly.
I never knew any naming conversion existed at all.
These subtitles would then respectively show up with the names, "en", "jp", "fr", "styled", and "bluray" from the xy-VSFilter/XySubFilter context menu.
I like this naming convention. I like it a lot.
It does appears that MPC-HC has changed this slightly. They still require that the exact video title exist at the very beginning of the subtitle filename, but remove the requirement for a period before the unique section? The change in question appears to be this commit (https://github.com/mpc-hc/mpc-hc/commit/82bbcaf00ff0f8bdd8f797d04467c3076cc7fa0c), which was introduced a few months ago in MPC-HC 1.7.2
I now view that as a bug. You see, I keep my subs in a common pool - C:\Subtitles. But when the aforementioned change occurred I encountered a problem: Say I played "Movie.Mkv". MPC-HC would show me the subs:
Movie.Ass
Movie - The Sequel.Ass
Movie - Another Sequel.Ass
Movie - Yet Another Sequel.Ass
Movie - Yes, We're Milking the Franchise.Ass
You get the idea. I compensated for that. Now that I know the convention (which works), I'm delighted with it the way things are.
MPC-HC then shows the entire subtitle name, including video title. minaust, was this type of autoload naming which you were thinking of?
It WAS. Not any more.
Enhancing the external subtitle autoload and path behavior along with support for language matching has been something on our to-do list for awhile now.
For my purposes the existing pathing works. I haven't experimented with it, but it appears I can change it as needed. Or can I?
I'd recommend creating a new issue on our bugtracker (http://code.google.com/p/xy-vsfilter/issues/list) listing the specific behavior you'd like to see supported, so we do not forget about it.
Heh. as if you can't tell, this "issue" gives me a damned good reason to abandon the ISR forever. No bugfix needed.
If anything, the posts on this page alone illustrates just how rapidly this particular software field is evolving.
It ranges from projects that were abandoned 'way back when, to projects that see daily releases.
In that world, documentation is scarce. Either nobody cares any more, or everybody is too busy. Oh, well.
By the way, thanks for the heads up.
real.finder
26th April 2014, 10:54
hi
I have a script get problems in xy-vsfilter, Whether in mpc or aegi
the problems is shades inaccurate and crash
Although this problems does not appear in the last aegisub (3.1.3) with xy-vsfilter in it
sub and font (http://www.mediafire.com/?baxhxtsq57tce0t)
thanks
last cccp fix shades inaccurate, but the crash still existing in some case like in the sample above
I would be grateful if this issue and http://code.google.com/p/xy-vsfilter/issues/detail?id=168 solved
with both 32 and 64 builds to use it in avs64/avs+ 64
thanks
kasper93
26th April 2014, 13:23
I now view that as a bug. You see, I keep my subs in a common pool - C:\Subtitles. But when the aforementioned change occurred I encountered a problem: Say I played "Movie.Mkv". MPC-HC would show me the subs:
Movie.Ass
Movie - The Sequel.Ass
Movie - Another Sequel.Ass
Movie - Yet Another Sequel.Ass
Movie - Yes, We're Milking the Franchise.Ass
You get the idea. I compensated for that. Now that I know the convention (which works), I'm delighted with it the way things are.
I think it's better to load more than skip valid subtitles in the process.
Heh. as if you can't tell, this "issue" gives me a damned good reason to abandon the ISR forever. No bugfix needed.
You referring to "XY" bugtracker yet talking about ISR... Anyway bugtrackers exist for the reason to discuss with developers how you expect software to work. We can't know what do you want unless you told us. I find this rude to bitch about other software in random threads behind original developers back and don't bother to even notify them about problems you encountered. How do you expect software to meet your expectations if you don't tell what do you want? Developers are not magicians who know what user-base think. It's very important to give feedback for their work...
cyberbeing
26th April 2014, 15:12
I like this naming convention. I like it a lot.
Happy to hear that works out well for you.
For my purposes the existing pathing works. I haven't experimented with it, but it appears I can change it as needed. Or can I?
The default entries are fixed (legacy limitation), but you can add new ones if desired. At some point we'll probably add support for either Wildcards, RegEx, or Mask support to allow more flexibility in directory naming with Path searches. Issue #105 (http://code.google.com/p/xy-vsfilter/issues/detail?id=105) is currently tracking any Path related feature requests.
I think it's better to load more than skip valid subtitles in the process.
I think it's better to add a GUI option which allows the user to decide how strict they desire subtitle loading to be. That's how mplayer-based players have always handled it, with options for "exact movie name", "contains movie name", and "load all subtitles". Defaulting to VSFilter-style exact matching, while having GUI options to enable looser matching, is probably how we would implement it if we go this route.
last cccp fix shades inaccurate, but the crash still existing in some case like in the sample above
Yes, the latest CCCP only contains 'Part 1' of the fix, that fixes a math overflow in the border code.
'Part 2' is the "Insane Border Support" commits, which uses a border rendering method more suitable in terms of performance and memory footprint for rendering border sizes beyond a certain threshold. Unfortunately, the "Insane Border Support" commits introduce a crash bug which we've yet to resolve.
'Part 3' fixes memory allocation in 64bit builds only to support extremely large border sizes.
I would be grateful if this issue and http://code.google.com/p/xy-vsfilter/issues/detail?id=168 solved
That's the plan when we make our next official release. The fix for Issue #168 is rather simple, it was essentially a typo in the parser which caused this feature to be disabled in legacy Gabest VSFilter (guliverkli (http://sourceforge.net/projects/guliverkli/) & guliverkli2 (http://sourceforge.net/projects/guliverkli2/) projects) which xy-VSFilter is based on. It wasn't fixed until early 2010 in VSFilterMod (http://code.google.com/p/vsfiltermod/source/detail?r=20), which was the project that MPC-HC eventually used as the base for their VSFilter (with most Mod-only features disabled/removed for compatibility).
CCCP usually doesn't merge random things such as this unless someone specifically requests it on their forums (http://www.cccp-project.net/forums/index.php?topic=6604.0) or IRC (irc://irc.rizon.net/cccp).
Edit: Issue #168 has now been fixed on Github in the xy_sub_filter_rc3 (https://github.com/Cyberbeing/xy-VSFilter/commit/30bcebb715a248b8051c3aeae4a5ff506695de42) & vsfilter_rc (https://github.com/Cyberbeing/xy-VSFilter/commit/fc60306c242720eede1c983444850e3568b5a39f) branches
minaust
27th April 2014, 03:47
I think it's better to load more than skip valid subtitles in the process.
Agreed - to a point.
You referring to "XY" bugtracker yet talking about ISR... Anyway bugtrackers exist for the reason to discuss with developers how you expect software to work. We can't know what do you want unless you told us. I find this rude to bitch about other software in random threads behind original developers back and don't bother to even notify them about problems you encountered. How do you expect software to meet your expectations if you don't tell what do you want? Developers are not magicians who know what user-base think. It's very important to give feedback for their work...
Constructive feedback is coming in the appropriate thread. You've kinda beaten me to the punch here.
EDIT: See ticker #4281 (https://trac.mpc-hc.org/ticket/4281)
clsid
29th April 2014, 17:28
@cyberbeing
The common.props config file is currently not included in the project files, as it should be.
You should also add this to common.props<ItemDefinitionGroup Condition="'$(Configuration)'=='Release' Or '$(Configuration)'=='Release Unicode' Or '$(Configuration)'=='Release log'">
<ClCompile>
<EnableEnhancedInstructionSet Condition="'$(Platform)'=='Win32'">StreamingSIMDExtensions</EnableEnhancedInstructionSet>
</CLCompile>
</ItemDefinitionGroup>
And remove
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>from the individual project files. Because since VS2013 "NotSet" means that SSE2 will be used.
cyberbeing
29th April 2014, 23:53
The common.props config file is currently not included in the project files, as it should be.
Are you talking about something different than the changes in this pull request (https://github.com/Cyberbeing/xy-VSFilter/pull/7)?
You should also add this to common.props<ItemDefinitionGroup Condition="'$(Configuration)'=='Release' Or '$(Configuration)'=='Release Unicode' Or '$(Configuration)'=='Release log'">
<ClCompile>
<EnableEnhancedInstructionSet Condition="'$(Platform)'=='Win32'">StreamingSIMDExtensions</EnableEnhancedInstructionSet>
</CLCompile>
</ItemDefinitionGroup>
Minimum requirement of xy-VSFilter/XySubFilter was supposed to be MMX, with CPU runtime detection used to activate our hand-written SSE2 optimizations.
And remove
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>from the individual project files. Because since VS2013 "NotSet" means that SSE2 will be used.
Thanks for pointing that out, I didn't realize this had changed in VS2012/VS2013. So to get the same effect, it seems we need to set:
<EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
cyberbeing
30th April 2014, 03:15
XySubFilter 3.1.0.697 Beta2 has been released (https://github.com/Cyberbeing/xy-VSFilter/releases/tag/3.1.0.697)
XySubFilter Beta2 .zip Archive (32-bit) (https://github.com/Cyberbeing/xy-VSFilter/releases/download/3.1.0.697/XySubFilter_3.1.0.697_x86_BETA2.zip) | XySubFilter Beta2 .zip Archive (64-bit) (https://github.com/Cyberbeing/xy-VSFilter/releases/download/3.1.0.697/XySubFilter_3.1.0.697_x64_BETA2.zip)
Debug Symbols for XySubFilter 3.1.0.697 (https://github.com/Cyberbeing/xy-VSFilter/releases/download/3.1.0.697/XySubFilter_3.1.0.697_Debug_Symbols.7z)
Features & Changes
Update Cache defaults (LV1 256->2048, LV4 512->768)
Disable /arch:SSE2 in VS2012/VS2013 builds
Bug Fix
Unable to load subtitle files with uppercase file extension
Correct a parser check which broke loading of script embedded UUE fonts
Revert Insane Border Support (temporary crash fix)
This release is a minor update of XySubFilter 3.1.0.682 Beta2 (http://forum.doom9.org/showpost.php?p=1672047&postcount=324).
madshi
30th April 2014, 08:21
Thanks, it's good to see minor stability updates... :)
kasper93
30th April 2014, 09:05
Why you don't want to enable SSE (1)?
Tapatalk 4 @ GT-I9300
Sarasa
30th April 2014, 10:00
XySubFilter 3.1.0.697 Beta2 has been released (https://github.com/Cyberbeing/xy-VSFilter/releases/tag/3.1.0.697)
XySubFilter Beta2 .7z Archive (32-bit) (https://github.com/Cyberbeing/xy-VSFilter/releases/download/3.1.0.697/XySubFilter_3.1.0.697_x86_BETA2.7z) | XySubFilter Beta2 .7z Archive (64-bit) (https://github.com/Cyberbeing/xy-VSFilter/releases/download/3.1.0.697/XySubFilter_3.1.0.697_x64_BETA2.7z)
...
Copy/paste gone bad ? ;)
your links have an 7z extension but the github one are zip
andyvt
30th April 2014, 11:30
XySubFilter 3.1.0.697 Beta2 has been released (https://github.com/Cyberbeing/xy-VSFilter/releases/tag/3.1.0.697)
XySubFilter Beta2 .7z Archive (32-bit) (https://github.com/Cyberbeing/xy-VSFilter/releases/download/3.1.0.697/XySubFilter_3.1.0.697_x86_BETA2.7z) | XySubFilter Beta2 .7z Archive (64-bit) (https://github.com/Cyberbeing/xy-VSFilter/releases/download/3.1.0.697/XySubFilter_3.1.0.697_x64_BETA2.7z)
Debug Symbols for XySubFilter 3.1.0.697 (https://github.com/Cyberbeing/xy-VSFilter/releases/download/3.1.0.697/XySubFilter_3.1.0.697_Debug_Symbols.7z)
Features & Changes
Update Cache defaults (LV1 256->2048, LV4 512->768)
Disable /arch:SSE2 in VS2012/VS2013 builds
Bug Fix
Unable to load subtitle files with uppercase file extension
Correct a parser check which broke loading of script embedded UUE fonts
Revert Insane Border Support (temporary crash fix)
This release is a minor update of XySubFilter 3.1.0.682 Beta2 (http://forum.doom9.org/showpost.php?p=1672047&postcount=324).
Does this include the patch to query the EVR presenter for ISubRenderConsumer?
clsid
30th April 2014, 17:56
Pull request looks good. NoExtensions is fine too is you prefer that.
Can you also commit your interlacing fix? Here is another patch for that by kasper93:
https://github.com/kasper93/mpc-hc/commit/d8ff6fac333b9602b6cc9865d4998f36cf479f2b
It would also be trivial to apply all the mpc-hc backports and fixes of Jeeb's clone to the vsfilter_rc branch.
cyberbeing
30th April 2014, 20:04
I've silently replaced the 3.1.0.697 VS2013 build links with VS2010 builds. I'd encourage everyone who downloaded prior to this post to re-download.
There seems to be a VS2012/VS2013 compiler related performance regression found, which hurts performance greatly on scripts which make heavy use of \clip.
For whatever reason, the code VS2010 generates is around 2x faster on such scripts.
Why you don't want to enable SSE (1)?
Since it doesn't result in a measurable improvement of performance for our filters. Visual Studio also seem to have a tendency to convert fast C code into slow SSE code in some cases.
I see no reason to break compatibility, unless doing so offered some benefit to our users.
Copy/paste gone bad ? ;)
your links have an 7z extension but the github one are zip
Yep, copy/paste gone bad. First post was correct, but I copied from that older Beta2 thread post which never got updated for that 7z to zip link change. Fixed now.
Does this include the patch to query the EVR presenter for ISubRenderConsumer?
No, not yet. I'm still waiting for our developer to look over and approve those changes. He seems to be busy, as I haven't been able to get in contact with him at all during the past month.
Can you also commit your interlacing fix?
Once I figure out what we are doing for our next xy-VSFilter release, that change will be committed.
I had my own version and a test build posted here (https://code.google.com/p/xy-vsfilter/issues/detail?id=179#c7) around a month ago. I've not had a chance to test kasper93's variation yet, and it seems it still hasn't been merged into MPC-HC master.
At this point, I was just awaiting JEEB to make a final decision about how this change should be implemented, and merge it into his CCCP branch.
kasper93
30th April 2014, 20:45
Since it doesn't result in a measurable improvement of performance for our filters. Visual Studio also seem to have a tendency to convert fast C code into slow SSE code in some cases.
Fair enough. It indeed depends on your code and what do you need.
I had my own version and a test build posted here (https://code.google.com/p/xy-vsfilter/issues/detail?id=179#c7) around a month ago. I've not had a chance to test kasper93's variation yet, and it seems it still hasn't been merged into MPC-HC master.
It will be merged soon, after next stable in fact which will be hotfix for PGS crash. We plan to release tomorrow or so. That's why this changes wait that long.
Aranzabal
3rd May 2014, 17:40
http://thumbnails112.imagebam.com/32441/ffdfe6324401301.jpg (http://www.imagebam.com/image/ffdfe6324401301)
When I dont use xysubfilter, I can see subtitles in the black bar, so is it about xysubfilter or madvr?
xysubfilter options don't have this "position subtitles relative to the video frame" option.
cyberbeing
3rd May 2014, 19:50
When I dont use xysubfilter, I can see subtitles in the black bar, so is it about xysubfilter or madvr?
It's about madVR. Supporting this is something madshi has stated is high priority on his to-do list. I'd hope that MPC-HC will eventually support this for their their EVR-CP/VMR9 subtitle consumer as well, but I haven't heard anything. XySubFilter itself added support for black bar rendering and subtitle repositioning (untested) almost 1 year ago now, so all we can do is wait patiently.
xysubfilter options don't have this "position subtitles relative to the video frame" option.
SubRenderIntf.h (http://madshi.net/SubRenderIntf.h) was implemented in such a way that the Subtitle Consumer is required to initiate the request for subtitle repositioning. Since there is no way for Subtitle Providers to force such a behavior, having an 'enable' option in XySubFilter would only be confusing to the user. Depending on how Subtitle Consumers choose to support this, its more likely that XySubFilter would gain an option like "never position subtitles outside the video frame" to disable automated black bar rendering.
clsid
12th May 2014, 16:33
@cyberbeing
In the build script of vsfilter_rc branch you should replace "3.0.0.4" with "3.0.0.211" (and +4 with +211 in the line below).
cyberbeing
12th May 2014, 22:52
@cyberbeing
In the build script of vsfilter_rc branch you should replace "3.0.0.4" with "3.0.0.211" (and +4 with +211 in the line below).
Any particular reason?
clsid
13th May 2014, 16:12
Otherwise it will result in an incorrect version calculation due to the non-existent tag 3.0.0.4 in that branch.
cyberbeing
13th May 2014, 23:08
The 3.0.0.4 tag should now exist once again. I accidentally removed it last week when I was pruning non-release tags, since I had forgotten it was used for this purpose.
mahoushounen
28th May 2014, 22:23
For some reason subtitle drag-n-drop doesn't work with latest XySubFilter. Am I doing something wrong or is this the filter's shortcoming?
cyberbeing
28th May 2014, 23:47
Only MPC-BE supports drag-n-drop functionality with XySubFilter currently.
[note: there seems to be a regression in the r4913 MPC-BE nightly, so grab the previous r4901 nightly or 1.4.2 stable]
For MPC-HC we have a ticket open here (https://trac.mpc-hc.org/ticket/4122) requesting they backport the behavior.
mahoushounen
29th May 2014, 17:15
Only MPC-BE supports drag-n-drop functionality with XySubFilter currently.
[note: there seems to be a regression in the r4913 MPC-BE nightly, so grab the previous r4901 nightly or 1.4.2 stable]
Will try it out, thanks.
cyberbeing
29th May 2014, 19:09
Just note that if your video does not have any auto-loaded embedded/external subtitles, you would need to configure XySubFilter settings to "Always Load" so it will be present in the graph before you drag-n-drop.
Skymil
30th May 2014, 22:38
Hello,
I'm not sure if it's the right place to ask this, please forgive me if it's not the case.
Before I was able to display two subtitles at the same time by using XySubFilter + the internal subtitles renderer of MPC-HC.
But now, it doesn't work anymore.
I've tried to change a lot of options from the LAV Splitter to MPC-HC.
If XySubFilter is loaded, the internal subtitles renderer displays nothing.
But if XySubFilter is not loaded, it's possible to use the internal renderer.
I have :
MPC-HC 1.7.5
madVR 0.87.10
XySubFilter 3.1.0.697
LAV Audio Decoder + Video Decoder + Splitter 0.61.2
Do you have any idea where this issue comes from?
cyberbeing
30th May 2014, 23:43
See: MPC-HC Ticket #4231 (https://trac.mpc-hc.org/ticket/4231) for details and the new solution.
Skymil
1st June 2014, 00:09
It works great now thank you (and sorry I checked the tickets but didn't found this one)!
GCRaistlin
2nd June 2014, 21:38
How do I make XySubFilter visible in system tray? I have added it to MPC-HC's External filters list, choose "Prefer" (as I did for VSFilter before) but XySubFilter icon doesn't appear in system tray when I open a video file.
vivan
2nd June 2014, 21:48
How do I make XySubFilter visible in system tray?Disable option "Hide Tray Icon" in the XySubFilter settings...
GCRaistlin
2nd June 2014, 21:51
Disable option "Hide Tray Icon" in the XySubFilter settings...
It isn't enabled.
Telion
2nd June 2014, 22:01
XySubFilter must be fully registered in the system to show its tray icon.
GCRaistlin
2nd June 2014, 23:55
XySubFilter must be fully registered in the system to show its tray icon.
This was a temporary ffdshow raw video filter problem. It prevented "lower" filters from loading for some unknown reason. Now all is OK.
GCRaistlin
3rd June 2014, 00:03
Hm. If XySubFilter is set to "Load when needed", the issue is here: not only XuSubFilter doesn't load but video isn't showed at all (the MPC-HC window looks like an audio file is played). If XySubFilter is set to "Always load", all works fine.
cyberbeing
3rd June 2014, 01:42
@GCRaistlin, from what you've said so far, I can't really say what is causing your issue.
First try uninstalling FFDShow entirely. Does the problem occur?
If not, install the latest ffdshow build (http://sourceforge.net/projects/ffdshow-tryout/files/SVN%20builds%20by%20clsid/generic%20builds/ffdshow_rev4530_20140209_clsid.exe/download) if you needed it, and disable all the checkboxes in the FFDSHow subtitle section for good measure.
Update MPC-HC to the latest nightly build (http://nightly.mpc-hc.org/). Reset to defaults. "'Miscellaneous" -> "Setting Management" -> "Reset". Ensure that "Playback" -> "Use built-in subtitle renderer" is disabled. Do not add any 'External Filters'.
Uninstall XySubFilter. Restore Defaults with the reg file found here (https://code.google.com/p/xy-vsfilter/issues/detail?id=26#c3).
Test to ensure you have no problems without XySubFilter installed.
Install XySubFilter r697 (https://github.com/Cyberbeing/xy-VSFilter/releases/download/3.1.0.697/XySubFilter_3.1.0.697_x86_BETA2.zip) with the bat file. (DLLRegisterServer in XySubFilter.dll succeeded)
If the problem still occurs, you'll need to provide some more details about the filters being used and how this can be reproduced.
GCRaistlin
4th June 2014, 08:30
cyberbeing, it seemed to be a local issue. First the video wasn't showed by XySubFilter's "Load when needed", then VSFilter was loading even not being present in External Filters list. Fixed by reboot.
Where do I read about features on More tab? I interest in settings that allows to show subtitles on the lower black bar while watching 2,35:1 movie on 16:9 monitor.
Update MPC-HC to the latest nightly build. Reset to defaults. "'Miscellaneous" -> "Setting Management" -> "Reset". Ensure that "Playback" -> "Use built-in subtitle renderer" is disabled.
We aren't really able to disable "Use built-in subtitle renderer" after resetting settings until we change video renderer from default VMR7 windowed to something else (like VMR9 renderless).
cyberbeing
4th June 2014, 18:08
Where do I read about features on More tab? I interest in settings that allows to show subtitles on the lower black bar while watching 2,35:1 movie on 16:9 monitor.
We seem to get asked about this frequently. XySubFilter already supports this, but the subtitle consumers (VMR9, EVR-CP, madVR) currently do not. It's on madshi's to-do list to add support for this in madVR. For VMR9/EVR-CP, someone would need to open a feature request with MPC-HC.
We aren't really able to disable "Use built-in subtitle renderer" after resetting settings until we change video renderer from default VMR7 windowed to something else (like VMR9 renderless).
If the default renderer is VMR7 windowed, then you must be running Windows XP? Then yes, you would need to change to a compatible renderer like VMR9, EVR-CP, or madVR for XySubFilter to be used. Disabling the "Use built-in subtitle renderer" checkbox should always be possible though, since it is a global setting.
GCRaistlin
4th June 2014, 19:50
Disabling the "Use built-in subtitle renderer" checkbox should always be possible though, since it is a global setting.
http://i59.tinypic.com/35li5jo.jpg
GCRaistlin
4th June 2014, 19:55
XySubFilter already supports this, but the subtitle consumers (VMR9, EVR-CP, madVR) currently do not.
OK, but nevertheless what about the guide for "More" tab? Is there any settings there that should be changed to get the maximum quality for 1920:1080 resolution?
cyberbeing
4th June 2014, 22:11
http://i59.tinypic.com/35li5jo.jpg
Hmm, well I guess I'll need to keep that in mind when giving step by steps for XP users. Though when that checkbox is grayed out, XySubFilter cannot be used either.
OK, but nevertheless what about the guide for "More" tab? Is there any settings there that should be changed to get the maximum quality for 1920:1080 resolution?
The defaults are already set for maximum quality.
Cache settings generally should not be touched. Setting them higher or lower can hurt performance and stability.
Subpixel Positioning option of "8x8 vsfilter 2.39 default" is the highest quality setting. "8x8 bilinear" has similar accuracy and may be slightly faster, but can introduce uneven blurring with multiple lines. Lower settings like 4x4, 2x2, None, will make animations severely stutter.
Render Layout Options:
Use Original Video Size = Scale to output resolution with appearance matching VSFilter.dll.
Use AR Adjusted Video Size = Scale to output resolution with appearance matching VSFilter.dll, but do not strech SSA/ASS subtitles on anamorphic video. (Use this setting if your anamorphic video subtitles were not compensated for VSFilter.dll behavior)
Customize... H: XXXX V: XXXX = Debugging only, not for general use.
Render to Original Video Size = Do not scale. Matches VSFilter.dll behavior of always rendering to video size. Render Layout drop-down box ignored if this option is enabled.
YCbCr Matrix
Auto, Auto = Use Script Value if present
Anything else = Debugging only, not for general use
RGB Level
Auto = Honor the "supportedLevels" value reported by the subtitle consumer
Anything else = Debugging only, not for general use
MasterMeNL
5th June 2014, 16:12
Could someone give me the default values for the cache options?
Soukyuu
5th June 2014, 19:17
LV4 768
LV3 512
LV2 256
LV1 2.048
Haven't changed them since install, so should be default.
Question: is there any explanation about levels and why the lv1 cache is the biggest and not the lv4 one? Does knowing that even help tweaking the performance on e.g. a weaker CPU?
cyberbeing
5th June 2014, 20:04
I recently came across a sample which had poor performance with the old LV1 cache default of 256. Raising the the LV1 cache size to 2048 improved performance by 50% or so. That was just a single sample though, and I haven't come across any others which see a significant benefit over the old defaults (LV1 256, LV2 256, LV3 512, LV4 512).
On systems with slower CPUs and RAM, setting the caches larger than necessary will hurt overall performance slightly, since hashing and cache queries are not free when you are not generating any cache hits. You can think of the various cache sizes as the number of duplicate/repetitive entries for various elements of a script. In the future we may add a lookahead to make what gets cached more intelligent, but the way they are currently implemented, its possible for the caches to be filled with 'useless' dynamic data. This is why a hard limit on the number of entries is currently necessary.
MasterMeNL
5th June 2014, 21:43
Thanks a lot for the default settings and info guys!
Sm3n
12th June 2014, 23:12
Hi,
I set up my Border width Style like this: 3.0000 because on 1080p video it was too thin.
Now I pretty happy if this result:
http://i.imgur.com/aMmWTqD.jpg
And if I play a 4:3 video, 3.0000 becomes too much:
http://i.imgur.com/X2m8nUR.jpg
Everytime I have to go back in settings and change 3 to 1. It's a bit boring. I tried to play with Renderer Layout Options but I can't do what I want, so...
Any advice to deal with this would be very much appreciated.
Cheers.
cyberbeing
13th June 2014, 04:13
In the current build there is no way to automatically deal with this. At one point we had an older commit which made an attempt at fixing this, but it didn't function correctly so I reverted it.
Just now, I took another look at it and I think I figured out what was wrong in the older commit. Try [Removed], along with the 'relative output height' setting under 'Styles' set to 1080p.
The removed build contains a major bug which causes display issues with styled ASS subtitles even without overriding styles, unless this feature is set to "original video" (disabled).
Sm3n
13th June 2014, 11:10
Thx you so much cyberbeing! You fixed it.
Looks the same on both 1080p and 4:3 now. And seems pretty stable.
Thx for your good work.
GCRaistlin
13th June 2014, 11:19
If XySubFilter is set to "Load when needed", the issue is here: not only XuSubFilter doesn't load but video isn't showed at all (the MPC-HC window looks like an audio file is played). If XySubFilter is set to "Always load", all works fine.
I have discovered that the issue appears when both VSFilter and XySubFilter are installed, no matter if they're added to MPC-HC's External Filters list or not. Also, VSFilter can be loaded by that even if it's not added to External Filters list.
If VSFilter will be deleted and then installed again the issue won't appear till next reboot. After reboot, the issue will be here again.
cyberbeing
13th June 2014, 13:43
Thx you so much cyberbeing! You fixed it.
Looks the same on both 1080p and 4:3 now. And seems pretty stable.
Good to hear.
I have discovered that the issue appears when both VSFilter and XySubFilter are installed, no matter if they're added to MPC-HC's External Filters list or not.
Is there some reason why you are adding anything to MPC-HC External Filters?
Also, VSFilter can be loaded by that even if it's not added to External Filters list.
VSFilter can be loaded by what? Nothing should be added to MPC-HC External Filters.
If VSFilter will be deleted and then installed again the issue won't appear till next reboot. After reboot, the issue will be here again.
Are you ensuring to always "uninstall" (regsvr32 /u VSFilter.dll) first before you delete? Though either way, this doesn't make any sense. Which version of VSFilter are you using?
It sounds like you may have a conflicting filter or otherwise partially broken playback setup. I no longer have a Windows XP box, so I cannot really troubleshoot this with you. Could you please try installing CCCP (http://www.cccp-project.net/download.php?type=cccp), running "Repair CCCP" under settings, and rebooting. If you still have issues when using CCCP with XySubFilter, they should be able to troubleshoot it with you on their forums (http://www.cccp-project.net/forums/index.php?board=1.0). At this point in time, I'm having a hard time believing that something other than XySubFilter isn't to blame for this failure.
GCRaistlin
13th June 2014, 22:48
Is there some reason why you are adding anything to MPC-HC External Filters?
I thought that it's necessary but now I see that XySubFilter loads without it.
Are you ensuring to always "uninstall" (regsvr32 /u VSFilter.dll) first before you delete? Though either way, this doesn't make any sense. Which version of VSFilter are you using?
I uninstall, not just delete. In External Filters list, "<not registered>" appears next to "VSFilter" after uninstalling.
I have been using VSFilter 2.41.322.
Could you please try installing CCCP (http://www.cccp-project.net/download.php?type=cccp), running "Repair CCCP" under settings, and rebooting. If you still have issues when using CCCP with XySubFilter, they should be able to troubleshoot it with you on their forums (http://www.cccp-project.net/forums/index.php?board=1.0). At this point in time, I'm having a hard time believing that something other than XySubFilter isn't to blame for this failure.
Actually, I reported this issue just to be on the safe side - there's no reason to have both VSFilter and XySubFilter installed so I just uninstalled VSFilter.
cyberbeing
14th June 2014, 03:07
I have been using VSFilter 2.41.322.
Does anything improve if you use xy-VSFilter 3.0.0.211 (http://xy-vsfilter.googlecode.com/files/xy-VSFilter_3.0.0.211.7z) or the slightly newer xy-VSFilter CCCP build (www.mediafire.com/?h1v2b9fia2ks1a9) instead? xy-VSFilter has much more robust connection logic than MPC-HC VSFilter, so it very well may resolve this strange failure.
Finnish Flash
14th June 2014, 16:23
I tried the new relative output height build and it's a feature that I've been waiting for, but something in this build broke Subtitle Workshop video output, which is weird because it shouldn't use XySubFilter in the first place. I tried uninstalling or disabling XySubFilter and everything went back to normal again. Also, a build from xy_sub_filter_rc3 branch is working well and it's not causing any problems. (3.1.0.696)
Could you push the commit to Github so that I could try to see what might be causing this regression?
GCRaistlin
14th June 2014, 19:48
Does anything improve if you use xy-VSFilter 3.0.0.211 (http://xy-vsfilter.googlecode.com/files/xy-VSFilter_3.0.0.211.7z) or the slightly newer xy-VSFilter CCCP build (www.mediafire.com/?h1v2b9fia2ks1a9) instead? xy-VSFilter has much more robust connection logic than MPC-HC VSFilter, so it very well may resolve this strange failure.
With xy-VSFilter, this issue can't be reproduced.
I have mkv file with subtitles that are displayed with MPC-HC ISR or with xy-VSFilter but not with XySubFilter (though they appear in the list that can be called by right click on the system tray icon). Ready to give any info for this bug to be resolved.
cyberbeing
15th June 2014, 12:16
@Finnish Flash
It seems Subtitle Workshop must catch all DirectShow filter exceptions during graph building. Should be fixed in this build (www.mediafire.com/?7bx4prrgxg5sgr7).
@GCRaistlin
Please provide either the script, or a small sample of the mkv which you are able to reproduce the issue with.
If this issue only occurs when using XySubFilter with madVR but not VMR9/EVR-CP, you are probably experiencing madVR issue #205 (http://bugs.madshi.net/view.php?id=205).
GCRaistlin
15th June 2014, 12:45
Please provide either the script, or a small sample of the mkv which you are able to reproduce the issue with.
With what tools do I get the script or extract this small sample?
If this issue only occurs when using XySubFilter with madVR but not VMR9/EVR-CP, you are probably experiencing madVR issue #205 (http://bugs.madshi.net/view.php?id=205).
You're right, it occurs only under circumstances described there.
Finnish Flash
15th June 2014, 13:01
@Finnish Flash
It seems Subtitle Workshop must catch all DirectShow filter exceptions during graph building. Should be fixed in this build (www.mediafire.com/?7bx4prrgxg5sgr7).
Just tried it and it's working fine now. Thank you very much!
cyberbeing
15th June 2014, 13:13
With what tools do I get the script or extract this small sample?
MKVToolNix (http://forum.doom9.org/showthread.php?t=155732) can do both.
For splitting:
Open mkvmerge GUI (mmg.exe)
Drag your mkv into into it
Global Tab
Split mode: split by parts based on timecodes
Parts: enter timecode range in format described by the tooltip
For extracting:
You could use mkvextract CLI directly, or a GUI like MKVclever (http://forum.doom9.org/showthread.php?t=152108) or gMKVExtractGUI (http://forum.doom9.org/showthread.php?t=170249).
Though if the issue is indeed identical to madVR Issue #205, then you probably don't need to extract the script. The particular issue seems to be triggered by the video resolution rather than the script when using madVR >=0.87.0 with certain older GPUs. Just split a small sample, upload it to a filehost of some kind (Mediafire, Mega, Dev-Host, AnonFiles, etc), and link it in the madVR issue.
Volfield
15th June 2014, 13:16
@Finnish Flash
It seems Subtitle Workshop must catch all DirectShow filter exceptions during graph building. Should be fixed in this build (www.mediafire.com/?7bx4prrgxg5sgr7).
Can you make x64 version?
cyberbeing
15th June 2014, 13:22
Can you make x64 version?
Here you go (http://www.mediafire.com/?of1065jhppe1pd3).
sdancer75
19th June 2014, 18:25
Hi,
I am trying to implement xy-vsfilter to my custom application using MFC/C++. I initialized successfully the filter using the code below and the directshow graph is playing just fine including the vsfilter.
//VS Filter for subtitling
m_pVSFilter = AddFilter("VS Filter",CLSID_VSFilter);
if (m_pVSFilter == NULL){
ReportError(_T("Failed to initialize the filter (VS Filter)."),hr);
AMLOGINFO(_T("Failed to initialize the filter (VS Filter) %s."),GetErrorCode(hr) );
return FALSE;
}
Now I want to QueryInterface to all public interfaces to open the subtitle file, and to adjust all other options. So, where to look to find all the public interfaces ?
Edit:I just saw the property pages under \xy_vsfilter\src\filters\transform\vsfilter\DirectVobSubPropPage.h but I see only classes not intefaces. Does this mean that I have to modify the source code ? Will this work ?
Regards,
cyberbeing
19th June 2014, 22:14
The public interfaces for xy-VSFilter are IDirectVobSub.h (https://github.com/Cyberbeing/xy-VSFilter/blob/vsfilter_rc/src/filters/transform/vsfilter/IDirectVobSub.h) (original VSFilter interface) & IDirectVobSubXy.h (https://github.com/Cyberbeing/xy-VSFilter/blob/vsfilter_rc/src/filters/transform/vsfilter/IDirectVobSubXy.h) (xy-VSFilter specific options).
XySubFilter only expanded IDirectVobSubXy.h (https://github.com/Cyberbeing/xy-VSFilter/blob/xy_sub_filter_rc3/src/filters/transform/vsfilter/IDirectVobSubXy.h) to include all supported functionality, instead of requiring using both interfaces to access all options. IDirectVobSub remains though.
sdancer75
20th June 2014, 07:41
The public interfaces for xy-VSFilter are IDirectVobSub.h (https://github.com/Cyberbeing/xy-VSFilter/blob/vsfilter_rc/src/filters/transform/vsfilter/IDirectVobSub.h) (original VSFilter interface) & IDirectVobSubXy.h (https://github.com/Cyberbeing/xy-VSFilter/blob/vsfilter_rc/src/filters/transform/vsfilter/IDirectVobSubXy.h) (xy-VSFilter specific options).
XySubFilter only expanded IDirectVobSubXy.h (https://github.com/Cyberbeing/xy-VSFilter/blob/xy_sub_filter_rc3/src/filters/transform/vsfilter/IDirectVobSubXy.h) to include all supported functionality, instead of requiring using both interfaces to access all options. IDirectVobSub remains though.
Thank you for the reply, I think that it should work just fine, but I am having hard time including this file in my project.
#include <./xy_vsfilter/src/filters/transform/vsfilter/IDirectVobSub.h>
When I include the code above I get errors like below ( I am attaching only a small part ):
1>c:\program files\microsoft sdks\windows\v7.0\samples\multimedia\directshow\baseclasses\wxutil.h(126) : error C3861: 'EXECUTE_ASSERT': identifier not found
1>c:\gnosis_v2.00\dshowfilters\filters\subtitles\xy_vsfilter\src\subtitles\sts.h(42) : error C2146: syntax error : missing ';' before identifier 'FwRectCoor2'
1>c:\gnosis_v2.00\dshowfilters\filters\subtitles\xy_vsfilter\src\subtitles\sts.h(42) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\gnosis_v2.00\dshowfilters\filters\subtitles\xy_vsfilter\src\subtitles\sts.h(42) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\gnosis_v2.00\dshowfilters\filters\subtitles\xy_vsfilter\src\subtitles\sts.h(93) : error C3083: 'boost': the symbol to the left of a '::' must be a type
1>c:\gnosis_v2.00\dshowfilters\filters\subtitles\xy_vsfilter\src\subtitles\sts.h(93) : error C3083: 'flyweights': the symbol to the left of a '::' must be a type
1>c:\gnosis_v2.00\dshowfilters\filters\subtitles\xy_vsfilter\src\subtitles\sts.h(93) : error C2039: 'flyweight' : is not a member of '`global namespace''
1>c:\gnosis_v2.00\dshowfilters\filters\subtitles\xy_vsfilter\src\subtitles\sts.h(93) : error C2143: syntax error : missing ';' before '<'
Under wxutil.h "EXECUTE_ASSERT" is defined just fine and the other errors are not real error I am sure of that. I am thinking that is something wrong with the included relative paths as well as the order of that paths. The IDirectVobSub.h have also relative paths inside and really I dont want to get in into a game trying to fix all project paths. Can you suggest something better than that ?
Any suggestions ?
cyberbeing
20th June 2014, 09:20
The sts.h errors are probably since you forgot to include flyweight_base_types.h & possibly the boost .\thirdparty\ directory in your project file's includes.
The wxutil.h error is maybe SDK related? Try using one of the built-in Platform Toolset SDKs (v100, v110_xp, v120_xp), and then including wxutil.h directly from .\src\filters\BaseClasses\
If you are not already, should should probably use the most up-to-date xy-VSFilter branch vsfilter_rc (https://github.com/Cyberbeing/xy-VSFilter/tree/vsfilter_rc) as well.
If that doesn't fix it, I have no other ideas. I'm more of the end-user support guy rather than a developer, and rarely touch the code or troubleshoot errors like this.
sdancer75
20th June 2014, 11:18
The sts.h errors are probably since you forgot to include flyweight_base_types.h & possibly the boost .\thirdparty\ directory in your project file's includes.
The wxutil.h error is maybe SDK related? Try using one of the built-in Platform Toolset SDKs (v100, v110_xp, v120_xp), and then including wxutil.h directly from .\src\filters\BaseClasses\
If you are not already, should should probably use the most up-to-date xy-VSFilter branch vsfilter_rc (https://github.com/Cyberbeing/xy-VSFilter/tree/vsfilter_rc) as well.
If that doesn't fix it, I have no other ideas. I'm more of the end-user support guy rather than a developer, and rarely touch the code or troubleshoot errors like this.
Hi,
Thanks for your help. The things are going better now but, I am still missing some headers here..... and I think, that this concerns defined data types ie int32_t. Take a look below
1>c:\gnosis_v2.00\dshowfilters\filters\subtitles\xy_vsfilter\src\subtitles\flyweight_base_types.h(115) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
which refers to line 115 : const int32_t* tmp = reinterpret_cast<const int32_t*>(&d);
The int32_t data type is defined at
c:\gnosis_v2.00\DShowFilters\Filters\Subtitles\xy_vsfilter\src\thirdparty\boost_1_47_0\boost\cstdint.hpp
and the boost successfully included to the search path. What seems to be wrong here ?
Do you have any idea why do I have such error ?
Regards,
EDIT : It seems that the file c:\gnosis_v2.00\DShowFilters\Filters\Subtitles\xy_vsfilter\src\thirdparty\boost_1_47_0\boost\cstdint.hpp defines the int32_t. For some reason the definition structor is failed in check line below
# if UINT_MAX == 0xffffffff
So the int32_t is never defined. If I define this data type manually, seems to overcome the problem and it compiles fine, but I am still curious why the heck this part is failed. It supposed this code is a tested and verified successfully !!!! Anyway I suspect the reason..... Because I am running my project (its still a 32-bit app) under an 64Bit Windows7 the int here is 64 bits length. In this case the boost library sould take care this situation. But now I am thinking that boost 1.47 is pretty old and maybe some bugs are living in there! What do you think ?
cyberbeing
20th June 2014, 13:00
Well as mentioned above, you should probably be using the vsfilter_rc branch which had a lot of project file updates along with support for VS2013. The latest Boost 1.55.0 is used in that branch. If it still fails, I can only suggest double checking your includes against our project files.
Bad come to worse, if you only require the functionality from the IDirectVobSub.h legacy interface, you don't necessarily need to include it from the xy-VSFilter project itself for it to function with xy-VSFilter. It's the same interface found in Guliverkli2 (VSFilter 2.39) (https://sourceforge.net/p/guliverkli2/code/HEAD/tree/src/filters/transform/vsfilter/IDirectVobSub.h) as well as shared by MPC-HC VSFilter (https://github.com/mpc-hc/mpc-hc/blob/master/src/filters/transform/VSFilter/IDirectVobSub.h), and neither of those projects have a Boost requirement in sts.h
sdancer75
24th June 2014, 17:04
Well as mentioned above, you should probably be using the vsfilter_rc branch which had a lot of project file updates along with support for VS2013. The latest Boost 1.55.0 is used in that branch. If it still fails, I can only suggest double checking your includes against our project files.
Bad come to worse, if you only require the functionality from the IDirectVobSub.h legacy interface, you don't necessarily need to include it from the xy-VSFilter project itself for it to function with xy-VSFilter. It's the same interface found in Guliverkli2 (VSFilter 2.39) (https://sourceforge.net/p/guliverkli2/code/HEAD/tree/src/filters/transform/vsfilter/IDirectVobSub.h) as well as shared by MPC-HC VSFilter (https://github.com/mpc-hc/mpc-hc/blob/master/src/filters/transform/VSFilter/IDirectVobSub.h), and neither of those projects have a Boost requirement in sts.h
Hi,
I am publishing my solution to help anyone that meets the same kind of problems. I am using the original boost library.....
#include "./DShowFilters/Filters/Subtitles/xy_vsfilter/src/thirdparty/boost_1_47_0/boost/cstdint.hpp"
#include "c:\Program Files\Microsoft SDKs\Windows\v7.0\Samples\multimedia\directshow\baseclasses\wxdebug.h"
using namespace boost;
#include "./DShowFilters/Filters/Subtitles/xy_vsfilter/src/subtitles/flyweight_base_types.h"
#include "./DShowFilters/Filters/Subtitles/xy_vsfilter/src/filters/transform/vsfilter/IDirectVobSub.h"
To use the IVobInterface
//**************** Declarations ******************************************
// {93A22E7A-5091-45EF-BA61-6DA26156A5D0}
DEFINE_GUID(CLSID_VSFilter,
0x93A22E7A, 0x5091, 0x45EF, 0xBA, 0x61, 0x6D, 0xA2, 0x61, 0x56, 0xA5, 0xD0);
IDirectVobSub *m_pDirectVobSub;
//**************** 3-Step Implementation code ******************************
//----------------------------------------------------------------------------------------
//(1). Initialization
//----------------------------------------------------------------------------------------
//VS Filter for subtitling, add filter to the graph
m_pVSFilter = AddFilter("VS Filter",CLSID_VSFilter);
if (m_pVSFilter == NULL){
ReportError(_T("Failed to initialize the filter (VS Filter)."),hr);
AMLOGINFO(_T("Failed to initialize the filter (VS Filter) %s."),GetErrorCode(hr) );
return FALSE;
}
m_pVSFilter->QueryInterface(IID_IDirectVobSub, (void**) &m_pDirectVobSub);
//----------------------------------------------------------------------------------------
//(2). Process
//----------------------------------------------------------------------------------------
//..... do the job (add your custom code here using m_pDirectVobSub ptr )..........
//----------------------------------------------------------------------------------------
//(3). Clean up
//----------------------------------------------------------------------------------------
//release interface, else you get mem errors.
if (m_pVSFilter) {
m_pVSFilter->Release();
m_pVSFilter = NULL;
}
sdancer75
28th June 2014, 19:44
Hi,
I finally did it and now it works. I spend almost two days trying to find out, why my app crashed everytime I tried to load a *.srt file.
Everytime I tried to load a *.srt ascii encoded file, the code below crashed (actually the app, just died silently in debug mode)
if (m_pDirectVobSub != NULL){
hr = m_pDirectVobSub->put_FileName(m_wcSubTitleFileName);
}
On the other side, when I tried to load the same file but encoded in a unicode (UTF-8 without BOM) scheme, it worked just fine.
Do you know if I should adjust something before I try to load the file to make it work also in ascii encoding ?
Under the graphstudionext, the filter works fine in either way (ascii and unicode).
Regards,
cyberbeing
30th June 2014, 06:25
Below is an excerpt of what MPC-BE uses (https://github.com/jeeb/mpc-be/blob/master/src/apps/mplayerc/MainFrm.cpp#L5748), and it seems to work fine loading both UTF-8 and ASCII encoded subtitles into xy-VSFilter.
IBaseFilter* CMainFrame::GetVSFilter()
{
IBaseFilter* _pDVS = NULL;
BeginEnumFilters(m_pGB, pEF, pBF) {
if (CComQIPtr<IDirectVobSub> pDVS = pBF) {
_pDVS = pBF;
break;
}
}
EndEnumFilters;
return _pDVS;
}
if (bIsValidSubExtAll && m_iMediaLoadState == MLS_LOADED && (m_pCAP || b_UseVSFilter)) {
POSITION pos = sl.GetHeadPosition();
while (pos) {
CString fname = sl.GetNext(pos);
BOOL b_SubLoaded = FALSE;
if (b_UseVSFilter) {
CComQIPtr<IDirectVobSub> pDVS = GetVSFilter();
if (pDVS && SUCCEEDED(pDVS->put_FileName((LPWSTR)(LPCWSTR)fname))) {
pDVS->put_SelectedLanguage(0);
pDVS->put_HideSubtitles(true);
pDVS->put_HideSubtitles(false);
b_SubLoaded = TRUE;
}
}
}
return;
}
If your ASCII subtitle file can be loaded manually without issue via Main -> Open... in VSFilter settings, there should be no functional difference when using put_FileName assuming the string is being passed correctly.
ahaha2013
1st July 2014, 09:16
It can see nothing with potplayer+evr...
sdancer75
1st July 2014, 12:49
Below is an excerpt of what MPC-BE uses (https://github.com/jeeb/mpc-be/blob/master/src/apps/mplayerc/MainFrm.cpp#L5748), and it seems to work fine loading both UTF-8 and ASCII encoded subtitles into xy-VSFilter.
IBaseFilter* CMainFrame::GetVSFilter()
{
IBaseFilter* _pDVS = NULL;
BeginEnumFilters(m_pGB, pEF, pBF) {
if (CComQIPtr<IDirectVobSub> pDVS = pBF) {
_pDVS = pBF;
break;
}
}
EndEnumFilters;
return _pDVS;
}
if (bIsValidSubExtAll && m_iMediaLoadState == MLS_LOADED && (m_pCAP || b_UseVSFilter)) {
POSITION pos = sl.GetHeadPosition();
while (pos) {
CString fname = sl.GetNext(pos);
BOOL b_SubLoaded = FALSE;
if (b_UseVSFilter) {
CComQIPtr<IDirectVobSub> pDVS = GetVSFilter();
if (pDVS && SUCCEEDED(pDVS->put_FileName((LPWSTR)(LPCWSTR)fname))) {
pDVS->put_SelectedLanguage(0);
pDVS->put_HideSubtitles(true);
pDVS->put_HideSubtitles(false);
b_SubLoaded = TRUE;
}
}
}
return;
}
If your ASCII subtitle file can be loaded manually without issue via Main -> Open... in VSFilter settings, there should be no functional difference when using put_FileName assuming the string is being passed correctly.
Hi,
Thank you for your reply. The file can be loaded without issues via Main->Open in VSFilter, that's why it drives me crazy this problem.
The code used MPC-BE does not seems to work either, it even does not compile since it can not convert CString to LPCWSTR (projects does not run using unicode char set) at line
(LPWSTR)(LPCWSTR)fname
Anyway, I will search deep in the code to find out why....
cyberbeing
1st July 2014, 17:38
It can see nothing with potplayer+evr...
Potplayer EVR does not support XySubFilter, so you'd need to use madVR.
If you instead wanted to use xy-VSFilter (VSFilter.dll) with EVR in Potplayer, I believe you need to add it to Filter Control -> Global Filter Priority as Prefer, disable the PotPlayer built-in subtitle renderer, and disable the PotPlayer video post-processing filter.
sdancer75
2nd July 2014, 07:53
Hi,
Thank you for your reply. The file can be loaded without issues via Main->Open in VSFilter, that's why it drives me crazy this problem.
The code used MPC-BE does not seems to work either, it even does not compile since it can not convert CString to LPCWSTR (projects does not run using unicode char set) at line
(LPWSTR)(LPCWSTR)fname
Anyway, I will search deep in the code to find out why....
I finally decided that this is a bug. I created a new win32 project with clean code and the behavior its the same.
I tested an older version "xy-VSFilter 3.0.0.63 -=Stable Build=-" and it works just fine. I dont have time to debug the vsfilter to fix it, so I will stay temporarily with the older version.
I am attaching the project as well as the filters used (LavFilters and VSFilter v 3.0.0.211) for debugging purposes.
http://speedy.sh/PPJFD/DShow-Filters.zip
------------------------------------------------------------------------------------
//*************************************************************************************************
// SubtitleTest.cpp : Defines the entry point for the console application.
//
//Copyright (c) George Papaioannou, Greece 2014
//
//
// DirectShow Example using VSFiler v 3.0.0.211
//
// Problem : The application crashed silently when ascii encoded *.srt file is used for subtitles
// Application works just fine when a unicode encoded *.srt file is used instead.
//*************************************************************************************************
#include "stdafx.h"
#include <afx.h>
#include <dshow.h>
#include <D3d9.h>
#include <initguid.h>
#include <atlbase.h>
#include <string>
#include <assert.h>
//********************* VobSub ******************************************************************
#include "../DShowFilters/Filters/Subtitles/xy_vsfilter/src/thirdparty/boost_1_47_0/boost/cstdint.hpp"
#include "c:\Program Files\Microsoft SDKs\Windows\v7.0\Samples\multimedia\directshow\baseclasses\wxdebug.h"
using namespace boost;
#include "../DShowFilters/Filters/Subtitles/xy_vsfilter/src/subtitles/flyweight_base_types.h"
#include "../DShowFilters/Filters/Subtitles/xy_vsfilter/src/filters/transform/vsfilter/IDirectVobSub.h"
static const IID IID_IDirectVobSub =
{ 0xEBE1FB08, 0x3957, 0x47CA, { 0xAF, 0x13, 0x58, 0x27, 0xE5, 0x44, 0x2E, 0x56 } };
DEFINE_GUID(CLSID_VSFilter,
0x93A22E7A, 0x5091, 0x45EF, 0xBA, 0x61, 0x6D, 0xA2, 0x61, 0x56, 0xA5, 0xD0);
//*************************************************************************************************
//{EE30215D-164F-4A92-A4EB-9D4C13390F9F}
DEFINE_GUID(CLSID_LAVSplitter,
0xEE30215D, 0x164F, 0x4A92, 0xA4, 0xEB, 0x9D, 0x4C, 0x13, 0x39, 0x0F, 0x9F);
#pragma comment( lib, "strmiids.lib" )
#pragma comment( lib, "Strmbasd.lib" )
#pragma comment( lib, "Quartz.lib" )
#pragma comment( lib, "d3d9.lib" )
#pragma comment( lib, "d3dx9.lib" )
//************** Global Variables **********************
IGraphBuilder *pGraph = NULL; // Graph builder interface
IMediaControl *pControl = NULL; // Media control interface
IMediaEvent *pEvent = NULL; // Media event interface
IBaseFilter *pVsFilter = NULL;
IDirectVobSub *pDirectVobSub = NULL;
IBaseFilter *pLavSplitter = NULL;
int _tmain(int argc, _TCHAR* argv[])
{
HRESULT hr;
long evCode;
// Initialize the COM library.
hr = CoInitializeEx(NULL, COINIT_MULTITHREADED);
if (FAILED(hr))
{
goto EndApp;
}
// Create the Filter Graph Manager and query for interfaces.
hr = CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,IID_IGraphBuilder, (void **)&pGraph);
if (FAILED(hr)) // FAILED is a macro that tests the return value
{
goto EndApp;
}
// Use IGraphBuilder::QueryInterface (inherited from IUnknown)
// to get the IMediaControl interface.
hr = pGraph->QueryInterface(IID_IMediaControl, (void **)&pControl);
if (FAILED(hr))
{
goto EndApp;
}
// And get the Media Event interface, too.
hr = pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent);
if (FAILED(hr))
{
goto EndApp;
}
hr = CoCreateInstance(CLSID_LAVSplitter, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void**) &pLavSplitter);
if (SUCCEEDED(hr))
{
hr = pGraph->AddFilter(pLavSplitter, L"LAV Splitter Source");
} else {
goto EndApp;
}
hr = CoCreateInstance(CLSID_VSFilter, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void**) &pVsFilter);
if (SUCCEEDED(hr)) {
hr = pGraph->AddFilter(pVsFilter, L"VSFilter");
hr = pVsFilter->QueryInterface(IID_IDirectVobSub, (void **)&pDirectVobSub);
} else {
goto EndApp;
}
hr = pGraph->RenderFile(L"C:\\GOODVIDEO.AVI", NULL);
hr = pDirectVobSub->put_FileName(L"C:\\subtitle_ascii.srt"); // <---- App crashes silently when using ascii encoded srt file !!
if (SUCCEEDED(hr)) {
// Run the graph.
hr = pControl->Run();
if (SUCCEEDED(hr))
{
// Wait for completion.
pEvent->WaitForCompletion(INFINITE, &evCode);
if (evCode != S_OK) {
printf("Movie is stopped by the user !");
}
// Note: Do not use INFINITE in a real application
// because it can block indefinitely.
}
// And stop the filter graph.
hr = pControl->Stop();
}
EndApp:
if (pLavSplitter)
pLavSplitter->Release();
if (pDirectVobSub)
pDirectVobSub->Release();
if (pVsFilter)
pVsFilter->Release();
if (pControl)
pControl->Release();
if (pEvent)
pEvent->Release();
if (pGraph)
pGraph->Release();
CoUninitialize();
return 0;
}
sdancer75
2nd July 2014, 11:36
Ok another issue now...... It supposed it was fixed on Issue 92
https://code.google.com/p/xy-vsfilter/issues/detail?id=92&can=1
put_HideTrayIcon(TRUE) does not seem to hide the tray icon. It just marks the check box, but if you dont click "apply" or "ok" in page properties, it does nothing.
I can not use "apply" under a c++ code, so how can I hide the tray icon immediately when I call put_HideTrayIcon(TRUE) ?
Regards,
cyberbeing
2nd July 2014, 22:02
sdancer75, could you also test these issues against a build from the vsfilter_rc (https://github.com/Cyberbeing/xy-VSFilter/tree/vsfilter_rc) xy-VSFilter branch, as well as MPC-HC VSFilter (http://nightly.mpc-hc.org) to see if it's also reproducible?
cyberbeing
3rd July 2014, 07:29
...well I can't actually seem to reproduce this with your SubtitleTest.zip (https://code.google.com/p/xy-vsfilter/issues/detail?id=190#c1) sample project.
I did update the includes and project for VS2010 though.
Removed the "#pragma comment (lib" lines.
Added Linker -> Input -> Additional Dependencies, strmbaseR.lib; strmiids.lib; quartz.lib; d3d9.lib; d3dx9.lib
Added library directories for Microsoft DirectX SDK (June 2010) and xy-VSFilter Baseclasses (strmbaseR.lib).
Changed explicit wxdebug.h path to #include <wxdebug.h>
Added include directory, \xy_vsfilter\src\filters\BaseClasses
Changed the test files to "C:\\test\\test.mkv" & "C:\\test\\subtitle.srt"
Removed "using namespace boost;" since it was causing a compiler error with sts.h from the master branch (3.0.0.211 + Boost 1.47).
Here is the resulting VS2010 binary (both master & vsfilter_rc branches) of your test project + test files which seems to function without issue:
https://www.mediafire.com/?0jkh6hyaz6eo20o
Since you opened Issue #190 on our bug tracker, let's continue discussion there.
sdancer75
3rd July 2014, 08:54
sdancer75, could you also test these issues against a build from the vsfilter_rc (https://github.com/Cyberbeing/xy-VSFilter/tree/vsfilter_rc) xy-VSFilter branch, as well as MPC-HC VSFilter (http://nightly.mpc-hc.org) to see if it's also reproducible?
I will give it a try !
sdancer75
3rd July 2014, 09:04
...well I can't actually seem to reproduce this with your SubtitleTest.zip (https://code.google.com/p/xy-vsfilter/issues/detail?id=190#c1) sample project.
I did update the includes and project for VS2010 though.
Removed the "#pragma comment (lib" lines.
Added Linker -> Input -> Additional Dependencies, strmbaseR.lib; strmiids.lib; quartz.lib; d3d9.lib; d3dx9.lib
Added library directories for Microsoft DirectX SDK (June 2010) and xy-VSFilter Baseclasses (strmbaseR.lib).
Changed explicit wxdebug.h path to #include <wxdebug.h>
Added include directory, \xy_vsfilter\src\filters\BaseClasses
Changed the test files to "C:\\test\\test.mkv" & "C:\\test\\subtitle.srt"
Removed "using namespace boost;" since it was causing a compiler error with sts.h from the master branch (3.0.0.211 + Boost 1.47).
Here is the resulting VS2010 binary (both master & vsfilter_rc branches) of your test project + test files which seems to function without issue:
https://www.mediafire.com/?0jkh6hyaz6eo20o
Since you opened Issue #190 on our bug tracker, let's continue discussion there.
Well..... I registered again the supposed buggy VSFilter 3.0.0.211 and it worked like charm ......
I will try to recompile the code following your steps and I will let you know. Did you also checked the issue with the system tray icon ?
sdancer75
3rd July 2014, 09:56
Removed "using namespace boost;" since it was causing a compiler error with sts.h from the master branch (3.0.0.211 + Boost 1.47).
If you removed "using namespace boost;" how did you resolved the errors like :
>c:\gnosis_v2.00\dshowfilters\filters\subtitles\xy_vsfilter\src\subtitles\flyweight_base_types.h(116) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\gnosis_v2.00\dshowfilters\filters\subtitles\xy_vsfilter\src\subtitles\flyweight_base_types.h(116) : error C2143: syntax error : missing ';' before '*'
1>c:\gnosis_v2.00\dshowfilters\filters\subtitles\xy_vsfilter\src\subtitles\flyweight_base_types.h(116) : error C2065: 'tmp' : undeclared identifier
1>c:\gnosis_v2.00\dshowfilters\filters\subtitles\xy_vsfilter\src\subtitles\flyweight_base_types.h(116) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\gnosis_v2.00\dshowfilters\filters\subtitles\xy_vsfilter\src\subtitles\flyweight_base_types.h(116) : error C2061: syntax error : identifier 'int32_t'
1>c:\gnosis_v2.00\dshowfilters\filters\subtitles\xy_vsfilter\src\subtitles\flyweight_base_types.h(118) : error C2065: 'tmp' : undeclared identifier
1>c:\gnosis_v2.00\dshowfilters\filters\subtitles\xy_vsfilter\src\subtitles\flyweight_base_types.h(120) : error C2065: 'tmp' : undeclared identifier
cyberbeing
3rd July 2014, 09:56
put_HideTrayIcon(TRUE)
The api function called put_HideTrayIcon only exists in old depreciated versions of the IDirectVobSubXy.h api, so I wouldn't recommend using it. At some point before 3.0.0.211, IDirectVobSubXy.h and its related settings were completely refactored.
I did a quick test with pDirectVobSubXy->XySetBool(BOOL_HIDE_TRAY_ICON, true) using IDirectVobSubXy.h from the master branch, and it seems to function as expected. Here is another binary of your test project which uses IDirectVobSubXy.h to hide the tray icon, in addition to loading the subtitle file with IDirectVobSub.h as in the above linked build: https://www.mediafire.com/?hxc21433b3mayl7
#include "..\xy_vsfilter\src\filters\transform\vsfilter\IDirectVobSubXy.h"
static const IID IID_IDirectVobSubXy =
{ 0x85E5D6F9, 0xBEFB, 0x4E01, { 0xB0, 0x47, 0x75, 0x83, 0x59, 0xCD, 0xF9, 0xAB } };
IDirectVobSubXy *pDirectVobSubXy = NULL;
hr = pVsFilter->QueryInterface(IID_IDirectVobSubXy, (void **)&pDirectVobSubXy);
using namespace DirectVobSubXyOptions;
hr = pDirectVobSubXy->XySetBool(BOOL_HIDE_TRAY_ICON, true);
hr = pGraph->RenderFile(L"C:\\test\\test.mkv", NULL);
Note: You'll need to move the includes from BaseVideoFilter.cpp to BaseVideoFilter.h for it to compile without error.
If you removed "using namespace boost;" how did you resolved the errors like
Maybe boost behaves differently with older Visual Studio? It seems like you were using VC9? One thing I did notice, was that using the vsfilter_rc branch (Boost 1.55.0), it would compile just fine with or without "using namespace boost;". I wouldn't worry much about it, just use whatever works.
sdancer75
3rd July 2014, 10:33
The api function called put_HideTrayIcon only exists in old depreciated versions of the IDirectVobSubXy.h api, so I wouldn't recommend using it. At some point before 3.0.0.211, IDirectVobSubXy.h and its related settings were completely refactored.
I did a quick test with pDirectVobSubXy->XySetBool(BOOL_HIDE_TRAY_ICON, true) using IDirectVobSubXy.h from the master branch, and it seems to function as expected. Here is another binary of your test project which uses IDirectVobSubXy.h to hide the tray icon, in addition to loading the subtitle file with IDirectVobSub.h as in the above linked build: https://www.mediafire.com/?hxc21433b3mayl7
#include "..\xy_vsfilter\src\filters\transform\vsfilter\IDirectVobSubXy.h"
static const IID IID_IDirectVobSubXy =
{ 0x85E5D6F9, 0xBEFB, 0x4E01, { 0xB0, 0x47, 0x75, 0x83, 0x59, 0xCD, 0xF9, 0xAB } };
IDirectVobSubXy *pDirectVobSubXy = NULL;
hr = pVsFilter->QueryInterface(IID_IDirectVobSubXy, (void **)&pDirectVobSubXy);
using namespace DirectVobSubXyOptions;
hr = pDirectVobSubXy->XySetBool(BOOL_HIDE_TRAY_ICON, true);
hr = pGraph->RenderFile(L"C:\\test\\test.mkv", NULL);
Note: You'll need to move the includes from BaseVideoFilter.cpp to BaseVideoFilter.h for it to compile without error.
Maybe boost behaves differently with older Visual Studio? It seems like you were using VC9? One thing I did notice, was that using the vsfilter_rc branch (Boost 1.55.0), it would compile just fine with or without "using namespace boost;". I wouldn't worry much about it, just use whatever works.
Ok.... Problem found !!!!!!! Its almost ridiculous that I spend four days for that stupid thing.
if *.srt subtitles containts non-latin characters (and of course non standard ascii chars, ie greeks in my case) the app crashes.
Replace your subtitles.srt with the one I am attaching in this post, and enjoy the result. The filter in this case should return an E_FAIL, FALSE or something to manage the error...
Mysteriously, that is not happening when using the property pages.
cyberbeing
3rd July 2014, 10:59
Hmm, I wonder if that's really it. I did try it with a Cyrillic (Windows-1251) encoded subtitle before I initially uploaded the binary, and it seemed fine. Though I am running Windows with a US-English locale, which obviously will render non-English ASCII encoded subtitles as gibberish. Maybe your issue is only triggered when using a particular Windows locale? I guess I'll see once your subtitle.zip attachment is approved.
Edit: While awaiting your attachment approval, I tested a Greek (Windows-1252) encoded subtitle with matching Greek non-unicode Windows locale, and everything seemed fine (subtitles displayed in Greek, no crash). There must be something special about the subtitle file your are testing, like an invalid unicode character mixed in somewhere. Have you been testing with a font which natively supports the Greek codepage?
sdancer75
3rd July 2014, 12:09
Hmm, I wonder if that's really it. I did try it with a Cyrillic (Windows-1251) encoded subtitle before I initially uploaded the binary, and it seemed fine. Though I am running Windows with a US-English locale, which obviously will render non-English ASCII encoded subtitles as gibberish. Maybe it's somehow locale related? I guess I'll see once your subtitle.zip attachment is approved.
Edit: While awaiting your attachment approval, I tested a Greek (Windows-1252) encoded subtitle with matching Greek non-unicode Windows locale, and everything seemed fine... There must be something special about the subtitle file your are testing, like an invalid unicode character mixed in somewhere. Have you been testing with a font which natively supports the Greek codepage?
Hi,
Now I am working with the latest version 3.0.0.211, with all issues solved.
I can confirm that changing the country, local and regional settings to US egnlish ( now I see greek chars rendered as gibberish as you correctly described) , the problem still exists. So, I think its a windows related problem. I own an original OEM Windows7 64Bit Greek Home Premium version updated to SP1.
Thank you for your time.
Best Regards,
ahaha2013
8th July 2014, 06:02
It is a time to release a new version?:thanks:
ahaha2013
9th July 2014, 17:26
The srt pre-languages can't not work. Why? How?
I have set the pre-lang in the lav spiliter.
http://i1.tietuku.com/fe65ced99f301158.png
I use mpc(1.7.6.30) + lavfiters(0.62) + vsfilter.dll(3.0.0.300 git 6c0c23a)
--
Edit
--
There were two file:
How To Train Your Dragon.eng.srt
and
How To Train Your Dragon.srt
What I wanted was it can auto load *.eng.srt.
Superb
10th July 2014, 00:24
If I'm not mistaken, LAV Splitter isn't the one loading the external srt files, so your configuration there is quite useless.
Maybe look at the "Player" page under MPC-HC's options. There you can try and set the subtitle auto loading to "eng abc" (without the quotes; with a space, not a comma).
I'm writing "maybe" because I'm not sure if it affects the external VSFilter you're using.
Mystery Keeper
12th July 2014, 19:13
Could you please make a subtitles overlay filter for VapourSynth (http://forum.doom9.org/showthread.php?t=165771)?
sneaker_ger
12th July 2014, 19:19
Just to make sure: you know about AssVapour (http://www.vapoursynth.com/doc/plugins/assvapour.html)?
Mystery Keeper
12th July 2014, 22:15
Of course I do. But ASS is not the only subtitles format around. I recently needed to overlay VobSub.
sdancer75
15th July 2014, 14:28
...It me again :-)
Another issue with xy-vsfilter-3.0.0.211....
Trying to load a *.srt file that its extenstion is written with uppercase letters (ie Subtitles.SRT) using the method put_FileName it fails, returing to the caller with the E_FAIL code.
I can confirm that the same it is happening with the page properties using any graph editor like the GraphStudioNext that I am using.
Regards,
[ReX]
15th July 2014, 20:41
...It me again :-)
Another issue with xy-vsfilter-3.0.0.211....
Trying to load a *.srt file that its extenstion is written with uppercase letters (ie Subtitles.SRT) using the method put_FileName it fails, returing to the caller with the E_FAIL code.
I can confirm that the same it is happening with the page properties using any graph editor like the GraphStudioNext that I am using.
Regards,
It's a simple fix (https://github.com/Cyberbeing/xy-VSFilter/commit/bf88321566b4306d0a38275cb8cc2d9ebe799811).
sdancer75
16th July 2014, 08:11
;1686949']It's a simple fix (https://github.com/Cyberbeing/xy-VSFilter/commit/bf88321566b4306d0a38275cb8cc2d9ebe799811).
Thank you,
Since I didn't want to re-compile the filter, I just changed my code, to lowercase the filenames.
I just mentioned the issue to be fixed in the next release (beside the fact that I lost almost 4 hours of debugging why the heck the function returned E_FAIL).
Best Regards,
wanezhiling
19th July 2014, 11:33
https://www.sendspace.com/file/tb7erh
XySubFilter_3.1.0.697_x86_BETA2, default setting
madVR 0.87.10, default setting
Can not show the sub with original 100% window size.
cyberbeing
19th July 2014, 11:57
You are likely experiencing madVR issue #205 (http://bugs.madshi.net/view.php?id=205) which only seems to occur with mod2 video when using madVR >= 0.87.0 with certain settings. Please check the madVR setting workarounds posted in that issue (disabling optimize subtitle quality for performance, or enabling debanding), and also EVR-CP. This isn't a bug with XySubFilter itself.
wanezhiling
19th July 2014, 14:01
Please check the madVR setting workarounds posted in that issue (disabling optimize subtitle quality for performance, or enabling debanding), and also EVR-CP.
That's it!
Thanks!
GCRaistlin
20th July 2014, 15:12
How do I make XySubFilter to load automatically while playing a DVD? MPC-HC 1.7.6.102, XySubFilter 3.1.0.697.
cyberbeing
20th July 2014, 17:36
You could set it to 'Always Load' in settings, but it cannot be used to render subtitles directly from DVDs being played via DVD Navigator. You'll need to use LAV Video or some other DVD Video decoder if you require standard DVD playback subtitle rendering.
Though if you open the VOB files on the DVD directly, xy-VSFilter/XySubFilter should be able to display the subtitles using MPC-BE's internal MPEG-2 splitter. You must use MPC-BE, since both MPC-HC and LAV Splitter are currently broken for this purpose. LAVSplitter outputs an incorrect VOBSUB palette to VSFilter, while MPC-HC always seems to hijack internal VOBSUB subtitle pin with NullTextRenderer.
GCRaistlin
20th July 2014, 18:24
You could set it to 'Always Load' in settings, but it cannot be used to render subtitles directly from DVDs being played via DVD Navigator.
I need XySubFilter to render external subtitles while playing a DVD. It is loaded if "Always Load" is selected but works in a buggy way: subtitles are displayed at the wrong time (all is OK if the same subtitles are loaded via File | Load subtitle...) and don't recognize time jumps (if I move the time elevator to the begin of the movie subtitles are just displayed further, not from the beginning).
You'll need to use LAV Video or some other DVD Video decoder if you require standard DVD playback subtitle rendering.
Isn't LAV Video being used to play DVDs? I believe it is. I've got its icon in the system tray while playing a DVD.
both MPC-HC and LAV Splitter are currently broken for this purpose.
Are their authors aware of these issues?
cyberbeing
20th July 2014, 22:28
I need XySubFilter to render external subtitles while playing a DVD. It is loaded if "Always Load" is selected but works in a buggy way: subtitles are displayed at the wrong time (all is OK if the same subtitles are loaded via File | Load subtitle...) and don't recognize time jumps (if I move the time elevator to the begin of the movie subtitles are just displayed further, not from the beginning).
How are you loading the subtitles into XySubFilter? 'Properties | Open...' ?
When you say 'File | Load subtitle...' are you referring to using the MPC-HC ISR with XySubFilter disabled, or MPC-BE with XySubFilter active?
Taken at face value, I'm not sure what can be done about that when the DVD has adverts and menus before the main title. You'd probably just need to shift the timings of the external subtitle to compensate for the discrepancy. Though if it doesn't work you'd expect when loading external subtitles with actual DVDs, I'd say just don't use XySubFilter for that particular use-case.
Isn't LAV Video being used to play DVDs? I believe it is. I've got its icon in the system tray while playing a DVD.
LAV Video has a built-in subtitle renderer for DVD subtitles, but since you wanted to load external subtitles, that doesn't matter.
Are their authors aware of these issues?
Probably not, as I only just now discovered both issues. Though if you were not attempting to load internal VOBSUB from MPEG2 VOB files, this wouldn't affect you.
GCRaistlin
21st July 2014, 13:56
How are you loading the subtitles into XySubFilter? 'Properties | Open...' ?
Yes.
When you say 'File | Load subtitle...' are you referring to using the MPC-HC ISR with XySubFilter disabled?
Yes, it's about MPC-HC ISR. Actually, it is disabled in Options ("Use the built-in subtitle renderer" is unchecked) but works this way (not only with DVDs but with media files, too).
Taken at face value, I'm not sure what can be done about that when the DVD has adverts and menus before the main title.
The IFO with the movie I experience this issue on contains two PGCs. Maybe it's the cause.
cyberbeing
21st July 2014, 15:25
Yes, it's about MPC-HC ISR. Actually, it is disabled in Options ("Use the built-in subtitle renderer" is unchecked) but works this way (not only with DVDs but with media files, too).
That shouldn't be the case, unless you are using an old version of MPC-HC. That behavior of enabling the ISR on-the-fly when disabled in settings, with VSFilter already loaded, was removed in MPC-HC 1.7.5+ IIRC. Though I guess you are saying you had XySubFilter disabled in those instances, rather than idle.
nevcairiel
21st July 2014, 16:27
Probably not, as I only just now discovered both issues. Though if you were not attempting to load internal VOBSUB from MPEG2 VOB files, this wouldn't affect you.
.vob files don't have any palette at all, so LAV provides a default palette, since many renderers otherwise just used to output everything in black. How can this be incorrect?
You can accept the DVD type instead of the vobsub type if you want, which doesn't include any palette at all.
GCRaistlin
21st July 2014, 16:44
That shouldn't be the case, unless you are using an old version of MPC-HC. That behavior of enabling the ISR on-the-fly when disabled in settings, with VSFilter already loaded, was removed in MPC-HC 1.7.5+ IIRC. Though I guess you are saying you had XySubFilter disabled in those instances, rather than idle.
I'm using the latest build. So is there no reason now not to clear "Use the built-in subtitle renderer" checkbox - 'cause you may use ISR anyway as well as get VSFilter-like filters working?
GCRaistlin
21st July 2014, 16:47
Though I guess you are saying you had XySubFilter disabled in those instances, rather than idle.
"Disabled" means "added to External Filters list and set to Block"? No I didn't disable XySubFilter this way. It's just registered and none of its settings are changed from the default state.
cyberbeing
21st July 2014, 17:57
.vob files don't have any palette at all, so LAV provides a default palette, since many renderers otherwise just used to output everything in black. How can this be incorrect?
Only in the sense that the default palette from LAV produces extremely strange colors with DVD subtitles which originally had a colored palette.
LAV sends a palette of:
palette: 000000,e0e0e0,808080,202020,3333fa,1111bb,fa3333,bb1111,33fa33,11bb11,fafa33,bbbb11,fa33fa,bb11bb,33fafa,11bbbb
Which results in the following with VSFilter and MPC-HC ISR on a couple DVDs I tested:
http://i.imgbox.com/HRjE86ss.pnghttp://i.imgbox.com/VcxmrzJY.png
The first was originally Green Body / Black Border, while the second was originally Yellow Body / Black Border.
MPC-BE's MPEG-2 splitter appears to extract the orignal DVD palette from the IFO if present in the same directory as the VOB. LAV gaining a feature like this would probably be nice.
Though it seems the MPC-BE splitter does not function at all with xy-VSFilter when the IFO is missing. MPC-BE does send a default palette via "custom colors: on" in this case, but they don't set "palette:" which causes the header to be rejected. MPC-BE added special logic to handle this in their version of VSFilter though. We probably should patch in something similar, since "custom colors: on" being set results in "palette:" being ignored anyway.
You can accept the DVD type instead of the vobsub type if you want, which doesn't include any palette at all.
If you think this is the preferred solution, you should ask the MPC-HC devs to implement this.
I'm using the latest build. So is there no reason now not to clear "Use the built-in subtitle renderer" checkbox - 'cause you may use ISR anyway as well as get VSFilter-like filters working?
Not exactly.
"Disabled" means "added to External Filters list and set to Block"? No I didn't disable XySubFilter this way. It's just registered and none of its settings are changed from the default state.
By "Disabled" I only mean not active/loaded in the graph. If "use built-in subtitle renderer" is DISABLED, MPC-HC will only enable the ISR on-the-fly when VSFilter/XySubFilter is NOT Present in the graph. By default, when "Load when Needed" is set, VSFilter/XySubFilter will only be loaded into the graph when subtitles can be auto-loaded. If you set "Always Load", VSFilter/XySubFilter will always be loaded into the graph even when NO subtitles can be auto-loaded.
Asmodian
22nd July 2014, 23:41
Are there any known Issues with xySubFilter and 4K? I am having trouble with complex ass scripts and 4K and want to make sure there isn't a known issue before generating a bug report. :o
DarkSpace
23rd July 2014, 00:59
Are there any known Issues with xySubFilter and 4K? I am having trouble with complex ass scripts and 4K and want to make sure there isn't a known issue before generating a bug report. :o
I think it's simply a memory problem, since you mentioned that the ASS scripts are complex. I think that's also the reason that no new RC has been released yet (optimizing memory consumption for higher-resolution output), but I guess that someone else may know better about that.
cyberbeing
23rd July 2014, 01:09
Issues at 4K would probably include the risk of running out of memory, the default cache limit of 512MB possibly being too low to function effectively, and just general poor performance from the higher computation load of rendering objects at 4K with 8x8 supersampling.
You could try increasing the default cache MB limit, and then playing with the madVR CPU queue while monitoring the peak "Virtual Memory" usage with something like Process Explorer to ensure your media player is not coming close to the 32-bit process memory limit. Though keep in mind that the cache MB limit only controls the cache. Memory usage for scanline conversion and rasterization is automatic and cannot be controlled.
Though unless you have an extremely fast CPU, you may just be out of luck. Overall performance may just be too slow currently to handle the most intensive scripts @4K. Fansubbers nowadays are making some pretty crazy stuff with advanced frame-by-frame motion tracking, automated image to vector/clip tracing, lua scripted 3d transforms and effects, and so on, resulting in extremely complex line heavy scripts.
Asmodian
23rd July 2014, 03:42
Issues at 4K would probably include the risk of running out of memory, the default cache limit of 512MB possibly being too low to function effectively, and just general poor performance from the higher computation load of rendering objects at 4K with 8x8 supersampling.
You could try increasing the default cache MB limit, and then playing with the madVR CPU queue while monitoring the peak "Virtual Memory" usage with something like Process Explorer to ensure your media player is not coming close to the 32-bit process memory limit. Though keep in mind that the cache MB limit only controls the cache. Memory usage for scanline conversion and rasterization is automatic and cannot be controlled.
Thanks, you are both right.
I set LargeAddressAware on zplayer.exe and changed the cache from default -1 (511) to 1024; all issues went away. Zoom Player uses ~2.3GB of memory at most. :)
After these changes watching Process Explorer the memory usage jumps by ~600MB when the subs are being displayed.
On an i7 3770K @ 4.6 GHz no cores are over ~50% during the subs, but it is easy to see them on the CPU graph.
Interestingly running out of memory didn't result in a crash, instead the luma stalled while the chroma kept playing leading to an odd effect. It was slow and choppy too.
cyberbeing
23rd July 2014, 05:27
On an i7 3770K @ 4.6 GHz no cores are over ~50% during the subs, but it is easy to see them on the CPU graph.
You can't really judge load like that, since xy-VSFilter/XySubFilter are single-threaded, and Windows' thread-scheduling will bounce that single-thread around all cores rather evenly. If you had HT enabled on your i7-3770K (8-threads), then 12.5% CPU utilization by XySubFilter alone would be equivalent to 100% load. When this occurs for any significant duration, you'd expect to see madVR's Subtitle Queue start dropping.
Soukyuu
23rd July 2014, 11:57
I must say, I find it kind of scary seeing how I am still able to use my PC for gaming on medium settings, but it's not powerful enough for madvr video playback with subtitles.
Question: would the memory optimization for 4k mentioned before also affect lower resolutions? Or is it exclusively for higher resolutions?
edit: speaking of CPU load, in my case the load is never above 38% per core, yet on complex typesets the queue runs out. Unless I increase the LV1 cache. Would that be an efficiency issue (CPU/xy-subfilter)?
I don't know how libass handles caches, but they seem to be dynamic in size. Memory usage is lower but gets to the same level as madvr+xysubfilter on the complex parts.
cyberbeing
23rd July 2014, 17:48
First just a heads-up to everyone. The xy-VSFilter project has a bit of unknown status at moment, since the developer hasn't been responding to emails since April. Without receiving status updates that something was actively being worked these past few months, I'd consider the project on haitus until further notice.
Question: would the memory optimization for 4k mentioned before also affect lower resolutions? Or is it exclusively for higher resolutions?
I don't remember exactly what I mentioned before, but I'd expect memory optimizations to have a positive effect on all resolutions to some degree.
speaking of CPU load, in my case the load is never above 38% per core, yet on complex typesets the queue runs out. Unless I increase the LV1 cache. Would that be an efficiency issue (CPU/xy-subfilter)?
Well as mentioned above, you cannot judge load like that because the subtitle filter is single-threaded.
Single-threaded means you can never surpass the maximum CPU usage of a single core, even if Windows thread-scheduling shifts that load over multiple cores. Since you have a 4-core CPU, xy-VSFilter alone having 25% global CPU utilization is equivalent to maximum load. The obvious answer to improving efficiency on multi-core CPUs would of course be multi-threading support.
I don't know how libass handles caches, but they seem to be dynamic in size. Memory usage is lower but gets to the same level as madvr+xysubfilter on the complex parts.
Libass doesn't use 8x8 supersampling to perform anti-aliasing and sub-pixel positioning, so their objects are multiple orders of magnitude smaller = less memory & computation time. A few months back they also implemented their fast quad-tree rasterizer as well as added new caching mechanisms. Libass is currently much more suitable for rendering at 4K and beyond than XySubFilter is at the moment.
Asmodian
24th July 2014, 00:09
Well as mentioned above, you cannot judge load like that because the subtitle filter is single-threaded.
Single-threaded means you can never surpass the maximum CPU usage of a single core, even if Windows thread-scheduling shifts that load over multiple cores. Since you have a 4-core CPU, xy-VSFilter alone having 25% global CPU utilization is equivalent to maximum load. The obvious answer to improving efficiency on multi-core CPUs would of course be multi-threading support.
Both of us mentioned per core usage, does the thread bounce around fast enough that even watching the %usage on a per core basis wouldn't indicate that the filter was CPU bound? (e.g. I see eight cpu graphs on the 3770K, none of them above 50%)
Libass doesn't use 8x8 supersampling to perform anti-aliasing and sub-pixel positioning, so their objects are multiple orders of magnitude smaller = less memory & computation time. A few months back they also implemented their fast quad-tree rasterizer as well as added new caching mechanisms. Libass is currently much more suitable for rendering at 4K and beyond than XySubFilter is at the moment.
I did try changing this setting but even dropping it to None did not change the behavior.
cyberbeing
24th July 2014, 00:56
does the thread bounce around fast enough that even watching the %usage on a per core basis wouldn't indicate that the filter was CPU bound?
Yes it does. With madVR, context switching can occur nearly every 0.5 milliseconds under heavy load, which is the timer interval set with HPET. Tools which monitor CPU usage usually have a minimum update interval of 0.5 seconds, which is up to 1000x slower than these switches can occur.
The Process Explorer 'Threads' tab for your media player will allow you to visualize single-threaded CPU bound situations a bit better when you sort by CPU usage. When CPU bound, you'll see a thread with CPU usage equal to 100% / number_of_virtual_cores. (note for XySubFilter + madVR: XySubFilter's CPU usage will end up under the callstack of one of the madVR.ax threads)
I did try changing this setting but even dropping it to None did not change the behavior.
You've misunderstood the purpose of the subpixel positioning setting. It doesn't control anything but subpixel positioning accuracy used during rasterization. Scanline conversion occurs before that, and in VSFilter always requires supersampled 26.6 fixed point input. There is no way to fix that short of a major rewrite/replacement of VSFilter's scanline converter.
Asmodian
24th July 2014, 06:31
Ok thanks, I thought I was misunderstanding something. :)
I think CPU was ok as doubling the cache solved my issues but it is good to know watching the cpu graphs isn't enough.
xabregas
30th July 2014, 03:17
how can i use subtitles below videos with xysub? still no can do??
cyberbeing
30th July 2014, 07:32
how can i use subtitles below videos with xysub? still no can do??
Unfortunately this is still not possible, since it requires consumer support which neither madVR or MPC-HC have gotten around to adding yet. madshi still has it planned for madVR though, so it should definitely come eventually.
xabregas
30th July 2014, 12:44
Explain me what is consumer support? :eek:
It seems like something that came out from companies like sony when i asked why they dont have DTS support, and they said for me to check the DTS patterns website :rolleyes:
Well, guess i have to stick with MPC HC subtitle renderer, not that it bugs me and i know its not a major feature for the majority of madvr users as 2/3 of them dont use subtitles at all, but still is silly to see such a trivial option not being available.
Is it because the majority of 2.35 movies without black bars are piracy encodes and madvr wants to become legit? :sly:
ryrynz
30th July 2014, 13:06
Explain me what is consumer support? :eek:
He means it requires support from the renderer.
Well, guess i have to stick with MPC HC subtitle renderer, not that it bugs me and i know its not a major feature for the majority of madvr users as 2/3 of them dont use subtitles at all, but still is silly to see such a trivial option not being available.
Yes, just use another subtitle renderer for the time being.
As trivial as it might seem software authors have their own priorities, I suspect however it will be in the next major release of MadVR shortly thereafter.
Is it because the majority of 2.35 movies without black bars are piracy encodes and madvr wants to become legit? :sly:
It has nothing to do with the content at all.
clsid
30th July 2014, 15:28
Does anyone have any good samples where xy*filter performs much better than MPC-HC ISR / VSFilter?
cyberbeing
31st July 2014, 00:07
Does anyone have any good samples where xy*filter performs much better than MPC-HC ISR / VSFilter?
If your question is if xy-VSFilter is still faster than MPC-HC VSFilter, the answer is yes. Up to this point, MPC-HC has only merged in some of the most basic 'global' xy-VSFilter optimizations and caches, while ignoring the more specialized purpose stuff targeting certain tags and behaviors which can benefit heavy typesetting.
ahaha2013
1st August 2014, 16:28
when using xyvsfilter 3.0.0.211, dxv2 native (lav video dec) do not work...
why...
cyberbeing
1st August 2014, 23:32
when using xyvsfilter 3.0.0.211, dxv2 native (lav video dec) do not work...
why...
DXVA Native requires a direct connection between the video decoder and video renderer, so it cannot be used with VSFilter.dll which inserts itself between the two.
You'll need to use XySubFilter instead of xy-VSFilter if you wanted to use DXVA Native. Otherwise, you can use DXVA copy-back, CUVID, or Quicksync with xy-VSFilter.
andyvt
4th August 2014, 13:43
DXVA Native requires a direct connection between the video decoder and video renderer
Technically, I don't think this correct. Just something that we've come to believe based on observation.
It should be possible for a filter to sit b/w the decoder and renderer, it would need to support the interface & services (IMFGetService/ MR_VIDEO_RENDER_SERVICE/MR_VIDEO_ACCELERATION_SERVICE) a decoder uses to retrieve the Direct3D device and go get it from the renderer (using the same mechanism) to pass back when asked.
kasper93
4th August 2014, 14:30
And what's the point of that? Of course you can make "transparent" filter. But the idea is to modify video frame before it reaches video renderer. And to do that you need to "break" dxva pipeline. And for that purpose we have dxva "copy-back" which allow us to put another filter in between and be able to modify the frame.
Tapatalk 4 @ GT-I9300
andyvt
4th August 2014, 14:47
And what's the point of that? Of course you can make "transparent" filter. But the idea is to modify video frame before it reaches video renderer. And to do that you need to "break" dxva pipeline. And for that purpose we have dxva "copy-back" which allow us to put another filter in between and be able to modify the frame.
Tapatalk 4 @ GT-I9300
Putting a transform filter b/w the decoder and renderer doesn't have to "break" DXVA, we've just accepted that it does. I don't see why xy-VSFilter couldn't work with DXVA, it just doesn't.
As far as I can tell, if xy-VSFilter brokered the Direct3D device from the renderer (which is responsible for creating it) and the decoder it could work the same way it does now (albeit with DirectX surfaces instead of just frames in memory) and support DXVA. Essentially, it would be doing the work of a custom EVR Presenter (which responds to those calls to hand the Direct3D device back to the decoder and overlays subtitles on surfaces) without requiring application support.
octal9
6th August 2014, 04:54
what does the relative height setting in the styles section refer to? too bad to hear the programming genius behind what i believe is the best sub renderer in the business has gone awol - pray all is well......still hoping for a fix on the problem of windows freezing when i enter style settings in windows 7 64 bit, but what are you gonna do (this only happens in full screen - work-around of changing video player to windowed still works)? still love the hell out of this - makes viewing of subtitles a million times more pleasurable than any other renderer.......
cyberbeing
6th August 2014, 06:51
what does the relative height setting in the styles section refer to?
Unless you have a reason to use that test build, I'd recommend just sticking with Beta2. It was only something I (non-coder) hacked in myself, and I'm having doubts it was implemented properly, since it seems to be causing something like a 10% performance hit even when it shouldn't be active... Anyway, what it does is overrides/ignores the 'originalVideoSize' field reported by the consumer when the 'Global Default' (override) style is active. This way you can set your override styles just once, without worrying about the relative appearance changing when switching between videos of different resolutions.
still hoping for a fix on the problem of windows freezing when i enter style settings in windows 7 64 bit, but what are you gonna do (this only happens in full screen - work-around of changing video player to windowed still works)?
If this is the same thing I'm thinking of, this isn't really 'Windows freezing' problem, but rather madVR's Fullscreen Exclusive window claiming the "On Top" position, which can cause things like the Font selection dialog to get stuck behind the "exclusive window". You'd then become unable to exit the style editor or vsfilter properties, since it requires first closing the font selection dialog which cannot be accessed behind the exclusive window.
I'd consider this a madVR limitation/bug, since it offers no way to recover (exit FSE) via mouse input or otherwise by default. AFAIK, this same issue occurs with MPC-HC VSFilter, so I'd suggest just creating an entry on bug tracker and see if they can find a practical solution. If that fails, file a bug with madVR.
vivan
6th August 2014, 08:17
Unless you have a reason to use that test build, I'd recommend just sticking with Beta2. It was only something I (non-coder) hacked in myself, and I'm having doubts it was implemented properly, since it seems to be causing something like a 10% performance hit even when it shouldn't be active... Anyway, what it does is overrides/ignores the 'originalVideoSize' field reported by the consumer when the 'Global Default' (override) style is active. This way you can set your override styles just once, without worrying about the relative appearance changing when switching between videos of different resolutions.It works for borders and stuff, but not for font size. I figured that it's not ready yet... still, I want it badly :)
If this is the same thing I'm thinking of, this isn't really 'Windows freezing' problem, but rather madVR's Fullscreen Exclusive window claiming the "On Top" position, which can cause things like the Font selection dialog to get stuck behind the "exclusive window". You'd then become unable to exit the style editor or vsfilter properties, since it requires first closing the font selection dialog which cannot be accessed behind the exclusive window.Same thing happens if you just use "always on top" option.
I'm not sure if this is MPC-HC bug, because built-in subtitle renderer doesn't have this problem. However it's font selector has 1 layer/window less (Options -> Font vs Properties -> Styles -> Font). Actually I've never see any other filter with such number of windows (3). They have 2 windows at max, so it could be either MPC-HC problem (only 2 windows inherit "on top"), xy-subfilter (font selector doesn't inherit "on top") or even Windows one... I didn't really bothered me, though.
cyberbeing
6th August 2014, 09:51
It works for borders and stuff, but not for font size. I figured that it's not ready yet... still, I want it badly :)
Well at least to some degree, you still have the desired end result of relative font size being constant no matter the video resolution used. And that actually requires no change since this has always been VSFilter default behavior. That said, I was tempted to change this so we'd have something like 'true' pixel width/height font sizes, margins, borders, shadows, etc, with such an option. Though I couldn't for the life of me figure out what was causing the rather insane relative layout behavior VSFilter has with SRT, which did not seem to match up with the expectation for ASS layout at all. Maybe something the xy-dev would be willing to fix, if he returns.
Same thing happens if you just use "always on top" option.
I'm not sure if this is MPC-HC bug, because built-in subtitle renderer doesn't have this problem. However it's font selector has 1 layer/window less (Options -> Font vs Properties -> Styles -> Font). Actually I've never see any other filter with such number of windows (3). They have 2 windows at max, so it could be either MPC-HC problem (only 2 windows inherit "on top"), xy-subfilter (font selector doesn't inherit "on top") or even Windows one... I didn't really bothered me, though.
Well as mentioned above, AFAIK this behavior has always occurred with all forms of VSFilter.dll (Gabest/MPC-HC/MPC-BE/xy), since the code used for creating these windows is probably identical. MPC-HC ISR I would think is entirely different beast, since all windows it creates would fall under the context of the main MPC-HC GUI, with full control over the z-order and topmost behavior of child windows.
If someone else comes up for a fix for VSFilter itself, we could certainly merge it. I'm not very familiar with how the whole Windows topmost and z-order behavior is supposed to work in this case, expecially when both MPC-HC (setting) and madVR (FSE) themselves enforce such behavior on their own windows, and cause this issue with vsfilter child windows which function nominally otherwise. This being some kind of Windows bug or unintended behavior in the DWM also seems within the realm of possibility. There was even a hotfix (http://support.microsoft.com/kb/2587473) a few years ago off the LDR service branch for ontop behavior being broken on Windows 7 SP1 (RTM/GDR) out-of-box. I've always had this hotfix applied myself though, and I still run into buggy and strange on-top behavior with other applications, so who knows what it actually fixed or if it made something else worse.
octal9
6th August 2014, 18:59
It works for borders and stuff, but not for font size. I figured that it's not ready yet... still, I want it badly :)
Same thing happens if you just use "always on top" option.
I'm not sure if this is MPC-HC bug, because built-in subtitle renderer doesn't have this problem. However it's font selector has 1 layer/window less (Options -> Font vs Properties -> Styles -> Font). Actually I've never see any other filter with such number of windows (3). They have 2 windows at max, so it could be either MPC-HC problem (only 2 windows inherit "on top"), xy-subfilter (font selector doesn't inherit "on top") or even Windows one... I didn't really bothered me, though.
i actually found a much easier workaround for this where you don't have to switch to windowed mode to prevent freeze (works for mpc-be and mpc-hc, not sure about potplayer, zoom, etc.) - first right click, go down to "view", go down to "on top", and then switch to "while playing" - works like a charm! also, this bug occurs in both fullscreen exclusive and windowed mode in madvr.........much thanks to cyberbeing!
vivan
7th August 2014, 18:19
Well at least to some degree, you still have the desired end result of relative font size being constant no matter the video resolution used.Okay, I found out why I have issues. It doesn't discard script resolution (when "Force Default" option is set).
For example, videoBlankClip (500, 1920, 1080, color=$222222)
With 1080p script resolution font size is small (http://i.imgur.com/TZcCJ6W.png)
PlayResX: 1920
PlayResY: 1080
With 360p script resolution font size is huge (http://i.imgur.com/31Gyyz1.png)
PlayResX: 640
PlayResY: 360
(the rest of the script is default)
cyberbeing
7th August 2014, 23:06
Okay, I found out why I have issues. It doesn't discard script resolution (when "Force Default" option is set).
Yes, this is pretty much expected for ASS scripts since that size behavior is the basis of all existing typesetting. I actually looked into overriding PlayRes before I posted that other build, but I couldn't figure out a trivial way to do so in the part of the code I was modifying. When the xy-dev originally tried to implement this as well, he was scaling fontsize/border/shadow/spacing/margins directly within the script styles without touching PlayRes, and actually why I suspect this method was utterly broken on ASS scripts. I mentioned this to him before, but he never got around to fixing it before the release of Beta2, so it was reverted. I'll still keep this in mind for the future.
minaust
11th August 2014, 00:40
I'll still keep this in mind for the future.
Please do. I've got an icon on my desktop for a small C prog I wrote to do a little massaging to ASS scripts. One of the things it does is strip out PlayRes.
Tornado15550
22nd August 2014, 08:11
Is anyone having any issues displaying subtitles using XySubFilter on the latest MPC-HC nightlies?
cyberbeing
22nd August 2014, 10:35
Is anyone having any issues displaying subtitles using XySubFilter on the latest MPC-HC nightlies?
See: https://trac.mpc-hc.org/ticket/4767
MPC-HC accidentally broke the XySubFilter interface to EVR-CP while they were doing updates to the ISR backend.
madVR should still be fine, but I'd recommend just sticking with an older MPC-HC build until they get around to fixing it.
James Freeman
29th August 2014, 13:15
Pardon me, what are the benefits of this vs the built in MPC-HC one?
cyberbeing
29th August 2014, 18:43
Faster with heavy subtitle typesetting (i.e. anime fansubs), improved subtitle interface, matrix correction for BT.601->BT.709 subtitles (legacy VSFilter.dll limitation) required for correct video color matching, subtitle queue (madVR only), and gamma/gamut correction (madVR only), and various other compatibility improvements for .ass subtitles.
kasper93
29th August 2014, 22:20
improved subtitle interface - not really relavent for end user
subtitle queue - MPC-HC have subtitle queue for ages...
huhn
29th August 2014, 23:08
improved subtitle interface - not really relavent for end user
subtitle queue - MPC-HC have subtitle queue for ages...
but the ISR is not corrected by a 3D LUT and was in the past a lot slower has issue with some tags.
of cause the main benefits of this render is for styled subtitles and normal BD/dvd subs work totally fine with the ISR.
clsid
30th August 2014, 01:59
If you have any files that do not render correctly with the ISR, then please submit them to the bug tracker.
https://trac.mpc-hc.org/report/9
The performance of the ISR has improved a lot in the past months. Next nightly/stable is going to have several more performance improvements.
madshi could easily apply 3dluts and color corrections to the ISR ouput as well in a future version of madVR. Plus 3dluts isn't something that many people use. MPC-HC also already has some code for the new interface, so that might get used in the future if it provides any benefits.
cyberbeing
30th August 2014, 02:02
improved subtitle interface - not really relavent for end user
Is is relevant, since SubRenderInf allows functionality and improved integration which is not otherwise possible with the limitations of the ISubRender used by the MPC-HC ISR. I'm sure madshi could explain the specifics of this better than I can though. The new subtitle interface came into existence since he was dissatisfied with the capabilities of ISubRender. So at least as far as madVR support is concerned, native support of the new SubRenderIntf interface will always be considered an advantage.
subtitle queue - MPC-HC have subtitle queue for ages...
And MPC-HC that subtitle queue was also the source of problems for ages, whenever there were slowdowns. This is why it was one of the first things we removed from xy-VSFilter/XySubFilter. For renderers which pre-buffer video frames ahead like madVR, having a separate simple subpic pre-buffer in the subtitle renderer itself is rather redundant anyway. You'd really need to go a step further and implement an advanced lookahead+predictive caching for it really to be useful in such a situation.
The performance of the ISR has improved a lot in the past months. Next nightly/stable is going to have several more performance improvements.
I look forward to testing the upcoming round of improvements, since despite what you've said, there really hasn't been any significant improvements with heavy typesetting in the ISR since the initial round of xy inspired cache commits around a year or so ago. Either way, it's encouraging to see Underground78 continuing to work on closing the remaining gaps in performance. I hope he continues to push forward implementing the remaining low-hanging fruit / feature gaps from xy, and ultimately moves on to eventually tackling some of the performance issues vs recent Libass which we've yet to touch ourselves. The status of the xy-VSFilter developer has been rather unknown for months now, so if or when our project will continue is rather uncertain at the moment.
clsid
30th August 2014, 02:51
I would be really helpful if you could use your knowledge about the changes in xy*filter to compile a (short) list of the most important/beneficial fixes and improvements in the xy project. Preferably with sample files and links to the relevant commits. That could help speed up and streamline development on the MPC-HC side.
cyberbeing
30th August 2014, 03:04
Once the latest round of subtitle improvement commits from Underground78's personal branch are merged to MPC-HC master, I'd consider doing so once I have a chance to reassess performance. Judging from some of the commit names, he may have already discovered a couple of the most obvious ones. We'll have to wait and see what comes of it.
James Freeman
30th August 2014, 06:14
I see absolutely no difference between MPC-HT built-in and XY, the font style box looks the same,
the CPU usage is non existent, the rendering looks smooth with internal/external subs with both.
I'll stick with the built-in because for all I care it's exactly the same.
ryrynz
30th August 2014, 06:59
Would be nice to see one less program to be dependant on, if we can get that madVR interface set up in the ISR that would be great.
cyberbeing
30th August 2014, 18:04
...
For general use like you describe, that's pretty much to be expected. The only users who really require XySubFilter over MPC-HC ISR & Libass, are those who likely were already prior users or at the very least aware of xy-VSFilter prior to me creating this topic on Doom9 in 2013. For everyone else, there are some benefits especially for users of madVR, as well as some feature/functionality differences, but each user will need to decide for themselves if they are worthwhile it or not.
if we can get that madVR interface set up in the ISR that would be great.
I'd hope this eventually occurs as well, but at this point it seems rather doubtful. Even if MPC-HC ISR never supports it, there is a logical successor (not from us) supporting the madVR interface on the horizon in the next couple years, which will likely deem both MPC-HC ISR and XySubFilter obsolete unless a major modernization effort occurs. Such future talk is rather off-topic for this thread though.
kasper93
31st August 2014, 23:24
Little announcement: Latest MPC-HC nightly include recent performance changes. @cyberbeing: If you could provide samples that works "a lot" better with XySubFilter than with ISR. You can send them directly to me or open tickets on trac, thanks in advance.
huhn
1st September 2014, 00:03
Little announcement: Latest MPC-HC nightly include recent performance changes. @cyberbeing: If you could provide samples that works "a lot" better with XySubFilter than with ISR. You can send them directly to me or open tickets on trac, thanks in advance.
I will have a good look at it too. nice to see an very active development with an subtitle renderer.
cyberbeing
1st September 2014, 02:31
Latest MPC-HC nightly include recent performance changes.
Performed a few benchmarks on my i5-3570K @4.4Ghz below on a few old samples I had lying around with the new MPC-HC build. Later I'll need to take a look at some more recent releases. My general conclusion so far, is the latest MPC-HC build improves Outline & Vector Drawing performance close to xy-VSFilter, which is somewhat expected since that seemed to be the focus of this latest set of commits. Blur, BE, Clip performance, as well as general cache throughput & efficiency, still appear considerably faster with xy-VSFilter.
Other misc stuff which MPC-HC still seems to be missing:
Support for U+10000-U+10FFFF UTF-8
Support for floating point \clip and vector drawings
Floating-point BE scaling (for ISR)
Workaround to prevent subpixel gaps with \clip
Method for eliminating subpixel gaps between body & outline
Support for YCbCr Matrix tag
Support for P010 (for VSFilter)
Simple Blur6 + Bord4 (126 lines):
MPC-HC VSFilter 1.7.6.177: 32.83fps min | 94.58fps avg
MPC-HC VSFilter 1.7.6.211: 138.5fps min | 284.5fps avg
xy-VSFilter 3.0.0.305 CCCP: 148.1fps min | 317.9fps avg
Simple Blur6 + Bord4 (126 lines identical repeat x10):
MPC-HC VSFilter 1.7.6.177: 37.90fps min | 461.7fps avg
MPC-HC VSFilter 1.7.6.211: 142.0fps min | 742.6fps avg
xy-VSFilter 3.0.0.305 CCCP: 154.0fps min | 921.4fps avg
Simple Blur20 (126 lines):
MPC-HC VSFilter 1.7.6.177: 67.24fps min | 180.6fps avg
MPC-HC VSFilter 1.7.6.211: 69.46fps min| 182.7fps avg
xy-VSFilter 3.0.0.305 CCCP: 115.8fps min | 288.5fps avg
Simple Vector Block Test:
MPC-HC VSFilter 1.7.6.177: 528.0fps min | 606.6fps avg
MPC-HC VSFilter 1.7.6.211: 526.9fps min | 606.9fps avg
xy-VSFilter 3.0.0.305 CCCP: 789.4fps min | 980.4fps avg
Heavy \clip + blur sample (~17k lines):
MPC-HC VSFilter 1.7.6.177: 12.79fps min | 44.03fps avg
MPC-HC VSFilter 1.7.6.211: 14.85fps min | 48.52fps avg
xy-VSFilter 3.0.0.305 CCCP: 31.23fps min | 82.43fps avg
Fullscreen multi-line motion tracking (~1.6k lines):
MPC-HC VSFilter 1.7.6.177: 12.26fps min | 21.29fps avg
MPC-HC VSFilter 1.7.6.211: 22.55fps min | 29.85fps avg
xy-VSFilter 3.0.0.305 CCCP: 22.65fps min | 54.10fps avg
Logo clone + karaoke w/ blur & be (103 lines):
MPC-HC VSFilter 1.7.6.177: 213.5fps min | 342.9fps avg
MPC-HC VSFilter 1.7.6.211: 269.8fps min | 391.8fps avg
xy-VSFilter 3.0.0.305 CCCP: 375.7fps min | 562.6fps avg
Advanced karaoke (~2.1k lines):
MPC-HC VSFilter 1.7.6.177: 95.10fps min | 240.9fps avg
MPC-HC VSFilter 1.7.6.211: 124.1fps min | 275.0fps avg
xy-VSFilter 3.0.0.305 CCCP: 173.9fps min | 318.3fps avg
Heavy Static Positioned Typesetting (160 lines):
MPC-HC VSFilter 1.7.6.177: 144.8fps min | 279.3fps avg
MPC-HC VSFilter 1.7.6.211: 144.9fps min | 283.5fps avg
xy-VSFilter 3.0.0.305 CCCP: 185.3fps min | 311.7fps avg
Vector shape karaoke (~3.1k lines):
MPC-HC VSFilter 1.7.6.177: 79.49min fps | 148.4avg fps
MPC-HC VSFilter 1.7.6.211: 113.5min fps | 187.8avg fps
xy-VSFilter 3.0.0.305 CCCP: 113.3min fps | 199.7avg fps
Typesetting of Doom #1:
MPC-HC VSFilter 1.7.6.177: 3.94fps min | 14.09fps avg
MPC-HC VSFilter 1.7.6.211: 4.07fps min | 16.03fps avg
xy-VSFilter 3.0.0.305 CCCP: 9.82fps min | 25.76fps avg
octal9
1st September 2014, 05:45
i did some benches of my own, and it looks like the isr still has a ways to go performance wise, though its' nice to see them moving in the right direction - xysubfilter beat it every time for render time, plus i can edit my subs on the fly (and it looks just as good or better)..........would be nice to see in the future if resources could be pooled and the two could be merged somehow (as the developer here i still m.i.a.) and the project could move forward.
Volfield
1st September 2014, 05:51
Little announcement: Latest MPC-HC nightly include recent performance changes. @cyberbeing: If you could provide samples that works "a lot" better with XySubFilter than with ISR. You can send them directly to me or open tickets on trac, thanks in advance.
http://www.filefactory.com/file/fhzuidfuiap/%5BFinal8%5DServant%20x%20Service%20-%2010%20(BD%2010-bit%201280x720%20x264%20AAC)%5B4DA8E31F%5D.mkv
MPC-HC.1.7.6.211.x64 ISR 12:42 massive frame drops. XY-SubFilter on EVC-CP works fine (almost).
kasper93
1st September 2014, 13:01
@cyberbeing: Thanks. I know that xy-vsfilter is faster, but it is good thing that we are getting closer.
"Support for floating point \clip" this is already supported for some time now.
Workaround to prevent subpixel gaps with \clip
Method for eliminating subpixel gaps between body & outline
Do you have samples for this two issues? I've fixed some gaps issue with one sample, but it was different issue probably.
cyberbeing
1st September 2014, 18:40
"Support for floating point \clip" this is already supported for some time now.
I don't believe so. Testing with Aegisub, MPC-HC 1.7.6.211 still appears to be rounding floating point \p drawings to integers, and treating floating point \clip as integers without rounding. The main issue MPC-HC fixed awhile back was the crash related to floating point values. Both xy-VSFilter and Libass actually render \p and \clip script values as floating point [1] (https://github.com/libass/libass/issues/63)[2] (https://github.com/Cyberbeing/xy-VSFilter/commit/7b1e5c6e3b390ca7f0a9803786f1369878f7ae94)
I've fixed some gaps issue with one sample, but it was different issue probably.
Hmm, yeah I see that one of the \clip gradient gap issues I was thinking of is not present in 1.7.6.211, but as mentioned above, that build seems to have eliminated floating point \clip accuracy entirely. Which I guess is one solution, but doing it globally like this could potentially result in other issues. You can see how xy-VSFilter chose to handle this here (https://github.com/Cyberbeing/xy-VSFilter/commit/c897095dfb1b637083ce4bccc6eac9a78c515f37), which only triggers for \clip post-scale and ensures subpixel \clips sharing a boundary are shifted to adjacent whole pixels. We don't do this for \p drawings since always maintaining floating point accuracy rendering is more important.
The other issue with subpixel gaps between body and border, is essentially this issue (https://code.google.com/p/xy-vsfilter/issues/detail?id=145). The Libass idea for resolving this is described there. Though xy-VSFilter ended up doing something entirely different, and just implemented an Addition Draw method to replace Alpha Blending in certain cases [1] (https://github.com/Cyberbeing/xy-VSFilter/commit/d81650b88dd123cf1038d5fc4aa014bec564af40)[2] (https://github.com/Cyberbeing/xy-VSFilter/commit/50b964b90aba9108102a9e89cff797e82c18f106).
kasper93
1st September 2014, 19:30
Both xy-VSFilter and Libass actually render \p and \clip script values as floating point.
No you don't, you are rounding same as we do, just not in case scale == 1. Which is in my opinion inconsistent. We should render the same thing no matter if we scale or not . And hack like that to round only when you fell comfortable doesn't seem right to me. And most importantly you are adding bigger rounding error in case of scalling, because you do it twice. You handle \p the same unless I'm looking at wrong part.
Send me the sample where there is actually visual difference to motivate me to change that... I don't see any difference with my samples. And discussing code differences in not really the point here.
cyberbeing
1st September 2014, 20:38
No you don't, you are rounding same as we do, just not in case scale == 1. Which is in my opinion inconsistent. We should render the same thing no matter if we scale or not.
When upscaling, you have more pixels to deal with so maintaining sub-pixel boundaries on rectangle \clip doesn't matter as much compared to the artifacts it produces. When displayed at 1.0 scale, the original script author's intentions should be honored. That this is a hack is very much true, but having yet another method is just going to make things worse for script authors.
And most importantly you are adding bigger rounding error in case of scalling, because you do it twice.
Not sure where you see this, since floating point values \clip are maintained when scaling to target, and only rounded from 26.6 fixed point to whole pixel as the last step. There is no double rounding going on.
You handle \p the same unless I'm looking at wrong part.
You are looking at the wrong part, for \p rounding is always false.
Send me the sample where there is actually visual difference to motivate me to change that... I don't see any difference with my samples. And discussing code differences in not really the point here. I mean current mpc-hc code doesn't introduce significant error
Libass:
Parses \clip & \p as floating point and renders with 26.6 fixed point (8x8 subpixel) accuracy always.
xy-VSFilter:
Parses \p as floating point and renders with 26.6 fixed point (8x8 subpixel) accuracy always.
Parses \clip as floating point and renders with 26.6 fixed point (8x8 subpixel) accuracy when scale = 1.0.
Parses and scales as floating point, then rounds \clip boundaries to whole pixels in certain instances (adjacent rectangle clips only?) when rendering with scale != 1.0.
MPC-HC:
Parses and renders \p as floating point rounded to integers always.
Parses and renders \clip as integers always.
This is something MPC-HC should care about if your ultimate goal is to have users of xy-VSFilter & Libass migrate to the ISR for critical typsetting needs. For awhile now, both xy-VSFilter and Libass have been working on unifying rendering behavior as much as possible, which makes it rather counter productive if MPC-HC continues to do their own thing. For a couple years now, Fansubbers have been authoring scripts which depend on sub-pixel accuracy, at least from what they've told me. If you need a good sample, you should probably ask some fansub typesetters directly. I am not knowledgeable enough with modern typesetting methods to produce a good script samples myself. It may be true that this often isn't very noticeable, but I don't see why MPC-HC would desire harming accuracy like this. This is why xy-VSFilter went to a halfway solution, to maintain maximum accuracy except for a specific use-case which is artifacts produced by \clip created gradients post-scale.
romulous
4th September 2014, 12:35
@cyberbeing: Request from Blight. Can the ".\Subs" folder be added to the default search path (for both XYSubFilter and xy-vsfilter)? Blight has noted that it seems recent releases use that folder and Zoom Player isn't finding the subs because it requires users to manually add that path to their XYSubFilter/xy-vsfilter as it's not part of the default paths used by both filters.
Thanks!
cyberbeing
4th September 2014, 14:28
@romulous
Sure, I'll keep this in mind for whenever we make our next release. It seems like this is one of those things which would probably be useful for us to add to the API as well.
romulous
5th September 2014, 15:01
Great, thanks - much appreciated :)
romulous
kasper93
6th September 2014, 19:15
@cyberbeing: You might want to backport this :) https://github.com/kasper93/mpc-hc/commit/0f0d58c9573400e081feffe4a3325b748496b7ae
cyberbeing
7th September 2014, 00:08
@cyberbeing: You might want to backport this :) https://github.com/kasper93/mpc-hc/commit/0f0d58c9573400e081feffe4a3325b748496b7ae
Hmm, I believe those TV-range RGB to/from YCbCr conversion functions were purposefully left unfinished as placeholders only, since only PC-range RGB should ever be used in the current code. It may be wiser to just comment those lines out. Thanks for pointing that out though, since leaving it that way certainly appears rather suspect. And speaking of that color_conv_table, one thing we never got around to doing was backporting our CompactRGBCorrection from XySubFilter to VSFilter. That may be one thing which MPC-HC may want to look into doing, if you intend to push forward in supporting the 'YCbCr Matrix' tagging solution.
kasper93
7th September 2014, 02:17
Yeah, that's how I found those bugs, because in our work flow we needed those functions. ISR is after renderer so we need to output TV range to match renderer output. I got ISR working, still need to figure out VSFilter. But as I presume in most cases I will need to guess matrix based on resolution. Anyway I'm quite busy now and messing with this only in free time ;)
cyberbeing
7th September 2014, 03:23
Yeah, that's how I found those bugs, because in our work flow we needed those functions. ISR is after renderer so we need to output TV range to match renderer output.
Ah okay, in XySubFilter we always just use ColorConvTable::RGB_PC_TO_TV as the last step (see: xy_bitmap.cpp) when TV range output is requested by the Consumer.
But as I presume in most cases I will need to guess matrix based on resolution.
Well for ASS scripts, the default is TV.601 unless the 'YCbCr Matrix' header specifying which matrix to use is present. You can take a look at how MPV implemented support for this, to get an idea of how these 'YCbCr Matrix' conversions are expected to function with RGB output. With XySubFilter much of this logic is hidden in madVR code (we only do TV.601->TV709 corrections internally by default), so it may not be as immediately apparent looking at our code. Guessing matrix-by-resolution mainly occurs with all subtitle formats except ASS, like SRT etc. Just keep in mind that xy-VSFilter actually uses a AYUV workflow when outputting YCbCr, which could lead to some differences in implementation method compared to MPC-HC VSFilter which always uses a RGB workflow.
ianken
7th September 2014, 06:28
So I feel like a total newb posting this.
In a nutshell: xysubfilter will not render SOME subs in full screen exclusive mode with MADVR. Windowed? No problem? 720p content fullscreen exclusive? Works! 1920 wide content full screen? No subs rendered. IE: 1920x800 == no subs. 1920x1080 == no subs. 1280x720? SUBS up the wazzoooo! The internal MPC-HC render works and that is what I'm using now.
Anway, any hints as to where to look? I'm running the current MPC-HC, latest XYsub and latest MADVR. I have no other 3rd party codecs on the system and rely on the LAV bits bundled with MPC-HC.
-Ian
cyberbeing
7th September 2014, 07:11
@ianken
There is a bug in the current version of madVR (http://bugs.madshi.net/view.php?id=205) which can cause issues like you discribe, but that only occurs with MOD2 height video (at least as far as we are aware). Either way, my first suggestion would be to try the madVR setting workarounds listed there:
Disable "optimize subtitle quality for performance instead of quality"
OR
Enable "reduce banding artifacts"
If the above does not resolve the issue, please test XySubFilter with EVR-CP and see if you can still reproduce the same issue. If it does not occur with the EVR-CP consumer, you should open a new bug with madVR (http://bugs.madshi.net/bug_report_page.php) with details about your GPU and such.
In a nutshell: xysubfilter will not render SOME subs in full screen exclusive mode with MADVR. Windowed? No problem? 720p content fullscreen exclusive? Works! 1920 wide content full screen? No subs rendered.
You should probably clarify this as well if you end up opening a madVR bug. When you say no problem with 'Windowed', does that include Fullscreen Windowed (automatic fullscreen exclusive disabled) both with and without 'present several frames in advance', as well as Fullscreen Windowed Overlay?
Sm3n
7th September 2014, 13:23
Hi,
I'm using "XySubFilter_Relative_Output_Size_Test".
I've accidently switched the "Always load" option to "Never load" (something like that). Is there a way to revert it?
Tried to uninstall & install again but nothing changed. I guess I have to delete something from registry, right?
Thanks
Edit: OK, I found the Restore_Defaults file https://code.google.com/p/xy-vsfilter/issues/detail?id=26
:)
cyberbeing
7th September 2014, 14:33
There are a few other option if you just need change XySubFilter configuration settings.
With MPC-HC this can be easily done by just adding to External Filters, and then double-clicking on the entry.
With GraphStudioNext and similar graph builders, the same thing is possible from the Insert Filters dialog.
The manual way, is to cd to the directory with XySubFilter and then use:
rundll32 XySubFilter.dll,XySubFilterConfiguration
With a slight modification, you could also use the above operation via a shortcut.
Sm3n
7th September 2014, 21:40
With MPC-HC this can be easily done by just adding to External Filters, and then double-clicking on the entry.
Wow the thing I needed.
Thx for the tips!
Zachs
30th September 2014, 03:23
There's a bug in XySubFilter that prevents proper usage of ISubRenderFrame.
A simple fail first / fail fast check of QueryInterface for itself fails.
e.g.
STDMETHODIMP CMpdnRenderer::DeliverFrame(REFERENCE_TIME start, REFERENCE_TIME stop, LPVOID context, ISubRenderFrame *subtitleFrame)
{
// if (subtitleFrame->QueryInterface(IID_ISubRenderFrame, (void**)&subtitleFrame) != S_OK)
// return E_FAIL; // <-- this happens
...
}
This might be a good read (The Old New Thing: The ways people mess up IUnknown::QueryInterface (http://blogs.msdn.com/b/oldnewthing/archive/2004/03/26/96777.aspx)).
Cheers.
EDIT: It is indeed an oversight. XySubFilter's source code NonDelegatingQueryInterface does indeed left out ISubRenderFrame but has ISubRenderProvider in there.
madshi
30th September 2014, 09:09
Looks like a little bug in XySubFilter, but it's not dramatic, IMHO. Why double checking the type if the parameter is already hard coded to ISubRenderFrame? Yeah, sure, doesn't hurt to double check, I guess. But if XySubFilter sent in something other than ISubRenderFrame, incorrectly type-converted to ISubRenderFrame, that would be a dramatic bug, IMHO. FWIW, madVR doesn't check the parameter type, IIRC, and it works just fine.
In any case, fixing this in XySubFilter should be a 2 minute job, it should definitely be done.
Zachs
30th September 2014, 09:17
This is critical if it is to be used in. NET. You can't cast it to the right type otherwise.
madshi
30th September 2014, 10:15
Why would you need to cast it *at all*? The DeliverFrame() method should already provide the interface in the right type. So a cast should not be necessary.
Anyway, as I said, it should be easy to fix. Unfortunately the XySubFilter developer is currently not active. If you need this fix urgently, you may have to implement the fix yourself... :(
Zachs
30th September 2014, 10:30
You don't have to cast it. .NET Framework does it internally when the callback occurs. In which case invalid cast exception will be thrown (i.e. cast in .NET on com objects is actually a QI. Marshaling also checks for the correct type before allowing the type to be what the declaration claims it to be).
Edit: not complaining. Just informing. Took me an hour to figure out it's xysubfilter missing a QI export but a minute to fix it.
madshi
30th September 2014, 11:23
Ah, I see, thanks. I've zero experience with .NET.
Zachs
30th September 2014, 11:32
You should try c# someday. It was created by the same guy who created turbo pascal and Delphi. Anders Hejlsberg. He simply took Delphi to the next level.
madshi
30th September 2014, 12:05
I like Delphi a lot. But I dislike the whole .NET concept. I much prefer native compiling/linking over JIT compilation. That's just my personal opinion, of course. And slightly OT here... :)
cyberbeing
30th September 2014, 17:08
Looking through the code, I can only assume this was overlooked because the dev wrapped ISubRenderFrame within XySubRenderIntf.h (https://github.com/Cyberbeing/xy-VSFilter/blob/3.1.0.697/src/filters/transform/vsfilter/XySubRenderIntf.h#L21) as IXySubRenderFrame (ISubRenderFrame is never used directly anywhere in the code) and it seems he did remember to include IXySubRenderFrame in NonDelegatingQueryInterface (https://github.com/Cyberbeing/xy-VSFilter/blob/3.1.0.697/src/subpic/XySubRenderFrameWrapper.cpp#L28).
So is this just a simple fix of adding a single line for ISubRenderFrame to xy_sub_filter.h (https://github.com/Cyberbeing/xy-VSFilter/blob/3.1.0.697/src/filters/transform/vsfilter/xy_sub_filter.h#L18) & xy_sub_filter.cpp (https://github.com/Cyberbeing/xy-VSFilter/blob/3.1.0.697/src/filters/transform/vsfilter/xy_sub_filter.cpp#L156) or is there more to it than that? As madshi mentioned the developer isn't really active right now, but I could certainly commit trivial changes or merge pull requests myself from github and release a new hotfix build if necessary.
Zachs
30th September 2014, 23:26
Yeah its a single line fix. HotFix would be great! Thanks!
SecurityBunny
1st October 2014, 13:29
I would also appreciate a hotfix. :)
Been noticing quite a few subtitle changes in MPC-HC the last couple of weeks. Hopefully XySubFilter is still faster and preferred for quality. Hoping development kicks back up again sometime soon.
cyberbeing
1st October 2014, 19:37
I was only thinking of merging our outstanding pull requests along with the change Zachs requested. I haven't noticed any critically important bugfix in the recent MPC-HC commits, but if I've overlooked something which can be reproduced in XySubFilter, please point out the related MPC-HC commit and I'll look into it.
The XySubFilter developer remains inactive, so development starting back up soon seems very unlikely.
ahaha2013
29th October 2014, 02:15
This shared file.
http://pan.baidu.com/s/1c0b9tfi
neither xyvsfilter nor xysubfilter can dispay correctly.
mpc-hc built-in: http://i2.tietuku.com/7f9932a98be51711.png
can you fix it...
cyberbeing
29th October 2014, 05:41
This shared file.
http://pan.baidu.com/s/1c0b9tfi
neither xyvsfilter nor xysubfilter can dispay correctly.
mpc-hc built-in: http://i2.tietuku.com/7f9932a98be51711.png
can you fix it...
I'm not seeing an issue with XySubFilter, at least on our end. Correct 1920x1080 PGS bitmaps are being sent to the subtitle consumer, and are displayed with EVR-CP & madVR. Though both are resizing the bitmap vertically to 1920x800 to match the video resolution, which messes up the aspect ratio and positioning. You'd need to file a bug report with madVR & MPC-HC about that.
With xy-VSFilter, the video needs to be 1920x1080 for Blu-ray PGS subtitles to display. A workaround for cropped video like that one, is to set Vertical Padding to Extend to 16:9.
kasper93
30th October 2014, 01:15
Fixed. Will be in next nightly.
ahaha2013
30th October 2014, 13:28
thks.
ahaha2013
30th October 2014, 13:29
Fixed. Will be in next nightly.
thks:thanks:
salam2009
11th November 2014, 08:13
Why does xySubFilter get replaced by DirectVobSub when MadVR is disabled?
cyberbeing
11th November 2014, 09:35
xySubFilter requires a subtitle consumer to function.
madVR, EVR-CP (MPC-HC), and VMR9 Renderless (MPC-HC) are currently the only consumers available.
andyvt
11th November 2014, 10:30
xySubFilter requires a subtitle consumer to function.
madVR, EVR-CP (MPC-HC), and VMR9 Renderless (MPC-HC) are currently the only consumers available.
+ EVR-CP in MediaBrowser Theater
salam2009
11th November 2014, 20:43
I know! I'm using EVR-CP and that's the weird thing!
huhn
11th November 2014, 22:43
are you sure the version you use is a EVR CP version that can handle XY subfilter?
salam2009
12th November 2014, 02:44
I have K-Lite Mega Codec Pack v10.8.6 but use MPC-BE (the built-in Renderer is disabled) and they're all x32!
BTW, I just ran the "Install.bat" as administrator, added the two filters as external with 'Preferred' and didn't copy "XySubFilter" anywhere, should I ?!
It works just fine with MadVR enabled!
Volfield
12th November 2014, 06:27
EVR-CP in MPC-HC not MPC-BE
cyberbeing
12th November 2014, 07:03
As mentioned, MPC-BE never merged in support of the EVR-CP subtitle consumer from MPC-HC, so it is currently not supported.
If this is something you desire, you'd need to make a feature request to the MPC-BE devs.
salam2009
12th November 2014, 08:54
hmm, got it. Thanks guys for the note!
Mystery Keeper
12th November 2014, 16:51
I once again request VapourSynth plugin. So far there's only plugin for ASS subtitles, and even it is rather inconvenient (only generates subtitles as clip, but doesn't overlay them on video).
FeliChe
21st November 2014, 23:29
Hi,
sorry for my english writting mistakes.
I can't make XySubFilter 3.1.0.697 run with xbmc.
When placback XBMC recognize the filter.
http://sia1.subirimagenes.net/img/2014/11/21/mini_141121112630338950.png (http://www.subirimagenes.net/i/141121112630338950.png)
Here is the option to be able to open configuration menu xysubfilter wiche I can't
http://sia1.subirimagenes.net/img/2014/11/21/mini_141121112354377175.png (http://www.subirimagenes.net/i/141121112354377175.png)
And here I can't open any of the subtitles files the file, mkv in this case, has which it has 100% sure
http://sia1.subirimagenes.net/img/2014/11/21/mini_141121112343590321.png (http://www.subirimagenes.net/i/141121112343590321.png)
Anyone can help me with this?
Thank you
cyberbeing
22nd November 2014, 00:43
XBMC doesn't support an XySubFilter compatible subtitle consumer.
You'll need to either use xy-VSFilter/VSFilter, or their built-in subtitle renderer.
romulous
24th November 2014, 06:15
Hi,
I have a sample file which shows the subs with a black background (both xy-vsfilter and XYSubFilter). I have experimented with the xy-vsfilter and XYSubFilter options, but am unable to get rid of the background (VLC and XBMC both remove the background however, but both obviously do not use xy-vsfilter or XYSubFilter). Would appreciate some feedback on why that is:
https://dl.dropboxusercontent.com/u/105555957/Subs%20Test.mkv (27.1MB)
Thanks!
cyberbeing
24th November 2014, 15:13
I'm not familiar with he inner workings of the PGS parser/renderer myself. The PGS code is almost entirely sourced from MPC-HC, and since this also occurs with the MPC-HC ISR, you should probably report this issue to them. If this is really an bug, and they figure out a fix, we could probably backport it.
romulous
2nd December 2014, 09:45
If this is really an bug, and they figure out a fix, we could probably backport it.
They have figured it out - the fix is in the latest nightly version of MPC-HC. Would be great if you could work out how to backport it into xy-VSFilter/XYSubFilter.
romulous
cyberbeing
2nd December 2014, 10:42
They have figured it out - the fix is in the latest nightly version of MPC-HC. Would be great if you could work out how to backport it into xy-VSFilter/XYSubFilter.
romulous
Done. Thankfully it was a really simple change, I feared it'd be something much more complex.
romulous
2nd December 2014, 11:13
Great, much appreciated :) If this is the commit, it was only a small change wasn't it?
https://github.com/Cyberbeing/xy-VSFilter/commit/d5310a0c6b8193bfa2cabf0dbb342453d3d191cb
romulous
SecurityBunny
2nd December 2014, 17:14
Done. Thankfully it was a really simple change, I feared it'd be something much more complex.
Mind sharing a compiled build with the fix? :) I compiled the 704 source myself and somehow came out with build 3.1.0.687 (git 472cb11).
https://github.com/Cyberbeing/xy-VSFilter/releases/tag/3.1.0.704
cyberbeing
2nd December 2014, 21:15
Mind sharing a compiled build with the fix? :) I compiled the 704 source myself and somehow came out with build 3.1.0.687 (git 472cb11).
https://github.com/Cyberbeing/xy-VSFilter/releases/tag/3.1.0.704
Strange. Not sure what you did wrong, but to checkout the tag directly from within GIT do the following:
git fetch --tags
git checkout 3.1.0.704
Then just run build_vsfilter.sh -proj xy_sub_filter and you should have a 3.1.0.704 XySubFilter build.
I'll plan on uploading a complied build to GitHub at the beginning of next week.
SecurityBunny
3rd December 2014, 06:11
Strange. Not sure what you did wrong, but to checkout the tag directly from within GIT do the following:
git fetch --tags
git checkout 3.1.0.704
Then just run build_vsfilter.sh -proj xy_sub_filter and you should have a 3.1.0.704 XySubFilter build.
I'll plan on uploading a complied build to GitHub at the beginning of next week.
Thanks. Fetching in git seems to have fixed it. Compiled with the correct version number. :) 3.1.0.704 (git 31d6703)
romulous
6th December 2014, 11:32
Hi,
I have a sample file which - when using xy-VSFilter - produces green letters. When using XYSubFilter, it does not have this problem.
Sample:
https://dl.dropboxusercontent.com/u/105555957/xy-VSFilter%20Green%20Letters.mkv (37.1MB)
Screenshot:
http://i.imgur.com/1yWg61w.jpg
The top window in the screenshot is xy-VSFilter, the bottom window is XYSubFilter. The stream being displayed is the one labelled 'untouched subtitle-track from BDMV-Playlist [ger] (pgs)'. Tried it with MPC-HC as well this time, the subs are displayed ok there, so I think it is restricted to xy-VSFilter alone.
Thanks.
romulous
cyberbeing
6th December 2014, 20:36
The fix for that has been on the vsfilter_rc branch for awhile now.
I'll plan to compile and upload a new xy-VSFilter build at the same time as XySubFilter 3.1.0.704.
romulous
7th December 2014, 01:14
Super, thanks cyberbeing :)
romulous
cyberbeing
7th December 2014, 03:47
xy-VSFilter 3.0.0.306 & XySubFilter 3.1.0.704 builds have been posted to Github.
Download links can be found in the usual places.
Unfortunately I still haven't gotten around to rebuilding the InnoSetup script which I lost a long time ago now, so no installer. I'll consider trying to do something about that next week.
romulous
7th December 2014, 12:15
Sorry to be a pest, but I have another sample that is problematic. Seems to affect both xyVSFilter and XYSubFilter. Zoom Player (my main player) will play the MKV file alone (without either of the external sub files present), but as soon as the external sub files are copied into the same folder, Zoom won't even play the file. Using MPDN (to rule out a player problem), I see an instant hang with MPDN, again when both the subs files are copied to the same folder as the movie. Not sure what is going on with this one:
https://dl.dropboxusercontent.com/u/105555957/Test.zip (55.2MB)
The original report to me was that the subs show fine with xyVSFilter, but do not show at all with XYSubFilter (using the new release, no change).
romulous
cyberbeing
7th December 2014, 13:28
Does the problem resolve itself if you move 'sub' after 'idx' in the LOAD_EXT_LIST registry string at:
HKEY_CURRENT_USER\Software\Gabest\XySubFilter\General
I've pushed out a XySubFilter 3.1.0.705 build with this change since it resolved the crash on my PC with that sample.
This change in the registry won't take effect unless you reset to defaults, so I've included a reg file to do this in the zip.
What appears to be happening here, is XySubFilter attempting to read the VobSub .sub (bitmap) as MicroDVD .sub (text) which for some reason triggers an _Xout_of_range crash in std::basic_string on that sample. I've not run into this before, so I suspect VOBSUB .sub files which can trigger this issue are rather rare.
Unfortunately the change here is just a workaround for when there is a valid VOBSUB .sub+.idx pair present. It will still crash if you delete the .idx for your sample, but this should at least avoid the common case. If you come across more samples like this, hopefully someone could track this down and fix it properly.
romulous
8th December 2014, 11:46
Works for me :) I have asked the person who provided the sample to test on the full file, just to make sure. Will hopefully get back to you shortly!
romulous
romulous
8th December 2014, 12:55
Ok, I was mistaken. XYSubFilter was not being used, xy-VSFilter was being instead. Unfortunately, I cannot get XYSubFilter to work with the new dll. Zoom just reverts back to xy-VSFilter, which is why the clip now plays (as xy-VSFilter was fine, it was only XYSubFilter that was broken). So, the question is, why does XYSubFilter seem to be broken totally?
Just on another subject, while you are updating the builds, probably time for a reminder about post #649 on page 33 (the adding of .\Subs to the default search path).
cyberbeing
8th December 2014, 14:13
Did you install the 64bit version by mistake?
romulous
9th December 2014, 09:07
I don't believe so - the other person reports that the new XYSubFilter still does not work for them either (they report that the video does not even start with 705). I will install again though just to be sure.
cyberbeing
9th December 2014, 10:06
And you are saying XySubFilter does work when you roll back to the previous version? I've double-checked the sample you provided using XySubFilter 3.1.0.705 + madVR 0.87.11 with ZoomPlayer 9.60b4, MPC-HC, MPC-BE, MPDN, and Potplayer and all are functioning just fine on my Win7 SP1 computer. I'd suspect something else is going on, so please redownload & reinstall the x86 version from GitHub (https://github.com/Cyberbeing/xy-VSFilter/releases/download/3.1.0.705/XySubFilter_3.1.0.705_x86_BETA2.zip), run Restore_Default_Settings.reg, and then run Install_XySubFilter.bat as Administrator and ensure you see a 'DllRegisterServer in XySubFilter.dll succeeded' message.
In general, the only reasons XySubFilter wouldn't load by default are:
The sample did not have an audio track
No internal subtitle pin available.
No external subtitles found.
No valid subtitle consumer found.
XySubFilter wasn't registered successfully.
Must install x86 version for 32bit media players.
Must install x64 version for 64bit media players.
If the video does not even start, maybe the user has MPC-HC VSFilter installed instead of xy-VSFilter? There is an issue with regular VSFilter which can cause playback failures when XySubFilter removes it from the graph. If you require VSFilter for other things, you need to ensure you install xy-VSFilter for proper operation. Otherwise just uninstall VSFilter if you don't need it. If another transform filter like FFDShow's Raw Audio/Video Processor are being used, you may want to try disabling those as well for troubleshooting purposes.
romulous
9th December 2014, 11:28
The previous version works on other clips, but does not work at all on the sample clip (Zoom doesn't even play the file). I am hampered slightly by not having access to the full file - but I have asked bLight (it is his file and he noticed the problem) to try uninstalling xy-VSFilter. As you would be aware, Install Center installs both xy-VSFilter and XYSubFilter (for good reasons), and Zoom chooses which one to use based on what video renderer you have selected. I will get back to you!
romulous
cyberbeing
9th December 2014, 12:37
I'm now totally confused now who has what problem, and what has and has not been tested. I have a hard time believing 3.1.0.705 not functioning at all with any subtitle sample could possibly be anything but user error, if that is what is being claimed. If there is still a problem only with a specific sample or setup or OS, but otherwise 3.1.0.705 functions the same as 3.1.0.697, that would be more believable. Could you please clarify the following along with any other details you find relevant:
1)
romulous, have you yourself done what I described in my previous post, including resetting to defaults?
What works and what doesn't work with 3.1.0.705 on your computer specifically?
If you uninstall 3.1.0.705 and repeat the steps in my previous post to install 3.1.0.697 (https://github.com/Cyberbeing/xy-VSFilter/releases/download/3.1.0.697/XySubFilter_3.1.0.697_x86_BETA2.zip) manually, what changes if anything?
If you place 'sub' after 'idx' in the LOAD_EXT_LIST key with 3.1.0.697, is there any change with your small sample?
2)
Has Blight himself done what I described in my previous post, including resetting to defaults?
What works and what doesn't work with 3.1.0.705 on Blight's computer specifically?
If Blight uninstalls 3.1.0.705 and repeats the steps in my previous post to install 3.1.0.697 (https://github.com/Cyberbeing/xy-VSFilter/releases/download/3.1.0.697/XySubFilter_3.1.0.697_x86_BETA2.zip) manually, what changes if anything?
If Blight places 'sub' after 'idx' in the LOAD_EXT_LIST key with 3.1.0.697, is there any change with his full sample?
romulous
10th December 2014, 09:01
Ok, short story didn't work, so here is the long story. bLight tells me that he has a movie which XYSubFilter does not show the subtitles on, and asks me to chase it up (report it as a bug in XYSubFilter). I don't have the movie myself, and I know that just posting here that 'XYSubFilter does not work with movie xyz' would not achieve anything. So I ask for a sample, which he cuts off the main movie (that 50MB file I posted). When I try the sample on my system, it has a different issue than bLight - I'm fairly certain that is because of how the sample was generated. bLight's issue was that the subtitles do not show. The problem I see is that Zoom does not play the movie at all, and MPDN (the other player I tried) crashes instantly. That to me says there is a fairly severe issue with XYSubFilter with the clip (the problems resolve when I move the two external subtitle files from the same folder as the movie).
So, that leads to my post here. You post build 705 - which I initially think works (because Zoom now plays the file). I then ask bLight to try it on the full movie, as I think the sample is problematic. He responds that Zoom does not play the movie at all with build 705, and asks me how I got it to work. I check - and find out that Zoom was not using XYSubFilter, but xy-VSFilter (it was using madVR, I don't know why XYSubFilter was not loading). I tell bLight that I was wrong, it doesn't work - and that leads to my 'I was mistaken' post above. I have asked bLight to do what you suggest - I don't think there is any point in me doing it, as I am convinced the sample is faulty in a different way - and am still waiting for a reply. If he can get Zoom to actually use build 705, and then get it to actually show the subtitles - all on the full movie - that is all that really matters. If XYSubFilter crashes MPDN and causes Zoom to not work on the sample, that is not really relevant.
When I get a response from bLight (I have just asked a second time, a few minutes ago, as a reminder to him), I will get back to you.
romulous
cyberbeing
10th December 2014, 09:16
I check - and find out that Zoom was not using XYSubFilter, but xy-VSFilter (it was using madVR, I don't know why XYSubFilter was not loading). I tell bLight that I was wrong, it doesn't work - and that leads to my 'I was mistaken' post above. I have asked bLight to do what you suggest - I don't think there is any point in me doing it, as I am convinced the sample is faulty in a different way - and am still waiting for a reply.
The reason I'm asking you to do it, is because of this. That should not occur, so I'd like you to try what I suggested and see if it resolves your problem with XySubFilter not loading (with any subtitle sample?). Honestly, what you are reporting yourself sounds like a more serious issue than Blight's problem, so I'd like to deal with that first. There was a crash/hang with the small sample, which 3.1.0.705 should have resolved if both idx+sub are present. Once you hopefully get XySubFilter working again I'd like confirmation if you can reproduce what I described with LOAD_EXT_LIST. Test in a media player other than Zoom Player if you must. I at least need to ensure there was not a serious regression from 3.1.0.697 to 3.1.0.705 which makes it stop functioning entirely upon update for some users.
romulous
10th December 2014, 11:17
Ok, sure - while waiting for a response from bLight, I shall run the test with 705 again. I am currently on the version that comes with Install Center (which is .211 for xyVSFilter and .697 for XYSubFilter I believe).
romulous
10th December 2014, 11:37
I will only be able to test with .697 and .705 though - I deleted my downloaded copy of .704 after .705 was released, and I see it has been removed from github (so I can't re-download it).
romulous
romulous
10th December 2014, 12:43
Ok, here are some results.
.697: By default (no registry changes), same results as previously reported. Zoom Player opens but does not play the file (but you have to restart it to actually play any other clips as well, so it may in fact be a crash), and MPDN instantly hangs. Removing both external subs files removes both issues.
.697: With the registry change, both Zoom and MPDN seem to work ok. I think the subs show as well. The reason why I say 'I think' is that they look odd, they look more like closed captions to me - for example, at 00:40, the words (Indian Music Playing) appear, including brackets. That does not look like any subtitle I have ever seen, so I am not sure that the sample clip actually has them (another reason why I wanted bLight to test with the full file).
.705: This time, Zoom seems to actually use XYSubFilter instead of xyVSFilter, as does MPDN. Both players seem to work ok.
Those were my results. bLight's results were roughly similar. He reported - and this was something I had noticed myself - that when you reset XYSubFilter's config, many of the registry keys (including load_ext_list) are not regenerated until you open the XYSubFilter config dialog from the tray icon and click Ok (you don't need to change anything, you simply click Ok). I don't think that is ideal myself.
Anyway, he wanted me to ask you something: is it possible to ignore 'sub' extension if there is an 'idx' file in the same folder instead of fooling with the order in the registry? He believes that would be a more reliable fix. The problem we have now is that the current registry fix will only work for new users - ie people who do not have a current installation of XYSubFilter.
cyberbeing
10th December 2014, 17:30
.697: By default (no registry changes), same results as previously reported.
.697: With the registry change, both Zoom and MPDN seem to work ok. I think the subs show as well.
.705: This time, Zoom seems to actually use XYSubFilter instead of xyVSFilter, as does MPDN. Both players seem to work ok.
Okay good, these are expected results.
Those were my results. bLight's results were roughly similar. He reported - and this was something I had noticed myself - that when you reset XYSubFilter's config, many of the registry keys (including load_ext_list) are not regenerated until you open the XYSubFilter config dialog from the tray icon and click Ok (you don't need to change anything, you simply click Ok). I don't think that is ideal myself.
I mentioned this to our developer a long time ago, but he seemed to have no interest in fixing the behavior which was a side-effect of the major refactor he performed on settings and registry handling. Overall it doesn't matter much, since our default settings will be used when a registry key is not present and normally you shouldn't be hacking at the registry.
Anyway, he wanted me to ask you something: is it possible to ignore 'sub' extension if there is an 'idx' file in the same folder instead of fooling with the order in the registry? He believes that would be a more reliable fix. The problem we have now is that the current registry fix will only work for new users - ie people who do not have a current installation of XYSubFilter.
I'm sure it's possible, but we have no active developer at the moment and it's not something I feel comfortable attempting to do myself. If the registry key change from 3.1.0.705 works, then that is your only option for the time being. Since Blight creates his own installer, he could modify it to delete LOAD_EXT_LIST upon install of 3.1.0.705 as a temporary measure. Since as mentioned above, the key does not actually need to be present in the registry for the new defaults to be used.
There used to be a way to depreciate registry settings with a new build since I know our dev did it once early on, but it's never anything I had done personally myself. Looking into it again now, I think I figured out why I could never get it working before. I thought I just needed to increase the supported version number, but I actually needed to enable this function for each setting I wanted updated individually, since for whatever reason it wasn't enabled globally. The original function only supports integer registry values, but after a bit of fiddling I seem to have gotten it working for string values as well.
I could probably include this in the next build, but I'm going to hold off releasing another build until next month, so I'm positive there are no more changes or fixes I need to include. I'll remember to include the .\subs path as well. In the meantime, I'll send you a test build.
romulous
11th December 2014, 08:57
Thanks, I got the PM :) I have asked bLight to take a look at your post as well.
romulous
cyberbeing
11th December 2014, 15:08
Blight is free to use those test builds in ZoomPlayer Install Center if he desires. They should hopefully work with his sample out-of-box, and depreciate load_ext_list and cache size registry values from prior versions (if they exist). Also as a reminder, he no longer needs to bundle unrar.dll from his installer when he updates it since both xy-VSFilter and XySubFilter have it static now.
gommorah
13th December 2014, 01:31
but we have no active developer at the moment
Do you think you could mirror the current codebase to SVN on the Google Projects host? As far as I could tell, all the git links I could see on the main page haven't had commits in a year or more (also, I don't know how to use git :P )
cyberbeing
13th December 2014, 03:42
Github repositories supposedly can be accessed via SVN as well. (https://help.github.com/articles/which-remote-url-should-i-use/#cloning-with-subversion) Does that not work for you? It really wouldn't hurt to just start getting familiar with GIT though. First just grab the latest msysgit release (https://github.com/msysgit/msysgit/releases) along with a client like SmartGit (http://www.syntevo.com/smartgit/) (free for non-commercial use), and you should rarely if ever need to touch the command line.
The only repository which is up-to-date is mine on GitHub (https://github.com/Cyberbeing/xy-VSFilter/) which updated last week for the recent releases. Only our dev has push access to repo.or.cz, so it's gotten way out of date at this point. Here is a quick rundown of active branches and some commits of interest, if you were going to work on things:
Master (xy-VSFilter Stable) (https://github.com/Cyberbeing/xy-VSFilter/tree/master)
vsfilter_rc (xy-VSFilter Development) (https://github.com/Cyberbeing/xy-VSFilter/tree/vsfilter_rc) Currently identical to Master, since I just released 3.1.0.306.
xy_sub_filter_rc3 (XySubFilter Development) (https://github.com/Cyberbeing/xy-VSFilter/tree/xy_sub_filter_rc3) + Temporary commit revert for xy_sub_filter_rc3 (https://github.com/Cyberbeing/xy-VSFilter/commit/caded623f9a801dbbf76eee3cf30bac6b8544fd0) Bugfix required
xy_sub_filter_rc2 (XySubFilter Unstable New Features) (https://github.com/Cyberbeing/xy-VSFilter/tree/xy_sub_filter_rc2) Requires bug fixes for partial-rasterization and partial-scanline.
blur_be_fixes (Blur/BE Implementation fixes) (https://github.com/Cyberbeing/xy-VSFilter/tree/blur_be_fixes) Not correct yet, introduces some rendering bugs
be_scaling_2 (Experimental alternative /be scaling method) (https://github.com/Cyberbeing/xy-VSFilter/tree/be_scaling_2) Visually more accurate most of the time, but has some issues with not always having a linear appearances with small jumps in scale factor
Experimental 8bit Blur/BE/Clip (https://github.com/Cyberbeing/xy-VSFilter/commit/def6de60dded8dcf2aaf06064c79412e238aa3f7) Unfortunately results in a rather extreme change in appearance for \be at high strength because it eliminates the 6bit rounding error of VSFilter 2.39
ryrynz
14th January 2015, 06:14
If I have a subtitle that starts at 2:00 and disappears at 2:07 if I change subtitles at say 2:03 or I skip to 2:03 then no subtitle shows until the next one appears.
Since the subtitle is supposed to stay till 2:07 why is it not shown at any stage up until that time?
sneaker_ger
14th January 2015, 06:53
This is not the fault of xy-vsfilter/XySubFilter but of the splitter/container format. The subtitle in e.g. mkv is stored at 2:00 and if you skip to 2:03 it might not be read by the splitter and consequently never forwarded to xy-vsfilter/XySubFilter. New additions to mkv could be used to fix this but a patch for LAV splitter (https://code.google.com/p/lavfilters/issues/detail?id=302&colspec=ID%20Type%20Status%20Priority%20Filter%20Summary%20Modified) with support has not been accepted.
ryrynz
14th January 2015, 07:13
This is not the fault of xy-vsfilter/XySubFilter but of the splitter/container format.
So it would seem the fix is to simply remux with MKVToolNix 7.0.0+
sneaker_ger
14th January 2015, 07:28
You would also need a suitable splitter - I only know of the patched LAV build. Vanilla LAV does not. (I can imagine there may be other splitters which handle these situations better than LAV even without the new mkv features, though.)
Aleksoid1978
25th January 2015, 07:29
Internal MPC-BE Matroska Splitter support CueDuration and CueRelativePosition on seek.
Neroldy
13th February 2015, 11:27
Maybe the xysubfilter didn't work fine for PGS subtitles in my laptop.
Here are two pictures about the xysubfilter and potplayer.
cyberbeing
14th February 2015, 01:03
Maybe the xysubfilter didn't work fine for PGS subtitles in my laptop.
Here are two pictures about the xysubfilter and potplayer.
Try XySubFilter + EVR-CP in MPC-HC, since they made a change in their subtitle consumer a few months ago so this would no longer happen, and PGS aspect ratio and positions would be maintained (matching their internal ISR behavior). Currently madVR stretches the XySubFilter PGS bitmaps like your left attachment when subtitle aspect ratio doesn't match video aspect ratio (like cropped video). This behavior is actually somewhat intentional for text-based subtitles and the like, but it's ultimately up to the subtitle consumer to decide how fixed resolution PGS bitmaps are displayed. I'd suggest opening a bug on madVR's bug tracker if you find the current behavior undesired.
Neroldy
14th February 2015, 03:39
Try XySubFilter + EVR-CP in MPC-HC, since they made a change in their subtitle consumer a few months ago so this would no longer happen, and PGS aspect ratio and positions would be maintained (matching their internal ISR behavior). Currently madVR stretches the XySubFilter PGS bitmaps like your left attachment when subtitle aspect ratio doesn't match video aspect ratio (like cropped video). This behavior is actually somewhat intentional for text-based subtitles and the like, but it's ultimately up to the subtitle consumer to decide how fixed resolution PGS bitmaps are displayed. I'd suggest opening a bug on madVR's bug tracker if you find the current behavior undesired.
:thanks:
In my laptop, XySubFilter in EVR-CP + MPC-HC/PotPlayer doesn't work, it seems XySubFilter only works on madVR. Like you said, if I use this PGS to match a 1280x720 movie, everything is fine. But for 1280x534, it becomes terrrible.
Another problem is that if I use XySubFilter, the PGS didn't match the movie's original time code, the PGS is faster than the movie nearly 5s. And if I use PotPlayer/MPC-HC without XySubFilter, everything is fine...
cyberbeing
14th February 2015, 04:21
In my laptop, XySubFilter in EVR-CP + MPC-HC/PotPlayer doesn't work, it seems XySubFilter only works on madVR.
Only MPC-HC and recent MPC-BE 1.4.4.65+ nightly builds support XySubFilter with EVR-CP. If you are sure you've disabled the ISR, yet XySubFilter still doesn't load with EVR-CP but does with madVR, you should ask in the MPC-HC thread (http://forum.doom9.org/showthread.php?t=166689) and see if someone can help you. There is no reason that should be happening.
Potplayer does not support XySubFilter with EVR-CP.
Like you said, if I use this PGS to match a 1280x720 movie, everything is fine. But for 1280x534, it becomes terrrible.
This isn't our issue, so you'd need to take this up with madVR or use XySubFilter with EVR-CP in MPC-HC 1.7.8 where this issue should have already been resolved. XySubFilter always sends PGS bitmaps at original size (1920x1080 for BD), at which point it is up to the subtitle consumer to decide how they are scaled to target resolution.
Another problem is that if I use XySubFilter, the PGS didn't match the movie's original time code, the PGS is faster than the movie nearly 5s. And if I use PotPlayer/MPC-HC without XySubFilter, everything is fine...
I would need a sample which can reproduce that if you are talking about internal/embedded PGS subtitles.
Neroldy
14th February 2015, 08:28
Only MPC-HC and recent MPC-BE 1.4.4.65+ nightly builds support XySubFilter with EVR-CP. If you are sure you've disabled the ISR, yet XySubFilter still doesn't load with EVR-CP but does with madVR, you should ask in the MPC-HC thread (http://forum.doom9.org/showthread.php?t=166689) and see if someone can help you. There is no reason that should be happening.
Potplayer does not support XySubFilter with EVR-CP.
This isn't our issue, so you'd need to take this up with madVR or use XySubFilter with EVR-CP in MPC-HC 1.7.8 where this issue should have already been resolved. XySubFilter always sends PGS bitmaps at original size (1920x1080 for BD), at which point it is up to the subtitle consumer to decide how they are scaled to target resolution.
I would need a sample which can reproduce that if you are talking about internal/embedded PGS subtitles.
:thanks:
You are right, the XySubFilter works well with MPC-HC + EVR-CP.
In the second problem, the PGS is not embedded in the video file, it is just at the same folder with the video. And I make a test, if I use mkvtoolnix to mux the video and PGS into one mkv file, the problem will not happen. But if I extract the PGS subtitle track from mkv file, for example movie.mkv + movie.Chs.sup, then the problem will happen again.
Finally, I find that if the PGS is not in the mkv file and I do not jump to any time, just watch the video from begin to the end, everything will be fine. But if I jump to some scenes, the PGS maybe faster than than the video even the PGS is disappeared until I open this mkv file again. Because if I mux the PGS into mkv file and situation will not happen again, I can't upload sample. I think you can extract the PGS track from mkv file using mkvextract and try my step, maybe it will happen again.
Anyway, XySubFilter is really a great subtitle filter. I hope it can be better and better.
:thanks:
cyberbeing
14th February 2015, 10:11
That sync issue when seeking external PGS subtitles is actually a known issue which was reported to us soon after it was implemented in XySubFilter back in 2013. Unfortunately, our external PGS support was a somewhat naive implementation, with our developer having only minimal knowledge of how the PGS parser/render code from MPC-HC actually functioned. It wasn't until a year later that MPC-HC got around to implementing proper external PGS support themselves, but at that point our developer had gone pretty much inactive. I haven't forgotten, we just haven't had anyone around which is capable of fixing this for quite awhile.
If you decide you want to disable use of external PGS with XySubFilter, you can remove sup from the HKCU\Software\Gabest\XySubFilter\General\load_ext_list registry key.
Neroldy
14th February 2015, 10:37
That sync issue when seeking external PGS subtitles is actually a known issue which was reported to us soon after it was implemented in XySubFilter back in 2013. Unfortunately, our external PGS support was a somewhat naive implementation, with our developer having only minimal knowledge of how the PGS parser/render code from MPC-HC actually functioned. It wasn't until a year later that MPC-HC got around to implementing proper external PGS support themselves, but at that point our developer had gone pretty much inactive. I haven't forgotten, we just haven't had anyone around which is capable of fixing this for quite awhile.
If you decide you want to disable use of external PGS with XySubFilter, you can remove sup from the HKCU\Software\Gabest\XySubFilter\General\load_ext_list registry key.
Thank you ~~
:):)
Neroldy
16th February 2015, 04:43
Maybe I find a little bug?
In the style settings of the subtitle renderer, the MPC-HC built-in is Angel (z,°)
14638
But the XySubFilter is Angel (z,?
14639
cyberbeing
16th February 2015, 06:05
Only a Cosmetic issue, but we could certainly fix that. It looks like the issue was introduced way back in 2011 when our Chinese developer used Visual Studio to re-save the resource file which caused a bogus conversion from English encoding to Chinese encoding.
Neroldy
16th February 2015, 06:26
Only a Cosmetic issue, but we could certainly fix that. It looks like the issue was introduced way back in 2011 when our Chinese developer used Visual Studio to re-save the resource file which caused a bogus conversion from English encoding to Chinese encoding.
Thank you ~
Sm3n
17th February 2015, 23:00
o/ Oy cyberbeing,
thx for keeping it updated.
I saw this: http://bugs.madshi.net/view.php?id=253
I also noticed an issue and maybe it's related.
Dunno if the Relative output height feature (I asked you to release, remember?) is to resize or keep the 1080p scale no matter the resolution of the video you are watching, but everytime a cropped or a resized video is playing, the size of my srt is changing. And no matter the resizing mode I apply using avisynth.
Screen:
No Avisynth:
http://i.imgur.com/drrQck6.jpg
Upscaled using Avisynth:
http://i.imgur.com/T5rNBmA.jpg
Same sub on real 1080p uncropped:
http://i.imgur.com/pMG3SQ1.jpg
You see? Is it possible to set a size for all the situations? so we don't need to configure a "2nd value" for cropped movie.
Hope you'll get what I meant and a fix is easily possible.
cyberbeing
18th February 2015, 02:58
I saw this: http://bugs.madshi.net/view.php?id=253
I also noticed an issue and maybe it's related.
Completely unrelated. That issue is specific to PGS subtitles only.
Dunno if the Relative output height feature (I asked you to release, remember?) is to resize or keep the 1080p scale no matter the resolution of the video you are watching, but everytime a cropped or a resized video is playing, the size of my srt is changing. And no matter the resizing mode I apply using avisynth.
You see? Is it possible to set a size for all the situations? so we don't need to configure a "2nd value" for cropped movie.
If you are talking about that "Relative output height" test build, I only vaguely remember the specifics. Though I believe that SRT should always have the same relative font size based on video height by default with even a normal build. The test build only readjusted shadow & borders sizes. Your scaled images are not the same output height. Your first and second screenshots have an output height of 339px, while your third one is 449px. That is why the subtitle size is ~33% larger. It sounds like what you are asking for is more like "Relative output width" rather than height.
Sm3n
18th February 2015, 05:03
oh OK I understand.
Well, I believe there is no such feature yet... :)
May I ask you if is it something perhaps you can/want/would work on?
Would be awesome for sure. But if I'm the only one asking for it, no need to waste your time I guess. ^^'
thx for your time
ps: once again sorry for my basic english, folks
cyberbeing
18th February 2015, 12:22
After a few hours of trial and error, I think I finally figured out a way to do 'relative size' instead of only 'relative height' or 'relative width'. Yet since I'm more of the project manager and not an experienced programmer, I wouldn't be surprised if this implementation had bugs or performance issues.
Use the following test build at your own risk:
XySubFilter_Relative_Output_Size_Test3 [Removed]
This build contains a major bug which causes display issues with styled ASS subtitles even without overriding styles, unless this feature is set to "original video" (disabled).
The build has been removed.
ryrynz
19th February 2015, 00:33
Both BE and HC are displaying ASS subtitles differently from XYSubfilter. Could you look into what's going on with them?
Also I'd like to know how/why BE/HC have different shadowing on the subtitles, I tried changing the what I thought were respective settings, but there was no change.
I do prefer less shadowing, so if you could let me know what needs to be changed or even change the defaults (do Be and HC have it correct?) that'd be grand.
I think consistent results should be seen ideally between all three subtitle renderers.
Screenshots (http://postimg.org/gallery/2sz77s28/), Source file (http://www.filedropper.com/hitsujithemelancholyofharuhisuzumiyaspecialendingh264vorbis)
cyberbeing
19th February 2015, 01:29
VSFilter 2.39, MPC-HC VSFilter, MPC-BE VSFilter, xy-VSFilter, XySubFilter, and Libass (mpv) are all handling that sample correctly and consistently.
As for what MPC-HC ISR and MPC-BE ISR are doing wrong, it's probably a combination of not handling anamorphic scaling of layout in a vsfilter compatible way, along with not scaling \be to match the visual appearance of VSFilter output when scaled.
I do prefer less shadowing, so if you could let me know what needs to be changed or even change the defaults that'd be grand.
There isn't any shadowing on that sample, only a 2px border and \be. If you reduce the border size in the script styles (HaruhiEDKan, HaruhiEDRo, HaruhiEDTL), it will result in a thinner outline appearance.
Sm3n
19th February 2015, 04:34
After a few hours of trial and error, I think I finally figured out a way to do 'relative size' instead of only 'relative height' or 'relative width'. Yet since I'm more of the project manager and not an experienced programmer, I wouldn't be surprised if this implementation had bugs or performance issues.
Use the following test build at your own risk:
XySubFilter_Relative_Output_Size_Test3 (https://www.mediafire.com/?51050y9i9awju7x)
Guess what? You're my man! You made my day so thank you so much.
We only have to remember that it only displays correctly on video with square pixels.
4:3 for instance (non-square pixels) doesn't display like we expect :/
Am I right?
Do I watch lot of 4:3? Nope :) (if needed, we can try the Scale y/x. That's right?)
Cheers :thanks:
cyberbeing
19th February 2015, 08:21
Guess what? You're my man! You made my day so thank you so much.
Maybe not. :( I just discovered a major issue with that build which can cause display issues with styled ASS subtitles, even when not using style overrides... It looks like the Test1 & Test2 builds had the same issue, but I never noticed. That shouldn't be happening, so I've pulled the dl links for all the Relative Size Test builds until a solution is found. It should be fine with SRT and other non-styled subtitles for the time being, if that's all you watch. But you'd need to remember to disable the feature to not get unexpected behavior with some ASS scripts.
We only have to remember that it only displays correctly on video with square pixels.
4:3 for instance (non-square pixels) doesn't display like we expect :/
Am I right?
For subtitle display on anamorphic video without requiring Scale y/x compensation in the script, you need to set "Render Layout Options" to "Use AR Adjusted Video Size" in XySubFilter options. That this is still required on SRT seems to be an oversight, since I thought we were going to ignore that option on SRT and other non-styled subtitles. Either we forgot, or that change got lost somewhere.
If this is not what you are talking about, you'd need to give me an image example or sample.
[Edit: Nevermind, I think I see what you mean. You were probably talking about normal 4:3 video displayed on a 16:9 monitor like your older post (http://forum.doom9.org/showpost.php?p=1683653&postcount=537), where subtitles size would be smaller at 1440x1080 (horizontal padding) then they are at 1920x1080. I never noticed this, since I actually use a 4:3 CRT. So for example, when I watched fullscreen with a display size of 1920x1440, both 16:9 (1920x1080) & 4:3 (1920x1440) would have the same subtitle size with that build. Which also happens to be the reason that test build kept a constant size with your earlier vertical cropping example. It seems what is needed is probably a user toggle to easily switch between relative width and relative height behavior, since I'm unsure if there is any practical way to do this automatically while also supporting constant size on cropped video. I'll put some thought into it.]
[Edit2: You could somewhat workaround this in that Relative Size Test3 build by using FFDShow to always pad your 4:3 videos to 16:9 to match your display. Except then you'd potentially have long subtitle lines displayed within the horizontal padding, which you may not desire.]
Sm3n
19th February 2015, 16:10
Yep that's it, cyberbeing. :) You 100% understood what was my thought. (And I know how it's hard for you guys to get all my brain is trying to translate. I do my best. huhu)
I'll look into FFDShow. I thought about that to be honest and I think I might deal with that. So thx for the confirmation.
Well you know, I only use srt file anyway. I can easely costumize it, not too much. Just what it needs. :) It's a pretty good small sub's extention (maybe the best).
For instance, I'm a big BluRays sup's hater.
Cheers again. You do great job!
cyberbeing
19th February 2015, 17:36
New relative size build, refactored to resolve the issue which was causing unintended display issues with some ASS subtitles when enabled. Otherwise not much different in behavior to the previous Test3 build, other than it now just having a just a simple enable/disable toggle. Originally I had planned to add a second option with a modified version of vsfilter's default 'relative height' behavior which functioned similarly to my 'relative width' option, but I was unsuccessful in making it do exactly what I wanted. Unlike our developer, I'm just not familiar enough with how all the srt scaling logic interacts with each other.
So unfortunately Sm3n, you'll just need to disable the option when you require constant size with horizontal padding. I have modified the 'relative size' option to produce identical output at 1920x1080 display with and without the option enabled, which should at least make switching between the two a bit easier in that scenario.
XySubFilter_Relative_Output_Size_Test4 (https://www.mediafire.com/?g2t13bqwcg437gp)
Sm3n
20th February 2015, 14:47
That's very nice of you. I'm gonna give a try right away.
thx
cyberbeing
21st February 2015, 05:40
XySubFilter_Relative_Output_Size_Test5 (https://www.mediafire.com/?4lpklb7qo9hx11j)
Okay Sm3n, I think I've now finally gotten both your requests working, as well as some automated handling. I still need to simply the code significantly, but here is a preliminary new test build which adds the following 'Relative Output Size' modes for SRT and other unstyled subtitles:
'Display' = Maintain constant size in fullscreen.
This mode currently only functions with madVR, since it's the only consumer which reports the optional displayModeSize parameter. If using MPC-HC/MPC-BE/MPDN, the behavior reverts to 'Disable'.
'Width' = Scale determined by output width.
'Height' = Scale determined by output height.
'Disable' = VSFilter default behavior. Similar to 'relative height', except border & shadow size varies with video resolution.
Eamon
24th February 2015, 15:59
Hi guys,
I've got a bit of a newbie question here. Basically, I've been using aegisub for some typesetting effects to hardcode onto video.
I've always been using VSFilterMod for both aegisub and for hardcoding (I use Hybrid (http://www.selur.de/) program ver 2014.12.23.1).
But I have a problem. In Aegisub, when I rotate subtitles on the x and y axis (to give them depth), it shows up well on Aegisub but not so well when hardcoded. The end result is instead of text rotating into/out of the screen, it kinda slants on the z axis instead.
I'm not sure if this is a problem with the entire hardcoding process or just the filter I'm using in it.
So I tried using xysubfilter but Hybrid doesn't seem to like it. I keep getting a message about framerate node and that it'll ignore the stream. Btw, I use an avs script to load up everything.
Does anyone have any ideas?
vivan
24th February 2015, 17:22
Check script resolution (subtitle -> resample resolution in aegisub). If it's different from video resolution it will explain differences in rendering.
Eamon
24th February 2015, 18:29
Check script resolution (subtitle -> resample resolution in aegisub). If it's different from video resolution it will explain differences in rendering.
Checked. Both are 1280x720.
cyberbeing
24th February 2015, 19:06
I've always been using VSFilterMod for both aegisub and for hardcoding
If your issue with VSFilterMod only, I'm unable to easily help you. VSFilterMod contains a lot of unique tags and transform behaviors which aren't VSFilter compatible. If you authored your script with VSFilterMod, you must use VSFilterMod to hardsub it. Unless you require some of the special tags or functionality which VSFilterMod provides, I'd suggest just using xy-VSFilter for both authoring and hardcoding. Scripts authored with xy-VSFilter should be compatible with legacy VSFilter 2.39, MPC-HC VSFilter, and of course xy-VSFilter itself for hardcoding purposes.
But I have a problem. In Aegisub, when I rotate subtitles on the x and y axis (to give them depth), it shows up well on Aegisub but not so well when hardcoded. The end result is instead of text rotating into/out of the screen, it kinda slants on the z axis instead.
If this occurs when using xy-VSFilter for both authoring and hardcoding as well, I'd suggest you take some screenshots of the difference you are seeing.
I'm not sure if this is a problem with the entire hardcoding process or just the filter I'm using in it.
If your results in Aegisub appear differently than your subtitles when hardcoded, it is something wrong with your hardcoding process.
So I tried using xysubfilter but Hybrid doesn't seem to like it.
...
Btw, I use an avs script to load up everything.
If you are hardcoding, you need to use xy-VSFilter not XySubFilter.
That said, if you are already using an avs script to load and filter your video, the normal procedure for hardcoding subtitles is to then load them via TextSub (available when vsfilter.dll is loaded as plugin). As long as the video loaded in aegisub, the script playres, and the video you are hardsubbing are all the same resolution, you shouldn't have any unexpected display issues.
Eamon
25th February 2015, 00:55
If you are hardcoding, you need to use xy-VSFilter not XySubFilter.
Ah, I see. I didn't know that. I use XySubFilter to watch vids with styled subtitles on MPC.
Once I try hardcoding with xy-VSFilter, I'll let you know if it worked. Hopefully, it should.
By the way, is VSFilterMod outdated in comparison with xy-VSFilter? As in... is there any advantages of using VSFMod over xy-VSF?
cyberbeing
25th February 2015, 05:07
Ah, I see. I didn't know that. I use XySubFilter to watch vids with styled subtitles on MPC.
Once I try hardcoding with xy-VSFilter, I'll let you know if it worked. Hopefully, it should.
And I have to ask. Considering you already use XySubFilter, are you sure require hardsub (encode subtitles into the video, no subtitle filter required for playback) of your typesetting instead of softsub (mux into an mkv or external script, real-time subtitle filter playback)? Generally speaking, you should only hardsub something as a last resort since it hurts video compression. What exactly is your intended end goal and use-case?
By the way, is VSFilterMod outdated in comparison with xy-VSFilter? As in... is there any advantages of using VSFMod over xy-VSF?
Different purposes, as they clearly state on the VSFilterMod project page.
DON'T USE MOD VERSION FOR SOFTSUB. ONLY FOR HARDSUB! This is karaoke tool.
VSFilterMod is intended for hardsubbing only and contains extra tags and functionality at the expense of compatibility. If you are an advanced user who has already hit the limit of what is easily possible standard VSFilter, it may be easier to create some extremely complex typesetting or karaoke effects. Scripts authored by VSFilterMod are not intended for playback or distribution as external or softsubbed scripts. VSFilterMod is not your only option in this hardsub only, advanced effect, category. There are also things like SSBRenderer (http://forum.doom9.org/showthread.php?t=169951) which have started to define their own typesetting subtitle format, not even using ass scripts as a base.
xy-VSFilter is general purpose, and maintains a generally static feature set and tag behavior matching legacy VSFilter 2.39 (last official version released by original author Gabest, with behavior generally considered to define the .ass spec itself) with broad compatibility and interoperability in mind. It is intended for authoring, playback, softsubbing, hardsubbing, as well as external script distribution. The primary goal of xy-VSFilter specifically, is playback performance of complex typesetting and karaoke. xy-VSFilter also happens to be the default subtitle renderer for script authoring in Aegisub, and should generally be compatible for playback with MPC-HC VSFilter and Libass as well.
XySubFilter is intended for playback only. It allows higher quality subtitle rendering than xy-VSFilter, as well as scaling to high resolution in a VSFilter compatible way to maintain general visual appearance matching that of hardsubbing.
Eamon
25th February 2015, 22:41
And I have to ask. Considering you already use XySubFilter, are you sure require hardsub (encode subtitles into the video, no subtitle filter required for playback) of your typesetting instead of softsub (mux into an mkv or external script, real-time subtitle filter playback)? Generally speaking, you should only hardsub something as a last resort since it hurts video compression. What exactly is your intended end goal and use-case?
Well, I generally just mux standard subtitles. But for signs and other styled typesetting, I hardsub it because the native video is usually 720p so when I zoom fullscreen on a 1080p resolution, the hardcoded subs will stretch/blur similar to the video itself. If it was softsubbed, the styled subs would still look clear and therefore "unnatural." The purpose of the styled subs is to translate the original signs and naturally embed them into the video as if it was native.
VSFilterMod is intended for hardsubbing only and contains extra tags and functionality at the expense of compatibility. If you are an advanced user who has already hit the limit of what is easily possible standard VSFilter, it may be easier to create some extremely complex typesetting or karaoke effects. Scripts authored by VSFilterMod are not intended for playback or distribution as external or softsubbed scripts. VSFilterMod is not your only option in this hardsub only, advanced effect, category. There are also things like SSBRenderer (http://forum.doom9.org/showthread.php?t=169951) which have started to define their own typesetting subtitle format, not even using ass scripts as a base.
Thanks for the explanation. Really appreciate how you spent time explaining it. :)
xy-VSFilter is general purpose, and maintains a generally static feature set and tag behavior matching legacy VSFilter 2.39 (last official version released by original author Gabest, with behavior generally considered to define the .ass spec itself) with broad compatibility and interoperability in mind. It is intended for authoring, playback, softsubbing, hardsubbing, as well as external script distribution. The primary goal of xy-VSFilter specifically, is playback performance of complex typesetting and karaoke. xy-VSFilter also happens to be the default subtitle renderer for script authoring in Aegisub, and should generally be compatible for playback with MPC-HC VSFilter and Libass as well.
So I tried using xy-VSFilter to hardcode the subs this time. I couldn't get the avs script to load in Hybrid. I got the following message:
"Didn't find a 'frame rate' info node! -> Stream will be ignored"
I'm assuming it means I'm supposed to specify a framerate number somewhere in the avs script. But I hardly know how to use avs. This is how my current script (which I based on from somewhere on the net) looks like:
LoadPlugin("C:\Users\User\Desktop\encoding\MeGUI_2418_x86\tools\ffms\ffms2.dll")
FFVideoSource("C:\Users\User\Desktop\project\VID.mkv", threads=1)
#deinterlace
#crop
#resize
#denoise
LoadPlugin("C:\Users\User\Desktop\encoding\MeGUI_2418_x86\tools\avisynth_plugin\VSFilter.dll")
TextSubMod("C:\Users\User\Desktop\project\Hardcoding.ass", 1)
The VSFilter.dll is the xy-VSFilter. And the ffms2.dll is ffmpegsource latest dll (June 2014 I believe). Normally, once the avs script is loaded, I get the mediainfo encoding settings of the source video, convert it into x264 CLI command, copy and past it into Hybrid and apply. Then run the job, and it works. But I can't even begin any of that because Hybrid ignores it all due to some 'frame rate' info node problem. Any ideas?
Moragg
26th February 2015, 04:36
Hi there! Love all the stuff you guys are doing, I have one (small) issue that requires a very particular "solution":
Currently I'm using SVP to motion-interpolate panning scenes (works amazingly and is so much easier on the eyes). This is what I think currently happens:
Splitter (LAV)
Interpolation (SVP - an avisynth plugin called from ffdshow raw video filter)
Upscaling (madvr)
Subs & Typesetting (xy-subfilter)
Which works great - except for moving subtitles which look awful as they are not interpolated but the scene behind them is. Ideally it'd look like:
Splitter (LAV)
Typesetting (xy-subfilter)
Interpolation (SVP)
Upscaling (madvr)
Subs (xy-subfilter)
i.e. just the moving typesets (those lasting ~1 frame) need to be done before interpolation. Is it remotely easy and/or possible to do this beforehand, maybe by having a different subtitle renderer appear pre-interpolation for the moving typesets?
I realise its probably a lot more work than any of you would consider, so please think of it more theoretically - if it isn't I can just abandon all hope of it ever occurring.
One other beneficiary of this would be pixel art, which has to be rendered pre-resizing to work correctly, but isn't currently. Having a selective pre-scaling sub filter could be a useful thing.
cyberbeing
26th February 2015, 07:06
LoadPlugin("C:\Users\User\Desktop\encoding\MeGUI_2418_x86\tools\ffms\ffms2.dll")
FFVideoSource("C:\Users\User\Desktop\project\VID.mkv", threads=1)
#deinterlace
#crop
#resize
#denoise
LoadPlugin("C:\Users\User\Desktop\encoding\MeGUI_2418_x86\tools\avisynth_plugin\VSFilter.dll")
TextSubMod("C:\Users\User\Desktop\project\Hardcoding.ass", 1)
First, it should be TextSub and not TextSubMod if using normal VSFilter/xy-VSFilter. That alone would cause the avs script to throw an error, since the required function would not exist. Also, you'd normally load all your plugins at the beginning of script. If you are still getting a framerate error, try adding AssumeFPS (http://avisynth.nl/index.php/AssumeFPS) after FFVideoSource with your decoded video framerate. If that still doesn't work, move AssumeFPS after your #deinterlace, and set it to whatever the resulting framerate should be after deinterlacing+decimation.
Preview your script output with AvsPmod (https://avspmod.github.io/) to ensure it is functioning correctly.
Which works great - except for moving subtitles which look awful as they are not interpolated but the scene behind them is. Ideally it'd look like:
Splitter (LAV)
Typesetting (xy-subfilter)
Interpolation (SVP)
Upscaling (madvr)
Subs (xy-subfilter)
i.e. just the moving typesets (those lasting ~1 frame) need to be done before interpolation. Is it remotely easy and/or possible to do this beforehand, maybe by having a different subtitle renderer appear pre-interpolation for the moving typesets?.
XySubFilter does render subtitles at final video framerate (i.e. after SVP) at least with madVR. This will only improve the smoothness of animated tags though, like \move \t \fade. A lot of 'moving' typesetting nowadays isn't actually moving. Instead it's done static frame-by-frame with motion tracking based on absolute frame timestamps of the original video fps. There is no easy way to detect and reverse this process in the subtitle filter.
The workflow you are describing is beyond the scope of XySubFilter itself. Theoretically SVP developers could do this if they really wanted to though. It'd likely either involve writing a subtitle consumer+provider which sits between XySubFilter and madVR and performs SVP interpolation, or integrating SVP into a video renderer which supports a subtitle consumer. Otherwise, the only solution nowadays is to not use SVP interpolation at all, and just perform 'smoothmotion' frame-rate-conversion blending as supported by madVR and other renderers.
With xy-VSFilter you can already do something like this with video resolution subtitles, if you really want to use SVP. Install LAV Video. Install "FFDShow Raw Video Filter" only, and set to a merit of 00800002 in MPC-HC external filters. Set DirectVobSub(auto-loading version) to 00800003 in MPC-HC external filters. And you should end up with a graph like the following with SVP interpolating video+subtitles:
http://i.imgbox.com/lYphBIWm.png
Moragg
26th February 2015, 08:15
XySubFilter does render subtitles at final video framerate (i.e. after SVP) at least with madVR. This will only improve the smoothness of animated tags though, like \move \t \fade. A lot of 'moving' typesetting nowadays isn't actually moving. Instead it's done static frame-by-frame with motion tracking based on absolute frame timestamps of the original video fps. There is no easy way to detect and reverse this process in the subtitle filter.
The workflow you are describing is beyond the scope of XySubFilter itself. Theoretically SVP developers could do this if they really wanted to though. It'd likely either involve writing a subtitle consumer+provider which sits between XySubFilter and madVR and performs SVP interpolation, or integrating SVP into a video renderer which supports a subtitle consumer. Otherwise, the only solution nowadays is to not use SVP interpolation at all, and just perform 'smoothmotion' frame-rate-conversion blending as supported by madVR and other renderers.
With xy-VSFilter you can already do something like this with video resolution subtitles, if you really want to use SVP. Install LAV Video. Install "FFDShow Raw Video Filter" only, and set to a merit of 00800002 in MPC-HC external filters. Set DirectVobSub(auto-loading version) to 00800003 in MPC-HC external filters. And you should end up with a graph like the following with SVP interpolating video+subtitles:
http://i.imgbox.com/lYphBIWm.png
The lack of animated tags is indeed the issue :( I think I'll avoid interpolating normal subs though, its worse having all subs blurry than the (very rare) moving typesets annoying.
You did give me (a perhaps "easy") to implement idea: couldn't there be two subtitle renderers? One (xyvsfilter) pre-SVP to render only pixel art / the frame-by-frame typesetting, and one post-scaling (xysubfilter) to do all the rest?
It seems then the hard part (coding subtitle renderers) could be ignored, all it would need is filter(s) to decide which subs should be rendered when, probably based off duration of the subtitle.
Since the two subtitle renderers would have the same filter they don't need to communicate at all - and one would hope running two very similar things wouldn't cause any issues.
cyberbeing
26th February 2015, 12:56
You did give me (a perhaps "easy") to implement idea: couldn't there be two subtitle renderers? One (xyvsfilter) pre-SVP to render only pixel art / the frame-by-frame typesetting, and one post-scaling (xysubfilter) to do all the rest?
It seems then the hard part (coding subtitle renderers) could be ignored, all it would need is filter(s) to decide which subs should be rendered when, probably based off duration of the subtitle.
Since the two subtitle renderers would have the same filter they don't need to communicate at all - and one would hope running two very similar things wouldn't cause any issues.
Currently that's not possible, nor would we have any interest in supporting a solution which requires more than a single subtitle filter:
XySubFilter and xy-VSFilter are two distinct filters which share no resources, nor are they able to communicate.
XySubFilter and xy-VSFilter share the same api, and cannot co-exist in the same graph since without conflicts.
If someone were going to do this properly, they should base it off valid SubRenderIntf.h (http://madshi.net/SubRenderIntf.h) logic utilizing a single subtitle renderer. The simplest way would be for someone to take up development of our already existing yet rather broken XySubFilterConsumer project, fix all the bugs, and give it the role of pre-SVP. Then someone would need to modify XySubFilter provider to support two subtitle consumers (pre-scale & post-scale), along with a proper heuristic. We currently have zero active developers though, so it's very unlikely something like this would be worked on by us.
I still think you'd better off convincing a video renderer developer to integrate SVP-like frame interpolation and work from there, rather than create a hackish solution like this.
Moragg
26th February 2015, 13:51
Currently that's not possible, nor would we have any interest in supporting a solution which requires more than a single subtitle filter:
XySubFilter and xy-VSFilter are two distinct filters which share no resources, nor are they able to communicate.
XySubFilter and xy-VSFilter share the same api, and cannot co-exist in the same graph since without conflicts.
If someone were going to do this properly, they should base it off valid SubRenderIntf.h (http://madshi.net/SubRenderIntf.h) logic utilizing a single subtitle renderer. The simplest way would be for someone to take up development of our already existing yet rather broken XySubFilterConsumer project, fix all the bugs, and give it the role of pre-SVP. Then someone would need to modify XySubFilter provider to support two subtitle consumers (pre-scale & post-scale), along with a proper heuristic. We currently have zero active developers though, so it's very unlikely something like this would be worked on by us.
I still think you'd better off convincing a video renderer developer to integrate SVP-like frame interpolation and work from there, rather than create a hackish solution like this.
Very interesting. I never expected you to work on it, nor did I ever hope madshi would incorporate interpolation into madvr (which would be ideal). My hack was the best thing I could up with, but as you've said it can never work so I'll forget about it.
cyberbeing
26th February 2015, 14:52
Very interesting. I never expected you to work on it, nor did I ever hope madshi would incorporate interpolation into madvr (which would be ideal). My hack was the best thing I could up with, but as you've said it can never work so I'll forget about it.
The only solution today which doesn't require any coding effort, would require splitting up your scripts manually, since it is possible to use both xy-VSFilter and the MPC-HC ISR together if you set BlockVSFilter to False.
I do wonder if it is possible for madVR to add an option to apply smoothmotion style blending for subtitles, to at least resolve the fbf stuttering issue in scenarios like SVP or other subtitle framerate -> video framerate mismatches. I could imagine something like madVR requesting XySubFilter send subtitles at the original video typesetting framerate (via tag, or source filter framerate), then blending based on mismatches to the actually video timestamps. madshi isn't taking feature request right now, but I'll keep this issue in mind for the future. You may want to try fielding the idea at the MPDN dev as well, and see if he could make it possible to implement a solution via a custom Render Script or otherwise.
Moragg
27th February 2015, 01:31
The only solution today which doesn't require any coding effort, would require splitting up your scripts manually, since it is possible to use both xy-VSFilter and the MPC-HC ISR together if you set BlockVSFilter to False.
I do wonder if it is possible for madVR to add an option to apply smoothmotion style blending for subtitles, to at least resolve the fbf stuttering issue in scenarios like SVP or other subtitle framerate -> video framerate mismatches. I could imagine something like madVR requesting XySubFilter send subtitles at the original video typesetting framerate (via tag, or source filter framerate), then blending based on mismatches to the actually video timestamps. madshi isn't taking feature request right now, but I'll keep this issue in mind for the future. You may want to try fielding the idea at the MPDN dev as well, and see if he could make it possible to implement a solution via a custom Render Script or otherwise.
Thank you! Again I think its a rare problem, and not one worth worrying about for if it would require much effort.
I'll hold out hope that madshi at some point likes the idea of true interpolation, after madvr v1.x
Eamon
27th February 2015, 06:41
First, it should be TextSub and not TextSubMod if using normal VSFilter/xy-VSFilter. That alone would cause the avs script to throw an error, since the required function would not exist. Also, you'd normally load all your plugins at the beginning of script. If you are still getting a framerate error, try adding AssumeFPS (http://avisynth.nl/index.php/AssumeFPS) after FFVideoSource with your decoded video framerate. If that still doesn't work, move AssumeFPS after your #deinterlace, and set it to whatever the resulting framerate should be after deinterlacing+decimation.
Thanks. Yep, the problem was the "TextSubMod." I forgot that only VSFilterMod needed the "Mod" part in the avs script.
So I finally tested it out, and xy-VSFilter successfully hardcoded styled text that were rotated in the x and y axes. But the only problem is this came at the cost of certain styled karaoke I made. The karaoke required VSFilterMod to be correctly interpreted when hardcoded. With xy-VSFilter, the karaoke just goes bananas and isn't rendered properly.
This leads me to a new question. Is there a way to use two filters, VSFilterMod and xy-VSFilter to hardcode different parts of the video. I don't mean splitting the video into segments. I'd rather not split, since that would mean more rendering thus losing more quality. But being able to load specific filters for specific durations in a single hardcoding process. Is it possible to write such a command in an avs script?
cyberbeing
27th February 2015, 08:01
This leads me to a new question. Is there a way to use two filters, VSFilterMod and xy-VSFilter to hardcode different parts of the video.
If you load both VSFilter.dll and VSFilterMod.dll as plugins, it would give you access to both TextSub and TextSubMod. Move your VSFilterMod karaoke into a separate script and load it with TextSubMod. Move your standard VSFilter typesetting into a separate script and load it with TextSub. The order of your TextSub/TextSubMod commands would determine the blending order.
LoadPlugin("LSMASHSource.dll")
LoadPlugin("VSFilter.dll")
LoadPlugin("VSFilterMod.dll")
LWLibavVideoSource("source.mkv")
TextSub("vsfilter_typesetting.ass")
TextSubMod("vsfiltermod_karaoke.ass")
Eamon
27th February 2015, 14:30
I see. But what does blending order mean?
Also, I noticed you used LSMASHSource.dll. Was that on purpose? Is it better to use that plugin rather than ffmpegsource?
cyberbeing
27th February 2015, 16:02
I see. But what does blending order mean?
Subtitles will be alpha-blended onto the video frame in the order you have your TextSub/TextSubMod commands in your avs script. You can think of it in terms of layers. In my previous example, the TextSub typesetting would be blended first as the bottom layer, while the TextSubMod karaoke would be blended afterwords as the top layer.
Also, I noticed you used LSMASHSource.dll. Was that on purpose? Is it better to use that plugin rather than ffmpegsource?
No particular reason in this case, it's just what I had available at the moment when I was testing. LWLibavVideoSource is essentially the L-SMASH-Works equivalent of FFVideoSource from FFMS2.
Eamon
27th February 2015, 16:28
Thanks a huge bunch, cyberbeing, for the help and explanation. It's very difficult to find specific answers for specific problems on the net :)
maverick477f
9th March 2015, 23:19
Hello,
I have a question that maybe someone could answer.
When I use \fad (or \t(\alpha&HFF&)) in Aegisub (also visible in MPC-HC), with xy-VSFilter as renderer, border of the text becomes thinnier. This bothers me since I noticed it and I don't know if its supposed to look that way because with libass there is no change to the border (that I can see, anyway).
To make things easier I'm attaching an archive with four screenshots.
xyVSFilter_01.png - frame before fade starts
xyVSFilter_02.png - next frame
libass_01.png - frame before fade starts
libass_02.png - next frame
And the line:
{\fs500\shad0\1c&H00F6C3F4&\bord1\fade(0,1000)}TEXT
cyberbeing
11th March 2015, 00:54
It doesn't actually become thinner, it's only an illusion since the subpixel overlap between the border and body fades out of existence too quickly with VSFilter. The reason for the discrepency between VSFilter and Libass in this regard I believe is Issue #145 (There is a subpixel gap between the main glyph and the border) (https://code.google.com/p/xy-vsfilter/issues/detail?id=145). This was already fixed in XySubFilter Beta2 (with some limitations regarding text overlaps), but not yet with xy-VSFilter.
maverick477f
11th March 2015, 19:04
I see, so I decided to test xySubFilter.
I uninstalled everything, checked if xy-vsfilter.dll is unregistered and installed up to date Kawaii Codec Pack with xySubFilter 3.1.0.705 Beta 2. To my surprise there is no difference.
{\pos(603,45)\an5\be1\1c&H00F6C3F4&\t(1310,2110,\alpha&HFF&)}I be
I also tried to recreate Issue #145, tested line is
{\pos(603,45)\1c&H000000&\3c&H000000&\bord5}be
with secondary color alpha 55.
Font is Arial.
http://anony.ws/i/2015/03/11/text.th.png (http://anony.ws/image/DAho)
cyberbeing
12th March 2015, 14:11
Are you positive XySubFilter is being used? You'll need to ensure the MPC-HC ISR is disabled. Uncheck Playback -> 'Use built-in subtitle renderer' in MPC-HC setting, and confirm that XySubFilter is present under the filters context menu during playback. Also, if your test video has no audio track, you'll need to set XySubFilter General->Loading setting to 'Always Load'.
I cannot reproduce this, which is expected unless there is some discrepancy about your script+video which you aren't telling me about. If you are still seeing this problem when XySubFilter is used, I would request that you upload a complete sample (video+script+font) which can easily reproduce this. As mentioned, this should not happen with XySubFilter unless the bounding boxes from two lines are overlapping. That was the entire purpose of XySubFilter Beta2 introducing an 'addition draw' method to be used instead of 'alpha blending' when possible.
a8213711
12th March 2015, 16:06
Using MPC-HC I can't cycle through XySubFilter subs with keyboard shortcuts. Is this possible? If not, I think it should be implemented.
cyberbeing
12th March 2015, 22:57
Using MPC-HC I can't cycle through XySubFilter subs with keyboard shortcuts. Is this possible? If not, I think it should be implemented.
If they are internal subtitles, it's possible to cycle through by pressing 's' in MPC-HC. MPC-HC has not yet implemented support for cycling through external subtitles, or toggling subtitles on/off (directly) via hotkeys. This was part of this feature request (https://trac.mpc-hc.org/ticket/4122) from last year to support VSFilter api functionality in MPC-HC, but nothing has happened with it yet.
MPC-BE has already had full hotkey support for VSFilter/xy-VSFilter/XySubFilter for many years now, and so have players like ZoomPlayer. Support for the VSFilter api goes beyond just hotkey support, and also allows features like drag/drop, menu support, subtitle delay, and other such features to function.
maverick477f
13th March 2015, 00:43
Also, if your test video has no audio track, you'll need to set XySubFilter General->Loading setting to 'Always Load'.
Well, you can consider my issue resolved and thank you for your time. I will use xySubFilter for playback from now on.
One last question though, will xySubFilter be able to fade overlapping text in the future like libass can?
cyberbeing
13th March 2015, 09:29
One last question though, will xySubFilter be able to fade overlapping text in the future like libass can?
I assume you mean fade overlapping text without a subpixel gap between border and body. Unfortunately, the answer is probably not. Our developer didn't have much interest refactoring the alpha blending code to compensate for all corner cases. He deemed that adding the draw method was a more straightforward way to target the problem cases directly, simpler to implement, and likely better for overall performance.
With XySubFilter's current method, only the portions of the bounding boxes which overlap will use alpha blending, while non-overlapping portions will use the draw method. It's not an all or nothing thing. The main problem comes when the text is 3d transformed, since the bounding boxes are rectangular and can result in a false positives in terms of overlap from the excess empty space. In that respect, the overlap detection code could be improved if someone came up cache friendly method of dealing with the problem.
romulous
22nd March 2015, 07:56
Hi cyberbeing,
I have a sample clip here that shows the subs as transparent with xyVSFilter (3.0.0.306) and XYSubFilter (3.1.0.705). The nightly MPC-HC version of VSFilter.dll shows them non-transparent though, which is the desired effect:
https://dl.dropboxusercontent.com/u/105555957/Transparent.mkv (10.0MB)
Is this something that could be corrected in xyVSFilter and XYSubFilter?
Thanks,
romulous
cyberbeing
22nd March 2015, 09:42
I'm aware of this issue. The fix which MPC-HC used to support animated (fade-in/fade-out transparency) VOBSUB (https://github.com/mpc-hc/mpc-hc/commit/ec3fd94a) doesn't function with xy-VSFilter. The current behavior is a workaround to at least allow something to be shown rather than nothing (like VSFilter 2.39), but I'm unsure how to fix this properly without our developer around. I suspect somewhere in the queue or render code he is making assumptions that bitmap subtitles like VOBSUB would never be animated.
GCRaistlin
1st April 2015, 15:36
I've got the DVD and external subtitles for it. If I open the DVD with MPC-HC (via VIDEO_TS.IFO), start playing the movie and then open external subtitles via built-in subtitle renderer, they're displayed correctly. If I open them via XySubFilter, they're being displayed too early. But if I open the movie via VTS_01_0.IFO and then open external subtitles via XySubFilter, they work OK.
cyberbeing
1st April 2015, 20:51
Wasn't it you who asked this same question last year?
Taken at face value, I'm not sure what can be done about that when the DVD has adverts and menus before the main title. You'd probably just need to shift the timings of the external subtitle to compensate for the discrepancy.
Did the behavior you describe still function as you expect with MPC-HC VSFilter (rather than ISR)? If it does, maybe this could be fixed. If doesn't, I'd suggest filing a bug with MPC-HC since I have no idea how they are handling this with the ISR and if whatever they are doing is still possible with external filters like VSFilter or XySubFilter.
I assume MPC-HC must either shift timestamps or reset the ISR on DVD folders, so external subtitles are not shown prior to the main movie starting. It may only be able to do this, since MPC-HC itself it actually managing opening and playback of the DVD. I don't really know. One solution could be for the Subtitle Consumer (i.e. EVR-CP or madVR) to automatically compensate the REFERENCE_TIME reported by RequestFrame if they are aware of the correction needed.
GCRaistlin
1st April 2015, 21:11
Yes, it was me.
Did the behavior you describe still function as you expect with MPC-HC VSFilter (rather than ISR)?
Yes, the external subtitles are being displayed correctly with VSFilter 1.7.1.322.
they're being displayed too early
To be precise, they're being displayed too fast and, as a result, too early.
cyberbeing
2nd April 2015, 04:28
This actually seems to be a madVR bug. It's probably reporting incorrect timestamps to XySubFilter with DVDs.
I am unable to reproduce this when using XySubFilter with EVR-CP or with xy-VSFilter.
SecurityBunny
12th April 2015, 21:13
MadVR just updated to support an x64 build to go along with MPC-HC x64. Is there any possible way to get XySubFilter to function with the 64 bit versions? As it is the only thing I'm missing that is a necessity for me to completely update my 'high quality' playback setup.
sneaker_ger
12th April 2015, 21:16
Do the 64 bit builds linked on the google page not work for you?
https://code.google.com/p/xy-vsfilter/wiki/Downloads
SecurityBunny
13th April 2015, 06:55
Do the 64 bit builds linked on the google page not work for you?
https://code.google.com/p/xy-vsfilter/wiki/Downloads
Doh! I feel like an idiot, completely neglected to look at the x64 section. Thanks.
dansrfe
26th April 2015, 07:27
Is there a way to render relative to madVR's frame so that the subtitles can be rendered within the black borders when e.g. 2.4 A/R video is full-screen on a 1.78 A/R screen?
cyberbeing
26th April 2015, 08:04
Is there a way to render relative to madVR's frame so that the subtitles can be rendered within the black borders when e.g. 2.4 A/R video is full-screen on a 1.78 A/R screen?
Recently madshi stated he had finally started work on supporting this in madVR, so hopefully we'll see support sometime soon. The delay up to this point is mainly because madVR currently has no capability of rendering anything in the black borders within the normal render chain, which requires madshi to do a somewhat major refactor.
That problem is somewhat unique to madVR though. For other subtitle consumers like EVR-CP & MPDN, all they'd likely need to do is request the subtitles repositioned as described in SubRenderIntf.h (http://madshi.net/SubRenderIntf.h) and it should just work.
Magik Mark
7th May 2015, 03:27
Can somebody help with this:
I have no problem in playing xysubtitle as along as its embedded. External ones wont just load. I'm using madvr, mpcbe & reclock. All latest versions.
cyberbeing
7th May 2015, 06:32
Someone else had an issue with like this recently, and they were able to resolve it by completely uninstalling and then re-installing ReClock with default settings.
Magik Mark
7th May 2015, 06:53
I just reinstalled reclock. Same problem. Is there a particular setting? Other subfilter renderer is working fine. I just prefer xysubfilter because of its HD rendering
cyberbeing
7th May 2015, 07:18
All the user said is they removed Reclock completely, reinstalled it, and removed everything from external filters in MPC-HC and then it worked. Does it work for you with MPC-HC instead of MPC-BE? Have you tried re-installing XySubFilter? You can also try some of the troubleshooting steps I listed here (https://code.google.com/p/xy-vsfilter/issues/detail?id=193), but I'm not really sure what causes this since that user was able to resolve their problem with what I mentioned.
I suspect it's probably some kind of conflict with the ReClock Helper filter who's function has been rather mysterious and unreliable in the first place.
Magik Mark
10th May 2015, 01:48
Did a clean install of my system. Subtitle rendering for both embedded and external are now working. However, for the external the txt is not HD. Tried tinkering the setting, nothing happens. Any thought guys?
nijiko
12th May 2015, 06:41
Is this one dead?
ryrynz
12th May 2015, 08:14
I'd stay in stasis..
nijiko
13th May 2015, 03:30
There're too many bugs. And not update...
ashlar42
20th May 2015, 21:18
Could anybody be so kind as to explain the Speed Ratio functionality under "Timing" panel? Say I have NTSC subtitles and I'd like to use them converted to PAL timings (+4% speed). How should I proceed?
Thunderbolt8
24th May 2015, 00:53
There're too many bugs. And not update...which bugs, how many?
when watching movies or TV shows with .ass subs I never really spot any.
ashlar42
26th May 2015, 01:56
Recently madshi stated he had finally started work on supporting this in madVR, so hopefully we'll see support sometime soon. The delay up to this point is mainly because madVR currently has no capability of rendering anything in the black borders within the normal render chain, which requires madshi to do a somewhat major refactor.
That problem is somewhat unique to madVR though. For other subtitle consumers like EVR-CP & MPDN, all they'd likely need to do is request the subtitles repositioned as described in SubRenderIntf.h (http://madshi.net/SubRenderIntf.h) and it should just work.
Any news on this? :)
xabregas
19th June 2015, 20:29
Recently madshi stated he had finally started work on supporting this in madVR, so hopefully we'll see support sometime soon. The delay up to this point is mainly because madVR currently has no capability of rendering anything in the black borders within the normal render chain, which requires madshi to do a somewhat major refactor.
That problem is somewhat unique to madVR though. For other subtitle consumers like EVR-CP & MPDN, all they'd likely need to do is request the subtitles repositioned as described in SubRenderIntf.h (http://madshi.net/SubRenderIntf.h) and it should just work.Any news on this? :)
Will it happen this year?
jriker1
13th July 2015, 16:12
When using x-y-vsfilter with AVISynth do you have to "install" anything or just copy the vsfilter.dll to the avisynth plugin folder and reference textsub in the script?
Also I've read with vsfilter that it has some kind of box artifact around the subtitle when hard subbing, almost like it's applying the text as an image with transparent background but it's not quite transparent. Are there any noticeable artifacts that x-y-vsfilter creates?
Lastly, is there anyway to take a subtitle file that contains forced subtitles and tell it to only output the forced ones? Not sure if this can only be done in SUP files, which guessing isn't supported by x-y-vsfilter, but perhaps I'm mistaken. If it is, any way to convert a SUP file to another format and maintain the forced flag? Or do you just have to create a separate file with just the forced content and apply that?
Thanks.
JR
foxyshadis
15th July 2015, 05:11
Or do you just have to create a separate file with just the forced content and apply that?
Exactly that. Text subtitles are displayed whole or not at all; forced subtitles become separate tracks that have just the forced content.
Siso
15th July 2015, 10:11
I was wondering if it would be possible to have an option for paragraph alignment for example left aligned paragraph subtitles?
Regards.
foxyshadis
16th July 2015, 11:18
I was wondering if it would be possible to have an option for paragraph alignment for example left aligned paragraph subtitles?
Regards.
That's always been part of the SSA specs. Set the alignment field to 1 for left-justified. Unless you mean fully-justified, where width is always the same; that's not a part of the specs.
Siso
16th July 2015, 11:23
That's always been part of the SSA specs. Set the alignment field to 1 for left-justified. Unless you mean fully-justified, where width is always the same; that's not a part of the specs.
My idea was: the subtitles to be centered , but the alignment of the sentences etc. to be left aligned (paragraph).
octal9
16th July 2015, 14:48
Can somebody help with this:
I have no problem in playing xysubtitle as along as its embedded. External ones wont just load. I'm using madvr, mpcbe & reclock. All latest versions.try switching xysubfilter to "always load" in the loading section of xysubfilter's options - this helped my as i was having problems of subs not always loading. (i'm using the same setup as you)
jriker1
16th July 2015, 22:55
I'm going nuts with this and trying to understand what I'm doing wrong. Using aegisub to format my ass file. I center it bottom middle and then raise things up like 40 pixels or whatever. Looks good in the editor. Apply it to all subtitles. When I run it thru avisynth its always puts the subs at the very bottom of the video. Doesn't xy-vsfilter honor settings in ass files?
Thanks.
JR
huhn
17th July 2015, 10:28
can you share an example?
avisynth script and the ass.
and don't forget to add the fonts to the system fonts.
jriker1
17th July 2015, 16:20
can you share an example?
avisynth script and the ass.
and don't forget to add the fonts to the system fonts.
Sure thing. Funny part is, even though I chop off 20 pixels of black bars on the top and bottom of the video after the subs are burned in, still goes to the bottom. Either some overscan on my Panasonic Plasma or something else is going on. Figure if I don't change the video width but reduce the height it would show more on the screen vertically not less. Anway, guessing as I'm using Arial adding fonts won't be an issue but here you go:
AVS file is very simple:
avisource("district.avi")
TextSub("district_Subtitles.ass")
ass file looks like this. Unless you want all 211 subs cut it after a few:
[Script Info]
; Script generated by Aegisub 3.2.2
; http://www.aegisub.org/
Title: Untitled
ScriptType: v4.00+
PlayDepth: 0
YCbCr Matrix: TV.601
PlayResX: 1920
PlayResY: 1080
[Aegisub Project Garbage]
Last Style Storage: Default
Audio File: district.M2TS
Video File: district.M2TS
Video AR Mode: 4
Video AR Value: 1.777778
Video Zoom Percent: 0.500000
Scroll Position: 78
Active Line: 83
Video Position: 48024
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Riker,Arial,60,&H00FFFFFF,&H0300FFFF,&H00000000,&H02000000,-1,0,0,0,100,100,0,0,1,2,2,2,0,0,100,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:04:55.25,0:04:57.59,Riker,,0,0,0,,I think they must fix that \Nand they must go.
Dialogue: 0,0:04:57.75,0:05:00.21,Riker,,0,0,0,,A virus, a selective virus.
Dialogue: 0,0:05:00.96,0:05:02.05,Riker,,0,0,0,,Release it near the water.
Dialogue: 0,0:05:02.26,0:05:05.34,Riker,,0,0,0,,They must just go. I don't know where,\Nbut they must just go!
Note the 100 on the MarginV was 60 last time. Trying to crank it up a bit and see if it still shows on the bottom.
Thanks.
JR
huhn
18th July 2015, 00:32
Sure thing. Funny part is, even though I chop off 20 pixels of black bars on the top and bottom of the video after the subs are burned in, still goes to the bottom. Either some overscan on my Panasonic Plasma or something else is going on. Figure if I don't change the video width but reduce the height it would show more on the screen vertically not less. Anway, guessing as I'm using Arial adding fonts won't be an issue but here you go:
can you please first check if the possion on of the subs is correct when the file is played on your PC?
amayra
7th August 2015, 17:14
how about this you no release it XySubFilter Test 3.1.0.741 :(
Tornado15550
21st August 2015, 11:10
With Google Code going read-only on the 25th of this month, will you be transitioning the project to Github or some other repository?
amayra
22nd August 2015, 15:56
With Google Code going read-only on the 25th of this month, will you be transitioning the project to Github or some other repository?
this is the official repository :
https://github.com/Cyberbeing/xy-VSFilter
iakoboss7
10th September 2015, 01:33
hello, are you gonna release a new beta version with the latest changes after the previous one?
ashlar42
13th September 2015, 15:23
Pardon my ignorance but could somebody explain to me the high resolution rendering of xySubFilter as opposed to what xyVSFilter does? I am using xyVSFilter in order to have subs rendered on black bars in Kodi (DSPlayer version) while using madVR, I set "Renderer layout option" to 1920x1080 and I see text based subs (ie. SRT) rendered at native res. What am I missing?
vivan
13th September 2015, 19:56
If you're watching 1080p video on 1080p screen then subs will be rendered at native resolution (except chroma, which will be 4:2:0 as video). However when video resolution is lower than screen resolution (i.e. DVD), then, when using xyVSFilter you'll get subs rendered at low resolution which will look bad.
Renderer layout option only affects styles scaling. E.g. if you choose font size of 50 pixels - then it will be 60 pixels on 1920x1080 video, but 40 on 1280x720. For unstyled subs (SRT) using this option is a good idea (hope it will become default for them in future), except when videos have different aspect ratio. But with styled subtitles (ASS) it could have unpleasant effects.
ashlar42
4th October 2015, 12:14
Are developers still working on xySubFilter? madshi would apparently be ready to work on black bars rendering for subs but there doesn't seem to be anyone working on xySubFilter :(
madshi
4th October 2015, 20:06
There ever only was one dev, and from the looks of it, he might be gone. I've emailed him. If he doesn't show up, maybe I can hack something in to work around the missing features. No promises, though.
ashlar42
5th October 2015, 10:50
Much appreciation flowing in your direction, madshi, even with no promises. :)
And by the way, if this project has been abandoned by its dev... am I right in understanding that there currently is not another actively developed subs filter?
vivan
5th October 2015, 12:05
There's also a libass, but it's one of the reasons why people are LOLing at VLC. Like the last time I used it it either corruped entire video or crashed because typesetting was too heavy.
ashlar42
5th October 2015, 13:35
Yeah... well, at least, all this being open source, one can always hope that somebody capable enough will keep the candle lit.
madshi
11th October 2015, 20:49
New build uploaded by cyberbeing (see first post in this thread) - thanks!
steakhutzeee
11th October 2015, 22:38
I'm using XySubfilter 3.1.0.705 (git caded62), what's last version? 3.1.0.744 (git 50985e9)?
Matching_Mole
14th October 2015, 11:27
Hi,
Is it a key shortcut to load external sub files with XySubFilter as we can with MPC-HC (CTRL+L)? And if not, could this be implemented?
I use it all the time in MPC-HC to add subtitles to my Blu-ray on the fly (because they dont have one in my language, or because the muxed one are too large and too present on the screen). Now that madVr is able to use black border with XySubFilter, this is last piece that is missing for me to definitively outperform the internal sub rendrer of MPC.
sneaker_ger
14th October 2015, 18:24
I don't think it's possible, XySubFilter integration into MPC-HC is not very good. You might have more luck with MPC-BE.
jfcherng
16th October 2015, 11:49
Environment:
madVR: v0.89.11 x64
XySubFilter: 3.1.0.744/745 x64
ASS script:
[Script Info]
PlayResX: 1920
PlayResY: 1080
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: A,Arial,62,&H00FFFFFF,&HF0000000,&H006C3300,&H00000000,0,0,0,0,100,100,5,0,1,5,0,2,25,25,20,1
Style: B,Arial,20,&H00FFFFFF,&HF0000000,&H006C3300,&H00000000,0,0,0,0,100,100,5,0,1,5,0,2,25,25,20,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.00,9:00:00.00,A,,0,0,0,,Big Fontsize{\rB}Small Fontsize
Current result:
http://i.imgur.com/34F7zcy.png (XySubFilter 3.1.0.744/745 x64)
Expected result:
http://i.imgur.com/MjaITfG.png (XySubFilter: 3.1.0.705 x64)
http://i.imgur.com/ZS5Ng5N.png (Aegisub)
By the way, is there no issue page on the official github repo?
It takes a week for a newly registered user to post reply here.
cyberbeing
16th October 2015, 15:25
Should be fixed in 3.1.0.746 (see first post or Github for the DL link).
I've also enabled the Github issue tracker as well, which does seem to be needed now that GoogleCode has been defunct for quite awhile. Just keep in mind there is currently no active developer, so chances of anything other than regressions being fixed is rather slim.
jfcherng
16th October 2015, 15:43
Should be fixed in 3.1.0.746 (see first post or Github for the DL link).
I've also enabled the Github issue tracker as well, which does seem to be needed now that GoogleCode has been defunct for quite awhile. Just keep in mind there is currently no active developer, so chances of anything other than regressions being fixed is rather slim.
Good work anyway :thanks:
agustin9
17th October 2015, 01:29
Is there a way to reset the subtitle delay back to 0 everytime? Thanks!
Dlget
25th October 2015, 21:10
Something Causing Memory Leak in XY Subfilter 3.1.0.746_x64_BETA3.
If i use XY Subfilter RAM usage becomes 99% & pc hangs.
I used MadVR & EVR custom & found hang.However EVR don't have this.
http://forum.doom9.org/showthread.php?p=1744306#post1744306
cyberbeing
26th October 2015, 03:14
Is there a way to reset the subtitle delay back to 0 everytime?
Use MPC-BE with the F1 / F2 hotkeys to change it temporarily via the api, instead of setting it permanently in settings.
Something Causing Memory Leak in XY Subfilter 3.1.0.746_x64_BETA3.
If i use XY Subfilter RAM usage becomes 99% & pc hangs.
I used MadVR & EVR custom & found hang.However EVR don't have this.
http://forum.doom9.org/showthread.php?p=1744306#post1744306
How do I reproduce this?
What subtitle format, sample, media player?
When you state RAM usage becomes 99%, how much RAM are we talking about which is reported used by MPC-HC?
How much RAM do you have free/standby on your system as reported by Resource Monitor before you start playback?
What is the Cache Size(MB) being reported as in options?
Does manually reducing it resolve the problem?
Does the issue only occur with 3.1.0.746, but not 3.1.0.705 and prior?
Does this only occur on Windows 10? Are you able to test on another computer using a different OS?
Dlget
30th October 2015, 05:56
How do I reproduce this?
What subtitle format, sample, media player?
When you state RAM usage becomes 99%, how much RAM are we talking about which is reported used by MPC-HC?
How much RAM do you have free/standby on your system as reported by Resource Monitor before you start playback?
What is the Cache Size(MB) being reported as in options?
Does manually reducing it resolve the problem?
Does the issue only occur with 3.1.0.746, but not 3.1.0.705 and prior?
Does this only occur on Windows 10? Are you able to test on another computer using a different OS?
I'm using 746 beta 3 & with 705 it was okay(don't know if 746 created this bug).
I'm using Win7.I restored XYSubfilter Setting
Any Video Format with any subtitle.(tested mp4,mkv with embedded subtitle & external subtitle both srt & ass)
I restored XYsubfilter setting & no hang.
But i only changed renderer height & width to my display size.
Didn't touched cache setting.(set to -1 auto)
[Somehow more memory is used for cache????]
I got 8GB DDR3 RAM & during hang i can see 6GB sucked by mpcbe(xysub inside).
With MPC-BE's internal subtitle filter no problem.
Don't know how to give debug report for Xysubfilter although i would like to give
agustin9
1st November 2015, 01:20
Use MPC-BE with the F1 / F2 hotkeys to change it temporarily via the api, instead of setting it permanently in settings.
Thanks for answering. I change it using the hotkeys but it gets stored...
cyberbeing
1st November 2015, 02:59
Thanks for answering. I change it using the hotkeys but it gets stored...
You must be doing some wrong then:
A) You didn't remember to set the delay back to 0ms before using the MPC-BE hotkeys for the first time.
B) After you are changing it via MPC-BE hotkeys, you are entering XySubFilter options and saving the delay permanently by clicking OK or Apply.
romulous
7th November 2015, 02:26
Quick question - does XYSubFilter and xy-VSFilter support Teletext subtitles? I have a sample file for which MediaInfo has this to say:
Text #1
ID : 5303 (0x14B7)-888
Menu ID : 8931 (0x22E3)
Format : Teletext
Language : English
Text #2
ID : 5304 (0x14B8)
Menu ID : 8931 (0x22E3)
Format : DVB Subtitle
Codec ID : 6
Duration : 1mn 56s
Delay relative to video : -300ms
Language : English
So two subtitle streams. The only thing exposed by XYSubFilter and xy-VSFilter is the DVB stream however.
romulous
cyberbeing
7th November 2015, 08:44
I'm not sure if DVB Teletext is supported or not, since I don't have any such samples. If it doesn't work with MPC-HC ISR either, the answer is probably no.
Also, the subtitle filter takes no part in exposing muxed subtitle streams. If you have a sample where one of the subtitle streams isn't exposed, that would be a splitter problem first.
romulous
7th November 2015, 08:59
Sample here:
https://mega.nz/#!4t41nRgA!JOC4KHpQH88upPj9iwI75KZp8rcz-rKiLjLwRBM3LTg (71MB)
Definitely only one stream is exposed, I will post this to the LAV thread (as the affected component).
romulous
Knight77
29th November 2015, 07:54
After many many test I can confirm that the function to move the subs in the black bars
http://i.imgur.com/KU5BCFS.jpg
In both my PC works only if I use xysubfilter.dll 745 or previous. Why? Can anyone give me a solution about this? I'd like to use the last version :-(
I got that version by aracnoz in a post in Dsplayer thread and is the only one working (both in dsplayer and mphc)....
jmonier
29th November 2015, 18:49
You might get a better response by posting this in the madVR thread.
Nullack
1st December 2015, 09:10
So I downloaded the latest beta and did some tests. My setup is I use the nightly x64 MPC-HC builds along with the nightly x64 LAV filters build. I run the external nightly LAV filters only in MPC-HC. I use DXVA 2 on my Nvidia GTX 960 in Native mode, including HD and UHD resolutions. My display is a 65" curved LED 3D display, 4K UHD. I've noticed with my setup and testing that the performance of this beta is not OK for most common frame speeds in video. For example, 24 fps is around 41ms paint time, and with this beta enabled I see paint time spiking above that when obviously it needs to be below the frame rate for smooth playback. With even higher frame rate footage the problm is worse, say with 60 FPS material it needs to be under a frame time of 16 ms.
For the time being Ive gone back to the internal MPC-HC subtitle filter which does not have the problem of causing frame spikes with subtitles.
cyberbeing
2nd December 2015, 03:10
I run the external nightly LAV filters only in MPC-HC. I use DXVA 2 on my Nvidia GTX 960 in Native mode, including HD and UHD resolutions.
What video renderer are you using?
With XySubFilter at high resolution you should really use madVR so you get subtitle buffering. EVR-CP doesn't yet buffer subtitles frames for any render except the ISR.
If you are already using madVR and having this issue with SRT subtitles, it seems be be a performance problem with madVR's black bar support + DXVA Native. I've now opened a bug for this madVR issue, which you can follow. If you have any additional details which I missed, please add them in a comment: http://bugs.madshi.net/view.php?id=363
If you use DXVA2 (copy back) in LAV instead, you shouldn't run into this issue. The DXVA2cb-direct mode in LAV should have decoding performance nearly identical to DXVA2 Native with your GTX960, so there is no reason not to just use it at all times.
In both my PC works only if I use xysubfilter.dll 745 or previous. Why? Can anyone give me a solution about this? I'd like to use the last version :-(
The only difference in 744 & 745 is those builds flagged all text subtitles as movable, whether styled or not. The 746 build was changed so it doesn't flag subtitles with style override tags as movable. Unfortunately this means if you have SRT subtitles containing style tags like bold or italic, they may get incorrectly flagged as unmovable. This will likely get resolved in some future build.
This was mainly done, since support for movable ASS subtitles containing typesetting would need to be done on a per bitmap basis to be supported well. The current implementation in madVR only functions on a per script basis which only makes it practical for text subtitles without typesetting. The current implementation is a bit of a hack by madshi to get it somewhat working. Anything more complex would need to be implemented in XySubFilter itself, but we currently don't have an active developer to finish implementing proper subtitleTargetRect movable subtitle support as originally intended by the subtitle interface.
Nullack
2nd December 2015, 05:13
Thanks and understood. The reason Im using EVR CP as a media foundation renderer is because with madVR I cant get my frametimes down enough to keep pace. I run DXVA 2 in native mode. I fiddled around with a whole bunch of settings and I was not able to get madVR to do 4K UHD with paint times below the frame interval for common FPS speeds. It wasnt just 60 fps material, some of it was 30 fps material. Using just DVXA2 native with EVR CP and with HEVC level 5.2 MAIN 10 3840P60 under full hardware acceleration from my GTX 960 GPU, my max paint times are still just above the 17 ms or so for 60 FPS material, maxing at 25 ms but most frames around 5-7 ms. So even with the fastest hardware accelerated setup on the EVR CP Im still seeing max frame times above 60 fps complex content. Madvr is even worse.
cyberbeing
2nd December 2015, 07:25
Just to confirm. I'd assume you'd see a similar performance problem with the ISR if you set "Sub Pictures to Buffer" to 0 in MPC-HC settings?
If not, I'm not too sure what could be causing your high render times. On my system at least, XySubFilter + MPC-HC EVR-CP has avg paint times of ~0.3ms at 4K, with a split-second paint time spikes each time a subtitle line is rendered. ISR + MPC-HC EVR-CP behaves the same way if I set "Sub Pictures to Buffer" to 0. Either way, if using EVR-CP you are better off using the ISR at 4K so you get subtitle buffering. EVR-CP does have a render buffer (EVR Buffers?) of some kind for video frames, but I'm not sure if it would help hide for paint time spikes you are seeing when using XySubFilter or not. You'd need to ask in the MPC-HC thread.
With madVR + XySubFilter, it should be possible to get decent performance at 4K 60fps HEVC with DXVA2-Copyback if you lower madVR's settings enough. I have a GTX770 which is around the same power as your GTX960. With 3840x2160p60 video at 4K display, very low render times such as <6ms avg and <10ms max should be possible with subtitles. In madVR you don't even need to worry about the max (5s) render time much, since if it's small and infrequent enough it will be completely hidden by madVR's render queue. If you're not seeing any frame drops reported or otherwise visible when using madVR, you're just fine.
Try low settings such as Spline36 AR Luma + Catmull-Rom Chroma + Ordered Dithering + CPU Queue 24 + Render Queue 6 + Present Queue 6 + DX9 Fullscreen Exclusive + Smooth Motion + 'optimize subtitle quality for performance' + 'don't use linear light for dithering + 'don't use linear light for smooth motion blending' to start with, and increase settings from there. You should definitely be able to get render times below 16ms at 4k using DXVA2-Copyback and those settings. If not, try disabling Smooth Motion.
I believe there are a few people here on Doom9 have a GTX960 and a 4K display, so they may be able to help you further in the madVR thread with tweaking settings, if you're still having trouble getting acceptable 4K 60fps performance.
Nullack
2nd December 2015, 09:08
Thanks very much for the time and wisdom in your response I greatly appreciate it :)
Your exactly correct, when setting the ISR to 0 buffered subs I see the same sort of paint time spikes as with Xysubfilter using the EVR-CP renderer. Its for sure the cause. Setting it back to 10 fixes the spikes.
I will work on madVR and persist with trying to find settings which work OK.
As too whats causing my current render times Ill fiddle around between CB and native, try different output resizers for the EVR-CP the default is bilinear I had been using Bicubic A = 1.00 PS2.
I have observed that xysubfilter tends too look better than the ISR and it seems more accurate with punctuation etcetc so Ill stick with it and try to configure madVR.
Thanks very much for all the help mate.
romulous
10th December 2015, 12:44
Hi,
I have a DVB sample which does not appear to show the subtitles in the correct place, and I am trying to work out where the problem lies (sub renderer, player etc). Here is the sample:
https://mega.nz/#!twQwSAjY!AxQEHK1MY5fkXBb9oASjhubm1jkLWk4RRCnFiWQbq8Y (100MB)
So, with xy-VSFilter, the subs show down towards the bottom of the video, but slightly to the right hand side. With XYSubFilter, the subs show bunched up in about the middle of the video, on the very left hand side. I'm sure that XYSubFilter is not correct (the subs should be at the bottom of the video, centered I believe), and I don't think xy-VSFilter is correct either (it appears they are slightly to the right instead of the center, at least to my eyes).
Any advice would be appreciated. Using xy-VSFilter 3.0.0.306 with EVR (non custom) and XYSubFilter 3.1.0.746 with madVR v0.89.17.
romulous
KoD
17th December 2015, 20:17
If you see on the madVR OSD (Ctrl+J in MPC) that the resizer used is DXVA like in the screenshots here (http://forum.doom9.org/showthread.php?p=1749986#post1749986), then you have exactly the issue I have reported since the 16th of November.
romulous
20th December 2015, 02:16
Thanks KoD. Yes, OSD shows DXVA. It took me a while to track the cause of that down - I do not have any of the DXVA options in the scaling algorithms selected. As it turns out, disabling 'Automatically Enabled Deinterlacing when Needed' option in madVR fixes the issue. Obvious madVR bug.
romulous
Sm3n
21st December 2015, 16:49
hi :)
I still don't 100% understand how to make my subtitles always rendering the same size/aspect no matter which resolution the movies are.
It's been a while now I'm using your plugin with both (the last) mpc-hc & madvr.
I noticed that the size is smaller if the movie I'm watching is cropped. is it possible to ask to madvr or your plug to always be applied (after the rendering?) on a 1920x1080 screen.
of course I tried everything that is in my knowledge by changing the options. But I see no other thing I can do except asking here, again. ^^'
of course you'll get what I mean. uhuh
cheerz thanks in advance.
KoD
22nd December 2015, 15:41
Thanks KoD. Yes, OSD shows DXVA. It took me a while to track the cause of that down - I do not have any of the DXVA options in the scaling algorithms selected. As it turns out, disabling 'Automatically Enabled Deinterlacing when Needed' option in madVR fixes the issue. Obvious madVR bug.
romulous
It's actually not a bug. DVB streams are very likely interlaced content, so performing deinterlacing on them is what's expected if the decoder does not do it by itself. I would guess that you have "use DXVA chroma upscaling when doing native DXVA decoding" and/or "use DXVA chroma upscaling when doing DXVA deinteracing" enabled in the rendering > trade quality for performance madVR settings page, as they are enabled by default, which combined with your other settings is why you saw DXVA being used for resizing. If you disable these settings, then DXVA will no longer be used for scaling as long as you don't enable it explicitly in the image down/upscaling page. The "Automatically Enable Deinterlacing when Needed" should stay enabled, or your TV streams will not be deinterlaced and will look worse. ;)
Anyway, the latest madVR release 0.89.19 has fixed the issue of vobsub positioning, so even if you use DXVA for scaling, it will still be ok.
hi :)
I still don't 100% understand how to make my subtitles always rendering the same size/aspect no matter which resolution the movies are.
It's been a while now I'm using your plugin with both (the last) mpc-hc & madvr.
I noticed that the size is smaller if the movie I'm watching is cropped. is it possible to ask to madvr or your plug to always be applied (after the rendering?) on a 1920x1080 screen.
of course I tried everything that is in my knowledge by changing the options. But I see no other thing I can do except asking here, again. ^^'
of course you'll get what I mean. uhuh
cheerz thanks in advance.
If you use xy-vsfilter, then the subtitles are rendered on top of the original video frame, before the renderer gets the frame and scales it up to 1920 x 1080.
If you use xy-subfilter, then the renderer gest the original video frame, scales it up to 1920 x 1080 and then renders the subs on top of this scaled up frame - this is when you get those crisp looking subs.
I guess the latter is exactly what you want! :)
So, if you are not using the xysubfilter.dll yet, download the archive containing it from the first page, place its content in a folder somewhere (and don't move it afterwards from there), right-click on the "Install_XySubFilter.bat" file and select "Run as administrator".
Then if you are using MPC-HC, make sure to select in its Options -> Playback -> Output settings page a renderer like EVR (custom presenter) or madVR which can use xy-subfilter, and chose XySubFilter as the Subtitle renderer on the same page.
And if you are using madVR, then in its processing -> zoom control settings page, disable "move subtitles", or you will get randomly resized and positioned subtitles; the setting is intended to move the subtitles in the black bar below the movie frame, but an automated algorithm is only going to work fine some times, and other times not.
If your subtitles are plain text files, with no positioning info (like SRT), then you can control the font used, and the size of the font, and the subtitle margins by opening the xy-subfilter properties page while a movie file containing such subs is playing, with a right-click on the video surface in MPC -> Filters -> XySubFilter -> Properties -> Styles, which gives you a configuration dialog.
If your subtitles are ASS/SSA text subs, then they contain positioning and font type and size info, and those subtitles are meant to be displayed at the position and with the size specified in the subtitle, so you should not override that (like what you would do if you select "Force default" in the xy-subfilter properties page).
Same thing happens with DVD and BluRay subs - these are images which contain the "drawings" of the subtitle characters at a specific position, so it's better to not try to override these either (using the VobSub override placement in the xy-subfilter properties page).
Reign
22nd December 2015, 16:22
I couldn't see if it was mentioned but it seems XySubFilter 3.1.0.746 has an issue where it doesn't change position according to padding at all. I only tried adding vertical padding but regardless my subtitles didn't move at all. Works perfectly with the ISR using MPC-HC, I'm sure it worked in previous versions as well.
Sm3n
22nd December 2015, 22:13
@KoD Yep, I'm using xysubfilter actually.
My config is set exactly like you suggest. And I'm quite sure I tried everything that was possible to do. I'll test xyvsfilter to see the difference.
Here are 2 frames:
https://picload.org/image/wggrwwg/1920x820.jpg
https://picload.org/image/wggrwwd/1920x1080.jpg
IF I play the cropped one, I have to change the size of the police to 22. And if next I play a noncropped 1080p of course I have to set back to original size (18 or 20) because it's too large.
I don't fully get where the problem is and if it's settable once for all.
Plus it's a pain in the ass to really well understand what you try to kindly explain to me. english is not really my native language.
@cyberbeing I still have to special version you made but I'm still thinking that is not solving the issue.
I tried vsfilter but I can't get it to work for now. No sub shown in the player.
KoD
23rd December 2015, 16:15
@KoD Yep, I'm using xysubfilter actually.
My config is set exactly like you suggest. And I'm quite sure I tried everything that was possible to do. I'll test xyvsfilter to see the difference.
Here are 2 frames:
https://picload.org/image/wggrwwg/1920x820.jpg
https://picload.org/image/wggrwwd/1920x1080.jpg
IF I play the cropped one, I have to change the size of the police to 22. And if next I play a noncropped 1080p of course I have to set back to original size (18 or 20) because it's too large.
I don't fully get where the problem is and if it's settable once for all.
Plus it's a pain in the ass to really well understand what you try to kindly explain to me. english is not really my native language.
@cyberbeing I still have to special version you made but I'm still thinking that is not solving the issue.
I tried vsfilter but I can't get it to work for now. No sub shown in the player.
Ah, I have misunderstood what the problem is. Looking at your screenshots, I notice the two movies have different frame sizes. I did a test now with two video files that have different sizes like you did, and I've encountered the same issue.
This is likely a bug in xysubfilter, or in MPC-HC.
So please disregard my ramblings above, they are not going to help you. :)
Nullack
23rd December 2015, 16:54
Hi
Where are the commit logs for this trunk so I can see what new commits are being made in the beta? I got lost in old sections that havent changed in ages.
How long is beta 3 going to be in beta?
Thanks
Sm3n
24th December 2015, 04:13
Ah, I have misunderstood what the problem is. Looking at your screenshots, I notice the two movies have different frame sizes. I did a test now with two video files that have different sizes like you did, and I've encountered the same issue.
This is likely a bug in xysubfilter, or in MPC-HC.
So please disregard my ramblings above, they are not going to help you. :)
OK :) so it's well a very well known issue with unfortunately no possibility to "fix" that.
No problem. thx for your time ;)
GCRaistlin
3rd January 2016, 14:51
XySubFilter (XySubFilter_3.1.0.746_x86_BETA3.zip) prevents DVD menu's graphical elements to be displayed: http://mir.cr/GIWVXEN8
With XySubFilter, ticks aren't displayed when pointing mouse cursor on DVD menu buttons.
WinXP SP3, MPC-HC 1.7.10.40, madVR 0.89.19.
Offtopic: is there a way to create bug reports on github?
wanezhiling
6th January 2016, 15:25
https://www.sendspace.com/file/v570s4
0:00:14.28 ~ 0:00:48.90
Can't renderer the sub smoothly
neocode
6th January 2016, 20:16
I have a video here that xysubfilter is crashing.
Is xysubfiler still being developed?
If yes, how can I submit the crash report?
KoD
6th January 2016, 21:56
XySubFilter (XySubFilter_3.1.0.746_x86_BETA3.zip) prevents DVD menu's graphical elements to be displayed: http://mir.cr/GIWVXEN8
With XySubFilter, ticks aren't displayed when pointing mouse cursor on DVD menu buttons.
WinXP SP3, MPC-HC 1.7.10.40, madVR 0.89.19.
Offtopic: is there a way to create bug reports on github?
I imagine you are using QuickSync as the decoder option in MPC-HC. I can reproduce the issue on your sample file when using quicksync in MPC-HC as well. If I pick the software decoder, or DXVA copyback, there are no issues.
If I use ZoomPlayer instead of MPC-HC, with lav external filters and quicksync as the active decoder in lav video, the issue does not happen though either. It's only in MPC-HC.
So I would say the problem might not be the QuickSync decoder, but a bug in MPC-HC. In any case, it does not look like it's an issue with xy-subfilter.
PS: it's also possible to keep using quicksync as the default decoder option, but have the DVD option unchecked in the "Codecs for HW Decoding" group, to let the software decoder be used for DVDs and have menus work ok. Though, I actually would advise to disable MPEG-2 support in general when using quicksync, and not only for DVDs.
PPS: I just tested with MPC-HC 1.7.8.123 x86 from March last year, and the problem does not happen there either. So it's definitley an issue in recent versions of MPC-HC.
PPPS: Aftre more tests, I noticed that sometimes it works even in the latest MPC-HC. So, it's something random. Might really be related to using QuickSync after all.
https://www.sendspace.com/file/v570s4
0:00:14.28 ~ 0:00:48.90
Can't renderer the sub smoothly
I confirm this as well, the subtitles queue in madVR gets to 1 immediately and playback becomes a slideshow.
I have a video here that xysubfilter is crashing.
Is xysubfiler still being developed?
If yes, how can I submit the crash report?
I don't think there's anyone doing active development anymore. But it's worth having samples known to cause a crash in the filter, maybe someone wants to give it a try. If it's xy-subfilter causing the crash, then very likely all that's needed is the subtitle file itself. That would be more useful than a crash report or the entire video file.
You may use something like wikisend dot com or some other file upload service (or even pastebin).
Is it an external srt file? Then just give that file. Or if it's inside a mkv file, extract it from there with something like mkvcleaver + mkvtoolnix.
GCRaistlin
7th January 2016, 10:37
I imagine you are using QuickSync as the decoder option in MPC-HC
No. The only change I made to the default MPC-HC configuration is setting video renderer to madVR and subtitle renderer to XySubFilter.
I just tested with MPC-HC 1.7.8.123 x86 from March last year, and the problem does not happen there either. So it's definitley an issue in recent versions of MPC-HC.
I confirm. Will report to the MPC-HC bug tracker.
Warlock
18th February 2016, 05:02
Are there any plans for a new xy-subfilter?
ryrynz
18th February 2016, 06:36
Are there any plans for a new xy-subfilter?
That will all depend on if the developer comes back. There doesn't appear to be any pressing issues so we might just end up seeing beta 3 become final soon perhaps with a fix or two for the issues above.
At this point I'd say xysubfilters development is probably done, and that a replacement is likely to come some time in future, but I suspect that'll be some time away.
thewebchat
24th February 2016, 06:52
This file (https://www.sendspace.com/file/72tp1o) crashes XySubFilter (64-bit) since BETA3 when played at greater than 1x zoom. Problem occurs at the end of the file. Happens with EVR-CP and mVR. Crash disassembly shows bad function pointer (vtable?) call.
mecedo
17th March 2016, 18:44
Will XySubFilter have profiles or keystrokes for positioning subtitles in the future? Any chances?
a8213711
6th April 2016, 17:04
Anyone else having problem with http://www.opensubtitles.org/en/subtitles/3573531/gigi-en (direct download: http://dl.opensubtitles.org/en/download/sub/vrf-108d030f/3573531)?
Character with accent marks like on 3.11 or 38.57 aren't shown properly on my PC, while on VLC they are fine.
sneaker_ger
6th April 2016, 17:15
Maybe it is expecting UTF-8?
Try UTF-8 version: https://www.sendspace.com/file/9t63rz
a8213711
8th April 2016, 13:50
Maybe it is expecting UTF-8?
Try UTF-8 version: https://www.sendspace.com/file/9t63rz
Thank you, that worked, but how did you convert it? How can I know if the next file require this conversion? Can I ask to implement a way to support file like this like in VLC?
sneaker_ger
8th April 2016, 14:07
There are different ways to encode text files. It seems like VLC has some kind of clever automatic detection while xy-vsfilter/XySubFilter do not. You can of course ask for a more clever detection but the development seems to be stalled so I would not expect much.
To detect such files you can open them in an editor like Notepad++ (https://notepad-plus-plus.org/). Click "Encoding"->"Encode in UTF-8 without BOM" and then see if diacritic and other special characters are displayed correctly. If yes, you do not need to do anything. If they are not displayed correctly, try "Encoding"->"Encode in ANSI" (or one of the other encodings, there are a lot to choose from). Once you have found an encoding that results in diacritics being displayed correctly, you click "Encoding"->"Convert to UTF-8 without BOM" and save the file. Now it should work.
P.S.: Just "UTF-8" is UTF-8 with a BOM. That's basically a small info at the beginning of the file that marks the encoding. Some software can read it and use it for better detection, other software has problems with it. xy-vsfilter/XySubFilter can probably handle both variations just fine so it does not really matter whether you save with or without BOM.
SecurityBunny
16th July 2016, 11:34
Does anyone happen to know if development will ever kick back up again or whether a suitable replacement is in the works? I've got a file that lags at certain parts with XySubFilter but not with MPC-HC's built-in subtitle renderer.
amayra
16th July 2016, 12:33
Does anyone happen to know if development will ever kick back up again or whether a suitable replacement is in the works? I've got a file that lags at certain parts with XySubFilter but not with MPC-HC's built-in subtitle renderer.
you can try AssFilterMod (http://forum.doom9.org/showthread.php?t=173573) i think this what you need
clsid
16th July 2016, 14:04
but not with MPC-HC's built-in subtitle renderer.I think you answered your own question...
SecurityBunny
21st July 2016, 02:15
you can try AssFilterMod (http://forum.doom9.org/showthread.php?t=173573) i think this what you need
While AssFilter doesn't lag in the part XySubFilter does, subtitles do not appear to be smooth when they are scrolling / moving across the screen. It appears to stutter, whereas Xy and built-in renderer do not.
I think you answered your own question...
Perhaps, but the built-in renderer does not appear to be as smooth for heavily stylized and typesetted subtitles in the background. As well as drops the render queue size from a stable 8/8 to 3-5/8 when heavy typesetting occurs. Doesn't fix itself until you pause and play again. XySubFilter, besides lagging in a specific part in my test, does not. It is basically a toss-up for which is better in certain scenarios.
I'm just wondering if there is a definitive 'best' filter to use out of all options and whether or not XySubFilter development will be continued. :(
amayra
21st July 2016, 10:20
While AssFilter doesn't lag in the part XySubFilter does, subtitles do not appear to be smooth when they are scrolling / moving across the screen. It appears to stutter, whereas Xy and built-in renderer do not. :(
can you give me the test file ?
SecurityBunny
22nd July 2016, 02:00
can you give me the test file ?
Sure, will send you a PM. :)
Tanuki
17th August 2016, 14:32
I have a strange bug : I use xysubfilter latest beta (3.1.0.746 Beta but I tried the previous beta too) in zoom player (tried several versions) in windows 7 and 10, and subs are sometimes rendered lower or higher than the previous sentence. The problem happens with srt, vobsubs and ass.
The problem started several months back, and I don't recall doing or installing something before it happened.
amayra
17th August 2016, 22:06
I have a strange bug : I use xysubfilter latest beta (3.1.0.746 Beta but I tried the previous beta too) in zoom player (tried several versions) in windows 7 and 10, and subs are sometimes rendered lower or higher than the previous sentence. The problem happens with srt, vobsubs and ass.
The problem started several months back, and I don't recall doing or installing something before it happened.
did this happen only with zoomplayer ?
and how about reset settings ?
PS: try MPC
Tanuki
19th August 2016, 20:54
did this happen only with zoomplayer ?
and how about reset settings ?
PS: try MPC
Even after resetting settings (with the .reg file), the problem is still there.
Same problem in MPC-HC latest nightly...
huhn
19th August 2016, 21:33
are you sure the subtitles are created correctly?
Tanuki
20th August 2016, 07:29
are you sure the subtitles are created correctly?
I'm not sure to understand the question, but the subs themselves are not the problem : they are playing fine in MPC-HC with internal subtitles renderer.
I reset MadVR settings too, but it didn't change anything.
PS : I noticed a strange thing yesterday while playing with MPC-HC, but it's not related : I have an anime OP video with karaoke subtitles that seem to be harder to render than average that I keep because it lags at one point with MadVR default settings. Thing is that with the same filters and settings (LAV, MadVR and xysubfilter), it doesn't lag in MPC-HC and still lag in Zoom player.
jmartinr
20th August 2016, 10:33
I have a strange bug : I use xysubfilter latest beta (3.1.0.746 Beta but I tried the previous beta too) in zoom player (tried several versions) in windows 7 and 10, and subs are sometimes rendered lower or higher than the previous sentence. The problem happens with srt, vobsubs and ass.
The problem started several months back, and I don't recall doing or installing something before it happened.
Your subtitle rendertimes might be overlapping. Causing a shift when the second subtitle is shown while the first is not finished yet.
Tanuki
20th August 2016, 13:11
I tried what I should have done before posting : I only tried recently the 2 latest releases (744 and 746 BETA3), but there's no problem with the 705 BETA2.
I attached an example of vobsubs (for a video with a resolution of 853x480) that don't work correctly with BETA3. The first minute with both lyrics and dialogues at the same time is enough.
ChronosAI
23rd August 2016, 20:03
Does anyone happen to know if development will ever kick back up again or whether a suitable replacement is in the works? I've got a file that lags at certain parts with XySubFilter but not with MPC-HC's built-in subtitle renderer.
I had some video freezing/subtitle blinking problems with XySubFilter with heavy karaoke/ass typeset videos but managed to avoid those by increasing the cache sizes from within XySub control panel's "More" tab and "Cache Options" segment there.
amayra
23rd August 2016, 23:50
I had some video freezing/subtitle blinking problems with XySubFilter with heavy karaoke/ass typeset videos but managed to avoid those by increasing the cache sizes from within XySub control panel's "More" tab and "Cache Options" segment there.
can anyone explain to me the Xy-Sub control panel i dont get it
ChronosAI
26th August 2016, 12:10
can anyone explain to me the Xy-Sub control panel i dont get it
If you mean the values, just try increasing them (double 'em), the LV1/2/3/4 fields have an upper limit what I tried and the cache size field probably works on automation (-1), try setting it higher than what you have with the problematic/choppy typeset.
If you don't know how to access the filter control panel, open up a video that relies on it with say, mpc-hc and double-click on the video frame and you should see a menu with path like this:
Filters > XySubFilter (=> madVR) > Properties...
Mind you this is just a workaround I found to fix my problems and setup (mpc-hc, madvr, lav, xysub). The performance/cache issues with heavy-weight karaoke/typeset might get addressed if xysub development resumes.
kirakami
16th September 2016, 17:27
xy-vsfilter no longer being developed? Nothing since last release in 2014.
sneaker_ger
16th September 2016, 17:57
Yes, pretty much. The main developer has been absent for a long time now so we only got the few odd fixes by madshi and cyberbeing for XySubFilter.
ikarad
22nd October 2016, 17:18
Light problem with xysubfilter.
With this video
https://www.nyaa.se/?page=view&tid=861780
at 0min58s "part 2 of 3" change position with xyvsfilter and not with internal sub renderer of mpc-hc (normal)
xyvsfilter
http://img15.hostingpics.net/thumbs/mini_32622079xy.jpg (http://www.hostingpics.net/viewer.php?id=32622079xy.jpg)
mpc sub renderer
http://img15.hostingpics.net/thumbs/mini_537689wxy.jpg (http://www.hostingpics.net/viewer.php?id=537689wxy.jpg)
sneaker_ger
22nd October 2016, 18:13
I cannot reproduce the issue.
amayra
24th October 2016, 22:12
Light problem with xysubfilter.
With this video
https://www.nyaa.se/?page=view&tid=861780
at 0min58s "part 2 of 3" change position with xyvsfilter and not with internal sub renderer of mpc-hc (normal)
xyvsfilter
http://img15.hostingpics.net/thumbs/mini_32622079xy.jpg (http://www.hostingpics.net/viewer.php?id=32622079xy.jpg)
mpc sub renderer
http://img15.hostingpics.net/thumbs/mini_537689wxy.jpg (http://www.hostingpics.net/viewer.php?id=537689wxy.jpg)
try with AssFilterMod (http://forum.doom9.org/showthread.php?t=173573)
ikarad
25th October 2016, 18:48
try with AssFilterMod (http://forum.doom9.org/showthread.php?t=173573)
Assfiltermod works but this a bug that i report with xysubfilter.
Garteal
25th October 2016, 19:52
It's probably on your end. Are you using the latest XySubFilter?
Like sneaker_ger, I can't reproduce this either.
DatOneAnimeFan
25th October 2016, 21:26
Quick question, can this be used with MeGui? As a DDL?
Sent from my 5054N using Tapatalk
sneaker_ger
25th October 2016, 21:42
xy-vsfilter: yes ( load vsfilter.dll and then TextSub() or MaskSub() in AviSynth script)
XySubFilter: no
ikarad
26th October 2016, 18:50
It's probably on your end. Are you using the latest XySubFilter?
Like sneaker_ger, I can't reproduce this either.
Yes i use the last version beta of xysubfilter 3.1.0.746.
sneaker_ger
26th October 2016, 18:54
Which version of MPC-HC? Which renderer? Are there any other filters in the chain, esp. any filter that may scale the video to a different resolution (like ffdshow)?
ikarad
26th October 2016, 19:00
Which version of MPC-HC? Which renderer? Are there any other filters in the chain, esp. any filter that may scale the video to a different resolution (like ffdshow)?
no filter. Just mpc-hc and madvr.
I try the last bulid version of mpc-hc and others versions: same problem.
sneaker_ger
26th October 2016, 19:12
Do you have "move subtitles to the bottom of the screen/window" ticked in madvr's zoom control options?
ikarad
27th October 2016, 21:30
Do you have "move subtitles to the bottom of the screen/window" ticked in madvr's zoom control options?
Yes, with this option turn off now it works. I didn't know this option because I have never seen this section of madvr.
I am happy because the sub renderer of mpc-hc is not bug free. Sometimes subs flashs.
GCRaistlin
31st October 2016, 17:29
I load extrenal subtitles (http://mir.cr/0VSPVK4H) in IDX/SUB format (the first subtitle should appear at 03:04) for a movie in MKV format (sample (http://mir.cr/PLBSHWOY)). If I set the delay higher than -20 ms (e. g. -21 ms) the subtitles disappear at all.
MPC-HC 1.7.10.264 / EVR (CP) / XySubFilter 3.1.0.746 / Windows XP SP3 x86
Piyoko
17th December 2016, 08:14
How can I make the subtitles always look the same regardless of the video resolution, like with the internal subtitle renderer of mpc-hc?
I'm trying to set up XySubFilter (3.1.0.746) + madVR (0.91.4) + mpc-hc (1.7.10.269) and I cannot get it to work. If I use the render layout option "Customize" then the subtitles get squashed or stretched depending on the video aspect ratio, and with "AR adjusted" or "Original video" the border options start depending on the video resolution, so if you set it up to look OK on a 1920x1080 video the border becomes super-thick on a 640x480 video. This is with regular SRT.
In addition the style override setting "Force default" seems to be completely unusable as with sane font settings the subtitles become super-tiny on 1920x1080 videos for some reason, and if you increase the default font size and margins to look decent there, then they'll of course be humongous for low-res videos and SRT subtitles instead.
Am I missing some obvious setting that would fix these issues?
Hyperthread
3rd May 2017, 17:59
I opened the XySubFilter 3.1.0.746 x64 BETA3 properties, and there was no text on any of the tab's pages. However, the tab itself has text.
I'm running Windows 10 1703 "Creator's Update". I'm wondering if it has anything to do with the update?
Is anyone else experiencing this issue?
Any help would be greatly appreciated!
I have included some screenshots below.
http://i628.photobucket.com/albums/uu10/HouseMusicMixer/Main-Tab-Small_zpsoworqyta.png~original (http://s628.photobucket.com/user/HouseMusicMixer/media/Main-Tab-Small_zpsoworqyta.png.html)
http://i628.photobucket.com/albums/uu10/HouseMusicMixer/More-Tab-Small_zpsygxaltwg.png~original (http://s628.photobucket.com/user/HouseMusicMixer/media/More-Tab-Small_zpsygxaltwg.png.html)
Nachbar
3rd July 2017, 10:44
I opened the XySubFilter 3.1.0.746 x64 BETA3 properties, and there was no text on any of the tab's pages. However, the tab itself has text.
I'm running Windows 10 1703 "Creator's Update". I'm wondering if it has anything to do with the update?
Is anyone else experiencing this issue?
Any help would be greatly appreciated!
I have included some screenshots below.
http://i628.photobucket.com/albums/uu10/HouseMusicMixer/Main-Tab-Small_zpsoworqyta.png~original (http://s628.photobucket.com/user/HouseMusicMixer/media/Main-Tab-Small_zpsoworqyta.png.html)
http://i628.photobucket.com/albums/uu10/HouseMusicMixer/More-Tab-Small_zpsygxaltwg.png~original (http://s628.photobucket.com/user/HouseMusicMixer/media/More-Tab-Small_zpsygxaltwg.png.html)
I do not have this problem with the exact same configuration using mpc-be x64 1.5.1. Seeing as you do not have a "pin info" tab I'm guessing your video player is using a different subtitle renderer before using vsfilter. If you are using mpc-hc/be go into the player options and in the subtitle tab choose XySubFilter. Can't really help you with other players. You can check which filters are being actively used by going to the filters tab of the player.
Lebowsky
19th August 2017, 15:51
Anyone can help me? I think I did an idiotic mistake. I was using xy-vsfilter. I had a movie with embedded subtitles with colors. I wanted to try to disable all colors, but couldn't find a way. Ended up going to xy-vsfilter options by double-clicking the green vobsub arrow in the tray. Went to Colors, and I disable everyhing, just to see if something would happen. Unfotunately, I can't get any subtitle to load anymore (and thus cannot access the menu). Tried to unregister and reregister, no go. Tried to install xy-subfilter, won't work either. How can I get to that menu and re-enable the colorspaces?
Thx!
sneaker_ger
19th August 2017, 17:10
Try do delete HKEY_CURRENT_USER\Software\Gabest\vsfilter\ using the registry editor.
What player are you using? In MPC-HC go Options>Playback>Output and select a subtitle renderer.
Lebowsky
19th August 2017, 17:26
YES. thank you! And yes, using MPC-HC.
Is there a way to have the renderer discard the color information from the subtitles file? I have a file where the text is white in general, but switches to other colors when there are several characters speaking, which is really annoying... Would prefer to have it white all the time.
sneaker_ger
19th August 2017, 17:34
With MPC-HC's internal subtitle renderer start the movie, then "Play">"Subtitle Track">"Default Style". You can set default style in options. (I don't remember if possible with xy-vsfilter.)
vivan
19th August 2017, 21:28
"Force Default" in the main tab.
It won't help if they are using style override tags (\c), sadly.
gfxnow
29th December 2017, 07:11
Is there an alternate for this considering that this has been abandoned?
Ryushin
29th December 2017, 18:44
I'm trying to find a solution that will fix vsfilter's issue with 10 bit color. Will xy-VSFilter handle 10 bit color without having to dither down to 8 bit color? Shame that this software has been abandoned.
Skibicki
29th December 2017, 19:20
I'm not sure about 10-bit but you can try AssFilterMod. It can use EVR Custom Presenter and other renderers, not EVR.
https://github.com/Blitzker/assfiltermod
https://forum.doom9.org/showthread.php?t=173573
Ryushin
30th December 2017, 14:52
I'm not sure about 10-bit but you can try AssFilterMod. It can use EVR Custom Presenter and other renderers, not EVR.
https://github.com/Blitzker/assfiltermod
https://forum.doom9.org/showthread.php?t=173573
I'll look into those. Forgot to mention that I need it to work with avisynth scripts to render vobsub/pgs subtitles directly into the video.
sneaker_ger
30th December 2017, 19:34
Render the subtitles over alpha, then overlay them onto 10 bit video. Shouldn't be too hard.
Ryushin
30th December 2017, 21:27
Actually, it looks like xy-vsfilter worked perfectly for me. I plugged it into the Ripbot264 avs script and it rendered the subtitles for a 4K UHD Disc.
Ryushin
22nd January 2018, 22:24
Well, it looks like I was mistaken. xy-vsfilter did not work after all. I can't seem to find the options for xy-vsfilter for running inside a avs script. Though I have not read all 42 pages of this forum. Is there any other source of documentation I can read?
sneaker_ger
22nd January 2018, 22:30
https://avisynth.org.ru/docs/english/externalfilters/vsfilter.htm + MaskSub() to render over/with alpha
pinterf
26th February 2018, 10:02
Preliminary: recently modded xy-vsfilter to work natively with YUV420P10 and YUV420P16.
Question: did someone use this filter (3.0.0.306) successfully in a multithreaded way (E.g. Avisynth+ MT_MULTI_INSTANCE)?
It's freezing for me and I can neither see the protecting mechanism in the source.
madshi
26th February 2018, 10:20
Which recently modded version are you referring to?
pinterf
26th February 2018, 10:39
Two days ago I was playing with the existing source, replaced avisynth header to a current avs+ one, fixed some things to compile under VS2017 and put the 10/16 bit support in it for AVS+. Not published, will put on my git.
madshi
26th February 2018, 10:50
Ah, I see!
amayra
1st April 2018, 22:16
where can i get that ?
pinterf
2nd April 2018, 11:42
where can i get that ?
I will do a small clean up and put it to git when I have time. Or PM for test build.
iakoboss7
5th April 2018, 02:09
cant you post it here?
pinterf
5th April 2018, 19:11
O.k., here comes my mod. If it works for you, enjoy.
Download xy-VSFilter 3.0.0.400 (https://github.com/pinterf/xy-VSFilter/releases/tag/3.0.0.400)
- Origin of mod source: https://github.com/Cyberbeing/xy-VSFilter/releases/tag/3.0.0.306
- This project: https://github.com/pinterf/xy-VSFilter/
- Forum: https://forum.doom9.org/showthread.php?t=168282
- Rebuilt with Visual Studio 2017
- Avisynth+ headers
- Native support for YUV420P10 and YUV420P16 formats in Avisynth filter TextSub
Internal conversion to and from P010 and P016 with SSE2 support
- Still doesn't work in any MT mode (I think): automatically registers itself as MT_SERIALIZED to prevent troubles
- Avisynth filter MaskSub: new pixel_type (default: "RGB32") parameter. Can be set to "YUV420P10" or "YUV420P16"
- Versioning: 3.0.0 prefix is kept, build number goes from 400 and up for my mod, set manually in src/filters/transform/vsfilter/version_in.h
- All credits to the previous authors.
iakoboss7
10th April 2018, 15:49
thank you for your work, any chance you can integrate that into "XySubFilter Beta3" ( 3.1.0.746 ) that is the latest version?
huhn
10th April 2018, 23:54
most of the changes are basic for xy subfilter because it don't render the subs on the frame the renderer is doing that.
pinterf
11th April 2018, 10:22
thank you for your work, any chance you can integrate that into "XySubFilter Beta3" ( 3.1.0.746 ) that is the latest version?
I have no insight to the history of this project, nor what it does aside being an Avs plugin. I have simply took the last version which I was said that worked as an Avisynth plugin and tried to build and mod it. Are there really important fixes? (the code history and project arrangement I'm seeing on github is not clear to me)
ryrynz
11th April 2018, 11:51
Yeah there are some good additions and fixes since that release.
Features & Changes
Add support for reporting if the subtitles are Bitmaps or Movable
Support Animated Vobsub
Update Boost, UnRAR, and log4cplus Libraries
Significantly improved parsing speed
Slightly faster \clip \iclip
Support Yasm 1.3.0
Query the EVR Presenter for ISubRenderConsumer
Update Boost & UnRAR Libraries
Bug Fixes
Fix override tag argument splitting
Add ISubRenderFrame to NonDelegatingQueryInterface
Certain PGS subtitles display an opaque background instead of transparent.
Avoid loading .sub as MicroDVD text when VOBSUB .idx present
Revert Insane Border Support (temporary crash fix)
Rare crash during border rendering
Allow 'Auto' to disable internal RGB matrix correction when needed
Various minor parser issues
Do not flag SSA/ASS subtitles as movable
Fix typo which broke \r tag in 3.1.0.744
pinterf
11th April 2018, 17:50
O.k., I didn't want to spend any more time on this project but fortunately it was easier than I had thought.
So. Source differences were synchronized (on file level, no git was involved, just the published sources; the old project and the commits were not clear to me), then made it work again under Visual Studio 2017.
Download xy-VSFilter / XySubFilter v3.1.0.800 (https://github.com/pinterf/xy-VSFilter/releases/tag/3.1.0.800)
This build has two dlls now. VsFilter.dll and XySubFilter.dll.
Please report if something is wrong, test it first, I can give no warranty that this XySubFilter works 100% the same way as it worked in the old builds. You are the ones who have all the knowledge of the subtitling world.
Please report the troubles, differences and also the fact when it works.
Happy testing ;)
# xy-VSFilter v3.1.0.800 (20180411)
https://github.com/pinterf/xy-VSFilter/
A modification by pinterf:
- xy-vsfilter 3.0.0.306 (https://github.com/Cyberbeing/xy-VSFilter/releases/tag/3.0.0.306) =>
pfmod:VS2017 + VSFilter-TextSub 10/16bit Avisynth extension =>
apply XySubfilter-3.1.0.746<->3.0.0.306 file differences =>
make VSFilter work again as an Avisynth plugin
- Forum: https://forum.doom9.org/showthread.php?t=168282
- Other useful link: https://avisynth.org.ru/docs/english/externalfilters/vsfilter.htm
- All credits to the previous authors.
Info:
- Package contains VSFilter.dll and XySubFilter.dll (x86 and x64 versions)
- VSFilter.DLL: Included Avisynth filters (name and parameter signature)
VobSub "cs"
TextSub "c[file]s[charset]i[fps]f[vfr]s"
TextSubSwapUV "b"
MaskSub "[file]s[width]i[height]i[fps]f[length]i[charset]i[vfr]s[pixel_type]s"
- Warning by the XySubFilter-3.1.0.746 beta authors (on forum's 1st post, from 2015):
"Note: XySubFilter requires a compatible subtitle consumer. We recommend madVR 0.87.5+ or MPC-HC 1.7.2+ (EVR-CP)
After downloading XySubFilter BETA3, you must ensure to run the 'Install' bat (not only replace) or else
XySubFilter's autoload helper required for entering the DirectShow graph with external subtitles will not be installed."
Change log:
- v3.1.0.800 (20180411)
-- apply XySubFilter-3.1.0.746<->xy-VSFilter 3.0.0.306 file differences
-- get it work again under VS2017
-- make VSFilter work again as an Avisynth plugin
-- Versioning: 3.1.0 prefix is kept, build number goes from 800 and up for my mod manually in src/filters/transform/vsfilter/version_in.h
- v3.0.0.400 (20180405) (work in February 2018)
-- Get the last known xy-vsfilter version (3.0.0.306) which worked as the Avisynth plugin.
Plan: have a native 10/16 bit compatible Avisynth TextSub filter.
-- xy-vsfilter 3.0.0.306 rebuilt with Visual Studio 2017
-- Avisynth+ headers
-- Native support for YUV420P10 and YUV420P16 formats in Avisynth filter TextSub and probably VobSub.
Internal conversion to and from P010 and P016 with SSE2 support
-- Still doesn't work in any MT mode (I think): automatically registers itself as MT_SERIALIZED to prevent troubles
-- Avisynth filter MaskSub: new pixel_type (default: "RGB32") parameter. Can be set to "YUV420P10" or "YUV420P16"
-- Versioning: 3.0.0 prefix kept, build number goes from 400 and up for my mod manually in src/filters/transform/vsfilter/version_in.h
YxP
11th April 2018, 20:28
Incredible this project lives! Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaim very happy about this :)
amayra
11th April 2018, 23:02
Incredible this project lives! Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaim very happy about this :)
nope all what he did is make VSFilter work again as an avs+ plugin
there no change in playback side
i wish if he did this with assfiltermod instead
Atak_Snajpera
12th April 2018, 10:51
nope all what he did is make VSFilter work again as an avs+ plugin
there no change in playback side
i wish if he did this with assfiltermod instead
That's not true. Old VSfilter didn't support 10bit color.
amayra
12th April 2018, 14:12
That's not true. Old VSfilter didn't support 10bit color.
neither avisynth vanilla
Atak_Snajpera
12th April 2018, 16:56
neither avisynth vanilla
and...? Thanks to printerf we have working VSfilter in 10 bit color space so do not write that "all what he did is make VSFilter work again as an avs+ plugin". He did more than that!
sneaker_ger
12th April 2018, 18:31
@pinterf
Madshi made a small fix for italics in srt. I assume it is not included?
https://forum.doom9.org/showpost.php?p=1830772&postcount=48444
pinterf
13th April 2018, 08:05
@pinterf
Madshi made a small fix for italics in srt. I assume it is not included?
https://forum.doom9.org/showpost.php?p=1830772&postcount=48444
I don't think it's included. Nevertheless the link contains only binaries (two DLLs).
amayra
13th April 2018, 10:15
and...? Thanks to printerf we have working VSfilter in 10 bit color space so do not write that "all what he did is make VSFilter work again as an avs+ plugin". He did more than that!
well my mistake what i mean there no change in playback side this is answer for YxP
and this project is without question is dead unless someone decide to rewrite spaghetti code
clsid
13th April 2018, 10:42
Do these changes use existing 10bit code of xy-VSFilter, or would it also be applicable to vanilla VSFilter?
sneaker_ger
13th April 2018, 11:49
While xy-vsfilter could overlay over 10 bit was there actually 10 bit subtitle rendering in the first place?
@pinterf
I pinged madshi about the source/patch.
huhn
13th April 2018, 19:37
xy vsfilter was able to render 10 bit correctly outside of AVS not sure about AVS.
tuanden0
15th April 2018, 08:37
Can I use xy-vsfilter for Vapoursynth?
sneaker_ger
15th April 2018, 11:16
There are mods for it:
https://github.com/HomeOfVapourSynthEvolution/VSFilter/releases
https://www.nmm-hd.org/newbbs/viewtopic.php?t=1823
https://github.com/Tsuki/VapourSynth-XY-VSFilter
But the VapourSynth package already includes other plugins for rendering subtitles, so vsfilter is only needed if you are somehow not happy with the result of those:
http://www.vapoursynth.com/doc/plugins/subtext.html
tuanden0
16th April 2018, 03:04
@sneaker_ger
thank you very much
cyberbeing
18th April 2018, 22:14
@pinterf
Madshi made a small fix for italics in srt. I assume it is not included?
https://forum.doom9.org/showpost.php?p=1830772&postcount=48444
Sorry that was my fault, I was busy and forgot to push it. The build from that post is outdated since it had some issues with ASS subtitles, which was fixed a week later. The latest madshi patch is now on the RC4 branch.
I'll need to figure out what to do about making a new release soon with at least the SRT italic fix. We got sidetracked with possible HDR rendering support for awhile, but that never materialized (see discussion on Libass issue tracker). pinterf if you could make a few pull requests on github at some point for changes you'd consider stable, that would be helpful.
One thing to note though, is I remember that xy-VSFilter built from the XySubFilter branches had some bugs. It's been so long now, but I believe some of the rendering features we were using in XySubFilter didn't function correctly in xy-VSFilter builds, and I also remember crashes. It would be nice if the XySubFilter codebase could be stabilized for xy-VSFilter builds, but unfortunately it was something which was never done before the project died.
That said, I'd suggest treating pinterf's xy-VSFilter v3.1.0.800 as extremely experimental at least in terms of directshow usage, compared to his xy-VSFilter 3.0.0.400 build which is based on a stable branch and should be safe.
hello_hello
13th May 2018, 08:31
pinterf,
I'm having an issue with VSFilter 3.1.0.800.
Full XP discloser: I'm running XP.
If I have VSFilter in a script it results in the following error when I try to preview it in MeGFUI or AvsPmod:
LoadPlugin: unable to load "C:\Program Files\MeGUI\tools\avisynth_plugin\VSFilter.dll", error=0x3e6
If I open the script with MPC-HC, VitrualDub, or VirtualDubMod there's no error and the subtitles are displayed.
VSFilter 3.0.0.306 works fine, but I haven't tried any other more recent versions.
Any idea what the cause might be?
Cheers.
gfxnow
9th June 2018, 08:47
I'll need to figure out what to do about making a new release soon with at least the SRT italic fix.
Best news of the year!
FranceBB
5th August 2018, 00:28
Download xy-VSFilter / XySubFilter v3.1.0.800 (https://github.com/pinterf/xy-VSFilter/releases/tag/3.1.0.800)
-- Native support for YUV420P10 and YUV420P16 formats in Avisynth filter TextSub and probably VobSub.
thank you very much indeed for making it available in 10bit and 16bit!!
I don't have to do this anymore:
#Hardsub 8bit
s16 = last
DitherPost (mode=-1)
TextSub("Ep1.ass")
#Overlay 8bit subs to 16bit video
Dither_convert_8_to_16 ()
s16.Dither_limit_dif16 (last, thr=1.0, elast=2.0)
Thank you!! :D
pinterf,
I'm having an issue with VSFilter 3.1.0.800.
Full XP discloser: I'm running XP.
If I have VSFilter in a script it results in the following error when I try to preview it in AvsPmod:
LoadPlugin: unable to load "C:\Program Files\MeGUI\tools\avisynth_plugin\VSFilter.dll", error=0x3e6
That's because when he compiled he didn't target XP in Visual Studio 2017.
The dll calls DeleteProcThreadAttributeList and InitializeProcThreadAttributeList that are missing in the XP kernel.
pinterf
6th August 2018, 09:38
for hello_hello's problem:
That's because when he compiled he didn't target XP in Visual Studio 2017.
The dll calls DeleteProcThreadAttributeList and InitializeProcThreadAttributeList that are missing in the XP kernel.
Actually vsfilter was compiled with the v141_xp toolset with the usual /Zc:threadSafeInit- option.
FranceBB
6th August 2018, 20:25
That's weird, 'cause I tried to run it on an XP virtual machine just to be sure and it doesn't recognise the command "TextSub()" with the new DLL, 'cause it fails to load and when I opened it with Dependency Walker I noticed these two missing function calls.
(And by the way, I have all the C++ Redistributable on my VM 2005 - 2017 and it's an AVX2 capable CPU, although XP supports up to SSE4.2 only).
Siso
28th August 2018, 12:18
Can anyone help me with xy-vsfilter 3.0.0.400, when I watch 1.85:1 movies the subtitles are in high quality. But when I watch 2.35:1 or 2.40:1 movies, the subtitles quality is low...
sneaker_ger
28th August 2018, 13:06
xy-vsfilter renders the subtitles at the video resolution. So if you want to increase quality you would have to upscale (at least the chroma) in the chain before the picture reaches xy-vsfilter.
But it is more straight-forward to use a subtitle renderer that renders at the display resolution to begin with like e.g. the internal subtitle renderer (ISR) of MPC-HC or XySubFilter.
jmonier
28th August 2018, 13:31
Can anyone help me with xy-vsfilter 3.0.0.400, when I watch 1.85:1 movies the subtitles are in high quality. But when I watch 2.35:1 or 2.40:1 movies, the subtitles quality is low...
Are you using madVR as the renderer and LAV Splitter? xy-vsfilter interfaces directly with them and then should not have the problem you are seeing.
Siso
28th August 2018, 14:19
Are you using madVR as the renderer and LAV Splitter? xy-vsfilter interfaces directly with them and then should not have the problem you are seeing.
Yes I'm using madvr and lav filters.
Siso
28th August 2018, 14:20
xy-vsfilter renders the subtitles at the video resolution. So if you want to increase quality you would have to upscale (at least the chroma) in the chain before the picture reaches xy-vsfilter.
But it is more straight-forward to use a subtitle renderer that renders at the display resolution to begin with like e.g. the internal subtitle renderer (ISR) of MPC-HC or XySubFilter.
Is the bug with the italics has been fixed in xysubfilter?
sneaker_ger
28th August 2018, 15:17
Madshi released a fixed version for it. I think it's still not in pinterf's fork, though.
https://forum.doom9.org/showthread.php?p=1839284#post1839284
Siso
28th August 2018, 19:53
Madshi released a fixed version for it. I think it's still not in pinterf's fork, though.
https://forum.doom9.org/showthread.php?p=1839284#post1839284
Thank you for the link.
pinterf
4th September 2018, 12:14
New build, download v3.1.0.801 (https://github.com/pinterf/xy-VSFilter/releases/tag/3.1.0.801)
An issue with random x64 crashes was reported on git and it looked interesting enough :)
Then I have found some "new" commits in the original rc4 branch, including the fix for italics issue, so I included them also. I hope they work, there are quite a few branches there.
Note: as original authors have said, treat this version as a beta.
Note2: I'm just a re-builder and not developer of the product. Use my build as-is.
Warning: problems under xp reported, despite my v141_xp settings.
v3.1.0.801 (20180904)
- fix random crash in x64 build (address truncated to 32 bits, Rasterizer::Draw and Rasterizer::FillSolidRect were affected)
- XySubFilter.DLL now compiled with v141_xp toolset instead of v141 (like VSFilter.DLL)
- From upstream (madshi, Cyberbeing)
- Fix a possible infinite loop in the Real Text subtitle parser on 64-bit
- Fix external SRT subtitles with italic tag not being flagged as repositionable
- Disable repositioning for SSA/ASS subtitles with default position level
- Add setting to allow repositioning of SSA/ASS dialog
FranceBB
7th September 2018, 00:40
- XySubFilter.DLL now compiled with v141_xp toolset instead of v141 (like VSFilter.DLL)
Still, VSFilter 3.1.0.801 doesn't work on my XP Professional (with Microsoft Extended Support) with Avisynth+ r2728.
None of your modified version work on XP, even though you compiled with v141_xp.
I have all the C++ Redistributable installed, from 2005 to 2017, by the way.
I tried with a simple script, but AVSPmod didn't recognize the command "TextSub" in the first place.
https://i.imgur.com/alsUD2A.png
When I tried to run it:
https://i.imgur.com/Yt69Clk.png
So I tried to run AVSMeter and it reported "Invalid Access Memory Location (998)".
https://i.imgur.com/1Qvr59u.png
I decided to investigate why and it seems that two kernel calls are missing in Windows XP: InitializeProcThreadAttributeList and DeleteProcThreadAttributeList.
Unfortunately, these two functions have been introduced in Windows Vista.
InitializeProcThreadAttributeList is a bool.
It returns a zero value if it fails or a non-zero value if it succeeds.
It has lpAttributeList (which is the attribute list and it can be NULL to determine the buffer size required to support the specified number of attributes), dwAttributeCount (which is the count of attributes to be added to the list), dwFlags (which is a reserved parameter and it must be zero) and lpSize.
BOOL InitializeProcThreadAttributeList(
LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList,
DWORD dwAttributeCount,
DWORD dwFlags,
PSIZE_T lpSize
);
DeleteProcThreadAttributeList is a void and thus it does not return a value. It simply has lpAttributeList which is the attribute list created by the InitializeProcThreadAttributeList function.
void DeleteProcThreadAttributeList(
LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList
);
I took a look at Wine and it seems that they implemented the call, so I tried to take their implementation and use it as a wrapper to basically direct the call to it instead of to the kernel, but unfortunately it didn't work (I messed it up when I tried to adapt it, I'm 100% sure).
Any thoughts?
https://i.imgur.com/xhmv9CL.png
nevcairiel
7th September 2018, 09:39
Going multiple levels down in Dependency Walker is not meaningful, since you cannot control what other DLLs use. You can only check what your own DLL imports directly, and if those are fine then thats not it. From the error it sounds like the DLL crashes on load, not that it fails to load due to missing symbols.
pinterf
7th September 2018, 10:07
Don't know, what happens, all I have found is:
https://developercommunity.visualstudio.com/content/problem/257074/windows-xp-compilation-cause-error-998-on-target-s.html
And the DLLs were compiled with /MT instead of /MD, so no redistributables are needed.
jpsdr
7th September 2018, 15:34
Stupid question, you didn't forget the /Zc:threadSafeInit- option ?
tonyxc600
10th September 2018, 06:38
Trying to open external PGS subtitles (whether autoloading or manual) results in my player freezing for extended periods of time, and when it does finally load the text is either greatly out of sync or don't display at all.
Muxing the subs into the video allows it to load correctly. The issue is also consistently reproducible when I extract subs from any video and try to load them externally.
Is this a known issue with external PGS subs?
pinterf
10th September 2018, 15:40
Stupid question, you didn't forget the /Zc:threadSafeInit- option ?
No, it's there.
Siso
20th September 2018, 18:29
Do the subtitle output options in XYVsfilter - YCbCr level range "auto" and YCbCr matrix should always be on "auto"? In the OSD when they are on auto it says Colorspace: TV BT.601(auto), if I set the matrix to "guess" it says TV BT.709 (Guessed). I watch only BT.709 content. Which option is the right one?
huhn
20th September 2018, 19:06
leave it at the default settings because this topic is very simple and very complicated at the same time.
the issue comes from the software creating the ASS sub titles usual aegisub which doesn'T really care about color matrix in the past and was using BT 601.
the content you watch is not of important it is the ass sub colors relative to the video.
it get's really complicated on how they fixed this issue.
Siso
20th September 2018, 19:08
leave it at the default settings because this topic is very simple and very complicated at the same time.
the issue comes from the software creating the ASS sub titles usual aegisub which doesn'T really care about color matrix in the past and was using BT 601.
the content you watch is not of important it is the ass sub colors relative to the video.
it get's really complicated on how they fixed this issue.
My subtitles are in srt, but I guess the defaults will work, right huhn?
huhn
20th September 2018, 19:30
is there anything that matter in term of colors for SRT subs?
Siso
20th September 2018, 19:34
is there anything that matter in term of colors for SRT subs?
I don't know, I guess nothing.
huhn
20th September 2018, 22:23
it should be nothing so just keep the default settings and you should be fine.
Siso
21st September 2018, 08:37
it should be nothing so just keep the default settings and you should be fine.
Will do. :thanks:
crmb
27th September 2018, 04:09
Hello.
I am using this filter/renderer with MPC-HC/madVR because it give me the the ability to move BD subtitles into the movie area (Zoom control > cropping black bars in madVR) without squeezing the subtitles. (They are verticaly squeezed with MPC built-in filter.)
Is it actualy possible to do the same with MPC-HC built-in filter (without squeeze) ? Am i missing some option ?
If this filter is better than the one in MPC-HC, was it supposed to replace it at some point ?
cyberbeing
27th September 2018, 17:08
XySubFilter 3.1.0.751 has been released (https://github.com/Cyberbeing/xy-VSFilter/releases/tag/3.1.0.751)
XySubFilter .zip Archive (32-bit) (https://github.com/Cyberbeing/xy-VSFilter/releases/download/3.1.0.751/XySubFilter_3.1.0.751_x86.zip) | XySubFilter .zip Archive (64-bit) (https://github.com/Cyberbeing/xy-VSFilter/releases/download/3.1.0.751/XySubFilter_3.1.0.751_x64.zip)
Debug Symbols for XySubFilter 3.1.0.751 (https://github.com/Cyberbeing/xy-VSFilter/releases/download/3.1.0.751/XySubFilter_3.1.0.751_Debug_Symbols.7z)
Features & Changes
Add setting to allow repositioning of SSA/ASS dialog
Add BT.2020 Support
Bug Fix
Fix external SRT subtitles with italic tag not being flagged as repositionable
Fix potential crash on startup during external subtitle parsing
Note: XySubFilter is no longer being actively developed. The original developer stopped working on the project back in 2014, and ever since then it's been in limbo. The changes in this release were made possible by madshi the developer for madVR.
madshi
27th September 2018, 23:12
Thank you cyberbeing for working with me to get this release out - appreciated! :)
sat4all
28th September 2018, 09:45
Thank you both, it's working fine here with kodi dsplayer.
Manni
28th September 2018, 10:44
Thank you both, seems to be working fine with MPC-BE
sneaker_ger
28th September 2018, 10:59
Features & Changes
Add BT.2020 Support
What does this entail?
I remember the discussion on the libass tracker (https://github.com/libass/libass/issues/297) and it seemed like devs were at a loss on how to handle the issue of HDR.
cyberbeing
28th September 2018, 11:57
What does this entail?
I remember the discussion on the libass tracker (https://github.com/libass/libass/issues/297) and it seemed like devs were at a loss on how to handle the issue of HDR.
To be safe, I'd recommend thinking of the current support as BT.2020 SDR only. This release basically only adds support for the 'TV.2020' & 'PC.2020' 'YCbCr Matrix' tags. This was just something which was long overdue to be added to XySubFilter. Originally it was defined in v1.0.5 of SubRenderIntf.h released back in 2013(!), but nobody ever got around to adding support to XySubFilter. With this release, BT.601, BT.709, and BT.2020 are now supported.
Similar to the situation back when BT.709 support was added to xy-VSFilter, if you're authoring an ass script using the BT.2020 matrix, please tag 'YCbCr Matrix' of 'TV.2020' or 'PC.2020' appropriately so it will be handled correctly in the future. If you notice any bugs with BT.2020 authored scripts, please report them.
Telion
28th September 2018, 21:28
Cyberbeing and madshi, thanks for your efforts in keeping this project undead! :cool:
I also want to ask whether it would be possible to slightly improve the repositioning of ASS dialogs feature so that it'd evaluate the movableness of each ASS line individually? Currently it stops to reposition dialogs after the first encounter of any complex ASS tag, I guess. But that's not very convenient and consistent - usually simple dialog lines continue to occur after or even along with some complex scripting, so they should be repositioned as well. If each line was evaluated individually, it'd be very easy to always move what should be moved and to not move what shouldn't, regardless of the script's complexity as a whole. And it'd be even better if simple ASS tags like bold, italics, etc. won't trigger the unmovableness of a line. Can you please consider implementing this when you have a bit of spare time and a tad of inspiration?
madshi
28th September 2018, 23:38
Currently madVR doesn't handle separate ASS parts separately. I might implement support for that at one point in the future, but it's not very high priority right now. XySubFilter probably already reports movability separately for each subtitle part, so it's probably something that needs to be changed in madVR. However, do simple tags like bold, italics etc make ASS subtitles non-movable atm? I don't think they should!
cyberbeing
29th September 2018, 04:01
As madshi mentioned, currently madVR doesn't support moving multiple subtitle lines independently of each other. If one line gets flagged as unmovable on-screen, madVR won't move any lines until the unmovable line ends, and a new movable line starts. I noticed this behavior as well before releasing this update, but we figured it'd be better to release now for the SRT fix and have madshi fix the ASS quirk with mixed movable/unmovable lines at a later date.
XySubFilter is currently set rather conservatively, with both Soft & Hard Positioned tags flagged as unmovable to ensure typesetting doesn't break.
Movable tags:
1c
2c
3c
4c
1a
2a
3a
4a
alpha
an
a
blur
bord
be
b
c
fade
fe
fn
i
q
r
shad
s
t
u
xbord
xshad
ybord
yshad
Unmovable Tags [Soft]:
fax
fay
frx
fry
frz
fr
fscx
fscy
fsc
fsp
fs
kt
kf
K
ko
k
Unmovable Tags [Hard]:
clip
iclip
move
org
pbo
pos
p
Telion
29th September 2018, 13:10
However, do simple tags like bold, italics etc make ASS subtitles non-movable atm? I don't think they should!
I checked it and no, in b751 they don't (unlike the b746) - thanks again, that's a very nice improvement.
If one line gets flagged as unmovable on-screen, madVR won't move any lines until the unmovable line ends, and a new movable line starts.
That's not always the case. For example, when there appears a top dialog line positioned with {\an8} along with a regular bottom dialog, the latter moves back but indeed gets repositioned again when the former one ends. But when there are any signs positioned with {\pos}, the bottom dialog lines never get repositioned again even when all sign lines end and there is nothing on the screen except a regular dialog without any markup. I'm mostly concerned about this issue because currently I need to switch subtitle tracks back and forth after each sign as a workaround to restore the repositioning. Is this madVR's fault or XySubFilter's one related to the hard unmovable tags mentioned in your list (and what's the difference between soft and hard, btw)? Can something be done about this issue now, without the burden to implement an independent handling of ASS lines? I hope it should be quite simple to fix and it'd be a great improvement which would really make such support a low-priority cosmetic improvement.
madshi
29th September 2018, 15:39
If the behaviour is different depending on ASS tag then I don't know how to fix it. Probably something in XySubFilter then.
ikarad
29th September 2018, 16:23
XySubFilter 3.1.0.751 has been released (https://github.com/Cyberbeing/xy-VSFilter/releases/tag/3.1.0.751)
XySubFilter .zip Archive (32-bit) (https://github.com/Cyberbeing/xy-VSFilter/releases/download/3.1.0.751/XySubFilter_3.1.0.751_x86.zip) | XySubFilter .zip Archive (64-bit) (https://github.com/Cyberbeing/xy-VSFilter/releases/download/3.1.0.751/XySubFilter_3.1.0.751_x64.zip)
Debug Symbols for XySubFilter 3.1.0.751 (https://github.com/Cyberbeing/xy-VSFilter/releases/download/3.1.0.751/XySubFilter_3.1.0.751_Debug_Symbols.7z)
Features & Changes
Add setting to allow repositioning of SSA/ASS dialog
Add BT.2020 Support
Bug Fix
Fix external SRT subtitles with italic tag not being flagged as repositionable
Fix potential crash on startup during external subtitle parsing
Note: XySubFilter is no longer being actively developed. The original developer stopped working on the project back in 2014, and ever since then it's been in limbo. The changes in this release were made possible by madshi the developer for madVR.
Thanks but a bug is always present with this version.
subtitles in some dvds are not displayed with xysubfilter. With internal subrender of mpc-hc subs are displayed.
I have mpc-64 last clsid version + madvr + xysubfilter 64bits 3.1.0.751 (problem arrive with 3.1.0.746) and windows 7 64
I have tested with french dvd like love hina and kurumi.
edit: I just try with 32 bits version of xysubfilter 3.1.0.751 + mpc-hc 32 bits and it works. Bug come from 64 bits version.
https://preview.ibb.co/kPWh6z/Sans_titre.jpg (https://ibb.co/npOJeK)
madshi
29th September 2018, 17:06
So it's not a new bug in 3.1.0.751, but the same problem already existed in build 746?
Can you upload a small sample with which the problem can be reproduced?
ikarad
29th September 2018, 19:16
So it's not a new bug in 3.1.0.751, but the same problem already existed in build 746?
Can you upload a small sample with which the problem can be reproduced?
The same problem existed in build 746.
I can't upload a small sample because the problem arrives only when I open dvd with "open BR/dvd" option in mpc-hc. I must uplaod at least some files and a entire episode for that open dvd/BR function in mpc hc works. I can upload a 1gb file if you want.
If I open vob file, subs are displayed but color of subs are strange
https://preview.ibb.co/eaD76z/Sans_titre.jpg (https://ibb.co/hSh0Rz)
cyberbeing
29th September 2018, 19:30
I checked it and no, in b751 they don't (unlike the b746) - thanks again, that's a very nice improvement.
That's not always the case. For example, when there appears a top dialog line positioned with {\an8} along with a regular bottom dialog, the latter moves back but indeed gets repositioned again when the former one ends. But when there are any signs positioned with {\pos}, the bottom dialog lines never get repositioned again even when all sign lines end and there is nothing on the screen except a regular dialog without any markup. I'm mostly concerned about this issue because currently I need to switch subtitle tracks back and forth after each sign as a workaround to restore the repositioning. Is this madVR's fault or XySubFilter's one related to the hard unmovable tags mentioned in your list (and what's the difference between soft and hard, btw)? Can something be done about this issue now, without the burden to implement an independent handling of ASS lines? I hope it should be quite simple to fix and it'd be a great improvement which would really make such support a low-priority cosmetic improvement.
You seem to be correct. As soon as typesetting line appears, all dialog lines after that point are not moved by madVR.
After adding some logging, that particular problem does seem to be an XySubFilter bug. See if the following build fixes it for you:
https://www65.zippyshare.com/v/3kMnxuRc/file.html
If the behaviour is different depending on ASS tag then I don't know how to fix it. Probably something in XySubFilter then.
I'll send you the changes later, so you can look it over.
The same problem existed in build 746.
I can't upload a small sample because the problem arrives only when I open dvd with "open BR/dvd" option in mpc-hc. I must uplaod at least some files and a entire episode for that open dvd/BR function in mpc hc works. I can upload a 1gb file if you want.
If I open vob file, subs are displayed but color of subs are strange
Could you also test XySubFilter 3.1.0.705 BETA2 (https://github.com/Cyberbeing/xy-VSFilter/releases/download/3.1.0.705/XySubFilter_3.1.0.705_x64_BETA2.zip) & XySubFilter 3.1.0.744 BETA3 (https://github.com/Cyberbeing/xy-VSFilter/releases/download/3.1.0.744/XySubFilter_3.1.0.744_x64_BETA3.zip) to see if either of them work.
If it works in 3.1.0.705 but not in 3.1.0.744, then it's probably related to when Animated VobSub Support was merged in.
A small sample of the vob would still be useful, since the problem is likely related to those same subs going missing with "open BR/dvd".
Telion
29th September 2018, 20:12
After adding some logging, that particular problem does seem to be an XySubFilter bug. See if the following build fixes it for you:
Thanks a lot for your efforts! I really hope this bug is busted at last, but can you please upload an x86 build since I'm still using 32-bit OS.
ikarad
29th September 2018, 20:35
Could you also test XySubFilter 3.1.0.705 BETA2 (https://github.com/Cyberbeing/xy-VSFilter/releases/download/3.1.0.705/XySubFilter_3.1.0.705_x64_BETA2.zip) & XySubFilter 3.1.0.744 BETA3 (https://github.com/Cyberbeing/xy-VSFilter/releases/download/3.1.0.744/XySubFilter_3.1.0.744_x64_BETA3.zip) to see if either of them work.
If it works in 3.1.0.705 but not in 3.1.0.744, then it's probably related to when Animated VobSub Support was merged in.
A small sample of the vob would still be useful, since the problem is likely related to those same subs going missing with "open BR/dvd".
I have tried the two versions and it doesn't work.
I don't know how cut vob file.
edit: I have just tried any option. If I use enhanced video renderer in mpc-hc 64 with xysubfilter 3.1.0.751, subs are displayed. If I use madvr instead of enhanced video renderer with xysubfilter 3.1.0.751, subs are not displayed. I have tried madvr 0.91.4 and the last version 0.92.17. The problem seems to occur with a strange interaction between madvr, mpc-hc64 and xysubfilter 64bits
edit 2: with madvr 0.89.2 subs are displayed.
evr
https://preview.ibb.co/m0HnpK/evr.jpg (https://ibb.co/bMZYUK)
madvr0.89.2
https://preview.ibb.co/g2pNOe/madvr0_89_2.jpg (https://ibb.co/kPA7pK)
madvr 0.92.17 or 0.91.4
https://preview.ibb.co/cfiz3e/madvr0_92_17.jpg (https://ibb.co/g24iUK)
madshi
29th September 2018, 22:39
@ikarad, could it have to do with LAV Decoder filter and XySubFilter fighting over the subtitle connection to madVR? It's a known problem that madVR currently only accepts one subtitle connection. And if LAV has that connection, XySubFilter can lose out. Try using a different decoder, just to verify.
austonrush
30th September 2018, 05:39
[QUOTE=ikarad;1853344]I have tried the two versions and it doesn't work.
I don't know how cut vob file.
edit: I have just tried any option. If I use enhanced video renderer in mpc-hc 64 with xysubfilter 3.1.0.751, subs are displayed. If I use madvr instead of enhanced video renderer with xysubfilter 3.1.0.751, subs are not displayed. I have tried madvr 0.91.4 and the last version 0.92.17. The problem seems to occur with a strange interaction between madvr, mpc-hc64 and xysubfilter 64bits
edit 2: with madvr 0.89.2 subs are displayed.
I had the same issue, try disabling (not removing), lav splitter and lav splitter source under external filters in mpc-hc, subtitles are now displaying for me. forced subtitles are not loading automatically though :(.
cyberbeing
30th September 2018, 08:10
Try installing the latest LAVFilters-0.72.0-15.exe Nightly from https://files.1f0.de/lavf/nightly/ . It looks like nev actually changed the handling of DVD subtitles on that build compared LAVFilters-0.72.0-13.exe, maybe it is related? The commit message mentions "Disable the CC output pin for DVD playback".
If that doesn't work, ensure that you've run XySubFilter regsvr32 (as admin) and it actually succeeded, and also test MPC-BE to rule out it's not just a MPC-HC quirk. The last thing you could try is setting XySubFilter to "Always Load" under Properties->Main.
Personally I've been using MPC-HC 1.7.16, madVR 90.24, LAVFilters-0.72.0-15 on Win7 and and don't remember seeing anything like that.
Though thinking back, I don't think XySubFilter has ever supported rendering subtitles directly from a DVD disc(?). Isn't that usually handled by DVD Navigator and a DVD/MPEG2 decoder? Is the situation differ on OS newer than Win7? LAV Splitter never loads for DVD playback on my end, and XySubFilter never connects to the DVD subtitle pin, the subtitle pin is always taken and rendered by the video decoder.
If there is some kind of weird timing conflict going on, media players should probably consider blocking XySubFilter when a DVD disc is played. Yet it is curious if it doesn't occur with older madVR builds though, so maybe it's something madshi could fix on his end?
nevcairiel
30th September 2018, 08:19
If there is some kind of weird timing conflict going on, media players should probably consider blocking XySubFilter when a DVD disc is played. Yet it is curious if it doesn't occur with older madVR builds though, so maybe it's something madshi could fix on his end?
Don't think its much of a timing conflict.
With DVD playback, LAV Video uses the ISubRenderConsumer interface to render DVD menus and DVD subtitles. It'll connect that pretty late, when the DShow graphs enters "Pause" mode, so long after graph building. In what order would madVR act? If the consumer slot is already taken, does it let me kick out whats in there, or does it just block the slot for the first one to get in there?
The reason it doesn't happen with older madVR versions is that LAV Video checks the madVR version, and doesn't act unless its at least 0.89.10, because the interface was a bit crashy before that version.
It falls back to the inefficient manual blending onto the decoded picture.
But actual DVD disc playback is a bit complicated anyway. External subs would probably be hard to sync to the appropriate timing, so do people really do that?
ikarad
30th September 2018, 08:31
@ikarad, could it have to do with LAV Decoder filter and XySubFilter fighting over the subtitle connection to madVR? It's a known problem that madVR currently only accepts one subtitle connection. And if LAV has that connection, XySubFilter can lose out. Try using a different decoder, just to verify.
Thanks.
I have tried to turn off lav filter in mpc-hc. Now, Mpc use microsoft dtv-dvd video and audio decoder. Subs are not displayed.
With madvr and mpc-hc32 bits and xysubfilter 32 bits, subs are displayed. Only 64 bits version have a problem.
madshi
30th September 2018, 08:37
Do XySubFilter subs work *at all* in 64bit for you? Is the problem just with DVD, or with other videos, as well?
ikarad
30th September 2018, 08:51
Try installing the latest LAVFilters-0.72.0-15.exe Nightly from https://files.1f0.de/lavf/nightly/ . It looks like nev actually changed the handling of DVD subtitles on that build compared LAVFilters-0.72.0-13.exe, maybe it is related? The commit message mentions "Disable the CC output pin for DVD playback".
If that doesn't work, ensure that you've run XySubFilter regsvr32 (as admin) and it actually succeeded, and also test MPC-BE to rule out it's not just a MPC-HC quirk. The last thing you could try is setting XySubFilter to "Always Load" under Properties->Main.
Personally I've been using MPC-HC 1.7.16, madVR 90.24, LAVFilters-0.72.0-15 on Win7 and and don't remember seeing anything like that.
Though thinking back, I don't think XySubFilter has ever supported rendering subtitles directly from a DVD disc(?). Isn't that usually handled by DVD Navigator and a DVD/MPEG2 decoder? Is the situation differ on OS newer than Win7? LAV Splitter never loads for DVD playback on my end, and XySubFilter never connects to the DVD subtitle pin, the subtitle pin is always taken and rendered by the video decoder.
If there is some kind of weird timing conflict going on, media players should probably consider blocking XySubFilter when a DVD disc is played. Yet it is curious if it doesn't occur with older madVR builds though, so maybe it's something madshi could fix on his end?
I have tested mpc-be and LAVFilters-0.72.0-15.exe Nightly . There is the same problem.
ikarad
30th September 2018, 08:56
Do XySubFilter subs work *at all* in 64bit for you? Is the problem just with DVD, or with other videos, as well?
Problem only with dvd. With bluray or other mkv video, subs are displayed. If I use "open dvd/BD" function in mpc-hc with blu-ray subs are dislayed.
The problem arrive only with dvd when I use "open dvd/BD" function in mpc-hc with mad vr, mpc-hc 64bits and xysubfilter 64 bits. With 32 bits versions of mpc-hc and xysubfilter, subs are displayed
ikarad
30th September 2018, 09:28
Do XySubFilter subs work *at all* in 64bit for you? Is the problem just with DVD, or with other videos, as well?
I have tried many madvr version.
Until 0.89.09, subs are displayed
Since 0.89.11 subs are not displayed.
I can't test 0.89.10 because when I download 0.89.10.zip on videohelp https://www.videohelp.com/software/madVR/old-versions#download , it download 0.89.11.
clsid
30th September 2018, 13:55
madshi, this should fix the missing sub problem:
https://github.com/mpc-hc/mpc-hc/commit/42b596dee8980f0a95c8a4b2803478c9895adfe0
cyberbeing
30th September 2018, 14:48
clsid, I don't think that is related. XySubFilter doesn't have a BitBltFromRGBToRGBStretch function and we don't use VDPixmapStretchBltBilinear anywhere, that scaling code is MPC-HC specific.
madshi
30th September 2018, 14:50
@ikarad,
can you make a debug log with the missing subtitles? Please try to keep it as short as possible, which means: Start playback, when the subtitle should occur, and it doesn't, immediately stop the media player. If possible, no funny things like reloading the DVD multiple times, switching resolutions or zooming etc. Ideally, could you also add a debug log with the 32bit build, so I can compare both?
@clsid,
that change seems to be related to subtitle scaling quality (replacing bilinear with bicubic). How would that change help fixing missing subtitles?
clsid
30th September 2018, 14:54
MPC-HC used to have a bug too where certain subs weren't displayed in x64 builds. That change fixed it.
madshi
30th September 2018, 15:13
Not sure why it helped, but madVR doesn't use VDPixmapResample or VDPixmapStretchBltBilinear, so it's not a change I can do in madVR.
cyberbeing
30th September 2018, 15:19
Do you have a sample, and are you sure that wasn't only a VSFilter.dll issue? XySubFilter handles such thing differently than MPC-HC, so I don't think it would be affected by the same issue. Bitmaps subtitles such as VOBSUB are sent to madVR at original size, and madVR is responsible for scaling them as needed.
What ikarad & austonrush are reporting is a madVR/LavFilters specific issue related to DVD playback only, since they stated XySubFilter+EVR, XySubFilter+OldMadVR, and XySubFilter+CurrentMadVR+blockingLavSplitter were all working. It sounds like either a filter conflict, or a case of XySubFilter connecting to the madVR consumer before LAV Video (or the reverse, depending on which is actually rendering the DVD subs).
cyberbeing
30th September 2018, 15:50
Thanks a lot for your efforts! I really hope this bug is busted at last, but can you please upload an x86 build since I'm still using 32-bit OS.
https://www2.zippyshare.com/v/ZnTMPx2Q/file.html
clsid
30th September 2018, 15:51
Must be a different bug then. The fact that it happens with bitmaps and x64 only triggered my memory of that old MPC bug.
ikarad
30th September 2018, 17:28
@ikarad,
can you make a debug log with the missing subtitles? Please try to keep it as short as possible, which means: Start playback, when the subtitle should occur, and it doesn't, immediately stop the media player. If possible, no funny things like reloading the DVD multiple times, switching resolutions or zooming etc. Ideally, could you also add a debug log with the 32bit build, so I can compare both?
How make a debug log?
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.