platform/upstream/gstreamer.git
10 years agoplaysinkconvertbin: improve gst_play_sink_convert_bin_getcaps return
Matthieu Bouron [Fri, 21 Feb 2014 14:01:37 +0000 (14:01 +0000)]
playsinkconvertbin: improve gst_play_sink_convert_bin_getcaps return

If we have the peer caps and a caps filter, return peer_caps +
intersect_first (filter, converter_caps) instead of
intersect_first (filter, peer_caps + converter_caps) and preservers
downstream caps preference order.

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

10 years agotests: Refactor RTP basepayloading test into pay/depay parts
Sebastian Rasmussen [Thu, 30 Jan 2014 23:06:18 +0000 (00:06 +0100)]
tests: Refactor RTP basepayloading test into pay/depay parts

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

10 years agortpbasepayload: Let caps event also configure seqnum-offset
Sebastian Rasmussen [Thu, 30 Jan 2014 23:19:16 +0000 (00:19 +0100)]
rtpbasepayload: Let caps event also configure seqnum-offset

Previously the sequence number kept track of by GstRTPBasePayload would
only be set when going from READY to PAUSED state. This meant that a
downstream element that attempted to configure a basepayloader by
setting seqnum-offset e.g. in its sinkpad's caps template would have
trouble configuring the basepayloader. The reason was that the caps
event which arrives with the desired value for seqnum-offset did not
arrive at the basepayloader until caps negotiation took place,
significantly later than the transition from READY to PAUSED.

The result after this patch is that the default value for the
seqnum-offset property, or later set values for this property, will take
effect when going from READY to PAUSED like before. In addition the an
arriving caps event will also affect the basepayloaders configured
sequence number as the event arrives.

10 years agortpbasepayload: Fix payload type property boundary value
Sebastian Rasmussen [Thu, 30 Jan 2014 23:18:35 +0000 (00:18 +0100)]
rtpbasepayload: Fix payload type property boundary value

The payload type field in an RTP packet header is 7 bits wide, hence the
boundary values ought to be 0x00 and 0x7f, not the previously stated
values 0x00 and 0x80.

10 years agortpbasedepayload: Fix typos in comments
Sebastian Rasmussen [Thu, 30 Jan 2014 23:06:30 +0000 (00:06 +0100)]
rtpbasedepayload: Fix typos in comments

10 years agodocs: add GstVideoPool to docs
Tim-Philipp Müller [Fri, 21 Feb 2014 19:28:55 +0000 (19:28 +0000)]
docs: add GstVideoPool to docs

10 years agodecodebin: If we have a demuxer without dynamic srcpads, just assume no-more-pads
Sebastian Dröge [Fri, 21 Feb 2014 08:53:09 +0000 (09:53 +0100)]
decodebin: If we have a demuxer without dynamic srcpads, just assume no-more-pads

Otherwise we will wait until the multiqueue after the demuxer will
overrun, which is clearly not needed then.

10 years agodecodebin: Also make sure to not duplicate an element factory after a group
Sebastian Dröge [Fri, 21 Feb 2014 08:43:38 +0000 (09:43 +0100)]
decodebin: Also make sure to not duplicate an element factory after a group

If we are using an adaptive stream demuxer, which outputs a non-container
stream, we are putting another multiqueue after the *parser* following
the adaptive stream demuxer. We do not want to add another instance of
the same parser right after this multiqueue.

10 years agodecodebin: During pre-rolling always use the auto-preroll limits on multiqueues
Sebastian Dröge [Thu, 20 Feb 2014 14:38:48 +0000 (15:38 +0100)]
decodebin: During pre-rolling always use the auto-preroll limits on multiqueues

Even if we're buffering in the multiqueues.

10 years agodecodebin: Pass through the seekability information when setting multiqueue limits
Sebastian Dröge [Thu, 20 Feb 2014 14:37:54 +0000 (15:37 +0100)]
decodebin: Pass through the seekability information when setting multiqueue limits

10 years agodecodebin: During exposing of pads don't set the multiqueue limits multiple times...
Sebastian Dröge [Thu, 20 Feb 2014 14:36:47 +0000 (15:36 +0100)]
decodebin: During exposing of pads don't set the multiqueue limits multiple times to different values

