Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > General > Subtitles

Reply
 
Thread Tools Search this Thread Display Modes
Old 30th September 2018, 17:32   #1001  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 9,140
Double click "activate debug mode.bat". Then reproduce the problem. Afterwards there should be a "madVR - log.txt" file on your desktop.
madshi is offline   Reply With Quote
Old 30th September 2018, 17:35   #1002  |  Link
ikarad
Registered User
 
Join Date: Apr 2008
Posts: 546
Quote:
Originally Posted by madshi View Post
Double click "activate debug mode.bat". Then reproduce the problem. Afterwards there should be a "madVR - log.txt" file on your desktop.
Thanks.
Do you know how turn off debug mode after?

The log.txt will be in madvr folder?
ikarad is offline   Reply With Quote
Old 30th September 2018, 17:42   #1003  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 9,140
Just double click "activate release mode.bat" when you're done. That batch file will only exist once you entered debug mode. The log file will be on your desktop.
madshi is offline   Reply With Quote
Old 30th September 2018, 17:56   #1004  |  Link
ikarad
Registered User
 
Join Date: Apr 2008
Posts: 546
log File is here
https://ufile.io/b1ghq

I said an mistake yesterday. In 32 bits, it doesn't work.

Last edited by ikarad; 30th September 2018 at 19:27.
ikarad is offline   Reply With Quote
Old 30th September 2018, 18:42   #1005  |  Link
Telion
Registered User
 
Join Date: Sep 2011
Posts: 78
Quote:
Originally Posted by cyberbeing View Post
Based on a quick testing, seems like the main problem is fixed. But during it I've encountered a strange behaviour when a hard-positioned sign along with a subtitle line both are jumping up & down repeatedly, i.e. the repositioning is on & off multiple times during the display of that sign (in the ASS it is one continuous time interval for both). It's reproducing stably, but during the frame stepping the exact sequence and duration of "up" & "down" frames are different every time.

I've experienced this only once through the whole episode with many other moments of signs displayed together with dialogs, and everything else was OK. I don't know yet how often and in what exact conditions can this happen. I've cut out and uploaded that part, so maybe you could determine what's happening there. But even now your fix is pretty usable, many thanks again!
Telion is offline   Reply With Quote
Old 30th September 2018, 19:21   #1006  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 9,140
@Telion,

I think the test build has a bug, if cyberbeing implements my tweaked code, it might fix it. Not 100% sure, though.

@ikarad,

thanks for the video, it helped me reproduce the problem. I'd suggest that you remove the link because it's more than a little sample, so from a copyright point of view it's not a good idea to post it publically. Anyway, the problem is this: XySubFilter connects to madVR first. For DVD subtitles, however, LAV Video Decoder is the one who's responsible and XySubFilter is not involved at all! LAV Video Decoder tries to connect to madVR, too (for subtitles), but the connection gets rejected because XySubFilter is already connected. Because of that LAV Video Decoder can't deliver the subtitles to madVR.

This might actually be a timing problem: If XySubFilter connects first, it won't work. If LAV connects first, it will work. That might explain why it works in one bitdepth, but not the other. Or maybe it even varies. In any case, you can "solve" it by disabling XySubFilter, when watching DVDs. Unfortunately I don't really have a better solution available right now. It is on my to do list to support more than one subtitle connection. That would fully solve the problem, but I didn't get around implementing that yet.
madshi is offline   Reply With Quote
Old 30th September 2018, 20:51   #1007  |  Link
cyberbeing
Broadband Junkie
 
Join Date: Oct 2005
Posts: 1,859
Quote:
Originally Posted by madshi View Post
@Telion,
I think the test build has a bug, if cyberbeing implements my tweaked code, it might fix it. Not 100% sure, though.
https://www116.zippyshare.com/v/1kKfjQOK/file.html

Your tweaked code fixes the flickering back and forth with that sample. Though the original movable line still becomes unmovable when the typesetting appears, and movable again when it disappears. As mentioned in email, it would be preferred if lines could maintain their initial movable/unmovable state throughout their duration. Is that possible?

Quote:
Originally Posted by madshi View Post
This might actually be a timing problem: If XySubFilter connects first, it won't work. If LAV connects first, it will work. That might explain why it works in one bitdepth, but not the other. Or maybe it even varies. In any case, you can "solve" it by disabling XySubFilter, when watching DVDs. Unfortunately I don't really have a better solution available right now. It is on my to do list to support more than one subtitle connection. That would fully solve the problem, but I didn't get around implementing that yet.
Hmm... @ikarad just to confirm, does the same issue occur when you run Restore_Default_Settings.reg or otherwise set "XySubFilter->Properties->Loading->Load when needed"?

When "Load when needed" is set, XySubFilter shouldn't connect to madVR unless there is a connectable subtitle pin or an auto-loaded external subtitle in the directory.

Since you previously said it worked when you blocked LavSplitter, I assume that means XySubFilter is connecting to LavSplitter's Subtitle Pin?

