1. 25 May, 2020 2 commits
  2. 20 May, 2020 5 commits
  3. 19 May, 2020 3 commits
  4. 18 May, 2020 1 commit
    • Edward Hervey's avatar
      gstbin: Remove mentions of duration caching · 7f068512
      Edward Hervey authored
      This was effectively disabled in 1.0 with the intent of maybe re-enabling it.
      
      The problem is that caching duration at a bin level doesn't make much sense
      since there might be queueing/buffering taking place internally and therefore
      the duration reported might have no correlation to what is actually being
      outputted.
      
      Remove commented code and fixmes, and update documentation
      
      Fixes #4
      
      Part-of: <!489>
      7f068512
  5. 15 May, 2020 5 commits
  6. 14 May, 2020 5 commits
  7. 13 May, 2020 2 commits
  8. 12 May, 2020 1 commit
  9. 10 May, 2020 2 commits
  10. 08 May, 2020 7 commits
  11. 06 May, 2020 7 commits
    • Jan Schmidt's avatar
      tests/input selector: Fix a shutdown crash · e329e1f7
      Jan Schmidt authored
      Hold a ref to the pad we're planning on sending EOS too, so that
      it doesn't disappear if things shut down before the thread gets
      to actually send the EOS event.
      
      Part-of: <!467>
      e329e1f7
    • Thibault Saunier's avatar
      identity: Handle seeking with single_segment=True · cb212c9f
      Thibault Saunier authored
      Identity was ignoring seek and flush events even when using
      a single segment. In the end it means that we couldn't compute
      buffers running-time and stream time after seeks.
      
      This commits adds support for flushing seeks only as I have no idea
      what to do for non flushing ones.
      
      Part-of: <!450>
      cb212c9f
    • Thibault Saunier's avatar
      identity,clocksync: Fix timestamping inside single segment in reverse playback · b517b591
      Thibault Saunier authored
      In reverse playback, buffers are played back from buffer.stop
      (buffer.pts + buffer.duration) to buffer.pts running times which
      mean that we need to use the buffer end running time as a buffer
      timestsamp, not the buffer pts when using a single segment in reverse
      playback.
      
      This is now being tested in
      `validate.test.identity.reverse_single_segment`
      
      Part-of: <!450>
      b517b591
    • Thibault Saunier's avatar
      basesink: Fix clock synchronization running time in reverse playback · 39b9cc55
      Thibault Saunier authored
      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
      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
    • Tim-Philipp Müller's avatar
      pkgconfig: add pluginscannerdir variable · dc1a1e52
      Tim-Philipp Müller authored
      So we can get this in a unified way from installed
      and uninstalled GStreamer when using pkg-config to
      set up test environments in other modules.
      
      See gst-plugins-base!582
      
      Part-of: <!456>
      dc1a1e52
    • Edward Hervey's avatar
      taglist: Make equality check more uniform · 81752169
      Edward Hervey authored
      Previously this was iterating over taglists with ... string names.
      
      Instead use the same technique as `gst_structure_is_equal()` with the additional
      double check.
      
      Part-of: <!466>
      81752169