1. 02 Aug, 2021 1 commit
  2. 03 Mar, 2021 1 commit
    • Qi Hou's avatar
      v4l2videodec: Do not expose profiles/levels in vp8/vp9 template caps · fc5a1e46
      Qi Hou authored and GStreamer Marge Bot's avatar GStreamer Marge Bot committed
      Vp8/vp9 supported profiles/levels are listed in decoder sink caps, but
      there is no parser for these two formats and the demuxers also don't have
      these information. It causes negotiation fail between demuxers and decoder
      when check caps "accept = gst_caps_is_subset (caps, template_caps);".
      To fix this, need to remove profiles/levels for vp8/vp9 formats in decoder
      sink caps.
      
      Fix #854
      
      Part-of: <!887>
      fc5a1e46
  3. 24 Feb, 2021 1 commit
    • Philipp Zabel's avatar
      v4l2videodec: fix src side frame rate negotiation · e885e0e1
      Philipp Zabel authored and Philipp Zabel's avatar Philipp Zabel committed
      Negotiating v4l2h264dec ! v4l2h264enc transcoding pipelines fails in
      case the encoder does not accept framerate=(fraction)0/1.
      The acquired caps used for downstream negotiation are determined from
      gst_v4l2_object_acquire_format(), which sets the GstVideoInfo::fps_n
      and ::fps_d fields to 0.
      To fix this, copy the frame rate from the sink side.
      
      Part-of: <!882>
      e885e0e1
  4. 19 Oct, 2020 2 commits
  5. 11 Aug, 2020 1 commit
    • Víctor Manuel Jáquez Leal's avatar
      v4l2: use GstV4l2Error in gst_v4l2_open() · 078560e7
      Víctor Manuel Jáquez Leal authored and GStreamer Marge Bot's avatar GStreamer Marge Bot committed
      gst_v4l2_open() is called by gst_v4l2_device_provider_probe_device(),
      where the GstV4l2Object is created without an associated GstElement.
      
      If gst_v4l2_open() fails, it raises a bus message, but without an
      element, a precondition check fails on
      gst_element_message_full_with_details() generating a crash if running
      with fatal-warnings debug mode.
      
      GstV4l2Error is a helper to raise error bus messages when it is
      appropiated. This patch changes the direct bus messages to this
      helper, and the elements will actually send the error message.
      
      Part-of: <!694>
      078560e7
  6. 03 Jul, 2020 1 commit
  7. 11 Jun, 2020 1 commit
  8. 22 May, 2020 1 commit
  9. 15 Apr, 2020 1 commit
  10. 29 Oct, 2019 1 commit
    • James Cowgill's avatar
      v4l2videodec: ensure pool exists before orphaning it · 51b83d5c
      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.
      51b83d5c
  11. 11 Oct, 2019 1 commit
  12. 05 Oct, 2019 1 commit
  13. 27 Sep, 2019 1 commit
  14. 09 Jul, 2019 1 commit
  15. 24 Jun, 2019 1 commit
  16. 05 Jun, 2019 1 commit
    • Philippe Normand's avatar
      v4l2: Profile and level probing support for encoders and decoders · 6ce195e9
      Philippe Normand authored
      There used to be some profile/level support in encoders. This code was moved to
      GstV4l2Codecs and is now also used for decoders. The caps templates for the
      H.264, H.265, MPEG4, VP8 and VP9 encoders and decoders should now reflect the
      profiles and levels advertised by the kernel.
      6ce195e9
  17. 16 Apr, 2019 1 commit
  18. 05 Apr, 2019 1 commit
    • Philipp Zabel's avatar
      v4l2videodec: support orphaning · e2ff8773
      Philipp Zabel authored and Nicolas Dufresne's avatar Nicolas Dufresne committed
      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
  19. 18 Mar, 2019 1 commit
  20. 26 Feb, 2019 1 commit
  21. 14 Sep, 2018 4 commits
  22. 09 Jul, 2018 1 commit
  23. 27 Jun, 2018 1 commit
    • Michael Tretter's avatar
      v4l2videodec: do not call streamon while pool is flushing · 35ab185d
      Michael Tretter authored and Nicolas Dufresne's avatar Nicolas Dufresne committed
      gst_v4l2_buffer_pool_flush() executes streamoff for the output, but
      streamoff->streamon for the capture of the decoder.
      gst_v4l2_buffer_pool_streamon() on capture assumes that is able to
      resurrect the buffers from the pool, but acquiring buffers fails if the
      buffer pool is still flushing.
      
      The decoder needs to stop flushing the pools before calling
      gst_v4l2_buffer_pool_flush() to restart the v4l2 device. Otherwise
      starting the decoding thread might fail, because there are no buffers in
      the capture pool.
      
      This fixes a regression that was introduced in 97985a33
      ("v4l2videodec: Add dynamic resolution change support").
      
      https://bugzilla.gnome.org/show_bug.cgi?id=796681
      35ab185d
  24. 12 May, 2018 1 commit
  25. 26 Apr, 2018 1 commit
  26. 12 Jan, 2018 2 commits
  27. 08 Jan, 2018 1 commit
  28. 13 Dec, 2017 1 commit
    • Nicolas Dufresne's avatar
      v4l2object: Use a debug object for tracing · e575e4ed
      Nicolas Dufresne authored
      This way we can pass the pad name instead of the element for tracing
      which helps identifying which v4l2object is used withing M2M element
      like decoder, encoder and transform. For the reference, pads are name
      <parent-name>:<pad-name>.
      e575e4ed
  29. 06 Dec, 2017 1 commit
    • Philipp Zabel's avatar
      v4l2videodec: Handle drivers that only round up height · 5e05cadb
      Philipp Zabel authored and Nicolas Dufresne's avatar Nicolas Dufresne committed
      Commit 1f31715c ("v4l2videodec: use visible size, not coded size,
      for downstream negotiation filter") added support for removing the
      padding obtained as the difference between width/height from G_FMT and
      visible width/height from G_SELECTION from the probed caps obtained
      via TRY_FMT.
      This patch fixes the padding removal for drivers that only round up
      height, but not width, to the padded frame size. This might happen
      because horizontal padding can be handled by line stride (bytesperline),
      but there is no such thing as plane stride in the V4L2 API for
      single-buffer planar formats.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=791271
      5e05cadb
  30. 07 Oct, 2017 1 commit
  31. 19 Sep, 2017 2 commits
  32. 02 Aug, 2017 1 commit
    • Nicolas Dufresne's avatar
      v4l2: Enable VP9 format · 0e9fe263
      Nicolas Dufresne authored
      This was missing, preventing the encoder and decoder to work
      properly. This also adds support for camera that would produce
      VP9 (if that exists).
      0e9fe263
  33. 27 Jul, 2017 1 commit
  34. 24 Jul, 2017 1 commit
    • Nicolas Dufresne's avatar
      v4l2: Add run-time environment to enable libv4l2 · 31d8a1d9
      Nicolas Dufresne authored
      The library has started preventing a lot of interesting use cases,
      like CREATE_BUFS, DMABuf, usage of TRY_FMT. As the libv4l2 is totally
      inactive and not maintained, we decided to disable it. As a convenience
      we added a run-time environment that let you enable it for testing.
      
        GST_V4L2_USE_LIBV4L2=1
      
      This of course only works if you have enabled libv4l2 at build time.
      31d8a1d9