Commit graph

3565 commits

Author SHA1 Message Date
Wim Taymans 0feecef275 decodebin2: use NO_RESYNC flag
to avoid the state change function from messing with the state of the elements
that we add.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=690420
2012-12-21 16:38:36 +01:00
Thibault Saunier e79f0e801e encodebing: Use the preset_name as the factory name and preset as the name of the preset
The naming is not perfect, but at least we can keep the exact same behaviour as
before.
2012-12-17 10:12:11 -03:00
Tim-Philipp Müller 53072a4326 ssaparse: ignore invalid UTF-8 in init section
The codec data blob we get from matroskademux with the SSA/ASS
init section is supposed to be valid UTF-8. If it's not, just
continue with the bits that are valid UTF-8 instead of erroring
out. We don't actually parse the init section yet anyway..

https://bugzilla.gnome.org/show_bug.cgi?id=607630
2012-12-17 01:09:11 +00:00
Tim-Philipp Müller 6549db36cd subparse: fix GError leak 2012-12-16 12:34:14 +00:00
Tim-Philipp Müller 2f177a7616 typefinding: detect stand-alone SSA/ASS subtitle files
https://bugzilla.gnome.org/show_bug.cgi?id=625113
2012-12-16 12:11:27 +00:00
Wim Taymans 66cafcc34d playsink: fix vis switch with format change
Block the pad before the resample and convertor elements to give the a chance to
negotiate new caps with the newly switched vis plugin.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=679976
2012-12-13 11:34:54 +01:00
Tim-Philipp Müller 4c58077f22 typefindfunctions: aac: don't try to unref NULL caps 2012-12-12 15:31:20 +00:00
Thibault Saunier 7358cba017 encodebin: Make use of the new preset_name when setting a preset
The behaviour is sensibly changed here. Instead of purely falling when a
preset is set on the #GstEncodingProfile, we now make sure that the
element that is plugged corresponds to the one specified as preset. Then,
if we have a preset_name, we use it, if it fails, we fail (we might rather
just keep working even without setting the element properties?)

 + Add tests that it behave correctly
2012-12-05 17:48:38 -03:00
Tim-Philipp Müller 0b172593fa tcp: print warning if someone tries to add clients in NULL state
And mention this in docs.

https://bugzilla.gnome.org/show_bug.cgi?id=689326
2012-12-02 12:54:17 +00:00
Tim-Philipp Müller 7c89a7298a streamsynchronizer: don't send gap events with huge bogus durations when advancing EOS streams
When the input buffers for a stream don't have a duration set,
timestamp_end might still be GST_CLOCK_TIME_NONE. When advancing
EOSed streams via GAP events (with other streams not yet EOS), we
would then use the invalid timestamp_end to calculate the duration
of the gap. This in turn would make baseaudiosink abort, because it
would try to allocate memory for a trizillion samples.

So if buffers don't have a duration set, assume a duration of
one second for stream catch-up purposes, just so we can still
continue to catch up in those cases. And make sure that
timestamp_end is valid before doing calculations with it.

http://bugzilla.gnome.org/show_bug.cgi?id=678530
2012-11-26 19:03:38 +00:00
Tim-Philipp Müller 601aabdf9c streamsynchronizer: reduce debug log spam a bit
Log locking/unlocking with TRACE debug level.
2012-11-25 18:07:04 +00:00
Sebastian Dröge 830b500d40 decodebin: Set element to NULL state before removing it from the bin 2012-11-22 13:09:46 +01:00
Sebastian Dröge 2faef82b9a decodebin: Check if the element really accepts the caps after setting it to READY
It might know the caps constraints for sure only after opening a decoder.
2012-11-22 13:07:11 +01:00
Sebastian Dröge 4f480612e9 streamsynchronizer: Make the element public
https://bugzilla.gnome.org/show_bug.cgi?id=688240
2012-11-21 10:29:44 +01:00
Tim-Philipp Müller 61f04f1460 typefinding: improve AAC LOAS typefinding
Make AAC LOAS typefinding a bit more reliable; don't report
a LIKELY probability already after just two sync points, but
scan for a few more consecutive frames and determine probability
based on how many we found. Fixes mis-detection of wavpack file.

https://bugzilla.gnome.org/show_bug.cgi?id=687674
2012-11-11 20:08:52 +00:00
Tim-Philipp Müller bccb3feebf typefinding: improve wavpack typefinder
Check for second block sync and return different
probabilities depending on what we found (trumping
the AAC loas typefinder's LIKELY probability after
finding a second frame sync in this particular case).

