summaryrefslogtreecommitdiff
path: root/ui/gtk/rtp_player.c
AgeCommit message (Collapse)AuthorFilesLines
2017-04-08Clean up handling of enabled/disabled protocols/heuristic dissectors.Guy Harris1-1/+1
Add a "report a warning message" routine to the "report_err" code in libwsutil, and rename files and routines appropriately, as they don't only handle errors any more. Have a routine read_enabled_and_disabled_protos() that reads all the files that enable or disable protocols or heuristic dissectors, enables and disables them based on the contents of those files, and reports errors itself (as warnings) using the new "report a warning message" routine. Fix that error reporting to report separately on the disabled protocols, enabled protocols, and heuristic dissectors files. Have a routine to set up the enabled and disabled protocols and heuristic dissectors from the command-line arguments, so it's done the same way in all programs. If we try to enable or disable an unknown heuristic dissector via a command-line argument, report an error. Update a bunch of comments. Update the name of disabled_protos_cleanup(), as it cleans up information for disabled *and* enabled protocols and for heuristic dissectors. Support the command-line flags to enable and disable protocols and heuristic dissectors in tfshark. Change-Id: I9b8bd29947cccdf6dc34a0540b5509ef941391df Reviewed-on: https://code.wireshark.org/review/20966 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2016-12-06codecs: Add support for G.722 and G.726Peter Wu1-1/+7
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>
2016-10-22Fix some errors from the previous commit.Guy Harris1-1/+1
Pro tip: if you're modifying GTK+ code, make sure you explicitly configure to build the GTK+ version. Change-Id: Ia24321a5037dff67d9acf1444fa0b74f5aed089e Reviewed-on: https://code.wireshark.org/review/18371 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2016-10-22More checks for localtime() and gmtime() returning NULL.Guy Harris1-2/+8
And some comments in the case where we're converting the result of time() - if your machine's idea of time predates January 1, 1970, 00:00:00 UTC, it'll crash on Windows, but that's not a case where a *file* can cause the problem due either to a bad file time stamp or bad time stamps in the file. Change-Id: I837a438e4b875dd8c4f3ec2137df7a16ee4e9498 Reviewed-on: https://code.wireshark.org/review/18369 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2016-07-24Pacify GTK checkAPIs.pl warnings.Michael Mann1-3/+3
Add "Wireshark" macros to old-gtk-compat.h for GTK APIs that have been deprecated. The macros are setup by version number to limit their proliferation (not that I suspect much development will really be done there since GTK is deprecated). Just want to make buildbots happy for the time being. Change-Id: I095f850065166a0bc2e2456fb2e886ab64fdd97d Reviewed-on: https://code.wireshark.org/review/16635 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Balint Reczey <balint@balintreczey.hu> Reviewed-by: Michael Mann <mmann78@netscape.net>
2016-06-23RTP player: increase the maximum number of silence frames to 30 minutes worth.Jeff Morriss1-1/+0
The BadAlloc X11 crash I reported in bug 4119 (which is why the limit was as low as it was) has long since been fixed thanks to bug 2630/I71e1bd2f9a62792db06ce887e2bbe7a96d110e0a so we can now deal with more silence frames. Change-Id: I0127381e71e497560e0f23af04f9d96af1ed6335 Ping-Bug: 5902 Ping-Bug: 4119 Ping-Bug: 2270 Reviewed-on: https://code.wireshark.org/review/16003 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2016-03-24rtp_player: fix build with gtk < 2.22.0Stefan Völkel1-2/+2
RTP stream structs have been consolidated (see I2b3f8f2051394a6a98a5c7bc49c117f07161d031), but gtk versions < 2.22.0 seem to have been forgotten. Bug: 12277 Change-Id: Iab2d2d0eab52ad0586581abe4df9f97d451ad454 Reviewed-on: https://code.wireshark.org/review/14588 Reviewed-by: Jeff Morriss <jeff.morriss.ws@gmail.com>
2016-02-26Add free_address_wmem(), fix warnings [-Wcast-qual]João Valverde1-2/+2
Try to improve address API and also fix some constness warnings by not overloading the 'data' pointer to store malloc'ed buffers (use private pointer for that instead). Second try, now passing test suite. Change-Id: Idc101cd866b6d4f13500c9d59da5c7a38847fb7f Reviewed-on: https://code.wireshark.org/review/13946 Petri-Dish: João Valverde <j@v6e.pt> Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: João Valverde <j@v6e.pt>
2016-02-08Revert "Add free_address_wmem() and other extensions to address API"João Valverde1-2/+2
This reverts commit 13ec77a9fc3af3b0b502820d0b55796c89997896. This commit introduces a segmentation fault for Lua code (uncovered by the test suite). Change-Id: Ibc273d1915cda9632697b9f138f0ae104d3fb65e Reviewed-on: https://code.wireshark.org/review/13813 Reviewed-by: João Valverde <j@v6e.pt>
2016-02-07Add free_address_wmem() and other extensions to address APIJoão Valverde1-2/+2
Try to improve 'address' API (to be easier/safer) and also avoid some constness warnings by not overloading the 'data' pointer to store malloc'ed buffers (use private pointer for that instead). Change-Id: I7456516b12c67620ceadac447907c12f5905bd49 Reviewed-on: https://code.wireshark.org/review/13463 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>
2016-01-17Fix build [-Werror=maybe-uninitialized]João Valverde1-1/+1
Found building with GCC 5.3.0 and CFLAGS="-g -Og". Change-Id: I5bc29b6e91cc98332a513c9d03b02d2f6906608d Reviewed-on: https://code.wireshark.org/review/13362 Reviewed-by: João Valverde <j@v6e.pt> Petri-Dish: João Valverde <j@v6e.pt> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
2015-11-29Make address_to_display() use proper (non-)constnessJoão Valverde1-4/+4
Don't return allocated memory as a const pointer. Fixes multiple [-Wcast-qual] warnings. Change-Id: Ie9ceac27fa2a5eba41a5392ac983ff28c3939239 Reviewed-on: https://code.wireshark.org/review/12267 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2015-10-26Only store frame number and not a pointer to frame_data structure in ↵Pascal Quantin1-1/+1
seq_analysis_item_t Qt GUI allows to keep windows open after closing the capture file. Let's not access to freed memory. Bug: 11573 Change-Id: I9e70d818a4b228af319961ec512b6b9725792477 Reviewed-on: https://code.wireshark.org/review/11270 Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Gerald Combs <gerald@wireshark.org>
2015-10-22Use address functions instead of ADDRESS macros in ui.Gerald Combs1-2/+2
Replace CMP_ADDRESS, COPY_ADDRESS, et al with their lower-case equivalents in the ui directory. Change-Id: I10e95e66c8da5b880133452ebc484c53046e87ba Reviewed-on: https://code.wireshark.org/review/11199 Reviewed-by: Michael Mann <mmann78@netscape.net>
2015-10-02Qt: Initial RTP playback.Gerald Combs1-1/+6
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-09-19Start moving RTP decoding routines to the ui directory.Gerald Combs1-89/+8
Move decode_rtp_packet to ui/rtp_media.[ch]. Change-Id: Ib138781c37ac17b807bf75f9d772351aadf72071 Reviewed-on: https://code.wireshark.org/review/10575 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-09-09codecs/gtk: fix int to size_tDario Lombardo1-14/+18
Change-Id: I8f467f09375c8227c4b70aef47ff3a590a0c00d7 Reviewed-on: https://code.wireshark.org/review/10413 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-07-13RTP updates.Gerald Combs1-1/+1
Merge rtp_sample_header_t into rtp_sample_t. That's the only place it was used. Note that rtp_sample_t is used for writing rtpdump files. Move the rtp_sample_t definition to tap-rtp-common.c. Rename it to rtpdump_info_t. Make rtp_write_sample static. Change-Id: I04e7428f634efa87a98e5d6c82a354f94ab1765d Reviewed-on: https://code.wireshark.org/review/9629 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-07-13GTK: Don't crash when we click on an RTP sample.Gerald Combs1-2/+2
This doesn't fix any of the underlying problems discussed in bug 10613 but it does keep us from dereferencing a NULL pointer. Change-Id: I9317366a6ae6e563dcadb32bccee87e8803c37e3 Ping-Bug: 10613. Reviewed-on: https://code.wireshark.org/review/9626 Reviewed-by: Gerald Combs <gerald@wireshark.org>
2015-03-02RTP player: don't crash when drawing channel graphs for very long calls.Jeff Morriss1-2/+26
X11 can't handle pixmaps more than 32k pixels wide so don't try to feed it one. This avoids crashes with the complaint "BadAlloc (insufficient resources for operation)". Instead we simply truncate the graph (and tell the user). Do this in a way that shows the user the empty portion of the graph. Hopefully the Qt port can fix this properly. Note: the bug report says that MacOS is not affected but it should be. So apply this fix for all on-Windows systems. Bug: 2630 Change-Id: I71e1bd2f9a62792db06ce887e2bbe7a96d110e0a Reviewed-on: https://code.wireshark.org/review/7464 Petri-Dish: Jeff Morriss <jeff.morriss.ws@gmail.com> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2015-02-09Fix use-after free in RTP playerPeter Wu1-0/+1
Clicking "Decode" in the RTP player triggered an ASAN heap-use-after-free in update_progress_bar(). Explicitly set progress_bar to NULL to prevent this. Change-Id: Ice3105a11642a1cc5a54b8fbdf7dbf0ed430d965 Ping-Bug: 10714 Reviewed-on: https://code.wireshark.org/review/6999 Reviewed-by: Anders Broman <a.broman58@gmail.com>
2015-01-05Replace ep_display_to_address with wmem equivalent display_to_address.Michael Mann1-9/+18
Almost all instances require using "manual" memory management, but it gets some ep_ calls out of the GUI. Change-Id: Ifa7303766b08d09442ccf3d7063cbe061578ecd9 Reviewed-on: https://code.wireshark.org/review/6318 Reviewed-by: Michael Mann <mmann78@netscape.net>
2014-12-28Removed duplicated #include linesDario Lombardo1-1/+0
Change-Id: I9cafa3cd5c74121168777d8c656e7e94e89efd3c Reviewed-on: https://code.wireshark.org/review/6065 Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com> Reviewed-by: Martin Mathieson <martin.r.mathieson@googlemail.com> Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
2014-12-20Consolidate RTP stream structs.Gerald Combs1-102/+69
Consolidate the three different RTP stream structs in ui/rtp_stream.h, ui/gtk/rtp_player.c, and ui/voip_calls.c into one. Make the member names a bit more consistent. Document what each GList contains. Use nstime_t for timestamps since that's what we get from the frame data. Use g_new0 to initialize our structs. Change-Id: I2b3f8f2051394a6a98a5c7bc49c117f07161d031 Reviewed-on: https://code.wireshark.org/review/5843 Petri-Dish: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Gerald Combs <gerald@wireshark.org>
2014-11-18voip_calls: Move to ui.Gerald Combs1-1/+1
Move voip_calls.[ch] to ui. Add callbacks to voip_calls_tapinfo_t. Remove unused function definitions. Change-Id: Ib12db7053d53afa81ef2a66dc0cfe681bc624dd2 Reviewed-on: https://code.wireshark.org/review/5379 Reviewed-by: Gerald Combs <gerald@wireshark.org>
2014-08-24Hack to fix RTP player progress line positionPeter Wu1-5/+52
PortAudio seems to return 0 as value for Pa_GetStreamTime() on a PulseAudio system using the ALSA host API. This is known for 3 years, but still has not been fixed. As this function basically gives us a monotonically increasing clock in seconds as double, just use the Glib library function for that. I don't know whether this adds much latency, but it is certainly better than breaking the progress line (and also the related auto-scroll). While at it, split the idx calculation and explain what each part does and add modelines. Remove invalid _U_ annotations. [1]: http://music.columbia.edu/pipermail/portaudio/2011-June/012452.html Bug: 10307 Change-Id: I67fff531e0577add4b9b76052e286fb3fd5d01ff Reviewed-on: https://code.wireshark.org/review/3260 Petri-Dish: Evan Huus <eapache@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Evan Huus <eapache@gmail.com>
2014-07-22Makes the RTP Player graphs work with GTK3Patrice Fournier1-0/+19
Change-Id: I91c689eb3a35f02f8fa4de64fb6e3337d42c9190 Partial-bug: 9891 Reviewed-on: https://code.wireshark.org/review/3090 Reviewed-by: Balint Reczey <balint@balintreczey.hu> Tested-by: Balint Reczey <balint@balintreczey.hu>
2014-07-08Fix Dereference of null pointer found by Clang analyzerAlexis La Goutte1-2/+3
Change-Id: I050c187acdb4c97bb164cefee67f65b69d7e6782 Reviewed-on: https://code.wireshark.org/review/2914 Reviewed-by: Evan Huus <eapache@gmail.com>
2014-06-27Use GQueue for generating statisticsBalint Reczey1-2/+2
This makes reversing the list back and forth to keep adding data at O(n) complexity obsolete. Bug: 9696 Change-Id: Ice77328b8f6c5bf72bbfcfd82e08d09d4f986d3f Reviewed-on: https://code.wireshark.org/review/2571 Reviewed-by: Balint Reczey <balint@balintreczey.hu> Tested-by: Balint Reczey <balint@balintreczey.hu>
2014-04-19Some routine name changes.Guy Harris1-8/+8
"get_addr_name()" -> "ep_address_to_display()", to 1) indicate that it returns a string with ephemeral scope and 2) indicate that it maps an address to a "displayable" form - a name if possible, an address string if not. "se_get_addr_name()" -> "get_addr_name()", to indicate that its strings have the same scope as "get_ether_name()", "get_hostname()", and "get_hostname6()". Change-Id: If2ab776395c7a4a163fef031d92b7757b5d23838 Reviewed-on: https://code.wireshark.org/review/1216 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-03-11Migrate GTK icon handling to GTK 3.10 APIBalint Reczey1-5/+5
GtkStockItem usage is deprecated with all the GTK_STOCK_.* stock ids. We keep a stock id based approach but without relying on GTK's GtkStockItem system. We create our own internal stock ids for {icon, label} tuples and keep the original GTK stock id #define-s and values to preserve backward compatibility. Change-Id: Ia0b35a5903f079e92c8026e3df21bbf0be2d06b0 Reviewed-on: https://code.wireshark.org/review/302 Reviewed-by: Gerald Combs <gerald@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-03-04Remove all $Id$ from top of fileAlexis La Goutte1-2/+0
(Using sed : sed -i '/^ \* \$Id\$/,+1 d') Fix manually some typo (in export_object_dicom.c and crc16-plain.c) Change-Id: I4c1ae68d1c4afeace8cb195b53c715cf9e1227a8 Reviewed-on: https://code.wireshark.org/review/497 Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-02-12RTP: Add support for SBC codec in RTP PlayerMichal Labedzki1-98/+82
Add optional dependancy to libsbc to play Bluetooth SBC in A2DP payload. Also simplify RTP Player and extent codec interface. Change-Id: I52e1fce9c82e2885736354fe73c6c37168a4fda3 Reviewed-on: https://code.wireshark.org/review/19 Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com> Reviewed-by: Evan Huus <eapache@gmail.com>
2013-12-23From Ville Skyttä: Spelling FixesBill Meier1-1/+1
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9591 svn path=/trunk/; revision=54387
2013-12-02Move most of the plugin code from epan to wsutil and remove allGuy Harris1-1/+2
knowledge of particular types of plugins. Instead, let particular types of plugins register with the common plugin code, giving a name and a routine to recognize that type of plugin. In particular applications, only process the relevant plugin types. Add a Makefile.common to the codecs directory. svn path=/trunk/; revision=53710
2013-12-01Move codecs.[ch] out of epan and into codecs directory.Michael Mann1-1/+1
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
2013-10-24Initial and woefully incomplete flow graph support.Gerald Combs1-2/+2
Copy common code from ui/gtk/flow_graph.c and ui/gtk/graph_analysis.[ch] to ui/tap-sequence-analysis.[ch]. Start using the name "sequence" in places. svn path=/trunk/; revision=52824
2013-07-21Update rtp_player for rel_ts move.Evan Huus1-2/+2
svn path=/trunk/; revision=50776
2013-05-15Remove an unused variable.Gerald Combs1-1/+0
svn path=/trunk/; revision=49318
2013-05-15Merge some of the changes to rtp player from ↵Anders Broman1-44/+43
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7893 by hand. svn path=/trunk/; revision=49316
2013-05-13Eliminate some includes of ui/simple_dialog.h by files that don't useGuy Harris1-1/+0
anything from it. svn path=/trunk/; revision=49277
2013-03-29Rename value string (and similar) functions to use a consistent pattern. ThisEvan Huus1-1/+1
was done using textual search+replace, not anything syntax-aware, so presumably it got most comments as well (except where there were typos). Use a consistent coding style, and make proper use of the WS_DLL_* defines. Group the functions appropriately in the header. I ended up getting rid of most of the explanatory comments since many of them duplicated what was in the value_string.c file (and were out of sync with the recent updates I made to those in r48633). Presumably most of the comments should be in the .h file not the .c file, but there's enough churn ahead that it's not worth fixing yet. Part of https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8467 svn path=/trunk/; revision=48634
2013-03-21[-Wmissing-prototypes]Anders Broman1-25/+25
Use explicit casts. svn path=/trunk/; revision=48457
2013-03-04Fix a minor typo in SVN #48065Bill Meier1-1/+1
svn path=/trunk/; revision=48067
2013-03-04Fir Gtk 3.8 & newer: gtk_scrolled_window_add_with_viewport() ==> ↵Bill Meier1-1/+5
gtk_container_add(). svn path=/trunk/; revision=48065
2013-02-26Fix spelling/typos found using a list of commonly misspelled words.Bill Meier1-5/+5
The misspellings were mostly in comments but some were in text strings visible to the user. svn path=/trunk/; revision=47899
2013-02-15Fix Voice RTP player crash if player is closed while playingMichael Mann1-11/+15
Bug 8065 (https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8065) svn path=/trunk/; revision=47674
2013-01-06Use GdkRGBA colors directly in the arrayAnders Broman1-46/+57
svn path=/trunk/; revision=46974
2013-01-04Use gdk_cairo_set_source_rgbaAnders Broman1-18/+24
svn path=/trunk/; revision=46940
2013-01-02Fix a GTK3 issue:Bill Meier1-1/+1
Use gtk_box_pack_start() instead of gtk_container_add(). svn path=/trunk/; revision=46904