1. 14 Mar, 2017 2 commits
  2. 09 Mar, 2017 1 commit
  3. 27 Feb, 2017 1 commit
  4. 22 Feb, 2017 1 commit
  5. 21 Feb, 2017 1 commit
  6. 10 Feb, 2017 1 commit
  7. 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
  8. 16 Jan, 2017 3 commits
  9. 09 Jan, 2017 1 commit
  10. 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
  11. 08 Dec, 2016 1 commit
  12. 24 Nov, 2016 3 commits
  13. 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
  14. 31 Oct, 2016 1 commit
  15. 21 Oct, 2016 1 commit
  16. 20 Oct, 2016 1 commit
  17. 07 Sep, 2016 1 commit
  18. 30 Aug, 2016 1 commit
  19. 20 Aug, 2016 1 commit
  20. 18 Aug, 2016 2 commits
    • Nirbheek Chauhan's avatar
      v4l2: consistently check #ifdef HAVE_GUDEV instead of #if · 4048a4e1
      Nirbheek Chauhan authored
      Both work with autotools but they definitely don't mean the same thing, cause
      problems with other build systems, and are bad form. Existence should always be
      checked with #ifdef or #if defined.
      4048a4e1
    • Nirbheek Chauhan's avatar
      directsound: port away from old DirectX API · af1d49d0
      Nirbheek Chauhan authored
      D3DX has been deprecated for the last 4 years and latest versions of
      Windows no longer ship headers for it. This is fine as long as you're
      building with Cerbero's Wine-based DirectX headers, but sucks if you
      want to build against the actual Windows SDK.
      
      We were just using it to get error strings anyway, so just use the
      generic error string API.
      af1d49d0
  21. 11 Jul, 2016 4 commits
  22. 08 Jul, 2016 1 commit
  23. 07 Jul, 2016 3 commits
  24. 01 Jul, 2016 1 commit
  25. 07 Jun, 2016 5 commits