1. 10 Apr, 2019 2 commits
  2. 09 Apr, 2019 6 commits
    • Tim-Philipp Müller's avatar
      rtpulpfecdec,enc: unbreak plugin gtk-doc build in autotools · c6c3bed0
      Tim-Philipp Müller authored
      Fix doc chunks to not use that syntax for links that have the
      url as description, it will be put verbatim into the xml/*.xml
      file and then the expat parser will throw a syntax error like:
      
        File "../../common/mangle-db.py", line 71, in <module>
          main()
        File "../../common/mangle-db.py", line 69, in main
          patch (details.replace("-details", ""), os.path.basename(details))
        File "../../common/mangle-db.py", line 20, in patch
          doc = xml.dom.minidom.parse(related)
        File "/usr/lib/python2.7/xml/dom/minidom.py", line 1918, in parse
          return expatbuilder.parse(file)
        File "/usr/lib/python2.7/xml/dom/expatbuilder.py", line 924, in parse
          result = builder.parseFile(fp)
        File "/usr/lib/python2.7/xml/dom/expatbuilder.py", line 207, in parseFile
          parser.Parse(buffer, 0)
      xml.parsers.expat.ExpatError: not well-formed (invalid token): line 84, column 7
      c6c3bed0
    • Antonio Ospite's avatar
      rtpvrawpay: preserve GST_BUFFER_FLAG_DISCONT on the first outputted buffer · 61c1385c
      Antonio Ospite authored
      If the incoming frame buffer has GST_BUFFER_FLAG_DISCONT set this should
      be preserved and set for the first output buffer too, like other
      payloaders do.
      
      Spotted with gst-validate-1.0 when adding integration tests for
      rtpsession, a minimal test to reproduce the issue is:
      
      $ gst-validate-1.0 videotestsrc num-buffers=1 ! rtpvrawpay ! identity ! fakesink
      Starting pipeline
      Pipeline started
         warning : Buffer didn't have expected DISCONT flag333 speed: 1.000000 />
                   Detected on <identity0:sink>
                   Detected on <identity0:src>
                   Detected on <fakesink0:sink>
                   Description : Buffers after SEGMENT and FLUSH must have a DISCONT flag
      
      Issues found: 1
      
      =======> Test PASSED (Return value: 0)
      61c1385c
    • Olivier Crête's avatar
      92138dc3
    • Olivier Crête's avatar
      rtpred*: Add example pipelines · 1bd81d3d
      Olivier Crête authored
      1bd81d3d
    • Olivier Crête's avatar
      rtpulpfec*: Improve documentation · 11f30181
      Olivier Crête authored
      11f30181
    • Olivier Crête's avatar
      rtpstorage + rtpulpfecdec: Get the storage using a query as fallback · 070eacdd
      Olivier Crête authored
      This allows it to be used using gst-launch for easier testing.
      070eacdd
  3. 08 Apr, 2019 1 commit
    • Dan Kegel's avatar
      osxvideo: fix mac os 10.14 build · dfe1f6d8
      Dan Kegel authored
      lockFocusIfCanDraw is deprecated in mac os 10.14.  Apple suggests a
      different way to do what that does, but for now, just suppress the deprecation.
      
      There's no way to disable just that deprecation, so shut them all down.
      
      OpenGL is also deprecated in mac os 10.14.  There is a gentle way to
      turn off just those deprecations (GL_SILENCE_DEPRECATION), but since
      this commit turns them all off, that's moot.
      
      #577
      dfe1f6d8
  4. 07 Apr, 2019 1 commit
  5. 05 Apr, 2019 15 commits
    • Nicolas Dufresne's avatar
      rtpsession: Allow overriding NACK packet creation · ec06268e
      Nicolas Dufresne authored
      This introduce a new signal on RTSession, on-sending-nacks is emited
      right before the list of seqnums to be nacked are processed and
      transformed into FB Nack. This allow implementing custom nacks
      handling through another mechanism with APP feedback.
      ec06268e
    • Mathieu Duponchelle's avatar
      rtpsession: Add disable-sr-timestamp property · 280d86a8
      Mathieu Duponchelle authored
      The Onvif Streaming Spec, in section 6.11, mandates that when
      Rate-Control is disabled potential RTCP packets shall have
      their timestamps set to 0.
      
      <https://www.onvif.org/specs/stream/ONVIF-Streaming-Spec.pdf>
      280d86a8
    • Philipp Zabel's avatar
      v4l2: remove __user define from types-compat.h · 603c7a52
      Philipp Zabel authored
      Remove the now unused __user define.
      603c7a52
    • Philipp Zabel's avatar
      v4l2object: use opRGB colorspace and xfer func defines · 40db843e
      Philipp Zabel authored
      AdobeRGB defines have been renamed to opRGB in the kernel headers,
      use the new names.
      40db843e
    • Philipp Zabel's avatar
      v4l2videodec: support orphaning · e2ff8773
      Philipp Zabel authored
      Recent kernels allow REQBUFS(0) on a queue that still has buffers in
      use (mmapped or exported via dmabuf), orphaning all buffers on the queue.
      If this is supported, the v4l2videodec element does not have to send a
      drain request downstream.
      e2ff8773
    • Philipp Zabel's avatar
      v4l2bufferpool: support orphaning · dfc20013
      Philipp Zabel authored
      Now that the v4l2allocator allows orphaning the V4L2 buffer queue, add
      support for orphaning in the v4l2bufferpool. gst_v4l2_buffer_pool_orphan
      can be used as a replacement for gst_v4l2_buffer_pool_stop, without
      having to wait for buffers to be returned to the pool.
      dfc20013
    • Philipp Zabel's avatar
      v4l2allocator: support orphaning · 0948ce04
      Philipp Zabel authored
      Recent kernels allow REQBUFS(0) on a queue that still has buffers in
      use (mmapped or exported via dmabuf), orphaning all buffers on the queue.
      
      Orphaning the allocator causes it to release all buffers with
      REQBUFS(0), even if they are still in use. An orphaned allocator can
      only be stopped. It can not be restarted or create new buffers.
      0948ce04
    • Philipp Zabel's avatar
      v4l2: update kernel headers to latest from media tree · 5d904530
      Philipp Zabel authored
      Update to the latest installed headers (output of make headers_install)
      from the media tree, keeping the slight modifications to the includes.
      
      This includes new HEVC controls, the AdobeRGB -> opRGB rename, a new
      capabilities field for v4l2_requestbuffers and v4l2_create_buffers, new
      32-bit YUV formats, and request_fd changes.
      5d904530
    • Nicolas Dufresne's avatar
      shout2: Fix leak on error in start · bac8c00b
      Nicolas Dufresne authored
      bac8c00b
    • Nicolas Dufresne's avatar
      test: rtpsession: Test FB Nack packing · 464ada3f
      Nicolas Dufresne authored
      We used to split the NACK if a smaller seqnum of a range of seqnum was
      submited. This test also make sure that the three operations (append,
      prepend, update) works properly.
      464ada3f
    • Nicolas Dufresne's avatar
      test: rtpsession: Test handling of NACK surplus · a3156971
      Nicolas Dufresne authored
      This test verify that NACKs that didn't fit in one packet are properly
      filtered and inserted into the following pipeline.
      a3156971
    • Nicolas Dufresne's avatar
      rtpsession: Send as many nack seqnum as possible · 6bb53e75
      Nicolas Dufresne authored
      In order to do that, we now split the nacks registration from the actual
      FB nack packet construction. We then try and add as many FB Nacks as
      possible into the active packets and leave the remaining seqnums in the
      RTPSource. In order to avoid sending outdated NACK later on, we save the
      seqnum calculated deadline and cleanup the outdated seqnums before the
      next RTCP send.
      
      Fixes #583
      6bb53e75
    • John Bassett's avatar
      rtpsession: Fix race when sending PLI, FIR and NACK packets · 74a74bfc
      John Bassett authored
      Calling rtp_session_send_rtcp before marking the source as requiring a
      pli/fir/nack meant the rtcp_thread could be scheduled and start running
      before the source was updated. This meant the request would not be sent
      early but instead was transmitted with the next regular RTCP packet.
      
      Add test for nack generation.
      74a74bfc
    • Nicolas Dufresne's avatar
      rtpsession: Fix early rtcp time comparision · 6b50d142
      Nicolas Dufresne authored
      If the current time is equal to the early rtcp time deadline, there is
      no need to schedule a timer. This ensure that immediate feedback is
      really immediate and simplify implementing unit tests with the test
      clock, which stops perfectly on the timeout time.
      
      This fix has been extracted from Pexip feature patch called
        "rtpsession: Allow instant transmission of RTCP packets"
      6b50d142
    • Guillaume Desmottes's avatar
      v4l2src: preserve features when fixating caps · e3c4b807
      Guillaume Desmottes authored
      The caps features were lost when sorting caps structures in
      gst_v4l2src_fixate(). This was breaking alternate as
      GST_CAPS_FEATURE_FORMAT_INTERLACED was removed from the caps.
      e3c4b807
  6. 04 Apr, 2019 1 commit
  7. 03 Apr, 2019 3 commits
  8. 02 Apr, 2019 4 commits
    • Antonio Ospite's avatar
      rtpsession: fix comment to refer to buffers instead of groups · 114de8cc
      Antonio Ospite authored
      One comments in gst_rtp_session_chain_send_rtp_common() is referring to
      groups in a buffer list, however this concept of "group" comes from
      GStreamer 0.10 and does not exist anymore in GStreamer 1.0, so update the
      comment to refer to buffers instead.
      114de8cc
    • Antonio Ospite's avatar
    • Antonio Ospite's avatar
      test: rtpbin_buffer_list: add test to verify that stats are correct · 6f12f1ce
      Antonio Ospite authored
      Add a test to verify that stats about sent and received packets are
      correct even when using buffer lists.
      
      NOTE: the newly introduced get_session_source_stats() selects the
      desired source (sender or receiver) by filtering them by type (using the
      get_sender parameter) rather than by ssrc because this simplifies the
      code and it's good enough for testing purposes as there is usually one
      source per type in the test setup.
      
      Filtering by ssrc would have required handling asynchronous signals like
      "on-new-sender-ssrc", with the relative locking, just to retrieve the
      actual ssrc of the sender.
      6f12f1ce
    • Antonio Ospite's avatar
      rtpsource: fix stats about received packets · 0fae88b5
      Antonio Ospite authored
      The update_receiver_stats() function is called also when sending packets
      in rtp_source_send_rtp(), and sending packets may happen using a buffer
      list rather than individual buffers.
      
      So update the stats using the actual number of packets sent.
      
      NOTE: this is fine for the receive path too (rtp_process_send_rtp)
      because the receive path does not support buffer lists and
      pinfo->packets would always be equal to 1 in this case.
      0fae88b5
  9. 01 Apr, 2019 7 commits