Support Request #4683
closedEBPRODUCTSUPPORT-1794 Bugfix DirectShowDevice-Filter
Description
Supportanfrage
Ein Kunde hat ein problem mit der Korrekten Auflösung der Webcam beim DirectShowDevice-Filter. Dieses Problem wurde schonmals in einem alten Supportticket behandelt, weswegen wir dem Kunden den Bugfix aus dem Ticket zukommen ließen.
Das Originalticket hatte bei euch wohl die Ticket-ID 17167KDPEI.
Dieser Bugfix funktioniert leider nicht mehr mit der aktuellen ADTF version:
"Leider scheint dieser Bugfix nicht mit der aktuellen ADTF-Version (2.14.2) kompatibel zu sein. Das Filter-Binary des Bugfixes lässt sich nicht in ADTF einbinden und der Source Code kompiliert nicht, da der Bugfix inkompatibel zum ADTF-SDK (2.14.2), genauer zur Klasse cBaseCaptureDevice in capturedevice.h ist.
Ich habe versucht, den Source Code von "common_directshowcapture" der Device Toolbox 2.7.0 zu kompilieren, aber dies ist an Linker-Problemen gescheitert."
Hier der Linker-Fehler:
1>------ Build started: Project: common_directshowcapture, Configuration: Release x64 ------
1> Creating library D:/work/adtf/addons/adtf-device-toolbox/build/src/plugins/common_directshowcapture/Release/common_directshowcapture.lib and object D:/work/adtf/addons/adtf-device-toolbox/build/src/plugins/common_directshowcapture/Release/common_directshowcapture.exp
1>DSRenderer.obj : error LNK2019: unresolved external symbol "public: cdecl CBaseVideoRenderer::CBaseVideoRenderer(struct _GUID const &,char const *,struct IUnknown *,long *)" (??0CBaseVideoRenderer@QEAA@AEBU_GUID
@PEBDPEAUIUnknown@PEAJ@Z) referenced in function "public: __cdecl cDSRenderer::cDSRenderer(class IDSRendererEventSink *)" (??0cDSRenderer
@QEAA@PEAVIDSRendererEventSink@@Z)
@UEAAPEAXI@Z)
1>strmbase.lib(ctlutil.obj) : error LNK2001: unresolved external symbol "void __cdecl operator delete(void *,unsigned __int64)" (??3@YAXPEAX_K@Z)
1>strmbase.lib(amfilter.obj) : error LNK2019: unresolved external symbol "void __cdecl operator delete(void *,unsigned __int64)" (??3@YAXPEAX_K@Z) referenced in function "public: virtual void * __cdecl CDynamicOutputPin::`scalar deleting destructor'(unsigned int)" (??_GCDynamicOutputPin
1>strmbase.lib(renbase.obj) : error LNK2001: unresolved external symbol "void __cdecl operator delete(void *,unsigned __int64)" (??3@YAXPEAX_K@Z)
1>strmbase.lib(wxutil.obj) : error LNK2001: unresolved external symbol "void __cdecl operator delete(void *,unsigned __int64)" (??3@YAXPEAX_K@Z)
1>strmbase.lib(wxlist.obj) : error LNK2001: unresolved external symbol "void __cdecl operator delete(void *,unsigned __int64)" (??3@YAXPEAX_K@Z)
1>strmbase.lib(amfilter.obj) : error LNK2001: unresolved external symbol __std_terminate
1>strmbase.lib(ctlutil.obj) : error LNK2001: unresolved external symbol __std_terminate
1>strmbase.lib(wxutil.obj) : error LNK2019: unresolved external symbol __imp_stdio_common_vswprintf referenced in function "long __cdecl StringCchPrintfW(wchar_t *,unsigned __int64,wchar_t const *,...)" (?StringCchPrintfW@@YAJPEA_W_KPEB_WZZ)
1>D:\work\adtf\addons\adtf-device-toolbox\build\src\plugins\common_directshowcapture\Release\common_directshowcapture.plb : fatal error LNK1120: 4 unresolved externals
2>------ Skipped Build: Project: INSTALL, Configuration: Release x64 ------
2>Project not selected to build for this solution configuration ========== Build: 0 succeeded, 1 failed, 13 up-to-date, 1 skipped ==========
"Die Library (strmbase.lib), in der der Fehler auftritt, wird von Microsoft nur als Source Code zur Verfügung gestellt und wurde von mir daher selbst kompiliert. Ich habe die aktuelle Windows7-Version dieser Library kompiliert, die Bestandteil des Windows7.1-SDKs ist. Vor etlichen Jahren war diese Library aber anscheinend mal Bestandteil des DirectX SDKs.
In der CMakeLists.txt von "common_directshowcapture" (....\adtf\addons\adtf-device-toolbox\src\plugins\common_directshowcapture\CMakeLists.txt) finden sich folgende Code-Zeilen:
find_path(DIRECTX_DIR include/strmbase/amfilter.h) if (DIRECTX_DIR) include_directories(${DIRECTX_DIR}/include) link_directories(${DIRECTX_DIR}/lib) else (DIRECTX_DIR) message(FATAL_ERROR "Could not find DirectX SDK") endif (DIRECTX_DIR)
Der Include-Path "strmbase" existiert nicht in den aktuellen Sourcen von strmbase.lib wie sie im Windows7.1-SDK enthalten sind. Ein aktuelles DirectX SDK wiederum enthält weder Sourcen noch Binaries zu strmbase.lib.Vermutlich erwartet "common_directshowcapture" irgendeine veraltete Version des DirectX SDKs."
Eine idee, wie wir dem Kunden da helfen können?
Lösung
SDK geliefert, Sourcen stehen zur Verfügung.
Files
Related issues
Updated by hidden over 5 years ago
- Project changed from Public Support to 7
- Status changed from New to In Progress
- Topic set to DeviceTB::Common
- Customer set to DUCATI
- Department set to SUPPORT
- Affected Products ADTF 2.14.2, ADTF Device Toolbox 2.7.0 added
Updated by hidden over 5 years ago
- Description updated (diff)
- Status changed from In Progress to Customer Feedback Required
- Product Issue Numbers set to https://www.cip.audi.de/jira/browse/ADEVTB-1149
Hallo Florian,
das Device wird eigentich so nicht mehr supportet, deshalb die Quellen geliefert.
Dieser Bugfix funktioniert leider nicht mehr mit der aktuellen ADTF version
Hast du das mal verifiziert ?
Warum lässt sich das binary nicht einbinden, was ist die Fehlermeldung ?
Eigentlich ist das in ADTF immer kompatibel...
1>------ Build started: Project: common_directshowcapture, Configuration: Release x64 ------
Auch Linker Error bei RelWithDebInfo ?
Kann ich irgendwie nicht nachvollziehen...
Windows 7
VS 2010 Professional ?
Updated by hidden over 5 years ago
Hierzu bäruchte ich ebenso noch Feedback, aufgrund des Krankheitshinweises wurde das Ticket auf 21.11.2018 verlängert.
Fragen aus #4683#note-2 sind noch offen.
Updated by hidden over 5 years ago
Hallo Florian,
wir wollen am Montag dem Kunden mit der aktuellen Device Toolbox eine 64bit Version des DirectShowDevice-Filter hier bauen und es beim Kunden dringlich ist. Da wir nicht wissen was unser Florian bei sich schon vorbereitet oder getan hat.
Könntest du mir bitte die DirectX Pakete für 32 und 64bit zukommen lassen mit denen ihr den Filter das letzte für die Toolbox selbst gebaut habt?
Danke schön!
Best regards,
Anja Winkler
Updated by hidden over 5 years ago
- File Win7SDK.zip Win7SDK.zip added
Hallo Anja,
ich habe Dir ein ZIP-Archiv in den Anhang gelegt, damit sollte sich der DirectShow-Filter bauen lassen.
Gruß
Frank
Updated by hidden over 5 years ago
- Description updated (diff)
- Status changed from Customer Feedback Required to To Be Closed
- Resolution set to Solved Issue
Updated by hidden about 5 years ago
- Project changed from 7 to Public Support
- Private changed from Yes to No
Updated by hidden about 5 years ago
- Related to Support Request #5985: How to compile Direct Show Capture Device added
Updated by hidden about 5 years ago
- Related to deleted (Support Request #5985: How to compile Direct Show Capture Device)
Updated by hidden about 5 years ago
- Has duplicate Support Request #5985: How to compile Direct Show Capture Device added