Commit Graph

10 Commits

Author SHA1 Message Date
Gerald Combs 2ccb9d2d95 Add jitter logic to RtpAudioStream.
Copy the jitter logic from rtp_player.c to rtp_audio_stream.cpp. This
still isn't correct but the RTP player should now be complete enough to
start looking at the bug list at the top of rtp_player_dialog.cpp.

Disable timing and jitter controls while we're playing while we're here.
Fixes bug 11635.

Bug: 11635
Change-Id: Ie583ade522702cbe1bbcea4475a535caa1d74fa2
Reviewed-on: https://code.wireshark.org/review/11295
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2015-10-27 18:00:32 +00:00
Guy Harris 4ce9655658 Don't use the non-existent decoded data if decode_rtp_packet() returns 0.
Just skip that packet.  Otherwise, it crashes.

Fix file name in the introductory comment while we're at it.

Change-Id: I286f4303a4ec152c0d00c5135395c1608bf2121a
Reviewed-on: https://code.wireshark.org/review/11279
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-10-26 10:13:43 +00:00
Gerald Combs b7de996684 RtpAudioStream: Add a cast.
Change-Id: I45d353ad900dee062775408f12d58ebb43793219
Reviewed-on: https://code.wireshark.org/review/11203
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2015-10-21 21:28:15 +00:00
Gerald Combs 8682eb49ef Split RTP player tapping, decoding, and plotting.
In RtpAudioStream split tapping+decoding into separate member functions.
Store RTP payloads in memory. In RtpPlayerDialog split tapping+plotting.
This more closely resembles what we're doing in the GTK+ UI and paves
the way for jitter support and other changes.

Change-Id: I244c225cec8930545622e6582b7be35ebe45b237
Reviewed-on: https://code.wireshark.org/review/11195
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2015-10-21 17:52:15 +00:00
Dario Lombardo f6d61ebfe8 qt: add missing initializers (CID 1325722)
Change-Id: Ie1ed72fe2efe31db1ce5b73ac6e659ba305f4001
Reviewed-on: https://code.wireshark.org/review/10961
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
2015-10-13 02:55:20 +00:00
Peter Wu 89b227f44e qt: fix crash when dragging RTP player out of view
Fix invalid memory access when dragging the RTP player out of view when
a stream is selected. lowerBound() returns QMap.end() when no item is
found, use that instead.

Found using ASAN.

Change-Id: I5444a047bc242dfe481bd0581c5217030fca28f1
Reviewed-on: https://code.wireshark.org/review/10778
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2015-10-04 18:44:34 +00:00
Gerald Combs 8d3b97cc90 Use QVector::size instead of ::length.
Qt < 5.2 doesn't have ::length.

Change-Id: Ie6a06034c5e2ea8ddc1f9e1131a682ff9442fb75
Reviewed-on: https://code.wireshark.org/review/10754
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2015-10-02 21:19:34 +00:00
Gerald Combs 4d10e817b5 Distcheck fixes.
Add more speex files to the distribution.

Comment out a for-now-unused variable.

Change-Id: Iea3a0fad81e2cb599209e1c30ecbdbdb153d1328
Reviewed-on: https://code.wireshark.org/review/10749
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2015-10-02 19:38:39 +00:00
Guy Harris c11fea54a5 Get rid of unused variable.
Change-Id: Ife7f0c972ed67ef4f89c71faf6bc9cdccf007284
Reviewed-on: https://code.wireshark.org/review/10747
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-10-02 19:24:27 +00:00
Gerald Combs 3687d39304 Qt: Initial RTP playback.
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>
2015-10-02 18:26:05 +00:00