platform/upstream/gstreamer.git
8 years agoaudio-channel-mixer: round before truncating
Wim Taymans [Tue, 12 Jan 2016 14:56:36 +0000 (15:56 +0100)]
audio-channel-mixer: round before truncating

Round the result before truncating for int channel mixing.

8 years agoaudio-converter: Avoid conversion when possible
Wim Taymans [Tue, 12 Jan 2016 14:27:16 +0000 (15:27 +0100)]
audio-converter: Avoid conversion when possible

When the input and output formats are the same and in a possible
intermediate format, avoid unpack and pack.
Never do passthrough channel mixing.
Only do dithering and noise shaping in S32 format

8 years agoaudio-channel-mixer: add more formats
Wim Taymans [Tue, 12 Jan 2016 10:43:20 +0000 (11:43 +0100)]
audio-channel-mixer: add more formats

Add support for float and int16 mixing
Remove in-place processing, this simplifies things as we won't be using it.
Don't do clipping for float audio formats

8 years agoaudio-converter: improve processing loop
Wim Taymans [Tue, 12 Jan 2016 10:37:17 +0000 (11:37 +0100)]
audio-converter: improve processing loop

Process as many samples as we can from the input and return the number
of processed samples from the chain. This simplifies some code.
Fix the IN_WRITABLE handling, don't overwrite the flags.

8 years agosubtitleoverlay: replace accept-caps with caps query
Thiago Santos [Mon, 11 Jan 2016 21:24:48 +0000 (18:24 -0300)]
subtitleoverlay: replace accept-caps with caps query

Those accept caps are actually checking if downstream supports
some particular caps to check if it need to negotiate a different
format. Checking only the next element with accept-caps is not enough
to guarantee that it is supported.

Using a caps query makes it obtain the supported caps for downstream
as a whole instead of only the next element.

8 years agoaudio: Update exported symbols list
Sebastian Dröge [Fri, 8 Jan 2016 19:27:16 +0000 (21:27 +0200)]
audio: Update exported symbols list

8 years agovideorate: replace accept-caps with a caps query
Thiago Santos [Fri, 8 Jan 2016 18:05:38 +0000 (15:05 -0300)]
videorate: replace accept-caps with a caps query

accept-caps is only a shallow check, it needs to know
whether downstream as a whole accepts the framerate

8 years agodocs: fix up for GstAudioChannelMix rename as well
Tim-Philipp Müller [Fri, 8 Jan 2016 16:08:47 +0000 (16:08 +0000)]
docs: fix up for GstAudioChannelMix rename as well

8 years agoaudio-converter: small API tweaks
Wim Taymans [Fri, 8 Jan 2016 16:34:50 +0000 (17:34 +0100)]
audio-converter: small API tweaks

Pass flags in _converter_new() so that we can configure ourselves
differently depending on some options.
SOURCE_WRITABLE -> IN_WRITABLE because the array is called 'in'

8 years agoaudio-converter: prepare API for rate changes
Wim Taymans [Fri, 8 Jan 2016 16:28:31 +0000 (17:28 +0100)]
audio-converter: prepare API for rate changes

Use the update function to update the sample rates along with the config
once we implement resampling.

8 years agoaudio-convert: simplify API
Wim Taymans [Fri, 8 Jan 2016 16:17:44 +0000 (17:17 +0100)]
audio-convert: simplify API

Simplify the API, we don't need the consumed and produced output
arguments. The caller needs to use the _get_in_frames/get_out_frames API
to check how much input is needed and how much output will be produced.

8 years agoaudio/video: Use G_GNUC_INTERNAL for internal functions
Sebastian Dröge [Fri, 8 Jan 2016 15:50:21 +0000 (17:50 +0200)]
audio/video: Use G_GNUC_INTERNAL for internal functions

8 years agoaudio: GstAudioChannelMix -> GstAudioChannelMixer
Wim Taymans [Fri, 8 Jan 2016 15:22:25 +0000 (16:22 +0100)]
audio: GstAudioChannelMix -> GstAudioChannelMixer

Rename the GstAudioChannelMix object to GstAudioChannelMixer because it
looks better and to avoid a conflict with a library in -bad.

