Commit graph

3729 commits

Author SHA1 Message Date
Sebastian Dröge
b3a15872b7 playsink: If we switch sinks, make sure that the old sink is set to NULL 2013-07-02 14:18:20 +02:00
Sebastian Dröge
841d738f7c playbin: Don't change the state of sinks that we passed to playsink already 2013-07-02 14:02:57 +02:00
Sebastian Dröge
c725591010 playsink: Consider new audio/video sinks when reconfiguring 2013-07-02 14:01:52 +02:00
Sebastian Dröge
a0e61534ef playbin: Improve debug output regarding sink selection 2013-07-02 12:27:03 +02:00
Brendan Long
d3acb2b01a playbin: Post an error message if a stream combiner doesn't return a request pad. 2013-07-02 09:34:19 +02:00
Sebastian Dröge
f39d1dc3b4 playbin: Only intersect to check if a sink can handle raw caps
Doing a subset check requires fixed caps, which we might not have here.

https://bugs.webkit.org/show_bug.cgi?id=116042
2013-07-01 13:46:51 +02:00
Vincent Penquerc'h
5a064ca423 typefind: avoid too low mpeg/ts probability on small amount of data
With the current test, we get into problems when we try to typefind
a MPEG stream from a small amount of data, which can happen when
we get data pushed from a HTTP source. We thus make a second test
to give higher probability if all the potential headers were either
pack or pes headers (ie, no potential header was unrecognized).

This fixes an issue with a MPEG1/MP2 stream being properly discovered
as video/mpeg from a file, but as audio/mpeg from souphttpsrc.

https://bugzilla.gnome.org/show_bug.cgi?id=703256
2013-07-01 11:08:24 +02:00
Patricia Muscalu
f9acd972ef videotestsrc: do not leak lines
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=703177
2013-06-27 12:39:47 +02:00
Sreerenj Balachandran
8a2dbeb1ef playsink: Fix the block diagram of deinterlace bin.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702465
2013-06-17 16:28:44 +02:00
Brendan Long
b5f7a621bb playbin: Emit {audio,text,video}-changed signals when pads are removed
https://bugzilla.gnome.org/show_bug.cgi?id=702195
2013-06-14 14:23:11 +02:00
Sebastian Dröge
eb09e561c4 videoconvert: Fix leaking of the chroma resample helper objects 2013-06-11 15:24:05 +02:00
Sebastian Dröge
15375861b5 adder: Reject segments that have a different rate than the output segment
adder does no rate conversion.
2013-06-09 19:20:20 +02:00
Sebastian Dröge
4465741222 playbin: When activating a fixed sink, proxy error messages too
If activating a fixed sink fails, everything will fail later anyway
and we can just error out early.
2013-06-08 23:51:13 +02:00
Sebastian Dröge
44352deadb playbin: Improve autoplugging of decoder/sink combinations by trying to activate the sink
And if that fails don't bother autoplugging that sink. Also gives
us more accurate sink caps.
2013-06-08 23:34:53 +02:00
Sebastian Dröge
ff8839d97b playbin: Proxy the playbin context to the sinks 2013-06-08 23:22:54 +02:00
Sebastian Dröge
77af24c493 playbin: Proxy sink messages if we activate a sink in playbin already
This makes sure the application gets any context related messages and
can do whatever is required to a) get the sink a context or b) share
the context with other elements in the pipeline.

The proxying is necessary because the sink is not a child element of
playbin, but instead will at a later point be a child of some bin
inside playsink.

https://bugzilla.gnome.org/show_bug.cgi?id=700967
2013-06-08 23:22:54 +02:00
Sebastian Dröge
c49531f1b7 decodebin: Let serialize queries before caps events through
Otherwise we're going to deadlock forever because no autoplugging
happens without having caps, but caps can never be send because
we're blocking.

Serialized queries before caps should never be sent unless really
necessary.
2013-06-06 15:57:49 +02:00
Sebastian Dröge
ff5d3313d4 Release 1.1.1 2013-06-05 18:31:27 +02:00
Sebastian Dröge
cc5a476fc6 adder: Add GstChildProxy interface for the sinkpads
This allows to set the sinkpad properties more easily.