What does "XySubFilter->Properties->Pin Info" show in those cases? I'm somewhat curious what kind of subtitle pin LavSplitter is exposing for DVD titles if LavVideo is already connected to LavSplitter.

Maybe you could try adding Lav Video Decoder to MPC-HC external filters, and setting the merit to Preferred and see if that allows it to enter the graph early enough to fix the issue.

Last edited by cyberbeing; 30th September 2018 at 22:00.
cyberbeing is offline   Reply With Quote
Old 30th September 2018, 21:37   #1008  |  Link
ikarad
Registered User
 
Join Date: Apr 2008
Posts: 546
Quote:
Originally Posted by cyberbeing View Post
Hmm... @ikarad just to confirm, does the same issue occur when you run Restore_Default_Settings.reg or otherwise set "XySubFilter->Properties->Loading->Load when needed"?

When "Load when needed" is set, XySubFilter shouldn't connect to madVR unless there is a connectable subtitle pin or an auto-loaded external subtitle in the directory.

Since you previously said it worked when you blocked LavSplitter, I assume that means XySubFilter is connecting to LavSplitter's Subtitle Pin?
If I set "Load when needed", xysubfilter is not launched. Subs are displayed
ikarad is offline   Reply With Quote
Old 30th September 2018, 21:43   #1009  |  Link
ikarad
Registered User
 
Join Date: Apr 2008
Posts: 546
Quote:
Originally Posted by cyberbeing View Post
What does "XySubFilter->Properties->Pin Info" show in those cases? I'm somewhat curious what kind of subtitle pin LavSplitter is exposing for DVD titles if LavVideo is already connected to LavSplitter.

If I select always load, xysubfilter is launched and pin info show nothing


When subs are displayed (for example if I turn off madvr), pin info show nothing but subs are displayed

Last edited by ikarad; 30th September 2018 at 21:54.
ikarad is offline   Reply With Quote
Old 30th September 2018, 21:55   #1010  |  Link
cyberbeing
Broadband Junkie
 
Join Date: Oct 2005
Posts: 1,859
Quote:
Originally Posted by ikarad View Post
If I set "Load when needed", xysubfilter is not launched. Subs are displayed
Does that resolve all your issues? If so, this isn't really a bug, considering "Load when needed" is the default setting for XySubFilter.

"Always Load" by design is set to have XySubFilter be loaded into the graph extremely aggressively by a Video Decoder helper filter with max merit, and always connect to madVR even if no subtitles or connectable pins exists. "Load when Needed" by comparison loads XySubFilter into the graph with a Audio Decoder helper, and will leave the graph if no subtitles or connectable pins exist.
cyberbeing is offline   Reply With Quote
Old 30th September 2018, 22:16   #1011  |  Link
ikarad
Registered User
 
Join Date: Apr 2008
Posts: 546
Quote:
Originally Posted by cyberbeing View Post
Does that resolve all your issues? If so, this isn't really a bug, considering "Load when needed" is the default setting for XySubFilter.
If 'load when needed" is set, xysubfilter is not used. Then, it works but it should works even with xysubfilter used.

I have set "always load" because on some videos, xysubfilter doesn't launched and xysubfilter has less bug than internal sub renderer of mpc-hc with fonts.

Last edited by ikarad; 30th September 2018 at 22:21.
ikarad is offline   Reply With Quote
Old 30th September 2018, 22:46   #1012  |  Link
cyberbeing
Broadband Junkie
 
Join Date: Oct 2005
Posts: 1,859
"Always Load" really shouldn't be needed for general use. It mainly exists for users who want to be able to display subtitles on videos without an Audio Track. It also gives users the option to manually load external subtitles on videos without a subtitle pin. For that second part though, external subtitles will be auto-loaded by XySubFilter set to "Load when needed" if they have an identical name to the video.

In which situations were you finding XySubFilter failing to load when "Load when needed" was set?

Last edited by cyberbeing; 30th September 2018 at 22:49.
cyberbeing is offline   Reply With Quote
Old 30th September 2018, 22:55   #1013  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 9,140
Quote:
Originally Posted by cyberbeing View Post
Your tweaked code fixes the flickering back and forth with that sample. Though the original movable line still becomes unmovable when the typesetting appears, and movable again when it disappears. As mentioned in email, it would be preferred if lines could maintain their initial movable/unmovable state throughout their duration. Is that possible?
Not easily, unfortunately. I'd have to rewrite/change quite a bit of code to make that work, which I don't have the time for atm.

So the only question is which problem is worse: The one reported by Telion? Or the one we may get if we allow the global movable state to switch back and forth, affecting *all* rendered subtitle lines immediately?
madshi is offline   Reply With Quote
Old 30th September 2018, 23:12   #1014  |  Link
Telion
Registered User
 
Join Date: Sep 2011
Posts: 78
Quote:
Originally Posted by madshi View Post
So the only question is which problem is worse: The one reported by Telion? Or the one we may get if we allow the global movable state to switch back and forth, affecting *all* rendered subtitle lines immediately?
I've quickly run the build based on your fix against the same aforementioned episode and didn't notice any apparent problems. Surely that doesn't guarantee anything, so it's up to you guys to decide - I just hope you'll find a way.
Telion is offline   Reply With Quote
Old 1st October 2018, 05:59   #1015  |  Link
cyberbeing
Broadband Junkie
 