8 years agoplaybin: Use the caps query instead of accept-caps to detect if a sink accepts caps
Sebastian Dröge [Thu, 7 Jan 2016 13:24:25 +0000 (15:24 +0200)]
playbin: Use the caps query instead of accept-caps to detect if a sink accepts caps

accept-caps is only for one element, caps query is recursive. Fixes playback
with totem and other situations.

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

8 years agovideopool: store videoinfo after choosing the biggest buffer size
Aurélien Zanelli [Wed, 6 Jan 2016 14:49:59 +0000 (15:49 +0100)]
videopool: store videoinfo after choosing the biggest buffer size

Otherwise, pool could be negotiated with a size which will be different
from the one used in allocation which is the GstVideoInfo.

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

8 years agovideotestsrc: add missing break in set_property switch case
Aurélien Zanelli [Wed, 6 Jan 2016 11:14:39 +0000 (12:14 +0100)]
videotestsrc: add missing break in set_property switch case

To avoid future issue when adding new properties.

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

8 years agotests: audioconvert: fix test compilation with clang
Koop Mast [Wed, 6 Jan 2016 01:04:31 +0000 (01:04 +0000)]
tests: audioconvert: fix test compilation with clang

With clang 3.7.1 on FreeBSD:
elements/audioconvert.c:650:12: error: shifting a negative signed value is
      undefined [-Werror,-Wshift-negative-value]
      (-32 << 16) + (1 << 15), (-32 << 16) - (1 << 15),
       ~~~ ^

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

8 years agotests: fix indentation of various unit tests
Tim-Philipp Müller [Wed, 6 Jan 2016 01:06:10 +0000 (01:06 +0000)]
tests: fix indentation of various unit tests

8 years agodocs: add new audio API
Tim-Philipp Müller [Tue, 5 Jan 2016 22:52:34 +0000 (22:52 +0000)]
docs: add new audio API

8 years agodocs: remove dummy function declarations with G_INLINE_FUNCTION for gtk-doc
Tim-Philipp Müller [Sun, 3 Jan 2016 17:21:18 +0000 (17:21 +0000)]
docs: remove dummy function declarations with G_INLINE_FUNCTION for gtk-doc

gtk-doc can handle static inline functions just fine these days,
there's no need for this stuff any more.

8 years agoriff: Add missing closing parenthesis to GST_RIFF_WAVE_FORMAT_ANTEX_ADPCME
Sebastian Dröge [Sun, 3 Jan 2016 08:33:53 +0000 (10:33 +0200)]
riff: Add missing closing parenthesis to GST_RIFF_WAVE_FORMAT_ANTEX_ADPCME

Apparently this #define is unused.

8 years agoriff-ids: remove trailing whitespace
Stefan Sauer [Sat, 2 Jan 2016 22:29:22 +0000 (23:29 +0100)]
riff-ids: remove trailing whitespace

8 years agoriff-ids: fix two swapped ids
Stefan Sauer [Sat, 2 Jan 2016 22:27:44 +0000 (23:27 +0100)]
riff-ids: fix two swapped ids

For these fourcc ids the name and value is swapped. This was causing a warning
when registering the avi ids.

8 years agosdp: Also reorder SUBDIRS to try even harder to build the RTP library first
Sebastian Dröge [Thu, 31 Dec 2015 18:43:28 +0000 (20:43 +0200)]
sdp: Also reorder SUBDIRS to try even harder to build the RTP library first

8 years agosdp: The SDP library depends on the RTP library now and is not independent anymore
Sebastian Dröge [Thu, 31 Dec 2015 18:41:38 +0000 (20:41 +0200)]
sdp: The SDP library depends on the RTP library now and is not independent anymore

Fix up the build dependencies.

8 years agosdp: add helper fuctions from/to sdp from/to caps
Hyunjun Ko [Wed, 7 Oct 2015 09:50:18 +0000 (18:50 +0900)]
sdp: add helper fuctions from/to sdp from/to caps

<gstsdpmessage.h>
GstCaps*       gst_sdp_media_get_caps_from_media   (const GstSDPMedia *media, gint pt);
GstSDPResult   gst_sdp_media_set_media_from_caps   (const GstCaps* caps, GstSDPMedia *media);
gchar *        gst_sdp_make_keymgmt                (const gchar *uri, const gchar *base64);
GstSDPResult   gst_sdp_message_attributes_to_caps  (GstSDPMessage *msg, GstCaps *caps);
GstSDPResult   gst_sdp_media_attributes_to_caps    (GstSDPMedia *media, GstCaps *caps);