Instead just set them once in the very end to the correct values.

10 years agodecodebin: Only enable multiqueue buffering once we're pre-rolled
Sebastian Dröge [Thu, 20 Feb 2014 14:07:26 +0000 (15:07 +0100)]
decodebin: Only enable multiqueue buffering once we're pre-rolled

Otherwise we will emit buffering messages not just from the last
multiqueue but also from previous multiqueues... confusing the
application with different percentages during pre-rolling.

10 years agodecodebin: Make sure that we always have a second multiqueue for adaptive streaming...
Sebastian Dröge [Thu, 20 Feb 2014 14:02:09 +0000 (15:02 +0100)]
decodebin: Make sure that we always have a second multiqueue for adaptive streaming demuxers

For adaptive streaming demuxer we insert a multiqueue after
this demuxer. This multiqueue will get one fragment per buffer.
Now for the case where we have a container stream inside these
buffers, another demuxer will be plugged and after this second
demuxer there will be a second multiqueue. This second multiqueue
will get smaller buffers and will be the one emitting buffering
messages.
If we don't have a container stream inside the fragment buffers,
we'll insert a multiqueue below right after the next element after
the adaptive streaming demuxer. This is going to be a parser or
decoder, and will output smaller buffers.

10 years agouridecodebin: Always use buffering in multiqueue for adaptive streams
Sebastian Dröge [Wed, 19 Feb 2014 09:21:16 +0000 (10:21 +0100)]
uridecodebin: Always use buffering in multiqueue for adaptive streams

10 years agouridecodebin: Only add a queue2 for buffering for non-adaptive streaming streams
Sebastian Dröge [Wed, 19 Feb 2014 09:06:13 +0000 (10:06 +0100)]
uridecodebin: Only add a queue2 for buffering for non-adaptive streaming streams

10 years agouridecodebin: pass on the buffering property for adaptive streams
Thiago Santos [Wed, 6 Feb 2013 11:46:58 +0000 (08:46 -0300)]
uridecodebin: pass on the buffering property for adaptive streams

Adaptive streams should download its data inside the demuxer, so
we want to use multiqueue's buffering messages to control the
pipeline flow and avoid losing sync if download rates are low;

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

10 years agotests: add new unit tests to .gitignore
Tim-Philipp Müller [Fri, 21 Feb 2014 19:07:59 +0000 (19:07 +0000)]
tests: add new unit tests to .gitignore

10 years agortspconnection: New unit test
Ognyan Tonchev [Wed, 19 Feb 2014 12:54:17 +0000 (13:54 +0100)]
rtspconnection: New unit test

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

10 years agortspconnection: Remove read child source when POST is disconnected
Ognyan Tonchev [Wed, 19 Feb 2014 12:53:06 +0000 (13:53 +0100)]
rtspconnection: Remove read child source when POST is disconnected

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

10 years agodefs: update for new rtspconnection symbols
Aleix Conchillo Flaqué [Thu, 20 Feb 2014 00:10:25 +0000 (16:10 -0800)]
defs: update for new rtspconnection symbols

10 years agooggdemux: allow file to go until the end in push mode
Thiago Santos [Wed, 19 Feb 2014 04:55:50 +0000 (01:55 -0300)]
oggdemux: allow file to go until the end in push mode

When seeking back to original state after duration seeks, let
upstream know that we want the whole file, including the last
byte that wasn't requested on the duration seeks.

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

10 years agooggdemux: remove unused instance variable event
Thiago Santos [Thu, 20 Feb 2014 02:54:59 +0000 (23:54 -0300)]
oggdemux: remove unused instance variable event

It is never set to anything

10 years agortspconnection: allow specifying a certificate database
Aleix Conchillo Flaqué [Mon, 17 Feb 2014 01:39:35 +0000 (17:39 -0800)]
rtspconnection: allow specifying a certificate database

Two new functions have been added,
gst_rtsp_connection_set_tls_database() and
gst_rtsp_connection_get_tls_database(). The certificate database will be
used when a certificate can't be verified with the default database.

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

10 years agortspconnection: get rid of superfluous whitespaces
Aleix Conchillo Flaqué [Mon, 17 Feb 2014 07:55:17 +0000 (23:55 -0800)]
rtspconnection: get rid of superfluous whitespaces

