Original commit message from CVS:
* gst/playback/Makefile.am:
* gst/playback/gstdecodebin.c: (close_pad_link):
* gst/playback/gstdecodebin2.c: (analyze_new_pad):
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
(gst_play_base_bin_handle_message_func), (unknown_type):
Let decodebin be the element to post missing-plugin messages for
missing decoders (rather than playbin); make playbin implement
GstBin::handle_message so we can suppress missing-plugin messages
for types we're not handling on purpose (don't want to bring up an
installer in those cases).
Original commit message from CVS:
* gst/playback/gstplaybin.c: (post_missing_element_message),
(gen_video_element), (gen_text_element), (gen_audio_element),
(gen_vis_element):
Post missing-plugin messages also when we error out because
converters, textoverlay or auto*sinks are missing (#161922).
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (dynamic_add), (close_pad_link),
(is_demuxer_element), (new_caps):
* gst/playback/gstplaybasebin.c: (source_new_pad):
Fix the case where we try to ref a NULL element when we delay a link
because of unfixed caps.
Set the state of autoplugged decodebins to PAUSED.
RTSP now works in playbin, we can remove it from the blacklist.
Original commit message from CVS:
* gst/playback/Makefile.am:
* gst/playback/gstplaybasebin.c: (string_arr_has_str),
(unknown_type), (setup_subtitle), (gen_source_element):
* gst/playback/gstplaybin.c: (plugin_init):
Post missing-plugin messages on the bus for missing sources and
missing decoders/demuxers/depayloaders; fix error code used when
we're missing an URI handler source; for media types that we are not
handling on purpose at the moment, don't print "don't know how to
handle xyz" messages to the terminal or post missing-plugin
messages on the bus.
* tests/check/elements/playbin.c: (create_playbin),
(GST_START_TEST), (gst_codec_src_uri_get_type),
(gst_codec_src_uri_get_protocols), (gst_codec_src_uri_get_uri),
(gst_codec_src_uri_set_uri), (gst_codec_src_uri_handler_init),
(gst_codec_src_init_type), (gst_codec_src_base_init),
(gst_codec_src_create), (gst_codec_src_class_init),
(gst_codec_src_init), (plugin_init), (playbin_suite):
Add some tests for the missing-plugin stuff.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_stream_out):
* ext/vorbis/vorbisdec.c: (vorbis_handle_data_packet):
* gst/playback/gstdecodebin2.c:
(gst_decode_group_check_if_blocked):
Printf format and missing argument fixes.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (type_found):
Special-case the text/plain media type: we only want to recognise it
as a 'raw' decoded media type if it comes from a demuxer or subtitle
parser, but not if the entire stream is of text/plain type. If the
entire stream is text/plain, we should just error out.
This fixes playback of audio files with lyrics in totem. Totem can't
distinguish between text files and subtitle files and passes any
.txt file with the same basename as the main file to playbin as
suburi, and playbin will then throw a 'subtitle found, but no video
stream' error, which isn't entirely helpful. See #380342.
Also, with this change we'll show a slightly more correct error
message in case totem passes a playlist file to us (although a
custom error message wording instead of the default text would
probably not be a bad idea either).
Same problem also needs to be fixed for playbin+decodebin2.
* tests/check/Makefile.am:
* tests/check/elements/decodebin.c: (src_handoff_cb),
(decodebin_new_decoded_pad_cb), (GST_START_TEST),
(decodebin_suite):
Add simple unit test for decodebin for the above.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_change_state):
* gst/playback/gstdecodebin2.c: (gst_decode_bin_change_state):
Refuse to change state to READY when we failed to create any of the
required elements in our instance init function.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (find_dynamic), (dynamic_add),
(close_pad_link), (elem_is_dynamic), (unlinked), (close_link):
Handle the case where an element has multiple pads with
unfixed caps as well as still possibly producing more dynamic
pads by storing each case as a distinct entry in the dynamic list.
Fixes#38223 again.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (check_queue_event):
Improve debug.
* gst/videoscale/gstvideoscale.c: (gst_video_scale_transform_caps):
Fix width and height range from 16 - 4096 to 1 - MAXINT, just like the
padtemplate caps. Refixes #357577.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (check_queue_event),
(queue_threshold_reached), (queue_out_of_data),
(gen_preroll_element):
Add event probe to see when EOS is in a queue and we can disable the
underrun signals. Fixes#357577.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (setup_source),
(gst_play_base_bin_change_state):
Disable rtsp:// uris for the release, it's not good enough yet.
Remove unused var.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (subbin_startup_sync_msg),
(setup_source):
Catch async errors when starting up the subtitle bin, so we can
stop waiting and continue with the main film instead of hanging
forever. Fixes#339366.
* tests/check/elements/playbin.c: (playbin_suite):
Enable unit test for the above.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (setup_source):
Don't hang forever if the subbin already fails to start up in
the state change to PAUSED (#339366).
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (get_our_ghost_pad),
(remove_element_chain):
Don't return a pad from get_our_ghost_pad unless it is actually the
one we want.
Change a cast in remove_element_chain slightly.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_setcaps):
Don't crash when ringbuffer is not yet created.
Patch by: Ville Syrjala <ville dot syrjala at movial dot fi>
Fixes#361634.
* gst/playback/gstplaybasebin.c: (new_decoded_pad_full):
* gst/playback/gststreamselector.c:
(gst_stream_selector_request_new_pad):
Activate pads befre adding them to running elements.
Original commit message from CVS:
2006-10-10 Zaheer Abbas Merali <zaheerabbas at merali dot org>
Patch by: Josep Torre Valles <josep@fluendo.com>
* ext/gnomevfs/gstgnomevfssink.c:
* ext/gnomevfs/gstgnomevfssrc.c:
Fix URI interface implementation return type.
* ext/pango/gsttextoverlay.c: (gst_text_overlay_set_property):
Fix what looks like a copy/paste issue when assigning values.
* gst-libs/gst/audio/gstaudiofiltertemplate.c:
(gst_audio_filter_template_get_type):
Cast to prevent Forte warnings.
* gst-libs/gst/cdda/gstcddabasesrc.c: (gst_cdda_base_src_create):
Fix URI interface implementation return type.
gst_pad_query_position requires a signed integer pointer as
3rd parameter, GstClockTime is unsigned.
* gst/audioconvert/audioconvert.c:
Fix integer overflow when treated as signed.
* gst/audioresample/resample.c: (resample_add_input_data):
Cast to prevent warnings on Forte.
* gst/ffmpegcolorspace/imgconvert.c: (build_rgb_palette):
Fix integer overflow when treated as signed.
* gst/ffmpegcolorspace/imgconvert_template.h:
Fix integer overflow when treated as signed. RGBA_OUT shifts bits.
* gst/playback/gstdecodebin.c: (queue_filled_cb),
(cleanup_decodebin):
Who initialises a guint to -1!
Cast function pointers to prevent warnings on Forte.
* gst/playback/gstplaybasebin.c: (queue_deadlock_check),
(queue_threshold_reached):
Cast function pointers correctly to prevent warnings on Forte.
* gst/playback/gststreaminfo.c: (gst_stream_info_dispose):
Cast function pointers correctly to prevent warnings on Forte.
* gst/subparse/gstssaparse.c: (gst_ssa_parse_setcaps):
Obvious change to unsigned, 0xEF > max signed char.
* gst/tcp/gstmultifdsink.c: (get_buffers_max), (count_burst_unit):
GstClockTime is unsigned, initialise correctly.
* gst/tcp/gsttcp.c: (gst_tcp_socket_write):
Cast so pointer arithemetic doesn't cause warnings on Forte.
* gst/videorate/gstvideorate.c:
Use correct return value.
* tests/examples/seek/scrubby.c:
GstClockTime is unsigned, initialise correctly.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_init),
(close_pad_link):
* gst/playback/gstplaybasebin.c: (new_decoded_pad_full):
Activate dynamic pads before adding them to the element.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (close_pad_link):
Fix typo in a debug statement.
* gst/playback/gstplaybasebin.c: (probe_triggered),
(new_decoded_pad_full), (new_decoded_pad), (subs_new_decoded_pad),
(gen_source_element), (source_new_pad), (analyse_source),
(setup_source):
When handling no_more_pads in new_decoded_pad, make sure to treat
subtitle pads correctly. Fixes playback with subtitle files.
Move a recurring message to LOG level.
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support):
The maximum value for the Xv colorkey on this Radeon is 0xFFFFFFFF,
which ends up as -1 when cast to an int. Make the logic handle the
max value as an unsigned mask and only change the colorkey when it's
a value we recognise.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (dynamic_create), (dynamic_free),
(close_pad_link), (dynamic_remove), (no_more_pads), (new_caps),
(find_dynamic), (unlinked), (close_link):
Implement delayed caps linking needed for element with a lot of
different caps on the src pads that get fixed at runtime.
Improve management of dynamic elements.
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_init),
(group_destroy), (group_commit), (check_queue), (queue_overrun),
(gen_preroll_element), (remove_groups), (unknown_type),
(add_element_stream), (no_more_pads_full), (no_more_pads),
(sub_no_more_pads), (source_no_more_pads), (preroll_unlinked),
(new_decoded_pad), (setup_subtitle), (array_has_value),
(gen_source_element), (source_new_pad), (has_all_raw_caps),
(analyse_source), (remove_decoders), (make_decoder),
(remove_source), (setup_source), (finish_source), (prepare_output),
(gst_play_base_bin_change_state):
* gst/playback/gstplaybasebin.h:
Use more _CAST instead of full type checking casts.
Small cleanups, plug some leaks.
Handle dynamic sources.
Add some helper functions to create lists of strings used for
blacklisting and other stuff.
Refactor some code dealing with analysing the source.
Re-enable sources without pads (like cd:// or other selfcontained
elements).
Original commit message from CVS:
* gst/playback/gstplaybin.c: (remove_sinks):
Only remove visualisation from visbin if there is a visbin (or:
don't throw warnings when closing totem without playing a file).
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_factory_filter),
(add_fakesink), (remove_fakesink), (pad_probe), (close_pad_link),
(is_demuxer_element), (try_to_link_1), (get_our_ghost_pad),
(new_pad):
Cleanups and small leak fixes.
Added Depayloaders to valid list of autopluggable elements.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gst_play_bin_class_init),
(gst_play_bin_vis_blocked), (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_set_clock_func), (gst_play_bin_change_state):
Detect NO_PREROLL state change returns and disable clock distribution to
the sinks so that sync is disabled.
Avoid some type checking and do simple casts instead.
Small cleanups, fix some FIXMEs.
Be more robust when linking user specified elements, catch an report
errors. Fixes#357404.
Fix some leaks in the error paths.
Original commit message from CVS:
Patch by: Peter Kjellerstedt <pkj at axis com>
* gst/playback/test.c:
Fix compilation with uClibc and -Werror (#357591).
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gen_preroll_element):
Improve buffering a bit by avoiding a deadlock because we cannot assume
the underrun is always called.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (group_commit),
(queue_deadlock_check), (queue_overrun), (queue_threshold_reached),
(queue_out_of_data), (gen_preroll_element),
(preroll_remove_overrun), (probe_triggered):
Refactor handling of overrun detection.
Separate handling of group completion and deadlock detection when doing
network buffering. This should fix some deadlocks that were not detected
because the group was completed.
Add more comments, improve debugging.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (get_active_source):
Make stream-switching appear instant to the application
(ie. make sure that a g_object_get on 'current-foo' returns
the stream previously set with g_object_set(). Totem needs
this to update stream-related meta-info (like audio-codec)
correctly when switching streams.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
(gst_play_base_bin_init), (fill_buffer), (check_queue),
(queue_threshold_reached), (gst_play_base_bin_set_property),
(gst_play_base_bin_get_property):
* gst/playback/gstplaybasebin.h:
Don't use a 0 low watermark when buffering, it is catching starvation
way too late. Instead, use a 3 second queue with 30 and 95
percent low/high watermarks.
Added queue-min-threshold property to configure low watermark.
Use new _buffering message API.
Make queue_threshold variable big enough to store a uint64 time value.
API: playbin::queue-min-threshold property.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gst_play_bin_class_init),
(gst_play_bin_set_property), (gst_play_bin_get_property),
(value_list_append_structure_list),
(gst_play_bin_handle_redirect_message),
(gst_play_bin_handle_message):
Add "connection-speed" property; re-order redirect messages with
multiple redirect locations depending on the minimum bitrate if
that information is available and a connection speed is set
(#350399).
Original commit message from CVS:
* gst/playback/test.c: (gen_video_element), (gen_audio_element),
(cb_newpad), (main):
Example of a small audio/video player using decodebin.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (find_compatibles):
Fix a caps leak when linking (#347304)
* sys/ximage/ximagesink.c: (gst_ximage_buffer_finalize),
(gst_ximagesink_ximage_destroy), (gst_ximagesink_xcontext_clear),
(gst_ximagesink_change_state):
* sys/xvimage/xvimagesink.c: (gst_xvimage_buffer_destroy),
(gst_xvimage_buffer_finalize), (gst_xvimagesink_check_xshm_calls),
(gst_xvimagesink_xvimage_new), (gst_xvimagesink_xvimage_put),
(gst_xvimagesink_xcontext_clear), (gst_xvimagesink_change_state):
Don't leak shared memory resources. Use the object lock to protect
against the xcontext disappearing while returning a buffer from the
pipeline. (#347304)
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (close_pad_link):
Also emit 'unknown-type' signal (which should really be
called unhandled-type) if we found potential decoders/demuxers
in the registry but none of them worked in the end (as in the
case where the plugins don't exist any longer but are still
listed in the registry). Fixes#329798.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_init),
(gst_play_base_bin_finalize), (decodebin_element_added_cb),
(decodebin_element_removed_cb), (gst_play_base_bin_set_property):
* gst/playback/gstplaybasebin.h:
Protect list of elements with a subtitle-encoding property and
the subtitle encoding member itself with a lock of their own
instead of using the object lock. This prevents a dead-lock in
the element-remove callback in some circumstances when shutting
down playbin.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (is_stream), (gen_source_element):
Improve checking if we are dealing with a stream. Added some
more uris that need buffering.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init),
(gst_decode_bin_init), (gst_decode_bin_finalize), (add_fakesink),
(remove_fakesink), (pad_probe), (gst_decode_bin_change_state):
Protect remove_fakesink using a mutex, so that we don't try and
remove the fakesink simultaneously from multiple threads.
When going from READY to PAUSED, restore the fakesink, so that
it is there when decodebin gets reused.
Original commit message from CVS:
* gst/playback/gststreaminfo.c: (cb_probe):
Try GST_TAG_CODEC as fallback when extracting the
codec name; more debug info.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (group_create), (group_commit),
(setup_source):
* gst/playback/gstplaybasebin.h:
Make the subtitle detection work from any thread so we don't
deadlock. Fixes#343397.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gen_source_element):
Throw a more comprehensible error for rtsp:// URIs (rather
than erroring out with a negotiation error later on) until
we fix playbin to handle rtspsrc etc.
Original commit message from CVS:
Patch by: Young-Ho Cha <ganadist at chollian net>
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
(gst_play_base_bin_init), (gst_play_base_bin_dispose),
(set_encoding_element), (decodebin_element_added_cb),
(decodebin_element_removed_cb), (setup_subtitle), (setup_source),
(gst_play_base_bin_set_property), (gst_play_base_bin_get_property):
* gst/playback/gstplaybasebin.h:
Add 'subtitle-encoding' property to playbin, so applications can
force a subtitle encoding for non-UTF8 subtitles (#342268).
* gst/subparse/gstsubparse.c: (gst_sub_parse_class_init),
(gst_sub_parse_set_property):
Rename recently-added 'encoding' property to 'subtitle-encoding'
(so it can be proxied by playbin/decodebin in a generic way
with less danger of false positives).
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (remove_fakesink), (pad_probe):
When there is only one unfinished pad and it receives an event that
doesn't match our requirements, we need to set alldone=FALSE so that
the fakesink is not removed yet.
Original commit message from CVS:
2006-05-15 Julien MOUTTE <julien@moutte.net>
* gst/playback/gstdecodebin.c: (cleanup_decodebin),
(gst_decode_bin_change_state): Make decodebin reusable
when going from PAUSE_TO_READY and then back to PAUSED.
Fixes#331678.
Original commit message from CVS:
2006-05-11 Thomas Vander Stichele <thomas at apestaart dot org>
patch by: Sjoerd Simons (sjoerd@luon.net)
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
(group_create), (group_destroy), (add_stream),
(gst_play_base_bin_get_property),
(gst_play_base_bin_get_streaminfo_value_array):
* gst/playback/gstplaybasebin.h:
API: GstPlayBaseBin::stream-info-value-array property
use a more bindings-friendly way of exposing streaminfo
using a GValueArray. Tested in ipython.
Closes#341114
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (try_to_link_1), (queue_enlarge),
(queue_underrun_cb), (queue_filled_cb):
Also catch queue underruns but don't do anything yet.
Refactor and comment queue enlarging code a bit.
* gst/playback/gstplaybasebin.c: (queue_overrun),
(queue_threshold_reached), (queue_out_of_data),
(gen_preroll_element):
If a queue over/underruns check that we don't create nasty
deadlocks when the min-threshold is not reached but the
max-bytes is. In those cases disable max-bytes when we
know that the queue is fed timed data.
Add more comments.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gen_audio_element):
Make playbin automatically plug an 'audioresample'
element before the audio sink as well. This solves
problems with sinks that only accept a very specific
sample rate, like esdsink (e.g. #340379).
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gen_source_element):
Make http sources send special headers so that we receive
icecast metadata if the http stream is an icecast stream
(otherwise the server will just ignore them). This also
means that from now on users will need the 'icydemux'
element from gst-plugins-good installed if they want to
listen to icecast radio streams. (#341432, #333657).
Original commit message from CVS:
Patch by: Jan Schmidt
* gst/playback/gststreamselector.c:
(gst_stream_selector_bufferalloc):
Restore old StreamSelector behaviour.
Fixes#338419.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (group_destroy):
Clean up our group elements properly in the case where it never
got committed - it still got added unconditionally to the bin.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (mute_stream), (setup_substreams):
Don't remove our mute-probe if someone else already did so.
Don't set a 2nd one if there is already one pending on the pad.
* gst/playback/gstplaybin.c: (gst_play_bin_send_event_to_sink),
(do_playbin_seek):
When a seek fails, ensure that playbin is still set back to playing.
* gst/typefind/gsttypefindfunctions.c: (mpeg_ts_probe_headers),
(mpeg_ts_type_find), (plugin_init):
Add a typefind function for mpeg-ts streams.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gen_video_element),
(gen_text_element), (gen_audio_element), (gen_vis_element):
Error out gracefully when we can't create any of the usual
conversion elements for some reason. Also, don't try to
create an audioscale (sic) element that's not used anyway.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (setup_source):
Don't post RESOURCE_NOT_FOUND error when we can't find a source
element for a particular protocol, that's confusing for users.
Instead, post a RESOURCE_FAILED error, so that our own error
message is actually shown in totem etc. (#336303).
Original commit message from CVS:
* gst/playback/gststreamselector.c:
(gst_stream_selector_set_property),
(gst_stream_selector_bufferalloc):
Preserve the existing buggy streamselector behaviour by performing
a fallback buffer allocation when downstream isn't linked yet.
This should really be fixed in playbin by blocking pads until it's
linked them.
Also, use gst_pad_alloc_buffer instead of
gst_pad_alloc_buffer_and_set.
Original commit message from CVS:
* ext/alsa/gstalsasink.c: (gst_alsasink_finalise):
Chain up to the parent finalize method.
Add 32-bit sample size to the template caps.
* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps),
(gst_riff_create_video_template_caps):
Add the fourcc that the VMWare codec uses.
* gst/playback/gststreamselector.c:
(gst_stream_selector_set_property),
(gst_stream_selector_bufferalloc),
(gst_stream_selector_request_new_pad):
For the active pad, forward buffer-alloc requests, otherwise
return GST_FLOW_NOT_LINKED. This also prevents xvimagesink
having to memcpy every frame when used by playbin.
* gst/tcp/gstmultifdsink.c:
(gst_multi_fd_sink_handle_client_write):
Get negotiated caps from the sink pad, rather than the sink
pad's peer.
Original commit message from CVS:
* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_create):
Don't send EOS event here, the base class will send one for us.
* gst/playback/gstplaybasebin.c: (prepare_output):
Subpictures without video stream aren't allowed either.
* gst/subparse/gstsubparse.c: (gst_subparse_type_find):
Fix debug statement copy'n'paste-o.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (get_our_ghost_pad),
(remove_element_chain), (cleanup_decodebin),
(gst_decode_bin_change_state): Make decodebin reusable by
fixing remove_element_chain first and then introduce a
cleaner in state change to ->NULL. (Closes#331678)
------------------------------------------------------
Original commit message from CVS:
2006-02-19 Julien MOUTTE <julien@moutte.net>
* gst/playback/gstdecodebin.c: (mimetype_is_raw): pango layout
should be considered as row.
Original commit message from CVS:
2006-02-18 Julien MOUTTE <julien@moutte.net>
* ext/pango/gsttextoverlay.c: (gst_text_overlay_base_init),
(gst_text_overlay_finalize), (gst_text_overlay_init),
(gst_text_overlay_setcaps), (gst_text_overlay_src_event),
(gst_text_overlay_render_text),
(gst_text_overlay_text_pad_link),
(gst_text_overlay_text_pad_unlink),
(gst_text_overlay_text_event),
(gst_text_overlay_video_event), (gst_text_overlay_pop_text),
(gst_text_overlay_text_chain), (gst_text_overlay_video_chain),
(gst_text_overlay_change_state): Refactoring of textoverlay
without collectpads. This now supports sparse subtitles coming
from a demuxer instead of a sub file. Seeking is still broken
though. Need to discuss with wtay some more on how to handle
seeking correctly.
* ext/pango/gsttextoverlay.h:
* gst/playback/gstplaybin.c: (setup_sinks): Support linking with
subtitles coming from the demuxer.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gen_vis_element):
Update vis bin docs.
Move queue after tee so we don't queue video buffers but
audio samples instead. Fixes problems where the video queue
is filled and the audio queue empty.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (prepare_output):
Don't print the URI as part of the error message, it
makes error dialogs look rather ugly, especially if
the URI is very long or has characters in it that
need escaping.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (prepare_output):
Error out if we have only text or subtitles, but nothing
else. Also error out if we have subtitles but no video
stream.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (try_to_link_1):
Don't put essential function call into
g_return_*() macro, otherwise it'll all be
replaced by NOOPs when compiling with
G_DISABLE_CHECKS defined.
Original commit message from CVS:
* gst/playback/test6.c: (new_decoded_pad_cb), (show_error), (main):
Make test work again by connecting fakesinks to each decoded pad,
which makes the pipeline wait until each fakesink has a buffer
queued before going to PAUSED state. At that point we know the
decodebin pads are negotiated.
Original commit message from CVS:
* gst-libs/gst/audio/audio.h: (GST_CLOCK_TIME_TO_FRAMES)
* gst-libs/gst/audio/gstbaseaudiosink.c: (gst_base_audio_sink_render)
use of gst_guint64_to_gdouble to be compliant with vs6
* gst/playback/gstdecodebin.c: (try_to_link_1)
* gst/videorate/videorate.c: (gst_video_rate_blank_data)
use of G_GINT64_CONSTANT for int64 constants
* win32/common/libgstinterfaces.def:
export some symbols (gst_mixer_get_type,gst_mixer_track_get_type)
* win32/vs6:
update and add new project files
Original commit message from CVS:
* ext/alsa/gstalsaplugin.c: (plugin_init):
* ext/cdparanoia/gstcdparanoiasrc.c:
(gst_cd_paranoia_src_base_init), (plugin_init):
* ext/gnomevfs/gstgnomevfs.c: (plugin_init):
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_plugin_init):
- a library should not call setlocale. see Libraries node in
gettext manual
- make sure all plugins that use translation do bindtextdomain
to point to the localedir
* gst/playback/gstplaybin.c: (gen_vis_element), (add_sink),
(setup_sinks), (plugin_init):
all this, and check for NULL when creating sinks
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (pad_probe):
Also consider the flush-start and tag events as unblockers
for the pad probes.
Original commit message from CVS:
2006-01-26 Julien MOUTTE <julien@moutte.net>
* gst/playback/gstplaybin.c: (gst_play_bin_init),
(gst_play_bin_dispose), (gst_play_bin_vis_unblocked),
(gst_play_bin_vis_blocked), (gst_play_bin_set_property):
On the fly visualisation switch, works disabling, enabling as
well but it won't be able to enable vis in a playbin that was
created with no visualisation.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_init),
(free_pad_probes), (remove_fakesink), (pad_probe),
(close_pad_link), (gst_decode_bin_change_state):
Replace GstPadBlockCallback with pad probes that detect
first buffer AND eos before removing fakesink.
Fixes hang with demuxers doing EOS while pre-rolling.
Solves #328279
Original commit message from CVS:
* gst/playback/gststreaminfo.c: (gst_stream_info_set_mute):
* gst/playback/gststreamselector.c:
(gst_stream_selector_set_property):
Comment out broken code that connects to the state-changed signal.
At this point, changing current stream selection is broken, but
stuff like gst-launch playbin current-audio=1 works and filters
to the chosen stream.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (setup_source):
Fix playback for sources that emit raw audio or
raw video streams (e.g.: cd audio sources) (#325984).
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (group_destroy),
(probe_triggered), (new_decoded_pad), (mute_group_type),
(set_active_source):
* gst/playback/gststreaminfo.c: (gst_stream_info_set_mute):
* gst/playback/gststreamselector.c:
(gst_stream_selector_base_init),
(gst_stream_selector_set_property),
(gst_stream_selector_request_new_pad):
Reenable stream selection. These mechanisms need a complete overhaul
in the face of 0.8->0.10 changes though.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gen_audio_element):
Don't leak an autoaudiosink/alsasink when we generate
a new audio element. (old code, I guess)
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (new_pad):
Fix non-C89 variable declaration not at the start of a block. Should
help some compilers.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_deactivate_current_chain),
(gst_ogg_demux_activate_chain):
Extra debug output when activating/deactivating chains.
* gst/playback/gstdecodebin.c: (gst_decode_bin_factory_filter),
(is_demuxer_element), (try_to_link_1), (remove_element_chain),
(unlinked):
Remove a queue from our list when it becomes unlinked.
Don't add queues to elements in class 'Demux' if they
can only produce one pad
Original commit message from CVS:
* gst/playback/gstplaybasebin.c:
* gst/playback/gstplaybin.c: (handoff):
Make sure the video frame buffer we return to apps via the
"frame" property always has caps set on it. Modify
_gst_gvalue_set_object() macro to handle NULL objects
gracefully too.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_property):
* gst/playback/gstplaybin.c: (gst_play_bin_get_property):
Work around refcount problem with g_value_set_object() that occur
if the core has been compiled against GLib-2.6 (g_value_set_object()
will only g_object_ref() the element, but the caller will
gst_object_unref() it and bad things will happen due to the way
GstObjects are refcounted in the GLib-2.6 case). Fixes problems with
totem for people on FC4 using Thomas's 0.10 RPMs.
Original commit message from CVS:
* gst/playback/gststreamselector.c: (gst_stream_selector_chain):
3rd time's the charm. Correct ref-counting for discarded buffers.
Original commit message from CVS:
* gst/playback/gststreamselector.c:
(gst_stream_selector_class_init), (gst_stream_selector_init),
(gst_stream_selector_dispose), (gst_stream_selector_set_property),
(gst_stream_selector_get_property),
(gst_stream_selector_get_linked_pad),
(gst_stream_selector_request_new_pad), (gst_stream_selector_chain):
* gst/playback/gststreamselector.h:
Add the active-pad property for playbin to use shortly. Ignore buffers
from any other pad, returning GST_FLOW_NOT_LINKED
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