Commit graph

195 commits

Author SHA1 Message Date
Benjamin Gaignard
e29ab42922 v4l2: Add support of dmabuf
v4l has add a new IOCTL to export a buffer by using dmabuf.
This patch allow to use this new IOTCL if it has been defined in videodev2.h
I introduce a new IO mode (GST_V4L2_IO_DMABUF) to enable this way of working.

https://bugzilla.gnome.org/show_bug.cgi?id=693826
2013-02-19 12:57:07 +01:00
Sjoerd Simons
00eed11d6a v4l2: Re-enable prepare-format emission
With the port to gstreamer 1.0 the prepare-format signal stopped being
emitted. Start emitting this again for use in uvch264src.  While there
change the emission to include the caps for extra flexibility instead of
fource, width, height.

https://bugzilla.gnome.org/show_bug.cgi?id=692042
2013-01-23 21:06:16 -05:00
Tim-Philipp Müller
230cf41cc9 Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:07:18 +00:00
Sjoerd Simons
5d1ed54814 v4l2src: handle latency query before setting up the bufferpool
Fixes crash if no bufferpool is set up yet.

https://bugzilla.gnome.org/show_bug.cgi?id=684430
2012-09-20 13:49:42 +01:00
Wim Taymans
e6ce9c226f v4l2: remove unused properties 2012-09-13 10:56:27 +02:00
Wim Taymans
d1b26e1d59 v4l2: disable renegotiation
We can't yet wait for the bufferpool to DRAIN before starting renegotiation so
disable it for now.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=682770
2012-09-11 15:41:10 +02:00
Tim-Philipp Müller
4bb52bbadf docs: gst-launch -> gst-launch-1.0 and ffmpegcolorspace -> videoconvert 2012-08-27 21:20:30 +01:00
Wim Taymans
8eadb9c12c update for query api changes 2012-07-06 11:26:46 +02:00
Wim Taymans
9fd4af2164 v4l2src: improve debug 2012-06-26 12:07:29 +02:00
Sebastian Dröge
982148c07c v4l2src: Update for basesrc API changes 2012-05-01 13:33:46 +02:00
Wim Taymans
a473750350 v4l2: improve timestamp code
Sample the pipeline clock and device clock closer to eachother to reduce jitter.
Don't subtract the frame duration from the timestamp when we can use the device
timestamps.
Assume a delay of 1 frame in read-write mode.
2012-04-25 09:41:46 +02:00
Wim Taymans
46045316ce v4l2: use driver timestamps
Use the drive timestamps for timestamping outgoing buffers.
2012-04-24 12:37:33 +02:00
Wim Taymans
eecb9a96a6 v4l2: Improve buffer management
Query the amount of available buffers when doing set_config(). This allows us to
configure the parent bufferpool with the number of buffers to preallocate.
Keep track of the provided allocator and use it when we need to allocate a
buffer in RW mode.
When we are can not allocate the requested max_buffers amount of buffers, make
sure we keep 2 buffers around in the pool and copy them into an output buffer.
This makes sure that we always have a buffer to capture into. We also need to
detect those copied buffers and unref them when they return to the pool.
2012-04-23 18:10:33 +02:00
Mart Raudsepp
8719375be7 docs: Add Since tag for new GstV4l2Src::prepare-format signal 2012-04-23 11:24:19 +02:00
Sebastian Dröge
deb7cdcdda v4l2src: Rename pre-set-format signal to prepare-format 2012-04-19 09:50:01 +02:00
Youness Alaoui
06d64c7792 v4l2src: Adding a pre-set-format signal
In order to support UVC H264 encoding cameras, an H264 Probe&Commit
must happen before the normal v4l2 set-format. This new signal is
meant to allow an external application or bin to do it.
It also serves to expose the file descriptor used by v4l2src in case
some custom ioctls need to be called.

Conflicts:

	sys/v4l2/Makefile.am
	sys/v4l2/gstv4l2src.c
	sys/v4l2/v4l2src_calls.c