10 years agoencodebin: simplify tests
Stefan Sauer [Tue, 18 Feb 2014 19:48:57 +0000 (20:48 +0100)]
encodebin: simplify tests

Also use the profile helper for the ogg profile here.

10 years agovideo: Fix NV12_64Z32 default offset and size
Nicolas Dufresne [Tue, 18 Feb 2014 18:08:09 +0000 (13:08 -0500)]
video: Fix NV12_64Z32 default offset and size

This was a regression introduced by f52fd7a68, where we started using
the stride to encode the dimensions in tiles. This patch simply updates
offset and size calculation as described in the documentation,
part-mediatype-video-raw.txt.

10 years agoplaybin: Keep inputselector around until we release its pads
Sebastian Dröge [Tue, 18 Feb 2014 14:02:57 +0000 (15:02 +0100)]
playbin: Keep inputselector around until we release its pads

Otherwise there's an interesting race condition when we destroy
the inputselector (actually it will be destroyed later when its state
change message gets destroyed) and afterwards release its sinkpad.

This is the code path when the last channel is removed from the
input selector.

Gave this warning sometimes, for chained oggs or whenever else
we change decode groups:
GStreamer-CRITICAL **: Padname '':sink_0 does not belong to element inputselector0 when removing

10 years agoaudioconvert: never do mixing for 1->1 channel conversions
Tim-Philipp Müller [Tue, 18 Feb 2014 10:42:04 +0000 (10:42 +0000)]
audioconvert: never do mixing for 1->1 channel conversions

MONO and NONE position are the same, for example, but in
general there isn't much to do here for such a conversion.

Fixes problem in audioconvert, which would end up using
a mixmatrix when converting between different mono format
because it thinks MONO positioning is different from
unpositioned channels, which is not the case in this
special case. The mixmatrix would end up being 0.0 so
audioconvert would convert to silence samples.

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

10 years agoaudio: map channels=1,channel-mask=0 to MONO instead of NONE
Rafał Mużyło [Tue, 18 Feb 2014 10:32:46 +0000 (10:32 +0000)]
audio: map channels=1,channel-mask=0 to MONO instead of NONE

Fixes problem in audioconvert, which would end up using
a mixmatrix when converting between different mono format
because it thinks MONO positioning is different from
unpositioned channels, which is not the case in this
special case. The mixmatrix would end up being 0.0 so
audioconvert would convert to silence samples.

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

10 years agoencodebin: refactor tests
Stefan Sauer [Sun, 16 Feb 2014 20:24:29 +0000 (21:24 +0100)]
encodebin: refactor tests

Add a new test to demo how to get missing plugin message.
Split some tests that unneccesarily munge unrelated checks into one test.

10 years agoplaysink: Only remove the complete text chain if the text pad goes away
Sebastian Dröge [Sun, 16 Feb 2014 14:32:47 +0000 (15:32 +0100)]
playsink: Only remove the complete text chain if the text pad goes away

If the text pads does not go away we just set the overlay to silent, which
allows us to immediately re-enable subs later again. However before this
change we also released the streamsynchronizer text pads, which deadlocked
because there was still dataflow going on. Just do this only if we remove
the complete chain.

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

10 years agotools: gst-play: add volume control
Tim-Philipp Müller [Fri, 14 Feb 2014 20:16:04 +0000 (20:16 +0000)]
tools: gst-play: add volume control

10 years agooggmux: properly flush when seeking at the beginning
Thiago Santos [Thu, 13 Feb 2014 19:03:01 +0000 (16:03 -0300)]
oggmux: properly flush when seeking at the beginning

Reset all internal status when collect pads forwards a flush-stop
from the pads to be able to start the stream again.

10 years agouridecodebin: Don't leak pad references
Sebastian Dröge [Wed, 12 Feb 2014 16:34:32 +0000 (17:34 +0100)]
uridecodebin: Don't leak pad references

10 years agotests: Don't build disabled plugins' check tests
Sebastian Rasmussen [Sun, 2 Feb 2014 22:59:36 +0000 (23:59 +0100)]
tests: Don't build disabled plugins' check tests

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

10 years agoplaybin: First try to get the pad's current caps, then query caps
Sebastian Dröge [Tue, 11 Feb 2014 15:35:45 +0000 (16:35 +0100)]
playbin: First try to get the pad's current caps, then query caps

