platform/upstream/gstreamer.git
10 years agomatroskamux: Fix constantly growing used uid list
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

10 years agoAutomatic update of common submodule
Edward Hervey [Thu, 30 Jan 2014 09:44:05 +0000 (10:44 +0100)]
Automatic update of common submodule

From d48bed3 to 1a07da9

10 years agowavparse: Ignore Broadcast Wave Format (BWF) tags when searching for 'fmt' chunk
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

10 years agocheck: Use fakesink sync=True instead of an audio sink
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 :)

10 years agoac3parse: custom get_sink_caps handling for private stream caps
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.

10 years agov4l2: guard use of ENODATA with #ifdef
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

10 years agoRevert "rtspsrc: Proxy rtpjitterbuffer do-retransmission property"
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.

10 years agortspsrc: add signal to notify of new manager
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

10 years agortspsrc: Proxy rtpjitterbuffer do-retransmission property
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

10 years agortpjitterbuffer: handle expected packet being an RTX packet
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.

10 years agortpbin: add a caps accumulator for the request-pt-map signal
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.

10 years agortxreceive: copy flags and timestamps from original buffer
Wim Taymans [Tue, 21 Jan 2014 14:25:54 +0000 (15:25 +0100)]
rtxreceive: copy flags and timestamps from original buffer

10 years agortpjitterbuffer: ignore invalid timestamps in rtt calculation
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.

10 years agomatroskaparse: better default caps when none set
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

10 years agotests: rtprtx::test_rtxreceive_data_reconstruction: remove useless code for triggerin...
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.

10 years agotests: rtprtx::test_rtxreceive_data_reconstruction: fix race condition
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.

10 years agotests: rtprtx::test_rtxsender_packet_retention: fix race condition
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.

10 years agotests: rtprtx::test_push_forward_seq: fix race condition
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.

10 years agotests: rtprtx::test_push_forward_seq: fix buffer refcounting
George Kiagiadakis [Wed, 15 Jan 2014 08:47:03 +0000 (09:47 +0100)]
tests: rtprtx::test_push_forward_seq: fix buffer refcounting

10 years agortprtxsend: ensure that no rtx buffers are sent after EOS
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

10 years agortprtxsend: run a new GstTask on the src pad
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.

10 years agoshout2send: error out if no caps were received
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.

10 years agoshout2send: accept audio/webm, audio/ogg and video/ogg as well
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.

10 years agortpvp8pay: Don't leak input buffers
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

10 years agoavimux: reset some more audio pad data when needed
Mark Nauwelaerts [Sun, 19 Jan 2014 16:40:56 +0000 (17:40 +0100)]
avimux: reset some more audio pad data when needed

10 years agoavimux: write correct blockalign for vbr audio
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

10 years agortpjitterbuffer: do not drop serialized events when latency is set
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

10 years agoavimux: don't make the buffer writable unless absolutely necessary
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

10 years agov4l2: set GST_BUFFER_FLAG_DELTA_UNIT when appropriate
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

10 years agov4l2bufferpool: don't ref the newly created allocator
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

10 years agomatroskademux: Don't skip all video frames until the first keyframe
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

10 years agoqtdemux: remove elst_offset variables
Thiago Santos [Mon, 13 Jan 2014 13:08:09 +0000 (10:08 -0300)]
qtdemux: remove elst_offset variables

They are not used anymore

10 years agoqtdemux: remember reverse playback when verifying the segment end
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

10 years agoqtdemux: do not ignore empty segments
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

10 years agotests: Remove usage of the system clock from the rtprtx test
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

10 years agotests: Initial segment in rtpcollision test
Olivier Crête [Fri, 13 Dec 2013 04:22:41 +0000 (23:22 -0500)]
tests: Initial segment in rtpcollision test

