tags:

views:

80

answers:

1

I am experiencing problems with phonon direct show backend on WinXP. Basically it doesn't work at all for me I've tried it with both 4.7.0 SDK and with version built from sources. In both cases phonon_ds94.dll is located in /plugins/phonon_backend/ dir. My system is WinXP and I use VS 2008.

Here how I create video player:

vp = new Phonon::VideoPlayer(this);
...
vp->play(QUrl("..."));

On normal program run here is what I've got as its output:

WARNING: Phonon::createPath: Cannot connect  Phonon::MediaObject ( no objectName ) to  Phonon::VideoWidget ( no objectName ).

And this is what I've got as output during debug run qt-creator:

Exception at 0x7c812afb, code: 0x406d1388: Startup complete, flags=0x0


Exception at 0x7c812afb, code: 0xe06d7363: C++ exception, flags=0x1 (execution cannot be continued)

at:
0     kernel32!RaiseException 0x7c812afb
1     VSFilter!DllGetClassObject 0x24f8a76
2     VSFilter!DllGetClassObject 0x24a77f4
3     VSFilter 0x248459e
4     VSFilter!DllGetClassObject 0x251ac7c
5     VSFilter 0x248a53e
6     ole32!CoCreateInstance 0x775007b6


Exception at 0x7c812afb, code: 0xe06d7363: C++ exception, flags=0x1 (execution cannot be     continued)

at:
0     kernel32!RaiseException 0x7c812afb
1     VSFilter!DllGetClassObject 0x24f8a76
2     VSFilter!DllGetClassObject 0x24a77f4
3     VSFilter 0x248459e
4     VSFilter!DllGetClassObject 0x251ac7c
5     VSFilter 0x248a53e
6     ole32!CoCreateInstance 0x77501ee6
7     ntdll!RtlAllocateHeap 0x7c9101db
8     VSFilter!DllGetClassObject 0x24f8b43
9     ntdll!RtlAllocateHeap 0x7c9101db
10    VSFilter!DllGetClassObject 0x24f8b43
11    VSFilter!DllGetClassObject 0x2516646
12    VSFilter!DllGetClassObject 0x2517c6b
13    USER32!GetWindowLongW 0x7e4189cd
14    USER32!DispatchMessageW 0x7e418a10
15    kernel32!ValidateLocale 0x7c839ad8
16    kernel32!GetModuleFileNameA 0x7c80b730


Exception at 0x7c812afb, code: 0xe06d7363: C++ exception, flags=0x1 (execution cannot be     continued)

at:
0     kernel32!RaiseException 0x7c812afb
1     VSFilter!DllGetClassObject 0x24f8a76
2     VSFilter!DllGetClassObject 0x24a77f4
3     VSFilter 0x248459e
4     VSFilter!DllGetClassObject 0x251ac7c
5     VSFilter 0x248a53e
6     ole32!CoCreateInstance 0x77501ee6
7     ntdll!RtlAllocateHeap 0x7c9101db
8     VSFilter!DllGetClassObject 0x24f8b43
9     ntdll!RtlAllocateHeap 0x7c9101db
10    VSFilter!DllGetClassObject 0x24f8b43
11    VSFilter!DllGetClassObject 0x2516646
12    VSFilter!DllGetClassObject 0x2517c6b
13    USER32!GetWindowLongW 0x7e4189cd
14    USER32!DispatchMessageW 0x7e418a10
15    kernel32!ValidateLocale 0x7c839ad8
16    kernel32!GetModuleFileNameA 0x7c80b730


Exception at 0x7c812afb, code: 0xe06d7363: C++ exception, flags=0x1 (execution cannot be continued)

at:
0     kernel32!RaiseException 0x7c812afb
1     VSFilter!DllGetClassObject 0x24f8a76
2     VSFilter!DllGetClassObject 0x24a77f4
3     VSFilter 0x248459e
4     VSFilter!DllGetClassObject 0x251ac7c
5     VSFilter 0x248a53e
6     ole32!CoCreateInstance 0x77501ee6
7     ntdll!RtlAllocateHeap 0x7c9101db
8     VSFilter!DllGetClassObject 0x24f8b43
9     ntdll!RtlAllocateHeap 0x7c9101db
10    VSFilter!DllGetClassObject 0x24f8b43
11    VSFilter!DllGetClassObject 0x2516646
12    VSFilter!DllGetClassObject 0x2517c6b
13    USER32!GetWindowLongW 0x7e4189cd
14    USER32!DispatchMessageW 0x7e418a10
15    kernel32!ValidateLocale 0x7c839ad8
16    kernel32!GetModuleFileNameA 0x7c80b730


Exception at 0x7c812afb, code: 0xe06d7363: C++ exception, flags=0x1 (execution cannot be continued)