The caps query might give us ANY caps while the pad has fixed caps
configured currently.

10 years agoplaybin: Fix memory leak in autoplugging code
Sebastian Dröge [Mon, 10 Feb 2014 15:33:50 +0000 (16:33 +0100)]
playbin: Fix memory leak in autoplugging code

We should not leak element factories ideally.

10 years agoplaybin: Fix memory leak in unit test
Sebastian Dröge [Mon, 10 Feb 2014 15:33:35 +0000 (16:33 +0100)]
playbin: Fix memory leak in unit test

10 years agosubtitleoverlay: Remove unused function
Sebastian Dröge [Sun, 9 Feb 2014 22:17:03 +0000 (23:17 +0100)]
subtitleoverlay: Remove unused function

10 years agoaudiosrc: Fix typo in docs
Sebastian Dröge [Sun, 9 Feb 2014 10:28:48 +0000 (11:28 +0100)]
audiosrc: Fix typo in docs

We read *from* the audio device, not to it.

10 years agovideoscale: Fix compiler warning in unit test
Sebastian Dröge [Sat, 8 Feb 2014 16:11:54 +0000 (17:11 +0100)]
videoscale: Fix compiler warning in unit test

error: implicit conversion from enumeration type
'GstFormat' to different enumeration type 'GstVideoFormat'

10 years agovideoconvert: Fix compiler warning in unit test
Sebastian Dröge [Sat, 8 Feb 2014 16:11:04 +0000 (17:11 +0100)]
videoconvert: Fix compiler warning in unit test

error: implicit conversion from enumeration type
'GstFormat' to different enumeration type 'GstVideoFormat'

10 years agoplayback-test: Fix types for comparisons
Sebastian Dröge [Sat, 8 Feb 2014 16:07:15 +0000 (17:07 +0100)]
playback-test: Fix types for comparisons

Storing a 64 bit integer in a 32 bit integer and then checking
for the error cases might not be ideal.

error: comparison of constant -9223372036854775808 with
expression of type 'guint' (aka 'unsigned int') is always true

10 years agooggmux: Fix typo in header include guard
Sebastian Dröge [Sat, 8 Feb 2014 16:02:27 +0000 (17:02 +0100)]
oggmux: Fix typo in header include guard

clang does not like this.

10 years agoalsa: Make clang happy with our g_strdup_vprintf() wrapper
Sebastian Dröge [Sat, 8 Feb 2014 16:01:38 +0000 (17:01 +0100)]
alsa: Make clang happy with our g_strdup_vprintf() wrapper

10 years agoplayback-test: allow seeking outside of the range
Wim Taymans [Fri, 7 Feb 2014 14:33:34 +0000 (15:33 +0100)]
playback-test: allow seeking outside of the range

For download buffer, allow seeking outside of the already downloaded
area.

10 years agobasetextoverlay: use correct segment for text
Thiago Santos [Fri, 7 Feb 2014 05:09:10 +0000 (02:09 -0300)]
basetextoverlay: use correct segment for text

video time uses the 'segment' and the text time should use
the 'text_segment'.

If different segments are used for video and text it would
lead to out of sync video/subtitles.

10 years agocheck: add some more checks
Wim Taymans [Tue, 4 Feb 2014 13:31:29 +0000 (14:31 +0100)]
check: add some more checks

Add header and payload length check in case of CSRCs.

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

10 years agojsseek: Add missing HAVE_X check
Sebastian Rasmussen [Mon, 3 Feb 2014 01:35:57 +0000 (02:35 +0100)]
jsseek: Add missing HAVE_X check

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

10 years agotagdemux: Forward TIME seeks upstream too, maybe upstream can handle that
Eric Trousset [Tue, 4 Feb 2014 12:55:49 +0000 (13:55 +0100)]
tagdemux: Forward TIME seeks upstream too, maybe upstream can handle that

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

10 years agodocs: doc fixes for audio library
Stefan Sauer [Fri, 31 Jan 2014 22:27:03 +0000 (23:27 +0100)]
docs: doc fixes for audio library

Add sections docs for audiometa. Fix sections docs for audiochannels. Remove old
mixerutil section.

