platform/upstream/gstreamer.git
9 years agosouphttpclientsink: Implement automatic-redirect property
Sebastian Dröge [Sun, 8 Mar 2015 17:02:51 +0000 (18:02 +0100)]
souphttpclientsink: Implement automatic-redirect property

9 years agosouphttpclientsink: Implement proxy support
Sebastian Dröge [Sun, 8 Mar 2015 16:54:07 +0000 (17:54 +0100)]
souphttpclientsink: Implement proxy support

The properties were there before, but not used anywhere.

9 years agoavidemux: resurrect some flow return handling
Mark Nauwelaerts [Sat, 21 Feb 2015 19:05:24 +0000 (20:05 +0100)]
avidemux: resurrect some flow return handling

9 years agoaacparse: fix LOAS parsing issue
Nicolas Huet [Wed, 4 Mar 2015 09:27:17 +0000 (10:27 +0100)]
aacparse: fix LOAS parsing issue

Fix missing index in syncword searching

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

9 years agodirectsoundsink: fix modulo math with ringbuffer parameters
Thiago Santos [Thu, 5 Mar 2015 20:54:43 +0000 (17:54 -0300)]
directsoundsink: fix modulo math with ringbuffer parameters

To get a multiple of bpf use a subtraction and not an addition

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

9 years agosplitmuxsink: Protect property variables with the object lock.
Jan Schmidt [Fri, 6 Mar 2015 13:55:47 +0000 (00:55 +1100)]
splitmuxsink: Protect property variables with the object lock.

Use the object lock instead of the splitmux lock to protect
internal property variables, so they're not locked when
switching to a new file.

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

9 years agocheck: add jitterbuffer unit test
Wim Taymans [Fri, 6 Mar 2015 10:39:39 +0000 (11:39 +0100)]
check: add jitterbuffer unit test

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

9 years agortspsrc: Fix handling of interleaved (TCP) streams
Sebastian Dröge [Thu, 5 Mar 2015 08:18:52 +0000 (09:18 +0100)]
rtspsrc: Fix handling of interleaved (TCP) streams

We need to set up the transport in any case, not just if we have a container
stream or a non-interleaved stream. Only if we have an interleaved stream and
are retrying, we should not set up the stream again.

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

9 years agovp[89]dec: Drop frames that have no output buffer because of errors
Sebastian Dröge [Thu, 5 Mar 2015 09:00:33 +0000 (10:00 +0100)]
vp[89]dec: Drop frames that have no output buffer because of errors

finish_frame() assumes that there is an output buffer.

9 years agortspsrc: Don't unref caps we don't own
Sebastian Dröge [Thu, 5 Mar 2015 08:56:23 +0000 (09:56 +0100)]
rtspsrc: Don't unref caps we don't own

9 years agortspsrc: Push RTCP caps on the RTCP pads
Sebastian Dröge [Thu, 5 Mar 2015 08:46:17 +0000 (09:46 +0100)]
rtspsrc: Push RTCP caps on the RTCP pads

Otherwise we will get not-negotiated later from rtpbin, and will never be able
to send RTCP packets back to the server. Note that error flow returns from the
RTCP pads are ignored, that's why it didn't fail more visible before.

9 years agortspsrc: Make sure to send SEGMENT events on all pads
Sebastian Dröge [Thu, 5 Mar 2015 08:35:32 +0000 (09:35 +0100)]
rtspsrc: Make sure to send SEGMENT events on all pads

9 years agortp: Add Full Intra Request (FIR) packets to statistics
Santiago Carot-Nemesio [Tue, 3 Mar 2015 15:23:15 +0000 (16:23 +0100)]
rtp: Add Full Intra Request (FIR) packets to statistics

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

9 years agortp: Add Packet Loss Indication (PLI) to statistics
Santiago Carot-Nemesio [Tue, 3 Mar 2015 15:01:53 +0000 (16:01 +0100)]
rtp: Add Packet Loss Indication (PLI) to statistics

This is helpful to provide statistics in the format defined in
http://w3c.github.io/webrtc-stats/#dictionary-rtcrtpstreamstats-members.

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

9 years agomatroskamux: Remove duration accumulation logic
Nicola Murino [Tue, 3 Mar 2015 18:19:50 +0000 (19:19 +0100)]
matroskamux: Remove duration accumulation logic

Duration accumulation can cause rounding errors and generate wrong
duration with different buffers that share the same timestamp.

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