Next step: Implement proper synchronization in adder, almost done!
2013-05-30 23:56:52 +02:00
Sebastian Dröge
349174b48e adder: Hold object lock in setcaps a bit longer to prevent race conditions 2013-05-30 23:56:52 +02:00
Sebastian Dröge
dde8d8919d adder: Simplify segment event handling
We don't care about upstream segments but generate our own. This
makes the code more similar to videomixer again.
2013-05-30 23:56:52 +02:00
Sebastian Dröge
2953810ba5 adder: Use gst_audio_info_is_equal() to check if we get the same caps 2013-05-30 23:56:52 +02:00
Sebastian Dröge
0693b78e86 adder: Don't calls gst_pad_set_caps() on sinkpads
It doesn't make much sense and the CAPS query handling
on the sinkpads should handle this.
2013-05-30 23:56:52 +02:00
Sebastian Dröge
5e63a0f674 adder: Set GAP flag on silence buffers we created 2013-05-30 23:56:52 +02:00
Sebastian Dröge
667b856cbc adder: Remove caching of the processing function
The compiler will generate a hashtable from the switch-case, and
we need to call functions explicitely for the volume!=1.0 cases
anyway.
2013-05-30 23:56:52 +02:00
Sebastian Dröge
a76ade2d78 adder: Add support for per-stream volumes 2013-05-30 23:56:52 +02:00
Sebastian Dröge
addb07bc58 adder: Add optimized orc code for F64 processing 2013-05-30 23:56:52 +02:00
Sebastian Dröge
308c8fef68 adder: The output buffer must be readable and writable 2013-05-30 23:56:51 +02:00
Sebastian Dröge
509246cbac adder: Add support for muting individual pads 2013-05-30 23:56:51 +02:00
Sebastian Dröge
3974379a7f adder: Sync pad properties with the GstController 2013-05-30 23:56:51 +02:00
Sebastian Dröge
561ce54b27 adder: Add custom GstPad subclass to hold additional data and properties
This will later allow to set per-stream volumes and mute status.
2013-05-30 23:56:51 +02:00
Wim Taymans
00bbca2f9f videoconvert: free tmplines correctly
Keep track of how many tmplines we allocated and use that to free the
correct amount of lines.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701234
2013-05-30 05:27:31 +02:00
Daniel Drake
d32d2f0b14 playsink: pass translated color balance value to channel
We found a case where untranslated values were being passed from the
proxy to the underlying channel, causing bad color balance values
in some setups.

Thanks to Sebastian Dröge for clarifying how the code works, and
suggesting the fix.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701202
2013-05-29 20:20:10 +02:00
Brendan Long
96aab6d8a5 playbin: Don't take an extra reference to the custom stream combiners
They are automatically reffed when added to the bin because they're
already not floating anymore.
2013-05-29 20:12:48 +02:00
Sebastian Dröge
0dee7777ff playbin: Set custom stream-combiners to NULL and unref before finalizing 2013-05-29 10:35:11 +02:00
Brendan Long
53caa99a59 playbin: Rename select to combine and selector to combiner in playbin 2013-05-29 09:53:34 +02:00
Brendan Long
ba5f6cfe72 playbin: Add support for custom stream-combiners
This allows to chose something else than input-selector
for multiple audio/video/text streams, e.g. an adder could
be used for audio.

It is needed for example to implement some of the more
advanced HTML5 video features.

https://bugzilla.gnome.org/show_bug.cgi?id=698851
2013-05-29 09:52:32 +02:00
Sebastian Dröge
14192c031a decodebin: Don't call autoplug-query on shutdown
And remove leftover debug code
2013-05-28 13:32:23 +02:00
Sebastian Dröge
e482b5b8e6 playbin: In autoplug-queries, add the actual decoder/parser/etc template caps
Add the actual decoder/parser/etc caps at the very end to
make sure we don't cause empty caps to be returned, e.g.
if a parser asks us but a decoder is required after it
because no sink can handle the format directly.
2013-05-28 13:23:40 +02:00
Sebastian Dröge
a4ec6fe0b7 playbin: Forward CONTEXT queries to the corresponding sink if we have one
https://bugzilla.gnome.org/show_bug.cgi?id=700967
2013-05-28 13:14:15 +02:00
Sebastian Dröge
e5064ee723 playbin: Refactor autoplug-query handling
We now only check sinks and factories of the corresponding media
type. It doesn't make sense to pass audio/subtitle caps to a video
decoder.
2013-05-28 13:08:00 +02:00
Sebastian Dröge
d366613401 decodebin: Block on serialized queries too
Otherwise we will only block after the serialized, non-sticky event
after the CAPS event or the first buffer. If we're waiting for another
pad to finish autoplugging after we got final caps on this pad, it
will mean that we will let the ALLOCATION query pass although the
pad is not exposed yet.
2013-05-28 13:06:15 +02:00
Sebastian Dröge
9513b770f4 decodebin: Pass the element in the autoplug-query signal too 2013-05-28 12:10:33 +02:00
Sebastian Dröge
730e633d58 decodebin: Need to lock the chain mutex in autoplug_query 2013-05-28 11:40:51 +02:00
Sebastian Dröge
b86267b5be playsinkconvertbin: Fix leak of the downstream caps filter 2013-05-28 11:36:58 +02:00
Sebastian Dröge
db8d53bc17 playbin: Refactor autoplug-query handling a bit 2013-05-28 11:05:21 +02:00
Wim Taymans
7b8ff707b6 videoconvert: run chroma resamplers
Run the chroma upsampler after unpack and the chroma subsampler
before pack for higher quality conversions and correct chroma siting.
2013-05-27 11:05:08 +02:00
Wim Taymans
e5bc2b0d05 videotestsrc: subsample chroma before packing
Run the chroma subsampler before packing.
2013-05-27 11:05:08 +02:00
Wim Taymans
4f2e1b46a7 videoconvert: reformat 2013-05-27 11:05:06 +02:00
Wim Taymans
620e3aad07 videoconvert: actually use the input pixels
Operate on the provided pixels array instead of the temp array.
2013-05-27 11:05:06 +02:00