10 years agovideotestsrc: ensure having caps when setting the buffer pool config
Julien Isorce [Fri, 31 Jan 2014 13:40:36 +0000 (13:40 +0000)]
videotestsrc: ensure having caps when setting the buffer pool config

It happens if downstream does not propose a buffer pool.
GST_DEBUG=2 gst-launch-1.0 videotestsrc ! fakesink

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

10 years agogst-play: Support non-ASCII tags
Sebastian Dröge [Thu, 30 Jan 2014 20:18:04 +0000 (21:18 +0100)]
gst-play: Support non-ASCII tags

By calling setlocale() to get us multi-byte/UTF-8 support.

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

10 years agogst-discoverer: Support non-ASCII tags
Bastien Nocera [Tue, 28 Jan 2014 13:28:27 +0000 (14:28 +0100)]
gst-discoverer: Support non-ASCII tags

By calling setlocale() to get us multi-byte/UTF-8 support.

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

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

From d48bed3 to 1a07da9

10 years agostreamsplitter: push pending events before eos
Thiago Santos [Wed, 29 Jan 2014 16:58:07 +0000 (13:58 -0300)]
streamsplitter: push pending events before eos

Push any pending events downstream before pushing eos

10 years agotests: audioencoder: add tests analogous to the videoencoder ones
Thiago Santos [Wed, 29 Jan 2014 15:33:21 +0000 (12:33 -0300)]
tests: audioencoder: add tests analogous to the videoencoder ones

10 years agoaudioencoder: push pending events and tags before EOS
Thiago Santos [Wed, 29 Jan 2014 15:32:16 +0000 (12:32 -0300)]
audioencoder: push pending events and tags before EOS

if there are tags or events pending and an EOS is received, push those
events and tags before the EOS.

10 years agotests: videoencoder: check that tags are pushed before eos
Thiago Santos [Tue, 28 Jan 2014 18:25:05 +0000 (15:25 -0300)]
tests: videoencoder: check that tags are pushed before eos

Check that if a new tag event is received right before eos it
is pushed before the eos

10 years agovideoencoder: push tags and events before eos
Thiago Santos [Tue, 28 Jan 2014 18:30:35 +0000 (15:30 -0300)]
videoencoder: push tags and events before eos

if any tags or events are pending, push them before pushing eos

10 years agotests: videoencoder: basic videoencoder base class test
Thiago Santos [Tue, 28 Jan 2014 18:06:39 +0000 (15:06 -0300)]
tests: videoencoder: basic videoencoder base class test

Adds a single test for video encoding

10 years agortpbasepayload: Do cosmetic changes to rtptime calculations
Sebastian Rasmussen [Tue, 26 Nov 2013 00:13:45 +0000 (01:13 +0100)]
rtpbasepayload: Do cosmetic changes to rtptime calculations

 * Change running time type to guint64
 * Use GST_CLOCK_TIME_NONE() to check for invalid timestamps
 * Name variables so ns-based and hz-based timestamps are evident

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

10 years agortpbasepayload: Expose running-time of payloaded stream
Sebastian Rasmussen [Mon, 27 Jan 2014 23:40:38 +0000 (00:40 +0100)]
rtpbasepayload: Expose running-time of payloaded stream

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

10 years agortpbasepayload: Improve documentation for perfect-rtptime
Sebastian Rasmussen [Wed, 22 Jan 2014 16:47:02 +0000 (17:47 +0100)]
rtpbasepayload: Improve documentation for perfect-rtptime

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

10 years agortpbasepayload: Fix typos in documentation for properties
Sebastian Rasmussen [Thu, 16 Jan 2014 15:58:43 +0000 (16:58 +0100)]
rtpbasepayload: Fix typos in documentation for properties

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

10 years agodecodebin: make it possible to register multiple handlers for autoplug-select
Alessandro Decina [Mon, 27 Jan 2014 13:19:07 +0000 (00:19 +1100)]
decodebin: make it possible to register multiple handlers for autoplug-select

Change the way autoplug-select is accumulated so that it's possible to have
multiple handlers. The handlers keep getting called as long as they keep
returning GST_AUTOPLUG_SELECT_TRY.

One practical example of when this is needed is when hooking into playbin's
uridecodebin, which is perhaps not very elegant but the only way to influence
which streams playbin autoplugs/exposes.

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

