Commit graph

13647 commits

Author SHA1 Message Date
Sebastian Dröge
a5918b0ab5 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
2014-02-18 15:06:25 +01:00
Tim-Philipp Müller
6c6619a669 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
2014-02-18 10:48:07 +00:00
Rafał Mużyło
5496d09eb4 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
2014-02-18 10:41:47 +00:00
Stefan Sauer
465dfe4920 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.
2014-02-16 22:16:17 +01:00
Sebastian Dröge
4dd30bbd16 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
2014-02-16 15:35:31 +01:00
Tim-Philipp Müller
6767d26cb2 tools: gst-play: add volume control 2014-02-14 20:16:27 +00:00
Thiago Santos
a6890ec7ef 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.
2014-02-13 16:03:01 -03:00
Sebastian Dröge
2ddc07e93e uridecodebin: Don't leak pad references 2014-02-12 17:34:32 +01:00
Sebastian Rasmussen
09644d0e4a tests: Don't build disabled plugins' check tests
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=723492
2014-02-11 21:00:30 +01:00
Sebastian Dröge
a02678057e 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.
2014-02-11 16:36:20 +01:00
Sebastian Dröge
57295753d5 playbin: Fix memory leak in autoplugging code
We should not leak element factories ideally.
2014-02-10 16:33:50 +01:00
Sebastian Dröge
ce59ac561e playbin: Fix memory leak in unit test 2014-02-10 16:33:35 +01:00
Sebastian Dröge
c91a4af9ab subtitleoverlay: Remove unused function 2014-02-09 23:17:03 +01:00
Sebastian Dröge
bc92cd8f67 audiosrc: Fix typo in docs
We read *from* the audio device, not to it.
2014-02-09 11:28:48 +01:00
Sebastian Dröge
e22243b2d0 videoscale: Fix compiler warning in unit test
error: implicit conversion from enumeration type
'GstFormat' to different enumeration type 'GstVideoFormat'
2014-02-08 17:11:54 +01:00
Sebastian Dröge
4046a880de videoconvert: Fix compiler warning in unit test
error: implicit conversion from enumeration type
'GstFormat' to different enumeration type 'GstVideoFormat'
2014-02-08 17:11:04 +01:00
Sebastian Dröge
856d27338b 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
2014-02-08 17:07:15 +01:00
Sebastian Dröge
437d11f5a0 oggmux: Fix typo in header include guard
clang does not like this.
2014-02-08 17:02:45 +01:00
Sebastian Dröge
d3e0381d3d alsa: Make clang happy with our g_strdup_vprintf() wrapper 2014-02-08 17:01:38 +01:00
Wim Taymans
428f10cf57 playback-test: allow seeking outside of the range
For download buffer, allow seeking outside of the already downloaded
area.
2014-02-07 15:35:38 +01:00
Thiago Santos
ec7724c095 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.
2014-02-07 02:14:52 -03:00
Wim Taymans
c6915ea785 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
2014-02-04 14:32:48 +01:00
Sebastian Rasmussen
0f8f852776 jsseek: Add missing HAVE_X check
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=723507
2014-02-04 13:58:47 +01:00
Eric Trousset
2ca256acdb tagdemux: Forward TIME seeks upstream too, maybe upstream can handle that
https://bugzilla.gnome.org/show_bug.cgi?id=723597
2014-02-04 13:56:29 +01:00
Stefan Sauer
76ec6d3760 docs: doc fixes for audio library
Add sections docs for audiometa. Fix sections docs for audiochannels. Remove old
mixerutil section.
2014-02-03 09:36:43 +01:00
Julien Isorce
c9b493b853 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
2014-01-31 14:09:03 +00:00
Sebastian Dröge
01bfc79766 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
2014-01-30 21:18:04 +01:00
Bastien Nocera
f2c1f91508 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
2014-01-30 20:14:16 +01:00
Edward Hervey
4cb7b6624c Automatic update of common submodule
From d48bed3 to 1a07da9
2014-01-30 10:43:48 +01:00
Thiago Santos
2fbc04e7bc streamsplitter: push pending events before eos
Push any pending events downstream before pushing eos
2014-01-29 13:58:07 -03:00
Thiago Santos
1ae733fd4e tests: audioencoder: add tests analogous to the videoencoder ones 2014-01-29 12:33:59 -03:00
Thiago Santos
e00dc5b879 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.
2014-01-29 12:33:59 -03:00
Thiago Santos
4fefd48f05 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
2014-01-29 12:33:59 -03:00
Thiago Santos
da54836a33 videoencoder: push tags and events before eos
if any tags or events are pending, push them before pushing eos
2014-01-29 12:33:59 -03:00
Thiago Santos
6684aa42cd tests: videoencoder: basic videoencoder base class test
Adds a single test for video encoding
2014-01-29 12:33:59 -03:00
Sebastian Rasmussen
125b9c19c0 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
2014-01-28 14:41:41 +01:00
Sebastian Rasmussen
0142cd5e35 rtpbasepayload: Expose running-time of payloaded stream
https://bugzilla.gnome.org/show_bug.cgi?id=719415
2014-01-28 14:41:41 +01:00
Sebastian Rasmussen
865a5d1c8f rtpbasepayload: Improve documentation for perfect-rtptime
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=719383
2014-01-28 14:41:41 +01:00
Sebastian Rasmussen
713dfe0d70 rtpbasepayload: Fix typos in documentation for properties
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=719383
2014-01-28 14:41:41 +01:00
Alessandro Decina
6a699b6c40 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
2014-01-28 13:45:07 +11:00
Sebastian Rasmussen
fa393e5d60 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
2014-01-27 15:11:09 +01:00
Sjoerd Simons
43237ad0e2 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
2014-01-24 22:34:51 +01:00
Wim Taymans
4c8e211e57 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
2014-01-24 12:19:43 +01:00
Wim Taymans
8ac3dbc4f3 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
2014-01-23 10:45:00 +01:00
Wim Taymans
6a88d6f8cd 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
2014-01-21 11:25:18 +01:00
Sebastian Dröge
4e3d101aa8 audioresample: It's HAVE_EMMINTRIN_H, not HAVE_XMMINTRIN_H for SSE2 2014-01-20 16:11:04 +01:00
Antoine Jacoutot
daa194b71e 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
2014-01-20 16:08:41 +01:00
Sebastian Dröge
bf4a72a4e6 configure: Initialize Qt variables 2014-01-20 10:30:36 +01:00
Sebastian Dröge
5dd8e9cdd4 examples: Port Qt examples to Qt5 2014-01-20 09:46:15 +01:00
Nicola Murino
26e3c92093 riff: Fix G726 caps creation
https://bugzilla.gnome.org/show_bug.cgi?id=720995
2014-01-19 10:34:57 +01:00