1. 07 Jun, 2020 1 commit
    • Jennifer Berringer's avatar
      flacparse: fix broken reordering of flac metadata · 07e0e8ff
      Jennifer Berringer authored
      Each FLAC metadata block starts with a flag denoting whether it is the
      last metadata block. The existing flacparse code moves any existing
      VORBISCOMMENT block to immediately follow the STREAMINFO block without
      changing any block's last-metadata-block flag. If no VORBISCOMMENT block
      exists, it created one with the last-metadata-block flag set to true.
      This results in gstflacdec sometimes giving bad headers to libflac when
      trying to play perfectly valid FLAC files depending on the file's
      metadata ordering. Depending on the contents of the other metadata
      blocks, current versions of libflac may or may not return
      FLAC__STREAM_DECODER_ERROR_STATUS_BAD_HEADER when given this broken
      metadata. This is most noticeable with files that have a large cover art
      image attached where VORBISCOMMENT is the very last metadata block with
      no PADDING afterwards.
      
      This patch changes that behavior so that:
      
      1. For FLAC files that already have a VORBISCOMMENT block, the metadata
         order is preserved.
      2. For FLAC files that do not have a VORBISCOMMENT block, the generated
         dummy VORBISCOMMENT is placed immediately after STREAMINFO and
         inherits the last-metadata-block flag from STREAMINFO.
      
      #484
      07e0e8ff
  2. 06 Jun, 2020 1 commit
    • Nicolas Pernas Maradei's avatar
      rtpsession: rename RTCP thread · c53fd4ea
      Nicolas Pernas Maradei authored
      RTP session starts a new thread for RTCP and names it
      "rtpsession-rtcp-thread" which happens to be longer than the maximum 16B
      allowed by pthread_setname_np and causes the naming to fail.
      See docs for more details.
      
      This commit simply shortens the thread's name so it can actually be set.
      c53fd4ea
  3. 13 Mar, 2020 3 commits
  4. 10 Feb, 2020 1 commit
    • Alexander Lapajne's avatar
      rtspsrc: Fix for segmentation fault when handling set/get_parameter requests · d73cda4f
      Alexander Lapajne authored
      gstrtspsrc uses a queue, set_get_param_q, to store set param and get
      param requests. The requests are put on the queue by calling
      get_parameters() and set_parameter(). A thread which executs in
      gst_rtspsrc_thread() then pops requests from the queue and processes
      them. The crash occured because the queue became empty and a NULL
      request object was then used. The reason that the queue became empty
      is that it was popped even when the thread was NOT processing a get
      parameter or set parameter command. The fix is to make sure that the
      queue is ONLY popped when the command being processed is a set
      parameter or get parameter command.
      d73cda4f
  5. 08 Feb, 2020 2 commits
  6. 04 Feb, 2020 2 commits
  7. 14 Jan, 2020 1 commit
  8. 07 Jan, 2020 1 commit
  9. 06 Dec, 2019 2 commits
  10. 03 Dec, 2019 3 commits
  11. 02 Dec, 2019 1 commit
  12. 29 Nov, 2019 2 commits
  13. 20 Nov, 2019 3 commits
    • Amr Mahdi's avatar
      wavparse: Fix push mode ignoring audio with a size smaller than segment buffer · fe014ec6
      Amr Mahdi authored
      In push mode (streaming), if the audio size is smaller than segment buffer size, it would be ignored.
      This happens because when the plugin receives an EOS signal while a single audio chunk that is less than the segment buffer size is buffered, it does not
      flush this chunk. The fix is to flush the data chunk when it receives an EOS signal and has a single (first) chunk buffered.
      
      How to reproduce:
      1. Run gst-launch with tcp source
      ```
      gst-launch-1.0  tcpserversrc port=3000 !  wavparse ignore-length=0 ! audioconvert ! filesink location=bug.wav
      ```
      2. Send a wav file with unspecified data chunk length (0). Attached a test file
      ```
      cat test.wav | nc localhost 3000
      ```
      3. Compare the length of the source file and output file
      ```
      ls -l test.wav bug.wav
      -rw-rw-r-- 1 amr amr    0 Aug 15 11:07 bug.wav
      -rwxrwxr-x 1 amr amr 3564 Aug 15 11:06 test.wav
      ```
      
      The expected length of the result of the gst-lauch pipeline should be the same as the test file minus the headers (44), which is ```3564 - 44 = 3520``` but the actual output length is ```0```
      
      After the fix:
      ```
      ls -l test.wav fix.wav
      -rw-rw-r-- 1 amr amr 3520 Aug 15 11:09 fix.wav
      -rwxrwxr-x 1 amr amr 3564 Aug 15 11:06 test.wav
      ```
      fe014ec6
    • Amr Mahdi's avatar
      wavparse: Fix ignoring of last chunk in push mode · 9f50cd49
      Amr Mahdi authored
      In push mode (streaming), if the last audio payload chunk is less than the segment rate buffer size, it would be ignored since the plugin waits until it has at least segment rate bufer size of audio.
      
      The fix is to introduce a flushing flag that indicates that no more audio will be available so that the plugin can recognize this condition and flush the data is has even if it is less
      than the desired segment rate buffer size.
      9f50cd49
    • Nicolas Dufresne's avatar
      v4l2bufferpool: Queue number of allocated buffers to capture · fba94862
      Nicolas Dufresne authored
      Before we do streamon, we queue all capture buffers by calling
      resurrect. When the driver supports CREATE_BUFS, this would lead
      to buffers being allocated till the maximum of 32 is reached.
      
      Instead, we now save the number of allocated buffers and queue this
      amount.
      fba94862
  14. 19 Nov, 2019 1 commit
  15. 18 Nov, 2019 2 commits
  16. 14 Nov, 2019 1 commit
  17. 11 Nov, 2019 1 commit
  18. 10 Nov, 2019 1 commit
    • Michael Olbrich's avatar
      jpegdec: don't overwrite the last valid line · 54c1aa8d
      Michael Olbrich authored
      If the the height is not a multiple of the macro block size then the memory
      of the last line is reused for all extra lines. This is no problem if the
      last line is duplicated properly. However, if the extra lines are not
      initialized properly during encoding, then the last visible line is
      overwritten with undefined data.
      Use a extra buffer to avoid this problem.
      54c1aa8d
  19. 29 Oct, 2019 1 commit
    • James Cowgill's avatar
      v4l2videodec: ensure pool exists before orphaning it · 061ea441
      James Cowgill authored
      In commit e2ff8773 ("v4l2videodec: support orphaning") support for
      orphaning the capture buffer pool was added when the format is
      renegotiated. However, the commit forgot to check that a pool existed
      before doing this. This is needed because it's possible for the format
      to be renegotiated before a capture pool is allocated, which would
      result in trying to orphan a NULL pool and lead to a NULL pointer
      dereference.
      
      Fix this by checking a pool exists first. If the pool doesn't exist,
      there are no buffers to be reclaimed, so skip the allocation query in
      that case.
      061ea441
  20. 17 Oct, 2019 1 commit
  21. 13 Oct, 2019 2 commits
  22. 23 Sep, 2019 3 commits
  23. 10 Sep, 2019 1 commit
    • Doug Nazar's avatar
      alpha: Fix one_over_kc calculation · 1c6e3daa
      Doug Nazar authored
      On arm/aarch64, converting from float directly to unsigned int uses
      a different opcode and negative numbers result in 0. Cast to
      signed int first.
      1c6e3daa
  24. 24 Aug, 2019 2 commits
  25. 21 Aug, 2019 1 commit