10 years agortpbasepayload: Add statistics property
Sebastian Rasmussen [Thu, 16 Jan 2014 20:49:59 +0000 (21:49 +0100)]
rtpbasepayload: Add statistics property

This property allows for an atomically retrieved set of properties that
can e.g. be used to generate RTP-Info headers.

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

10 years agouridecodebin: Drop hardcoded list of media suitable for download buffering
Sjoerd Simons [Fri, 26 Jul 2013 13:44:28 +0000 (15:44 +0200)]
uridecodebin: Drop hardcoded list of media suitable for download buffering

Discussion on IRC indicated that the main reason for this list was to
prevent demuxers that can trigger a lot of seeking from using
progressive buffering using queue2 (which due to being seekable triggers
that behaviour).

However given that upstream can indicate seeks are possible but should
be avoided via a scheduling query, this extra whitelisting shouldn't be
necessary for well-behaved demuxers.

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

10 years agovideoconvert: tweak the scoring algorithm
Wim Taymans [Fri, 24 Jan 2014 11:19:43 +0000 (12:19 +0100)]
videoconvert: tweak the scoring algorithm

Make a little table of conversions and manually score them. Use this
info to define better weights for the scoring algorithm.
give separate scores for doing changes and the impact of the change,
This allows us to avoid conversion when we can but still allow fairly
lossless changes.
The old code did not penalize GRAY conversions, PAL conversions were
punished too low and depth conversions too high.

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

10 years agovideo-chroma: don't crash on NULL resamplers
Wim Taymans [Thu, 23 Jan 2014 09:45:00 +0000 (10:45 +0100)]
video-chroma: don't crash on NULL resamplers

Make dummy resamplers for all cases and only execute the horizontal
resampler instead of crashing.

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

10 years agoaudiobasesink: make _get_time more threadsafe
Wim Taymans [Tue, 21 Jan 2014 10:21:56 +0000 (11:21 +0100)]
audiobasesink: make _get_time more threadsafe

We call the _get_time function from the provided clock and we don't lock
the sink object for performance reasons. Make sure we only read and
check variables once so that they don't change while we are executing
the code.

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

10 years agoaudioresample: It's HAVE_EMMINTRIN_H, not HAVE_XMMINTRIN_H for SSE2
Sebastian Dröge [Mon, 20 Jan 2014 15:11:04 +0000 (16:11 +0100)]
audioresample: It's HAVE_EMMINTRIN_H, not HAVE_XMMINTRIN_H for SSE2

10 years agoaudioresample: Fix build on x86 if emmintrin.h is available but can't be used
Antoine Jacoutot [Mon, 20 Jan 2014 14:44:09 +0000 (15:44 +0100)]
audioresample: Fix build on x86 if emmintrin.h is available but can't be used

On i386, EMMINTRIN is defined but not usable without SSE so check for
__SSE__ and __SSE2__ as well.

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

10 years agoconfigure: Initialize Qt variables
Sebastian Dröge [Mon, 20 Jan 2014 09:30:36 +0000 (10:30 +0100)]
configure: Initialize Qt variables

10 years agoexamples: Port Qt examples to Qt5
Sebastian Dröge [Mon, 20 Jan 2014 08:46:15 +0000 (09:46 +0100)]
examples: Port Qt examples to Qt5

10 years agoriff: Fix G726 caps creation
Nicola Murino [Sat, 18 Jan 2014 18:22:12 +0000 (19:22 +0100)]
riff: Fix G726 caps creation

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

10 years agodiscoverer: minor docs fix
Tim-Philipp Müller [Sat, 18 Jan 2014 00:18:51 +0000 (00:18 +0000)]
discoverer: minor docs fix

Can use a custom main context as well if needed.

10 years agovideodecoder: Add API to get the currently pending frame size for parsing
Sebastian Dröge [Sat, 18 Jan 2014 12:54:22 +0000 (13:54 +0100)]
videodecoder: Add API to get the currently pending frame size for parsing

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

10 years agoplaybin: Remove unnecessary assignment
Wonchul Lee [Sat, 18 Jan 2014 12:20:51 +0000 (21:20 +0900)]
playbin: Remove unnecessary assignment

Remove duplicated assignment

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

