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 13th June 2014, 13:43   #541  |  Link
cyberbeing
Broadband Junkie
 
Join Date: Oct 2005
Posts: 1,859
Quote:
Originally Posted by Sm3n View Post
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.

Quote:
Originally Posted by GCRaistlin View Post
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?

Quote:
Originally Posted by GCRaistlin View Post
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.

Quote:
Originally Posted by GCRaistlin View Post
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, 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. At this point in time, I'm having a hard time believing that something other than XySubFilter isn't to blame for this failure.
cyberbeing is offline   Reply With Quote
Old 13th June 2014, 22:48   #542  |  Link
GCRaistlin
Registered User
 
GCRaistlin's Avatar
 
Join Date: Jun 2006
Posts: 350
Quote:
Originally Posted by cyberbeing View Post
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.
Quote:
Originally Posted by cyberbeing View Post
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.

Quote:
Originally Posted by cyberbeing View Post
Could you please try installing 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. 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.
__________________
Windows 8.1 x64

Magically yours
Raistlin
GCRaistlin is offline   Reply With Quote
Old 14th June 2014, 03:07   #543  |  Link
cyberbeing
Broadband Junkie
 
Join Date: Oct 2005
Posts: 1,859
Quote:
Originally Posted by GCRaistlin View Post
I have been using VSFilter 2.41.322.
Does anything improve if you use xy-VSFilter 3.0.0.211 or the slightly newer xy-VSFilter CCCP build instead? xy-VSFilter has much more robust connection logic than MPC-HC VSFilter, so it very well may resolve this strange failure.
cyberbeing is offline   Reply With Quote
Old 14th June 2014, 16:23   #544  |  Link
Finnish Flash
Registered User
 
Join Date: Jan 2014
Posts: 13
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?

Last edited by Finnish Flash; 14th June 2014 at 20:49.
Finnish Flash is offline   Reply With Quote
Old 14th June 2014, 19:48   #545  |  Link
GCRaistlin
Registered User
 
GCRaistlin's Avatar
 
Join Date: Jun 2006
Posts: 350
Quote:
Originally Posted by cyberbeing View Post
Does anything improve if you use xy-VSFilter 3.0.0.211 or the slightly newer xy-VSFilter CCCP build 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.
__________________
Windows 8.1 x64

Magically yours
Raistlin
GCRaistlin is offline   Reply With Quote
Old 15th June 2014, 12:16   #546  |  Link
cyberbeing
Broadband Junkie
 
Join Date: Oct 2005
Posts: 1,859
@Finnish Flash

It seems Subtitle Workshop must catch all DirectShow filter exceptions during graph building. Should be fixed in this build.


@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.

Last edited by cyberbeing; 15th June 2014 at 12:21.
cyberbeing is offline   Reply With Quote
Old 15th June 2014, 12:45   #547  |  Link
GCRaistlin
Registered User
 
GCRaistlin's Avatar
 
Join Date: Jun 2006
Posts: 350
Quote:
Originally Posted by cyberbeing View Post
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?

Quote:
Originally Posted by cyberbeing View Post
If this issue only occurs when using XySubFilter with madVR but not VMR9/EVR-CP, you are probably experiencing madVR issue #205.
You're right, it occurs only under circumstances described there.
__________________
Windows 8.1 x64

Magically yours
Raistlin
GCRaistlin is offline   Reply With Quote
Old 15th June 2014, 13:01   #548  |  Link
Finnish Flash
Registered User
 
Join Date: Jan 2014
Posts: 13
Quote:
Originally Posted by cyberbeing View Post
@Finnish Flash

It seems Subtitle Workshop must catch all DirectShow filter exceptions during graph building. Should be fixed in this build.

Just tried it and it's working fine now. Thank you very much!
Finnish Flash is offline   Reply With Quote
Old 15th June 2014, 13:13   #549  |  Link
cyberbeing
Broadband Junkie
 
Join Date: Oct 2005
Posts: 1,859
Quote:
Originally Posted by GCRaistlin View Post
With what tools do I get the script or extract this small sample?
MKVToolNix 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 or gMKVExtractGUI.

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.
cyberbeing is offline   Reply With Quote
Old 15th June 2014, 13:16   #550  |  Link
Volfield
Registered User
 