at:
0     kernel32!RaiseException 0x7c812afb
1     VSFilter!DllGetClassObject 0x24f8a76
2     VSFilter!DllGetClassObject 0x24a77f4
3     VSFilter 0x248459e
4     VSFilter!DllGetClassObject 0x251ac7c
5     VSFilter 0x248a53e
6     ole32!CoCreateInstance 0x77501ee6
7     ntdll!RtlAllocateHeap 0x7c9101db
8     VSFilter!DllGetClassObject 0x24f8b43
9     ntdll!RtlAllocateHeap 0x7c9101db
10    VSFilter!DllGetClassObject 0x24f8b43
11    VSFilter!DllGetClassObject 0x2516646
12    VSFilter!DllGetClassObject 0x2517c6b
13    USER32!GetWindowLongW 0x7e4189cd
14    USER32!DispatchMessageW 0x7e418a10
15    kernel32!ValidateLocale 0x7c839ad8
16    kernel32!GetModuleFileNameA 0x7c80b730


Exception at 0x7c812afb, code: 0xe06d7363: C++ exception, flags=0x1 (execution cannot be continued)

at:
0     kernel32!RaiseException 0x7c812afb
1     VSFilter!DllGetClassObject 0x24f8a76
2     VSFilter!DllGetClassObject 0x24a77f4
3     VSFilter 0x248459e
4     VSFilter!DllGetClassObject 0x251ac7c
5     VSFilter 0x248a53e
6     ole32!CoCreateInstance 0x77501ee6
7     ntdll!RtlAllocateHeap 0x7c9101db
8     VSFilter!DllGetClassObject 0x24f8b43
9     ntdll!RtlAllocateHeap 0x7c9101db
10    VSFilter!DllGetClassObject 0x24f8b43
11    VSFilter!DllGetClassObject 0x2516646
12    VSFilter!DllGetClassObject 0x2517c6b
13    USER32!GetWindowLongW 0x7e4189cd
14    USER32!DispatchMessageW 0x7e418a10
15    kernel32!ValidateLocale 0x7c839ad8
16    kernel32!GetModuleFileNameA 0x7c80b730


Exception at 0x7c812afb, code: 0xe06d7363: C++ exception, flags=0x1 (execution cannot be     continued)

at:
0     kernel32!RaiseException 0x7c812afb
1     VSFilter!DllGetClassObject 0x24f8a76
2     VSFilter!DllGetClassObject 0x24a77f4
3     VSFilter 0x248459e
4     VSFilter!DllGetClassObject 0x251ac7c
5     VSFilter 0x248a53e
6     ole32!CoCreateInstance 0x77501ee6
7     ntdll!RtlAllocateHeap 0x7c9101db
8     VSFilter!DllGetClassObject 0x24f8b43
9     ntdll!RtlAllocateHeap 0x7c9101db
10    VSFilter!DllGetClassObject 0x24f8b43
11    VSFilter!DllGetClassObject 0x2516646
12    VSFilter!DllGetClassObject 0x2517c6b
13    USER32!GetWindowLongW 0x7e4189cd
14    USER32!DispatchMessageW 0x7e418a10
15    kernel32!ValidateLocale 0x7c839ad8
16    kernel32!GetModuleFileNameA 0x7c80b730


Exception at 0x7c812afb, code: 0xe06d7363: C++ exception, flags=0x1 (execution cannot be     continued)

at:
0     kernel32!RaiseException 0x7c812afb
1     VSFilter!DllGetClassObject 0x24f8a76
2     VSFilter!DllGetClassObject 0x24a77f4
3     VSFilter 0x248459e
4     VSFilter!DllGetClassObject 0x251ac7c
5     VSFilter 0x248a53e
6     ole32!CoCreateInstance 0x77501ee6
7     ntdll!RtlAllocateHeap 0x7c9101db
8     VSFilter!DllGetClassObject 0x24f8b43
9     ntdll!RtlAllocateHeap 0x7c9101db
10    VSFilter!DllGetClassObject 0x24f8b43
11    VSFilter!DllGetClassObject 0x2516646
12    VSFilter!DllGetClassObject 0x2517c6b
13    USER32!GetWindowLongW 0x7e4189cd
14    USER32!DispatchMessageW 0x7e418a10
15    kernel32!ValidateLocale 0x7c839ad8
16    kernel32!GetModuleFileNameA 0x7c80b730

WARNING: Phonon::createPath: Cannot connect  Phonon::MediaObject ( no objectName ) to  Phonon::VideoWidget ( no objectName ).

Does anyone has any ideas?

A: 

I remember being frustrated by this at one point. Is your 'phonon_ds94.dll' built with the same version of Qt? It must both match the version number and be the right 'Debug' or 'Release' build type. An app linking against 'Debug' Qt libs will not load 'Release' plugins, and vice-versa.

Also, if you're building against debug qt libraries, you can step into the plugin loading code and see why it's not picking up your phonon backend.

Scott Danahy
I use binary SDK for VS 2008 from nokia website, I believe that phonon_ds94.dll bundled there is compiled correctly. Also I tried to compile Qt from source and of course every binary there is compiled with same compiler.I've checked phonon_ds94.dll with Dependency Walker and it found problems with delay-load dependency modules which shouldnt cause a problem
redbaron
That's really strange. Is any part of your app calling QCoreApplication::addLibraryPath() with something unexpected? Is the plugin in the global QTDIR or relative to your application? When I had this problem I stepped through the plugin loading process in the debugger. (The problem was revealed to be the version mismatch from my answer).
Scott Danahy