Nicolas Dufresne [Wed, 14 May 2014 17:05:42 +0000 (13:05 -0400)]
v4l2bufferpool: Don't deactivate otherpool
We should not stop the otherpool unless we also stop our own
pool, otherwise it will never get restarted.
https://bugzilla.gnome.org/show_bug.cgi?id=730207
Nicolas Dufresne [Wed, 14 May 2014 16:33:58 +0000 (12:33 -0400)]
v4l2bufferpool: Also update num_buffers for import cases
https://bugzilla.gnome.org/show_bug.cgi?id=730207
Aleix Conchillo Flaqué [Wed, 14 May 2014 20:42:25 +0000 (13:42 -0700)]
rtpbin: update rtp encoder/decoder docs
Use %u in RTP encoder/decoder pads to match other rtpbin pads.
https://bugzilla.gnome.org/show_bug.cgi?id=730146
George Kiagiadakis [Fri, 27 Dec 2013 09:55:18 +0000 (11:55 +0200)]
tests/check: rtpsession: test internal sources timing out
George Kiagiadakis [Thu, 26 Dec 2013 15:30:42 +0000 (17:30 +0200)]
rtpsession: remove unused if branch
1) sources that have sent BYE in the past cannot be senders, since
they would have timed out to being receivers in the meantime...
2) sources that have sent BYE are now being removed earlier inside
this function
George Kiagiadakis [Thu, 26 Dec 2013 15:29:42 +0000 (17:29 +0200)]
rtpsession: cleanup sources that have sent BYE
George Kiagiadakis [Thu, 26 Dec 2013 15:24:51 +0000 (17:24 +0200)]
rtpsession: unify nested if clauses
George Kiagiadakis [Thu, 26 Dec 2013 15:21:44 +0000 (17:21 +0200)]
rtpsession: timeout internal sources that are inactive for a long time and send BYE
Aleix Conchillo Flaqué [Tue, 13 May 2014 19:25:04 +0000 (12:25 -0700)]
rtpjitterbuffer: don't stop looping if event found in the queue
If we are inserting a packet into the jitter queue we need to keep
looping through the items until the right position is found. Currently,
the code stops as soon as an event is found in the queue.
Regarding events, we should only move packets before an event if there
is another packet before the event that has a larger seqnum.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=730078
Adrien SCH [Thu, 17 Apr 2014 13:04:00 +0000 (13:04 +0000)]
matroskamux: fix the memory leak of language attribute
https://bugzilla.gnome.org/show_bug.cgi?id=728418
Nicolas Dufresne [Tue, 13 May 2014 17:44:20 +0000 (13:44 -0400)]
v4l2object: Fix regression in offset extrapolation
When extrapolating the offset, we need to use the extrapolate
stride rather then the base stride. This should fix support for format
with more then two planes (I420, Y42B, etc).
Nicolas Dufresne [Mon, 12 May 2014 22:03:18 +0000 (18:03 -0400)]
v4l2bufferpool: Use default VideoInfo for frame operation
When doing frame operation, we need to use the default VideoInfo
and let the frame API read the video meta in order to get the stride
and offset right. Currently we where using the specialized VideoInfo
which reflects what the HW is setup to.
Tim-Philipp Müller [Mon, 12 May 2014 16:23:19 +0000 (17:23 +0100)]
v4l2src: minor GValue handling optimisation in probing code
Tim-Philipp Müller [Mon, 12 May 2014 16:20:14 +0000 (17:20 +0100)]
v4l2src: avoid lists with one single framerate in probed caps
Simplify framerate field if possible, so we don't end up with
e.g. framerate = (fraction) { 30/1 }. Maybe the helper function
should be moved to core, but we can do this later.
Edward Hervey [Mon, 12 May 2014 14:56:35 +0000 (16:56 +0200)]
qtdemux: Fix leak of palette_data in error cases
CID #1212151
Edward Hervey [Mon, 12 May 2014 14:53:32 +0000 (16:53 +0200)]
qtmux: Free node_header in error cases
CID #1212134
Edward Hervey [Mon, 12 May 2014 11:46:01 +0000 (13:46 +0200)]
flvdemux: Don't use WARNING for not-linked flow return
Pollutes debug logs for no reason. It's only an error if all pads
return not-linked
Edward Hervey [Mon, 12 May 2014 11:45:06 +0000 (13:45 +0200)]
flvdemux: Skip unknown tags in push-mode
We add a new mode (SKIP) in push-mode to skip tags that we don't known about
Partially fixes https://bugzilla.gnome.org/show_bug.cgi?id=670712
Sebastian Dröge [Sat, 10 May 2014 07:14:33 +0000 (09:14 +0200)]
flacdec: Add support for variable block size files and remove dead code
This dead code wasn't used since the 1.0 port and would need to
be modified heavily for variable block size support.
https://bugzilla.gnome.org/show_bug.cgi?id=729894
Nicolas Dufresne [Fri, 9 May 2014 16:14:23 +0000 (12:14 -0400)]
v4l2transform: Fix NULL check copy paste error
CID 1212129
Nicolas Dufresne [Fri, 9 May 2014 16:11:54 +0000 (12:11 -0400)]
v4l2transform: Fix potential deadlock due to missing break
CID 1212131
Wim Taymans [Fri, 9 May 2014 16:01:28 +0000 (18:01 +0200)]
rtpjitterbuffer: increment accepted packets after loss
When we detect a lost packet, expect packets with higher
seqnum on the input.
Also update the unit test.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=729524
Jason Litzinger [Sun, 4 May 2014 17:12:54 +0000 (11:12 -0600)]
Add new test case.
Wim Taymans [Fri, 9 May 2014 14:14:21 +0000 (16:14 +0200)]
shapewipe: no need to activate pads
Activation will happen in the state change
Nicolas Dufresne [Fri, 9 May 2014 16:10:04 +0000 (12:10 -0400)]
v4l2object: Don't leak config structure
this fixes a leak of the config structure and take care of making sure
caps can't reach ref 0 before we are done doing our check.
CID 1212144
Nicolas Dufresne [Fri, 9 May 2014 16:08:11 +0000 (12:08 -0400)]
v4l2object: Remove uneeded cast for code clarity
Nicolas Dufresne [Fri, 9 May 2014 15:56:52 +0000 (11:56 -0400)]
v4l2pool: Fix leak of config structure in error case
CIDs 1212167 and 1212167
Nicolas Dufresne [Fri, 9 May 2014 15:51:26 +0000 (11:51 -0400)]
v4l2object: Fix use of unitilized pool pointer
CID #1212173
Eric Trousset [Fri, 9 May 2014 14:48:58 +0000 (16:48 +0200)]
qtdemux: don't respond to a position query in BYTE format with a TIME position
https://bugzilla.gnome.org/show_bug.cgi?id=729553
Tim-Philipp Müller [Fri, 9 May 2014 13:22:42 +0000 (14:22 +0100)]
matroskademux: don't leak doctype string in error code path
CID 1212145.
Nicolas Dufresne [Tue, 6 May 2014 17:37:47 +0000 (13:37 -0400)]
v4l2object: Readback pool config if used within the baseclass
Nicolas Dufresne [Tue, 6 May 2014 16:58:59 +0000 (12:58 -0400)]
v4l2: Replace miss-use of crop meta in favour of proper offset
This moves away from copying information and store everything inside
the GstVideoInfo structure. The alignement exposed by v4l2 api
is now handled using proper offset.
Nicolas Dufresne [Tue, 6 May 2014 16:55:30 +0000 (12:55 -0400)]
v4l2object: Style fix
Nicolas Dufresne [Mon, 5 May 2014 16:38:33 +0000 (12:38 -0400)]
v4l2allocator: Reset imported buffer size with expected size
This ensure that the buffer pool won't always discard buffer with these
memory when they are released.
Nicolas Dufresne [Mon, 5 May 2014 16:37:43 +0000 (12:37 -0400)]
v4l2allocator: Reset flushed group
This ensure that a flushed group memory are the same size as when they
where originally allocated / imported.
Nicolas Dufresne [Mon, 5 May 2014 16:07:31 +0000 (12:07 -0400)]
v4l2bufferpool: Get number of allocated buffers from allocator
The value of num_allocated buffer would get confused when
buffer are being discarded.
Nicolas Dufresne [Mon, 5 May 2014 16:06:44 +0000 (12:06 -0400)]
v4l2allocator: Add a method to read number of allocated group
Nicolas Dufresne [Mon, 5 May 2014 00:23:42 +0000 (20:23 -0400)]
v4l2bufferpool: Improve debugging
Nicolas Dufresne [Sun, 4 May 2014 23:51:48 +0000 (19:51 -0400)]
v4l2bufferpool: Ensure we don't re-enqueue buffer during flush
Nicolas Dufresne [Sun, 4 May 2014 23:13:37 +0000 (19:13 -0400)]
v4l2transform: Initilialize debug category
Nicolas Dufresne [Sun, 4 May 2014 20:11:09 +0000 (16:11 -0400)]
v4l2allocator: Fix libv4l2 support
Need to include config.h, otherwise we endup directly using the
ioct/mmap/munmap calls and need to vall v4l2_munmap.
Nicolas Dufresne [Thu, 1 May 2014 17:04:08 +0000 (13:04 -0400)]
v4l2allocator: Set the flags on the object
We where not setting the probed flags on the allocator, which mean even if
CREATE_BUFS was supported on some driver, it would endup being ignored.
Nicolas Dufresne [Tue, 29 Apr 2014 20:49:52 +0000 (16:49 -0400)]
v4l2bufferpool: Re-enqueue buffer at stream start
Nicolas Dufresne [Tue, 29 Apr 2014 20:06:00 +0000 (16:06 -0400)]
v4l2allocator: There is not group on error
Nicolas Dufresne [Tue, 29 Apr 2014 18:56:31 +0000 (14:56 -0400)]
v4l2transform: Handle FLUSH_STOP event
Nicolas Dufresne [Tue, 29 Apr 2014 17:05:41 +0000 (13:05 -0400)]
v4l2bufferpool: Acquire cannot return a buffer from another pool
Return a buffer from an otherpool has unwanted side effects that lead to leaks and
prevents deactivating the pool. Instead, we change the _process() API so it can
replace the internal buffer with the buffer from the downstream pool. This implied
moving from _fill() to _create() method in the src.
Nicolas Dufresne [Tue, 29 Apr 2014 17:00:32 +0000 (13:00 -0400)]
v4l2bufferpool: Remove unreached acquire code
The acquire is done in _prepare now.
Nicolas Dufresne [Tue, 29 Apr 2014 16:57:08 +0000 (12:57 -0400)]
v4l2bufferpool: Sanetize buffer refount handling
Buffer refcounting is a bit hard, because of the duality between CAPTURE and
OUTPUT mode. In the long term, we should consider having two seperate pool
instead of this mess. At least state should be better kept this way.
Nicolas Dufresne [Tue, 29 Apr 2014 16:48:04 +0000 (12:48 -0400)]
v4l2transform: Add more traces
Nicolas Dufresne [Mon, 28 Apr 2014 12:48:26 +0000 (08:48 -0400)]
v4l2-allocator: Add S to REQBUFS/CREATE_BUFS enum
All enum that has REQBUFS and CREATE_BUFS where missing S, which was
confusing since they are supposed to match with associcated ioctl name. This
also fixes the yet unused CAN_REQUEST flag check.
Nicolas Dufresne [Fri, 18 Apr 2014 21:51:07 +0000 (17:51 -0400)]
v4l2transform: Enabled QoS
Nicolas Dufresne [Fri, 18 Apr 2014 21:02:50 +0000 (17:02 -0400)]
v4l2: Fixup USERPTR/DMABUF capture support
Nicolas Dufresne [Fri, 18 Apr 2014 18:45:00 +0000 (14:45 -0400)]
v4l2object: Improve selecton of min/max in decide allocation
Nicolas Dufresne [Fri, 18 Apr 2014 17:09:00 +0000 (13:09 -0400)]
v4l2bufferpool: Update config if meta is missing
Rather then hard failure, we should update the config with the meta option we
need and return false.
Nicolas Dufresne [Fri, 11 Apr 2014 21:10:11 +0000 (17:10 -0400)]
v4l2: Add DMABUF and USERPTR importation
Nicolas Dufresne [Fri, 18 Apr 2014 01:45:58 +0000 (21:45 -0400)]
v4l2allocator: Valid FD are bigger or equal to zero
Nicolas Dufresne [Wed, 16 Apr 2014 21:04:42 +0000 (17:04 -0400)]
v4l2object: Don't leak downstream pool in propose_allocation
parse_nth_allocation_pool() give a ref on the pool, we need to unref it
when done.
Nicolas Dufresne [Mon, 14 Apr 2014 16:19:39 +0000 (12:19 -0400)]
v4l2: Introduce DMABUF_IMPORT IO mode
Nicolas Dufresne [Thu, 10 Apr 2014 20:26:34 +0000 (16:26 -0400)]
v4l2: Add dmabuf export support
This can be enabled sing io-mode=dmabuf. This will enabled mmap base
drivers to export the buffers as dmabuf.
Nicolas Dufresne [Wed, 16 Apr 2014 19:51:03 +0000 (15:51 -0400)]
v4l2allocator: Guaranty queued state integrety
Because of the buf in videobuf2, dqbuf may leave the DONE flag being,
which would implied that the buffer is queued. As this has been broken
for 4 years, simply guaranty the state flags integrity when doing
qbuf/dqbuf.
See https://patchwork.linuxtv.org/patch/23641/
Nicolas Dufresne [Tue, 15 Apr 2014 21:31:42 +0000 (17:31 -0400)]
v4l2transform: Implement open/close
Nicolas Dufresne [Tue, 15 Apr 2014 20:43:41 +0000 (16:43 -0400)]
v4l2transform: Ensure output pool is configured
Nicolas Dufresne [Tue, 15 Apr 2014 20:43:15 +0000 (16:43 -0400)]
v4l2transform: Check if caps have changes before asserting
In set_caps, now checks if caps actually changed and succeed if they didn't
change.
Nicolas Dufresne [Tue, 15 Apr 2014 20:41:46 +0000 (16:41 -0400)]
v4l2videodec: Ensure pool is configured
Nicolas Dufresne [Tue, 8 Apr 2014 22:54:09 +0000 (18:54 -0400)]
v4l2object: Always set a size when deciding allocation
Nicolas Dufresne [Tue, 8 Apr 2014 22:20:25 +0000 (18:20 -0400)]
v4l2object: Improved decide allocation
Improve decide allocation so it properly configure both local and downstream
buffer pools. Also read back the pool config if it was changed to to driver
limitations.
Nicolas Dufresne [Tue, 15 Apr 2014 17:30:02 +0000 (13:30 -0400)]
v4l2bufferpool: Do not pre-configure the pool
Pre-configuring the pool is error prone, since it may hide a configuration failure and
endup with a pool that is not configured the way it should (e.g. no video meta, wrong
queue size, etc.)
Nicolas Dufresne [Tue, 15 Apr 2014 17:23:33 +0000 (13:23 -0400)]
v4l2bufferpool: Preserve downstream minimum even in RW
Nicolas Dufresne [Tue, 15 Apr 2014 17:20:12 +0000 (13:20 -0400)]
v4l2bufferpool: Turn cropmeta into a custom option
Turn crop meta into a custom option and make sure it's there is needed.
Nicolas Dufresne [Wed, 9 Apr 2014 16:53:19 +0000 (12:53 -0400)]
v4l2bufferpool: Early catch short allocation
Catch short allocation after saving the format. This is not a catch all, but should catch
most of the miss-behaving drivers when doing S_FMT/G_FMT and avoid potential crash.
Nicolas Dufresne [Sat, 5 Apr 2014 02:46:40 +0000 (22:46 -0400)]
v4l2bufferpool: Port to use GstV4l2Allocator
Nicolas Dufresne [Sat, 5 Apr 2014 02:35:48 +0000 (22:35 -0400)]
Implement V4l2 Allocator
This goal of this allocator is mainly to allow tracking the memory.
Currently, when a buffer memory has been modified, the buffer and it's
memory is disposed and lost until the stream is restarted.
Nicolas Dufresne [Wed, 16 Apr 2014 20:35:49 +0000 (16:35 -0400)]
v4l2object: Don't advertise crop meta
Currently we advertise crop meta, but not element handle support this meta.
Nicolas Dufresne [Tue, 8 Apr 2014 22:18:57 +0000 (18:18 -0400)]
v4l2object: Setup pool already send element error
Nicolas Dufresne [Tue, 8 Apr 2014 22:17:31 +0000 (18:17 -0400)]
v4l2object: Workaround decoder that set num_planes to 0 in the format
Some well known decoder wrongly set num_planes to 0 in their format instead of
one. In this case we would endup with no size when deciding buffer allocation.
Nicolas Dufresne [Tue, 8 Apr 2014 21:34:19 +0000 (17:34 -0400)]
v4l2object: Ensure size before configuring the pool
Nicolas Dufresne [Sat, 5 Apr 2014 02:38:05 +0000 (22:38 -0400)]
v4l2object: Set minimum buffers to 2
All the element requires at least two buffers. This is not used for RW mode.
Nicolas Dufresne [Sat, 5 Apr 2014 02:37:14 +0000 (22:37 -0400)]
v4l2object: Remove unused MAX_BUFFERS define
Nicolas Dufresne [Sat, 5 Apr 2014 02:36:37 +0000 (22:36 -0400)]
v4l2object: Don't hardcode min/max use default instead
Nicolas Dufresne [Thu, 10 Apr 2014 21:49:41 +0000 (17:49 -0400)]
v4l2transform: Install PROP_CAPTURE_IO_MODE with right ID
Nicolas Dufresne [Tue, 8 Apr 2014 22:54:50 +0000 (18:54 -0400)]
v4l2transform: decide_allocation returns a boolean
Nicolas Dufresne [Thu, 10 Apr 2014 21:49:29 +0000 (17:49 -0400)]
v4l2videodec: Install PROP_CAPTURE_IO_MODE with right ID
Nicolas Dufresne [Thu, 27 Mar 2014 17:21:25 +0000 (13:21 -0400)]
v4l2transform: Add propose_allocation
This should remove 1 copy between the decoder and the transform.
Nicolas Dufresne [Thu, 27 Mar 2014 17:20:53 +0000 (13:20 -0400)]
v4l2: Move propose allocation to v4l2object
Nicolas Dufresne [Thu, 20 Mar 2014 21:26:05 +0000 (17:26 -0400)]
v4l2transform: Fixup caps query
Nicolas Dufresne [Thu, 20 Mar 2014 19:31:22 +0000 (15:31 -0400)]
v4l2transform: Setup cropping if needed
Nicolas Dufresne [Wed, 19 Mar 2014 21:25:16 +0000 (17:25 -0400)]
v4l2transform: Expose BGRA and ARGB formats
Nicolas Dufresne [Tue, 18 Mar 2014 21:33:38 +0000 (17:33 -0400)]
v4l2transform: Ensure output pool is activated
That pool may be different then the internal pool.
Nicolas Dufresne [Sun, 16 Mar 2014 18:11:16 +0000 (19:11 +0100)]
v4l2transform: Ensure internal buffer pools actication
Nicolas Dufresne [Sun, 16 Mar 2014 10:36:19 +0000 (11:36 +0100)]
v4l2transform: Move subinstance subclass init near other init
Nicolas Dufresne [Sat, 15 Mar 2014 17:56:51 +0000 (18:56 +0100)]
v4l2transform: Stop stream before closing the devices.
Víctor Manuel Jáquez Leal [Sat, 15 Mar 2014 16:53:54 +0000 (16:53 +0000)]
v4l2transform: copy metdata
Nicolas Dufresne [Tue, 4 Mar 2014 23:31:27 +0000 (18:31 -0500)]
Implement GstV4l2Transform
Implement a v4l2 element that wraps HW video converters.
Nicolas Dufresne [Thu, 27 Mar 2014 22:41:07 +0000 (18:41 -0400)]
v4l2: Probe for CREATE_BUFS in order to correctly set pool min/max
In order to correctly set the pool min/max, we need to probe for CREATE_BUFS
ioctl. This can be done as soon as the format has been negotiated using a
count of 0.
Nicolas Dufresne [Tue, 25 Mar 2014 19:21:03 +0000 (15:21 -0400)]
v4l2: Move capture eos handling in _process()
Now that we might be copying out buffer (e.g. downstream don't support video
meta bug we need it) we need to move the EOS handling inside the process
method.
Nicolas Dufresne [Tue, 25 Mar 2014 14:49:39 +0000 (10:49 -0400)]
v4l2object: Fix support for planar format in 1 v4l2 mplane
So far we where only setting saving the first plane stride in the meta. This was
leading to wrong values in GstVideoMeta.
Nicolas Dufresne [Wed, 19 Mar 2014 21:52:08 +0000 (17:52 -0400)]
v4l2videodec: Cleanly fail if set_format is never called
Nicolas Dufresne [Wed, 19 Mar 2014 21:00:56 +0000 (17:00 -0400)]
v4l2: Expose RGB32 formats with and without alpha
As soon a the alpha component can be set, we can expose the RGB32 and BGR32
format as ARGB and BGRA as long we can deterministically set the alpha padding
value.
Nicolas Dufresne [Tue, 18 Mar 2014 19:49:49 +0000 (15:49 -0400)]
v4l2: Correctly check if video meta is needed
Correctly check if video meta is needed. In buffer pool, trust need_video_meta
flag in order to decide if configuration should succeed.
Nicolas Dufresne [Tue, 18 Mar 2014 19:45:18 +0000 (15:45 -0400)]
v4l2object: Fix tiled stride request
Fix stride request for tiled format and improve logging.