Commit graph

638 commits

Author SHA1 Message Date
Wim Taymans
bdfb4b46d7 inputselector: set output caps before pushing
Set the output caps on the srcpad before pushing the buffer because else core
will do a rather expensive check to see if we can actually accept those caps on
the srcpad.
2009-10-21 16:24:29 -04:00
Wim Taymans
5b72f2adf9 inputselector: install an acceptcaps function
Install a custom acceptcaps function instead of using the default expensive
check. We accept whatever downstream accepts so we pass along the acceptcaps
call to the downstream peer.
2009-10-21 15:58:11 -04:00
Wim Taymans
c489fb01ca decodebin2: avoid type checks 2009-10-20 17:14:40 -04:00
Edward Hervey
891c54f6f8 gst/decodebin2: Ensure we get fixed caps for topology message
There are some corner cases (like with dvdemux amongst others) where
the caps won't be negotiated, but the pad has fixed caps.
2009-10-20 10:15:57 +02:00
Edward Hervey
64c8b1d5d9 gst/decodebin2: Don't expose chains if we're shutting down.
This avoids adding flushing pads to ourself
2009-10-20 10:15:48 +02:00
Stefan Kost
f1c32d0fbb build: fix previous commit to fully accomodate the glib-gen.mak changes
I also renamed glib_enum_prefix to glib_gen_prefix as we also use that for the
marshallers. Also rename the rtsp-marshal.list to work with the unified prefix.
2009-10-16 10:56:56 +03:00
Stefan Kost
a89c1de0ea build: use gst-glib-gen.mak to fix the glib build rules. Fixes #598114
The build rules in glib-gen.mak were using pattern rules in a non save way.
2009-10-16 10:23:09 +03:00
Sebastian Dröge
efcca84bac decodebin2: Post a element message on the bus with the stream topology
Fixes bug #598533.
2009-10-15 13:35:29 +02:00
Sebastian Dröge
50fdbcd9ea decodebin2: Store the "endcaps" of a chain
This are the caps that either resulted in a deadend if
no plugin for them could be found or raw caps.
2009-10-15 13:35:29 +02:00
Sebastian Dröge
366aaae825 decodebin2: Store for every chain, which pad resulted in its creation 2009-10-15 13:35:28 +02:00
Sebastian Dröge
2b3741403e playbin2: Use gst_object_has_ancestor() instead of our own implementation of it 2009-10-14 08:36:54 +02:00
Sebastian Dröge
a4bc39ef48 playbin2: Don't stop completely on initialization errors from subtitle elements
Instead disable the subtitles and play the other parts of the stream.

Fixes bug #587704.
2009-10-13 16:53:50 +02:00
Sebastian Dröge
d40246ff7d decodebin2: Ignore no-more-pads from non-demuxer elements
instead of printing an error that no corresponding group could
be found. no-more-pads from non-demuxer elements doesn't give
any additional information because there can only be a single srcpad.

Fixes bug #598288.
2009-10-13 16:52:43 +02:00
Jan Schmidt
592b8ecb09 decodebin2: Fix type-punning warning 2009-10-08 00:17:21 +01:00
Sebastian Dröge
9bd6fe41cb decodebin2: Chains with an exposed endpad are complete too
This allows partial group changes, i.e. demuxer2 in the example below
goes EOS but has a next group and audio2 stays the same.

          /-- >demuxer2---->video
demuxer---             \--->audio1
          \--->audio2
2009-10-07 17:46:30 +02:00
Sebastian Dröge
bf7cd0ed81 decodebin2: Use the iterate internal links function instead of string magic to get multiqueue srcpads 2009-10-07 17:46:29 +02:00
Sebastian Dröge
674e2309ac uridecodebin: Don't post missing plugin messages twice
decodebin2 already posts them after emitting the unknown-type signal,
there's no need to post another one.
2009-10-07 17:46:29 +02:00
Sebastian Dröge
cf9c6a2271 decodebin2: Rewrite autoplugging and how groups of pads are exposed
This now keeps track of everything that is going on, creates
a tree of chains and groups to allow "demuxer after demuxer" scenarios
and allows chained Oggs with multiple streams (needs oggdemux or playbin2 fixes).

Also document everything in detail and give a general overview of what
decodebin2 is doing at the top of the sources.

Fixes bug #596183, #563828 and #591677.
2009-10-07 17:46:28 +02:00
Sebastian Dröge
24b7d2500c factorylist: Use gst_caps_can_intersect() instead of _intersect()
This is faster and results in less allocations.
2009-10-07 07:23:20 +02:00
Sebastian Dröge
999483b454 decodebin2: Don't set the external ghostpads blocked but only their targets
Pad blocks should never be done on external pads as outside elements
might want to use their own pad blocks on them and this will lead to
conflicts and deadlocks.
2009-10-07 07:23:20 +02:00
Sebastian Dröge
0dcc0857aa decodebin2: Only use the object lock for protecting the subtitle elements
Using the decodebin lock will result in deadlocks if the subtitle encoding
is accessed from a pad-added handler.
2009-10-07 07:23:19 +02:00
Sebastian Dröge
9be848d04f playbin2: Improve debugging of pad blocks 2009-10-07 07:21:38 +02:00
Sebastian Dröge
a4f454dc24 playbin2/playsink: Use gst_object_ref_sink() instead of calling both separately 2009-10-07 07:21:37 +02:00
Wim Taymans
a8d7e6a490 playsink: make the lock recursive for now
Fixes #583255
2009-10-01 09:35:54 +02:00
Wim Taymans
f18ed7abf9 playsink: fix the vis property getter 2009-10-01 09:35:54 +02:00
Edward Hervey
b565a3088c playsink: Expose mute,volume,vis-plugin and font-desc properties
https://bugzilla.gnome.org/show_bug.cgi?id=594623
2009-09-14 12:26:05 +02:00
Edward Hervey
377e781ad5 GstPlaySink: Expose 'reconfigure' as an action signal. 2009-09-14 10:40:00 +02:00
Edward Hervey
bafe9082fd GstPlaySink: Expose flags as a gobject property. 2009-09-14 10:40:00 +02:00
Edward Hervey
02c50388c4 playback: Register playsink as an element.
This allows using playsink from outside the playback plugin.