10 years agoplaybin: Insert decoders without GstAVElement information between the other decoders
Sebastian Dröge [Sat, 18 Jan 2014 12:31:06 +0000 (13:31 +0100)]
playbin: Insert decoders without GstAVElement information between the other decoders

Otherwise they would be preferred over all decoders independent
of their ranks.

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

10 years agoplaybin: Only put parsers and sinks first, not all non-decoders
Sebastian Dröge [Sat, 18 Jan 2014 12:12:16 +0000 (13:12 +0100)]
playbin: Only put parsers and sinks first, not all non-decoders

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

10 years agotests: videodecoder: plug a few leaks
Thiago Santos [Fri, 17 Jan 2014 14:08:32 +0000 (11:08 -0300)]
tests: videodecoder: plug a few leaks

Remove leaks of caps and events references

10 years agovideodecoder: plug leak when frames are released on subclass stop
Thiago Santos [Fri, 17 Jan 2014 13:17:29 +0000 (10:17 -0300)]
videodecoder: plug leak when frames are released on subclass stop

They end up stored in the 'pending_events' list and should be
freed after calling stop

10 years agogst-play: Handle CLOCK_LOST message
Sebastian Dröge [Fri, 17 Jan 2014 14:10:42 +0000 (15:10 +0100)]
gst-play: Handle CLOCK_LOST message

It is necessary for playbin gapless playback when switching
between audio-only and video-only files for example.

10 years agostreamsplitter: handle ACCEPT_CAPS query correctly
Wim Taymans [Thu, 16 Jan 2014 15:32:34 +0000 (16:32 +0100)]
streamsplitter: handle ACCEPT_CAPS query correctly

We can accept a caps when one of the downstream peers can accept the
caps. This is not the same as checking a subset of the getcaps
result because parsers might accept broader caps than what their getcaps
function returns (See https://bugzilla.gnome.org/show_bug.cgi?id=677401).

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

10 years agotests: audiodecoder: add another test for negotiation with gap event
Thiago Santos [Tue, 14 Jan 2014 16:02:28 +0000 (13:02 -0300)]
tests: audiodecoder: add another test for negotiation with gap event

Check that even if the subclass doesn't call set_output_format, the base
class should use upstream provided caps to fill the output caps that is
pushed before the gap event is forwarded, otherwise it ends again fixating
the rate and channels to 1.

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

10 years agoaudiodecoder: copy rate and channels from input before fixating output caps
Thiago Santos [Tue, 14 Jan 2014 16:05:54 +0000 (13:05 -0300)]
audiodecoder: copy rate and channels from input before fixating output caps

For default caps generation when handling gap events that are sent
before any buffer, try to use caps that are closer to what upstream
provided to avoid fixating rate or channels to 1 as default.

So there are the steps:
1) Try to set rate, channels and channel-mask from upstream if provided
2) Fixate the rate and channels to the default rate and channels from
   audio lib
3) Fixate the caps just to be sure everything is fixed
4) If no channel-mask was provided and channels > 2, use a default
   channel-mask (taken from audioconvert code)

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

10 years agoxvimagesink: don't recreate xvcontext
Holger Kaelberer [Tue, 14 Jan 2014 22:07:34 +0000 (23:07 +0100)]
xvimagesink: don't recreate xvcontext

A xvcontext can be created early in gst_xvimagesink_set_window_handle().
In this case don't recreate, i.e. overwrite it in gst_xvimagesink_open().
Otherwise XEvents won't be handled in the xevent listener thread.

Fixes a regression when setting the window handle on the sink in
the very beginning before changing its state.

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

10 years agooggdemux: fix broken seeking reading the whole file
Vincent Penquerc'h [Tue, 14 Jan 2014 12:05:46 +0000 (12:05 +0000)]
oggdemux: fix broken seeking reading the whole file

A change in gst_ogg_demux_do_seek caused oggdemux to wait for
a page for each of the streams, including a skeleton stream if
one was present. Since Skeleton only has header pages, that
was never going to end well.

Also, the code was skipping CMML streams when looking for pages,
so would also have broken on CMML streams.

