1. 15 Mar, 2014 1 commit
    • Nicolas Dufresne's avatar
      v4l2: Use a copy of videodev2.h header · 418a4940
      Nicolas Dufresne authored
      With years the amount of ifdef have grown up and we are not even sure if the
      old code path compiles. Each time we need to update the v4l2 framework to add
      the new feature, we break compilation on older kernel. With exception of two
      controls in the video orientation control, this patch get rid of all ifdef by
      including the latest version of videodev2.h inside GStreamer.
      
      Fixes https://bugzilla.gnome.org/show_bug.cgi?id=723446
      418a4940
  2. 25 Feb, 2014 2 commits
  3. 10 Jan, 2014 9 commits
  4. 04 Dec, 2013 1 commit
    • Julien Isorce's avatar
      v4l2: add support for multi-planar V4L2 API · 61ae84b5
      Julien Isorce authored
      This api is in linux kernel since version 2.6.39,
      and present in all version 3.
      
      The commit that adds the API in master branch of the
      linux kernel source is:
      https://github.com/torvalds/linux/commit/f8f3914cf922f5f9e1d60e9e10f6fb92742907ad
      
      v4l2 doc: "Some devices require data for each input
      or output video frame to be placed in discontiguous
      memory buffers"
      
      There are newer structures 'struct v4l2_pix_format_mplane'
      and 'struct v4l2_plane'.
      So the pixel format is not setup with the same API when using
      multi-planar.
      
      Also for gst-v4l2, one of the difference is that in GstV4l2Meta
      there are now one mem pointer for each maped plane.
      
      When not using multi-planar, this commit takes care of keeping
      the same code path than previously. So that the 2 cases are
      in two different blocks triggered from V4L2_TYPE_IS_MULTIPLANAR.
      
      Fixes bug https://bugzilla.gnome.org/show_bug.cgi?id=712754
      61ae84b5
  5. 25 Nov, 2013 1 commit
  6. 19 Aug, 2013 1 commit
  7. 04 Jun, 2013 1 commit
  8. 29 May, 2013 1 commit
  9. 20 May, 2013 1 commit
  10. 19 Feb, 2013 1 commit
  11. 17 Dec, 2012 1 commit
  12. 04 Nov, 2012 1 commit
  13. 13 Sep, 2012 1 commit
  14. 21 Dec, 2011 1 commit
  15. 04 Nov, 2011 1 commit
  16. 04 Aug, 2011 1 commit
    • Wim Taymans's avatar
      v4l2: activate the pool in fallback · add1cbdb
      Wim Taymans authored
      When nobody is using our pool, activate it ourselves.
      Avoid leaking the buffer array.
      Set default pool configuration with caps.
      Don't keep current_caps, core does that for us now.
      add1cbdb
  17. 27 Jul, 2011 1 commit
    • Wim Taymans's avatar
      v4l2: remove unused variables · 63fc64dd
      Wim Taymans authored
      Use the more specialized type for the bufferpool.
      Use the size from the driver as the size of the image to read.
      Don't configure the pool when created. This will be done in the setup_allocation
      method later or by upstream for sinks.
      Remove unused properties and variables. Bufferpool sizes are now configured in
      the bufferpool by the elements in the pipeline. We might want to influence the
      pool size later somehow.
      63fc64dd
  18. 26 Jul, 2011 1 commit
    • Wim Taymans's avatar
      v4l2: rename a variable · 8c424142
      Wim Taymans authored
      Rename the size variable to sizeimage and fill it with the size that has been
      given to use by the v4l2 driver instead of making something up..
      8c424142
  19. 19 Jul, 2011 1 commit
    • Wim Taymans's avatar
      v4l2: Fix sink bufferpool handling · 87d9a57a
      Wim Taymans authored
      Remove old method, use neww _process method for the sink.
      Inform the parent bufferpool class about the settings too. This is needed to let
      it know about the max-buffers.
      Allocate the negotiated max-buffers and initially mmap min-buffers. The idea is
      that the bufferpool will allocate more when needed.
      Improve debugging.
      Only poll in capture mode, it does not seem to work in playback mode on this
      beagleboard.
      87d9a57a
  20. 18 Jul, 2011 2 commits
    • Wim Taymans's avatar
      v4l2: More work on bufferpools · 55eb26f1
      Wim Taymans authored
      Add different transport methods to the bufferpool (MMAP and READ/WRITE)
      Do more parsing of the bufferpool config.
      Start and stop streaming based on the bufferpool state.
      Make separate methods for getting a buffer from the pool and filling it with
      data. This allows us to fill buffers from other pools too. Either use copy or
      read to fill up the target buffers.
      Add property to force a transfer mode in v4l2src.
      Increase default number of buffers to 4.
      Negotiate bufferpool and its properties in v4l2src.
      55eb26f1
    • Wim Taymans's avatar
      v4l2: add IO method enum · 39716c02
      Wim Taymans authored
      39716c02
  21. 15 Jul, 2011 1 commit
    • Wim Taymans's avatar
      v4l2: convert to GstBufferPool · 21f532ae
      Wim Taymans authored
      Extend from GstBufferPool.
      Handle the lifetime of the pool buffers correctly with the start/stop vmethods.
      Map acquire and release directly to QBUF and DQBUF. We still expose an explicit
      qbuf for the v4l2sink for now.
      21f532ae
  22. 14 Jul, 2011 1 commit
  23. 13 Jul, 2011 5 commits
    • Wim Taymans's avatar
      v4l2: move capture code to device object · 7c5f5b1b
      Wim Taymans authored
      Move the details of how to capture to the device object. Remove the
      v4l2src_calls.[ch] files because they are empty now.
      Provide two simple methods to get and return a buffer to the device.
      Also do a slow copy when the buffer is not from our pool.
      7c5f5b1b
    • Wim Taymans's avatar
      v4l2: Let the device object manage the pool · d9e61954
      Wim Taymans authored
      Rename start and stop methods to open and close because that is what they do.
      After setting the format on the device object, setup the bufferpools. Move this
      code from the v4l2src_calls.c file, it is shared between source and sink.
      Make new device start and stop method that merges various bits of common code
      spread over several files.
      d9e61954
    • Wim Taymans's avatar
      v4l2: don't store stride in the videoinfo · 398001f2
      Wim Taymans authored
      We want to keep the default strides in the videoinfo. Keep the stride of the
      video frames separate so that we can use both to copy a video frame and do
      correct stride conversion.
      398001f2
    • Wim Taymans's avatar
      v4l2: improve caps parsing · 01def08e
      Wim Taymans authored
      Use GstVideoInfo to store the parsed caps.
      Remove outsize from the caps parsing code, it's wrong because it does not use
      the stride given by the driver.
      01def08e
    • Wim Taymans's avatar
      v4l2: Move configuration of framerate to _set_format · 9f4cf3be
      Wim Taymans authored
      Move the configuration of the framerate to where we set the other format
      parameters.
      Remove hack to check if the device is active.
      Store streamparm in the device info.
      Use some macros to access the current device configuration.
      Remove some duplicate fields in src and sink and use the device configuration
      instead.
      9f4cf3be
  24. 12 Jul, 2011 3 commits
    • Wim Taymans's avatar
      v4l2: simplify setting the capture format · e8ae00f5
      Wim Taymans authored
      Pass the caps to the set_format function and make _set_format parse the caps.
      Also keep the parsed values in the v4l2object so that we can refer to them when
      we want.
      e8ae00f5
    • Wim Taymans's avatar
      v4l2: Let the bufferpool own the V4l2Object · 0dcf0aeb
      Wim Taymans authored
      Keep track of the currently configured format and setting in the
      v4l2object.
      Pass the v4l2object to the bufferpool constructor so that the bufferpool can
      know everything about the currently configured settings. This also allows us
      to remove some awkward code.
      0dcf0aeb
    • Wim Taymans's avatar
      v4l: pass the bytesperline around · 59b86d25
      Wim Taymans authored
      When setting a format, return the bytesperline to the caller so that it can be
      used to allocate buffers.
      59b86d25