10 years agoexamples/*-rtpaux: specify payload type association for the audio stream, so that...
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

10 years agortprtxsend: remove wrong check for payload type not having been set
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

10 years agortprtxsend: fix data locking when creating rtx packets
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.

10 years agortprtxsend: lock access to internal data in sink_event() function
George Kiagiadakis [Tue, 14 Jan 2014 11:50:23 +0000 (12:50 +0100)]
rtprtxsend: lock access to internal data in sink_event() function

10 years agortprtxsend: remove unnecessary call to reset() from finalize()
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

10 years agortprtxsend: remove unused parameter from the internal reset() method
George Kiagiadakis [Tue, 14 Jan 2014 11:38:51 +0000 (12:38 +0100)]
rtprtxsend: remove unused parameter from the internal reset() method

10 years agortprtxsend: Use g_slice_* for allocating internal structures
George Kiagiadakis [Tue, 14 Jan 2014 11:32:38 +0000 (12:32 +0100)]
rtprtxsend: Use g_slice_* for allocating internal structures

10 years agortprtxreceive: remove stupid mutex unlock in the middle of chain()
George Kiagiadakis [Tue, 14 Jan 2014 11:28:01 +0000 (12:28 +0100)]
rtprtxreceive: remove stupid mutex unlock in the middle of chain()

10 years agortprtxreceive: use GST_DEBUG_OBJECT / GST_WARNING_OBJECT instead of GST_DEBUG / g_warning
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

10 years agortprtxreceive: fix integer format specifiers in GST_DEBUG
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

10 years agortprtxsend: change the rtx_pt_map directly in set_property() instead of delaying...
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...

10 years agortprtxreceive: change the rtx_pt_map directly in set_property() instead of delaying...
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...

10 years agortprtxreceive: simplify the code of finalize()
George Kiagiadakis [Tue, 14 Jan 2014 10:55:00 +0000 (11:55 +0100)]
rtprtxreceive: simplify the code of finalize()

10 years agortprtxreceive: use the GstObject lock instead of a new one
George Kiagiadakis [Tue, 14 Jan 2014 10:52:21 +0000 (11:52 +0100)]
rtprtxreceive: use the GstObject lock instead of a new one

10 years agortprtxsend: 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

10 years agov4l2: Add NV12_64Z32 support
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

10 years agoosshelper: Don't leak fd when getting card name
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

10 years agoRevert "aacparse: relax the detection of ADTS"
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.

10 years agortpg726pay: don't leak encoding_name string
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

10 years agov4l2: fix build break using V4L2_CAP_VIDEO_M2M_MPLANE
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.

10 years agoaacparse: relax the detection of ADTS
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.

10 years agov4l2bufferpool: check set_config return value in gst_v4l2_buffer_pool_new
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

10 years agov4l2object: Add parsed=1 field for encoded output
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

10 years agov4l2object: Don't leak empty caps
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

10 years agov4l2bufferpool: do not stop a stream not previously started
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

10 years agov4l2object: Don't enforce dimension field on encoded formats
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

10 years agov4l2object: unref downstream pool
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

10 years agov4l2bufferpool: add gst_v4l2_buffer_pool_flush
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

10 years agov4l2object: Add vp8 support
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

10 years agov4l2object: Don't force framerate field for OUTPUT
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

10 years agov4l2object: _v4l2fourcc_to_structure() can be static
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

10 years agov4l2object: Add MPEG1/2 support
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

10 years agov4l2object: Ask for a decent buffer size when dealing with encoded formats
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

10 years agov4l2bufferpool: On warn on size change if n_planes > 1
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

10 years agov4l2object: check if translated format is valid
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

10 years agov4l2object: Validate returned dimensions
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

10 years agov4l2object: Ensure max is not smaller then min in decide_allocation
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

10 years agov4l2object: Don't keep the max paramter when using our own pool
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

10 years agov4l2bufferpool: Respect the suggested min buffer
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

10 years agov4l2object: Allocate pool if needed in decide_allocation
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

10 years agov4l2object: Add V4L2_CID_MIN_BUFFERS_FOR_CAPTURE support
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

10 years agov4l2: Move decide allocation into v4l2object
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

10 years agov4l2object: Implement _setup_format()
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

10 years agov4l2object: Split out saving format from set_format()
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

10 years agov4l2object: set only one plane for encoded format
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

10 years agov4l2object: Move code block where it belongs
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

10 years agov4l2object: Don't check format specific information
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

10 years agov4l2object: Move the extrapolation of stride at the right place
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

10 years agov4l2object: Move back assertions where they should be
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

10 years agov4l2object: Move mplane logic into gst_v4l2_object_get_caps_info()
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

10 years agov4l2object: Split _v4l2fourcc_to_video_format
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

10 years agov4l2bufferpool: Request buffers only once
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

10 years agov4l2object: Don't validate dimension for encoded format
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

10 years agov4l2object: Quirks for dev without initial format
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

10 years agov4l2object: Add gst_v4l2_object_open_shared()
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

10 years agov4l2object: Implement gst_v4l2_dup()
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

10 years agov4l2object: make IO_MODE enum public
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

10 years agov4l2: better handle quirks activation
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

10 years agov4l2: Fix h264 caps
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

10 years agov4l2object: Split caps in different categories
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

10 years agomatroskademux: don't leak TOC chapter list
Tim-Philipp Müller [Fri, 10 Jan 2014 14:16:00 +0000 (14:16 +0000)]
matroskademux: don't leak TOC chapter list

10 years agomatroskamux: remove obsolete write-dummy-and-overwrite-on-eos code
Vincent Penquerc'h [Fri, 10 Jan 2014 08:52:16 +0000 (08:52 +0000)]
matroskamux: remove obsolete write-dummy-and-overwrite-on-eos code

The need for rewriting apparently is obsolete 0.10 leftover.
We now have caps for subtitles when we create the headers,
so we always write the correct data in the first place.

10 years agortprtxsend: remove duplicate assignment
Tim-Philipp Müller [Thu, 9 Jan 2014 23:55:16 +0000 (23:55 +0000)]
rtprtxsend: remove duplicate assignment

Coverity CID 1151680

10 years agomatroskamux: write subtitle codec ID and data at start when known
Vincent Penquerc'h [Thu, 9 Jan 2014 18:25:04 +0000 (18:25 +0000)]
matroskamux: write subtitle codec ID and data at start when known

This avoids issues with writing dummy data first, then having
to come back and write correct data later. Doing so prevents
the muxed stream from being actually streamable.

https://bugzilla.gnome.org/show_bug.cgi?id=712134