Integrate the Spandsp library for G.722 and G.726 support. Adds support
for G.722 and all eight variants of G.726.
Note: this also fixes a crash in Qt (buffer overrun, reading too much
data) caused by confusion of the larger output buffer (resample_buff)
with the smaller input buffer (decode_buff). It was not triggered before
because the sample rate was always 8k, but with the addition of the new
codecs, a different sample rate became possible (16k).
Fix also a crash which occurs when the RTP_STREAM_DEBUG macro is enabled
and the VOIP Calls dialog is opened (the begin frame, start_fd, is not
yet known and therfore a NULL dereference could occur).
Passes testing (plays normally without bad RTP timing errors) with
SampleCaptures files: sip-rtp-g722.pcap and sip-rtp-g726.pcap. Tested
with cmake (Qt), autotools (Qt and GTK+) with ASAN enabled.
Bug: 5619
Change-Id: I5661908d193927bba50901079119eeff0c04991f
Reviewed-on: https://code.wireshark.org/review/18939
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Setting our compiler warning flags in CMAKE_C_FLAGS does not allow
using different flags per target.
Allow for that possibility by setting the internal WS_WARNINGS_{C,CXX}_FLAGS
and using the COMPILE_OPTIONS property to set them.
This change is just setting mechanism and there should be no difference
in generated warnings.
The check_X_compiler_flag cmake test is changed to test each flag individually.
We need a list, not a space separated string, and the aggregate test is not
significant.
Change-Id: I59fc5cd7e130c7a5e001c598e3df3e13f83a6a25
Reviewed-on: https://code.wireshark.org/review/17150
Petri-Dish: João Valverde <j@v6e.pt>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: João Valverde <j@v6e.pt>
This generates a top level target, checkAPI, that is
excluded from the ALL build target, so must be run separately.
On Windows using a Visual Studio generator, call
msbuild /p:Configuration=RelWithDebInfo checkAPI.vcxproj
Change-Id: I44a57c564dcfc75499463b942436f4b920a82478
Reviewed-on: https://code.wireshark.org/review/14873
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Graham Bloice <graham.bloice@trihedral.com>
Fixes dpkg warnings:
dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/wireshark-qt/usr/bin/wireshark was not linked against libsbc.so.1 (it uses none of the library's symbols)
dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/wireshark-gtk/usr/bin/wireshark-gtk was not linked against libsbc.so.1 (it uses none of the library's symbols)
dpkg-shlibdeps: warning: symbol sbc_decode used by debian/libwscodecs0/usr/lib/x86_64-linux-gnu/libwscodecs.so.0.0.0 found in none of the libraries
dpkg-shlibdeps: warning: symbol sbc_init used by debian/libwscodecs0/usr/lib/x86_64-linux-gnu/libwscodecs.so.0.0.0 found in none of the libraries
dpkg-shlibdeps: warning: symbol sin used by debian/libwscodecs0/usr/lib/x86_64-linux-gnu/libwscodecs.so.0.0.0 found in none of the libraries
dpkg-shlibdeps: warning: symbol floorf used by debian/libwscodecs0/usr/lib/x86_64-linux-gnu/libwscodecs.so.0.0.0 found in none of the libraries
dpkg-shlibdeps: warning: symbol floor used by debian/libwscodecs0/usr/lib/x86_64-linux-gnu/libwscodecs.so.0.0.0 found in none of the libraries
dpkg-shlibdeps: warning: symbol sbc_finish used by debian/libwscodecs0/usr/lib/x86_64-linux-gnu/libwscodecs.so.0.0.0 found in none of the libraries
Change-Id: I71911513c348edd336cdc82ea358b6a05760b4b9
Reviewed-on: https://code.wireshark.org/review/13784
Petri-Dish: João Valverde <j@v6e.pt>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Balint Reczey <balint@balintreczey.hu>
Note the "initial". This is woefully incomplete. See the "to do" lists
below and in the code.
This differs a bit from the GTK+ version in that you specify one or more
streams to be decoded.
Instead of showing waveforms in individual widgets, add them all to a
single QCustomPlot. This conserves screen real estate and lets us more
easily take advantage of the QCP API. It also looks better IMHO.
Change a bunch of checks for QtMultimediaWidgets to QtMultimedia. We
probably won't use the widgets until we make 5.0 our minimum Qt
version and plain old QtMultimedia lets us support Qt 4 more easily
(in theory at least).
Add resampling code from libspeex. I initially used this to resample
each packet to match the preferred rate of our output device, but this
resulted in poorer audio quality than expected. Leave it in and use to
create visual samples for QCP and to match rates any time the rate
changes. The latter is currently untested.
Add some debugging macros.
Note that both the RTP player and RTP analysis dialogs decode audio data
using different code.
Note that voip_calls_packet and voip_calls_init_tap appear to be dead
code.
To do:
- Add silence frames where needed.
- Implement the jitter buffer.
- Implement the playback timing controls.
- Tapping / scanning streams might be too slow.
Change-Id: I20dd3b66d3df53c9b1f3501262dc01458849f6b4
Bug: 9007
Reviewed-on: https://code.wireshark.org/review/10458
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Move capchild, caputils, codecs and wsutil into a Libs group
Move gtkui into UI group
Move update-sminmpec into tools group
Change-Id: Iaf2bfe4697265af2c3ed9c9d7de2d5d1ef3cafee
Reviewed-on: https://code.wireshark.org/review/6332
Reviewed-by: Graham Bloice <graham.bloice@trihedral.com>
Tested-by: Graham Bloice <graham.bloice@trihedral.com>
Don't build the G.722 or G.726 codecs for now. Each are wrapped in
"#ifdef HAVE_SPANDSP", which we don't define.
Conditionally compile the SBC codec.
Change-Id: I5f09ff66514f967d4f0611c943b4e6a975b8994b
Reviewed-on: https://code.wireshark.org/review/5690
Reviewed-by: Gerald Combs <gerald@wireshark.org>
(Using sed : sed -i '/^\# \$Id\$/,+1 d') (start with dash)
Change-Id: Ia4b5a6c2302f6a531f6a86c1ec3a2f8205c8c2dd
Reviewed-on: https://code.wireshark.org/review/881
Reviewed-by: Anders Broman <a.broman58@gmail.com>
On Unix case is relevant, so fix it.
Please try to avoid filenames starting with Upper case, it
makes completion so much easier as I only need to remember the
name and not the case.
svn path=/trunk/; revision=53689
This may break easy_codec plugins, but it appears a better/more consistent way is needed to register codecs. See Guy's comments in bug 7893 (https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7893)
svn path=/trunk/; revision=53686
Codecs are added, but (intentionally) not hooked to the RTP player as a "more generic architecture" is desired. There are some discussions in bug 7893 on how to do this. One thing to add would be how to handle codecs that may not be supported on all platforms. Should the codec not be "registered" at all (with a #define over the whole module) or should it's register functions be stubbed (with a #define in each function that requires a non-supported library)
svn path=/trunk/; revision=53676
I try to configure Wireshark with cmake on macosx 10.6.
It fails with : set_target_properties called with incorrect number of arguments.
Attached a patch to fix this issue.
svn path=/trunk/; revision=34201
- Add checking for linker flags
- Install plugins with the name including the Wireshark version.
This will make it easier to find matching plugin versions if
files get just copied over.
svn path=/trunk/; revision=32231