Hello everybody
I just managed get some time to back to H323Plus code.
Successfully compiled PTLib, H323Plus, Plugins, OpenMCU and SimplePlus near without modification, only one of plugins come with a PBollean type not found but easy fixed, I'll do the compilation again to confirm wich archive is and report back soon.
I'm using a full instalation of Visual Studio 2008 Pro SP1 (embeded Windows SDK 6.0A instaled)
For who having problems, put in the enviroment: PWLIB_CONFIGURE_EXCLUDE_DIRS, with the paths:
* C:\Program Files\Microsoft SDKs\Windows\v5.0 * C:\Program Files\Microsoft Visual Studio 9.0\smartdevices\sdk * C:\Program Files\Windows mobile 5.0 SDK r2
This prevents pre-compilation step, Configure.exe, to search for extensions on wrong paths (Atention! if you are compiling for Windows Mobile remember to remove "C:\Program Files\Windows mobile 5.0 SDK r2" from exclusion search path)
But I figured a behaviour: VideoTest from PTLib can find and use the WebCam with the "DirectShow" and "*" key search string in getDriversDevices. But SimplePlus not. If you start a new Solution to mimic VideoTest you will get the same bahaviour. Because VideoTest is marked dependency on PTLib on the build tree something getting wrong on projects outside PTLib Solution.
I'll investigate, and try search for more clues. Just reporting to see if others having the same issue.
Regards. Eng. Marcos F. Jardini
h323plus_2008.sln ============== Files opalvxml.cxx, line 138 and codecs.cxx, line 379 ----------------------------------------------------- codecs.h is a DirectShow/COM internal archive, full of IDL macros, don't be referenced direct. Seens VS ambiguous 'codec.h' from DShow and 'codec.h' in h323plus_2008.sln
Solution #1: Full path reference codecs.h to {path to H323Plus}/include/codecs.h (?) Solution #2: add pragma alias for disambiguation, like: alias("ds_codecs.h", "%ProgramFiles%\Microsoft SDKs\Windows\v6.0A\Include\codecs.h")
File codecs.cxx, line 572 ------------------------- Preprocessor branch "#ifdef H323_VIDEO" but line 787 says: "#endif // NO_H323_VIDEO"
Solution: Correct preprocessor line 572 to "#ifndef NO_H323_VIDEO" (?)
VisualStudio Preprocessor Hell ------------------------------ For some weird reason (or at least strange for me), Visual Studio interprets "#define x" and "#define x 1" completly diferent from each to other for comparsions like "#ifdef x", "#if defined(x)" and "#if x". Because this some files sections are grayed out and don't have some clue if fragment is being compiled or not.
Plugins.sln ======== ffmpeg H.263 Video Codec need the PBooblean definition ------------------------------------------------------
Fast Solution: declare PBolean as BOOL
PTLib_2008.sln =========== vidinput_directx.h, line - -------------------------- There is no "PWLIB_STATIC_LOAD_PLUGIN(DirectShow, PVideoInputDevice);" at the end of file. Probably source of out solutions projects can't find DirectShow PPluginDriver.
Solution: add "PWLIB_STATIC_LOAD_PLUGIN(DirectShow, PVideoInputDevice);"
2009/8/20 Marcos Fábio Jardini marcos.f.jardini@gmail.com:
Hello everybody
I just managed get some time to back to H323Plus code.
Successfully compiled PTLib, H323Plus, Plugins, OpenMCU and SimplePlus near without modification, only one of plugins come with a PBollean type not found but easy fixed, I'll do the compilation again to confirm wich archive is and report back soon.
I'm using a full instalation of Visual Studio 2008 Pro SP1 (embeded Windows SDK 6.0A instaled)
For who having problems, put in the enviroment: PWLIB_CONFIGURE_EXCLUDE_DIRS, with the paths:
- C:\Program Files\Microsoft SDKs\Windows\v5.0
- C:\Program Files\Microsoft Visual Studio 9.0\smartdevices\sdk
- C:\Program Files\Windows mobile 5.0 SDK r2
This prevents pre-compilation step, Configure.exe, to search for extensions on wrong paths (Atention! if you are compiling for Windows Mobile remember to remove "C:\Program Files\Windows mobile 5.0 SDK r2" from exclusion search path)
But I figured a behaviour: VideoTest from PTLib can find and use the WebCam with the "DirectShow" and "*" key search string in getDriversDevices. But SimplePlus not. If you start a new Solution to mimic VideoTest you will get the same bahaviour. Because VideoTest is marked dependency on PTLib on the build tree something getting wrong on projects outside PTLib Solution.
I'll investigate, and try search for more clues. Just reporting to see if others having the same issue.
Regards. Eng. Marcos F. Jardini
--
Jogue RPG, alimente o lado criativo!
Hi Marcos,
Marcos Fábio Jardini wrote:
h323plus_2008.sln
Files opalvxml.cxx, line 138 and codecs.cxx, line 379
codecs.h is a DirectShow/COM internal archive, full of IDL macros, don't be referenced direct. Seens VS ambiguous 'codec.h' from DShow and 'codec.h' in h323plus_2008.sln
Solution #1: Full path reference codecs.h to {path to H323Plus}/include/codecs.h (?) Solution #2: add pragma alias for disambiguation, like: alias("ds_codecs.h", "%ProgramFiles%\Microsoft SDKs\Windows\v6.0A\Include\codecs.h")
I would go with #1.
File codecs.cxx, line 572
Preprocessor branch "#ifdef H323_VIDEO" but line 787 says: "#endif // NO_H323_VIDEO"
Solution: Correct preprocessor line 572 to "#ifndef NO_H323_VIDEO" (?)
I have fixed the comment on the #endif.
VisualStudio Preprocessor Hell
For some weird reason (or at least strange for me), Visual Studio interprets "#define x" and "#define x 1" completly diferent from each to other for comparsions like "#ifdef x", "#if defined(x)" and "#if x". Because this some files sections are grayed out and don't have some clue if fragment is being compiled or not.
Plugins.sln
ffmpeg H.263 Video Codec need the PBooblean definition
Fast Solution: declare PBolean as BOOL
Fixed.
Regards, Jan
Marcos
codecs.h is a DirectShow/COM internal archive, full of IDL macros, don't be referenced direct. Seems VS ambiguous 'codec.h' from DShow and 'codec.h' in h323plus_2008.sln
The quick solution is to make sure the c++ include directory order has ptlib and h323plus directory before the platform SDK. Going forward, the easiest solution is to rename codec.h in h323plus.
There is no "PWLIB_STATIC_LOAD_PLUGIN(DirectShow, PVideoInputDevice);" at the end of file. Probably source of out solutions projects can't find DirectShow PPluginDriver.
PWLIB_STATIC_LOAD_PLUGIN has been depreciated in the PTLib SVN for PPLUGIN_STATIC_LOAD. The plugin loading is now centralised in videoio.h. I will make this change so that directshow gets loaded.
Simon
Marcos
Fixes have been applied to both h323plus CVS and ptlib SVN
Simon
-----Original Message----- From: h323plus-bounces@lists.packetizer.com [mailto:h323plus-bounces@lists.packetizer.com] On Behalf Of Simon Horne Sent: Friday, 21 August 2009 8:27 AM To: 'Marcos Fábio Jardini'; 'h323plus' Subject: Re: [h323plus] Behavior on VideoInputDevice
Marcos
codecs.h is a DirectShow/COM internal archive, full of IDL macros, don't be referenced direct. Seems VS ambiguous 'codec.h' from DShow and 'codec.h' in h323plus_2008.sln
The quick solution is to make sure the c++ include directory order has ptlib and h323plus directory before the platform SDK. Going forward, the easiest solution is to rename codec.h in h323plus.
There is no "PWLIB_STATIC_LOAD_PLUGIN(DirectShow, PVideoInputDevice);" at the end of file. Probably source of out solutions projects can't find DirectShow PPluginDriver.
PWLIB_STATIC_LOAD_PLUGIN has been depreciated in the PTLib SVN for PPLUGIN_STATIC_LOAD. The plugin loading is now centralised in videoio.h. I will make this change so that directshow gets loaded.
Simon
participants (3)
-
Jan Willamowius
-
Marcos Fábio Jardini
-
Simon Horne