1. 28 Jan, 2021 1 commit
  2. 11 Dec, 2020 1 commit
  3. 04 Dec, 2020 1 commit
  4. 05 Nov, 2020 1 commit
  5. 30 Oct, 2020 1 commit
  6. 29 Oct, 2020 1 commit
    • Nicolas Dufresne's avatar
      aggregator: Include min-upstream-latency in buffering time · c983df16
      Nicolas Dufresne authored and Tim-Philipp Müller's avatar Tim-Philipp Müller committed
      While we can fixe the upstream latency using the min-upstream-latency, we
      are now forced to use queues (hence more thread) in order to store the pending
      data whenever we have an upstream source that has lower latency.
      
      This fixes the issue by allowing to buffer the fixed upstream latency. This is
      particularly handy on single core systems were having too many threads can
      cause serious performance issues.
      
      Part-of: <!684>
      c983df16
  7. 14 Oct, 2020 1 commit
  8. 10 Oct, 2020 1 commit
  9. 02 Oct, 2020 2 commits
  10. 01 Oct, 2020 1 commit
    • Sebastian Dröge's avatar
      aggregator: Wake up source pad in PAUSED<->PLAYING transitions · 56d69620
      Sebastian Dröge authored and Tim-Philipp Müller's avatar Tim-Philipp Müller committed
      When going to PLAYING we will now have a clock and can stop waiting on
      the condition variable and instead start waiting on the clock if
      necessary for the current configuration.
      
      In the other direction when going to PAUSED the clock might have
      disappeared and we might need to wait on the condition variable again
      instead.
      
      Part-of: <!653>
      56d69620
  11. 30 Sep, 2020 1 commit
  12. 25 Aug, 2020 1 commit
  13. 24 Aug, 2020 1 commit
  14. 10 Aug, 2020 1 commit
  15. 07 Aug, 2020 1 commit
  16. 05 Aug, 2020 1 commit
  17. 04 Aug, 2020 1 commit
  18. 31 Jul, 2020 1 commit
    • Mathieu Duponchelle's avatar
      aggregator: expose sample selection API · d74efc1a
      Mathieu Duponchelle authored and Sebastian Dröge's avatar Sebastian Dröge committed
      See gst-plugins-base#771
      for context.
      
      This exposes new API that subclasses must call from their
      aggregate() implementation to signal that they have selected
      the next samples they will aggregate: gst_aggregator_selected_samples()
      
      GstAggregator will emit a new signal there, `samples-selected`,
      handlers can then look up samples per pad with the newly-added
      gst_aggregator_peek_next_sample.
      
      In addition, a new FIXME is logged when subclasses haven't actually
      called `selected_samples` from their aggregate() implementation.
      
      Part-of: <!549>
      d74efc1a
  19. 28 Jul, 2020 3 commits
  20. 26 Jul, 2020 1 commit
    • Tim-Philipp Müller's avatar
      check: suppress g-ir-scanner warnings · 58558bb9
      Tim-Philipp Müller authored
      Make g-ir-scanner skip all those check macros that are
      not useful for or usable from bindings.
      
      gstcheck.h:209: Warning: GstCheck: Unknown namespace for symbol 'fail_unless_message_error'
      gstcheck.h:212: Warning: GstCheck: Unknown namespace for symbol 'assert_message_error'
      gstcheck.h:251: Warning: GstCheck: Unknown namespace for symbol 'fail_unless_equals_int'
      gstcheck.h:267: Warning: GstCheck: Unknown namespace for symbol 'assert_equals_int'
      gstcheck.h:280: Warning: GstCheck: Unknown namespace for symbol 'fail_unless_equals_int_hex'
      gstcheck.h:299: Warning: GstCheck: Unknown namespace for symbol 'assert_equals_int_hex'
      gstcheck.h:310: Warning: GstCheck: Unknown namespace for symbol 'fail_unless_equals_int64'
      gstcheck.h:327: Warning: GstCheck: Unknown namespace for symbol 'assert_equals_int64'
      gstcheck.h:340: Warning: GstCheck: Unknown namespace for symbol 'fail_unless_equals_int64_hex'
      gstcheck.h:358: Warning: GstCheck: Unknown namespace for symbol 'assert_equals_int64_hex'
      gstcheck.h:369: Warning: GstCheck: Unknown namespace for symbol 'fail_unless_equals_uint64'
      gstcheck.h:386: Warning: GstCheck: Unknown namespace for symbol 'assert_equals_uint64'
      gstcheck.h:399: Warning: GstCheck: Unknown namespace for symbol 'fail_unless_equals_uint64_hex'
      gstcheck.h:417: Warning: GstCheck: Unknown namespace for symbol 'assert_equals_uint64_hex'
      gstcheck.h:428: Warning: GstCheck: Unknown namespace for symbol 'fail_unless_equals_string'
      gstcheck.h:444: Warning: GstCheck: Unknown namespace for symbol 'assert_equals_string'
      gstcheck.h:455: Warning: GstCheck: Unknown namespace for symbol 'fail_unless_equals_float'
      gstcheck.h:474: Warning: GstCheck: Unknown namespace for symbol 'assert_equals_float'
      gstcheck.h:487: Warning: GstCheck: Unknown namespace for symbol 'fail_unless_equals_pointer'
      gstcheck.h:506: Warning: GstCheck: Unknown namespace for symbol 'assert_equals_pointer'
      gstcheck.h:517: Warning: GstCheck: Unknown namespace for symbol 'fail_unless_equals_clocktime'
      gstcheck.h:534: Warning: GstCheck: Unknown namespace for symbol 'MAIN_START_THREADS'
      gstcheck.h:547: Warning: GstCheck: Unknown namespace for symbol 'MAIN_START_THREAD_FUNCTIONS'
      gstcheck.h:555: Warning: GstCheck: Unknown namespace for symbol 'MAIN_START_THREAD_FUNCTION'
      gstcheck.h:626: Warning: GstCheck: Unknown namespace for symbol 'ASSERT_CRITICAL'
      gstcheck.h:628: Warning: GstCheck: Unknown namespace for symbol 'ASSERT_CRITICAL'
      gstcheck.h:640: Warning: GstCheck: Unknown namespace for symbol 'ASSERT_WARNING'
      gstcheck.h:652: Warning: GstCheck: Unknown namespace for symbol 'ASSERT_OBJECT_REFCOUNT'
      gstcheck.h:661: Warning: GstCheck: Unknown namespace for symbol 'ASSERT_OBJECT_REFCOUNT_BETWEEN'
      gstcheck.h:676: Warning: GstCheck: Unknown namespace for symbol 'ASSERT_CAPS_REFCOUNT'
      gstcheck.h:679: Warning: GstCheck: Unknown namespace for symbol 'ASSERT_BUFFER_REFCOUNT'
      gstcheck.h:682: Warning: GstCheck: Unknown namespace for symbol 'ASSERT_MINI_OBJECT_REFCOUNT'
      gstcheck.h:690: Warning: GstCheck: Unknown namespace for symbol 'ASSERT_SET_STATE'
      gstcheck.h:729: Warning: GstCheck: Unknown namespace for symbol 'tcase_skip_broken_test'
      gstcheck.h:740: Warning: GstCheck: Unknown namespace for symbol 'tcase_skip_broken_loop_test'
      
      Part-of: <!579>
      58558bb9
  21. 23 Jul, 2020 1 commit
  22. 22 Jul, 2020 1 commit
  23. 18 Jul, 2020 1 commit
  24. 10 Jul, 2020 2 commits
  25. 09 Jul, 2020 1 commit
  26. 07 Jul, 2020 1 commit
  27. 03 Jul, 2020 1 commit
  28. 19 Jun, 2020 1 commit
  29. 10 Jun, 2020 1 commit
  30. 04 Jun, 2020 1 commit
  31. 15 May, 2020 2 commits
  32. 14 May, 2020 1 commit
  33. 12 May, 2020 1 commit
  34. 06 May, 2020 2 commits
    • Thibault Saunier's avatar
      basesink: Fix clock synchronization running time in reverse playback · 39b9cc55
      Thibault Saunier authored and GStreamer Marge Bot's avatar GStreamer Marge Bot committed
      In reverse playback, buffers have to be displayed at buffer.stop running
      time, otherwise a same set of buffer can't be displayed in the exact opposite
      order to forward playback.
      
      For example, seeking a video stream at 1fps with start=0, stop=5s, rate=1.0
      
      will display the following buffers:
      
        b0.pts = 0s, b0.duration = 1s - at running time = 0s
        b1.pts = 1s, b1.duration = 1s - at running time = 1s
        b2.pts = 2s, b2.duration = 1s - at running time = 2s
        b3.pts = 3s, b3.duration = 1s - at running time = 3s
        b4.pts = 4s, b4.duration = 1s - at running time = 4s
        <wait at EOS for 1second>
      
      Now, playing that reverse with start=0, stop=5s, rate=1.0 has to display
      the following buffers:
      
        b0.pts = 4s, b0.duration = 1s - at running time = 0s
        b1.pts = 3s, b1.duration = 1s - at running time = 1s
        b2.pts = 2s, b2.duration = 1s - at running time = 2s
        b3.pts = 1s, b3.duration = 1s - at running time = 3s
        b4.pts = 0s, b4.duration = 1s - at running time = 4s
        <wait at EOS for 1second>
      
      With the previous code, it reproduced the following:
      
        b0.pts = 4s, b0.duration = 1s - at running time = 1s
        b1.pts = 3s, b1.duration = 1s - at running time = 2s
        b2.pts = 2s, b2.duration = 1s - at running time = 3s
        b3.pts = 1s, b3.duration = 1s - at running time = 4s
        b4.pts = 0s, b4.duration = 1s - at running time = 5s
        <NO WAIT AT EOS AND POST EOS RIGHT AWAY>
      
      This is being tested with the `validate.launch_pipeline.sink.reverse_playback_clock_waits.*`
      set of tests
      
      Part-of: <!450>
      39b9cc55
    • Thibault Saunier's avatar
      basesrc: Fix the way position is computed in reverse playback · 4a025d77
      Thibault Saunier authored and GStreamer Marge Bot's avatar GStreamer Marge Bot committed
      In reverse playback, buffers are played back from buffer.stop
      (buffer.pts + buffer.duration) to buffer.pts, which means that the
      position after the buffer is consumed is buffer.pts, not buffer.pts -
      buffer.duration.
      
      Without that change, and when `automatic_eos` feature is on,
      we were dropping the last buffers as marking the stream EOS one buffer
      too soon.
      
      This is now being tested extensively by GstValidate in the
      `validate.test.clock_sync.*` set of tests.
      
      Part-of: <!450>
      4a025d77