9 years agomatroska: Add an helper method to get buffer timestamps
Nicola Murino [Tue, 3 Mar 2015 17:40:16 +0000 (18:40 +0100)]
matroska: Add an helper method to get buffer timestamps

... and replace GST_BUFFER_TIMESTAMP that always return PTS with this method
that return PTS or DTS based on stream type.

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

9 years agortpsession: Add explanation why we have space for 32 hash tables
Sebastian Dröge [Wed, 4 Mar 2015 10:28:12 +0000 (11:28 +0100)]
rtpsession: Add explanation why we have space for 32 hash tables

And also create only one, there's no need yet to create all 32 until
we implement RFC2762.

9 years agoRevert "rtpsession: Do not use an array of maps if they are not being used"
Sebastian Dröge [Wed, 4 Mar 2015 10:26:57 +0000 (11:26 +0100)]
Revert "rtpsession: Do not use an array of maps if they are not being used"

This reverts commit 1591adf4cd843d13d8622a30c619425691a84128.

https://bugzilla.gnome.org/show_bug.cgi?id=745586#c1:
It's the beginning of an implementation of RFC 2762, which is needed for
large multicast groups. The implementation is not yet complete but why
not leave what is there and implement RFC 2762 instead?

9 years agortpsession: Do not use an array of maps if they are not being used
Santiago Carot-Nemesio [Wed, 4 Mar 2015 09:35:12 +0000 (10:35 +0100)]
rtpsession: Do not use an array of maps if they are not being used

rtpsession declares an array of maps to store srrcs but only the
the key 0 is being used. This patch replaces the array of maps
for just one map and remove useless parameters in rtpsession

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

9 years agoavidemux: remove not needed code
Jimmy Ohn [Fri, 27 Feb 2015 09:12:09 +0000 (18:12 +0900)]
avidemux: remove not needed code

In gst_avi_demux_handle_src_query, there is not needed code.
We already check about stream is vbr or not at the upper line.
o, we don't need to check this condition becase stream is not
vbr 100% in this case.

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

9 years agotests: gdkpixbufoverlay-test: replace deprecated function
Tim-Philipp Müller [Tue, 3 Mar 2015 23:25:35 +0000 (23:25 +0000)]
tests: gdkpixbufoverlay-test: replace deprecated function

Just avoid using the deprecated function entirely,
it's easy enough. Defining the macro is not enough.

9 years agotests: gdkpixbufoverlay-test: fix compilation against newer gdk-pixbuf
Tim-Philipp Müller [Tue, 3 Mar 2015 19:04:48 +0000 (19:04 +0000)]
tests: gdkpixbufoverlay-test: fix compilation against newer gdk-pixbuf

gdk_pixbuf_new_from_inline() has been deprecated in favour
of GResource.

9 years agoosxaudiosrc: Allow caps renegotiation
Arun Raghavan [Tue, 3 Mar 2015 13:09:15 +0000 (18:39 +0530)]
osxaudiosrc: Allow caps renegotiation

The ringbuffer does allow renegotiation, so we do not have to report
fixed caps once it is acquired (based on a similar patch for the sink
side by Ilya Konstantinov <ilya.konstantinov@gmail.com>).

9 years agoosxaudiosink: Allow renegotiating caps
Ilya Konstantinov [Sat, 21 Feb 2015 12:41:08 +0000 (14:41 +0200)]
osxaudiosink: Allow renegotiating caps

Once osxaudiosink's device is open, it fixates on the initial caps and
refuses to accept new caps. This is erroneous since the Audio Unit is
can accept a new ASBD, and GstAudioRingBuffer supports reconfiguration
as well.

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

9 years agov4l2allocator: fix fd leak in DMABUF import mode.
Gwenole Beauchesne [Mon, 2 Mar 2015 11:04:00 +0000 (12:04 +0100)]
v4l2allocator: fix fd leak in DMABUF import mode.

Ensure gst_v4l2_buffer_pool_release_buffer() releases the associated
GstV4l2MemoryGroup. In particular, this allows for closing the DMABUF
handles prior to instantiating new ones.

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

9 years agovp8enc: Use 0 as duration for the EOS "frame"
Sebastian Dröge [Mon, 2 Mar 2015 14:06:09 +0000 (15:06 +0100)]
vp8enc: Use 0 as duration for the EOS "frame"

9 years agovp{8,9}enc: Tell the encoder about actual timestamps and durations of frames
Sebastian Dröge [Mon, 2 Mar 2015 14:02:20 +0000 (15:02 +0100)]
vp{8,9}enc: Tell the encoder about actual timestamps and durations of frames

