[h323plus] enabling DirectShow video input

Alessandro Angeli packetizer.com at riseoftheants.com
Wed Oct 27 19:30:12 EDT 2010


I successfully built the debug configurations of ptlib 2.4.5 (static),
h323plus 1.21.0 and simpleplus 1.21.0 in VS2008SP1 + WinSDK 7.1 on
Win7/x64.

Audio and text work fine. However, video does not work: "No Video
Grabber available Disabling Video Support!".

DirectShow support in vidinput_directx.cxx is compiled successfully and
the DirectShow branches in simpleplus/main.cxx are active, since
P_DIRECTSHOW is #define'd as 1 in ptbuildopts.h. I tried #define'ing
P_DSHOW to 1 as well in simpleplus, without any difference.

As far as I can tell, the problem is that the DirectShow service is
never registered on startup.

I expanded the PCREATE_VIDINPUT_PLUGIN(DirectShow) macro in
vidinput_directx.cxx  to put a breakpoint in
PPlugin_PVideoInputDevice_DirectShow_Registration::<ctor>()
and that code is compiled but never executed. Actually, it appears to
never be mapped into memory at all, which should imply that the linker
is removing it from the final EXE, but adding /OPT:NOREF in the build
config of simpleplus does not make a difference.

However FakeVideo is registered and it also uses the
PCREATE_VIDINPUT_PLUGIN() macro, and I can not spot any difference
between the way FakeVideo and DirectShow are compiled and linked.

The only reference to a similar issue I could find is from over one year
ago:

http://lists.packetizer.com/pipermail/h323plus/2009-August/001165.html

But the current code already uses PCREATE_VIDINPUT_PLUGIN() and, as I
said, FakeVideo uses the same macro but is correctly registered.

-- 
Alessandro





More information about the h323plus mailing list