<gstmikey.h>
GstMIKEYMessage * gst_mikey_message_new_from_caps  (GstCaps *caps);
gchar *           gst_mikey_message_base64_encode  (GstMIKEYMessage* msg);

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

8 years agoaudioconvert: Pass pointer arrays instead of singleton pointers to gst_audio_converte...
Sebastian Dröge [Tue, 29 Dec 2015 16:14:54 +0000 (18:14 +0200)]
audioconvert: Pass pointer arrays instead of singleton pointers to gst_audio_converter_samples()

In this specific case it wouldn't cause problems as we only ever access the
first array element, but let's make explicit what is happening here.

CID 1346530 and 1346529

8 years agoencoding-profile: Check for FALSE'ness directly, not by comparing with FALSE
Sebastian Dröge [Tue, 29 Dec 2015 15:56:21 +0000 (17:56 +0200)]
encoding-profile: Check for FALSE'ness directly, not by comparing with FALSE

8 years agoencoding-profile: Don't use preset_name string after free
Sebastian Dröge [Tue, 29 Dec 2015 15:54:44 +0000 (17:54 +0200)]
encoding-profile: Don't use preset_name string after free

When we run the loop for another time and do not have a preset name, we would
try to print the preset name of a previous iteration that is already freed.

Also move some other variables into the block where they are actually used
to prevent similar mistakes in the future.

CID 1346536

8 years agoaudioconvert: add a test for gap handling
Stefan Sauer [Tue, 29 Dec 2015 13:40:04 +0000 (14:40 +0100)]
audioconvert: add a test for gap handling

8 years agoaudioconvert: fix passthrough operation
Stefan Sauer [Tue, 29 Dec 2015 13:23:59 +0000 (14:23 +0100)]
audioconvert: fix passthrough operation

We did not take the sample size into account. Rearrange the tests to have more
conversion test and an extra test case for passthrough operations.

Fixes #759890

8 years agotools: gst-device-monitor: print uint properties in both decimal and hex
Tim-Philipp Müller [Tue, 29 Dec 2015 11:29:31 +0000 (11:29 +0000)]
tools: gst-device-monitor: print uint properties in both decimal and hex

Some values are easier to read and make sense of in hex.

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

8 years agovideoblend: special case 1x1 src dims on increment computation
Reynaldo H. Verdejo Pinochet [Thu, 12 Nov 2015 22:01:03 +0000 (14:01 -0800)]
videoblend: special case 1x1 src dims on increment computation

Fix crash with 1x1 overlay pixmap

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

8 years agotypefindfunctions: Make sure that enough data is available in AAC/ADTS typefinder
Sebastian Dröge [Mon, 28 Dec 2015 10:28:26 +0000 (12:28 +0200)]
typefindfunctions: Make sure that enough data is available in AAC/ADTS typefinder

We would otherwise read beyond the array bounds and crash every now and then.
This was introduced with 5640ba17c8db80976b7718904e4024dcfe9ee1a0.

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

8 years agotests: remove commented code from audioconvert test
Stefan Sauer [Sun, 27 Dec 2015 18:41:43 +0000 (19:41 +0100)]
tests: remove commented code from audioconvert test

This is just what we have in gst_check_buffer_data().

8 years agoaudio-converter: code cleanup
Stefan Sauer [Sun, 27 Dec 2015 18:25:20 +0000 (19:25 +0100)]
audio-converter: code cleanup

Rename samples to num_samples, since we also have samples in chain, but that is
the data pointer. Always use gzize for num_samples. Make the log output a bit
more homogenous.

8 years agotools: gst-device-monitor: print non-string device properties too
Tim-Philipp Müller [Sat, 26 Dec 2015 11:34:47 +0000 (11:34 +0000)]
tools: gst-device-monitor: print non-string device properties too

8 years agoaudio: Fix some documentation warnings
Sebastian Dröge [Sat, 26 Dec 2015 08:43:56 +0000 (09:43 +0100)]
audio: Fix some documentation warnings

