Aurélien Zanelli [Fri, 5 Sep 2014 14:34:26 +0000 (16:34 +0200)]
v4l2: query crop configuration after each call of S_CROP
S_CROP ioctl is write-only and the device can adjust crop rectangle so
we query back the crop configuration after each S_CROP to know what has
been done.
https://bugzilla.gnome.org/show_bug.cgi?id=736133
Matej Knopp [Thu, 26 Feb 2015 01:12:18 +0000 (02:12 +0100)]
matroskademux: V_MS/VFW/FOURCC streams have DTS instead of PTS
When such stream is present demuxer should set DTS on buffers instead
of PTS. This is consistent with how VLC and libav/ffmpeg handle VFW
streams.
Sample file
https://s3.amazonaws.com/MatejK/Samples/Matroska-VFW-DTS-Only.mkv
https://bugzilla.gnome.org/show_bug.cgi?id=745192
Aleix Conchillo Flaqué [Thu, 26 Feb 2015 00:45:11 +0000 (16:45 -0800)]
v4l2bufferpool: Check corruption flag on the right buffer
We where checking the buffer we are copying to instead of the buffer we
are copying from.
https://bugzilla.gnome.org/show_bug.cgi?id=740040
Aurélien Zanelli [Mon, 19 Jan 2015 14:29:24 +0000 (15:29 +0100)]
v4l2object: set colorspace in caps for capture devices
This information is set by the driver for a capture device, and so could
be forwarded to pipeline by setting the colorimetry in caps.
https://bugzilla.gnome.org/show_bug.cgi?id=743186
Aurélien Zanelli [Mon, 6 Oct 2014 15:30:06 +0000 (17:30 +0200)]
v4l2bufferpool: fix import_userptr() in single-planar API when n_planes > 1
In the V4L2 single-planar API, when format is semi-planar/planar,
drivers expect the planes to be contiguous in memory.
So this commit change the way we handle semi-planar/planar format
(n_planes > 1) when we use the single-planar API (group->n_mem == 1).
To check that planes are contiguous and have expected size, ie: no
padding. We test the fact that plane 'i' start address + plane 'i'
expected size equals to plane 'i + 1' start address. If not, we return
in error.
Math are done in bufferpool rather than in allocator because the
former is aware of video info.
https://bugzilla.gnome.org/show_bug.cgi?id=738013
Aurélien Zanelli [Fri, 23 Jan 2015 09:15:46 +0000 (10:15 +0100)]
v4l2allocator: let bufferpool calculate image size when importing userptr
Offset are relative to the buffer and there is no guarantee substracting
them will give us the plane size. So we let bufferpool make the math as
it is more aware of video info than allocator and pass a size array to
allocator import function.
Pointed out by Nicolas Dufresne <nicolas.dufresne@collabora.com>
https://bugzilla.gnome.org/show_bug.cgi?id=738013
Philippe De Muyter [Thu, 11 Dec 2014 15:13:15 +0000 (16:13 +0100)]
v4l2object: recognize and distinguish all bayer arrangements
Up to now, v4l2src recognized only "bggr" amongst the bayer arrangements.
Recognize now also the "rggb", "gbrg" and "grbg" arrangements.
https://bugzilla.gnome.org/show_bug.cgi?id=742363
Aurélien Zanelli [Thu, 15 Jan 2015 15:11:53 +0000 (16:11 +0100)]
v4l2bufferpool: set v4l2_buffer.field when queuing buffer in an output device
According to the current specification, application must set this field
for an output device.
https://bugzilla.gnome.org/show_bug.cgi?id=743013
Ilya Konstantinov [Tue, 24 Feb 2015 03:57:24 +0000 (05:57 +0200)]
osxaudiosrc: iOS resampling causes stuttering
Fixes stuttering audio when iOS AU is resampling. To make AU resample,
one has to request a rate that differs from AVAudioSession's
sampleRate. The resampling itself is not the culprit, but rather our
API misuse.
AudioUnitRender modifies the mDataByteSize members with the
actual read bytes count. Therefore, they must be reinitialized
before each AudioUnitRender. (The buffers themselves can be
preallocated.)
The "stutter" was caused by one AudioUnitRender making the buffer
too small for other AudioUnitRender invocations, making them fail
with -50 (paramErr). By way of luck, when AU didn't resample, all
AudioUnitRender invocations read the same number of bytes.
(This patch addresses some non-interleaved audio concerns, but
at this moment the elements do not support non-interleaved audio
and non-interleaved is untested.)
https://bugzilla.gnome.org/show_bug.cgi?id=744922
Krzysztof Kotlenga [Sun, 22 Feb 2015 00:49:52 +0000 (01:49 +0100)]
rtspsrc: improve error message when unauthorized
Make use of NOT_AUTHORIZED error code instead of falling back to generic
READ error.
https://bugzilla.gnome.org/show_bug.cgi?id=601733
Tim-Philipp Müller [Mon, 23 Feb 2015 20:06:25 +0000 (20:06 +0000)]
ximagesrc: remove pointless g_return_val_if_fail()
ximage won't ever be NULL here because the dispose
function is called via ximage->dispose().
Thibault Saunier [Mon, 23 Feb 2015 18:40:25 +0000 (19:40 +0100)]
qtdemux: All segment resulting from a seek should have the same seqnum
https://bugzilla.gnome.org/show_bug.cgi?id=744983
Nicolas Dufresne [Fri, 20 Feb 2015 04:12:31 +0000 (23:12 -0500)]
v4l2: Enable copy when no known allocation params
When there is no allocation parameters in the query, enable copy
threshold. When this threshold is reached, the buffer pool will start
copying when the pool reaches a critical level. If the driver supports
CREATE_BUFS, this will be used instead.
Nicolas Dufresne [Fri, 20 Feb 2015 04:08:34 +0000 (23:08 -0500)]
v4l2bufferpool: Update allocator flags
When we hit emulated formats, we disable CREATE_BUFS since libv4l2
cope very badly with it. Also clear the allocator flags so we will
never try to allocate more buffers. This fixes failure when the copy
threshold is reached as we where calling CREATE_BUFS, which lead to
libv4l2 instability.
Nicolas Dufresne [Fri, 20 Feb 2015 04:07:23 +0000 (23:07 -0500)]
v4l2bufferpool: Use specific debug category
The pool has grown enough that it is now handy to seperate v4l2object
trace from v4l2bufferpool trace.
Vincent Penquerc'h [Thu, 19 Feb 2015 14:29:02 +0000 (14:29 +0000)]
rtpvp8pay: default encoding name to VP8
https://bugzilla.gnome.org/show_bug.cgi?id=737810
Vincent Penquerc'h [Thu, 19 Feb 2015 14:06:51 +0000 (14:06 +0000)]
rtpvp8pay: make caps writable before truncating them
https://bugzilla.gnome.org/show_bug.cgi?id=737810
Vincent Penquerc'h [Thu, 5 Feb 2015 10:29:26 +0000 (10:29 +0000)]
rtpvp8pay: negotiate encoding name
Chrome uses a different one than gstreamer.
https://bugzilla.gnome.org/show_bug.cgi?id=737810
Sebastian Dröge [Thu, 19 Feb 2015 10:35:07 +0000 (12:35 +0200)]
rtpsession: Send initial events on sync_rtcp pad when using RTP/RTCP muxing
Otherwise we will just send buffers on the pad without any events beforehand
and will get g_warnings() about that.
Luis de Bethencourt [Thu, 19 Feb 2015 11:20:51 +0000 (11:20 +0000)]
jack: case missing break statement
commit
b1098c2ea5eabea7af08ce51d22b867eaed2bbe2 added a new case in
gst_jack_audio_src_get_property() but forgot to add the break statement to it.
Luis de Bethencourt [Wed, 18 Feb 2015 19:18:00 +0000 (19:18 +0000)]
Revert "v4l2: fraction is reversed"
This reverts commit
b91fe36644b15ae070d72b9e8a9c7087e82aef12.
Luis de Bethencourt [Wed, 18 Feb 2015 17:49:29 +0000 (17:49 +0000)]
v4l2: fraction is reversed
In the fraction 1 / 2. 1 is the numerator and 2 is the denominator.
The arguments of fraction gst_value_set_fractions() are value,
numerator and denominator.
Also, gst_value_set_fraction() fails if denominator is 0 for obvious
reasons.
Nicolas Dufresne [Wed, 18 Feb 2015 01:26:55 +0000 (20:26 -0500)]
v4l2pool: Deactivate other pool
When importing buffers from a downstream pool, we need to deactivate
that pool to ensure it will be usable again later. Relying on the
refcount to reach zero does not work, since elements like xvimagesink
keeps a reference on their proposed pool.
Thiago Santos [Wed, 18 Feb 2015 13:10:53 +0000 (10:10 -0300)]
qtmux: remove not needed condition
gst_buffer_replace can handle NULL inputs by itself
Thiago Santos [Wed, 18 Feb 2015 12:40:14 +0000 (09:40 -0300)]
qtdemux: prefer the tfdt timestamp over the buffer's that is less accurate
The tfdt should be more accurate as the buffer timestamp is provided
by the fragmented format manifest and it might just be an approximation.
Sebastian Dröge [Tue, 17 Feb 2015 14:57:55 +0000 (16:57 +0200)]
rtpjitterbuffer: When resetting the jitterbuffer because of packet discont, don't flush sticky events
We will otherwise flush away STREAM_START, CAPS or SEGMENT events and will
confuse downstream with buffers that come before such events.
hark [Tue, 17 Feb 2015 11:20:57 +0000 (12:20 +0100)]
jack: Add property port-pattern to specify which JACK ports to connect to
https://bugzilla.gnome.org/show_bug.cgi?id=690719
Edward Hervey [Tue, 17 Feb 2015 11:31:06 +0000 (12:31 +0100)]
isomp4: Redefine gst_isoff_ symbols to gst_isoff_qt_
We need different symbol names, because these symbols are also present
in the fragmented plugin ... which will cause conflicts when doing
static linking
Luis de Bethencourt [Mon, 16 Feb 2015 14:31:05 +0000 (14:31 +0000)]
goom2k1: use fractional part of float division
Luis de Bethencourt [Mon, 16 Feb 2015 13:59:14 +0000 (13:59 +0000)]
splitmuxsin: remove dead code
Every instance of goto beach has buf_info equal NULL. Don't check
for a condition that never happens.
CID #1268399
Nicolas Dufresne [Mon, 16 Feb 2015 02:45:24 +0000 (21:45 -0500)]
splitmux-test: Parse error message
The test had a function to print the error, but was not parsing it.
This was causing warning about dbg_info being used uninitialized. If
the test was testing any errors, this would have crashed.
Nicolas Dufresne [Mon, 16 Feb 2015 02:34:28 +0000 (21:34 -0500)]
spectrum: Fix min and max for bands property
The number of FFTs is calculated with the following formula:
guint nfft = 2 * bands - 2;
nfft is passed to gst_fft_f32_new() as the len argument and is of type
unsigned integer. This method required that len is at leas 1, then
maximum G_MAXINT, as other values would be negative. If we extrapolate
from the formula above it means we need "bands" to be between 2 and
((guint)G_MAXINT + 2) / 2).
https://bugzilla.gnome.org/show_bug.cgi?id=744213
Nicolas Dufresne [Sun, 15 Feb 2015 20:51:55 +0000 (15:51 -0500)]
v4l2allocator: Fix freeing of shared memory
When memory (that has been shared using gst_memory_share()) are freed,
the memory (or the DMABUF FD) should not bee freed. These memories have
a parent. This also removes the extra _v4l2mem_free function and avoid
calling close twice on the DMABUF FD.
https://bugzilla.gnome.org/show_bug.cgi?id=744573
Thiago Santos [Sat, 14 Feb 2015 14:11:30 +0000 (11:11 -0300)]
qtdemux: do not use sparse streams in push-based seeking
Using the sparse streams can make the push-based seeking return
too far in the stream. It also can lead to issues as the
sparse streams will be ignored when restarting playback and,
if the sparse stream is the one that has the earliest sample,
it will confuse qtdemux's offsets as one stream will have
an earlier offset than the demuxer's one which might lead to
early EOS.
https://bugzilla.gnome.org/show_bug.cgi?id=742661
Jimmy Ohn [Fri, 13 Feb 2015 10:43:16 +0000 (19:43 +0900)]
pulsesink: Enhance code readability in pulsesink_query
In pulsesink_query function, we use a switch for the query
type. In the CAPS case, there is no 'break', instead we
return right away. Use a break and return at the end of
the function instead for better code readability.
https://bugzilla.gnome.org/show_bug.cgi?id=744461
Tim-Philipp Müller [Fri, 13 Feb 2015 20:40:48 +0000 (20:40 +0000)]
splitmuxsink: flag as sink from the start
Philippe Normand [Wed, 11 Feb 2015 14:30:44 +0000 (15:30 +0100)]
qtdemux: Initial 'sidx' atom parsing support
Parse the 'sidx' atom and update the total duration according to the
parser result. The isoff parser code is imported from
gst-plugins-bad's dashdemux and a gst_isoff_sidx_parser_add_data()
function was factored out of the gst_isoff_sidx_parser_add_buffer()
function.
https://bugzilla.gnome.org/show_bug.cgi?id=743578
Jan Schmidt [Tue, 10 Feb 2015 18:06:45 +0000 (05:06 +1100)]
flvdemux: Use gst_video_guess_framerate()
Use gst_video_guess_framerate() from libgstvideo to guess
sensible common framerates where possible from the
floating point fps in the stream.
Sebastian Dröge [Wed, 11 Feb 2015 12:53:02 +0000 (13:53 +0100)]
Improve and fix LATENCY query handling
This now follows the design docs everywhere, especially the maximum latency
handling.
https://bugzilla.gnome.org/show_bug.cgi?id=744106
Sebastian Dröge [Wed, 11 Feb 2015 09:29:55 +0000 (10:29 +0100)]
rtpsession: Handle first RTCP packet and early feedback correctly
According to RFC 4585 section 3.5.3 step 1 we are not allowed to send
an early RTCP packet for the very first one. It must be a regular one.
Also make sure to not use last_rtcp_send_time in any calculations until
we actually sent an RTCP packet already. In specific this means that we
must not use it for forward reconsideration of the current RTCP send time.
Instead we don't do any forward reconsideration for the first RTCP packet.
Wim Taymans [Tue, 10 Feb 2015 17:53:53 +0000 (18:53 +0100)]
rtph263depay: fix compilation with gcc 5.0
Tim-Philipp Müller [Tue, 10 Feb 2015 16:00:07 +0000 (16:00 +0000)]
splitmuxsink: fix example pipeline properly
x264enc might not have a max-key-int property, but it
has a key-int-max property...
Luis de Bethencourt [Tue, 10 Feb 2015 14:57:55 +0000 (14:57 +0000)]
splitmux: fix typo
Luis de Bethencourt [Tue, 10 Feb 2015 14:56:23 +0000 (14:56 +0000)]
splitmux: update example pipeline
Element x264enc doesn't have a max-key-int property
Luis de Bethencourt [Tue, 10 Feb 2015 13:29:32 +0000 (13:29 +0000)]
splitmux: fix memory leak
If execution goes to the beach in line 981, buf_info goes out of scope without
the memory being free'd. Handle this case.
CID #1268403
Tim-Philipp Müller [Sun, 8 Feb 2015 12:03:10 +0000 (12:03 +0000)]
rtspsrc: fix awkward if clause
Jan Schmidt [Fri, 6 Feb 2015 14:41:49 +0000 (01:41 +1100)]
splitmux: Add unit test for file splitting
Add a unit test for file splitting, and fix the leaks in the
splitmuxsink it found
Luis de Bethencourt [Fri, 6 Feb 2015 14:43:22 +0000 (14:43 +0000)]
wavparse: fix which stop variable is used in assignment
Assignment is done to variable segment.stop when the intention was to assign to
local variable stop. Instead of overwriting it, the value is now clamped and
segment.stop is set to it soon after.
CID #1265773
Jan Schmidt [Fri, 6 Feb 2015 13:19:36 +0000 (00:19 +1100)]
splitmux: Fix memory leaks until the test valgrinds clean
Jan Schmidt [Thu, 5 Feb 2015 19:42:17 +0000 (06:42 +1100)]
splitmux: Handle early EOS during part preparation
Handle the case where a short file reaches EOS while we're still
waiting for no-more-pads, and make sure we continue to the internal
READY state for real playback to work properly later.
Jan Schmidt [Thu, 5 Feb 2015 18:03:19 +0000 (05:03 +1100)]
tests: Change splitmux test video files
Avoid test failure by changing the stored video resolution
from 80x60 to 80x64, which needs bug 741030 to be fixed.
Jan Schmidt [Thu, 31 Jul 2014 14:07:53 +0000 (00:07 +1000)]
splitmux: Implement new elements for splitting files at mux level.
Implement 2 new elements - splitmuxsink and splitmuxsrc.
splitmuxsink is a bin which wraps a muxer and takes 1 video stream,
plus audio/subtitle streams, and starts a new file
whenever necessary to avoid overrunning a threshold of either bytes
or time. New files are started at a keyframe, and corresponding audio
and subtitle streams are split at packet boundaries to match
video GOP timestamps.
splitmuxsrc is a corresponding source element which handles
the splitmux:// URL and plays back all component files,
reconstructing the original elementary streams as it goes.
Thiago Santos [Wed, 4 Feb 2015 19:32:14 +0000 (16:32 -0300)]
tests: souphttpsrc: update ssl key/cert pair
Our ones were expired. The new ones were copied from libsoup's
tests files.
Also sets the property to use our own cert to validate the
server, otherwise the default system certs would be used
and it would fail.
Thiago Santos [Wed, 4 Feb 2015 05:25:44 +0000 (02:25 -0300)]
rtph264depay: prevent trying to get 0 bytes from adapter
This causes an assertion and would lead to getting a NULL instead
of a buffer. Without proper checking this would easily lead to
a segfault
https://bugzilla.gnome.org/show_bug.cgi?id=737199
Jan Schmidt [Wed, 4 Feb 2015 10:50:51 +0000 (21:50 +1100)]
qtdemux: Simple implementation of GST_SEGMENT_FLAG_TRICKMODE_KEY_UNITS
When the trickmode key-units flag is set on the segment, simply skip
any sample on a video stream that isn't a keyframe
Wim Taymans [Tue, 3 Feb 2015 16:35:52 +0000 (17:35 +0100)]
rtspsrc: fix container handling
We detect a container correctly now so we need to revert the weird
check there was before.
Use gst_rtspsrc_stream_push_event() to push the caps event on the
right pad.
See https://bugzilla.gnome.org/show_bug.cgi?id=739391
Thiago Santos [Mon, 2 Feb 2015 22:46:27 +0000 (19:46 -0300)]
matroskamux: store and write stream tags
Separate global from stream tags storage and write them to the
appropriate tags entry in the output
Thiago Santos [Mon, 2 Feb 2015 16:35:59 +0000 (13:35 -0300)]
qtdemux: parse stream tags
Keep global and stream tags separately and parse the udta node
that can be found under the trak atom. The udta will contain
stream specific tags and will be pushed as such
https://bugzilla.gnome.org/show_bug.cgi?id=692473
Thiago Santos [Sat, 31 Jan 2015 17:32:34 +0000 (14:32 -0300)]
qtmux: store stream and container tags separately
Tags received via events, when marked as stream tags, will
be stored on that stream's trak atom instead of being stored
in the main tags atom. This allows the resulting file to have
global and stream tags stored.
https://bugzilla.gnome.org/show_bug.cgi?id=692473
Thiago Santos [Sat, 31 Jan 2015 16:14:44 +0000 (13:14 -0300)]
qtmux: refactor tags functions to accomodata UDTA at trak level
Refactor the functions that were bound to the 'moov' atom to
directly pass the desired 'udta' that should receive the tags.
This allows the tags to be written to 'udta' at the 'moov' or
the 'trak' level, creating tags that are for the container or
for a stream only.
https://bugzilla.gnome.org/show_bug.cgi?id=692473
Thiago Santos [Sat, 31 Jan 2015 13:47:40 +0000 (10:47 -0300)]
qtmux: map application name to _swr tag
It refers to the application name and version used to create the
file
https://bugzilla.gnome.org/show_bug.cgi?id=692473
Jan Schmidt [Fri, 30 Jan 2015 15:30:40 +0000 (02:30 +1100)]
matroska: Fix seeking past the end of the file in reverse mode.
Snap to the end of the file when seeking past the end in reverse mode,
and also fix GST_SEEK_TYPE_END and GST_SEEK_TYPE_NONE handling
for the stop position by always seeking on a segment in stream time
Sebastian Dröge [Fri, 30 Jan 2015 17:22:31 +0000 (18:22 +0100)]
rtpsession: Fix signal name
This wasn't meant to be pushed at all yet, but now that it's there
already it won't hurt to make it correct at least.
Sebastian Dröge [Fri, 30 Jan 2015 15:56:35 +0000 (16:56 +0100)]
rtpstats: Fix typo in documentation
Sebastian Dröge [Fri, 30 Jan 2015 15:50:36 +0000 (16:50 +0100)]
rtpsession: Add new on-receiving-rtcp signal
This will be emitted whenever an RTCP packet is received. Different to
on-feedback-rtcp, this signal gets every complete RTCP packet and not
just the individual feedback packets.
Thiago Santos [Wed, 28 Jan 2015 17:02:15 +0000 (14:02 -0300)]
qtdemux: simplify segment.base math
Remove a fix for heavily edited files added for fixing
https://bugzilla.gnome.org/show_bug.cgi?id=345830 to work
with seeks and proper gaps playback. The fix was replaced
for a more general solution that bases on using previous
segment's duration, just like it works for media segments
playback.
https://bugzilla.gnome.org/show_bug.cgi?id=743518
Luis de Bethencourt [Tue, 27 Jan 2015 14:00:35 +0000 (14:00 +0000)]
videomixer: update orc files
Thiago Santos [Mon, 26 Jan 2015 20:08:12 +0000 (17:08 -0300)]
qtdemux: Fix data dropping for fragmented streams
For fragmented streams with extra data at the end of the mdat
qtdemux was not dropping those bytes and would try to use
that extra data as the beginning of a new atom, causing the
stream to fail.
https://bugzilla.gnome.org/show_bug.cgi?id=743407
Sebastian Dröge [Sun, 25 Jan 2015 16:30:33 +0000 (17:30 +0100)]
rtpsession: Deprecate rtcp-immediate-feedback-threshold property
It had no effect since quite some time and also is not needed in general,
especially not to switch between immediate feedback mode and early feedback
mode. The latest understanding of the RFC is that from the endpoint point of
view, both modes are exactly the same. RTCP is only allowed to use the
bandwidth as given by the RFC constraints, as such it is only ever possible
to schedule a RTCP packet early but it's against the RFC to schedule more RTCP
packets.
The difference between immediate feedback mode and early feedback mode is that
the former guarantees that an RTCP packet can be sent for every event
"immediately", which means that the bandwidth calculations from the RFC have
resulted in an RTCP scheduling interval that is small enough. Early feedback
mode on the other hand means that we can schedule some packets early to make
that happen, but it's not guaranteed at all that it's possible to schedule
an RTCP packet per event (i.e. they need to be accumulated or dropped).
Sebastian Dröge [Thu, 22 Jan 2015 09:29:39 +0000 (10:29 +0100)]
rtpsession: Delay the next regular RTCP packet after early RTCP
This is required to not exceed the short term average RTCP bitrate when
using early feedback as compared to without early feedback.
Sebastian Dröge [Thu, 22 Jan 2015 09:28:52 +0000 (10:28 +0100)]
rtpsession: Add new send-rtcp-full signal
This indicates with a boolean return value if scheduling a new RTCP packet
within the requested delay was possible. Otherwise it behaves exactly like
send-rtcp. The only reason for adding a new signal is ABI compatibility.
Jimmy Ohn [Tue, 20 Jan 2015 00:32:00 +0000 (00:32 +0000)]
pulsesink: Free format_info in query_getcaps
If we can not create probe stream in query_getcaps function, it will appear
memory leakage from format info.
The following patch prevent memory leakage in pulsesink.
https://bugzilla.gnome.org/show_bug.cgi?id=743178
Luis de Bethencourt [Fri, 23 Jan 2015 17:35:51 +0000 (17:35 +0000)]
matroskademux: remove unnecessary check
No matter if gst_matroska_read_common_parse_index_cuetrack () returns that the
flow is OK or not, the check there will be a break from the switch. Removing the
check since the outcome is the same.
CID #1265762
Edward Hervey [Fri, 23 Jan 2015 14:16:25 +0000 (15:16 +0100)]
matroskamux: Avoid using freed variable
the name variable might have been attributed to pad_name, make sure we
free it only *after* pad_name has been used.
Coverity CID : 1265774
Edward Hervey [Fri, 23 Jan 2015 14:13:55 +0000 (15:13 +0100)]
avimux: Avoid using freed variable
the name variable might have been attributed to pad_name, make sure we
free it only *after* pad_name has been used.
Coverity CID : 1265775
Peter Seiderer [Fri, 14 Nov 2014 11:59:31 +0000 (12:59 +0100)]
v4l2object: reuse caps framerate if not overwritten by v4l2 device
Enables duration setting in v4l2src.
https://bugzilla.gnome.org/show_bug.cgi?id=740403
Sebastian Dröge [Thu, 22 Jan 2015 09:29:24 +0000 (10:29 +0100)]
rtpsession: Fix indention
Edward Hervey [Wed, 21 Jan 2015 16:36:26 +0000 (17:36 +0100)]
qtdemux_dump: Bypass even more code if debugging is disabled
And avoid using variables that won't exist when debugging is disabled
Edward Hervey [Wed, 21 Jan 2015 14:30:33 +0000 (15:30 +0100)]
qtdemux: Only traverse/dump nodes if guaranteed to be used
__gst_debug_min is the "global" lowest debug level set. There's no
guarantee the qtdemux debug category is actually set at that level.
Edward Hervey [Sat, 20 Dec 2014 16:09:14 +0000 (17:09 +0100)]
matroska: Avoid debugging below category threshold
This part alone was what made the matroska thread take a full core
on an android phone ...
Sebastian Dröge [Wed, 21 Jan 2015 08:55:30 +0000 (09:55 +0100)]
Constify some static arrays everywhere
Vincent Penquerc'h [Mon, 19 Jan 2015 17:49:54 +0000 (17:49 +0000)]
qtdemux: fix deadlock seeking in files without seek entries
A mutex unlock was missing.
https://bugzilla.gnome.org/show_bug.cgi?id=739975
Vincent Penquerc'h [Mon, 19 Jan 2015 12:34:25 +0000 (12:34 +0000)]
videomixer: fix illegal memory access in blend function with negative ypos
https://bugzilla.gnome.org/show_bug.cgi?id=741115
Nicolas Dufresne [Tue, 13 Jan 2015 21:49:34 +0000 (16:49 -0500)]
v4l2videodec: Proxy getcaps
Replace the sink_query with new getcaps() virtual and use the proxy
helper with the probed caps. This allow upstream element taking decision
base on what is supported downstream.
Sebastian Dröge [Tue, 13 Jan 2015 18:05:20 +0000 (19:05 +0100)]
qtmux: Add support for v210
Sebastian Dröge [Tue, 13 Jan 2015 17:58:01 +0000 (18:58 +0100)]
qtdemux: v210 is v210, not UYVY and yuv2 is YUY2, not I420
Also add a few other raw video formats we support: v308, v216
and add comments for a few others we don't support yet.
https://developer.apple.com/library/mac/technotes/tn2162/
Stefan Sauer [Mon, 12 Jan 2015 14:56:29 +0000 (15:56 +0100)]
Automatic update of common submodule
From f2c6b95 to bc76a8b
Sebastian Dröge [Sat, 10 Jan 2015 14:51:16 +0000 (15:51 +0100)]
osxvideosink: Disable hack for NSApp iteration with a special #define
The hack causes deadlocks and other interesting problems and it really
can only be fixed properly inside GLib. We will include a patch for
GLib in our builds for now that handles this, and hopefully at some
point GLib will also merge a proper solution.
A proper solution would first require to refactor the polling in
GMainContext to only provide a single fd, e.g. via epoll/kqueue
or a thread like the one added by our patch. Then this single
fd could be retrieved from the GMainContext and directly integrated
into a NSRunLoop.
https://bugzilla.gnome.org/show_bug.cgi?id=741450
https://bugzilla.gnome.org/show_bug.cgi?id=704374
Mark Nauwelaerts [Thu, 8 Jan 2015 20:07:05 +0000 (21:07 +0100)]
pulsesink: uncork if needed upon commit
... to provide for a running clock.
Nicolas Dufresne [Fri, 9 Jan 2015 21:59:53 +0000 (16:59 -0500)]
v4l2videodec: Prevent renegotiation
Renegotiation isn't supported, simply prevent it the way we do in
v4l2src.
Nicolas Dufresne [Tue, 6 Jan 2015 18:54:25 +0000 (13:54 -0500)]
v4l2videodec: Don't unlock the stream lock twice
Thiago Santos [Fri, 9 Jan 2015 14:40:40 +0000 (11:40 -0300)]
qtdemux: fix stream time conversion
Use the right macro to convert to the correct scale or the
segment information will be wrong
https://bugzilla.gnome.org/show_bug.cgi?id=742572
Nicolas Dufresne [Wed, 7 Jan 2015 23:48:58 +0000 (18:48 -0500)]
v4l2allocator: Add protection against driver bug
v4l2loopback driver has a this nasty bug that if the queue is larger
then 2 buffers, it returns random index on dqbuf. So far we assumed
that the index was always right, which would lead to memory being
unref twice, and eventually crash.
Nicolas Dufresne [Wed, 7 Jan 2015 22:58:05 +0000 (17:58 -0500)]
v4l2: Don't use allocator size to iterate
As the buffer array is fixed size and small, it's safer to simply
use this static size to cleanup the buffers. This is also more
consistent with the rest. The associated method is no longer
required and can be dropped.
Nicolas Dufresne [Wed, 7 Jan 2015 22:55:14 +0000 (17:55 -0500)]
v4l2bufferpool: Don't clean buffer array in dispose
This should already have been done, plus this code is incorrect
and may lead to crash.
https://bugzilla.gnome.org/show_bug.cgi?id=742074
Nicolas Dufresne [Wed, 7 Jan 2015 22:48:31 +0000 (17:48 -0500)]
v4l2bufferpool: Don't ref queued output buffer
This partly revert to the old 1.2 behavior. Instead of keeping a
reference to the output buffer queued, we simply release them but
don't forward it to GstBufferPool. This way, the buffer pool don't
need to be flushed to be stopped.
https://bugzilla.gnome.org/show_bug.cgi?id=742074
Nicolas Dufresne [Thu, 8 Jan 2015 16:37:23 +0000 (11:37 -0500)]
v4l2bufferpool: Never fail on streamoff
Failing streamoff prevents allocator from being disposed hence
lead to device FD leak. There is no known cases where streamoff
may fails for which we'd still be streaming. streamoff is known
to fail when a device is being unplugged (in which case errno
19/ENODEV is set).
https://bugzilla.gnome.org/show_bug.cgi?id=732734
Brad Smith [Thu, 8 Jan 2015 02:52:17 +0000 (21:52 -0500)]
v4l2: Add support for detecting the presence of V4L2 support on OpenBSD
https://bugzilla.gnome.org/review?bug=742503
Matej Knopp [Sun, 4 Jan 2015 14:57:10 +0000 (15:57 +0100)]
ac3parse: request at least 8 bytes to properly parse header
https://bugzilla.gnome.org/show_bug.cgi?id=742325
Michael Smith [Thu, 8 Jan 2015 00:20:03 +0000 (16:20 -0800)]
wavparse: skip an additional uninteresting chunk type before the fmt chunk.