... instead of just counting frames. The values are supposed to be in timebase
units, not frame units. This fixes various quality problems with VP8/VP9
encoding and in general makes the encoder behave better.

Thanks to Nirbheek Chauhan for noticing this bug.

9 years agovpxdec: Fix calculation of width in bytes
Nicolas Dufresne [Sun, 1 Mar 2015 18:56:17 +0000 (13:56 -0500)]
vpxdec: Fix calculation of width in bytes

Right now we only support I420, but vpx seems to support more formats.
This will prevent hard to find bug in the future.

9 years agovpxdec: Don't memcpy in frame map failed
Nicolas Dufresne [Sun, 1 Mar 2015 18:52:50 +0000 (13:52 -0500)]
vpxdec: Don't memcpy in frame map failed

This avoid a crash if mapping the frame failed.

9 years agov4l2bufferpool: Add missing break
Nicolas Dufresne [Sun, 1 Mar 2015 18:48:45 +0000 (13:48 -0500)]
v4l2bufferpool: Add missing break

This is cosmetic change.

9 years agov4l2: Workaround driver not setting field correctly
Nicolas Dufresne [Sun, 1 Mar 2015 18:46:18 +0000 (13:46 -0500)]
v4l2: Workaround driver not setting field correctly

As it's very common, handle driver not setting field in buffers
by using the field value from the format. This workaround a long time
bug in UVC driver. For even buggier driver, we simply assume
progressive as before. We also only warn once, to avoid spamming.

9 years agoqtdemux: fix key unit seek
Matej Knopp [Sat, 28 Feb 2015 17:10:06 +0000 (18:10 +0100)]
qtdemux: fix key unit seek

Unlike many other seek flags, the KEY_UNIT seek
flag is not copied over into the GstSegment,
since it's only relevant for the seek itself,
so we need to pass it explicitly to the seek
handler here.

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

9 years agodocs/plugins: Updates
Edward Hervey [Fri, 27 Feb 2015 08:38:01 +0000 (09:38 +0100)]
docs/plugins: Updates

9 years agomatroskamux/demux: initialize dts_only
Nicola Murino [Thu, 26 Feb 2015 22:41:47 +0000 (23:41 +0100)]
matroskamux/demux: initialize dts_only

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

9 years agomatroskamux: store DTS for V_MS/VFW/FOURCC streams
Nicola Murino [Thu, 26 Feb 2015 22:28:11 +0000 (23:28 +0100)]
matroskamux: store DTS for V_MS/VFW/FOURCC streams

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

9 years agomultifile: attempt to fix docs build issue on build bot
Tim-Philipp Müller [Thu, 26 Feb 2015 19:48:33 +0000 (19:48 +0000)]
multifile: attempt to fix docs build issue on build bot

9 years agointerleave: Drop custom latency query handling
Arun Raghavan [Thu, 26 Feb 2015 19:11:46 +0000 (00:41 +0530)]
interleave: Drop custom latency query handling

This is implemented by the default query handler now.

9 years agovideomixer: Drop custom latency querying logic
Arun Raghavan [Thu, 26 Feb 2015 19:10:05 +0000 (00:40 +0530)]
videomixer: Drop custom latency querying logic

This is now implemented in the default latency query handler.

9 years agortpvorbispay: fix payloader description and author e-mail
Sebastian Rasmussen [Thu, 26 Feb 2015 15:10:41 +0000 (16:10 +0100)]
rtpvorbispay: fix payloader description and author e-mail

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

9 years agov4l2: query crop configuration after each call of S_CROP
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

9 years agomatroskademux: V_MS/VFW/FOURCC streams have DTS instead of PTS
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

9 years agov4l2bufferpool: Check corruption flag on the right buffer
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

9 years agov4l2object: set colorspace in caps for capture devices
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

9 years agov4l2bufferpool: fix import_userptr() in single-planar API when n_planes > 1
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

9 years agov4l2allocator: let bufferpool calculate image size when importing userptr
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

9 years agov4l2object: recognize and distinguish all bayer arrangements
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

9 years agov4l2bufferpool: set v4l2_buffer.field when queuing buffer in an output device
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

9 years agoosxaudiosrc: iOS resampling causes stuttering
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

9 years agortspsrc: improve error message when unauthorized
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

9 years agoximagesrc: remove pointless g_return_val_if_fail()
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().