Remove/rename function parameters and skip some functions that can't
be used by bindings as they are now.

8 years agovideoaffinetransformmeta: Add (transfer none) annotation for return value
Sebastian Dröge [Sat, 26 Dec 2015 08:43:51 +0000 (09:43 +0100)]
videoaffinetransformmeta: Add (transfer none) annotation for return value

8 years agoplaysink: Don't leak audio/video filters due to floating references weirdness
Sebastian Dröge [Fri, 25 Dec 2015 10:34:10 +0000 (11:34 +0100)]
playsink: Don't leak audio/video filters due to floating references weirdness

The filters' floating references are sinked during set_property() already,
which means that GstBin takes a new reference when adding the filter to it.
Get rid of the additional reference after adding the filter to the bin.

8 years agoplaysink: Allow reuse of audio/video filters by unparenting them from their bins
Sebastian Dröge [Fri, 25 Dec 2015 09:36:44 +0000 (10:36 +0100)]
playsink: Allow reuse of audio/video filters by unparenting them from their bins

And also recreate the chains if the filter is changing.

8 years agoplaysink: Don't leak audio/video filters when using non-raw media
Sebastian Dröge [Fri, 25 Dec 2015 09:28:02 +0000 (10:28 +0100)]
playsink: Don't leak audio/video filters when using non-raw media

8 years agoBack to development
Sebastian Dröge [Thu, 24 Dec 2015 14:27:43 +0000 (15:27 +0100)]
Back to development

8 years agopbutils: Link to libgstbase for bytewriter and adapter
Sebastian Dröge [Thu, 24 Dec 2015 12:59:52 +0000 (13:59 +0100)]
pbutils: Link to libgstbase for bytewriter and adapter

8 years agoRelease 1.7.1
Sebastian Dröge [Thu, 24 Dec 2015 12:59:15 +0000 (13:59 +0100)]
Release 1.7.1

8 years agoUpdate .po files
Sebastian Dröge [Thu, 24 Dec 2015 12:10:08 +0000 (13:10 +0100)]
Update .po files

8 years agopo: Update translations
Sebastian Dröge [Thu, 24 Dec 2015 11:22:04 +0000 (12:22 +0100)]
po: Update translations

8 years agoencodebin: Implement an encoding profile serialization format
Thibault Saunier [Fri, 11 Dec 2015 14:38:00 +0000 (15:38 +0100)]
encodebin: Implement an encoding profile serialization format

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

8 years agoconfigure: Make -Bsymbolic check work with clang.
Koop Mast [Sun, 20 Dec 2015 23:43:49 +0000 (00:43 +0100)]
configure: Make -Bsymbolic check work with clang.

Update the -Bsymbolic check with the version glib has. This version
works with clang.

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

8 years agoappsrc: Clear is_eos flag when receiving the flush-stop event
Kazunori Kobayashi [Thu, 3 Dec 2015 02:53:05 +0000 (11:53 +0900)]
appsrc: Clear is_eos flag when receiving the flush-stop event

The EOS event can be propagated to the downstream elements when
is_eos flag remains set even after leaving the flushing state.
This fix allows this element to normally restart the streaming
after receiving the flush event by clearing the is_eos flag.

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

8 years agoexamples: playback-test: remove unused variables
Thiago Santos [Wed, 16 Dec 2015 21:11:05 +0000 (18:11 -0300)]
examples: playback-test: remove unused variables

audiosink and videosink string variables are unused

8 years agoplaybin: only add the template caps when the result is empty
Matthew Waters [Sun, 29 Nov 2015 23:28:55 +0000 (10:28 +1100)]
playbin: only add the template caps when the result is empty

Unconditionally adding the template caps when proxying the caps query will play
havoc with decoders that attempt to choose an output format based on some caps
features.  Creating a sink that does not include those caps features and a
decoder/parser/etc that preferentially chooses some specific caps feature when
available, will always return the decoder/parser/etc template caps and choose a
feature that downstream will be unable to support.

Fix by limiting the addition of the template caps to when the result is actually
empty.

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

8 years agoconfigure: Don't use AG_GST_CHECK_FEATURE for checking for gio-unix-2.0
Sebastian Dröge [Thu, 17 Dec 2015 12:39:01 +0000 (13:39 +0100)]
configure: Don't use AG_GST_CHECK_FEATURE for checking for gio-unix-2.0

