1. 21 Oct, 2020 3 commits
  2. 20 Oct, 2020 1 commit
  3. 13 Oct, 2020 1 commit
    • Mathieu Duponchelle's avatar
      gstvalue: don't write to const char * · e846ef22
      Mathieu Duponchelle authored
      Our various deserializing functions require NULL terminators
      to not over consume substrings (eg fields of an array). Instead
      of writing a NULL terminator to the passed-in string, which may
      result in segfaults, make a copy of the substring we're interested
      in.
      
      Fixes #446
      
      Part-of: <!674>
      e846ef22
  4. 12 Oct, 2020 1 commit
    • Matthew Waters's avatar
      build: use cpu_family for arch checks · fa2f8530
      Matthew Waters authored
      e.g. on 32-bit arm, we may have armv6, armv7l, armv7hf, etc which all
      generally have the same layouts.  cpu_family() groups all of these into
      just 'arm' that the ABI check table is expecting.
      
      Part-of: <!671>
      fa2f8530
  5. 26 Sep, 2020 1 commit
    • Mathieu Duponchelle's avatar
      gst-launch: go back down to GST_STATE_NULL in one step. · 90e9bf14
      Mathieu Duponchelle authored
      Going through each state on the way back down to GST_STATE_NULL
      can cause deadlocks, for example:
      
      gst-launch-1.0 audiotestsrc ! valve drop=true ! autoaudiosink
      
      ctrl + C
      
      Hangs forever when going to PAUSED, because the "final" state is
      ASYNC, and the sink blocks waiting for a preroll buffer.
      
      Going straight to NULL addresses this issue, and also helps
      making teardown faster when piping sparse streams to a
      sync sink.
      
      Part-of: <!519>
      90e9bf14
  6. 25 Sep, 2020 3 commits
  7. 24 Sep, 2020 7 commits
  8. 21 Sep, 2020 4 commits
  9. 20 Sep, 2020 4 commits
    • Seungha Yang's avatar
      gst-inspect: Use gst_info_strdup_vprintf to print string · 6b8bb822
      Seungha Yang authored
      g_vprintf() will write a string binary to stdout directly using fwrite().
      So, depending on character in the string, fwrite to stdout can
      print broken one but printf family might not cause the issue.
      
      Part-of: <!637>
      6b8bb822
    • Edward Hervey's avatar
      queue2: Avoid races when posting buffering messages · b935ac66
      Edward Hervey authored
      When posting a buffering message succesfully:
      * Remember the *actual* percentage value that was posted
      * Make sure we only reset the percent_changed variable if the value we just
        posted is indeed different from the current value
      
      Part-of: <!632>
      b935ac66
    • Mathieu Duponchelle's avatar
      queue2: don't post unnecessary buffering message, refine locking · fa8ea664
      Mathieu Duponchelle authored
      This is a follow up to review comments in !297
      
      + The posting of the buffering message in READY_TO_PAUSED isn't
        needed, removing it made the test fail, but the correct fix
        was simply to link elements together
      
      + Move code to relock the queue and set last_posted_buffering_percent
        and percent_changed inside the buffering_post_lock in create_write().
        This makes locking consistent with post_buffering()
      
      Part-of: <!297>
      fa8ea664
    • Carlos Rafael Giani's avatar
      queue2: Fix missing/dropped buffering messages at startup · f66959c2
      Carlos Rafael Giani authored
      This fixes a bug that occurs when an attempt is made to post a buffering
      message before the queue2 was assigned a bus. One common situation where
      this happens is when the use-buffering property is set to TRUE before the
      queue2 was added to a bin.
      
      If the result of gst_element_post_message() is not checked, and the
      aforementioned situation occurs, then last_posted_buffering_percent and
      percent_changed will still be updated, as if posting the message succeeded.
      Later attempts to post again will not do anything because the code then
      assumes that a message with the same percentage was previously posted
      successfully and posting again is redundant.
      
      Updating these variables only if posting succeed and explicitely
      posting a buffering message in the READY->PAUSED state change ensure that
      a buffering message is posted as early as possible.
      
      Part-of: <!297>
      f66959c2
  10. 07 Jun, 2020 2 commits
  11. 06 Jun, 2020 2 commits
    • Jan Schmidt's avatar
      baseparse: Fix upstream read caching · 177d0fa1
      Jan Schmidt authored
      When running in pull mode (for e.g. mp3 reading),
      baseparse currently reads 64KB from upstream, then mp3parse
      consumes typically around 417/418 bytes of it. Then
      on the next loop, it will read a full fresh 64KB again,
      which is a big waste.
      
      Fix the read loop to use the available cache buffer first
      before going for more data, until the cache drops to < 1KB.
      
      Fixes #518
      177d0fa1
    • Jan Schmidt's avatar
      baseparse: Fix typo · 0f91868e
      Jan Schmidt authored
      0f91868e
  12. 04 Jun, 2020 2 commits
  13. 14 Mar, 2020 1 commit
  14. 13 Mar, 2020 2 commits
  15. 26 Feb, 2020 1 commit
  16. 15 Feb, 2020 2 commits
  17. 14 Feb, 2020 1 commit
    • Sebastian Dröge's avatar
      bus: Make setting/replacing/clearing the sync handler thread-safe · a1c0ca3a
      Sebastian Dröge authored
      Previously we would use the object lock only for storing the sync
      handler and its user_data in a local variable, then unlock it and only
      then call the sync handler. Between unlocking and calling the sync
      handler it might be unset and the user_data be freed, causing it to be
      called with a freed pointer.
      
      To prevent this add a refcounting wrapper struct around the sync
      handler, hold the object lock while retrieving it and increasing the
      reference count and only actually free it once the reference count
      reaches zero.
      
      As a side-effect we can now also allow to actually replace the sync
      handler. Previously it was only allowed to clear it after initially
      setting it according to the docs, but the code still allowed to clear it
      and then set a different one.
      
      Fixes #506
      a1c0ca3a
  18. 05 Feb, 2020 1 commit
  19. 09 Jan, 2020 1 commit