https://bugzilla.gnome.org/show_bug.cgi?id=687674
2012-11-11 20:08:17 +00:00
Tim-Philipp Müller 20c9d2d2cc typefinding: fix block size calculation in wavpack typefinder
The blocksize includes part of the header, just not the sync
marker and the four size bytes.
2012-11-11 19:44:31 +00:00
Thiago Santos a4cfe8c43c typefind: isml is iso-fragmented video/quicktime
Add isml typefinding to the video/quicktime function
2012-11-07 01:40:18 -03:00
Tim-Philipp Müller 5f59b4f7ee Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-03 23:05:09 +00:00
Sebastian Dröge 9e6021fe4b audioconvert: Always prefer the input format if possible
Previously we could've chosen another format with the same
depth even if the input format was possible.

Also make sure to chose according to the order in the
caps.
2012-11-01 16:44:05 +01:00
Sebastian Dröge bc4389806d audioconvert: Also ignore the SIGNED flag when matching an output format 2012-11-01 14:31:29 +01:00
Rasmus Rohde c286f8ffa2 audioconvert: Prefer output formats with the same depth or at least a higher depth
Enhance current code to prefer an exact match on sample depth if
possible. Also ignore GST_AUDIO_FORMAT_FLAG_UNPACK when checking
equality on the flags.
2012-11-01 14:29:43 +01:00
Tim-Philipp Müller 8abc646ecb gio: handle g_vfs_get_supported_uri_schemes() returning NULL
Handle g_vfs_get_supported_uri_schemes() returning NULL more
gracefully, without criticals for passing NULL to g_strv_length().
2012-10-29 13:31:28 +00:00
Sebastian Dröge 3864209f6e audioresample: Use auto sinc table mode by default 2012-10-25 14:03:52 +02:00
Carlos Rafael Giani d793a2b560 audioresample: added ARM NEON support
This adds ARM NEON accelerated code paths for 16-bit integer
and 32-bit floating point samples.

