1. 28 Nov, 2019 1 commit
  2. 18 Nov, 2019 1 commit
    • Vivia Nikolaidou's avatar
      baseparse: Make sure PTS >= DTS · fa831247
      Vivia Nikolaidou authored
      If, for example, we are accumulating rounding errors from the buffer
      duration when calculating the PTS/DTS, it can happen that the buffer
      thinks it should be presented before it's decoded. In that case we just
      clamp the DTS.
      fa831247
  3. 03 Nov, 2019 1 commit
  4. 13 Oct, 2019 1 commit
  5. 06 Oct, 2019 1 commit
  6. 11 Sep, 2019 1 commit
    • Sebastiano Barrera's avatar
      base: GstBaseSrc/GstBaseSink::get_caps: add (nullable) to `filter` · 89dfda56
      Sebastiano Barrera authored
      The virtual method named `get_caps` in both `GstBaseSrc` and
      `GstBaseSink` has a `filter` parameter which can be `NULL` (the
      default implementation in GstBaseSrc already considers the case).
      Before this commit, there was no gtk-doc annotation representing this
      fact, which caused the corresponding entry in the GIR file to also
      miss this fact.
      
      This caused bugs in other places, such inducing the Vala compiler to
      introduce a wrongly assert on `(filter != NULL)` in every
      implementation of the `get_caps` method implemented in Vala.
      89dfda56
  7. 09 Sep, 2019 1 commit
    • Niels De Graef's avatar
      Don't pass default GLib marshallers for signals · 4812c408
      Niels De Graef authored
      By passing NULL to `g_signal_new` instead of a marshaller, GLib will
      actually internally optimize the signal (if the marshaller is available
      in GLib itself) by also setting the valist marshaller. This makes the
      signal emission a bit more performant than the regular marshalling,
      which still needs to box into `GValue` and call libffi in case of a
      generic marshaller.
      
      Note that for custom marshallers, one would use
      `g_signal_set_va_marshaller()` with the valist marshaller instead.
      4812c408
  8. 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
      74797e96
  9. 14 Aug, 2019 3 commits
  10. 13 Aug, 2019 2 commits
  11. 19 Jul, 2019 2 commits
  12. 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 '%'.
      09909d37
  13. 01 Jul, 2019 1 commit
  14. 20 Jun, 2019 1 commit
  15. 11 Jun, 2019 2 commits
    • Mathieu Duponchelle's avatar
      aggregator: don't try to take STREAM_LOCK on sink pad flush · 6d166150
      Mathieu Duponchelle authored
      This was a misguided effort to try and guarantee the buffers of
      the sink pads would not change during aggregate, when an upstream
      branch is seeked independently, however this is simply incorrect
      as downstream has not necessarily been flushed, or the aggregate
      function might be waiting to receive buffers on other pads.
      6d166150
    • Mathieu Duponchelle's avatar
      aggregator: send flush_stop ourselves if needed · 4087361d
      Mathieu Duponchelle authored
      In !159 , we switched to sending flush_start ourselves from the
      do_seek implementation. If no flushing seek successfully made its
      way upstream, we need to send flush_stop ourselves as well.
      4087361d
  16. 10 Jun, 2019 2 commits
    • Mathieu Duponchelle's avatar
      aggregator: don't hold stream lock when flushing · c55c61eb
      Mathieu Duponchelle authored
      Releasing a GRecMutex from a different thread is undefined
      behaviour.
      
      There should be no reason to hold the stream lock from the
      moment aggregator receives a flush_start until it receives
      the last flush_stop: the source pad task is stopped, and can
      only be restarted once the last flush_stop has arrived.
      
      I can only speculate as to the reason why this was done,
      as it was that way since the original commit. My best
      guess is that aggregator originally didn't marshall events
      and queries to the aggregate thread, and this somehow
      helped work around this.
      c55c61eb
    • Mathieu Duponchelle's avatar
      aggregator: refactor flushing logic · 25383eaa
      Mathieu Duponchelle authored
      Instead of tracking "pending_flush_*" on the pads and the
      aggregator, we now simply track the last seqnum for flush start
      and flush stop events on the pads, and use it to determine whether
      we should enter or exit our flushing state.
      
      See gst-plugins-bad#977
      25383eaa
  17. 04 Jun, 2019 1 commit
    • Niels De Graef's avatar
      Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally · 09141c6e
      Niels De Graef authored
      Since we started depending on GLib 2.44, we can be sure this macro is
      defined (it will be a no-op on compilers that don't support it). For
      plugins we should just start using `G_DECLARE_FINAL_TYPE` which means
      we no longer need the macro there, but for most types in core we don't
      want to break ABI, which means it's better to just keep it like it is
      (and use the `#ifdef` instead).
      09141c6e
  18. 25 May, 2019 2 commits
  19. 16 May, 2019 2 commits
  20. 13 May, 2019 2 commits
    • Thibault Saunier's avatar
      doc: Fix hotdoc warnings · 949fba4b
      Thibault Saunier authored
      * Making sure that `static inline` function are in the GIR (by first
        defining them, and make sure to mark as skiped)
      * Do not try to link to unexisting symbols
      * Also generate GIR information about gst_tracers
      949fba4b
    • Thibault Saunier's avatar
      Port to hotdoc · a0c65067
      Thibault Saunier authored
      a0c65067
  21. 09 May, 2019 1 commit
  22. 08 May, 2019 1 commit
  23. 23 Apr, 2019 5 commits
  24. 18 Apr, 2019 1 commit
    • Olivier Crête's avatar
      basesrc: Downgrade EOS warning · 61f2d9b0
      Olivier Crête authored
      In the case of pushfilesrc, this is the expected behaviour, so let's
      downgrade the warning to a debug message to avoid confusing users.
      61f2d9b0
  25. 16 Apr, 2019 1 commit
  26. 05 Apr, 2019 2 commits