1. 20 Aug, 2019 1 commit
  2. 19 Aug, 2019 1 commit
    • Sebastian Dröge's avatar
      aggregator: Always handle serialized events/queries directly before waiting · 74797e96
      Sebastian Dröge authored
      Otherwise it can happen that we start waiting for another pad, while one
      pad already has events that can be handled and potentially also a buffer
      that can be handled. That buffer would then however not be accessible by
      the subclass from GstAggregator::get_next_time() as there would be the
      events in front of it, which doesn't allow the subclass then to
      calculate the next time based on already available buffers.
      As a side-effect this also allows removing the duplicated event handling
      code in the aggregate function as we'll always report pads as not ready
      when there is a serialized event or query at the top of at least one
      pad's queue.
      Fixes #428
  3. 15 Aug, 2019 1 commit
  4. 14 Aug, 2019 3 commits
  5. 13 Aug, 2019 3 commits
  6. 12 Aug, 2019 1 commit
  7. 09 Aug, 2019 1 commit
  8. 07 Aug, 2019 1 commit
  9. 06 Aug, 2019 3 commits
  10. 05 Aug, 2019 1 commit
    • Doug Nazar's avatar
      info: Fix deadlock in gst_ring_buffer_logger_log · 7b596ba6
      Doug Nazar authored
      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.
  11. 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.
  12. 22 Jul, 2019 1 commit
    • Alicia Boya García's avatar
      downloadbuffer: Check for flush after seek · b50abd9f
      Alicia Boya García authored
      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.
  13. 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).
  14. 19 Jul, 2019 2 commits
  15. 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.
  16. 11 Jul, 2019 1 commit
  17. 09 Jul, 2019 1 commit
    • Sebastian Dröge's avatar
      aggregator: Make parsing of explicit sink pad names more robust · 09909d37
      Sebastian Dröge authored
      When passing "sink_%d" twice to aggregator before it would create two
      pads called "sink_0", because it failed to parse "%d" as integer and
      used 0 instead then.
      Instead validate that parsing was actually successful and also don't
      even try to parse if the requested pad name contains a '%'.
  18. 08 Jul, 2019 2 commits
  19. 07 Jul, 2019 1 commit
  20. 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
      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.
  21. 01 Jul, 2019 2 commits