It's meant to be used for external plugins that can then all be disabled via
--disable-external. gio-unix-2.0 however is just an optional dependency for
the TCP unit test.

Also when using AG_GST_CHECK_FEATURE like this, in the --disable-external part
there needs to be an AM_CONDITIONAL for the feature with FALSE.

8 years agoRevert "decodebin2: fix deadlock on chain shutdown"
Sebastian Dröge [Wed, 16 Dec 2015 16:07:54 +0000 (17:07 +0100)]
Revert "decodebin2: fix deadlock on chain shutdown"

This reverts commit 77dc09c3a9a5e5e371e189f39b5557db440a8dc9.

It can cause the FLUSH_START/STOP events to go to the sink elements, which
then causes state changes and various other problems. We shouldn't really
flush downstream here, the idea is to do *draining*.

Apart from that the testcase for the original bug here works without this
commit now.

8 years agomultifdsink: fix typo in GST_WARNING_OBJECT
Luis de Bethencourt [Wed, 16 Dec 2015 11:12:00 +0000 (11:12 +0000)]
multifdsink: fix typo in GST_WARNING_OBJECT

This should make easier to parse the debug logs.
s/fnctl/fcntl

8 years agovideorate: remove dead code
Vincent Penquerc'h [Thu, 10 Apr 2014 14:36:15 +0000 (15:36 +0100)]
videorate: remove dead code

Since the loops increasing count from 0 are always run at least
once (if count < 1), count will always be at least one when
compared to the drop/dup conditions.

Coverity 1139674

8 years agoaudio-converter: rework the main processing loop
Wim Taymans [Wed, 16 Dec 2015 09:45:48 +0000 (10:45 +0100)]
audio-converter: rework the main processing loop

Rework the main processing loop. We now create an audio processing
chain from small core functions. This is very similar to how the
video-converter core works and allows us to statically calculate an
optimal allocation strategy for all possible combinations of operations.
Make sure we support non-interleaved data everywhere.
Add functions to calculate in and out frames and latency.

8 years agoaudioconvert: clear convert object
Wim Taymans [Wed, 16 Dec 2015 09:44:16 +0000 (10:44 +0100)]
audioconvert: clear convert object

8 years agodocs: update to git
Sebastian Dröge [Wed, 16 Dec 2015 08:35:38 +0000 (09:35 +0100)]
docs: update to git

8 years agoRevert "alsasrc: Disable HW timestamp"
Nicolas Dufresne [Mon, 14 Dec 2015 18:59:02 +0000 (13:59 -0500)]
Revert "alsasrc: Disable HW timestamp"

This reverts commit 3642e9a3913a35c00f379034780c27298d09929c.

8 years agobase: Add g_autoptr() support to all types
Xavier Claessens [Tue, 10 Nov 2015 17:54:23 +0000 (12:54 -0500)]
base: Add g_autoptr() support to all types

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

8 years agoalsasrc: Disable HW timestamp
Nicolas Dufresne [Thu, 24 Sep 2015 22:26:51 +0000 (18:26 -0400)]
alsasrc: Disable HW timestamp

This is a workaround for broken pulse module.

8 years agortspconnection: Properly initialize stack-allocated RTSP message to all-zeroes
Sebastian Dröge [Mon, 14 Dec 2015 18:03:33 +0000 (19:03 +0100)]
rtspconnection: Properly initialize stack-allocated RTSP message to all-zeroes

8 years agortspconnection: Use relative URI for non-proxy tunneled requests
Evan Callaway [Mon, 14 Dec 2015 15:57:19 +0000 (10:57 -0500)]
rtspconnection: Use relative URI for non-proxy tunneled requests

Match the section 5.1.2 of the HTTP/1.0 spec by using relative URIs unless we
are using a proxy server. Also, send Host header for compatability with
HTTP/1.1 and some HTTP/1.0 servers.

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

8 years agortspconnection: Support authentication during tunneling setup
Evan Callaway [Mon, 14 Dec 2015 14:10:16 +0000 (09:10 -0500)]
rtspconnection: Support authentication during tunneling setup