Join Date: Mar 2010
Posts: 55
Quote:
Originally Posted by cyberbeing View Post
@Finnish Flash

It seems Subtitle Workshop must catch all DirectShow filter exceptions during graph building. Should be fixed in this build.
Can you make x64 version?
Volfield is offline   Reply With Quote
Old 15th June 2014, 13:22   #551  |  Link
cyberbeing
Broadband Junkie
 
Join Date: Oct 2005
Posts: 1,859
Quote:
Originally Posted by Volfield View Post
Can you make x64 version?
Here you go.
cyberbeing is offline   Reply With Quote
Old 19th June 2014, 18:25   #552  |  Link
sdancer75
Registered User
 
sdancer75's Avatar
 
Join Date: Jul 2013
Posts: 90
vsfilter Interfaces

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,

Last edited by sdancer75; 19th June 2014 at 18:59.
sdancer75 is offline   Reply With Quote
Old 19th June 2014, 22:14   #553  |  Link
cyberbeing
Broadband Junkie
 
Join Date: Oct 2005
Posts: 1,859
The public interfaces for xy-VSFilter are IDirectVobSub.h (original VSFilter interface) & IDirectVobSubXy.h (xy-VSFilter specific options).

XySubFilter only expanded IDirectVobSubXy.h to include all supported functionality, instead of requiring using both interfaces to access all options. IDirectVobSub remains though.

Last edited by cyberbeing; 20th June 2014 at 02:04.
cyberbeing is offline   Reply With Quote
Old 20th June 2014, 07:41   #554  |  Link
sdancer75
Registered User
 
sdancer75's Avatar
 
Join Date: Jul 2013
Posts: 90
Quote:
Originally Posted by cyberbeing View Post
The public interfaces for xy-VSFilter are IDirectVobSub.h (original VSFilter interface) & IDirectVobSubXy.h (xy-VSFilter specific options).

XySubFilter only expanded 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 ?

Last edited by sdancer75; 20th June 2014 at 08:16.
sdancer75 is offline   Reply With Quote
Old 20th June 2014, 09:20   #555  |  Link
cyberbeing
Broadband Junkie
 
Join Date: Oct 2005
Posts: 1,859
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 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.

Last edited by cyberbeing; 20th June 2014 at 09:24.
cyberbeing is offline   Reply With Quote
Old 20th June 2014, 11:18   #556  |  Link
sdancer75
Registered User
 
sdancer75's Avatar
 
Join Date: Jul 2013
Posts: 90
Quote:
Originally Posted by cyberbeing View Post
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 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 ?

Last edited by sdancer75; 20th June 2014 at 11:50.
sdancer75 is offline   Reply With Quote
Old 20th June 2014, 13:00   #557  |  Link
cyberbeing
Broadband Junkie
 
Join Date: Oct 2005
Posts: 1,859
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) as well as shared by MPC-HC VSFilter, and neither of those projects have a Boost requirement in sts.h

Last edited by cyberbeing; 20th June 2014 at 13:36.
cyberbeing is offline   Reply With Quote
Old 24th June 2014, 17:04   #558  |  Link
sdancer75
Registered User
 
sdancer75's Avatar
 
Join Date: Jul 2013
Posts: 90
Quote:
Originally Posted by cyberbeing View Post
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) as well as shared by MPC-HC VSFilter, 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 is offline   Reply With Quote
Old 28th June 2014, 19:44   #559  |  Link
sdancer75
Registered User
 
sdancer75's Avatar
 
Join Date: Jul 2013
Posts: 90
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,
sdancer75 is offline   Reply With Quote
Old 30th June 2014, 06:25   #560  |  Link
cyberbeing
Broadband Junkie
 
Join Date: Oct 2005
Posts: 1,859
Below is an excerpt of what MPC-BE uses, and it seems to work fine loading both UTF-8 and ASCII encoded subtitles into xy-VSFilter.

Code:
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.
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 17:49.


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