diff options
author | Jirka Novak <j.novak@netsystem.cz> | 2021-04-13 16:38:13 +0200 |
---|---|---|
committer | Wireshark GitLab Utility <gerald+gitlab-utility@wireshark.org> | 2021-04-14 14:02:58 +0000 |
commit | c7f56462490eb287a4152fb086dc8ae4ef8fcd11 (patch) | |
tree | bcb417998a807bb87209d2af263765707c380ffe /ui/qt/rtp_audio_stream.cpp | |
parent | 38d279326a7b48aab44edfc58348758663b4d2ba (diff) |
VoIP dialogs: Performance improvements
Retap and UI response are much faster when many RTP streams are
processed. RTP Streams/Analyse 1000+, RTP Player 500+.
Changes:
- RTP streams are searched with hash, not by iterating over list.
- UI operations do not redraw screen after every change, just after all
changes. UI is locked when rereading packets.
- Sample list during RTP decoding is stored in memory so wireshark uses
just half of opened files for audio decoding than before.
- Analysis window checkbox area is limited in height
- Dialogs shows shows count of streams, count of selected streams and
count of unmuted streams
- Documentation extended with chapter about RTP decoding parameters
- Documentation extended with performance estimates
Diffstat (limited to 'ui/qt/rtp_audio_stream.cpp')
-rw-r--r-- | ui/qt/rtp_audio_stream.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/ui/qt/rtp_audio_stream.cpp b/ui/qt/rtp_audio_stream.cpp index 5fc8d1c9f5..41a848ed1d 100644 --- a/ui/qt/rtp_audio_stream.cpp +++ b/ui/qt/rtp_audio_stream.cpp @@ -36,6 +36,7 @@ #include <QVariant> #include <QTimer> #include <QDebug> +#include <QBuffer> // To do: // - Only allow one rtpstream_info_t per RtpAudioStream? @@ -80,7 +81,7 @@ RtpAudioStream::RtpAudioStream(QObject *parent, rtpstream_info_t *rtpstream, boo qWarning() << "Can't create temp file in " << tempname; throw -1; } - sample_file_frame_ = new QTemporaryFile(tempname, this); + sample_file_frame_ = new QBuffer(this); if (! sample_file_frame_->open(QIODevice::ReadWrite)) { // We are out of file resources delete sample_file_; @@ -179,7 +180,7 @@ void RtpAudioStream::reset(double global_start_time) if (!sample_file_->open(QIODevice::ReadWrite)) { qWarning() << "Can't create temp file in " << tempname << " during retap"; } - sample_file_frame_ = new QTemporaryFile(tempname, this); + sample_file_frame_ = new QBuffer(this); if (!sample_file_frame_->open(QIODevice::ReadWrite)) { qWarning() << "Can't create temp file in " << tempname << " during retap"; } |