opalvoip-svn Mailing List for OpalVOIP (Page 646)
Brought to you by:
csoutheren,
rjongbloed
You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(71) |
Nov
(241) |
Dec
(143) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(210) |
Feb
(263) |
Mar
(214) |
Apr
(290) |
May
(203) |
Jun
(160) |
Jul
(128) |
Aug
(158) |
Sep
(376) |
Oct
(234) |
Nov
(227) |
Dec
(216) |
2009 |
Jan
(99) |
Feb
(151) |
Mar
(234) |
Apr
(143) |
May
(271) |
Jun
(244) |
Jul
(173) |
Aug
(124) |
Sep
(246) |
Oct
(178) |
Nov
(85) |
Dec
(77) |
2010 |
Jan
(101) |
Feb
(79) |
Mar
(92) |
Apr
(134) |
May
(125) |
Jun
(121) |
Jul
(61) |
Aug
(70) |
Sep
(86) |
Oct
(81) |
Nov
(65) |
Dec
(75) |
2011 |
Jan
(110) |
Feb
(119) |
Mar
(267) |
Apr
(154) |
May
(296) |
Jun
(177) |
Jul
(149) |
Aug
(124) |
Sep
(120) |
Oct
(116) |
Nov
(99) |
Dec
(121) |
2012 |
Jan
(78) |
Feb
(161) |
Mar
(323) |
Apr
(154) |
May
(190) |
Jun
(207) |
Jul
(176) |
Aug
(165) |
Sep
(137) |
Oct
(85) |
Nov
(112) |
Dec
(100) |
2013 |
Jan
(341) |
Feb
(102) |
Mar
(240) |
Apr
(216) |
May
(233) |
Jun
(226) |
Jul
(139) |
Aug
(192) |
Sep
(183) |
Oct
(211) |
Nov
(220) |
Dec
(110) |
2014 |
Jan
(203) |
Feb
(205) |
Mar
(100) |
Apr
(178) |
May
(194) |
Jun
(249) |
Jul
(136) |
Aug
(241) |
Sep
(226) |
Oct
(200) |
Nov
(94) |
Dec
(46) |
2015 |
Jan
(94) |
Feb
(74) |
Mar
(89) |
Apr
(78) |
May
(65) |
Jun
(70) |
Jul
(113) |
Aug
(176) |
Sep
(140) |
Oct
(154) |
Nov
(99) |
Dec
(115) |
2016 |
Jan
(102) |
Feb
(69) |
Mar
(97) |
Apr
(53) |
May
(42) |
Jun
(13) |
Jul
(42) |
Aug
(30) |
Sep
|
Oct
|
Nov
|
Dec
|
From: <cso...@us...> - 2007-10-31 06:06:07
|
Revision: 18771 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18771&view=rev Author: csoutheren Date: 2007-10-30 23:06:11 -0700 (Tue, 30 Oct 2007) Log Message: ----------- Created folder remotely Added Paths: ----------- contrib/t38modem/branches/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cso...@us...> - 2007-10-31 06:04:11
|
Revision: 18770 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18770&view=rev Author: csoutheren Date: 2007-10-30 23:04:15 -0700 (Tue, 30 Oct 2007) Log Message: ----------- Created folder remotely Added Paths: ----------- contrib/t38modem/trunk/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cso...@us...> - 2007-10-31 06:03:08
|
Revision: 18769 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18769&view=rev Author: csoutheren Date: 2007-10-30 23:03:12 -0700 (Tue, 30 Oct 2007) Log Message: ----------- Created folder remotely Added Paths: ----------- contrib/t38modem/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cso...@us...> - 2007-10-31 06:02:13
|
Revision: 18768 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18768&view=rev Author: csoutheren Date: 2007-10-30 23:02:18 -0700 (Tue, 30 Oct 2007) Log Message: ----------- Created folder remotely Added Paths: ----------- contrib/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sh...@us...> - 2007-10-30 02:56:34
|
Revision: 18767 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18767&view=rev Author: shorne Date: 2007-10-29 19:56:37 -0700 (Mon, 29 Oct 2007) Log Message: ----------- Created Extended Media mask to avoid interop issues Modified Paths: -------------- opal/trunk/include/codec/opalplugin.h Modified: opal/trunk/include/codec/opalplugin.h =================================================================== --- opal/trunk/include/codec/opalplugin.h 2007-10-30 02:55:41 UTC (rev 18766) +++ opal/trunk/include/codec/opalplugin.h 2007-10-30 02:56:37 UTC (rev 18767) @@ -254,7 +254,6 @@ PluginCodec_MediaTypeVideo = 0x0001, PluginCodec_MediaTypeAudioStreamed = 0x0002, PluginCodec_MediaTypeFax = 0x0003, - PluginCodec_MediaTypeExtVideo = 0x0004, PluginCodec_InputTypeMask = 0x0010, PluginCodec_InputTypeRaw = 0x0000, @@ -280,6 +279,9 @@ PluginCodec_NoEncodeSilence = 0x0000, PluginCodec_EncodeSilence = 0x0200, + PluginCodec_MediaExtensionMask = 0x0400, + PluginCodec_MediaTypeExtVideo = 0x0400, + PluginCodec_BitsPerSamplePos = 12, PluginCodec_BitsPerSampleMask = 0xf000, }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sh...@us...> - 2007-10-30 02:55:42
|
Revision: 18766 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18766&view=rev Author: shorne Date: 2007-10-29 19:55:41 -0700 (Mon, 29 Oct 2007) Log Message: ----------- Added H.239 Support for CIF Modified Paths: -------------- opal/trunk/plugins/video/H.263-ffmpeg/h263ffmpeg.cxx Modified: opal/trunk/plugins/video/H.263-ffmpeg/h263ffmpeg.cxx =================================================================== --- opal/trunk/plugins/video/H.263-ffmpeg/h263ffmpeg.cxx 2007-10-28 13:13:32 UTC (rev 18765) +++ opal/trunk/plugins/video/H.263-ffmpeg/h263ffmpeg.cxx 2007-10-30 02:55:41 UTC (rev 18766) @@ -1569,7 +1569,8 @@ PLUGIN_CODEC_VERSION_OPTIONS, // codec API version &licenseInfo, // license information - PluginCodec_MediaTypeVideo | // audio codec + PluginCodec_MediaTypeVideo | // video codec + PluginCodec_MediaTypeExtVideo | // Extended video codec PluginCodec_RTPTypeExplicit, // specified RTP type h263CIFDesc, // text decription @@ -1602,7 +1603,8 @@ PLUGIN_CODEC_VERSION_OPTIONS, // codec API version &licenseInfo, // license information - PluginCodec_MediaTypeVideo | // audio codec + PluginCodec_MediaTypeVideo | // video codec + PluginCodec_MediaTypeExtVideo | // Extended video codec PluginCodec_RTPTypeExplicit, // specified RTP type h263CIFDesc, // text decription @@ -1703,7 +1705,7 @@ PLUGIN_CODEC_VERSION_OPTIONS, // codec API version &licenseInfo, // license information - PluginCodec_MediaTypeVideo | // audio codec + PluginCodec_MediaTypeVideo | // video codec PluginCodec_RTPTypeExplicit, // specified RTP type h263Desc, // text decription @@ -1736,7 +1738,7 @@ PLUGIN_CODEC_VERSION_OPTIONS, // codec API version &licenseInfo, // license information - PluginCodec_MediaTypeVideo | // audio codec + PluginCodec_MediaTypeVideo | // video codec PluginCodec_RTPTypeExplicit, // specified RTP type h263Desc, // text decription This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dsa...@us...> - 2007-10-28 13:13:30
|
Revision: 18765 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18765&view=rev Author: dsandras Date: 2007-10-28 06:13:32 -0700 (Sun, 28 Oct 2007) Log Message: ----------- Applied patch from Peter Robinson <probinson gmail com> to fix remaining issues related to the renaming of pwlib into ptlib. Modified Paths: -------------- opal/trunk/plugins/LID/CAPI/Makefile.in opal/trunk/plugins/LID/IxJ/Makefile.in opal/trunk/plugins/LID/VPB/Makefile.in opal/trunk/plugins/audio/G726/Makefile.in opal/trunk/plugins/audio/GSM0610/Makefile.in opal/trunk/plugins/audio/IMA_ADPCM/Makefile.in opal/trunk/plugins/audio/LPC_10/Makefile.in opal/trunk/plugins/audio/Speex/Makefile.in opal/trunk/plugins/audio/gsm-amr/Makefile.in opal/trunk/plugins/audio/iLBC/Makefile.in opal/trunk/plugins/fax/fax_spandsp/Makefile.in opal/trunk/plugins/video/H.261-vic/Makefile.in opal/trunk/plugins/video/H.263-1998/Makefile.in opal/trunk/plugins/video/H.263-ffmpeg/Makefile.in opal/trunk/plugins/video/H.263-ffmpeg/h263ffmpeg.cxx opal/trunk/plugins/video/H.264/Makefile.in opal/trunk/plugins/video/H.264/gpl/Makefile.in opal/trunk/plugins/video/H.264/h264pipe_unix.cxx opal/trunk/plugins/video/MPEG4-ffmpeg/Makefile.in opal/trunk/plugins/video/THEORA/Makefile.in Modified: opal/trunk/plugins/LID/CAPI/Makefile.in =================================================================== --- opal/trunk/plugins/LID/CAPI/Makefile.in 2007-10-25 19:29:15 UTC (rev 18764) +++ opal/trunk/plugins/LID/CAPI/Makefile.in 2007-10-28 13:13:32 UTC (rev 18765) @@ -63,11 +63,11 @@ $(CC) $(LDSO)$(SONAME) -o $@ $^ $(EXTRALIBS) install: - mkdir -p $(DESTDIR)$(LIBDIR)/pwlib/lid/ - cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/pwlib/lid/ + mkdir -p $(DESTDIR)$(LIBDIR)/ptlib/lid/ + cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/ptlib/lid/ uninstall: - rm -f $(DESTDIR)$(LIBDIR)/pwlib/lid/$(PLUGIN) + rm -f $(DESTDIR)$(LIBDIR)/ptlib/lid/$(PLUGIN) clean: rm -f $(OBJECTS) $(PLUGIN) Modified: opal/trunk/plugins/LID/IxJ/Makefile.in =================================================================== --- opal/trunk/plugins/LID/IxJ/Makefile.in 2007-10-25 19:29:15 UTC (rev 18764) +++ opal/trunk/plugins/LID/IxJ/Makefile.in 2007-10-28 13:13:32 UTC (rev 18765) @@ -66,11 +66,11 @@ $(CC) $(LDSO)$(SONAME) -o $@ $^ $(EXTRALIBS) install: - mkdir -p $(DESTDIR)$(LIBDIR)/pwlib/lid/ - cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/pwlib/lid/ + mkdir -p $(DESTDIR)$(LIBDIR)/ptlib/lid/ + cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/ptlib/lid/ uninstall: - rm -f $(DESTDIR)$(LIBDIR)/pwlib/lid/$(PLUGIN) + rm -f $(DESTDIR)$(LIBDIR)/ptlib/lid/$(PLUGIN) clean: rm -f $(OBJECTS) $(PLUGIN) Modified: opal/trunk/plugins/LID/VPB/Makefile.in =================================================================== --- opal/trunk/plugins/LID/VPB/Makefile.in 2007-10-25 19:29:15 UTC (rev 18764) +++ opal/trunk/plugins/LID/VPB/Makefile.in 2007-10-28 13:13:32 UTC (rev 18765) @@ -108,11 +108,11 @@ $(CC) $(LDSO)$(SONAME) -o $@ $^ $(EXTRALIBS) install: - mkdir -p $(DESTDIR)$(LIBDIR)/pwlib/lid/ - cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/pwlib/lid/ + mkdir -p $(DESTDIR)$(LIBDIR)/ptlib/lid/ + cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/ptlib/lid/ uninstall: - rm -f $(DESTDIR)$(LIBDIR)/pwlib/lid/$(PLUGIN) + rm -f $(DESTDIR)$(LIBDIR)/ptlib/lid/$(PLUGIN) clean: rm -f $(OBJECTS) $(PLUGIN) Modified: opal/trunk/plugins/audio/G726/Makefile.in =================================================================== --- opal/trunk/plugins/audio/G726/Makefile.in 2007-10-25 19:29:15 UTC (rev 18764) +++ opal/trunk/plugins/audio/G726/Makefile.in 2007-10-28 13:13:32 UTC (rev 18765) @@ -90,11 +90,11 @@ $(CC) $(LDSO) -o $@ $^ $(EXTRALIBS) install: - mkdir -p $(DESTDIR)$(LIBDIR)/pwlib/codecs/audio/ - cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/pwlib/codecs/audio/ + mkdir -p $(DESTDIR)$(LIBDIR)/ptlib/codecs/audio/ + cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/ptlib/codecs/audio/ uninstall: - rm -f $(DESTDIR)$(LIBDIR)/pwlib/codecs/audio/$(PLUGIN) + rm -f $(DESTDIR)$(LIBDIR)/ptlib/codecs/audio/$(PLUGIN) clean: rm -f $(OBJECTS) $(PLUGIN) Modified: opal/trunk/plugins/audio/GSM0610/Makefile.in =================================================================== --- opal/trunk/plugins/audio/GSM0610/Makefile.in 2007-10-25 19:29:15 UTC (rev 18764) +++ opal/trunk/plugins/audio/GSM0610/Makefile.in 2007-10-28 13:13:32 UTC (rev 18765) @@ -150,11 +150,11 @@ endif install: - mkdir -p $(DESTDIR)$(LIBDIR)/pwlib/codecs/audio/ - cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/pwlib/codecs/audio/ + mkdir -p $(DESTDIR)$(LIBDIR)/ptlib/codecs/audio/ + cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/ptlib/codecs/audio/ uninstall: - rm -f $(DESTDIR)$(LIBDIR)/pwlib/codecs/audio/$(PLUGIN) + rm -f $(DESTDIR)$(LIBDIR)/ptlib/codecs/audio/$(PLUGIN) clean: rm -f $(OBJECTS) $(PLUGIN) Modified: opal/trunk/plugins/audio/IMA_ADPCM/Makefile.in =================================================================== --- opal/trunk/plugins/audio/IMA_ADPCM/Makefile.in 2007-10-25 19:29:15 UTC (rev 18764) +++ opal/trunk/plugins/audio/IMA_ADPCM/Makefile.in 2007-10-28 13:13:32 UTC (rev 18765) @@ -81,11 +81,11 @@ $(CC) $(LDSO) -o $@ $^ $(EXTRALIBS) install: - mkdir -p $(DESTDIR)$(LIBDIR)/pwlib/codecs/audio/ - cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/pwlib/codecs/audio/ + mkdir -p $(DESTDIR)$(LIBDIR)/ptlib/codecs/audio/ + cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/ptlib/codecs/audio/ uninstall: - rm -f $(DESTDIR)$(LIBDIR)/pwlib/codecs/audio/$(PLUGIN) + rm -f $(DESTDIR)$(LIBDIR)/ptlib/codecs/audio/$(PLUGIN) clean: rm -f $(OBJECTS) $(PLUGIN) Modified: opal/trunk/plugins/audio/LPC_10/Makefile.in =================================================================== --- opal/trunk/plugins/audio/LPC_10/Makefile.in 2007-10-25 19:29:15 UTC (rev 18764) +++ opal/trunk/plugins/audio/LPC_10/Makefile.in 2007-10-28 13:13:32 UTC (rev 18765) @@ -118,11 +118,11 @@ $(CC) $(LDSO) -o $@ $^ $(EXTRALIBS) install: - mkdir -p $(DESTDIR)$(LIBDIR)/pwlib/codecs/audio/ - cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/pwlib/codecs/audio/ + mkdir -p $(DESTDIR)$(LIBDIR)/ptlib/codecs/audio/ + cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/ptlib/codecs/audio/ uninstall: - rm -f $(DESTDIR)$(LIBDIR)/pwlib/codecs/audio/$(PLUGIN) + rm -f $(DESTDIR)$(LIBDIR)/ptlib/codecs/audio/$(PLUGIN) clean: rm -f $(OBJECTS) $(PLUGIN) Modified: opal/trunk/plugins/audio/Speex/Makefile.in =================================================================== --- opal/trunk/plugins/audio/Speex/Makefile.in 2007-10-25 19:29:15 UTC (rev 18764) +++ opal/trunk/plugins/audio/Speex/Makefile.in 2007-10-28 13:13:32 UTC (rev 18765) @@ -153,11 +153,11 @@ $(CXX) $(LDSO) -o $@ $^ $(EXTRALIBS) install: - mkdir -p $(DESTDIR)$(LIBDIR)/pwlib/codecs/audio/ - cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/pwlib/codecs/audio/ + mkdir -p $(DESTDIR)$(LIBDIR)/ptlib/codecs/audio/ + cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/ptlib/codecs/audio/ uninstall: - rm -f $(DESTDIR)$(LIBDIR)/pwlib/codecs/audio/$(PLUGIN) + rm -f $(DESTDIR)$(LIBDIR)/ptlib/codecs/audio/$(PLUGIN) clean: rm -f $(OBJECTS) $(PLUGIN) Modified: opal/trunk/plugins/audio/gsm-amr/Makefile.in =================================================================== --- opal/trunk/plugins/audio/gsm-amr/Makefile.in 2007-10-25 19:29:15 UTC (rev 18764) +++ opal/trunk/plugins/audio/gsm-amr/Makefile.in 2007-10-28 13:13:32 UTC (rev 18765) @@ -50,11 +50,11 @@ $(CC) $(LDSO) -o $@ $^ install: - mkdir -p $(DESTDIR)$(LIBDIR)/pwlib/codecs/audio/ - cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/pwlib/codecs/audio/ + mkdir -p $(DESTDIR)$(LIBDIR)/ptlib/codecs/audio/ + cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/ptlib/codecs/audio/ uninstall: - rm -f $(DESTDIR)$(LIBDIR)/pwlib/codecs/audio/$(PLUGIN) + rm -f $(DESTDIR)$(LIBDIR)/ptlib/codecs/audio/$(PLUGIN) else install: uninstall: Modified: opal/trunk/plugins/audio/iLBC/Makefile.in =================================================================== --- opal/trunk/plugins/audio/iLBC/Makefile.in 2007-10-25 19:29:15 UTC (rev 18764) +++ opal/trunk/plugins/audio/iLBC/Makefile.in 2007-10-28 13:13:32 UTC (rev 18765) @@ -98,11 +98,11 @@ $(CC) $(LDSO) -o $@ $^ install: - mkdir -p $(DESTDIR)$(LIBDIR)/pwlib/codecs/audio/ - cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/pwlib/codecs/audio/ + mkdir -p $(DESTDIR)$(LIBDIR)/ptlib/codecs/audio/ + cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/ptlib/codecs/audio/ uninstall: - rm -f $(DESTDIR)$(LIBDIR)/pwlib/codecs/audio/$(PLUGIN) + rm -f $(DESTDIR)$(LIBDIR)/ptlib/codecs/audio/$(PLUGIN) clean: rm -f $(OBJECTS) $(PLUGIN) Modified: opal/trunk/plugins/fax/fax_spandsp/Makefile.in =================================================================== --- opal/trunk/plugins/fax/fax_spandsp/Makefile.in 2007-10-25 19:29:15 UTC (rev 18764) +++ opal/trunk/plugins/fax/fax_spandsp/Makefile.in 2007-10-28 13:13:32 UTC (rev 18765) @@ -71,11 +71,11 @@ $(CC) $(LDSO) -o $@ $^ $(EXTRALIBS) install: - mkdir -p $(DESTDIR)$(LIBDIR)/pwlib/codecs/fax/ - cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/pwlib/codecs/fax/ + mkdir -p $(DESTDIR)$(LIBDIR)/ptlib/codecs/fax/ + cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/ptlib/codecs/fax/ uninstall: - rm -f $(DESTDIR)$(LIBDIR)/pwlib/codecs/fax/$(PLUGIN) + rm -f $(DESTDIR)$(LIBDIR)/ptlib/codecs/fax/$(PLUGIN) clean: rm -f $(OBJECTS) $(PLUGIN) Modified: opal/trunk/plugins/video/H.261-vic/Makefile.in =================================================================== --- opal/trunk/plugins/video/H.261-vic/Makefile.in 2007-10-25 19:29:15 UTC (rev 18764) +++ opal/trunk/plugins/video/H.261-vic/Makefile.in 2007-10-28 13:13:32 UTC (rev 18765) @@ -110,11 +110,11 @@ install: - mkdir -p $(DESTDIR)$(LIBDIR)/pwlib/codecs/video/ - cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/pwlib/codecs/video/ + mkdir -p $(DESTDIR)$(LIBDIR)/ptlib/codecs/video/ + cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/ptlib/codecs/video/ uninstall: - rm -f $(DESTDIR)$(LIBDIR)/pwlib/codecs/video/$(PLUGIN) + rm -f $(DESTDIR)$(LIBDIR)/ptlib/codecs/video/$(PLUGIN) clean: rm -f $(OBJECTS) $(PLUGIN) Modified: opal/trunk/plugins/video/H.263-1998/Makefile.in =================================================================== --- opal/trunk/plugins/video/H.263-1998/Makefile.in 2007-10-25 19:29:15 UTC (rev 18764) +++ opal/trunk/plugins/video/H.263-1998/Makefile.in 2007-10-28 13:13:32 UTC (rev 18765) @@ -62,11 +62,11 @@ $(CXX) $(LDSO) -o $@ $^ install: - mkdir -p $(DESTDIR)$(LIBDIR)/pwlib/codecs/video/ - cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/pwlib/codecs/video/ + mkdir -p $(DESTDIR)$(LIBDIR)/ptlib/codecs/video/ + cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/ptlib/codecs/video/ uninstall: - rm -f $(DESTDIR)$(LIBDIR)/pwlib/codecs/video/$(PLUGIN) + rm -f $(DESTDIR)$(LIBDIR)/ptlib/codecs/video/$(PLUGIN) clean: rm -f $(OBJECTS) $(PLUGIN) Modified: opal/trunk/plugins/video/H.263-ffmpeg/Makefile.in =================================================================== --- opal/trunk/plugins/video/H.263-ffmpeg/Makefile.in 2007-10-25 19:29:15 UTC (rev 18764) +++ opal/trunk/plugins/video/H.263-ffmpeg/Makefile.in 2007-10-28 13:13:32 UTC (rev 18765) @@ -66,11 +66,11 @@ $(CXX) $(LDSO) -o $@ $^ install: - mkdir -p $(DESTDIR)$(LIBDIR)/pwlib/codecs/video/ - cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/pwlib/codecs/video/ + mkdir -p $(DESTDIR)$(LIBDIR)/ptlib/codecs/video/ + cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/ptlib/codecs/video/ uninstall: - rm -f $(DESTDIR)$(LIBDIR)/pwlib/codecs/video/$(PLUGIN) + rm -f $(DESTDIR)$(LIBDIR)/ptlib/codecs/video/$(PLUGIN) clean: rm -f $(OBJECTS) $(PLUGIN) Modified: opal/trunk/plugins/video/H.263-ffmpeg/h263ffmpeg.cxx =================================================================== --- opal/trunk/plugins/video/H.263-ffmpeg/h263ffmpeg.cxx 2007-10-25 19:29:15 UTC (rev 18764) +++ opal/trunk/plugins/video/H.263-ffmpeg/h263ffmpeg.cxx 2007-10-28 13:13:32 UTC (rev 18765) @@ -147,7 +147,7 @@ # define DIR_SEPERATOR "\\" # define DIR_TOKENISER ";" # else -# define P_DEFAULT_PLUGIN_DIR "/usr/lib/pwlib" +# define P_DEFAULT_PLUGIN_DIR "/usr/lib/ptlib" # define DIR_SEPERATOR "/" # define DIR_TOKENISER ":" # endif Modified: opal/trunk/plugins/video/H.264/Makefile.in =================================================================== --- opal/trunk/plugins/video/H.264/Makefile.in 2007-10-25 19:29:15 UTC (rev 18764) +++ opal/trunk/plugins/video/H.264/Makefile.in 2007-10-28 13:13:32 UTC (rev 18765) @@ -116,11 +116,11 @@ install: - mkdir -p $(DESTDIR)$(LIBDIR)/pwlib/codecs/video/ - cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/pwlib/codecs/video/ + mkdir -p $(DESTDIR)$(LIBDIR)/ptlib/codecs/video/ + cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/ptlib/codecs/video/ uninstall: - rm -f $(DESTDIR)$(LIBDIR)/pwlib/codecs/video/$(PLUGIN) + rm -f $(DESTDIR)$(LIBDIR)/ptlib/codecs/video/$(PLUGIN) clean: rm -f $(OBJECTS) $(PLUGIN) Modified: opal/trunk/plugins/video/H.264/gpl/Makefile.in =================================================================== --- opal/trunk/plugins/video/H.264/gpl/Makefile.in 2007-10-25 19:29:15 UTC (rev 18764) +++ opal/trunk/plugins/video/H.264/gpl/Makefile.in 2007-10-28 13:13:32 UTC (rev 18765) @@ -123,11 +123,11 @@ install: - mkdir -p $(DESTDIR)$(LIBDIR)/pwlib/codecs/video/ - cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/pwlib/codecs/video/ + mkdir -p $(DESTDIR)$(LIBDIR)/ptlib/codecs/video/ + cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/ptlib/codecs/video/ uninstall: - rm -f $(DESTDIR)$(LIBDIR)/pwlib/codecs/video/$(PLUGIN) + rm -f $(DESTDIR)$(LIBDIR)/ptlib/codecs/video/$(PLUGIN) clean: rm -f $(OBJECTS) $(PLUGIN) Modified: opal/trunk/plugins/video/H.264/h264pipe_unix.cxx =================================================================== --- opal/trunk/plugins/video/H.264/h264pipe_unix.cxx 2007-10-25 19:29:15 UTC (rev 18764) +++ opal/trunk/plugins/video/H.264/h264pipe_unix.cxx 2007-10-28 13:13:32 UTC (rev 18765) @@ -33,8 +33,8 @@ #include "h264pipe_unix.h" #define HAS_MKFIFO 1 -#define GPL_PROCESS_FILENAME "pwlib/codecs/video/h264_video_pwplugin_helper" -#define P_DEFAULT_PLUGIN_DIR "/usr/lib/pwlib" +#define GPL_PROCESS_FILENAME "ptlib/codecs/video/h264_video_pwplugin_helper" +#define P_DEFAULT_PLUGIN_DIR "/usr/lib/ptlib" #define DIR_SEPERATOR "/" #define DIR_TOKENISER ":" Modified: opal/trunk/plugins/video/MPEG4-ffmpeg/Makefile.in =================================================================== --- opal/trunk/plugins/video/MPEG4-ffmpeg/Makefile.in 2007-10-25 19:29:15 UTC (rev 18764) +++ opal/trunk/plugins/video/MPEG4-ffmpeg/Makefile.in 2007-10-28 13:13:32 UTC (rev 18765) @@ -90,11 +90,11 @@ $(CXX) $(LDSO) -o $@ $^ install: - mkdir -p $(DESTDIR)$(LIBDIR)/pwlib/codecs/video/ - cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/pwlib/codecs/video/ + mkdir -p $(DESTDIR)$(LIBDIR)/ptlib/codecs/video/ + cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/ptlib/codecs/video/ uninstall: - rm -f $(DESTDIR)$(LIBDIR)/pwlib/codecs/video/$(PLUGIN) + rm -f $(DESTDIR)$(LIBDIR)/ptlib/codecs/video/$(PLUGIN) clean: rm -f $(OBJECTS) $(PLUGIN) Modified: opal/trunk/plugins/video/THEORA/Makefile.in =================================================================== --- opal/trunk/plugins/video/THEORA/Makefile.in 2007-10-25 19:29:15 UTC (rev 18764) +++ opal/trunk/plugins/video/THEORA/Makefile.in 2007-10-28 13:13:32 UTC (rev 18765) @@ -67,11 +67,11 @@ install: - mkdir -p $(DESTDIR)$(LIBDIR)/pwlib/codecs/video/ - cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/pwlib/codecs/video/ + mkdir -p $(DESTDIR)$(LIBDIR)/ptlib/codecs/video/ + cp $(PLUGIN) $(DESTDIR)$(LIBDIR)/ptlib/codecs/video/ uninstall: - rm -f $(DESTDIR)$(LIBDIR)/pwlib/codecs/video/$(PLUGIN) + rm -f $(DESTDIR)$(LIBDIR)/ptlib/codecs/video/$(PLUGIN) clean: rm -f $(OBJECTS) $(PLUGIN) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sh...@us...> - 2007-10-25 19:29:49
|
Revision: 18764 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18764&view=rev Author: shorne Date: 2007-10-25 12:29:15 -0700 (Thu, 25 Oct 2007) Log Message: ----------- Fixed segfault with PTRACE in PVideoDeviceBitmap::ApplyFormat() Modified Paths: -------------- ptlib/trunk/src/ptlib/msos/vfw.cxx Modified: ptlib/trunk/src/ptlib/msos/vfw.cxx =================================================================== --- ptlib/trunk/src/ptlib/msos/vfw.cxx 2007-10-24 21:11:45 UTC (rev 18763) +++ ptlib/trunk/src/ptlib/msos/vfw.cxx 2007-10-25 19:29:15 UTC (rev 18764) @@ -638,7 +638,7 @@ if (capSetVideoFormat(hWnd, theArray, GetSize())) { PTRACE(3, "PVidInp\tcapSetVideoFormat succeeded: " - << formatTableEntry.colourFormat << ' ' + << PString(formatTableEntry.colourFormat) << ' ' << bmi.bmiHeader.biWidth << "x" << bmi.bmiHeader.biHeight << " sz=" << bmi.bmiHeader.biSizeImage << " time=" << (PTimer::Tick() - startTime)); return TRUE; @@ -648,7 +648,7 @@ bmi.bmiHeader.biHeight = height; if (capSetVideoFormat(hWnd, theArray, GetSize())) { PTRACE(3, "PVidInp\tcapSetVideoFormat succeeded: " - << formatTableEntry.colourFormat << ' ' + << PString(formatTableEntry.colourFormat) << ' ' << bmi.bmiHeader.biWidth << "x" << bmi.bmiHeader.biHeight << " sz=" << bmi.bmiHeader.biSizeImage << " time=" << (PTimer::Tick() - startTime)); return TRUE; @@ -656,7 +656,7 @@ } PTRACE(1, "PVidInp\tcapSetVideoFormat failed: " - << formatTableEntry.colourFormat << ' ' + << PString(formatTableEntry.colourFormat) << ' ' << bmi.bmiHeader.biWidth << "x" << bmi.bmiHeader.biHeight << " sz=" << bmi.bmiHeader.biSizeImage << " time=" << (PTimer::Tick() - startTime) << " - lastError=" << ::GetLastError()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sh...@us...> - 2007-10-24 21:11:45
|
Revision: 18763 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18763&view=rev Author: shorne Date: 2007-10-24 14:11:45 -0700 (Wed, 24 Oct 2007) Log Message: ----------- Added GetDeviceCapabilities for Input device. Fixed colour format for windows Modified Paths: -------------- ptlib/trunk/samples/vidtest/main.cxx Modified: ptlib/trunk/samples/vidtest/main.cxx =================================================================== --- ptlib/trunk/samples/vidtest/main.cxx 2007-10-24 21:02:32 UTC (rev 18762) +++ ptlib/trunk/samples/vidtest/main.cxx 2007-10-24 21:11:45 UTC (rev 18763) @@ -190,6 +190,17 @@ PString inputDeviceName = args.GetOptionString("input-device"); if (inputDeviceName.IsEmpty()) inputDeviceName = devices[0]; + + InputDeviceCapabilities caps; + if (PVideoInputDevice::GetDeviceCapabilities(inputDeviceName,inputDriverName,&caps)) { + cout << "Grabber " << inputDeviceName << " capabilities." << endl; + for (std::list<InputDeviceCapability>::const_iterator r = caps.begin(); r != caps.end(); ++r) { + cout << " w: " << r->width << " h: " << r->height << " fmt: " << r->format << " fps: " << r->fps << endl; + } + cout << endl; + } else { + cout << "InputDevice " << inputDeviceName << " capabilities not Available." << endl; + } if (grabber == NULL) grabber = PVideoInputDevice::CreateDeviceByName(inputDeviceName); @@ -332,8 +343,11 @@ cout << "Display frame size set to " << display->GetFrameWidth() << 'x' << display->GetFrameHeight() << endl; - +#ifdef _WIN32 // Must be BGR for the colour to appear correct + PCaselessString colourFormat = args.GetOptionString("colour-format", "BGR24").ToUpper(); +#else PCaselessString colourFormat = args.GetOptionString("colour-format", "RGB24").ToUpper(); +#endif if (!grabber->SetColourFormatConverter(colourFormat) ) { cerr << "Video input device could not be set to colour format \"" << colourFormat << '"' << endl; return; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sh...@us...> - 2007-10-24 21:02:36
|
Revision: 18762 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18762&view=rev Author: shorne Date: 2007-10-24 14:02:32 -0700 (Wed, 24 Oct 2007) Log Message: ----------- Added GetDeviceCapabilities to all plugins Modified Paths: -------------- ptlib/trunk/include/ptclib/pvfiledev.h ptlib/trunk/include/ptlib/plugin.h ptlib/trunk/include/ptlib/pluginmgr.h ptlib/trunk/include/ptlib/videoio.h ptlib/trunk/src/ptlib/common/pluginmgr.cxx ptlib/trunk/src/ptlib/common/vfakeio.cxx ptlib/trunk/src/ptlib/common/videoio.cxx ptlib/trunk/src/ptlib/msos/vfw.cxx Modified: ptlib/trunk/include/ptclib/pvfiledev.h =================================================================== --- ptlib/trunk/include/ptclib/pvfiledev.h 2007-10-24 07:12:26 UTC (rev 18761) +++ ptlib/trunk/include/ptclib/pvfiledev.h 2007-10-24 21:02:32 UTC (rev 18762) @@ -156,7 +156,7 @@ */ static BOOL GetDeviceCapabilities( const PString & /*deviceName*/, ///< Name of device - InputDeviceCapabilities & /*caps*/ ///< List of supported capabilities + InputDeviceCapabilities * /*caps*/ ///< List of supported capabilities ) { return FALSE; } /**Get the maximum frame size in bytes. Modified: ptlib/trunk/include/ptlib/plugin.h =================================================================== --- ptlib/trunk/include/ptlib/plugin.h 2007-10-24 07:12:26 UTC (rev 18761) +++ ptlib/trunk/include/ptlib/plugin.h 2007-10-24 21:02:32 UTC (rev 18762) @@ -169,6 +169,8 @@ virtual PObject * CreateInstance(int userData) const = 0; virtual PStringList GetDeviceNames(int userData) const = 0; virtual bool ValidateDeviceName(const PString & deviceName, int userData) const; + virtual bool GetDeviceCapabilities(const PString & deviceName, + void * capabilities) const; }; Modified: ptlib/trunk/include/ptlib/pluginmgr.h =================================================================== --- ptlib/trunk/include/ptlib/pluginmgr.h 2007-10-24 07:12:26 UTC (rev 18761) +++ ptlib/trunk/include/ptlib/pluginmgr.h 2007-10-24 21:02:32 UTC (rev 18762) @@ -151,6 +151,7 @@ PObject * CreatePluginsDevice(const PString & serviceName, const PString & serviceType, int userData = 0) const; PObject * CreatePluginsDeviceByName(const PString & deviceName, const PString & serviceType, int userData = 0, const PString & serviceName = PString::Empty()) const; PStringList GetPluginsDeviceNames(const PString & serviceName, const PString & serviceType, int userData = 0) const; + BOOL GetPluginsDeviceCapabilities(const PString & serviceType,const PString & serviceName,const PString & deviceName,void * capabilities) const; // function to register a service (used by the plugins themselves) BOOL RegisterService (const PString & serviceName, const PString & serviceType, PPluginServiceDescriptor * descriptor); Modified: ptlib/trunk/include/ptlib/videoio.h =================================================================== --- ptlib/trunk/include/ptlib/videoio.h 2007-10-24 07:12:26 UTC (rev 18761) +++ ptlib/trunk/include/ptlib/videoio.h 2007-10-24 21:02:32 UTC (rev 18762) @@ -1048,10 +1048,20 @@ /**Retrieve a list of Device Capabilities */ static BOOL GetDeviceCapabilities( - const PString & /*deviceName*/, ///< Name of device - InputDeviceCapabilities & /*caps*/ ///< List of supported capabilities - ) { return FALSE; } + const PString & deviceName, ///< Name of device + InputDeviceCapabilities * caps, ///< List of supported capabilities + PPluginManager * pluginMgr = NULL ///< Plug in manager, use default if NULL + ); + /**Retrieve a list of Device Capabilities for a particular driver + */ + static BOOL GetDeviceCapabilities( + const PString & deviceName, ///< Name of device + const PString & driverName, ///< Device Driver + InputDeviceCapabilities * caps, ///< List of supported capabilities + PPluginManager * pluginMgr = NULL ///< Plug in manager, use default if NULL + ); + /**Open the device given the device name. */ virtual BOOL Open( @@ -1106,8 +1116,8 @@ public: virtual PObject * CreateInstance(int /*userData*/) const { return new className; } virtual PStringList GetDeviceNames(int /*userData*/) const { return className::GetInputDeviceNames(); } - virtual BOOL GetDeviceCapabilities(const PString & deviceName, InputDeviceCapabilities & caps) const - { return className::GetDeviceCapabilities(deviceName,caps); } + virtual bool GetDeviceCapabilities(const PString & deviceName, void * caps) const + { return className::GetDeviceCapabilities(deviceName,(InputDeviceCapabilities *)caps); } }; #define PCREATE_VIDINPUT_PLUGIN(name) \ Modified: ptlib/trunk/src/ptlib/common/pluginmgr.cxx =================================================================== --- ptlib/trunk/src/ptlib/common/pluginmgr.cxx 2007-10-24 07:12:26 UTC (rev 18761) +++ ptlib/trunk/src/ptlib/common/pluginmgr.cxx 2007-10-24 21:02:32 UTC (rev 18762) @@ -418,7 +418,13 @@ return false; } +bool PDevicePluginServiceDescriptor::GetDeviceCapabilities(const PString & /*deviceName*/, + void * /*capabilities*/) const +{ + return false; +} + PStringList PPluginManager::GetPluginsDeviceNames(const PString & serviceName, const PString & serviceType, int userData) const @@ -469,7 +475,32 @@ return allDevices; } +BOOL PPluginManager::GetPluginsDeviceCapabilities(const PString & serviceType, + const PString & serviceName, + const PString & deviceName, + void * capabilities) const +{ + if (serviceType.IsEmpty() || deviceName.IsEmpty()) + return FALSE; + if (serviceName.IsEmpty() || serviceName == "*") { + for (PINDEX i = 0; i < serviceList.GetSize(); i++) { + const PPluginService & service = serviceList[i]; + if (service.serviceType *= serviceType) { + PDevicePluginServiceDescriptor * desc = (PDevicePluginServiceDescriptor *)service.descriptor; + if (desc != NULL && desc->ValidateDeviceName(deviceName, 0)) + return desc->GetDeviceCapabilities(deviceName,capabilities); + } + } + } else { + PDevicePluginServiceDescriptor * desc = (PDevicePluginServiceDescriptor *)GetServiceDescriptor(serviceName, serviceType); + if (desc != NULL && desc->ValidateDeviceName(deviceName, 0)) + return desc->GetDeviceCapabilities(deviceName,capabilities); + } + + return FALSE; +} + BOOL PPluginManager::RegisterService(const PString & serviceName, const PString & serviceType, PPluginServiceDescriptor * descriptor) Modified: ptlib/trunk/src/ptlib/common/vfakeio.cxx =================================================================== --- ptlib/trunk/src/ptlib/common/vfakeio.cxx 2007-10-24 07:12:26 UTC (rev 18761) +++ ptlib/trunk/src/ptlib/common/vfakeio.cxx 2007-10-24 21:02:32 UTC (rev 18762) @@ -1492,7 +1492,7 @@ */ static BOOL GetDeviceCapabilities( const PString & /*deviceName*/, ///< Name of device - InputDeviceCapabilities & /*caps*/ ///< List of supported capabilities + InputDeviceCapabilities * /*caps*/ ///< List of supported capabilities ) { return FALSE; } /**Get the maximum frame size in bytes. Modified: ptlib/trunk/src/ptlib/common/videoio.cxx =================================================================== --- ptlib/trunk/src/ptlib/common/videoio.cxx 2007-10-24 07:12:26 UTC (rev 18761) +++ ptlib/trunk/src/ptlib/common/videoio.cxx 2007-10-24 21:02:32 UTC (rev 18762) @@ -1193,7 +1193,7 @@ colourFormat = "RGB24"; bytesPerPixel = 3; swappedRedAndBlue = false; - SetFrameSize(frameWidth, frameHeight); +// SetFrameSize(frameWidth, frameHeight); } @@ -1202,22 +1202,22 @@ PWaitAndSignal m(mutex); PINDEX newBytesPerPixel; - bool newSwappedRedAndBlue; + if (colourFormat *= "RGB32") { newBytesPerPixel = 4; - newSwappedRedAndBlue = false; + swappedRedAndBlue = false; } else if (colourFormat *= "RGB24") { newBytesPerPixel = 3; - newSwappedRedAndBlue = false; + swappedRedAndBlue = false; } else if (colourFormat *= "BGR32") { newBytesPerPixel = 4; - newSwappedRedAndBlue = true; + swappedRedAndBlue = true; } else if (colourFormat *= "BGR24") { newBytesPerPixel = 3; - newSwappedRedAndBlue = true; + swappedRedAndBlue = true; } else return FALSE; @@ -1408,7 +1408,21 @@ return (PVideoInputDevice *)pluginMgr->CreatePluginsDeviceByName(deviceName, videoInputPluginBaseClass,0,driverName); } +BOOL PVideoInputDevice::GetDeviceCapabilities(const PString & deviceName,InputDeviceCapabilities * caps, PPluginManager * pluginMgr) +{ + return GetDeviceCapabilities(deviceName, "*",caps,pluginMgr); +} +BOOL PVideoInputDevice::GetDeviceCapabilities(const PString & deviceName,const PString & driverName, InputDeviceCapabilities * caps, PPluginManager * pluginMgr) +{ + if (pluginMgr == NULL) + pluginMgr = &PPluginManager::GetPluginManager(); + + return pluginMgr->GetPluginsDeviceCapabilities(videoInputPluginBaseClass,driverName,deviceName, (void *)caps); +} + + + PVideoInputDevice * PVideoInputDevice::CreateOpenedDevice(const PString & driverName, const PString & deviceName, BOOL startImmediate, @@ -1442,7 +1456,6 @@ return NULL; } - BOOL PVideoInputDevice::GetFrame(PBYTEArray & frame) { PINDEX returned; Modified: ptlib/trunk/src/ptlib/msos/vfw.cxx =================================================================== --- ptlib/trunk/src/ptlib/msos/vfw.cxx 2007-10-24 07:12:26 UTC (rev 18761) +++ ptlib/trunk/src/ptlib/msos/vfw.cxx 2007-10-24 21:02:32 UTC (rev 18762) @@ -393,7 +393,7 @@ */ static BOOL GetDeviceCapabilities( const PString & /*deviceName*/, ///< Name of device - InputDeviceCapabilities & /*caps*/ ///< List of supported capabilities + InputDeviceCapabilities * /*caps*/ ///< List of supported capabilities ) { return FALSE; } /**Open the device given the device name. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cso...@us...> - 2007-10-24 07:12:31
|
Revision: 18761 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18761&view=rev Author: csoutheren Date: 2007-10-24 00:12:26 -0700 (Wed, 24 Oct 2007) Log Message: ----------- Fixed 'make docs' target and more name changes Modified Paths: -------------- ptlib/trunk/ptlib_cfg.dxy Modified: ptlib/trunk/ptlib_cfg.dxy =================================================================== --- ptlib/trunk/ptlib_cfg.dxy 2007-10-24 01:35:46 UTC (rev 18760) +++ ptlib/trunk/ptlib_cfg.dxy 2007-10-24 07:12:26 UTC (rev 18761) @@ -17,13 +17,13 @@ # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. -PROJECT_NAME = PWLib +PROJECT_NAME = PTLib # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = 1.11.2 +PROJECT_NUMBER = 2.0.0 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. @@ -459,7 +459,7 @@ # directories like "/usr/src/myproject". Separate the files or directories # with spaces. -INPUT = ./pwlib.dxy \ +INPUT = ./ptlib.dxy \ ./include/ptlib \ ./include/ptclib This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cso...@us...> - 2007-10-24 01:35:48
|
Revision: 18760 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18760&view=rev Author: csoutheren Date: 2007-10-23 18:35:46 -0700 (Tue, 23 Oct 2007) Log Message: ----------- Created branch for debugging RFC 4175 code Modified Paths: -------------- opal/branches/csoutheren/rfc4175_devel/include/codec/rfc4175.h opal/branches/csoutheren/rfc4175_devel/src/codec/rfc4175.cxx Added Paths: ----------- opal/branches/csoutheren/rfc4175_devel/ Property Changed: ---------------- opal/branches/csoutheren/rfc4175_devel/include/codec/rfc4175.h Copied: opal/branches/csoutheren/rfc4175_devel (from rev 18759, opal/trunk) Modified: opal/branches/csoutheren/rfc4175_devel/include/codec/rfc4175.h =================================================================== --- opal/trunk/include/codec/rfc4175.h 2007-10-23 17:15:58 UTC (rev 18759) +++ opal/branches/csoutheren/rfc4175_devel/include/codec/rfc4175.h 2007-10-24 01:35:46 UTC (rev 18760) @@ -24,6 +24,10 @@ * Contributor(s): ______________________________________. * * $Log: rfc4175.h,v $ + * Revision 1.6.6.1 2007/10/10 06:54:26 csoutheren + * Updates to RFC4175 to deal with transmission over a wire + * Not finished yet :) + * * Revision 1.6 2007/09/11 15:48:35 csoutheren * Implemented RC4175 RGB * @@ -160,6 +164,7 @@ BOOL first; DWORD lastSequenceNumber; DWORD lastTimeStamp; + BOOL waitingForMarker; }; ///////////////////////////////////////////////////////////////////////////// Property changes on: opal/branches/csoutheren/rfc4175_devel/include/codec/rfc4175.h ___________________________________________________________________ Name: CVSRevisionNumber - 1.6 + 1.6.6.1 Modified: opal/branches/csoutheren/rfc4175_devel/src/codec/rfc4175.cxx =================================================================== --- opal/trunk/src/codec/rfc4175.cxx 2007-10-23 17:15:58 UTC (rev 18759) +++ opal/branches/csoutheren/rfc4175_devel/src/codec/rfc4175.cxx 2007-10-24 01:35:46 UTC (rev 18760) @@ -27,6 +27,10 @@ * Revision 1.12 2007/10/03 04:06:33 csoutheren * Add missing #pragma * + * Revision 1.11.6.1 2007/10/10 06:54:36 csoutheren + * Updates to RFC4175 to deal with transmission over a wire + * Not finished yet :) + * * Revision 1.11 2007/09/12 05:55:35 csoutheren * Fixed SIP fmtp options for rfc 4175 * @@ -192,6 +196,8 @@ { PAssert(sizeof(ScanLineHeader) == 6, "ScanLineHeader is not packed"); + _outputFrames.RemoveAll(); + // make sure the incoming frame is big enough for a frame header if (input.GetPayloadSize() < (int)(sizeof(PluginCodec_Video_FrameHeader))) { PTRACE(1,"RFC4175\tPayload of grabbed frame too small for frame header"); @@ -257,6 +263,8 @@ // calculate how many pixels we can add PINDEX pixelsToAdd = PMIN((roomLeft - (PINDEX)sizeof(ScanLineHeader)) / GetPgroupSize(), endX - x); + PAssert(pixelsToAdd > 0, "how did we get negative pixels?"); + // populate the scan line table dstScanLineTable->length = (WORD)pixelsToAdd; dstScanLineTable->y = (WORD)y; @@ -294,7 +302,7 @@ void OpalRFC4175Encoder::FinishOutputFrame() { - if (dstFrames->GetSize() != 0 && (dstScanLineCount > 0)) { + if ((dstFrames->GetSize() > 0) && (dstScanLineCount > 0)) { // populate the frame fields RTP_DataFrame & dst = (*dstFrames)[dstFrames->GetSize()-1]; @@ -303,8 +311,9 @@ --dstScanLineTable; dstScanLineTable->offset = (WORD)dstScanLineTable->offset | 0x8000; - // set the timestamp + // set the timestamp and payload type dst.SetTimestamp(srcTimestamp); + dst.SetPayloadType(outputMediaFormat.GetPayloadType()); // set and increment the sequence number dst.SetSequenceNumber((WORD)(extendedSequenceNumber & 0xffff)); @@ -327,12 +336,13 @@ ) : OpalRFC4175Transcoder(inputMediaFormat, outputMediaFormat) { inputFrames.AllowDeleteObjects(); + first = TRUE; + waitingForMarker = FALSE; Initialise(); } OpalRFC4175Decoder::~OpalRFC4175Decoder() { - first = TRUE; } BOOL OpalRFC4175Decoder::Initialise() @@ -350,8 +360,10 @@ { PAssert(sizeof(ScanLineHeader) == 6, "ScanLineHeader is not packed"); + output.RemoveAll(); + // do quick sanity check on packet - if (input.GetPayloadSize() < 2) { + if (input.GetPayloadSize() > 2) { PTRACE(1,"RFC4175\tinput frame too small for header"); return FALSE; } @@ -359,80 +371,86 @@ // get extended sequence number DWORD receivedSeqNo = input.GetSequenceNumber() | ((*(PUInt16b *)input.GetPayloadPtr()) << 16); - BOOL ok = TRUE; - // special handling for first packet if (first) { lastSequenceNumber = receivedSeqNo; lastTimeStamp = input.GetTimestamp(); first = FALSE; } + + // if waiting for a marker bit to resync, keep waiting + else if (waitingForMarker) { + if (!input.GetMarker()) { + PTRACE(1,"RFC4175\tignoring frame while waiting for marker bit"); + } else { + PTRACE(1,"RFC4175\tmarker bit received - starting new frame"); + first = TRUE; + } + return TRUE; + } + else { - // if timestamp changed, we lost the marker bit on the previous input frame - // so, flush the output and change to the new timestamp - if ((input.GetTimestamp() != lastTimeStamp) && (inputFrames.GetSize() > 0)) { - PTRACE(2, "RFC4175\tDetected change of timestamp - marker bit lost"); - DecodeFrames(output); + // if timestamp changed and we still have input data, then we lost the marker bit on the previous input frame + DWORD timeStamp = input.GetTimestamp(); + if ((timeStamp != lastTimeStamp) && (inputFrames.GetSize() > 0)) { + PTRACE(2, "RFC4175\tDetected change of timestamp - flushing until next marker bit"); + Initialise(); + waitingForMarker = TRUE; + return TRUE; } lastTimeStamp = input.GetTimestamp(); - // if packet is out of sequence, determine if to ignore packet or accept it and update sequence number + // if sequence number is not sequential, then frame is not complete ++lastSequenceNumber; if (lastSequenceNumber != receivedSeqNo) { - ok = receivedSeqNo > lastSequenceNumber; - if (!ok && ((lastSequenceNumber - receivedSeqNo) > 0xfffffc00)) { - ok = TRUE; - lastSequenceNumber = receivedSeqNo; - } - PTRACE(2, "RFC4175\t" << (ok ? "Accepting" : "Ignoring") << " out of order packet"); + PTRACE(2, "RFC4175\tDetected lost frame - flushing until next marker bit"); + Initialise(); + waitingForMarker = TRUE; + return TRUE; } } // make a pass through the scan line table and update the overall frame width and height PINDEX lineCount = 0; - if (ok) { - ScanLineHeader * scanLinePtr = (ScanLineHeader *)(input.GetPayloadPtr() + 2); + ScanLineHeader * scanLinePtr = (ScanLineHeader *)(input.GetPayloadPtr() + 2); - BOOL lastLine = FALSE; - while (!lastLine && RFC4175HeaderSize(lineCount+1) < input.GetPayloadSize()) { + BOOL lastLine = FALSE; + while (!lastLine && RFC4175HeaderSize(lineCount+1) < input.GetPayloadSize()) { - // scan line length - PINDEX lineLength = scanLinePtr->length; + // scan line length + PINDEX lineLength = scanLinePtr->length; - // line number - WORD lineNumber = scanLinePtr->y & 0x7fff; + // line number + WORD lineNumber = scanLinePtr->y & 0x7fff; - // pixel offset of scanline start - WORD offset = scanLinePtr->offset; + // pixel offset of scanline start + WORD offset = scanLinePtr->offset; - // detect if last scanline in table - if (offset & 0x8000) { - lastLine = TRUE; - offset &= 0x7fff; - } + // detect if last scanline in table + if (offset & 0x8000) { + lastLine = TRUE; + offset &= 0x7fff; + } - // update frame width and height - PINDEX right = offset + lineLength; - if (right > frameWidth) - frameWidth = right; - PINDEX bottom = lineNumber+2; - if (bottom > frameHeight) - frameHeight = bottom; + // update frame width and height + PINDEX right = offset + lineLength; + if (right > frameWidth) + frameWidth = right; + PINDEX bottom = lineNumber+2; + if (bottom > frameHeight) + frameHeight = bottom; - // count lines - ++lineCount; + // count lines + ++lineCount; - // update scan line pointer - ++scanLinePtr; - } + // update scan line pointer + ++scanLinePtr; } - // add the frame to the input frame list, if OK - if (ok) { - inputFrames.Append(new RTP_DataFrame(input)); - scanlineCounts.push_back(lineCount); - } + // add the frame to the input frame list + inputFrames.Append(new RTP_DataFrame(input)); + scanlineCounts.push_back(lineCount); // if marker bit not set, keep collecting frames if (input.GetMarker()) @@ -502,12 +520,18 @@ return FALSE; } + if (frameHeight != 144 || frameWidth != 176) { + int s = inputFrames.GetSize(); + PTRACE(4, "not right frame " << s); + } + PTRACE(4, "RFC4175\tDecoding output from from " << inputFrames.GetSize() << " input frames"); // allocate destination frame output.Append(new RTP_DataFrame()); RTP_DataFrame & outputFrame = output[output.GetSize()-1]; outputFrame.SetMarker(TRUE); + outputFrame.SetPayloadType(outputMediaFormat.GetPayloadType()); outputFrame.SetPayloadSize(sizeof(PluginCodec_Video_FrameHeader) + PixelsToBytes(frameWidth*frameHeight)); // get pointer to header and payload @@ -588,7 +612,7 @@ { FinishOutputFrame(); - PTRACE(4, "RFC4175\tEncoded RGB24 input frame to " << dstFrames->GetSize() << " RFC4175 output frames in RGB format"); + PTRACE(4, "RFC4175\tEncoded RGB24 input frame to " << (dstFrames->GetSize()) << " RFC4175 output frames in RGB format"); PINDEX f, i; for (f = 0; f < dstFrames->GetSize(); ++f) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dsa...@us...> - 2007-10-23 17:16:02
|
Revision: 18759 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18759&view=rev Author: dsandras Date: 2007-10-23 10:15:58 -0700 (Tue, 23 Oct 2007) Log Message: ----------- Moved some code so that things still compile on Linux. Added code does not seem to be WIN32 specific. Modified Paths: -------------- ptlib/trunk/src/ptlib/common/sockets.cxx ptlib/trunk/src/ptlib/msos/ethsock.cxx Modified: ptlib/trunk/src/ptlib/common/sockets.cxx =================================================================== --- ptlib/trunk/src/ptlib/common/sockets.cxx 2007-10-23 13:15:10 UTC (rev 18758) +++ ptlib/trunk/src/ptlib/common/sockets.cxx 2007-10-23 17:15:58 UTC (rev 18759) @@ -2752,6 +2752,56 @@ return addr.IsValid(); } + +PIPSocket::Address PIPSocket::GetRouteInterfaceAddress(PIPSocket::Address remoteAddress) +{ + PIPSocket::InterfaceTable hostInterfaceTable; + PIPSocket::GetInterfaceTable(hostInterfaceTable); + + PIPSocket::RouteTable hostRouteTable; + PIPSocket::GetRouteTable(hostRouteTable); + + if (hostInterfaceTable.IsEmpty()) + return PIPSocket::GetDefaultIpAny(); + + for (PINDEX IfaceIdx = 0; IfaceIdx < hostInterfaceTable.GetSize(); IfaceIdx++) { + if (remoteAddress == hostInterfaceTable[IfaceIdx].GetAddress()) { + PTRACE(5, "PWLib\tRoute packet for " << remoteAddress + << " over interface " << hostInterfaceTable[IfaceIdx].GetName() + << "[" << hostInterfaceTable[IfaceIdx].GetAddress() << "]"); + return hostInterfaceTable[IfaceIdx].GetAddress(); + } + } + + PIPSocket::RouteEntry * route = NULL; + for (PINDEX routeIdx = 0; routeIdx < hostRouteTable.GetSize(); routeIdx++) { + PIPSocket::RouteEntry & routeEntry = hostRouteTable[routeIdx]; + + DWORD network = (DWORD) routeEntry.GetNetwork(); + DWORD mask = (DWORD) routeEntry.GetNetMask(); + + if (((DWORD)remoteAddress & mask) == network) { + if (route == NULL) + route = &routeEntry; + else if ((DWORD)routeEntry.GetNetMask() > (DWORD)route->GetNetMask()) + route = &routeEntry; + } + } + + if (route != NULL) { + for (PINDEX IfaceIdx = 0; IfaceIdx < hostInterfaceTable.GetSize(); IfaceIdx++) { + if (route->GetInterface() == hostInterfaceTable[IfaceIdx].GetName()) { + PTRACE(5, "PWLib\tRoute packet for " << remoteAddress + << " over interface " << hostInterfaceTable[IfaceIdx].GetName() + << "[" << hostInterfaceTable[IfaceIdx].GetAddress() << "]"); + return hostInterfaceTable[IfaceIdx].GetAddress(); + } + } + } + + return PIPSocket::GetDefaultIpAny(); +} + ////////////////////////////////////////////////////////////////////////////// // PTCPSocket Modified: ptlib/trunk/src/ptlib/msos/ethsock.cxx =================================================================== --- ptlib/trunk/src/ptlib/msos/ethsock.cxx 2007-10-23 13:15:10 UTC (rev 18758) +++ ptlib/trunk/src/ptlib/msos/ethsock.cxx 2007-10-23 17:15:58 UTC (rev 18759) @@ -1992,59 +1992,8 @@ return PString::Empty(); return snmp.GetInterfaceName(ifNum); -} +} - -PIPSocket::Address PIPSocket::GetRouteInterfaceAddress(PIPSocket::Address remoteAddress) -{ - PIPSocket::InterfaceTable hostInterfaceTable; - PIPSocket::GetInterfaceTable(hostInterfaceTable); - - PIPSocket::RouteTable hostRouteTable; - PIPSocket::GetRouteTable(hostRouteTable); - - if (hostInterfaceTable.IsEmpty()) - return PIPSocket::GetDefaultIpAny(); - - for (PINDEX IfaceIdx = 0; IfaceIdx < hostInterfaceTable.GetSize(); IfaceIdx++) { - if (remoteAddress == hostInterfaceTable[IfaceIdx].GetAddress()) { - PTRACE(5, "PWLib\tRoute packet for " << remoteAddress - << " over interface " << hostInterfaceTable[IfaceIdx].GetName() - << "[" << hostInterfaceTable[IfaceIdx].GetAddress() << "]"); - return hostInterfaceTable[IfaceIdx].GetAddress(); - } - } - - PIPSocket::RouteEntry * route = NULL; - for (PINDEX routeIdx = 0; routeIdx < hostRouteTable.GetSize(); routeIdx++) { - PIPSocket::RouteEntry & routeEntry = hostRouteTable[routeIdx]; - - DWORD network = (DWORD) routeEntry.GetNetwork(); - DWORD mask = (DWORD) routeEntry.GetNetMask(); - - if (((DWORD)remoteAddress & mask) == network) { - if (route == NULL) - route = &routeEntry; - else if ((DWORD)routeEntry.GetNetMask() > (DWORD)route->GetNetMask()) - route = &routeEntry; - } - } - - if (route != NULL) { - for (PINDEX IfaceIdx = 0; IfaceIdx < hostInterfaceTable.GetSize(); IfaceIdx++) { - if (route->GetInterface() == hostInterfaceTable[IfaceIdx].GetName()) { - PTRACE(5, "PWLib\tRoute packet for " << remoteAddress - << " over interface " << hostInterfaceTable[IfaceIdx].GetName() - << "[" << hostInterfaceTable[IfaceIdx].GetAddress() << "]"); - return hostInterfaceTable[IfaceIdx].GetAddress(); - } - } - } - - return PIPSocket::GetDefaultIpAny(); -} - - PIPSocket::Address PIPSocket::GetGatewayInterfaceAddress() { PWaitAndSignal m(GetSNMPMutex()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2007-10-23 13:15:08
|
Revision: 18758 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18758&view=rev Author: rjongbloed Date: 2007-10-23 06:15:10 -0700 (Tue, 23 Oct 2007) Log Message: ----------- Implemented revised version of OpenH323 patch 1801159 Q.931 support for multiple occurences of same IE type Thanks to Simon Zwahlen - zwahlsim Modified Paths: -------------- opal/trunk/include/h323/q931.h opal/trunk/src/h323/q931.cxx Modified: opal/trunk/include/h323/q931.h =================================================================== --- opal/trunk/include/h323/q931.h 2007-10-23 07:29:26 UTC (rev 18757) +++ opal/trunk/include/h323/q931.h 2007-10-23 13:15:10 UTC (rev 18758) @@ -332,8 +332,15 @@ friend ostream & operator<<(ostream & strm, InformationElementCodes ie); BOOL HasIE(InformationElementCodes ie) const; - PBYTEArray GetIE(InformationElementCodes ie) const; - void SetIE(InformationElementCodes ie, const PBYTEArray & userData); + PBYTEArray GetIE( + InformationElementCodes ie, + PINDEX idx = 0 // Index of duplicate IE entry + ) const; + void SetIE( + InformationElementCodes ie, + const PBYTEArray & userData, + BOOL append = FALSE + ); void RemoveIE(InformationElementCodes ie); enum InformationTransferCapability { @@ -605,7 +612,8 @@ unsigned protocolDiscriminator; MsgTypes messageType; - PDICTIONARY(InternalInformationElements, POrdinalKey, PBYTEArray); + PARRAY(InternalInformationElement, PBYTEArray); + PDICTIONARY(InternalInformationElements, POrdinalKey, InternalInformationElement); InternalInformationElements informationElements; }; Modified: opal/trunk/src/h323/q931.cxx =================================================================== --- opal/trunk/src/h323/q931.cxx 2007-10-23 07:29:26 UTC (rev 18757) +++ opal/trunk/src/h323/q931.cxx 2007-10-23 13:15:10 UTC (rev 18758) @@ -379,11 +379,9 @@ fromDestination = other.fromDestination; protocolDiscriminator = other.protocolDiscriminator; messageType = other.messageType; + informationElements = other.informationElements; + informationElements.MakeUnique(); - informationElements.RemoveAll(); - for (PINDEX i = 0; i < other.informationElements.GetSize(); i++) - informationElements.SetAt(other.informationElements.GetKeyAt(i), new PBYTEArray(other.informationElements.GetDataAt(i))); - return *this; } @@ -533,12 +531,12 @@ PINDEX offset = 5; while (offset < data.GetSize()) { // Get field discriminator - int discriminator = data[offset++]; + InformationElementCodes discriminator = (InformationElementCodes)data[offset++]; - PBYTEArray * item = new PBYTEArray; - // For discriminator with high bit set there is no data - if ((discriminator&0x80) == 0) { + if ((discriminator&0x80) != 0) + SetIE(discriminator, PBYTEArray(), TRUE); + else { int len = data[offset++]; if (discriminator == UserUserIE) { @@ -560,11 +558,10 @@ if (offset + len > data.GetSize()) return FALSE; - memcpy(item->GetPointer(len), (const BYTE *)data+offset, len); + SetIE(discriminator, PBYTEArray((const BYTE *)data+offset, len), TRUE); + offset += len; } - - informationElements.SetAt(discriminator, item); } return TRUE; @@ -577,11 +574,13 @@ unsigned discriminator; for (discriminator = 0; discriminator < 256; discriminator++) { if (informationElements.Contains(discriminator)) { - if (discriminator < 128) - totalBytes += informationElements[discriminator].GetSize() + - (discriminator != UserUserIE ? 2 : 4); - else - totalBytes++; + const InternalInformationElement & element = informationElements[discriminator]; + for (PINDEX idx = 0; idx < element.GetSize(); idx++) { + if (discriminator < 128) + totalBytes += element[idx].GetSize() + (discriminator != UserUserIE ? 2 : 4); + else + totalBytes++; + } } } @@ -604,28 +603,31 @@ PINDEX offset = 5; for (discriminator = 0; discriminator < 256; discriminator++) { if (informationElements.Contains(discriminator)) { - if (discriminator < 128) { - int len = informationElements[discriminator].GetSize(); + const InternalInformationElement & element = informationElements[discriminator]; + for (PINDEX i = 0; i < element.GetSize(); i++) { + if (discriminator < 128) { + int len = element[i].GetSize(); - if (discriminator != UserUserIE) { - data[offset++] = (BYTE)discriminator; - data[offset++] = (BYTE)len; + if (discriminator != UserUserIE) { + data[offset++] = (BYTE)discriminator; + data[offset++] = (BYTE)len; + } + else { + len++; // Allow for protocol discriminator + data[offset++] = (BYTE)discriminator; + data[offset++] = (BYTE)(len >> 8); + data[offset++] = (BYTE)len; + len--; // Then put the length back again + // We shall assume that the user-user field is an ITU protocol block (5) + data[offset++] = 5; + } + + memcpy(&data[offset], (const BYTE *)element[i], len); + offset += len; } - else { - len++; // Allow for protocol discriminator + else data[offset++] = (BYTE)discriminator; - data[offset++] = (BYTE)(len >> 8); - data[offset++] = (BYTE)len; - len--; // Then put the length back again - // We shall assume that the user-user field is an ITU protocol block (5) - data[offset++] = 5; - } - - memcpy(&data[offset], (const BYTE *)informationElements[discriminator], len); - offset += len; } - else - data[offset++] = (BYTE)discriminator; } } @@ -646,28 +648,31 @@ for (unsigned discriminator = 0; discriminator < 256; discriminator++) { if (informationElements.Contains(discriminator)) { - strm << setw(indent+4) << "IE: " << (InformationElementCodes)discriminator; - if (discriminator == CauseIE) { - if (informationElements[discriminator].GetSize() > 1) - strm << " - " << (CauseValues)(informationElements[discriminator][1]&0x7f); - } - strm << " = {\n" - << hex << setfill('0') << resetiosflags(ios::floatfield) - << setprecision(indent+2) << setw(16); + const InternalInformationElement & element = informationElements[discriminator]; + for (PINDEX idx = 0; idx < element.GetSize(); idx++) { + strm << setw(indent+4) << "IE: " << (InformationElementCodes)discriminator; + if (discriminator == CauseIE) { + if (element[idx].GetSize() > 1) + strm << " - " << (CauseValues)(element[idx][1]&0x7f); + } + strm << " = {\n" + << hex << setfill('0') << resetiosflags(ios::floatfield) + << setprecision(indent+2) << setw(16); - PBYTEArray value = informationElements[discriminator]; - if (value.GetSize() <= 32 || (flags&ios::floatfield) != ios::fixed) - strm << value; - else { - PBYTEArray truncatedArray(value, 32); - strm << truncatedArray << '\n' - << setfill(' ') - << setw(indent+5) << "..."; + PBYTEArray value = element[idx]; + if (value.GetSize() <= 32 || (flags&ios::floatfield) != ios::fixed) + strm << value; + else { + PBYTEArray truncatedArray(value, 32); + strm << truncatedArray << '\n' + << setfill(' ') + << setw(indent+5) << "..."; + } + + strm << dec << setfill(' ') + << '\n' + << setw(indent+2) << "}\n"; } - - strm << dec << setfill(' ') - << '\n' - << setw(indent+2) << "}\n"; } } @@ -768,18 +773,24 @@ } -PBYTEArray Q931::GetIE(InformationElementCodes ie) const +PBYTEArray Q931::GetIE(InformationElementCodes ie, PINDEX idx) const { if (informationElements.Contains(POrdinalKey(ie))) - return informationElements[ie]; + return informationElements[ie][idx]; return PBYTEArray(); } -void Q931::SetIE(InformationElementCodes ie, const PBYTEArray & userData) +void Q931::SetIE(InformationElementCodes ie, const PBYTEArray & userData, BOOL append) { - informationElements.SetAt(ie, new PBYTEArray(userData)); + if (append && informationElements.Contains(ie)) + informationElements[ie].Append(new PBYTEArray(userData)); + else { + InternalInformationElement * element = new InternalInformationElement; + element->Append(new PBYTEArray(userData)); + informationElements.SetAt(ie, element); + } } void Q931::RemoveIE(InformationElementCodes ie) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2007-10-23 07:29:22
|
Revision: 18757 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18757&view=rev Author: rjongbloed Date: 2007-10-23 00:29:26 -0700 (Tue, 23 Oct 2007) Log Message: ----------- Applied OpenH323 patch 1240291 Select() on the same socket from multiple threads (simul read/write) Thanks Boris Pavacic - bpavacic Modified Paths: -------------- ptlib/trunk/include/ptlib/unix/ptlib/channel.h ptlib/trunk/src/ptlib/unix/channel.cxx ptlib/trunk/src/ptlib/unix/socket.cxx Modified: ptlib/trunk/include/ptlib/unix/ptlib/channel.h =================================================================== --- ptlib/trunk/include/ptlib/unix/ptlib/channel.h 2007-10-23 07:04:58 UTC (rev 18756) +++ ptlib/trunk/include/ptlib/unix/ptlib/channel.h 2007-10-23 07:29:26 UTC (rev 18757) @@ -128,8 +128,8 @@ PThread * px_readThread; PThread * px_writeThread; PMutex px_writeMutex; - PThread * px_selectThread; - PMutex px_selectMutex; + PThread * px_selectThread[3]; + PMutex px_selectMutex[3]; #endif //#ifndef __PCHANNEL_UNIX__ Modified: ptlib/trunk/src/ptlib/unix/channel.cxx =================================================================== --- ptlib/trunk/src/ptlib/unix/channel.cxx 2007-10-23 07:04:58 UTC (rev 18756) +++ ptlib/trunk/src/ptlib/unix/channel.cxx 2007-10-23 07:29:26 UTC (rev 18757) @@ -182,7 +182,9 @@ px_lastBlockType = PXReadBlock; px_readThread = NULL; px_writeThread = NULL; - px_selectThread = NULL; + px_selectThread[0] = NULL; + px_selectThread[1] = NULL; + px_selectThread[2] = NULL; } @@ -414,7 +416,9 @@ AbortIO(px_readThread, px_threadMutex); AbortIO(px_writeThread, px_threadMutex); - AbortIO(px_selectThread, px_threadMutex); + AbortIO(px_selectThread[0], px_threadMutex); + AbortIO(px_selectThread[1], px_threadMutex); + AbortIO(px_selectThread[2], px_threadMutex); int stat; do { Modified: ptlib/trunk/src/ptlib/unix/socket.cxx =================================================================== --- ptlib/trunk/src/ptlib/unix/socket.cxx 2007-10-23 07:04:58 UTC (rev 18756) +++ ptlib/trunk/src/ptlib/unix/socket.cxx 2007-10-23 07:29:26 UTC (rev 18757) @@ -552,8 +552,8 @@ if (h > maxfds) maxfds = h; } - socket.px_selectMutex.Wait(); - socket.px_selectThread = unblockThread; + socket.px_selectMutex[i].Wait(); + socket.px_selectThread[i] = unblockThread; } } @@ -572,8 +572,8 @@ for (i = 0; i < 3; i++) { for (j = 0; j < list[i]->GetSize(); j++) { PSocket & socket = (*list[i])[j]; - socket.px_selectThread = NULL; - socket.px_selectMutex.Signal(); + socket.px_selectThread[i] = NULL; + socket.px_selectMutex[i].Signal(); if (lastError == NoError) { int h = socket.GetHandle(); if (h < 0) @@ -614,8 +614,8 @@ if (h > maxfds) maxfds = h; } - socket.px_selectMutex.Wait(); - socket.px_selectThread = unblockThread; + socket.px_selectMutex[i].Wait(); + socket.px_selectThread[i] = unblockThread; } } @@ -644,8 +644,8 @@ for (i = 0; i < 3; i++) { for (j = 0; j < list[i]->GetSize(); j++) { PSocket & socket = (*list[i])[j]; - socket.px_selectThread = NULL; - socket.px_selectMutex.Signal(); + socket.px_selectThread[i] = NULL; + socket.px_selectMutex[i].Signal(); if (lastError == NoError) { int h = socket.GetHandle(); if (h < 0) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2007-10-23 07:04:58
|
Revision: 18756 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18756&view=rev Author: rjongbloed Date: 2007-10-23 00:04:58 -0700 (Tue, 23 Oct 2007) Log Message: ----------- Applied patch 1517435 Update to ASN Parser. Thanks, dave moss - mothslayer Modified Paths: -------------- ptlib/trunk/tools/asnparser/asn_grammar.y ptlib/trunk/tools/asnparser/asn_lex.l ptlib/trunk/tools/asnparser/main.h Modified: ptlib/trunk/tools/asnparser/asn_grammar.y =================================================================== --- ptlib/trunk/tools/asnparser/asn_grammar.y 2007-10-23 06:46:12 UTC (rev 18755) +++ ptlib/trunk/tools/asnparser/asn_grammar.y 2007-10-23 07:04:58 UTC (rev 18756) @@ -194,6 +194,7 @@ %token OCTET %token OF_t %token OPTIONAL_t +%token PATTERN_t %token PDV %token PLUS_INFINITY %token PRESENT @@ -318,6 +319,7 @@ %type <tval> NullType %type <tval> ObjectClassFieldType %type <tval> ObjectIdentifierType +%type <tval> PatternType %type <tval> OctetStringType %type <tval> RealType %type <tval> SequenceType ComponentType ComponentTypeLists @@ -688,6 +690,7 @@ | ObjectClassFieldType | ObjectIdentifierType | OctetStringType + | PatternType | RealType | SequenceType | SequenceOfType @@ -727,7 +730,8 @@ ExternalTypeReference : MODULEREFERENCE '.' TYPEREFERENCE { - *$1 += *$3; +// *$1 += *$3; + *$1 = *$3; delete $3; } ; @@ -1021,6 +1025,14 @@ ; +PatternType + : PATTERN_t CSTRING + { + $$ = new OctetStringType; + } + ; + + RealType : REAL { @@ -1267,7 +1279,7 @@ $$ = $2; } ; - + ConstraintSpec : ElementSetSpecs | GeneralConstraint Modified: ptlib/trunk/tools/asnparser/asn_lex.l =================================================================== --- ptlib/trunk/tools/asnparser/asn_lex.l 2007-10-23 06:46:12 UTC (rev 18755) +++ ptlib/trunk/tools/asnparser/asn_lex.l 2007-10-23 07:04:58 UTC (rev 18756) @@ -99,6 +99,7 @@ int LexEcho = FALSE; #define YY_USER_ACTION if (LexEcho) cout << yytext << flush; +extern ModuleDefinition * Module; int ReferenceTokenContext = MODULEREFERENCE; int IdentifierTokenContext = IDENTIFIER; @@ -124,6 +125,7 @@ %option nounput nodefault never-interactive %x comment_line +%x cstyle_comment_line %% @@ -182,6 +184,7 @@ "OCTET" { return OCTET; } "OF" { return OF_t; } "OPTIONAL" { return OPTIONAL_t; } +"PATTERN" { return PATTERN_t; } "PDV" { return PDV; } "PLUS-INFINITY" { return PLUS_INFINITY; } "PRESENT" { return PRESENT; } @@ -251,6 +254,22 @@ } +"/*" { + BEGIN(cstyle_comment_line); +} + +<cstyle_comment_line>\n { + lineNumber++; +} + +<cstyle_comment_line>"*/" { + BEGIN(INITIAL); +} + +<cstyle_comment_line>. { +} + + "@" { return '@'; } "{" { return BraceTokenContext; } @@ -341,9 +360,20 @@ ([A-Z]|([A-Z][a-zA-Z0-9_-]*[a-zA-Z0-9_])) { /* See X.680 section 9.2 */ yylval.sval = new PString(yytext); + + if( Module != NULL ) + { + if( Module->IsImportModule( *yylval.sval ) ) + { + return MODULEREFERENCE; + } + } if (CurrentImportList != NULL && CurrentImportList->GetValuesIndex(SearchType(*yylval.sval)) != P_MAX_INDEX) + { + PError << "IMPORT_IDENTIFIER" << endl; return IMPORT_IDENTIFIER; + } return ReferenceTokenContext; } Modified: ptlib/trunk/tools/asnparser/main.h =================================================================== --- ptlib/trunk/tools/asnparser/main.h 2007-10-23 06:46:12 UTC (rev 18755) +++ ptlib/trunk/tools/asnparser/main.h 2007-10-23 07:04:58 UTC (rev 18756) @@ -1170,8 +1170,8 @@ void GenerateCplusplus(ostream & hdr, ostream & cxx); + PString fullModuleName; protected: - PString fullModuleName; PString shortModuleName; PString filename; PString directoryPrefix; @@ -1194,6 +1194,16 @@ void SetExportAll(); void SetExports(TypesList * syms); + bool IsImportModule( const PString & name ) const + { + for( PINDEX i = 0; i < imports.GetSize(); ++i ) + { + if( imports[i].fullModuleName == name ) + return true; + } + return false; + } + void AddImport(ImportModule * mod) { imports.Append(mod); } void AddType(TypeBase * type) { types.Append(type); } void AddValue(ValueBase * val) { values.Append(val); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2007-10-23 06:46:09
|
Revision: 18755 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18755&view=rev Author: rjongbloed Date: 2007-10-22 23:46:12 -0700 (Mon, 22 Oct 2007) Log Message: ----------- Fixed output directory and copy issues in MergeSym build Modified Paths: -------------- ptlib/trunk/tools/MergeSym/MergeSym_2005.vcproj Modified: ptlib/trunk/tools/MergeSym/MergeSym_2005.vcproj =================================================================== --- ptlib/trunk/tools/MergeSym/MergeSym_2005.vcproj 2007-10-23 05:50:52 UTC (rev 18754) +++ ptlib/trunk/tools/MergeSym/MergeSym_2005.vcproj 2007-10-23 06:46:12 UTC (rev 18755) @@ -18,7 +18,6 @@ OutputDirectory="..\..\bin\$(ProjectName)\$(ConfigurationName)" IntermediateDirectory="..\..\bin\$(ProjectName)\$(ConfigurationName)" ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="false" > @@ -47,10 +46,7 @@ DefaultCharIsUnsigned="true" RuntimeTypeInfo="true" UsePrecompiledHeader="0" - PrecompiledHeaderFile=".\Debug/MergeSym.pch" - AssemblerListingLocation=".\Debug/" - ObjectFile=".\Debug/" - ProgramDataBaseFileName=".\Debug/" + ProgramDataBaseFileName="$(TargetDir)\$(TargetName).pdb" WarningLevel="4" SuppressStartupBanner="true" DebugInformationFormat="4" @@ -71,12 +67,12 @@ Name="VCLinkerTool" AdditionalOptions="/MACHINE:I386" AdditionalDependencies="ptlibsd.lib mpr.lib" - OutputFile=".\Debug/MergeSym.exe" + OutputFile="$(OutDir)/$(ProjectName).exe" LinkIncremental="2" SuppressStartupBanner="true" AdditionalLibraryDirectories="..\..\lib" GenerateDebugInformation="true" - ProgramDatabaseFile=".\Debug/MergeSym.pdb" + ProgramDatabaseFile="$(TargetDir)\$(TargetName).pdb" SubSystem="1" /> <Tool @@ -102,8 +98,7 @@ /> <Tool Name="VCPostBuildEventTool" - Description="Copying symbol merge utility to ptlib/lib directory." - CommandLine="copy Release\mergesym.exe ..\..\lib > nul" + CommandLine="" /> </Configuration> <Configuration @@ -111,7 +106,6 @@ OutputDirectory="..\..\bin\$(ProjectName)\$(ConfigurationName)" IntermediateDirectory="..\..\bin\$(ProjectName)\$(ConfigurationName)" ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="false" > @@ -142,10 +136,7 @@ DefaultCharIsUnsigned="true" RuntimeTypeInfo="true" UsePrecompiledHeader="0" - PrecompiledHeaderFile=".\Release/MergeSym.pch" - AssemblerListingLocation=".\Release/" - ObjectFile=".\Release/" - ProgramDataBaseFileName=".\Release/" + ProgramDataBaseFileName="$(TargetDir)\$(TargetName).pdb" WarningLevel="4" SuppressStartupBanner="true" CompileAs="0" @@ -165,11 +156,11 @@ Name="VCLinkerTool" AdditionalOptions="/MACHINE:I386" AdditionalDependencies="ptlibs.lib mpr.lib" - OutputFile=".\Release/MergeSym.exe" + OutputFile="$(OutDir)/$(ProjectName).exe" LinkIncremental="1" SuppressStartupBanner="true" AdditionalLibraryDirectories="..\..\lib" - ProgramDatabaseFile=".\Release/MergeSym.pdb" + ProgramDatabaseFile="$(TargetDir)\$(TargetName).pdb" SubSystem="1" /> <Tool @@ -196,7 +187,7 @@ <Tool Name="VCPostBuildEventTool" Description="Copying symbol merge utility to ptlib/lib directory." - CommandLine="copy Release\mergesym.exe ..\..\lib > nul" + CommandLine="copy $(TargetPath) ..\..\lib > nul" /> </Configuration> <Configuration @@ -204,7 +195,6 @@ OutputDirectory="..\..\bin\$(ProjectName)\$(ConfigurationName)" IntermediateDirectory="..\..\bin\$(ProjectName)\$(ConfigurationName)" ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="false" > @@ -235,10 +225,7 @@ DefaultCharIsUnsigned="true" RuntimeTypeInfo="true" UsePrecompiledHeader="0" - PrecompiledHeaderFile=".\Release/MergeSym.pch" - AssemblerListingLocation=".\Release/" - ObjectFile=".\Release/" - ProgramDataBaseFileName=".\Release/" + ProgramDataBaseFileName="$(TargetDir)\$(TargetName).pdb" WarningLevel="4" SuppressStartupBanner="true" CompileAs="0" @@ -258,11 +245,11 @@ Name="VCLinkerTool" AdditionalOptions="/MACHINE:I386" AdditionalDependencies="ptlibs.lib mpr.lib" - OutputFile=".\Release/MergeSym.exe" + OutputFile="$(OutDir)/$(ProjectName).exe" LinkIncremental="1" SuppressStartupBanner="true" AdditionalLibraryDirectories="..\..\lib" - ProgramDatabaseFile=".\Release/MergeSym.pdb" + ProgramDatabaseFile="$(TargetDir)\$(TargetName).pdb" SubSystem="1" /> <Tool @@ -288,8 +275,7 @@ /> <Tool Name="VCPostBuildEventTool" - Description="Copying symbol merge utility to ptlib/lib directory." - CommandLine="copy Release\mergesym.exe ..\..\lib > nul" + CommandLine="" /> </Configuration> </Configurations> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2007-10-23 05:50:48
|
Revision: 18754 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18754&view=rev Author: rjongbloed Date: 2007-10-22 22:50:52 -0700 (Mon, 22 Oct 2007) Log Message: ----------- Applied OpenH323 patch 1707951 PTimer initial state set to 'Stopped' Thanks Drazen Dimoti (jimbosimo) Modified Paths: -------------- ptlib/trunk/src/ptlib/common/osutils.cxx Modified: ptlib/trunk/src/ptlib/common/osutils.cxx =================================================================== --- ptlib/trunk/src/ptlib/common/osutils.cxx 2007-10-23 05:47:14 UTC (rev 18753) +++ ptlib/trunk/src/ptlib/common/osutils.cxx 2007-10-23 05:50:52 UTC (rev 18754) @@ -1366,7 +1366,7 @@ void PTimer::Construct() { - state = Starting; + state = Stopped; timerList = PProcess::Current().GetTimerList(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2007-10-23 05:47:11
|
Revision: 18753 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18753&view=rev Author: rjongbloed Date: 2007-10-22 22:47:14 -0700 (Mon, 22 Oct 2007) Log Message: ----------- Applied OpenH323 patch 1703671 PTrace::Begin() longer full thread name Thanks Fabrizio Ammollo (fammollo) Modified Paths: -------------- ptlib/trunk/src/ptlib/common/osutils.cxx Modified: ptlib/trunk/src/ptlib/common/osutils.cxx =================================================================== --- ptlib/trunk/src/ptlib/common/osutils.cxx 2007-10-23 05:44:04 UTC (rev 18752) +++ ptlib/trunk/src/ptlib/common/osutils.cxx 2007-10-23 05:47:14 UTC (rev 18753) @@ -1209,8 +1209,8 @@ << setfill(' ') << dec; else { PString name = thread->GetThreadName(); - if (name.GetLength() <= 12) - stream << setw(12) << name; + if (name.GetLength() <= 23) + stream << setw(23) << name; else stream << name.Left(10) << "..." << name.Right(10); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2007-10-23 05:44:00
|
Revision: 18752 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18752&view=rev Author: rjongbloed Date: 2007-10-22 22:44:04 -0700 (Mon, 22 Oct 2007) Log Message: ----------- Applied OpenH323 patch 1703663 Hide control window in service simulation mode. Thanks Fabrizio Ammollo (fammollo) Modified Paths: -------------- ptlib/trunk/include/ptlib/msos/ptlib/svcproc.h ptlib/trunk/src/ptlib/msos/svcproc.cxx Modified: ptlib/trunk/include/ptlib/msos/ptlib/svcproc.h =================================================================== --- ptlib/trunk/include/ptlib/msos/ptlib/svcproc.h 2007-10-23 05:36:42 UTC (rev 18751) +++ ptlib/trunk/include/ptlib/msos/ptlib/svcproc.h 2007-10-23 05:44:04 UTC (rev 18752) @@ -142,6 +142,7 @@ protected: PCaselessString systemLogFileName; + BOOL debugHidden; /// Flag to indicate service is run in simulation mode without showing the control window private: static void __stdcall StaticMainEntry(DWORD argc, LPTSTR * argv); Modified: ptlib/trunk/src/ptlib/msos/svcproc.cxx =================================================================== --- ptlib/trunk/src/ptlib/msos/svcproc.cxx 2007-10-23 05:36:42 UTC (rev 18751) +++ ptlib/trunk/src/ptlib/msos/svcproc.cxx 2007-10-23 05:44:04 UTC (rev 18752) @@ -708,6 +708,9 @@ debugMode = arguments.GetCount() > 0 && (strcasecmp(arguments[0], "Debug") == 0 || strcasecmp(arguments[0], "foreground") == 0); + debugHidden = arguments.GetCount() > 0 && strcasecmp(arguments[0], "DebugHidden") == 0; + if (debugHidden) + debugMode=TRUE; currentLogLevel = debugMode ? PSystemLog::Info : PSystemLog::Warning; if (!debugMode && arguments.GetCount() > 0) { @@ -1269,7 +1272,7 @@ } - if (!IsWindowVisible(controlWindow)) + if (!IsWindowVisible(controlWindow) && !debugHidden) ShowWindow(controlWindow, SW_SHOWDEFAULT); int len = strlen(out); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2007-10-23 05:36:37
|
Revision: 18751 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18751&view=rev Author: rjongbloed Date: 2007-10-22 22:36:42 -0700 (Mon, 22 Oct 2007) Log Message: ----------- Applied patch 1532406 Binding based on remote address interface selection. Thanks Drazen Dimoti (jimbosimo) Modified Paths: -------------- opal/trunk/include/opal/transports.h opal/trunk/src/opal/transports.cxx Modified: opal/trunk/include/opal/transports.h =================================================================== --- opal/trunk/include/opal/transports.h 2007-10-23 05:10:09 UTC (rev 18750) +++ opal/trunk/include/opal/transports.h 2007-10-23 05:36:42 UTC (rev 18751) @@ -242,6 +242,7 @@ FullTSAP, Streamed, Datagram, + RouteInterface, NumBindOptions }; @@ -269,6 +270,10 @@ binding is made. This is equivalent to translating the address to "tcp$*:0" so that only the overall protocol type is used. + With RouteInterface, the address is considered a remote address and the + created transport is bound only to the address associated with the + interface that would be used to get to that address. + Also note that if the address has a trailing '+' character then the socket will be bound using the REUSEADDR option, where relevant. */ Modified: opal/trunk/src/opal/transports.cxx =================================================================== --- opal/trunk/src/opal/transports.cxx 2007-10-23 05:10:09 UTC (rev 18750) +++ opal/trunk/src/opal/transports.cxx 2007-10-23 05:36:42 UTC (rev 18751) @@ -935,6 +935,14 @@ port = 0; return address.GetIpAddress(ip); + case OpalTransportAddress::RouteInterface : + if (address.GetIpAndPort(ip, port)) + ip = PIPSocket::GetRouteInterfaceAddress(ip); + else + ip = PIPSocket::GetDefaultIpAny(); + port = 0; + return TRUE; + default : port = endpoint.GetDefaultSignalPort(); return address.GetIpAndPort(ip, port); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2007-10-23 05:10:05
|
Revision: 18750 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18750&view=rev Author: rjongbloed Date: 2007-10-22 22:10:09 -0700 (Mon, 22 Oct 2007) Log Message: ----------- Applied OpenH323 patch 1532400 Function to do interface selection based on remote address. Thanks Drazen Dimoti (jimbosimo) Modified Paths: -------------- ptlib/trunk/include/ptlib/ipsock.h ptlib/trunk/src/ptlib/msos/ethsock.cxx Modified: ptlib/trunk/include/ptlib/ipsock.h =================================================================== --- ptlib/trunk/include/ptlib/ipsock.h 2007-10-23 04:14:53 UTC (rev 18749) +++ ptlib/trunk/include/ptlib/ipsock.h 2007-10-23 05:10:09 UTC (rev 18750) @@ -776,7 +776,16 @@ */ static PString GetGatewayInterface(); - #ifdef _WIN32 + /** Get the interface address that will be used to reach the specified + remote address. Uses longest prefix match when multiple matching interfaces + are found. + + @return + Network interface address. + */ + static PIPSocket::Address GetRouteInterfaceAddress(PIPSocket::Address remoteAddress); + +#ifdef _WIN32 /** Get the IP address for the interface that is being used as the gateway, that is, the interface that packets on the default route will be sent. Modified: ptlib/trunk/src/ptlib/msos/ethsock.cxx =================================================================== --- ptlib/trunk/src/ptlib/msos/ethsock.cxx 2007-10-23 04:14:53 UTC (rev 18749) +++ ptlib/trunk/src/ptlib/msos/ethsock.cxx 2007-10-23 05:10:09 UTC (rev 18750) @@ -1994,6 +1994,57 @@ return snmp.GetInterfaceName(ifNum); } + +PIPSocket::Address PIPSocket::GetRouteInterfaceAddress(PIPSocket::Address remoteAddress) +{ + PIPSocket::InterfaceTable hostInterfaceTable; + PIPSocket::GetInterfaceTable(hostInterfaceTable); + + PIPSocket::RouteTable hostRouteTable; + PIPSocket::GetRouteTable(hostRouteTable); + + if (hostInterfaceTable.IsEmpty()) + return PIPSocket::GetDefaultIpAny(); + + for (PINDEX IfaceIdx = 0; IfaceIdx < hostInterfaceTable.GetSize(); IfaceIdx++) { + if (remoteAddress == hostInterfaceTable[IfaceIdx].GetAddress()) { + PTRACE(5, "PWLib\tRoute packet for " << remoteAddress + << " over interface " << hostInterfaceTable[IfaceIdx].GetName() + << "[" << hostInterfaceTable[IfaceIdx].GetAddress() << "]"); + return hostInterfaceTable[IfaceIdx].GetAddress(); + } + } + + PIPSocket::RouteEntry * route = NULL; + for (PINDEX routeIdx = 0; routeIdx < hostRouteTable.GetSize(); routeIdx++) { + PIPSocket::RouteEntry & routeEntry = hostRouteTable[routeIdx]; + + DWORD network = (DWORD) routeEntry.GetNetwork(); + DWORD mask = (DWORD) routeEntry.GetNetMask(); + + if (((DWORD)remoteAddress & mask) == network) { + if (route == NULL) + route = &routeEntry; + else if ((DWORD)routeEntry.GetNetMask() > (DWORD)route->GetNetMask()) + route = &routeEntry; + } + } + + if (route != NULL) { + for (PINDEX IfaceIdx = 0; IfaceIdx < hostInterfaceTable.GetSize(); IfaceIdx++) { + if (route->GetInterface() == hostInterfaceTable[IfaceIdx].GetName()) { + PTRACE(5, "PWLib\tRoute packet for " << remoteAddress + << " over interface " << hostInterfaceTable[IfaceIdx].GetName() + << "[" << hostInterfaceTable[IfaceIdx].GetAddress() << "]"); + return hostInterfaceTable[IfaceIdx].GetAddress(); + } + } + } + + return PIPSocket::GetDefaultIpAny(); +} + + PIPSocket::Address PIPSocket::GetGatewayInterfaceAddress() { PWaitAndSignal m(GetSNMPMutex()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2007-10-23 04:14:49
|
Revision: 18749 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18749&view=rev Author: rjongbloed Date: 2007-10-22 21:14:53 -0700 (Mon, 22 Oct 2007) Log Message: ----------- Fixed compiler warning(s). Modified Paths: -------------- opal/trunk/src/sip/handlers.cxx Modified: opal/trunk/src/sip/handlers.cxx =================================================================== --- opal/trunk/src/sip/handlers.cxx 2007-10-23 04:02:26 UTC (rev 18748) +++ opal/trunk/src/sip/handlers.cxx 2007-10-23 04:14:53 UTC (rev 18749) @@ -592,9 +592,9 @@ } +#if P_EXPAT BOOL SIPSubscribeHandler::OnReceivedPresenceNOTIFY(SIP_PDU & request) { -#if P_EXPAT PString body = request.GetEntityBody(); SIPURL from = request.GetMIME().GetFrom(); PString basic; @@ -639,10 +639,14 @@ from.AdjustForRequestURI(); endpoint.OnPresenceInfoReceived (from.AsQuotedString(), basic, note); -#endif - return TRUE; } +#else +BOOL SIPSubscribeHandler::OnReceivedPresenceNOTIFY(SIP_PDU &) +{ + return TRUE; +} +#endif void SIPSubscribeHandler::OnFailed(SIP_PDU::StatusCodes reason) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cso...@us...> - 2007-10-23 04:02:22
|
Revision: 18748 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18748&view=rev Author: csoutheren Date: 2007-10-22 21:02:26 -0700 (Mon, 22 Oct 2007) Log Message: ----------- Fixed problems with back merge of RTP padding changes Modified Paths: -------------- opal/trunk/include/rtp/rtp.h Modified: opal/trunk/include/rtp/rtp.h =================================================================== --- opal/trunk/include/rtp/rtp.h 2007-10-23 01:40:28 UTC (rev 18747) +++ opal/trunk/include/rtp/rtp.h 2007-10-23 04:02:26 UTC (rev 18748) @@ -443,8 +443,8 @@ BOOL GetMarker() const { return (theArray[1]&0x80) != 0; } void SetMarker(BOOL m); - BOOL GetPadding() const; - void SetPadding(BOOL v); + BOOL GetPadding() const { return (theArray[0]&0x20) != 0; } + void SetPadding(BOOL v) { if (v) theArray[0] |= 0x20; else theArray[0] &= 0xdf; } unsigned GetPaddingSize() const; @@ -472,7 +472,7 @@ BOOL SetExtensionSize(PINDEX sz); BYTE * GetExtensionPtr() const; - PINDEX GetPayloadSize() const { return payloadSize; } + PINDEX GetPayloadSize() const { return payloadSize - GetPaddingSize(); } BOOL SetPayloadSize(PINDEX sz); BYTE * GetPayloadPtr() const { return (BYTE *)(theArray+GetHeaderSize()); } @@ -526,9 +526,6 @@ PINDEX GetCompoundSize() const; - BOOL GetPadding() const { return theArray[compoundOffset & 0x20] != 0; } - void SetPadding(BOOL v) { if (v) theArray[compoundOffset] |= 0x20; else theArray[compoundOffset] &= 0xdf; } - void Reset(PINDEX size); #pragma pack(1) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cso...@us...> - 2007-10-23 01:40:24
|
Revision: 18747 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18747&view=rev Author: csoutheren Date: 2007-10-22 18:40:28 -0700 (Mon, 22 Oct 2007) Log Message: ----------- Applied OpenH323 patch 1789256 - Fixed handling of RTP padding. Thanks to Boris Pavacic Applied OpenH323 patch 1799686 - Fixed RTP aggregation handling. Thanks to Simon Zwahlen Applied OpenH323 patch 1800896 - Add SIPEndPoint::GetContactURL override. Thanks to Simon Zwahlen Applied OpenH323 patch 1800899 - Add SIP URL proxy parameter. Thanks to Simon Zwahlen Applied OpenH323 patch 1800937 - Fix media channel after openLogicalChannel reject. Thanks to Simon Zwahlen Applied OpenH323 patch 1800997 - Adde support for SIP asserted identity headers. Thanks to Simon Zwahlen Modified Paths: -------------- opal/trunk/include/rtp/jitter.h opal/trunk/include/rtp/rtp.h opal/trunk/include/sip/sipep.h opal/trunk/include/sip/sippdu.h opal/trunk/src/h323/h323.cxx opal/trunk/src/rtp/jitter.cxx opal/trunk/src/rtp/rtp.cxx opal/trunk/src/sip/handlers.cxx opal/trunk/src/sip/sippdu.cxx Modified: opal/trunk/include/rtp/jitter.h =================================================================== --- opal/trunk/include/rtp/jitter.h 2007-10-23 01:10:01 UTC (rev 18746) +++ opal/trunk/include/rtp/jitter.h 2007-10-23 01:40:28 UTC (rev 18747) @@ -136,9 +136,6 @@ PCLASSINFO(OpalJitterBuffer, PObject); public: -#if OPAL_RTP_AGGREGATE - friend class RTP_AggregatedHandle; -#endif /**Constructor for this jitter buffer. The size of this buffer can be altered later with the SetDelay method */ OpalJitterBuffer( @@ -149,7 +146,7 @@ ); /**Destructor, which closes this down and deletes the internal list of frames */ - ~OpalJitterBuffer(); + virtual ~OpalJitterBuffer(); /**Report the statistics for this jitter instance */ void PrintOn(ostream & strm ) const; @@ -210,7 +207,7 @@ /**Start jitter thread */ - void Resume(PHandleAggregator * aggregator = NULL); + virtual void Resume(PHandleAggregator * aggregator = NULL); PDECLARE_NOTIFIER(PThread, OpalJitterBuffer, JitterThreadMain); @@ -262,8 +259,6 @@ PThread * jitterThread; PINDEX jitterStackSize; - RTP_AggregatedHandle * aggregratedHandle; - BOOL Init(Entry * & currentReadFrame, BOOL & markerWarning); BOOL PreRead(Entry * & currentReadFrame, BOOL & markerWarning); BOOL OnRead(Entry * & currentReadFrame, BOOL & markerWarning, BOOL loop); @@ -278,6 +273,9 @@ PCLASSINFO(RTP_JitterBuffer, OpalJitterBuffer); public: +#if OPAL_RTP_AGGREGATE + friend class RTP_AggregatedHandle; +#endif RTP_JitterBuffer( RTP_Session & session, ///< Associated RTP session tor ead data from unsigned minJitterDelay, ///< Minimum delay in RTP timestamp units @@ -285,8 +283,8 @@ unsigned timeUnits = 8, ///< Time units, usually 8 or 16 PINDEX stackSize = 30000 ///< Stack size for jitter thread ); + virtual ~RTP_JitterBuffer(); - /**This class instance collects data from the outside world in this method. @@ -296,9 +294,14 @@ BOOL loop ///< If TRUE, loop as long as data is available, if FALSE, only process once ) ; + /**Start jitter thread + */ + virtual void Resume(PHandleAggregator * aggregator = NULL); + protected: /**This class extracts data from the outside world by reading from this session variable */ RTP_Session & session; + RTP_AggregatedHandle * aggregatedHandle; }; Modified: opal/trunk/include/rtp/rtp.h =================================================================== --- opal/trunk/include/rtp/rtp.h 2007-10-23 01:10:01 UTC (rev 18746) +++ opal/trunk/include/rtp/rtp.h 2007-10-23 01:40:28 UTC (rev 18747) @@ -443,6 +443,11 @@ BOOL GetMarker() const { return (theArray[1]&0x80) != 0; } void SetMarker(BOOL m); + BOOL GetPadding() const; + void SetPadding(BOOL v); + + unsigned GetPaddingSize() const; + PayloadTypes GetPayloadType() const { return (PayloadTypes)(theArray[1]&0x7f); } void SetPayloadType(PayloadTypes t); Modified: opal/trunk/include/sip/sipep.h =================================================================== --- opal/trunk/include/sip/sipep.h 2007-10-23 01:10:01 UTC (rev 18746) +++ opal/trunk/include/sip/sipep.h 2007-10-23 01:40:28 UTC (rev 18747) @@ -953,7 +953,7 @@ * If the transport is not running, the first listener transport * will be used, if any. */ - SIPURL GetLocalURL( + virtual SIPURL GetLocalURL( const OpalTransport & transport, ///< Transport on which we can receive new requests const PString & userName = PString::Empty() ///< The user name part of the contact field ); Modified: opal/trunk/include/sip/sippdu.h =================================================================== --- opal/trunk/include/sip/sippdu.h 2007-10-23 01:10:01 UTC (rev 18746) +++ opal/trunk/include/sip/sippdu.h 2007-10-23 01:40:28 UTC (rev 18747) @@ -392,6 +392,12 @@ PString GetFrom() const; void SetFrom(const PString & v); + PString GetPAssertedIdentity() const; + void SetPAssertedIdentity(const PString & v); + + PString GetPPreferredIdentity() const; + void SetPPreferredIdentity(const PString & v); + PString GetAccept() const; void SetAccept(const PString & v); Modified: opal/trunk/src/h323/h323.cxx =================================================================== --- opal/trunk/src/h323/h323.cxx 2007-10-23 01:10:01 UTC (rev 18746) +++ opal/trunk/src/h323/h323.cxx 2007-10-23 01:40:28 UTC (rev 18747) @@ -4072,6 +4072,15 @@ } if (!fromRemote) { + // close the source media stream so it will be re-established + OpalMediaStream* stream = NULL; + stream = conflictingChannel.GetMediaStream(); + if (stream != NULL) { + OpalMediaPatch * patch = stream->GetPatch(); + if (patch != NULL) + patch->GetSource().Close(); + } + conflictingChannel.Close(); H323Capability * capability = remoteCapabilities.FindCapability(channel->GetCapability()); if (capability == NULL) { Modified: opal/trunk/src/rtp/jitter.cxx =================================================================== --- opal/trunk/src/rtp/jitter.cxx 2007-10-23 01:10:01 UTC (rev 18746) +++ opal/trunk/src/rtp/jitter.cxx 2007-10-23 01:40:28 UTC (rev 18747) @@ -385,10 +385,6 @@ #else analyser = NULL; #endif - -#if OPAL_RTP_AGGREGATE - aggregratedHandle = NULL; -#endif } @@ -396,24 +392,13 @@ { shuttingDown = TRUE; -#if OPAL_RTP_AGGREGATE - if (jitterThread == NULL) { - if (aggregatedHandle != NULL) { - aggregratedHandle->Remove(); - delete aggregratedHandle; - aggregratedHandle = NULL; - } - } else -#endif - { - if (jitterThread != NULL) { - PTRACE(3, "RTP\tRemoving jitter buffer " << this << ' ' << jitterThread->GetThreadName()); - PAssert(jitterThread->WaitForTermination(10000), "Jitter buffer thread did not terminate"); - delete jitterThread; - jitterThread = NULL; - } else { - PTRACE(1, "RTP\tJitter buffer thread is null, when the OpalJitterBuffer destructor runs"); - } + if (jitterThread != NULL) { + PTRACE(3, "RTP\tRemoving jitter buffer " << this << ' ' << jitterThread->GetThreadName()); + PAssert(jitterThread->WaitForTermination(10000), "Jitter buffer thread did not terminate"); + delete jitterThread; + jitterThread = NULL; + } else { + PTRACE(1, "RTP\tJitter buffer thread is null, when the OpalJitterBuffer destructor runs"); } bufferMutex.Wait(); @@ -510,21 +495,8 @@ bufferMutex.Signal(); } -void OpalJitterBuffer::Resume(PHandleAggregator * -#if OPAL_RTP_AGGREGATE - aggregator -#endif - ) +void OpalJitterBuffer::Resume(PHandleAggregator * /*aggregator */) { -#if OPAL_RTP_AGGREGATE - // if we are aggregating RTP threads, add the socket to the RTP aggregator - if (aggregator != NULL) { - aggregratedHandle = new RTP_AggregatedHandle(aggregator, *this); - aggregator->AddHandle(aggregratedHandle); - return; - } -#endif - // otherwise create a seperate thread as per the old design jitterThread = PThread::Create(PCREATE_NOTIFIER(JitterThreadMain), 0, PThread::NoAutoDeleteThread, PThread::HighestPriority, "RTP Jitter:%x", jitterStackSize); jitterThread->Resume(); @@ -1019,10 +991,24 @@ PINDEX stackSize) : OpalJitterBuffer(minJitterDelay, maxJitterDelay, time, stackSize), session(sess) +#if OPAL_RTP_AGGREGATE + , aggregatedHandle(NULL) +#endif { PTRACE(6, "RTP_JitterBuffer\tConstructor" << *this); } +RTP_JitterBuffer::~RTP_JitterBuffer() +{ +#if OPAL_RTP_AGGREGATE + if (aggregatedHandle != NULL) { + aggregatedHandle->Remove(); + delete aggregatedHandle; + aggregatedHandle = NULL; + } +#endif +} + BOOL RTP_JitterBuffer::OnReadPacket(RTP_DataFrame & frame, BOOL loop) { @@ -1031,8 +1017,22 @@ return success; } +void RTP_JitterBuffer::Resume(PHandleAggregator * aggregator) +{ +#if OPAL_RTP_AGGREGATE + // if we are aggregating RTP threads, add the socket to the RTP aggregator + if (aggregator != NULL) { + aggregatedHandle = new RTP_AggregatedHandle(aggregator, *this); + aggregator->AddHandle(aggregatedHandle); + return; + } +#endif + OpalJitterBuffer::Resume(aggregator); +} + + ///////////////////////////////////////////////////////////////////////////// Modified: opal/trunk/src/rtp/rtp.cxx =================================================================== --- opal/trunk/src/rtp/rtp.cxx 2007-10-23 01:10:01 UTC (rev 18746) +++ opal/trunk/src/rtp/rtp.cxx 2007-10-23 01:40:28 UTC (rev 18747) @@ -765,6 +765,12 @@ strm << hex << setfill('0') << PBYTEArray(GetPayloadPtr(), GetPayloadSize(), false) << setfill(' ') << dec; } +unsigned RTP_DataFrame::GetPaddingSize() const +{ + if (!GetPadding()) + return 0; + return theArray[payloadSize-1]; +} #if PTRACING static const char * const PayloadTypesNames[RTP_DataFrame::LastKnownPayloadType] = { Modified: opal/trunk/src/sip/handlers.cxx =================================================================== --- opal/trunk/src/sip/handlers.cxx 2007-10-23 01:10:01 UTC (rev 18746) +++ opal/trunk/src/sip/handlers.cxx 2007-10-23 01:40:28 UTC (rev 18747) @@ -115,12 +115,24 @@ targetAddress.Parse(to); remotePartyAddress = targetAddress.AsQuotedString(); - transport = endpoint.CreateTransport(targetAddress.GetHostAddress()); - authenticationAttempts = 0; - const SIPURL & proxy = endpoint.GetProxy(); + // Look for a "proxy" parameter to override default proxy + const PStringToString& params = targetAddress.GetParamVars(); + SIPURL proxy; + if (params.Contains("proxy")) { + proxy.Parse(params("proxy")); + targetAddress.SetParamVar("proxy", PString::Empty()); + } + if (proxy.IsEmpty()) + proxy = endpoint.GetProxy(); + + if (!proxy.IsEmpty()) + transport = endpoint.CreateTransport(proxy.GetHostAddress()); + else + transport = endpoint.CreateTransport(targetAddress.GetHostAddress()); + // Default routeSet if there is a proxy if (!proxy.IsEmpty() && routeSet.GetSize() == 0) routeSet += "sip:" + proxy.GetHostName() + ':' + PString(proxy.GetPort()) + ";lr"; Modified: opal/trunk/src/sip/sippdu.cxx =================================================================== --- opal/trunk/src/sip/sippdu.cxx 2007-10-23 01:10:01 UTC (rev 18746) +++ opal/trunk/src/sip/sippdu.cxx 2007-10-23 01:40:28 UTC (rev 18747) @@ -985,7 +985,26 @@ SetAt(compactForm ? "f" : "From", v); } +PString SIPMIMEInfo::GetPAssertedIdentity() const +{ + return (*this)["P-Asserted-Identity"]; +} +void SIPMIMEInfo::SetPAssertedIdentity(const PString & v) +{ + SetAt("P-Asserted-Identity", v); +} + +PString SIPMIMEInfo::GetPPreferredIdentity() const +{ + return (*this)["P-Preferred-Identity"]; +} + +void SIPMIMEInfo::SetPPreferredIdentity(const PString & v) +{ + SetAt("P-Preferred-Identity", v); +} + PString SIPMIMEInfo::GetCallID() const { return GetFullOrCompact("Call-ID", 'i'); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |