ANNOUNCEMENT: Live Wireshark University & Allegro Packets online APAC Wireshark Training Session
April 17th, 2024 | 14:30-16:00 SGT (UTC+8) | Online

Wireshark-bugs: [Wireshark-bugs] [Bug 5902] New: RTP Player inserts max 1000 samples of silence

Date: Tue, 10 May 2011 02:42:18 -0700 (PDT)
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5902

           Summary: RTP Player inserts max 1000 samples of silence
           Product: Wireshark
           Version: 1.5.x (Experimental)
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Minor
          Priority: Low
         Component: Wireshark
        AssignedTo: wireshark-bugs@xxxxxxxxxxxxx
        ReportedBy: cenek.zach@xxxxxxxxx


Created an attachment (id=6309)
 --> (https://bugs.wireshark.org/bugzilla/attachment.cgi?id=6309)
file with suppressed silences (respective streams: SSRC: 0x03eb109d,0x3ee322d6)

Build Information:
Version 1.5.1 (SVN Rev 36537 from /trunk)

Copyright 1998-2011 Gerald Combs <gerald@xxxxxxxxxxxxx> and contributors.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Compiled (32-bit) with GTK+ 2.16.6, with GLib 2.24.2, with WinPcap (version
unknown), with libz 1.2.3, without POSIX capabilities, without libpcre, with
SMI
0.4.8, with c-ares 1.7.1, with Lua 5.1, without Python, with GnuTLS 2.10.3,
with
Gcrypt 1.4.6, with MIT Kerberos, with GeoIP, with PortAudio V19-devel (built
Apr
10 2011), with AirPcap.

Running on Windows XP Service Pack 3, build 2600, with WinPcap version 4.1.2
(packet.dll version 4.1.0.2001), based on libpcap version 1.0 branch 1_0_rel0b
(20091008), GnuTLS 2.10.3, Gcrypt 1.4.6, without AirPcap.

Built using Microsoft Visual C++ 9.0 build 21022

--
When RTP Player in wireshark detects missing rtp frames (silence suppressing),
it inserts silence instead.

However because of the bug 4119
(https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=4119) a limit was imposed
to max 1000 samples of silence, which is 0.125s (at sampling rate 8000Hz).

This makes the player unusable when playing telephone calls - when one side is
silent even for a second, the syncronization of streams breaks.

Would it be possible to raise this limit to something more sensible (an hour
maybe - 28800000 samples). I think that an hour of silence should not crash
wireshark and it should provide enough time for normal rtp streams to remain
syncronized.

I've encountered this problem also in stable version (and its possible that it
was backported to old stable as well).

In the trunk source:
src/gtk/rtp_player.c:786,787,814,815     
method: static void decode_rtp_stream(rtp_stream_info_t *rsi, gpointer ptr _U_)

...
if (silence_frames > 1000)
    silence_frames = 1000;
...

(the variable is called silence_frames, but denotes silence samples)

Thanks,
Cenek Zach

PS: Maybe it would be better to limit the max length of the stream itself

PSS: I'm appending a capture file with suppressed silences to test it
with(SSRC: 0x03eb109d - after packet 99,0x3ee322d6 - after packet 361)

-- 
Configure bugmail: https://bugs.wireshark.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.