If no video sink is set and autovideosink is not available for some
reason, post a proper error message on the bus when failing to
change state, and don't try to gst_object_ref() NULL pointers. Fixes
generic/states unit test when distchecking.
Does some general improvements with the internal sink handling.
1) Do not remove and re-add the ghostpad when changing
internal sink
2) Only instantiate the default sink when changing from NULL
to READY if there is no other available
3) Avoid changing the internal sink if not on NULL state
Fixes#598682
Downgrade a warning message to debug. Remove an
already fixed FIXME and add a note about (not-)using
fpsdisplaysink in autovideosink. Change the created
ghostpad to use the name "sink" as it is advertised in
the pad template.
Use GST_IS_BIN instead of G_OBJECT_TYPE to check if the
internal sink is a bin. Using the later won't work when
the sink is not a bin directly (but inherits from one, like
autovideosink).
Fixes#604280
Follow-up on 4111d6321f, the video
sink(s) used by fpsdisplaysink might not have the sync property. So we
check its existence to avoid warning from g_object_set() at runtime.
Fixes#604280
Exposes the internally used sink as video-sink property and
makes the default one to be autovideosink instead of
the hardcoded xvimagesink
Fixes#604280
Pluggin the text-ovelay causes some slowdowns and might need a colorspace
converter. We now only check the text-overlay property whne goint to ready and
plug or unplug the text-overlay at that time. If the property changes during
playing, its not switched immediately.
When we get bus messages for setting the xid, we have the real sink element
instance as message_src. No need to proxy the xoverlay iface therefore
(autovideosink does not do it either). Also we don't need to rewrite the
message src of all messages from that sink.