gst_rtsp_connection_connect_with_response accepts a response pointer
which it fills with the response from setup_tunneling if the
connection is configured to be tunneled.  The motivation for this is to
allow the caller to inspect the response header to determine if
additional authentication is required so that the connection can be
retried with the appropriate authentication headers.

The function prototype of gst_rtsp_connection_connect has been
preserved for compatability with existing code and wraps
gst_rtsp_connection_connect_with_response.

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

8 years agortpbasedepayload: Check if the packet loss event actually has timestamp and duration...
Sebastian Dröge [Mon, 14 Dec 2015 12:11:21 +0000 (13:11 +0100)]
rtpbasedepayload: Check if the packet loss event actually has timestamp and duration fields

CID 1139615

8 years agoaudio: adapt API for non-interleaved formats
Wim Taymans [Thu, 10 Dec 2015 16:46:26 +0000 (17:46 +0100)]
audio: adapt API for non-interleaved formats

Allow an array of sample blocks to be passed to the channel mix and
quantizer functions to support non-interleaved formats.

8 years agoaudio-converter: improve API for non-interleaved formats
Wim Taymans [Thu, 10 Dec 2015 15:26:40 +0000 (16:26 +0100)]
audio-converter: improve API for non-interleaved formats

Make it possible to pass an array of sample blocks when dealing with
non-interleaved formats.

8 years agoriff: add FourCC aliases
Luis de Bethencourt [Sat, 12 Dec 2015 16:49:28 +0000 (17:49 +0100)]
riff: add FourCC aliases

Support media using the aliases defined in http://www.fourcc.org/ that are
exact duplicates of already known codes.

8 years agoriff: use defined FourCC
Luis de Bethencourt [Sat, 12 Dec 2015 16:04:21 +0000 (17:04 +0100)]
riff: use defined FourCC

Make gst_riff_create_video_caps() use the FourCC available in riff-ids.h,
like gst_riff_create_audio_caps() does.

8 years agovideodecoder: add some debug around pool negotiation
Julien Isorce [Fri, 11 Dec 2015 14:42:09 +0000 (14:42 +0000)]
videodecoder: add some debug around pool negotiation

It lets us know easily which pool is activated or
inactivated during the negotiation.

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

8 years agovideo/convertframe: Add crop meta support via videocrop
Song Bing [Fri, 11 Dec 2015 13:42:00 +0000 (21:42 +0800)]
video/convertframe: Add crop meta support via videocrop

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

8 years agortpbasedepay: when setting discont flag make sure rtpbuffer is current
Tim-Philipp Müller [Fri, 11 Dec 2015 11:01:53 +0000 (11:01 +0000)]
rtpbasedepay: when setting discont flag make sure rtpbuffer is current

Depayloaders will look at rtpbuffer->buffer for the discont flag.
When we set the discont flag on a buffer in the rtp base depayloader
and we have to make the buffer writable, make sure the rtpbuffer
actually contains the newly-flagged buffer, not the original input
buffer. This was introduced with the addition of the process_rtp_packet
vfunc, but would only trigger if the input buffer wasn't flagged
already and was not writable already.

8 years agotests: rtpbasedepayload: add test for seqnum gap discont setting
Tim-Philipp Müller [Fri, 11 Dec 2015 00:18:30 +0000 (00:18 +0000)]
tests: rtpbasedepayload: add test for seqnum gap discont setting

The problem was triggered only when the input buffers were not
writable, so add extra ref to test this code path.

8 years agortpbasedepay: fix possible refcounting issue when detecting a discont
Tim-Philipp Müller [Fri, 11 Dec 2015 10:25:00 +0000 (10:25 +0000)]
rtpbasedepay: fix possible refcounting issue when detecting a discont

When we detect a discont and the input buffer isn't already flagged
as discont, handle_buffer() does a gst_buffer_make_writable() on the
input buffer in order to set the flag. This assumed it had ownership
of the input buffer though, which it didn't. This would still work
fine in most scenarios, but could lead to crashes or mini object
unref criticals in some cases when a discont is detected, e.g. when
using pcapparse in front of a depayloader. This problem was
introduced in bc14cdf529e.

8 years agomultisocketsink: add GstNetworkMessage event
Wim Taymans [Thu, 10 Dec 2015 11:18:04 +0000 (12:18 +0100)]
multisocketsink: add GstNetworkMessage event

