1. 05 Apr, 2017 4 commits
  2. 24 Mar, 2017 1 commit
  3. 18 Mar, 2017 1 commit
  4. 14 Mar, 2017 2 commits
  5. 27 Feb, 2017 1 commit
  6. 22 Feb, 2017 1 commit
  7. 21 Feb, 2017 1 commit
  8. 10 Feb, 2017 1 commit
  9. 24 Jan, 2017 1 commit
    • Jean-Christophe Trotin's avatar
      v4l2allocator: reference memory before the buffer is queued · 7f763f27
      Jean-Christophe Trotin authored
      In gst_v4l2_allocator_qbuf(), the memory is referenced after the
      buffer is queued. Once queued (VIDIOC_QBUF), the buffer might be handled
      by the V4L2 driver (e.g. decoded) and dequeued (gst_v4l2_allocator_dqbuf),
      through a different thread, before the memory is referenced (gst_memory_ref).
      In this case, in gst_v4l2_allocator_dqbuf(), the memory is unreferenced
      (gst_memory_unref) before having been referenced: the memory refcount
      reaches 0, and the memory is freed.
      So, to avoid this crossing case, in gst_v4l2_allocator_qbuf(), the
      memory shall be referenced before the buffer is queued.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=777399
      7f763f27
  10. 16 Jan, 2017 3 commits
  11. 09 Jan, 2017 1 commit
  12. 14 Dec, 2016 1 commit
    • Víctor Manuel Jáquez Leal's avatar
      v4l2object: Don't check size in a non-list value · 6ec3cc70
      Víctor Manuel Jáquez Leal authored
      After commit 1ea9735a I see these error while using the webcam
      integrated in my laptop:
      
      GStreamer-CRITICAL **: gst_value_list_get_size: assertion 'GST_VALUE_HOLDS_LIST (value)' failed
      
      The issue is gst_v4l2src_value_simplify() was doing its job of
      generating a single value, rather than the original list. That why,
      when getting the list size, a critical warning was raised.
      
      This patch takes advantage of the compiler optimizations to verify
      first if the list was simplified, thus use it directly, otherwise,
      if it is a list, verify its size.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=776106
      6ec3cc70
  13. 08 Dec, 2016 1 commit
  14. 24 Nov, 2016 3 commits
  15. 01 Nov, 2016 1 commit
    • William Manley's avatar
      v4l2: Warn, don't assert if v4l gives us a buffer with a too large size · 56b1d088
      William Manley authored
      I've seen problems where the `bytesused` field of `v4l2_buffer` would be
      a silly number causing the later call to:
      
          gst_memory_resize (group->mem[i], 0, group->planes[i].bytesused);
      
      to result in this error to be printed:
      
          (pulsevideo:11): GStreamer-CRITICAL **: gst_memory_resize: assertion 'size + mem->offset + offset <= mem->maxsize' failed
      
      besides causing who-knows what other problems.
      
      We make the assumption that this buffer has still been dequeued correctly
      so just clamp to a valid size so downstream elements won't end up in
      undefined behaviour.
      
      The invalid `v4l2_buffer` I saw from my capture device was:
      
          buffer = {
            index = 0,
            type = 1,
            bytesused = 534748928, // <- Invalid
            flags = 8260, // V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC | V4L2_BUF_FLAG_ERROR | V4L2_BUF_FLAG_DONE
            field = 01330, // <- Invalid
            timestamp = {
              tv_sec = 0,
              tv_usec = 0
            },
            timecode = {
              type = 0,
              flags = 0,
              frames = 0 '\000',
              seconds = 0 '\000',
              minutes = 0 '\000',
              hours = 0 '\000',
              userbits = "\000\000\000"
            },
            sequence = 0,
            memory = 2,
            m = {
              offset = 3537219584,
              userptr = 140706665836544, // Could be nonsense, not sure
              planes = 0x7ff8d2d5b000,
              fd = -757747712
            },
            length = 2764800,
            reserved2 = 0,
            reserved = 0
          }
      
      This is from gdb with my own annotations added.
      
      This was with gst-plugins-good 1.8.1, a Magewell XI100DUSB-HDMI video
      capture device and kernel 3.13 using a dodgy HDMI cable which is great at
      breaking HDMI capture devices.  I'm using io-mode=userptr and have built
      gst-plugins-good without libv4l.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=769765
      56b1d088
  16. 31 Oct, 2016 1 commit
  17. 20 Aug, 2016 1 commit
  18. 18 Aug, 2016 1 commit
  19. 11 Jul, 2016 4 commits
  20. 08 Jul, 2016 1 commit
  21. 07 Jul, 2016 3 commits
  22. 01 Jul, 2016 1 commit
  23. 07 Jun, 2016 5 commits