9 years agoqtdemux: All segment resulting from a seek should have the same seqnum
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

9 years agov4l2: Enable copy when no known allocation params
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.

9 years agov4l2bufferpool: Update allocator flags
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.

9 years agov4l2bufferpool: Use specific debug category
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.

9 years agortpvp8pay: default encoding name to VP8
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

9 years agortpvp8pay: make caps writable before truncating them
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

9 years agortpvp8pay: negotiate encoding name
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

9 years agortpsession: Send initial events on sync_rtcp pad when using RTP/RTCP muxing
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.

9 years agojack: case missing break statement
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.

9 years agoRevert "v4l2: fraction is reversed"
Luis de Bethencourt [Wed, 18 Feb 2015 19:18:00 +0000 (19:18 +0000)]
Revert "v4l2: fraction is reversed"

This reverts commit b91fe36644b15ae070d72b9e8a9c7087e82aef12.

9 years agov4l2: fraction is reversed
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.

9 years agov4l2pool: Deactivate other pool
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.

9 years agoqtmux: remove not needed condition
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

9 years agoqtdemux: prefer the tfdt timestamp over the buffer's that is less accurate
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.

9 years agortpjitterbuffer: When resetting the jitterbuffer because of packet discont, don't...
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.

9 years agojack: Add property port-pattern to specify which JACK ports to connect to
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

9 years agoisomp4: Redefine gst_isoff_ symbols to gst_isoff_qt_
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

9 years agogoom2k1: use fractional part of float division
Luis de Bethencourt [Mon, 16 Feb 2015 14:31:05 +0000 (14:31 +0000)]
goom2k1: use fractional part of float division

9 years agosplitmuxsin: remove dead code
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

9 years agosplitmux-test: Parse error message
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.

9 years agospectrum: Fix min and max for bands property
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

9 years agov4l2allocator: Fix freeing of shared memory
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

9 years agoqtdemux: do not use sparse streams in push-based seeking
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

9 years agopulsesink: Enhance code readability in pulsesink_query
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

9 years agosplitmuxsink: flag as sink from the start
Tim-Philipp Müller [Fri, 13 Feb 2015 20:40:48 +0000 (20:40 +0000)]
splitmuxsink: flag as sink from the start

9 years agoqtdemux: Initial 'sidx' atom parsing support
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

9 years agoflvdemux: Use gst_video_guess_framerate()
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.

9 years agoImprove and fix LATENCY query handling
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

9 years agortpsession: Handle first RTCP packet and early feedback correctly
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.

9 years agortph263depay: fix compilation with gcc 5.0
Wim Taymans [Tue, 10 Feb 2015 17:53:53 +0000 (18:53 +0100)]
rtph263depay: fix compilation with gcc 5.0

9 years agosplitmuxsink: fix example pipeline properly
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...

9 years agosplitmux: fix typo
Luis de Bethencourt [Tue, 10 Feb 2015 14:57:55 +0000 (14:57 +0000)]
splitmux: fix typo

9 years agosplitmux: update example pipeline
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

9 years agosplitmux: fix memory leak
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

9 years agortspsrc: fix awkward if clause
Tim-Philipp Müller [Sun, 8 Feb 2015 12:03:10 +0000 (12:03 +0000)]
rtspsrc: fix awkward if clause

9 years agosplitmux: Add unit test for file splitting
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

9 years agowavparse: fix which stop variable is used in assignment
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

9 years agosplitmux: Fix memory leaks until the test valgrinds clean
Jan Schmidt [Fri, 6 Feb 2015 13:19:36 +0000 (00:19 +1100)]
splitmux: Fix memory leaks until the test valgrinds clean

9 years agosplitmux: Handle early EOS during part preparation
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.

9 years agotests: Change splitmux test video files
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.

9 years agosplitmux: Implement new elements for splitting files at mux level.
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.

9 years agotests: souphttpsrc: update ssl key/cert pair
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.

9 years agortph264depay: prevent trying to get 0 bytes from adapter
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

9 years agoqtdemux: Simple implementation of GST_SEGMENT_FLAG_TRICKMODE_KEY_UNITS
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

9 years agortspsrc: fix container handling
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

9 years agomatroskamux: store and write stream tags
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

9 years agoqtdemux: parse stream tags
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

9 years agoqtmux: store stream and container tags separately
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

9 years agoqtmux: refactor tags functions to accomodata UDTA at trak level
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

9 years agoqtmux: map application name to _swr tag
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