1. 09 Aug, 2019 1 commit
  2. 07 Aug, 2019 1 commit
  3. 06 Aug, 2019 3 commits
  4. 05 Aug, 2019 1 commit
    • Doug Nazar's avatar
      info: Fix deadlock in gst_ring_buffer_logger_log · 7b596ba6
      Doug Nazar authored and Sebastian Dröge's avatar Sebastian Dröge committed
      gst_ring_buffer_logger_log calls several functions while formatting
      the message which may in turn log a message while we already hold
      the mutex. Do all formatting first before acquiring the mutex to
      avoid this and reduce the time we hold the mutex.
  5. 02 Aug, 2019 1 commit
    • Guillaume Desmottes's avatar
      tracers: set MAY_BE_LEAKED on tracer records · e4cba8a0
      Guillaume Desmottes authored
      The records are static and so appear as false positives when using those
      tracers with the leaks tracer as well.
      The leaks tracer was already setting this flag on its record so let's
      set it on the other ones as well.
  6. 22 Jul, 2019 1 commit
    • Alicia Boya García's avatar
      downloadbuffer: Check for flush after seek · b50abd9f
      Alicia Boya García authored and Sebastian Dröge's avatar Sebastian Dröge committed
      In gst_download_buffer_wait_for_data(), when a seek is made with
      perform_seek_to_offset() the `qlock` is released temporarily. Therefore,
      the flushing condition can be set during this period and should be
      This was not being checked before, causing occasional deadlocks when
      GST_DOWNLOAD_BUFFER_WAIT_ADD_CHECK() assumes that the caller has already
      checked that we're not flushing before, since this is done when
      acquiring the lock; so if we release it temporarily somewhere, we need
      to check for flush again.
      Without that check, the function would keep waiting for the condition
      variable to be notified before checking for flushing condition again,
      and that may very well never happen. This was reproduced when during pad
      deactivation when running WebKit in gdb.
  7. 20 Jul, 2019 1 commit
    • Nicolas Dufresne's avatar
      identity: Non-live upstream have no max latency · 86b9f787
      Nicolas Dufresne authored
      sync=TRUE implementation changes the latency query of a non-live
      upstream into live, though it wrongly set the upstream max latency to 0.
      As non-live sources won't loose data if we wait longer, this should have
      been reported as have no max latency limite (-1).
  8. 19 Jul, 2019 2 commits
  9. 15 Jul, 2019 2 commits
    • Sebastian Dröge's avatar
    • Sebastian Dröge's avatar
      info: Deprecate gst_debug_category_free() · 04a73341
      Sebastian Dröge authored
      And change it to do nothing at all.
      As debug categories don't use reference counting and they can be
      retrieved from anywhere at any time by name, it is fundamentally unsafe
      to free them at any point in time except for right before the end of the
      No code apart from a unit test seems to be currently using the function,
      so deprecate it and also change it to do nothing at all.
  10. 11 Jul, 2019 1 commit
  11. 09 Jul, 2019 1 commit
  12. 08 Jul, 2019 2 commits
  13. 07 Jul, 2019 1 commit
  14. 02 Jul, 2019 10 commits
    • Thibault Saunier's avatar
      multiqueue: Fix possible NULL pointer dereferencing · 7a2d32ab
      Thibault Saunier authored
      In the hotdoc inspector for example, pads are instantiated with
      g_object_new, other code paths to get/set properties already make
      that check.
      And update doc cache
    • Nirbheek Chauhan's avatar
      gstinfo: Fix typo in debug log message · e5a3f12f
      Nirbheek Chauhan authored
    • Tim-Philipp Müller's avatar
      leakstracer: Improve notes in the the get-live-objects API docs · b5dc8598
      Tim-Philipp Müller authored and Nirbheek Chauhan's avatar Nirbheek Chauhan committed
      It may not be obvious to the user how this action signal is meant to
      be called, so document it.
    • Nirbheek Chauhan's avatar
    • Nirbheek Chauhan's avatar
      leakstracer: Add API for tracking and checkpointing objects · 6ccf59ec
      Nirbheek Chauhan authored
      This feature was previously available only through the SIGUSR2 signal,
      which meant it wasn't available on platforms that don't have UNIX
      signals, such as Windows and with applications that already use
      SIGUSR1 for something else.
      Now we have action-signals for doing the same. These action signals
      can also be used for fetching the checkpoint information
      programmatically instead of printing to the debug log.
    • Nirbheek Chauhan's avatar
      tests: Add test for new live-objects leaktracer API · 5524137d
      Nirbheek Chauhan authored
      Needs a valgrind suppression for:
      ==11119== Warning: invalid file descriptor -1 in syscall close()
      ==11119== Warning: invalid file descriptor -1 in syscall close()
      ==11119== Syscall param write(buf) points to uninitialised byte(s)
      ==11119==    at 0x4C4AFAD: syscall (in /usr/lib64/libc-2.29.so)
      ==11119==    by 0x4E70DF9: write_validate (Ginit.c:112)
      ==11119==    by 0x4E70DF9: UnknownInlinedFun (Ginit.c:148)
      ==11119==    by 0x4E70DF9: mincore_validate (Ginit.c:131)
      ==11119==    by 0x4E70CC3: UnknownInlinedFun (Ginit.c:208)
      ==11119==    by 0x4E70CC3: access_mem (Ginit.c:242)
      ==11119==    by 0x4E75536: UnknownInlinedFun (libunwind_i.h:168)
      ==11119==    by 0x4E75536: apply_reg_state (Gparser.c:863)
      ==11119==    by 0x4E75A71: _ULx86_64_dwarf_step (Gparser.c:952)
      ==11119==    by 0x4E71BD3: _ULx86_64_step (Gstep.c:71)
      ==11119==    by 0x48BAF47: generate_unwind_trace (gstinfo.c:2726)
      ==11119==    by 0x48BC92E: gst_debug_get_stack_trace (gstinfo.c:2908)
      ==11119==    by 0x49B2BB2: handle_object_created.part.0 (gstleaks.c:384)
      ==11119==    by 0x488134E: gst_object_constructed (gstobject.c:141)
      ==11119==    by 0x49EC61B: g_object_new_internal (gobject.c:1845)
      ==11119==    by 0x49EE347: g_object_new_valist (gobject.c:2128)
      ==11119==    by 0x49EE69C: g_object_new (gobject.c:1648)
      ==11119==    by 0x48CA59D: gst_pad_new_from_template (gstpad.c:867)
      ==11119==    by 0x68C209E: gst_base_src_init (gstbasesrc.c:454)
      ==11119==    by 0x4A0A0C3: g_type_create_instance (gtype.c:1858)
      ==11119==    by 0x49EC42C: g_object_new_internal (gobject.c:1805)
      ==11119==    by 0x49EDB14: g_object_new_with_properties (gobject.c:1973)
      ==11119==    by 0x49EE6C0: g_object_new (gobject.c:1645)
      ==11119==    by 0x48AF91A: gst_element_factory_create (gstelementfactory.c:372)
      ==11119==  Address 0x1ffeffe000 is on thread 1's stack
      ==11119==  in frame #6, created by generate_unwind_trace (gstinfo.c:2695)
      Fixed in libunwind commit:
      Needs a separate suppression for Debian because the callstack is
      different there.
    • Nirbheek Chauhan's avatar
      leakstracer: Add API for logging leaks in the debug log · 6e3565ca
      Nirbheek Chauhan authored
      This is the equivalent of sending SIGUSR1 to the application, and is
      useful on platforms where UNIX signals are not available, such as
    • Nirbheek Chauhan's avatar
      leakstracer: Add API for fetching leaked objects · 44198ec4
      Nirbheek Chauhan authored
      This allows programs to inspect the leaked objects directly, log them,
      and so on. Unlike the existing mechanism to use SIGUSR1, this also
      works on platforms that do not support UNIX signals, such as Windows
      and with applications that already use SIGUSR1 for something else.
    • Nirbheek Chauhan's avatar
      gsttracer: Add new API to fetch the list of active tracers · 1685f38b
      Nirbheek Chauhan authored
      This will be useful in the next commit where we add action-signals on
      the leaks tracer to get information about leaks and to manipulate
      checkpoints as a replacement for the SIGUSR1 and SIGUSR2 signals for
      doing the same.
    • Nirbheek Chauhan's avatar
      tracers: Allow setting a name for all tracer objects · 5cdf1b7d
      Nirbheek Chauhan authored
      This will be useful in combination with the next commit when we add
      API to get a list of active tracers so that consumers of the API can
      easily distinguish tracer objects.
  15. 01 Jul, 2019 10 commits
  16. 28 Jun, 2019 2 commits
    • Thibault Saunier's avatar
      multiqueue: Hold weak references to pads/multiqueue in SingleQueue · 27fbaf9d
      Thibault Saunier authored
      Without holding a ref we have no guarantees that the SingleQueue
      doesn't have dangling pointers on those objects during its destruction.
    • Nirbheek Chauhan's avatar
      gstplugin: Don't stat plugins when building for UWP · 5f89225b
      Nirbheek Chauhan authored
      When using GStreamer with Universal Windows Platform apps, dynamic
      plugins can only be loaded by filename (without a path) using
      gst_plugin_load_file() which will call into g_module_open().
      On Windows, GModule calls LoadLibrary() on the filename, but with
      UWP we need to use LoadPackagedLibrary() which is basically the same
      as LoadLibrary(), except it looks only for DLLs (by name) that have
      been packaged as assets with the app.
      These assets are not files and cannot be accessed using normal file
      APIs such as open() or stat().
      The upstream glib merge request for adding LoadPackagedLibrary support
      is: https://gitlab.gnome.org/GNOME/glib/merge_requests/951
      NOTE: Whitespcae removal is to make gst-indent happy