Dan Kegel [Sun, 2 Feb 2014 17:57:03 +0000 (09:57 -0800)]
v4l2: Remove obsolete definition GST_V4L2_MISSING_BUFDECL
The only use was removed by
9edc0c0365f79ab07ff2e65461c6696e3931a3f0
https://bugzilla.gnome.org/show_bug.cgi?id=723446
Rafał Mużyło [Tue, 4 Feb 2014 12:43:56 +0000 (13:43 +0100)]
gst: Don't use endianness-specific S8 audio format
It does not exist.
https://bugzilla.gnome.org/show_bug.cgi?id=723331
Julien Isorce [Fri, 31 Jan 2014 14:17:54 +0000 (14:17 +0000)]
cairooverlay: add support for RGB16
https://bugzilla.gnome.org/show_bug.cgi?id=723289
Per x Johansson [Thu, 30 Jan 2014 08:43:50 +0000 (09:43 +0100)]
matroskamux: Fix constantly growing used uid list
Moves the used uid list to the class to avoid having it grow forever.
https://bugzilla.gnome.org/show_bug.cgi?id=723269
Edward Hervey [Thu, 30 Jan 2014 09:44:05 +0000 (10:44 +0100)]
Automatic update of common submodule
From
d48bed3 to
1a07da9
Mike Sheldon [Fri, 24 Jan 2014 01:52:08 +0000 (01:52 +0000)]
wavparse: Ignore Broadcast Wave Format (BWF) tags when searching for 'fmt' chunk
https://bugzilla.gnome.org/show_bug.cgi?id=723125
Edward Hervey [Wed, 29 Jan 2014 09:37:53 +0000 (10:37 +0100)]
check: Use fakesink sync=True instead of an audio sink
Ensures the test can run on systems without alsa (or any audio output for
that matter), and will avoid people running build slaves wondering what
the hell was beeping during the night :)
Mark Nauwelaerts [Mon, 27 Jan 2014 19:05:42 +0000 (20:05 +0100)]
ac3parse: custom get_sink_caps handling for private stream caps
... now that those are transformed rather than parsed, some transforming
of caps is required as well to make auto-plugging succeed.
Ryan Lortie [Sat, 25 Jan 2014 07:06:00 +0000 (02:06 -0500)]
v4l2: guard use of ENODATA with #ifdef
Not all systems with v4l have ENODATA defined, so check that we have it
before attempting to use it.
https://bugzilla.gnome.org/show_bug.cgi?id=722953
Sebastian Dröge [Fri, 24 Jan 2014 11:37:39 +0000 (12:37 +0100)]
Revert "rtspsrc: Proxy rtpjitterbuffer do-retransmission property"
This reverts commit
9f7b1128b1f00a2b87a232ff890867549ab95ba5.
This should be handled automatically be rtspsrc if the AVPF profile
is used, and manual enabling of it can be done with the new-manager
signal.
Wim Taymans [Fri, 24 Jan 2014 09:21:11 +0000 (10:21 +0100)]
rtspsrc: add signal to notify of new manager
So that you can configure and connect to signals on the rtpbin.
See https://bugzilla.gnome.org/show_bug.cgi?id=722866
Aleix Conchillo Flaqué [Thu, 23 Jan 2014 23:17:58 +0000 (15:17 -0800)]
rtspsrc: Proxy rtpjitterbuffer do-retransmission property
https://bugzilla.gnome.org/show_bug.cgi?id=722866
Wim Taymans [Tue, 21 Jan 2014 16:52:44 +0000 (17:52 +0100)]
rtpjitterbuffer: handle expected packet being an RTX packet
If the expected packet (do_next_seqnum is TRUE) is the one we requested
for retranmission earlier, do the logic to update the retransmission
statistics as well before setting up the timers for the next expected
packet.
Also reset the retransmission counter if the timer is reused for another
seqnum.
Wim Taymans [Tue, 21 Jan 2014 14:48:20 +0000 (15:48 +0100)]
rtpbin: add a caps accumulator for the request-pt-map signal
Add an accumulator that stops the signal emission as soon as a caps has
been retrieved. Otherwise the default handler would continue emitting
the signal and possibly overwrite the result with NULL again.
Wim Taymans [Tue, 21 Jan 2014 14:25:54 +0000 (15:25 +0100)]
rtxreceive: copy flags and timestamps from original buffer
Wim Taymans [Tue, 21 Jan 2014 14:24:52 +0000 (15:24 +0100)]
rtpjitterbuffer: ignore invalid timestamps in rtt calculation
When the input buffer does not have a valid timestamp, don't try to
calculate the round-trip-time.
Reynaldo H. Verdejo Pinochet [Thu, 16 Jan 2014 17:23:13 +0000 (14:23 -0300)]
matroskaparse: better default caps when none set
Uses information gathered during EBML parsing to
forge a more suitable set of caps instead of blindly
assuming everything is video/x-matroska.
For consistency, stream type reset was added to
matroska-demux too.
https://bugzilla.gnome.org/show_bug.cgi?id=722311
George Kiagiadakis [Wed, 15 Jan 2014 16:29:35 +0000 (17:29 +0100)]
tests: rtprtx::test_rtxreceive_data_reconstruction: remove useless code for triggering retransmission
There is no need anymore to push yet another buffer in rtxsend
in order to trigger the previously requested retransmissions
to actually happen.
George Kiagiadakis [Wed, 15 Jan 2014 16:27:19 +0000 (17:27 +0100)]
tests: rtprtx::test_rtxreceive_data_reconstruction: fix race condition
Now with rtprtxsend pushing rtx buffers from a different thread,
this is necessary to ensure that the result of the test is deterministic.
This code makes use of GstCheck's global GMutex and GCond that are
being used inside GstCheck's sink pad chain() function in order
to synchronize with it.
George Kiagiadakis [Wed, 15 Jan 2014 16:17:57 +0000 (17:17 +0100)]
tests: rtprtx::test_rtxsender_packet_retention: fix race condition
Now with rtprtxsend pushing rtx buffers from a different thread,
this is necessary to ensure that the result of the test is deterministic.
This code makes use of GstCheck's global GMutex and GCond that are
being used inside GstCheck's sink pad chain() function in order
to synchronize with it.
George Kiagiadakis [Wed, 15 Jan 2014 10:26:33 +0000 (11:26 +0100)]
tests: rtprtx::test_push_forward_seq: fix race condition
Now with rtprtxsend pushing rtx buffers from a different thread,
this is necessary to ensure that the result of the test is deterministic.
This code makes use of GstCheck's global GMutex and GCond that are
being used inside GstCheck's sink pad chain() function in order
to synchronize with it.
George Kiagiadakis [Wed, 15 Jan 2014 08:47:03 +0000 (09:47 +0100)]
tests: rtprtx::test_push_forward_seq: fix buffer refcounting
George Kiagiadakis [Tue, 21 Jan 2014 12:42:38 +0000 (13:42 +0100)]
rtprtxsend: ensure that no rtx buffers are sent after EOS
To do that, enqueue the EOS event to be sent from the srcpad task
thread and flush the queue right afterwards, so that no more rtx
buffers can be sent, even if there are more requests coming in.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=722370
George Kiagiadakis [Wed, 15 Jan 2014 08:46:14 +0000 (09:46 +0100)]
rtprtxsend: run a new GstTask on the src pad
The reason behind this is to minimize the retransmission delay.
Previously, when a NACK was received, rtprtxsend would put a
retransmission packet in a queue and it would send it from chain(),
i.e. only after a new buffer would arrive.
This unfortunately was causing big delays, in the order of 60-100 ms,
which can be critical for the receiver side.
By having a separate GstTask for pushing buffers out of rtxsend,
we can push buffers out right after receiving the event, without
waiting for chain() to get called.
Tim-Philipp Müller [Fri, 3 Jan 2014 17:47:55 +0000 (17:47 +0000)]
shout2send: error out if no caps were received
Instead of assuming that input is ogg.
Tim-Philipp Müller [Fri, 3 Jan 2014 17:30:12 +0000 (17:30 +0000)]
shout2send: accept audio/webm, audio/ogg and video/ogg as well
Those are advertised in the template caps, but the
setcaps handler didn't handle them. But then oggmux
and oggparse at least for now still always output
application/ogg anyway, so that wasn't a real problem.
Sebastian Dröge [Mon, 20 Jan 2014 09:12:45 +0000 (10:12 +0100)]
rtpvp8pay: Don't leak input buffers
https://bugzilla.gnome.org/show_bug.cgi?id=722414
Mark Nauwelaerts [Sun, 19 Jan 2014 16:40:56 +0000 (17:40 +0100)]
avimux: reset some more audio pad data when needed
Mark Nauwelaerts [Sun, 19 Jan 2014 16:38:59 +0000 (17:38 +0100)]
avimux: write correct blockalign for vbr audio
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=720659
Aleix Conchillo Flaqué [Fri, 17 Jan 2014 01:36:12 +0000 (17:36 -0800)]
rtpjitterbuffer: do not drop serialized events when latency is set
Serialized events are now queued in the jitter buffer, so we don't
want to drop them even latency is set.
https://bugzilla.gnome.org/show_bug.cgi?id=722372
Michael Olbrich [Wed, 11 Dec 2013 08:36:22 +0000 (09:36 +0100)]
avimux: don't make the buffer writable unless absolutely necessary
https://bugzilla.gnome.org/show_bug.cgi?id=722396
Michael Olbrich [Thu, 12 Sep 2013 14:56:56 +0000 (16:56 +0200)]
v4l2: set GST_BUFFER_FLAG_DELTA_UNIT when appropriate
https://bugzilla.gnome.org/show_bug.cgi?id=722394
Michael Olbrich [Fri, 17 Jan 2014 06:46:09 +0000 (07:46 +0100)]
v4l2bufferpool: don't ref the newly created allocator
Otherwise the allocator will never be deleted.
https://bugzilla.gnome.org/show_bug.cgi?id=712612
Sebastian Dröge [Wed, 15 Jan 2014 21:47:12 +0000 (22:47 +0100)]
matroskademux: Don't skip all video frames until the first keyframe
Instead do it like all other demuxers and let parsers and decoders
handle that. The keyframe information inside the container might
be completely wrong like in the sample file of the bug report,
and if it is correct and we push no keyframes, then the parsers
and decoders will handle that properly anyway.
https://bugzilla.gnome.org/show_bug.cgi?id=682276
Thiago Santos [Mon, 13 Jan 2014 13:08:09 +0000 (10:08 -0300)]
qtdemux: remove elst_offset variables
They are not used anymore
Thiago Santos [Tue, 7 Jan 2014 00:36:17 +0000 (21:36 -0300)]
qtdemux: remember reverse playback when verifying the segment end
Check if the rate is positive or negative to correctly compare the current
position with the segment to make reverse playback work
Thiago Santos [Fri, 3 Jan 2014 13:59:35 +0000 (10:59 -0300)]
qtdemux: do not ignore empty segments
Make sure empty segments are used and pushed with a gap event
to represent its data (or lack of it)
Each QtSegment is mapped into a GstSegment with the corresponding
media range. For empty QtSegments a gap event is pushed instead
of GstBuffers and it advances to the next QtSegment.
To make this work with seeks, need to keep track of the starting
'base' to make sure it remains consistently increasing when
pushing new segment events.
For example: if a seek makes qtdemux start from 5s, the first
segment will have a base=0. When the next segment is activated,
its base time will be QtSegment.time - qtdemux.segment_base so
that it doesn't include the first 5s that weren't played and
shouldn't be accounted on the running time
This purposedly will remove the fix made for
https://bugzilla.gnome.org/show_bug.cgi?id=700264, at this
point it was decided to respect the gaps, even if they cause
a delay on playback, because that's the way the file was crafted.
https://bugzilla.gnome.org/show_bug.cgi?id=345830
Olivier Crête [Fri, 13 Dec 2013 04:05:43 +0000 (23:05 -0500)]
tests: Remove usage of the system clock from the rtprtx test
Olivier Crête [Fri, 13 Dec 2013 04:22:41 +0000 (23:22 -0500)]
tests: Initial segment in rtpcollision test
George Kiagiadakis [Tue, 14 Jan 2014 14:56:42 +0000 (15:56 +0100)]
examples/*-rtpaux: specify payload type association for the audio stream, so that rtx works also for audio
George Kiagiadakis [Tue, 14 Jan 2014 12:08:18 +0000 (13:08 +0100)]
rtprtxsend: remove wrong check for payload type not having been set
1) pt can be lower than 96
2) there is no point in checking that because rtprtxsend will not
even store buffers for payload types that it doesn't know about,
so this case will never be reached
George Kiagiadakis [Tue, 14 Jan 2014 12:01:41 +0000 (13:01 +0100)]
rtprtxsend: fix data locking when creating rtx packets
This patch moves the creation of rtx packets to be done early,
in the src_event() function, when they are requested. The purpose
is to run gst_rtp_rtx_buffer_new() with the object locked to
protect internal data, because if it is done at the pushing stage,
we would have to lock and unlock multiple times in a row while we
are pushing the rtx buffers.
Previously there was no locking at all, which was terribly wrong.
George Kiagiadakis [Tue, 14 Jan 2014 11:50:23 +0000 (12:50 +0100)]
rtprtxsend: lock access to internal data in sink_event() function
George Kiagiadakis [Tue, 14 Jan 2014 11:44:06 +0000 (12:44 +0100)]
rtprtxsend: remove unnecessary call to reset() from finalize()
...and use _free_full() on the pending buffers queue now that
reset() is not being called
George Kiagiadakis [Tue, 14 Jan 2014 11:38:51 +0000 (12:38 +0100)]
rtprtxsend: remove unused parameter from the internal reset() method
George Kiagiadakis [Tue, 14 Jan 2014 11:32:38 +0000 (12:32 +0100)]
rtprtxsend: Use g_slice_* for allocating internal structures
George Kiagiadakis [Tue, 14 Jan 2014 11:28:01 +0000 (12:28 +0100)]
rtprtxreceive: remove stupid mutex unlock in the middle of chain()
George Kiagiadakis [Tue, 14 Jan 2014 11:25:36 +0000 (12:25 +0100)]
rtprtxreceive: use GST_DEBUG_OBJECT / GST_WARNING_OBJECT instead of GST_DEBUG / g_warning
George Kiagiadakis [Tue, 14 Jan 2014 11:19:58 +0000 (12:19 +0100)]
rtprtxreceive: fix integer format specifiers in GST_DEBUG
seqnum in this function is 32-bit, so G_GUINT16_FORMAT would
produce undefined output on big endian systems
George Kiagiadakis [Tue, 14 Jan 2014 11:13:49 +0000 (12:13 +0100)]
rtprtxsend: change the rtx_pt_map directly in set_property() instead of delaying it for chain()
The same lock is held, so there is no point in complicating it...
George Kiagiadakis [Tue, 14 Jan 2014 11:07:58 +0000 (12:07 +0100)]
rtprtxreceive: change the rtx_pt_map directly in set_property() instead of delaying it for chain()
The same lock is held, so there is no point in complicating it...
George Kiagiadakis [Tue, 14 Jan 2014 10:55:00 +0000 (11:55 +0100)]
rtprtxreceive: simplify the code of finalize()
George Kiagiadakis [Tue, 14 Jan 2014 10:52:21 +0000 (11:52 +0100)]
rtprtxreceive: use the GstObject lock instead of a new one
George Kiagiadakis [Tue, 14 Jan 2014 10:45:52 +0000 (11:45 +0100)]
rtprtxsend: use the GstObject lock instead of a new one
Nicolas Dufresne [Tue, 10 Dec 2013 19:29:55 +0000 (14:29 -0500)]
v4l2: Add NV12_64Z32 support
https://bugzilla.gnome.org/show_bug.cgi?id=722127
Justin Joy [Tue, 14 Jan 2014 10:08:49 +0000 (19:08 +0900)]
osshelper: Don't leak fd when getting card name
https://bugzilla.gnome.org/show_bug.cgi?id=722163
Vincent Penquerc'h [Tue, 14 Jan 2014 09:43:33 +0000 (09:43 +0000)]
Revert "aacparse: relax the detection of ADTS"
This was pushed by mistake along with the V4L2 fix.
This reverts commit
8eb4b032bef444397c4d211f2095c173ba114187.
Justin Joy [Tue, 14 Jan 2014 06:42:01 +0000 (15:42 +0900)]
rtpg726pay: don't leak encoding_name string
https://bugzilla.gnome.org/show_bug.cgi?id=722159
Vincent Penquerc'h [Mon, 13 Jan 2014 09:14:00 +0000 (09:14 +0000)]
v4l2: fix build break using V4L2_CAP_VIDEO_M2M_MPLANE
This may not be defined. Since the previous version used
only the other define (V4L2_CAP_VIDEO_OUTPUT_MPLANE), fall
back on this only when not available.
Akihiro Tsukada [Tue, 26 Feb 2013 16:45:52 +0000 (01:45 +0900)]
aacparse: relax the detection of ADTS
According to ISO/IEC 13818-7, "channel_config" field in ADTS header
may have value of 0, as in the case of frame with PCE.
gst_aac_parse_detect_streams() returned FALSE for those frames
and discarded them.
Julien Isorce [Tue, 7 Jan 2014 11:58:23 +0000 (11:58 +0000)]
v4l2bufferpool: check set_config return value in gst_v4l2_buffer_pool_new
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Fri, 10 Jan 2014 17:40:31 +0000 (12:40 -0500)]
v4l2object: Add parsed=1 field for encoded output
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Fri, 10 Jan 2014 17:39:16 +0000 (12:39 -0500)]
v4l2object: Don't leak empty caps
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Julien Isorce [Wed, 8 Jan 2014 16:51:21 +0000 (16:51 +0000)]
v4l2bufferpool: do not stop a stream not previously started
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Thu, 12 Dec 2013 21:27:21 +0000 (16:27 -0500)]
v4l2object: Don't enforce dimension field on encoded formats
Don't enforce having width, height and framerate in template caps for encoded
formats. These don't always need to be exposed and may break negotiation for
decoder and decoding sink. If needed, these field will be automatically added
when probed caps are known.
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Julien Isorce [Thu, 12 Dec 2013 17:09:59 +0000 (17:09 +0000)]
v4l2object: unref downstream pool
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Julien Isorce [Wed, 18 Dec 2013 18:37:23 +0000 (13:37 -0500)]
v4l2bufferpool: add gst_v4l2_buffer_pool_flush
STREAMOFF set all v4l2buffers to DEQUEUE state.
Then for CAPTURE we call QBUF on each buffer.
For OUTPUT the buffers are just push back in the GstBufferPool
base class 's queue.
But the loop actually looks like the same.
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Benjamin Gaignard [Mon, 16 Dec 2013 22:29:30 +0000 (17:29 -0500)]
v4l2object: Add vp8 support
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Thu, 12 Dec 2013 21:46:09 +0000 (16:46 -0500)]
v4l2object: Don't force framerate field for OUTPUT
If there is nothing that seems to force a certain framerate on output device, it is
preferable to simply not set that feild. This allow negotiation with tsdemux in a
decoder for example.
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Thu, 12 Dec 2013 19:07:03 +0000 (14:07 -0500)]
v4l2object: _v4l2fourcc_to_structure() can be static
This function is not used anymore outside v4l2object.
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Thu, 12 Dec 2013 19:22:26 +0000 (14:22 -0500)]
v4l2object: Add MPEG1/2 support
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Thu, 12 Dec 2013 17:18:45 +0000 (12:18 -0500)]
v4l2object: Ask for a decent buffer size when dealing with encoded formats
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Sat, 7 Dec 2013 19:03:53 +0000 (14:03 -0500)]
v4l2bufferpool: On warn on size change if n_planes > 1
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Julien Isorce [Tue, 31 Dec 2013 16:38:09 +0000 (16:38 +0000)]
v4l2object: check if translated format is valid
Also add a FIXME in gst_v4l2_object_setup_format
to note that the whole function has to be improved
in order to support ENCODED formats.
It requires to have an encoder device which we do not
have right now.
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Sat, 7 Dec 2013 15:31:15 +0000 (10:31 -0500)]
v4l2object: Validate returned dimensions
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Fri, 6 Dec 2013 00:36:25 +0000 (19:36 -0500)]
v4l2object: Ensure max is not smaller then min in decide_allocation
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Fri, 6 Dec 2013 00:36:06 +0000 (19:36 -0500)]
v4l2object: Don't keep the max paramter when using our own pool
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Fri, 6 Dec 2013 00:34:44 +0000 (19:34 -0500)]
v4l2bufferpool: Respect the suggested min buffer
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Thu, 5 Dec 2013 23:48:44 +0000 (18:48 -0500)]
v4l2object: Allocate pool if needed in decide_allocation
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Thu, 5 Dec 2013 23:49:19 +0000 (18:49 -0500)]
v4l2object: Add V4L2_CID_MIN_BUFFERS_FOR_CAPTURE support
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Thu, 5 Dec 2013 23:48:15 +0000 (18:48 -0500)]
v4l2: Move decide allocation into v4l2object
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Thu, 5 Dec 2013 18:51:13 +0000 (13:51 -0500)]
v4l2object: Implement _setup_format()
This method allow setting up the object from the currently configured format on the
device. This is useful for M2M element where input data decides the format that will
be set on capture side.
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Tue, 10 Dec 2013 19:34:17 +0000 (14:34 -0500)]
v4l2object: Split out saving format from set_format()
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Julien Isorce [Tue, 31 Dec 2013 15:37:26 +0000 (15:37 +0000)]
v4l2object: set only one plane for encoded format
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Wed, 4 Dec 2013 21:49:13 +0000 (16:49 -0500)]
v4l2object: Move code block where it belongs
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Wed, 4 Dec 2013 21:26:12 +0000 (16:26 -0500)]
v4l2object: Don't check format specific information
The number of plane, and the stride does not represent a capability change. Same caps
can have different stride from the default GstVideoInfo and the number of planes will
never change for 1 format.
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Wed, 4 Dec 2013 21:23:18 +0000 (16:23 -0500)]
v4l2object: Move the extrapolation of stride at the right place
Now that we have a stride array, we should extrapolate only when
eeded (non multi-planar buffer).
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Wed, 4 Dec 2013 20:09:44 +0000 (15:09 -0500)]
v4l2object: Move back assertions where they should be
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Wed, 4 Dec 2013 20:09:10 +0000 (15:09 -0500)]
v4l2object: Move mplane logic into gst_v4l2_object_get_caps_info()
It makes the gst_v4l2_object_set_format() slightly simplier and will make that
logic reusable. Note that gst_v4l2_object_has_mplane() will always return the
same value for one device. There is no need to check against the caps as this
has already been done by _open.
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Tue, 3 Dec 2013 23:27:47 +0000 (18:27 -0500)]
v4l2object: Split _v4l2fourcc_to_video_format
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Mon, 2 Dec 2013 23:05:11 +0000 (18:05 -0500)]
v4l2bufferpool: Request buffers only once
VIDIOC_REQBUFS allocates buffer, it has no place inside set_config. Also, some driver do
no allow multiple calls to this ioctl.
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Mon, 2 Dec 2013 20:26:50 +0000 (15:26 -0500)]
v4l2object: Don't validate dimension for encoded format
We set the dimensions just in case but don't validate them
afterwards. For some codecs the dimensions are *not* in the
bitstream, IIRC VC1 in ASF mode for example.
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Thu, 28 Nov 2013 22:10:29 +0000 (17:10 -0500)]
v4l2object: Quirks for dev without initial format
Most M2M have undefined behaviour initially when VIDIOC_G_FMT is called.
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Thu, 28 Nov 2013 22:09:26 +0000 (17:09 -0500)]
v4l2object: Add gst_v4l2_object_open_shared()
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Thu, 28 Nov 2013 22:07:05 +0000 (17:07 -0500)]
v4l2object: Implement gst_v4l2_dup()
This will duplicated the FD from another object and copy over the probed result.
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Thu, 28 Nov 2013 21:59:59 +0000 (16:59 -0500)]
v4l2object: make IO_MODE enum public
This is to allow adding a second io-mode property on M2M device like decoder so
input and output can be controlled separatly.
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Wed, 5 Jun 2013 03:42:24 +0000 (23:42 -0400)]
v4l2: better handle quirks activation
This way we can activate deactivate those quirks all at once at one
place.
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Wed, 5 Jun 2013 03:34:04 +0000 (23:34 -0400)]
v4l2: Fix h264 caps
V4L2_PIX_FMT_H264 is documentated as byte-stream (with start code). The ensure proper
negotiation with element like h264parse.
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Nicolas Dufresne [Fri, 6 Dec 2013 19:44:51 +0000 (14:44 -0500)]
v4l2object: Split caps in different categories
This is need to correctly expose capabilities on specialized devices
like decoders and encoders.
https://bugzilla.gnome.org/show_bug.cgi?id=720568
Tim-Philipp Müller [Fri, 10 Jan 2014 14:16:00 +0000 (14:16 +0000)]
matroskademux: don't leak TOC chapter list