Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_init),
(try_to_link_1), (queue_filled_cb):
Better use of the queues. Start with a small size queue and only increase
the size of the queues when the other queues are empty.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (group_commit), (probe_triggered):
* gst/playback/gstplaybasebin.h:
Prepare to handle errors betters.
* gst/playback/gstplaybin.c: (add_sink), (setup_sinks):
Set sinks to PAUSED first before adding and linking them so that
we don't interrupt dataflow.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init),
(gst_decode_bin_init), (close_pad_link), (try_to_link_1):
Remove unused properties, and add queues between demuxers and decoders
so that a lot more files can preroll properly.
Original commit message from CVS:
2005-11-21 Andy Wingo <wingo@pobox.com>
* gst/playback/gstplaybin.c (gen_audio_element)
(gen_video_element): Use the new MISSING_PLUGIN core error
category.
Original commit message from CVS:
* gst-libs/gst/tag/Makefile.am:
* gst-libs/gst/tag/gstvorbistag.c:
(gst_tag_list_to_vorbiscomment_buffer):
Remove obsolete vorbistag element and debug category.
* gst/playback/gstplaybasebin.c: (check_queue):
Don't divide by 0 when queue-threshold is 0.
* sys/ximage/ximagesink.c: (gst_ximagesink_set_property):
Don't modify an existing pixel-aspect-ratio if we fail to read
a new one.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_init):
Unsetting IS_SINK flag from the fakesink, so decodebin
never behaves as a sink.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gen_audio_element):
Use autoaudiosink, it tends to be more widely available than
autoaudiiosink.
Original commit message from CVS:
2005-11-14 Andy Wingo <wingo@pobox.com>
* gst/playback/gstplaybin.c (gen_audio_element): Use autoaudiosink
as well if it is available. Fixes#316442.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (group_commit), (new_decoded_pad),
(setup_substreams), (set_active_source):
Unlock GROUP_LOCK in failure cases, so that we don't deadlock when
trying to go to NULL if we failed to read a file.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_init),
(gst_decode_bin_dispose), (free_dynamics), (remove_fakesink),
(pad_blocked), (close_pad_link), (new_pad), (no_more_pads):
Handle the case where a pad_block failed.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_init),
(gst_decode_bin_dispose), (free_dynamics), (pad_unblocked),
(pad_blocked), (close_pad_link), (new_pad):
Don't try to remove elements twice.
Original commit message from CVS:
* ext/vorbis/vorbisenc.c: (gst_vorbisenc_get_query_types),
(gst_vorbisenc_src_query):
Implement position and duration queries.
* gst/playback/test3.c: (update_scale), (main):
Fix for async state changes and print nicer output.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (group_destroy),
(gst_play_base_bin_change_state):
Fix leak.
Handle case where playbasebin is now ASYNC because
decodebin is.
Original commit message from CVS:
2005-10-16 Andy Wingo <wingo@pobox.com>
* gst/playback/gstdecodebin.c
(gst_element_set_state_like_a_crazy_man): New kraaaaaaazy
function!
(try_to_link_1): Increase kraziness level.
Original commit message from CVS:
* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_commit),
(gst_ring_buffer_read), (gst_ring_buffer_clear):
Don't assert on normal stuff.
* gst/playback/gstplaybin.c: (do_playbin_seek):
API fix.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gst_play_bin_send_event_to_sink),
(do_playbin_seek), (gst_play_bin_send_event):
Override send_event differently, so that we can takes bits of
functionality from GstPipeline (special handling for seeks,
including pausing/resuming, and resetting stream time) and
still get
the appropriate behaviour of only forwarding event to a single
sink,
rather than all of them.
Unfortunately requires a lot of code duplication, but the
alternatives are equally ugly in the end.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (group_destroy),
(gen_preroll_element), (remove_groups), (setup_source):
* gst/playback/gstplaybin.c: (remove_sinks), (add_sink),
(setup_sinks), (gst_play_bin_send_event),
(gst_play_bin_change_state):
Set state to NULL before removing from bin. Fix refcounting.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gst_play_bin_send_event):
Correct refcounting in send_event() function. Previously was wrong
if the first sink was unable to handle the event.
Original commit message from CVS:
2005-10-03 Andy Wingo <wingo@pobox.com>
* gst/playback/gstdecodebin.c (try_to_link_1)
(remove_element_chain): set element to NULL before removing it.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gst_play_bin_class_init),
(gst_play_bin_send_event):
Only seek on one sink, the first one that succeeds.
Original commit message from CVS:
2005-09-21 Andy Wingo <wingo@pobox.com>
* gst/playback/gstplaybasebin.c: Attempt to fix up buffer probe
thingies.
* gst/playback/gstdecodebin.c (gst_decode_bin_dispose): Dispose
can be called multiple times, dogs.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: free plugin list correctly
* gst/playback/gstplaybin.c: emit warning if autovideosink
and autoaudiosink can't be found (instead of segfaulting)
Original commit message from CVS:
* check/generic/states.c:
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_typefind):
* gst/playback/gstdecodebin.c: (gst_decode_bin_init):
Fixes for changes in registry API.
* configure.ac: Only export gst_plugins_desc. Add -no-undefined
to GST_PLUGIN_LDFLAGS.
* ext/libvisual/visual.c: Make the library shut up.
* gst-libs/gst/audio/audio.c: Don't define a plugin in a library.
* gst-libs/gst/audio/gstaudiofilter.c: same
Original commit message from CVS:
* gst/audioconvert/Makefile.am:
Audioconvert derives from GstBaseTransform and should
link to the library with our base elements to avoid
unresolved symbols. Makes things work with MinGW (#316160)
* gst/playback/test4.c: (main):
Fix MinGW build problem and use g_usleep() instead of
sleep() (#316162)
Original commit message from CVS:
* check/Makefile.am:
* configure.ac:
add core's plugins to the mix so that playbin works
* check/generic/states.c: (GST_START_TEST):
set a 0 timeout on pipelines, so they don't force the next
state change
* gst/playback/gstplaybasebin.c: (setup_source), (prepare_output),
(gst_play_base_bin_change_state):
remove the crappy error handling and do GST error handling
Original commit message from CVS:
* check/Makefile.am:
Add CHECK_CFLAGS and LDFLAGS
* gst/playback/gstplaybasebin.c: (fill_buffer):
GST_MESSAGE_SRC became a GObject
Original commit message from CVS:
* gst/playback/gstplaybin.c: (remove_sinks):
Remove visualization from parent explicitely; works around some
apparent refcount issue that I haven't tracked down yet.
Original commit message from CVS:
* common/gtk-doc-plugins.mak:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-base-plugins-docs.sgml:
* docs/plugins/gst-plugins-base-plugins-sections.txt:
renamed to actual element names, so much nicer to look at
* docs/plugins/tmpl/gstmultifdsink.sgml:
remove
* docs/plugins/tmpl/multifdsink.sgml:
* docs/plugins/tmpl/tcpserversink.sgml:
add
* ext/alsa/gstalsa.c:
* ext/cdparanoia/gstcdparanoia.c: (cdparanoia_get_property):
* ext/ogg/gstoggmux.c:
* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_chain):
* gst/playback/gstdecodebin.c:
* gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init):
* gst/tcp/gsttcpserversink.c:
various fixes and documentation additions
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gen_video_element),
(gen_audio_element):
Switch to auto*sink elements as default sinks; add volume element
so that volume control in totem works.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gen_preroll_element):
* gst/playback/gstplaybin.c: (setup_sinks),
(gst_play_bin_change_state):
Refcount fix and more comments.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (fill_buffer):
Use _new_custom() so we can set custom message types for buffering
messages.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (check_queue), (probe_triggered),
(mute_stream), (silence_stream):
Small debug additions.
Original commit message from CVS:
make GST_PLUGIN_LDFLAGS only be flags; GST_LIBS should be
added manually to each Makefile.am so we are sure it goes
*last* and doesn't add -L flags before linking in libs of our
own, like, say, internal .la libs, that then accidentally pick
up the installed copy.
Original commit message from CVS:
2005-07-05 Andy Wingo <wingo@pobox.com>
* gst/playback/gstplaybasebin.c (fill_buffer):
message_new_application fixen.
x
Original commit message from CVS:
2005-06-27 Andy Wingo <wingo@pobox.com>
* gst/videotestsrc/gstvideotestsrc.c
(gst_videotestsrc_activate_push): Activation API changes.
* gst/playback/gstdecodebin.c (gst_decode_bin_change_state)
(gst_decode_bin_dispose): Free dynamics in READY->NULL, because
they have refs on the decodebin.
* ext/ogg/gstoggdemux.c (gst_ogg_pad_class_init): Ref the right
parent class.
(gst_ogg_pad_typefind): Don't leak a pad ref.
(gst_ogg_chain_new_stream): gst_object_unref, not g_object_unref.
(gst_ogg_demux_sink_activate, gst_ogg_demux_sink_activate_push)
(gst_ogg_demux_sink_activate_pull): Changes for activation API.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init):
2nd argument of 'unknow-type' signal is a GstCaps and not a
GstMiniObject
Original commit message from CVS:
2005-06-25 Jan Schmidt <thaytan@mad.scientist.com>
* gst-libs/gst/audio/gstaudiosink.c: (gst_audioringbuffer_acquire):
Set the worker thread's running flag to TRUE before starting the
thread.
* gst/playback/gstdecodebin.c: (gst_decode_bin_init):
Catch a failure to add typefind to the bin.
Original commit message from CVS:
2005-06-02 Andy Wingo <wingo@pobox.com>
* pkgconfig/gstreamer-libs-uninstalled.pc.in (prefix):
* pkgconfig/gstreamer-libs.pc.in (prefix): Add gst/tag to the -L
list.
* gst/playback/gstdecodebin.c (gst_decode_bin_dispose): Don't
remove the typefind, the bin dispose will do it for us. When it's
removed and unreffed, the signal handler will be disconnected,
too.
(unlinked): It's too difficult to disconnect from unlinked
handlers, as they are on pads not elements. Just punt if the pads
aren't grandkids of the bin.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (probe_triggered):
Fix missing unlock.
* gst/playback/gstplaybin.c: (add_sink):
First add, then link (otherwise pad link fails).
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gen_preroll_element):
Increase buffer for video, decrease buffer for other media types.
* gst/playback/gstplaybin.c: (gen_video_element),
(gen_audio_element):
Change names for debugging purposes.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
(fill_buffer), (check_queue), (queue_threshold_reached),
(queue_out_of_data):
* gst/playback/gstplaybasebin.h:
Post buffer-fullness on the bus.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_type),
(gst_play_base_bin_class_init), (gst_play_base_bin_finalize),
(get_active_group), (get_building_group), (group_destroy),
(group_commit), (check_queue), (queue_overrun),
(queue_threshold_reached), (queue_out_of_data),
(gen_preroll_element), (remove_groups), (unknown_type),
(add_element_stream), (no_more_pads), (probe_triggered),
(preroll_unlinked), (new_decoded_pad), (setup_subtitle),
(setup_substreams), (setup_source), (finish_source),
(prepare_output), (muted_group_change_state),
(gst_play_base_bin_set_property), (gst_play_base_bin_get_property),
(gst_play_base_bin_change_state):
* gst/playback/gstplaybasebin.h:
* gst/playback/gstplaybin.c: (gst_play_bin_class_init),
(gst_play_bin_init), (gst_play_bin_set_property),
(gen_video_element), (gen_text_element), (gen_audio_element),
(gen_vis_element), (remove_sinks), (add_sink), (setup_sinks),
(gst_play_bin_change_state):
* gst/playback/gststreaminfo.c: (gst_stream_info_class_init),
(cb_probe), (gst_stream_info_new), (gst_stream_info_dispose),
(stream_info_change_state), (gst_stream_info_set_mute),
(gst_stream_info_get_property):
* gst/playback/gststreaminfo.h:
* gst/playback/gststreamselector.c: (gst_stream_selector_init),
(gst_stream_selector_get_linked_pad),
(gst_stream_selector_getcaps),
(gst_stream_selector_get_linked_pads),
(gst_stream_selector_request_new_pad), (gst_stream_selector_chain):
* gst/playback/gststreamselector.h:
Rough port of playbin. Needs some more work, but is mostly done,
and uses a few locks in important places, which should make stuff
like chain-switches clean. Still uses GST_STATE() in a few places,
which isn't all that good an idea, subtitles/elements disabled
because no elements to test with and thus probably broken, query
and event handling moved to GstBin, internal thread removed
alltogether because the pipeline does that for us now. Can play
Ogg/Vorbis files. Haven't tested anything else yet.
Original commit message from CVS:
* ext/vorbis/vorbisdec.c (vorbis_handle_comment_packet): Post a
message to the bus with the tags. Still not sent downstream tho.
* gst/playback/gstdecodebin.c (remove_element_chain): Unref after
get_parent.
(remove_element_chain): Use OBJECT_PARENT instead of get_parent to
avoid refcounting hassles.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_factory_filter):
* gst/playback/gstdecodebin.c: (find_compatibles):
Work with staticpadtemplates in elementfactories.
Original commit message from CVS:
* gst/playback/gststreamselector.c: (gst_stream_selector_init),
(gst_stream_selector_get_caps), (gst_stream_selector_chain):
* gst/playback/gststreamselector.h:
Be more selective when we're redoing caps negotiation from
within the chain function on a stream change.
Original commit message from CVS:
* ext/a52dec/gsta52dec.c: (gst_a52dec_push),
(gst_a52dec_handle_event), (gst_a52dec_chain):
Add some debug output. Check that a discont has a valid
time associated.
* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event),
(gst_alsa_sink_loop):
Ignore TAG events. A little extra debug for broken timestamps.
* ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_init), (dvdnavsrc_loop),
(dvdnavsrc_change_state):
Ensure we send a discont to engage the link before we send any
other events.
* ext/dvdread/dvdreadsrc.c: (dvdreadsrc_init),
(dvdreadsrc_finalize), (_close), (_open), (_seek_title),
(_seek_chapter), (seek_sector), (dvdreadsrc_get),
(dvdreadsrc_uri_get_uri), (dvdreadsrc_uri_set_uri):
Handle URI of the form dvd://title[,chapter[,angle]]. Currently only
dvd://title works in totem because typefinding sends a seek that ends
up going back to chapter 1 regardless.
* ext/mpeg2dec/gstmpeg2dec.c:
* ext/mpeg2dec/gstmpeg2dec.h:
Output correct timestamps and handle disconts.
* ext/ogg/gstoggdemux.c: (get_relative):
Small guard against a null dereference.
* ext/pango/gsttextoverlay.c: (gst_textoverlay_finalize),
(gst_textoverlay_set_property):
Free memory when done. Don't call gst_event_filler_get_duration on
EOS events. Use GST_LOG and GST_WARNING instead of g_message and
g_warning.
* ext/smoothwave/gstsmoothwave.c: (gst_smoothwave_init),
(draw_line), (gst_smoothwave_dispose), (gst_sw_sinklink),
(gst_sw_srclink), (gst_smoothwave_chain):
Draw solid lines, prettier colours.
* gst/mpeg2sub/gstmpeg2subt.c: (gst_mpeg2subt_init):
Add a default palette that'll work for some movies.
* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_init),
(gst_dvd_demux_handle_dvd_event), (gst_dvd_demux_send_discont),
(gst_dvd_demux_send_subbuffer), (gst_dvd_demux_reset):
* gst/mpegstream/gstdvddemux.h:
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_send_discont),
(gst_mpeg_demux_parse_syshead), (gst_mpeg_demux_parse_pes):
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_init),
(gst_mpeg_parse_handle_discont), (gst_mpeg_parse_parse_packhead):
* gst/mpegstream/gstmpegparse.h:
Use PTM/NAV events when for timestamp adjustment when connected to
dvdnavsrc. Don't use many discont events where one suffices.
* gst/playback/gstplaybasebin.c: (group_destroy),
(gen_preroll_element), (gst_play_base_bin_add_element):
* gst/playback/gstplaybasebin.h:
Make sure we remove subtitles from the same bin we put them in.
* gst/subparse/gstsubparse.c: (convert_encoding), (parse_subrip),
(gst_subparse_buffer_format_autodetect),
(gst_subparse_change_state):
Fix some memleaks and invalid accesses.
* gst/typefind/gsttypefindfunctions.c: (ogganx_type_find),
(oggskel_type_find), (cmml_type_find), (plugin_init):
Some typefind functions for Annodex v3.0 files
* gst/wavparse/gstwavparse.h:
GstRiffReadClass is the correct parent class.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_change_state):
Explicit state change to workaround refcount bugs.
Original commit message from CVS:
* gst-libs/gst/riff/riff-read.c: (gst_riff_peek_element_data),
(gst_riff_read_element_data):
* gst-libs/gst/riff/riff-read.h:
Add _peek version (req'ed in CDXA).
* gst/cdxaparse/gstcdxaparse.c: (gst_cdxaparse_init),
(gst_cdxaparse_loop):
Fix parsing in playbin.
* gst/playback/gstdecodebin.c: (close_pad_link):
Ignore current_ pads, they cause major annoyance.
Original commit message from CVS:
* gst/playback/gststreaminfo.c: (gst_stream_info_dispose):
Elements may already be destroyed when this function is called.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
(gst_play_base_bin_init), (gst_play_base_bin_dispose),
(probe_triggered), (new_decoded_pad), (gen_source_element),
(gst_play_base_bin_set_property), (gst_play_base_bin_get_property):
* gst/playback/gstplaybasebin.h:
* gst/playback/gstplaybin.c: (gst_play_bin_class_init),
(gst_play_bin_init), (group_switch), (remove_sinks), (setup_sinks),
(gst_play_bin_change_state):
Implement group-switch signal for use in apps to clear metadata
cache, clean up subtitle, add suburi property instead of # hack,
some error-out fixes.
Original commit message from CVS:
* gst-libs/gst/riff/riff-read.c: (gst_riff_read_use_event):
Don't bail on unknown events.
* gst/audioscale/gstaudioscale.c: (gst_audioscale_chain):
Don't crash on events before negotiation.
* gst/avi/gstavidemux.c: (gst_avi_demux_add_stream):
Send tags on pads, too.
* gst/playback/gststreamselector.c:
(gst_stream_selector_request_new_pad):
Forward events on first pad if no input was selected yet.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (setup_substreams):
Don't disable streamtype if the stream doesn't exist, since
then playing a video after audio will disable both and nothing
will happen. Fixes the testsuite.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (group_destroy):
Remove hack to get rid of assert and get rid of unlinked
signals properly.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (setup_source):
Set source to NULL so that resources are free'ed. Fixes issues
with playback of CDDA and similar device-accessing things.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_init),
(gen_preroll_element), (remove_groups), (setup_subtitle),
(gen_source_element), (setup_source):
* gst/playback/gstplaybasebin.h:
Multiple .sub files is just a stupid idea... Fix some threading
mistakes. Interestingly, external .sub files cause playbin to
hang, I don't know why... Parsing fixes contributed by Felix
Kooman <fkooman@tuxed.net>.
Original commit message from CVS:
patch by: Tim-Philipp Müller <t.i.m@zen.co.uk>
* gst/playback/gstplaybasebin.c:
Fix for #162924 - free caps after use, not before
Original commit message from CVS:
* configure.ac:
Fix indentation, fix v4l2 plugin detection.
* ext/Makefile.am:
Fix libmms location (Maciej, use diff -u!).
* ext/alsa/gstalsa.c: (gst_alsa_init):
Initialize caps cache to NULL.
* gst/playback/gstplaybin.c: (gst_play_bin_change_state):
Only change state on audiosink if it exists.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_add_element):
Revert patch 1.38 as clock distribution over schedulers does
not work correcly in the core yet.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (compare_ranks):
make sure the facotries are ordered the same every time even if they
have the same rank by using the name
* gst/playback/gstdecodebin.c: (find_compatibles):
make sure we don't add factories to the list twice
Original commit message from CVS:
* ext/cdparanoia/gstcdparanoia.c: (cdparanoia_class_init),
(cdparanoia_set_property), (cdparanoia_get_property):
* ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_class_init),
(dvdnavsrc_set_property), (dvdnavsrc_get_property):
* ext/dvdread/dvdreadsrc.c: (dvdreadsrc_class_init),
(dvdreadsrc_init), (dvdreadsrc_set_property),
(dvdreadsrc_get_property):
* sys/vcd/vcdsrc.c: (gst_vcdsrc_class_init),
(gst_vcdsrc_set_property), (gst_vcdsrc_get_property):
Synchronize property names where not yet the case. Devices are
now device=X, other versions are deprecated (but still exist).
Also use g_free() unconditionally.
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
(setup_source), (gst_play_base_bin_get_property):
Expose source.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_change_state):
Don't crash on EMPTY caps (e.g. when the demuxer didn't recognize
the contained stream).
Original commit message from CVS:
* gst/playback/gstplaybin.c: (remove_sinks), (setup_sinks):
Unlink manually since sometimes bin disposal (and therefore
pad unlinking) is delayed, which will cause a new media file
to not be able to start playing instantly.
Original commit message from CVS:
* gst/playback/gststreaminfo.c: (stream_info_mute_pad):
On mute of an unlinked stream, check for pad availability so
we don't crash on unlinked pad.
Original commit message from CVS:
2004-11-27 Christophe Fergeau <teuf@gnome.org>
* gst/playback/gstplaybasebin.c: (setup_source): fixed a caps leak
(gst_play_base_bin_change_state): nullify source and decoder when
going from READY to NULL so that we don't try to do weird stuff with
them when going from NULL to READY
* gst/playback/gstplaybin.c: (gst_play_bin_init): use gst_object_unref
instead of g_object_unref
(gen_video_element), (gen_audio_element): more refcounting fixes, now
it should be correct
(gst_play_bin_change_state): don't call remove_sinks if we are
currently disposing the object
Original commit message from CVS:
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* gst/playback/gstplaybin.c: (gst_play_bin_dispose),
(gst_play_bin_set_property), (gen_video_element),
(gen_audio_element):
Refcounting fixes for provided audio-/videosinks.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gen_video_element),
(gen_audio_element), (setup_sinks), (gst_play_bin_change_state):
Don't reference all sinks, but only the video- and audiosinks.
The vis. element should be disposed when we're done with it.
We don't have any reason to keep it around. This fixes warnings
when reusing playbin for playing multiple audio files with
vis. enabled. Also release audio device on pause - idea stolen
from Rhythmbox.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_factory_filter):
We sometimes need parsers for playback, so add those too.
Original commit message from CVS:
patch by: Ronald Bultje <rbultje@ronald.bitfreak.net>
* gst/playback/gstplaybasebin.c:
Fix unplayable files error handling. Fixes#158365
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_add_element):
Re-add clock distribution hack (until new core is released).
Fixes#158125.
Original commit message from CVS:
* gst/playback/README:
* gst/playback/gstplaybasebin.c: (group_destroy), (group_is_muted),
(add_stream), (unknown_type), (add_element_stream), (no_more_pads),
(probe_triggered), (preroll_unlinked), (new_decoded_pad),
(gst_play_base_bin_change_state), (gst_play_base_bin_found_tag):
* gst/playback/gstplaybin.c: (gen_vis_element), (remove_sinks),
(setup_sinks):
* gst/playback/gststreaminfo.c: (gst_stream_info_set_mute),
(gst_stream_info_is_mute), (gst_stream_info_set_property):
* gst/playback/gststreaminfo.h:
Updated README.
Only switch groups if all streams have muted (EOSed).
Send Tags in sync with the stream playback instead of in
the playback/preroll phase.
Some cleanups, free the fakesrc elements.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init),
(try_to_link_1), (get_our_ghost_pad), (remove_element_chain),
(unlinked), (no_more_pads), (close_link):
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_init),
(unknown_type), (add_element_stream), (new_decoded_pad),
(removed_decoded_pad), (setup_source):
* gst/playback/gststreaminfo.c: (gst_stream_info_get_type),
(gst_stream_info_class_init), (gst_stream_info_init),
(gst_stream_info_new), (gst_stream_info_dispose),
(stream_info_mute_pad), (gst_stream_info_set_property),
(gst_stream_info_get_property):
* gst/playback/gststreaminfo.h:
Fix playback of multiple files.
a slightly different approach to handling dynamic pad removals.
This one only looks at pads that we have linked.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init),
(get_unconnected_element), (remove_starting_from), (pad_removed),
(close_link):
Implement support for dynamic pad changing. We listen to "live"
pad removals (i.e. while playing) and re-setup autoplugging
after that. Playbasebin/playbin need some more work for this
to finally work, but decodebin supports (and replugs) chained
ogg now.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gen_video_element),
(gen_vis_element), (remove_sinks), (setup_sinks):
Added vis plugin support, need to configure the vis
element to activate it.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (setup_source):
Cleanup the previous pipeline a little earlier for the
case that a source element provides raw data.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (setup_source),
(gst_play_base_bin_change_state):
Actually clean up streaminfo if output fails. This would trigger
if, for example, there was no CD in the drive. No preroll, so
a streaminfo structure is created, but the subsequent state change
of the thread fails.
* gst/playback/gstplaybin.c: (gst_play_bin_change_state):
Don't change state if parent failed.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gst_play_bin_class_init),
(gst_play_bin_init), (gst_play_bin_get_property), (handoff),
(gen_video_element), (remove_sinks):
Add small bits of code for screenshot handling.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gst_play_bin_set_property),
(gen_video_element), (gen_audio_element), (setup_sinks):
Don't assume the user provided sinks are named "sink"...
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gen_preroll_element),
(unknown_type), (setup_source), (gst_play_base_bin_remove_element),
(gst_play_base_bin_link_stream):
Do not try to autoplug sources that generate raw streams like
cdparanoia.
disconnect the preroll overrun signal when we don't need it anymore.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (play_base_bin_mute_pad),
(gst_play_base_bin_mute_stream), (gst_play_base_bin_link_stream):
* gst/playback/gstplaybin.c: (setup_sinks):
Implement muting/unmuting of streams, mute streams that are not
used.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_init),
(find_compatibles), (close_pad_link), (try_to_link_1), (new_pad),
(no_more_pads), (close_link), (type_found):
* gst/playback/gstplaybasebin.c: (new_decoded_pad):
* gst/playback/gstplaybin.c: (gen_video_element):
Do not signal the no_more_pads after the first pad when
we are plugging a non dynamic element with multiple
output pads (like swfdec, dvdec, ...).