Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Better error feedback and warning re proppage.dll if property pages can't be created #301

Open
TheShadowRunner opened this issue Feb 22, 2017 · 6 comments

Comments

@TheShadowRunner
Copy link

Not entirely sure if this is a bug or request, but the controls are missing in the "MS DVD Navigator" fiter's property page.
So while it's possible to build a DVD playback graph, it's impossible to navigate in a DVD menu for instance.
I'm talking about this tab, on XP SP3 32bit:

Thanks for your support.

Also, I see graphstudionext was updated to 0.7.1.11, where can the changelog be read?

@mikecopperwhite
Copy link
Collaborator

mikecopperwhite commented Feb 22, 2017

Thanks for the report.

This is almost certainly because you haven't installed and registered proppage.dll where the property pages for many Microsoft filters are implemented. You need to register the 32/64 bit versions of this DLL depending whether you're using GSN 32bit and/or 64bit.

Proppage.dll is part of the Windows SDK. https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk is the latest version which I think should do the job though older versions are available. I'm not aware of any other way of getting it barring dubious download sites. This will also get GraphEdit (GraphEdt.exe) and OleView which are useful DirectShow debugging tools. In particular, it's worth cross checking any questionable GSN behaviour in GraphEdit to see if it's 'normal' DirectShow behaviour. This is a bit of an FAQ for this project.

We have a warning about proppage.dll if we fail to connect to a remote graph. Perhaps we need to give the user some warning and a reminder about proppage.dll if GSN can't create a property page CLSID retrieved by GetPages()

	DSUtil::ShowError(hr, _T("Failed to connect to remote graph. Note the error E_NOINTERFACE or REGDB_E_CLASSNOTREG can be caused by failing to register proppage.dll from the Windows SDK."));

Afraid there's no up to date changelog at the moment just the commit notes here which are hopefully fairly readable : https://github.com/cplussharp/graph-studio-next/commits/master. We all have other jobs and are maintaining this project on a very occasional basis...

@mikecopperwhite
Copy link
Collaborator

mikecopperwhite commented Feb 22, 2017

Possible implementation: if GSN fails to instantiate any property page CLSIDs returned by GetPages(), create an extra text tab that lists the CLSIDs, error messages and a reminder about registering proppage.dll. A message box popping up every time a property page can't be created could get really annoying for the user if a property page isn't available.

We could possibly test whether proppage.dll has been registered by creating a known property page or proxy/stub implemented by proppage.dll and report a more specific error message or error indication if we fail to create the test object. Could even do this test on startup.

I think there's a similar issue with evrprop.dll implementing the property page for the Enhanced Video Renderer filter.

@TheShadowRunner
Copy link
Author

Thank you very much mikecopperwhite, registering proppage.dll did the trick.
I think displaying an error message when proppage isn't registered (or detected by GSN) is a good idea.

Now that I can use DVD Nav, another issue has come to light though, it's just impossible to seek (I tried with a couple DVDs).
Trying to seek using the GSN timebar just does nothing at all (not even an error).
Also using Play > Seek always gives an error whatever function I try (E_NOTIMPL (0x80004001))
Is this expected?

@mikecopperwhite
Copy link
Collaborator

I'm not familiar with DVD filters or what seeking facilities they offer. Some filters or combinations don't support seeking. Don't have a DVD drive to test with to hand either. E_NOTIMPL typically means that the operation isn't implemented (i.e. deliberately not supported).

As a first step, try running the same test using GraphEdt.exe in the Windows SDK for comparison.

Also check the MSDN documentation for this filter.
https://msdn.microsoft.com/en-us/library/windows/desktop/dd388609(v=vs.85).aspx
https://msdn.microsoft.com/en-us/library/windows/desktop/dd388593(v=vs.85).aspx
https://msdn.microsoft.com/en-us/library/windows/desktop/dd318241(v=vs.85).aspx

@TheShadowRunner
Copy link
Author

Ok I was able to test the same graph in GraphEdt, and indeed seeking doesn't work there either.
It's strange but proves that it's not something missing from GSN ^^;

@mikecopperwhite
Copy link
Collaborator

Added an FAQ document covering some of this at:
https://github.com/cplussharp/graph-studio-next/blob/master/docs/FAQ.md

Linked from the home page (readme.md)

@mikecopperwhite mikecopperwhite changed the title Enable (missing) controls in DVD Navigator filter's property page Better error feedback and warning re proppage.dll if property pages can't be created Mar 11, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants