Commit graph

3587 commits

Author SHA1 Message Date
Sreerenj Balachandran
9791f0aaf1 typefindfunctions: recognize SVC and MVC nal units in h264 streams
Ensure the detection of svc and mvc as a part of h264 stream.
Once the typefinder detect a subset_sequence_parameter_set(ssps),
then each nal unit with type 14 or 20 should be detected as a
part of h264 stream thereafter.

https://bugzilla.gnome.org/show_bug.cgi?id=694346
2013-02-21 12:20:36 +00:00
Stefan Sauer
a86ca535c8 adder: ensure sending a flush-stop after flush-start
Previously adder was only sending the flush-stop, when it saw the flushing seek.
If one sends a flushing see direcly to an element upstream of adder, it would
fail to unflush the downstream pads.
2013-02-21 10:11:32 +01:00
Vincent Penquerc'h
bccfc679b5 encodebin: activate ghost pad after creating it
This ensures the ghost pad will not stay in flushing mode
when it receives a flush stop event, and generally behave
badly.

This fixes at least one case of a dynamic decodebin2 + encodebin
pipeline finding a source that has not prerolled when it should
have been (due to the ghostpad staying in flushing mode).
2013-02-14 16:07:48 +00:00
Matej Knopp
1e5b50e94c decodebin: don't block on caps 2013-02-14 11:37:54 +01:00
Sebastian Dröge
cfd73a8cf7 decodebin: Remove left-over line from last commit 2013-02-14 11:25:37 +01:00
Matej Knopp
872cc295a6 decodebin: Check if value is set before unsetting it
https://bugzilla.gnome.org/show_bug.cgi?id=693401
2013-02-14 11:22:34 +01:00
Tim-Philipp Müller
03d4a69df4 typefinding: add parsed=true to mp3 and mpeg2 video ES caps
Because we can, and that's also what we do for other formats.
2013-02-13 21:02:39 +00:00
Stefan Sauer
cff9fccc69 adder: use the collect_pads_query func
We were setting the query-func on the sink-pad, which got overwritten when
adding the new pad to collect pads. Instead register our query-func with the
collect pads object. This fixes filter caps. Add a test for it.
2013-02-13 21:11:41 +01:00
Vincent Penquerc'h
17cdb54aa4 encodebin: sync muxer state with parent bin
Other elements were synced, but not the muxer.
2013-02-12 17:27:10 +00:00
Alexander Schrab
e7caef6b29 decodebin: Push caps event immediately to ghost pad to avoid exposing pads without caps 2013-02-12 10:12:14 +01:00
Marc Leeman
f704b3f975 decodebin: g_mutex_new -> g_mutex_init
Don't use deprecated GLib API.

https://bugzilla.gnome.org/show_bug.cgi?id=693302
2013-02-07 13:51:17 +00:00
Tim-Philipp Müller
dce49a1a7e video: fix return type of _get_palette() and add since markers to docs
'const gpointer' is not the same as 'gconstpointer', see
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35928.
2013-02-06 12:43:51 +00:00
Wim Taymans
ebf24e292e videotestsrc: use video library palette
Use the palette provided and used by the video library instead of making our own
copy.
2013-02-05 11:20:20 +01:00
Wim Taymans
0085a77919 videoscale: scale each field in interlace mode
When we are dealing with interlaced content, scale each field intependently so
that we don't destroy the interlacing.

See https://bugzilla.gnome.org/show_bug.cgi?id=588535
2013-02-05 10:49:57 +01:00
Wim Taymans
be866d4b78 videoconvert: interlace support to some fastpath functions
Add interlace support for some fastpath functions.
2013-02-04 16:21:20 +01:00
Wim Taymans
599880ff8d videoconvert: make fast path interlaced aware
Make sure that we also handle interlacing when choosing the fast path.

See https://bugzilla.gnome.org/show_bug.cgi?id=588535
2013-02-04 15:40:02 +01:00
Wim Taymans
e3a9a7cf07 videoconvert: pass frame interlaced flag to pack/unpack
If the frame is interlaced, pass the interlaced flag to the pack/unpack
functions to make it unpack correctly.
2013-02-04 15:19:35 +01:00
Wim Taymans
ed2ce49499 videoconvert: use the palette helper functions
Get the palette from the video library instead of making our own.
2013-02-04 15:06:10 +01:00
Wim Taymans
9b95f9de95 videoconvert: make a constant of scale factor 2013-02-04 15:06:06 +01:00
Tim-Philipp Müller
500b864899 decodebin: try harder to always expose pads in the same order
Use stream-id as sort criterion in addition to the media type.

https://bugzilla.gnome.org/show_bug.cgi?id=634407
2013-01-19 13:03:03 +00:00
Tim-Philipp Müller
fcd8566665 typefinding: add typefind functions for SBC audio
https://bugzilla.gnome.org/show_bug.cgi?id=690582
2013-01-15 17:27:31 +00:00
Stefan Sauer
8296b683ca volume: a return value of FALSE from the controller is not fatal
A return value of FALSE here indicates that we don't have control-values. In
0.10 we were returning the default value of the property. Now we don't fill an
array with defaults in the ControlBinding, but leave it up to the element to
handle this case.
2013-01-09 23:15:06 +01:00
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