Add a property and logic to send a GstNetworkMessage event containing
the message that was received from a client. This can be used to
implement simply bidirectional communication.

8 years agomultisocketsink: add dispatched event
Wim Taymans [Thu, 10 Dec 2015 11:14:37 +0000 (12:14 +0100)]
multisocketsink: add dispatched event

Add a property and logic to send a GstNetworkMessageDispatched
event upstream to notify that a buffer has been sent. This can be used
to keep track of what client received what buffers.

8 years agosocketsrc: handle GstNetworkMessage events
Wim Taymans [Fri, 4 Dec 2015 10:17:37 +0000 (11:17 +0100)]
socketsrc: handle GstNetworkMessage events

Add a property to handle GstNetworkMessage events. These events contain
a buffer that is sent on the socket to allow for simple bidirectional
communication.

8 years agoaudio-convert: improve converter API
Wim Taymans [Wed, 9 Dec 2015 16:16:26 +0000 (17:16 +0100)]
audio-convert: improve converter API

Improve the converter API to allow for an max input and output number of
samples and return the number of consumed/produced samples.

8 years agoappsrc: duration query support based on the size property
Philippe Normand [Tue, 8 Dec 2015 10:15:34 +0000 (11:15 +0100)]
appsrc: duration query support based on the size property

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

8 years agoAutomatic update of common submodule
Nicolas Dufresne [Mon, 7 Dec 2015 14:08:05 +0000 (09:08 -0500)]
Automatic update of common submodule

From b319909 to 86e4663

8 years agomultisocketsink: let downstream know we support metadata
Wim Taymans [Fri, 4 Dec 2015 11:25:11 +0000 (12:25 +0100)]
multisocketsink: let downstream know we support metadata

Let downstream know that we support GstNetControlMessage metadata API.

8 years agovideodecoder: Avoid pushing buffers before segment start
Edward Hervey [Thu, 3 Dec 2015 15:38:45 +0000 (16:38 +0100)]
videodecoder: Avoid pushing buffers before segment start

In the case where the stream doesn't have a framerate set and the frames
don't have a duration set, we still want to use the clipping path to
make sure we don't push buffers outside of the segment.

The problem was the previous iteration was setting a duration of 2s, which
meant that any buffer which was less than 2s before the segment start would
end up getting pushed.

Instead, use a saner 40ms (25fps single frame duration) to figure out whether
the frame could be within the segment or not

8 years agoDrop usage of deprecated g-ir-scanner --strip-prefix flag
Reynaldo H. Verdejo Pinochet [Thu, 3 Dec 2015 04:19:43 +0000 (20:19 -0800)]
Drop usage of deprecated g-ir-scanner --strip-prefix flag

8 years agodecodebin2: fix "Attempt to unlock mutex that was not locked"
Tim-Philipp Müller [Wed, 2 Dec 2015 18:16:05 +0000 (18:16 +0000)]
decodebin2: fix "Attempt to unlock mutex that was not locked"

Introduced in commit ee44337f, caused the decodebin
test_text_plain_streams unit test to abort.

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

8 years agoplayback: Expose XSUB formats by default
Edward Hervey [Mon, 16 Nov 2015 13:50:58 +0000 (14:50 +0100)]
playback: Expose XSUB formats by default

This is a workaround, we should remove this once we have a proper
decoder

8 years agodiscoverer: Also consider XSUB as a subtitle format
Edward Hervey [Mon, 16 Nov 2015 13:50:30 +0000 (14:50 +0100)]
discoverer: Also consider XSUB as a subtitle format

8 years agopbutils: Add description for XSUB subpicture format
Edward Hervey [Mon, 16 Nov 2015 13:49:55 +0000 (14:49 +0100)]
pbutils: Add description for XSUB subpicture format

8 years agoriff: 'DXSA' is the same as 'DXSB'
Edward Hervey [Mon, 16 Nov 2015 13:49:19 +0000 (14:49 +0100)]
riff: 'DXSA' is the same as 'DXSB'

Which is subpicture/x-xsub