Add code to be able to request the sink pads using standard GStreamer API.

TODO : expose GObject properties/signals.
2009-09-14 10:39:59 +02:00
Sebastian Dröge
91c3a23963 playbin2: Implement GstStreamVolume interface 2009-09-11 16:37:35 +02:00
Sebastian Dröge
6e23ea172f interfaces: API: Add GstStreamVolume interface
Fixes bug #567660.
2009-09-11 16:37:34 +02:00
Sebastian Dröge
662a31983f playbin(2): Document that the volume property uses a linear scale
Fixes bug #571610.
2009-09-10 16:56:14 +02:00
Stefan Kost
7a3797f332 docs: tell a biit more about uri-decodebin and buffering 2009-09-10 10:30:23 +03:00
Wim Taymans
2a5cd16eb1 fix whitespace 2009-09-08 13:02:46 +02:00
Wim Taymans
9e83339cf6 uridecodebin: do buffering for more uris
Add ssh://, ftp://, sftp://, myth:// to the list of uris that require
buffering.

Fixes #594020
2009-09-04 11:33:04 +02:00
Sebastian Dröge
2194166e05 decodebin2: Post missing plugin messages before any error messages 2009-08-31 11:10:55 +02:00
Sebastian Dröge
460dc94d23 playbin: The internally linked pad of the selector might be NULL in some cases 2009-08-26 16:56:19 +02:00
Sebastian Dröge
67a0ef9b3a playbin: Fix iterate internal linked pads functions for the stream selectors
This now used the new gst_iterator_new_single() function and as a side effect
fixes bug #592864.
2009-08-26 16:45:49 +02:00
David Schleef
0e9bc5125a Remove Ronald Bultje from Authors field
Replaced with "GStreamer maintainers
<gstreamer-devel@lists.sourceforge.net>" or just removed,
depending on the number of other authors.
2009-08-24 11:37:01 -07:00
Wim Taymans
c3ebeec5a5 playbin2: fix refcounting of _get_sink()
g_value_set_object() increases the refcount of the sink, which is not needed
because the object should already be refcounted. Make sure this is always the
case and use g_value_take_object().

Fixes: #592884
2009-08-24 15:08:36 +02:00
Sebastian Dröge
0c1fa2e8ab streamselector/inputselector: Use iterate internal links instead of deprecated get internal links 2009-08-19 17:23:21 +02:00
Sebastian Dröge
b7fa34a279 playsink: Also send SEEK events directly to a subpicture sink 2009-08-18 11:15:41 +02:00
Sebastian Dröge
b5f84c0637 playsink: If a custom text sink is used, send events to it too
Before, SEEK events would be sent to the video sink, which wouldn't
be linked in any way to the subtitle part of the pipeline and
subparse would never see the SEEK event. This would then seek
the audio/video but the subtitles would continue from the old
position instead.

Fixes bug #591664.
2009-08-18 08:39:02 +02:00
Sebastian Dröge
6aa731cb48 uridecodebin: Make missing plugins emit a warning message, not an error message
The problem with an error message is, that it will stop playback completely
while it could be that only a audio decoder plugin is missing and the video
could be played with the available plugins.

See bug #591677.
2009-08-18 08:20:28 +02:00
Sebastian Dröge
a6b1e0b645 uridecodebin: Post a correct error message for unknown types
Before we had STREAM/WRONG_TYPE but it's really CORE/MISSING_PLUGIN
because a plugin is missing and nothing else is wrong.

Also make it an error instead of a warning.

Really fixes bug #591677.
2009-08-13 17:42:07 +02:00
Sebastian Dröge
504f8dc9c7 uridecodebin: Post a missing plugin message additional to the error message on unknown types
Fixes bug #591677.
2009-08-13 15:55:25 +02:00
Tim-Philipp Müller
4871cd9254 playbin2: fix error message string
Fixes #591577.
2009-08-13 10:59:35 +01:00
Mark Nauwelaerts
188d698449 decodebin2: avoid assertion failure on empty/NULL caps 2009-08-12 13:39:12 +02:00
Tim-Philipp Müller
0021e6b765 Revert inlines that cause compiler warnings and are not needed anyway 2009-08-08 17:51:10 +01:00
Edward Hervey
8cd1b5209b gst: Remove dead assignments and resulting unused variables 2009-08-08 15:54:02 +02:00