Thus, we change the code to disregard Skeleton streams, as well
as discontinuous streams (such as CMML and Kate). While it may
be desirable to consider Kate streams too (in order to avoid
losing a subtitle starting near the seek point), this may be
a performance drag when seeking where no subtitles are. Maybe
one could add a "give up" threshold for such discontinuous
streams, so we'd get any page if there is one, but do not end
up reading preposterous amounts of data otherwise.

In any case, it is important that the code that determines
the amount of streams to look pages for remains consistent with
the "early out" conditions of the code that actually parses
the incoming pages, lest we never decrease the pending counter
to zero.

This fixes seeking on a file with a skeleton track reading all
the file on each seek.

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

10 years agooggdemux: use an adaptive chunksize for performance reasons
Vincent Penquerc'h [Mon, 13 Jan 2014 15:14:14 +0000 (15:14 +0000)]
oggdemux: use an adaptive chunksize for performance reasons

Ogg data is read chunk by chunk, and the chunk size used was
originally taken from libvorbisfile. However, this value leads
to poor performance when used on an Ogg file with large pages
(Ogg pages can be close to 64 KB).

We can't just use a larger chunk size, since this will decrease
performance on small page streams, so we use an adaptive scheme
where the chunk size is twice the largest page size we've seen
so far in the stream. For "typical" Ogg/Vorbis, this gives us
almost the same chunk size (a bit lower), and this lets us get
better performance on streams with large pages.

10 years agoaudiodecoder: avoid parsing caps event if it is not used
Thiago Santos [Mon, 13 Jan 2014 23:47:02 +0000 (20:47 -0300)]
audiodecoder: avoid parsing caps event if it is not used

Saves some cpu

10 years agoaudiodecoder: make sure caps is set before forwarding gap event
Thiago Santos [Mon, 13 Jan 2014 23:44:23 +0000 (20:44 -0300)]
audiodecoder: make sure caps is set before forwarding gap event

Before trying to generate a default fixated caps when handling a gap
event, make sure that the same strategy that is used when handling
a buffer has been attempted. Otherwise audiodecoder will ignore
upstream caps settings such as rate and channels and will likely
end with a caps with channels=1 and rate=1.

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

10 years agotests: audiodecoder: check that negotiation works buffers and gaps
Thiago Santos [Mon, 13 Jan 2014 22:40:49 +0000 (19:40 -0300)]
tests: audiodecoder: check that negotiation works buffers and gaps

Adds 2 tests to verify that output caps are the expected value, reusing
input structure values for both buffers and gaps

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

10 years agotests: audiodecoder: add basic playback test for audio decoder
Thiago Santos [Mon, 13 Jan 2014 19:33:11 +0000 (16:33 -0300)]
tests: audiodecoder: add basic playback test for audio decoder

Simple test that just check that audio decoding works as expected

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

10 years agovideoverlay: Don't mention gconf elements and add a sentence about playbin/playsink
Sebastian Dröge [Tue, 14 Jan 2014 12:17:26 +0000 (13:17 +0100)]
videoverlay: Don't mention gconf elements and add a sentence about playbin/playsink

playbin/playsink now implement the video overlay interface

10 years agowin32: add new API to .def file
Tim-Philipp Müller [Mon, 13 Jan 2014 16:28:23 +0000 (16:28 +0000)]
win32: add new API to .def file

10 years agovideodecoder: only copy chroma_site when known
Wim Taymans [Mon, 13 Jan 2014 15:29:00 +0000 (16:29 +0100)]
videodecoder: only copy chroma_site when known

Only overwrite the chroma-site if we have a valid value in the reference
format.

10 years agovideoconvert: don't interpolate chroma in I420 -> RGB
Wim Taymans [Mon, 13 Jan 2014 15:20:55 +0000 (16:20 +0100)]
videoconvert: don't interpolate chroma in I420 -> RGB

Don't try to interpolate the chroma samples, the used algorithm only
works for horizontal cositing. Let's switch to a faster and safer
version until we handle chroma siting correctly in the fastpaths.

10 years agovideoutils: add some debug
Wim Taymans [Mon, 13 Jan 2014 11:16:01 +0000 (12:16 +0100)]
videoutils: add some debug

10 years agodoc: Add new sections introduce for tile format
Nicolas Dufresne [Thu, 9 Jan 2014 00:43:01 +0000 (19:43 -0500)]
doc: Add new sections introduce for tile format

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