8 years agostreamsynchronizer: Rename GstStream => GstSyncStream
Edward Hervey [Tue, 21 Jul 2015 07:58:56 +0000 (09:58 +0200)]
streamsynchronizer: Rename GstStream => GstSyncStream

Avoid clashes with future GstStream from core

8 years agortspconnection: Update capitalization of x-sessioncookie
Evan Callaway [Wed, 2 Dec 2015 14:00:31 +0000 (09:00 -0500)]
rtspconnection: Update capitalization of x-sessioncookie

Some servers incorrectly parse header names with strict case-sensitivity.  For
compatibility with these systems change X-Sessioncookie to x-sessioncookie.

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

8 years agodecodebin: Update buffering messages when removing an element that had buffering...
Sebastian Dröge [Wed, 2 Dec 2015 14:16:22 +0000 (16:16 +0200)]
decodebin: Update buffering messages when removing an element that had buffering pending

Otherwise we'll remove that element while keeping its buffering message in our
list, and because of that never ever report buffering 100% as that element
will always be at a lower percentage.

This fixes e.g. seeking over Period boundaries in DASH and various other
issues when buffering happens between group switches.

Also use a new mutex for protecting the buffering messages. The object lock is
already used by gst_object_has_as_ancestor() and we need to use it now for
checking if the buffering message sender has the to-be-removed element as
ancestor.

8 years agomultisocketsink: keep on reading when we stop sending
Wim Taymans [Wed, 2 Dec 2015 08:52:19 +0000 (09:52 +0100)]
multisocketsink: keep on reading when we stop sending

When we stop sending because we need more data, still keep a GSource
around to receive data from the clients.
Also handle read and write in the same go.

8 years agoaudiobasesrc: Post latency message on the bus after set_caps()
Sebastian Dröge [Tue, 1 Dec 2015 17:57:10 +0000 (19:57 +0200)]
audiobasesrc: Post latency message on the bus after set_caps()

The latency is only known once the caps are known, and might change
whenever the caps are changing.

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

8 years agoaudiobasesink: Post latency message on the bus after set_caps()
Michael Olbrich [Fri, 25 Sep 2015 12:47:48 +0000 (14:47 +0200)]
audiobasesink: Post latency message on the bus after set_caps()

Any latency query before this will not get the correct latency so a new
latency query should be triggered once the audio sink know its own latency.

Without this the initial latency query from the pipeline arrives too early
sometimes and the resulting latency is too short.

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

8 years ago[PATCH] Fix a race condition accessing the decode_chain field.
Thomas Bluemel [Fri, 6 Nov 2015 14:21:14 +0000 (14:21 +0000)]
[PATCH] Fix a race condition accessing the decode_chain field.

Make sure that any access to the GstDecodeBin's decode_chain
field is protected using the EXPOSE_LOCK.  Also add a simple
reference counter to the GstDecodeChain structure so that when
the type_found signal fires it can hold onto the decode chain
even while the EXPOSE_LOCK is not held.  This should fix a
race condition if the type_found signal fires right in the
middle of a state change that messes with the same decode
chain.

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

8 years agodecodebin: early out on pad-added when the pad is inactive
Vincent Penquerc'h [Thu, 20 Aug 2015 16:30:38 +0000 (17:30 +0100)]
decodebin: early out on pad-added when the pad is inactive

The pad may be recently deactivated if the element is switched
back down very quickly.

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

8 years agodecodebin: lock the expose lock around decode_chain use
Vincent Penquerc'h [Thu, 20 Aug 2015 16:29:36 +0000 (17:29 +0100)]
decodebin: lock the expose lock around decode_chain use

Helps with a crash in decodebin when quickly switching states.

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

8 years agocodec-utils: accept wrong version field in OpusHead header
Luis de Bethencourt [Sat, 28 Nov 2015 14:24:55 +0000 (14:24 +0000)]
codec-utils: accept wrong version field in OpusHead header

Some Opus files found on the wild have 0 in the version field of the
OpusHead header, instead of the correct value of 1. The files still
play, don't make this error fatal.

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

8 years agoallocators: add debug category for fd memory and allocator
William Manley [Thu, 26 Nov 2015 11:33:02 +0000 (11:33 +0000)]
allocators: add debug category for fd memory and allocator

Debugging can now be viewed by setting GST_DEBUG=fdmemory:9

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