It is a modified combination of patches #3 and #5 from Jyri Sarha
( http://lists.xiph.org/pipermail/speex-dev/2011-September/008240.html &
http://lists.xiph.org/pipermail/speex-dev/2011-September/008238.html )

Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
2012-10-25 14:03:52 +02:00
Carlos Rafael Giani 19073ab8c4 audioresample: changed inner_product_single semantics
This is an adaptation of patch #3 from Jyri Sarha
( http://lists.xiph.org/pipermail/speex-dev/2011-September/008240.html ),
but without the NEON optimizations (these come in a separate commit).
The idea is to replace SATURATE32(PSHR32(x, shift), a) operations with a
combined SATURATE32PSHR(x, shift, a) macro that can be optimized for
specific platforms (and also avoids rare rounding errors).

Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
2012-10-25 14:03:52 +02:00
Carlos Rafael Giani c41faa3d8e audioresample: sinc filter performance improvements
Original idea comes from Jyri Sarha
( http://lists.xiph.org/pipermail/speex-dev/2011-September/008243.html ).
Patch was discovered by Branislav Katreniak
( branislav.katreniak@streamunlimited.com ) for StreamUnlimited
( http://streamunlimited.com/ ). Tests showed up to 5x speed increase in
the resampler in the 44.1<->48kHz case.
I added the sinc-filter-mode and sinc-filter-auto-threshold properties
and the auto mode threshold tests, and adapted the code to GStreamer 1.0.

Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
2012-10-25 14:03:52 +02:00
Sebastian Dröge b9d4d0cd29 streamsynchronizer: Also send a GAP event to let audio sinks start their clock in case they did not have enough data yet 2012-10-24 13:34:15 +02:00
Sebastian Dröge 6a31051feb streamsynchronizer: Use correct timestamp/duration for the GAP events 2012-10-24 13:29:45 +02:00
Sebastian Dröge 3c1041d5eb Revert "gst: Add better support for static plugins"
This reverts commit d2d79e3bc2,
which was accidentially pushed.
2012-10-24 13:26:26 +02:00
Sebastian Dröge 52d48109bc streamsynchronizer: Send GAP events to advance streams 2012-10-24 13:25:19 +02:00
Sebastian Dröge d2d79e3bc2 gst: Add better support for static plugins 2012-10-24 12:10:44 +02:00
Sebastian Dröge 7b12afa4cb streamsynchronizer: Create a GAP event with a sensible timestamp 2012-10-24 11:19:06 +02:00
Sebastian Dröge 356579157e streamsynchronizer: Also propagate return value of pushing GAP event upstream 2012-10-23 18:21:32 +02:00
Sebastian Dröge 120c7be970 streamsynchronizer: Return TRUE from the EOS handler 2012-10-23 17:38:43 +02:00
Sebastian Dröge ce0bfbb7cc tcp: sys/socket.h is needed for getsockname() and similar functions 2012-10-22 15:45:47 +02:00
Wim Taymans a5ef81e05e videoconvert: add more debug 2012-10-22 09:51:34 +02:00
Tim-Philipp Müller 0ea6526770 tcpserver{sink,src}: improve docs and property strings
And some minor clean-ups.
2012-10-19 18:29:56 +01:00
Alexandre Relange d2f1d82778 tcpserver{sink,src}: add 'current-port' property and signal actually used port
Useful when port=0 (use random available port) was requested.

https://bugzilla.gnome.org/show_bug.cgi?id=580093
2012-10-19 18:23:20 +01:00
Mark Nauwelaerts a66ff00908 audioconvert: enhance transforming caps
... so as to preserve input format precision,
and preferably not convert at all.
2012-10-19 16:02:44 +02:00
Wim Taymans d73dcb6af3 videotestsrc: make and copy palette 2012-10-15 16:33:24 +02:00
Wim Taymans f3f08e829d videoconvert: actually copy the palette
Copy the default palette in the destination buffer too.
2012-10-15 16:32:25 +02:00
David Corvoysier 87fd43aaaa decodebin2: Fix group switching algorithm
There were two issues with the previous decodebin2 group switching algorithm:

Issue 1: It operated with no memory of what has been drained or not, leading to
multiple checks for chains/groups that were already drained.

Issue 2: When receiving an EOS, it only detected that a higher-level chain
was drained if it contained the pad receiving the EOS.

The following modifications have been applied:
- a new drained property has been added to GstDecodeChain
- both drained properties of chain/group are set as soon as they are detected
- the algorithm now tests agains these values

See https://bugzilla.gnome.org/show_bug.cgi?id=685938
2012-10-14 10:58:18 +02:00
Sebastian Dröge 80e4f3e912 playsinkconvertbin: Change GST_WARNING to GST_INFO
It's not a problem if we have no converters, this only means
that none were requested at this point.
2012-10-10 11:50:12 +02:00
Wim Taymans 3591df23b1 docs: playbin2 -> playbin 2012-10-09 12:20:10 +02:00
Tim-Philipp Müller 81097f485a playback: class_ref() some types so we can create multiple playback elements at the same time
Should fix "cannot register existing type `GstPlaybinSelectorPad'" warnings
and subsequent errors when creating multiple players at the same time.

Conflicts:
	gst/playback/gststreamselector.c
2012-10-03 11:48:25 +01:00
Alban Browaeys 579458f613 encodebin: muxer sink pad is not always a request pad
GstId3Mux sink pad is an always (static) pad. Thus releasing it
as if a request pad triggers:
(sound-juicer:11826): GStreamer-CRITICAL **:
gst_element_release_request_pad: assertion `GST_PAD_PAD_TEMPLATE (pad)
== NULL || GST_PAD_TEMPLATE_PRESENCE (GST_PAD_PAD_TEMPLATE (pad)) ==
GST_PAD_REQUEST' failed

https://bugzilla.gnome.org/show_bug.cgi?id=685110
2012-09-30 15:08:17 +01:00
Tim-Philipp Müller 6842698f0d Purge all references to liboil
And remove unused ffmpegcolorspace tests in the process.

https://bugzilla.gnome.org/show_bug.cgi?id=673285
2012-09-29 11:47:52 +01:00
Sebastian Dröge a3878f8bb8 videoconvert: Set correct plugin metadata 2012-09-25 13:16:45 +02:00
Thiago Santos 386206e627 videotestsrc: keep track of the correct running time after renegotiations
Need to store the old running time and frame numbers when renegotiating and
start from 0 again when a new caps is set, preventing that framerate changes
cause timestamping issues.

For example, if a stream pushed 10 buffers on framerate=2/1, its
running time will be 5s. If a new framerate of 1/1 is set, it would
make the running time go to 10s as it would count those 10 buffers
as being sent on this new framerate.

Fixes camerbin unit test.

https://bugzilla.gnome.org/show_bug.cgi?id=682973
2012-09-23 17:48:56 +01:00