2012-04-19 09:45:49 +02:00
Tim-Philipp Müller
e09ae5736d Use new gst_element_class_set_static_metadata() 2012-04-10 00:51:41 +01:00
Wim Taymans
e310ee8218 caps: improve caps handling
Avoid caps copy and leaks
2012-03-27 16:42:41 +02:00
Wim Taymans
098d8ceae7 v4l2: update for get_param
Remove const from the GstCaps.
Plug some GstStructure leaks
2012-03-27 12:44:46 +02:00
Wim Taymans
01838ff975 v4l2src: don't error in shutdown
Don't log with the ERROR category when we are stopping because we are shutting
down.

Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=672824
2012-03-26 16:00:42 +02:00
Wim Taymans
cfe58e7156 v4l2: fix latency 2012-03-26 15:51:28 +02:00
Wim Taymans
ced47580b7 update for bufferpool changes 2012-03-15 22:11:17 +01:00
Wim Taymans
f3a770a20c update for allocation query changes 2012-03-15 20:37:56 +01:00
Wim Taymans
751fcf035b take padding into account 2012-03-14 19:56:56 +01:00
Wim Taymans
a32d944a38 fix for caps api changes 2012-03-11 19:06:37 +01:00
Wim Taymans
9c789aa434 update for metadata API changes 2012-02-29 17:26:01 +01:00
Sebastian Dröge
10554b271f Merge branch 'master' into 0.11
Conflicts:
	ext/flac/gstflacdec.c
	ext/jpeg/gstjpegenc.c
	ext/pulse/pulsesink.c
	sys/v4l2/gstv4l2src.c
2012-01-25 12:49:11 +01:00
Vincent Penquerc'h
b0608128b1 v4l2src: fix caps leak 2012-01-13 17:25:59 +00:00
Havard Graff
150403ab13 v4l2src: Don't assert when the interface is not implemented.
Simply return FALSE instead.

https://bugzilla.gnome.org/show_bug.cgi?id=667817
2012-01-13 10:07:20 +00:00
Wim Taymans
4b8975f867 update for removed property probe 2011-12-21 11:59:46 +01:00
Vincent Penquerc'h
c0e101e93f various: fix pad template leaks
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:30:27 +00:00
Wim Taymans
797523efbd _peer_get_caps() -> _peer_query_caps() 2011-11-15 18:04:44 +01:00
Wim Taymans
b2d508ac40 update for _get_caps() -> _query_caps() 2011-11-15 18:04:44 +01:00
Tim-Philipp Müller
c27bbe4be2 Update for GstURIHandler get_protocols() changes 2011-11-13 23:44:44 +00:00
Tim-Philipp Müller
a150d1e734 soup, pushfile, rtsp, udp, v4l2: update for GstURIHandler API changes 2011-11-13 18:50:51 +00:00
Wim Taymans
88e398b0ea update for removed fixate function 2011-11-10 11:03:18 +01:00
Stefan Sauer
fb162c8eb4 controller: port to new controller location and api 2011-11-04 20:15:48 +01:00
Wim Taymans
b1ef7e8a86 update for meta api change 2011-11-02 09:06:37 +01:00
Wim Taymans
75e153bb13 allocation: fix for vmethod changes 2011-08-26 14:20:49 +02:00
Wim Taymans
44c1589b48 v4l2: improve fixate function
Use new core function to fixate a field.
Chain up to parent fixate function.
2011-08-17 17:57:11 +02:00
Wim Taymans
1b1fb68c23 v4l2src: call set_caps method of baseclass
Call the baseclass set_caps function to make it send the caps event and
properly trigger the negotiation functions.
2011-08-04 16:35:46 +02:00
Wim Taymans
add1cbdbd8 v4l2: activate the pool in fallback
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.
2011-08-04 12:56:47 +01:00
Wim Taymans
752a6778b2 v4l: change for new API 2011-07-29 17:21:36 +02:00
Wim Taymans
63fc64dd98 v4l2: remove unused variables
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.
2011-07-27 16:46:46 +02:00
Wim Taymans
f7c500fe9c v4l2src: add metadata 2011-07-27 13:43:08 +02:00
Wim Taymans
8c4241427a v4l2: rename a variable
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..
2011-07-26 16:15:05 +02:00
Wim Taymans
55eb26f1e7 v4l2: More work on bufferpools
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.
2011-07-18 18:54:49 +02:00
Wim Taymans
4440801ace v4l2: implement setup_allocation
Implement the setup_allocation vmethod, we'll hopefully do something clever in
there later.
2011-07-15 16:55:50 +02:00
Wim Taymans
7c5f5b1b7f v4l2: move capture code to device object
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.
2011-07-13 18:32:00 +02:00
Wim Taymans
d9e61954a1 v4l2: Let the device object manage the pool
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.
2011-07-13 16:33:58 +02:00