Huge thanks to our Platinum Members Endace and LiveAction,
and our Silver Member Veeam, for supporting the Wireshark Foundation and project.

Wireshark-commits: [Wireshark-commits] master f5e22a1: codecs: Add support for G.722 and G.726

From: Wireshark code review <code-review-do-not-reply@xxxxxxxxxxxxx>
Date: Tue, 6 Dec 2016 17:52:22 +0000 (UTC)
URL: https://code.wireshark.org/review/gitweb?p=wireshark.git;a=commit;h=f5e22a14877922aa7b907d2e434958c86efd6875
Submitter: Peter Wu (peter@xxxxxxxxxxxxx)
Changed: branch: master
Repository: wireshark

Commits:

f5e22a1 by Peter Wu (peter@xxxxxxxxxxxxx):

    codecs: Add support for G.722 and G.726
    
    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@xxxxxxxxxxxxx>
    Tested-by: Petri Dish Buildbot <buildbot-no-reply@xxxxxxxxxxxxx>
    Reviewed-by: Alexis La Goutte <alexis.lagoutte@xxxxxxxxx>
    Reviewed-by: Peter Wu <peter@xxxxxxxxxxxxx>
    

Actions performed:

    from  d8cdb55   Autotools: Disable Qt4 on macOS.
    adds  f5e22a1   codecs: Add support for G.722 and G.726


Summary of changes:
 CMakeLists.txt                        |   15 ++++++
 CMakeOptions.txt                      |    1 +
 cmake/modules/FindSPANDSP.cmake       |   55 +++++++++++++++++++++
 cmakeconfig.h.in                      |    3 ++
 codecs/CMakeLists.txt                 |    9 ++--
 codecs/G722/G722decode.c              |   55 ++++++++++++++-------
 codecs/G722/G722decode.h              |   10 ++--
 codecs/G726/G726decode.c              |   86 +++++++++++++++++++++++----------
 codecs/G726/G726decode.h              |   19 +++++---
 codecs/Makefile.am                    |   10 ++--
 codecs/codecs.c                       |   21 +++++++-
 configure.ac                          |   22 +++++++++
 debian/control                        |    2 +-
 docbook/release-notes.asciidoc        |    1 +
 packaging/nsis/CMakeLists.txt         |    2 +-
 packaging/rpm/SPECS/wireshark.spec.in |   11 +++++
 packaging/wix/CMakeLists.txt          |    4 +-
 tools/debian-setup.sh                 |    2 +-
 tools/win-setup.ps1                   |    7 ++-
 ui/gtk/rtp_player.c                   |    8 ++-
 ui/qt/rtp_audio_stream.cpp            |   10 +++-
 ui/qt/rtp_player_dialog.cpp           |    2 +-
 22 files changed, 282 insertions(+), 73 deletions(-)
 create mode 100644 cmake/modules/FindSPANDSP.cmake