Join Date: Oct 2005
Posts: 1,859
Quote:
Originally Posted by madshi View Post
So the only question is which problem is worse: The one reported by Telion? Or the one we may get if we allow the global movable state to switch back and forth, affecting *all* rendered subtitle lines immediately?
I'd say just allow the global movable state to switch back and forth, until we come up with a better solution. IMHO, the toggle box was added to allow movement to black bars for true simple ASS/SSA subtitles (like those converted from SRT for styling purposes) which don't contain complex typesetting. For people who use the same functionality already for SRT and know their ASS/SSA scripts are generally simple, it should be good enough for now.

The setting is disabled by default specifically, since we don't expect it to handle extremely complex SSA/ASS scripts flawlessly. I'm sure someone could create a script intentionally to cause movable/non-movable to be toggled so frequently that is causes severe readability issues, in which case the feature should just be disabled by the user. Until the behavior is enhanced, we are not expecting it to handle such a situation perfectly.

[Edit: Actually, after thinking about this, maybe you could add a feature which limits the frequency that changes from IsMovable=False to IsMovable=True are processed (i.e. ignore Provider IsMovable=True for X seconds after IsMovable=False occurs, user defined?), while always processing IsMovable=True to IsMovable=False instantly. Though I'm unsure if that would be worth the development effort to add, since it would only be a workaround for a problem which likely won't occur often.]

Last edited by cyberbeing; 1st October 2018 at 08:07.
cyberbeing is offline   Reply With Quote
Old 1st October 2018, 08:59   #1016  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 9,140
Quote:
Originally Posted by cyberbeing View Post
I'd say just allow the global movable state to switch back and forth, until we come up with a better solution. IMHO, the toggle box was added to allow movement to black bars for true simple ASS/SSA subtitles (like those converted from SRT for styling purposes) which don't contain complex typesetting. For people who use the same functionality already for SRT and know their ASS/SSA scripts are generally simple, it should be good enough for now.

The setting is disabled by default specifically, since we don't expect it to handle extremely complex SSA/ASS scripts flawlessly. I'm sure someone could create a script intentionally to cause movable/non-movable to be toggled so frequently that is causes severe readability issues, in which case the feature should just be disabled by the user. Until the behavior is enhanced, we are not expecting it to handle such a situation perfectly.

[Edit: Actually, after thinking about this, maybe you could add a feature which limits the frequency that changes from IsMovable=False to IsMovable=True are processed (i.e. ignore Provider IsMovable=True for X seconds after IsMovable=False occurs, user defined?), while always processing IsMovable=True to IsMovable=False instantly. Though I'm unsure if that would be worth the development effort to add, since it would only be a workaround for a problem which likely won't occur often.]
Of course it would be possible to add a delay, with a user options, but I already see problems describing such an option in such a way that the average user even understands what it means. So I'd say: Let's just release the build as it is, and if users complain, we can still think about what to do then. But probably it's good enough as it is, so probably nobody will complain.
madshi is offline   Reply With Quote
Old 3rd October 2018, 23:44   #1017  |  Link
worewo
Registered User
 
Join Date: Sep 2018
Posts: 1
Quote:
Originally Posted by tonyxc600 View Post
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?
External PGS subs don't work for me properly either.

My player never freezes, but the subtitles get out-of-sync as the movie goes on. The subtitle delay seems to be dependent on how far I am into the movie, rather than how long the video file has been playing for. Muxing the subs into the file, or using the default MPC-BE subtitle renderer always makes things work fine.
worewo is offline   Reply With Quote
Old 4th October 2018, 08:29   #1018  |  Link
cyberbeing
Broadband Junkie
 
Join Date: Oct 2005
Posts: 1,859
External PGS support has always had known-issues in XySubFilter ever since it was implemented.

1) External PGS seeking is completely broken and will cause the subs to go way out-of-sync. For non-stop sequential playback starting from frame 0, it generally works acceptably if you never seek.

2) Slow opening of external PGS was a regression caused a long time ago by this commit (Rewrite CTextFile::ReadString, specifically the TextFile.cpp changes) for unknown reasons.

Unfortunately, neither of these external PGS bugs were tracked down and fixed by the original developer while he was still around.

Last edited by cyberbeing; 4th October 2018 at 08:35.
cyberbeing is offline   Reply With Quote
Old 4th October 2018, 08:51   #1019  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 9,140
So what's the decision on the "movable" issue? I suppose we should allow the "movable" state to switch back and forth?
madshi is offline   Reply With Quote
Old 4th October 2018, 09:12   #1020  |  Link
cyberbeing
Broadband Junkie
 
Join Date: Oct 2005
Posts: 1,859
Yeah, it seems that's the better option for now, compared to it potentially stopping working entirely for the second half of a video. If no new problems come up, I'll release it with that change this weekend.
cyberbeing is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 23:31.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.