Commit graph

453 commits

Author SHA1 Message Date
Wim Taymans
5c59b5a2aa gst/playback/gstplaybasebin.c: Only post buffering messages when we are a stream.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (queue_threshold_reached):
Only post buffering messages when we are a stream.
2007-08-16 11:20:56 +00:00
Tim-Philipp Müller
2c9bef0180 gst/: Printf format fixes (#465028).
Original commit message from CVS:
* gst/playback/gstqueue2.c:
* gst/videorate/gstvideorate.c:
Printf format fixes (#465028).
2007-08-10 10:08:05 +00:00
Josep Torra Valles
9730f452ee gst/playback/gstplaybasebin.c: Fixes: #465015
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (group_commit),
(queue_remove_probe), (queue_threshold_reached):
Patch by: Josep Torra Valles <josep@fluendo.com>
Fixes: #465015
Make sure we remove the check_queues buffer probe from the
correct queue to avoid racily going back to "buffering 99%" when
buffering is actually complete.
Also, fix the spelling of Josep's surname in the ChangeLog.
2007-08-09 12:06:43 +00:00
Josep Torre Valles
382b710277 Add connection-speed property. Fixes #464690.
Original commit message from CVS:
Patch by: Josep Torre Valles <josep@fluendo.com>
* docs/plugins/gst-plugins-base-plugins.args:
* gst/playback/gsturidecodebin.c: (gst_uri_decode_bin_class_init),
(gst_uri_decode_bin_init), (gst_uri_decode_bin_set_property),
(gst_uri_decode_bin_get_property), (gen_source_element):
Add connection-speed property. Fixes #464690.
2007-08-08 15:05:22 +00:00
Josep Torre Valles
5e5aa7b402 gst/playback/: Move connection-speed property from playbin to playbasebin so that we can also configure it in source ...
Original commit message from CVS:
Patch by: Josep Torre Valles <josep@fluendo.com>
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
(gst_play_base_bin_init), (queue_threshold_reached),
(gen_source_element), (setup_substreams),
(gst_play_base_bin_set_property), (gst_play_base_bin_get_property),
(gst_play_base_bin_get_streaminfo_value_array):
* gst/playback/gstplaybasebin.h:
* gst/playback/gstplaybin.c: (gst_play_bin_class_init),
(gst_play_bin_set_property), (gst_play_bin_get_property),
(gst_play_bin_handle_redirect_message):
Move connection-speed property from playbin to playbasebin so that we
can also configure it in source elements that have the connection-speed
property. Fixes #464028.
Add some debug info here and there.
2007-08-07 14:14:54 +00:00
Dan Williams
ace9335ae3 gst/playback/gstplaybasebin.c: Don't return NULL when querying the stream info value array but instead return an empt...
Original commit message from CVS:
Patch by: Dan Williams <dcbw at redhat dot com>
* gst/playback/gstplaybasebin.c:
(gst_play_base_bin_get_streaminfo_value_array):
Don't return NULL when querying the stream info value array but instead
return an empty array. Fixes #459204.
2007-07-23 11:18:35 +00:00
Tim-Philipp Müller
2271ec928f gst/playback/gsturidecodebin.c: Init debug category before using it.
Original commit message from CVS:
* gst/playback/gsturidecodebin.c:
Init debug category before using it.
2007-07-23 10:41:18 +00:00
Wim Taymans
c03d6a8757 gst/playback/gstplaybasebin.c: Clear the dynamic pads counter when starting a new uri. This makes reusing playbin wor...
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (no_more_pads_full),
(setup_source):
Clear the dynamic pads counter when starting a new uri. This makes
reusing playbin work again.
Fixes #454264.
2007-07-12 12:01:20 +00:00
Wim Taymans
8c05f2ebc9 gst/playback/gstqueue2.c: Use other metrics as well when estimating the buffer level.
Original commit message from CVS:
* gst/playback/gstqueue2.c: (apply_segment), (update_buffering):
Use other metrics as well when estimating the buffer level.
2007-06-28 11:06:56 +00:00
Wim Taymans
aac5185f3e gst/playback/gstplaybasebin.c: Small debug improvement.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (make_decoder), (setup_source):
Small debug improvement.
* gst/playback/gstqueue2.c: (apply_segment), (update_buffering),
(plugin_init):
Tweak the rate estimation period.
When calculating the buffer filledness in rate estimation mode, don't
mix it with other metrics.
2007-06-28 10:21:19 +00:00
Wim Taymans
c198d8000c gst/playback/gstdecodebin2.c: When creating the groups, allow for a 5 second, unlimited buffers preroll phase after w...
Original commit message from CVS:
* gst/playback/gstdecodebin2.c: (gst_decode_group_new),
(gst_decode_group_expose), (gst_decode_group_free), (add_fakesink):
When creating the groups, allow for a 5 second, unlimited buffers
preroll phase after which we expose the group.
When the group is exposed, use a small number of buffers up to a 2
second limit. Also disconnect the overrun signal from multiqueue when we
exposed the group because it is not needed anymore.
2007-06-28 09:46:11 +00:00
Edward Hervey
fa877be84c ext/ogg/gstoggdemux.c: The chain should be freed if we error out here, else it will leak.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_find_chains):
The chain should be freed if we error out here, else it will leak.
* gst/playback/gstdecodebin.c: (disconnect_unlinked_signals),
(cleanup_decodebin):
Don't forget to *properly* remove the signals, else it will leak.
2007-06-23 14:44:07 +00:00
Wim Taymans
3b2762a5b2 gst/playback/gstdecodebin2.c: When handling a delayed-caps notification case, mark the group as dynamic so that the n...
Original commit message from CVS:
* gst/playback/gstdecodebin2.c: (analyze_new_pad):
When handling a delayed-caps notification case, mark
the group as dynamic so that the nbdynamic count is
incremented and decremented correctly. Fixes: #449156
Patch by: Wim Taymans <wim@fluendo.com>
2007-06-20 11:09:03 +00:00
David Schleef
c4c28a764a gst/playback/gstqueue2.c: Fix compile error from ignored return value.
Original commit message from CVS:
* gst/playback/gstqueue2.c:
Fix compile error from ignored return value.
2007-06-16 03:42:14 +00:00
Edward Hervey
be1f78d2e2 gst/playback/gstqueue2.c: Fix build on MacOSX.
Original commit message from CVS:
* gst/playback/gstqueue2.c: (gst_queue_create_read):
Fix build on MacOSX.
2007-06-13 18:20:57 +00:00
Wim Taymans
2e541b29d4 gst/playback/gstqueue2.c: Fix a division by zero when the max percent is <= 0. Fixes #446572. also update the bufferi...
Original commit message from CVS:
Patches by: Thiago Sousa Santos <thiagossantos at gmail dot com>
* gst/playback/gstqueue2.c: (update_buffering),
(gst_queue_locked_enqueue):
Fix a division by zero when the max percent is <= 0. Fixes #446572.
also update the buffering status when receiving events. Fixes #446551.
2007-06-12 08:38:06 +00:00
Thiago Sousa Santos
4d83551490 gst/playback/gstqueue2.c: Wait for preroll before attempting to forward a duration query upstream.
Original commit message from CVS:
Based on patch by: Thiago Sousa Santos <thiagossantos at gmail dot com>
* gst/playback/gstqueue2.c: (gst_queue_peer_query),
(gst_queue_handle_src_query):
Wait for preroll before attempting to forward a duration query upstream.
Fixes #445505.
2007-06-11 11:32:26 +00:00
Wim Taymans
919029d9c5 gst/playback/gstqueue2.c: Fix compilation.
Original commit message from CVS:
* gst/playback/gstqueue2.c: (gst_queue_get_range):
Fix compilation.
2007-06-07 09:11:27 +00:00
Thiago Sousa Santos
658fbf5039 gst/playback/gstqueue2.c: Add pull based scheduling and fix some deadlocks. Fixes #444523.
Original commit message from CVS:
Patch by: Thiago Sousa Santos <thiagossantos at gmail dot com>
* gst/playback/gstqueue2.c: (gst_queue_init),
(gst_queue_handle_sink_event), (gst_queue_chain),
(gst_queue_get_range), (gst_queue_src_checkgetrange_function),
(gst_queue_sink_activate_push), (gst_queue_src_activate_push),
(gst_queue_src_activate_pull):
Add pull based scheduling and fix some deadlocks. Fixes #444523.
Does not yet completely work because duration queries upstream won't
block yet.
2007-06-06 13:36:26 +00:00
Wim Taymans
1a31080014 Some more fseeko checks.
Original commit message from CVS:
* configure.ac:
* gst/playback/gstqueue2.c: (gst_queue_create_read):
Some more fseeko checks.
2007-06-06 09:08:50 +00:00
Wim Taymans
837d4b1bb9 gst/playback/gstqueue2.c: Include stdio to define fseeko.
Original commit message from CVS:
* gst/playback/gstqueue2.c: (gst_queue_have_data),
(gst_queue_create_read), (gst_queue_read_item_from_file),
(gst_queue_open_temp_location_file), (gst_queue_locked_enqueue):
Include stdio to define fseeko.
2007-06-05 17:02:13 +00:00
Wim Taymans
d4bb17ab7a gst/playback/gsturidecodebin.c: Make sure we name srcpads uniquely even when using different internal decodebins.
Original commit message from CVS:
* gst/playback/gsturidecodebin.c: (no_more_pads_full),
(new_decoded_pad), (remove_pads), (make_decoder), (setup_source),
(gst_uri_decode_bin_change_state):
Make sure we name srcpads uniquely even when using different internal
decodebins.
Signal no-more-pads when no more dynamic elements exist.
Remove pads on cleanup.
2007-06-05 16:17:30 +00:00
Thiago Sousa Santos
73e8934af9 gst/playback/gstqueue2.c: Add support for filebased buffering. Fixes #441264.
Original commit message from CVS:
Based on patch by: Thiago Sousa Santos <thiagossantos at gmail dot com>
* gst/playback/gstqueue2.c: (gst_queue_class_init),
(gst_queue_init), (gst_queue_finalize),
(gst_queue_write_buffer_to_file), (gst_queue_have_data),
(gst_queue_create_read), (gst_queue_read_item_from_file),
(gst_queue_open_temp_location_file),
(gst_queue_close_temp_location_file), (gst_queue_locked_flush),
(gst_queue_locked_enqueue), (gst_queue_locked_dequeue),
(gst_queue_is_empty), (gst_queue_is_filled),
(gst_queue_change_state), (gst_queue_set_temp_location),
(gst_queue_set_property):
Add support for filebased buffering. Fixes #441264.
2007-06-05 16:14:23 +00:00
Wim Taymans
3840b5a20f gst/playback/gstdecodebin2.c: Add support for delayed caps fixation when autoplugging.
Original commit message from CVS:
* gst/playback/gstdecodebin2.c: (gst_decode_bin_factory_filter),
(analyze_new_pad), (connect_pad), (expose_pad), (caps_notify_cb),
(caps_notify_group_cb), (gst_decode_group_new),
(gst_decode_group_free):
Add support for delayed caps fixation when autoplugging.
Optimize cases where a multiqueue is not needed/wanted, like right after
anything that is not a demuxer.
2007-06-05 16:05:19 +00:00
Wim Taymans
5deb6e096d gst/playback/gstplaybasebin.c: Stop buffering when the group is commited because the queues filled up.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (queue_overrun),
(no_more_pads_full):
Stop buffering when the group is commited because the queues filled up.
Fixes #442024.
2007-05-29 13:38:35 +00:00
Jan Schmidt
d9504cf065 gst/playback/gstplaybasebin.c: Handle unknown or invalid pads without crashing, as might occur if a media file like a...
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (new_decoded_pad_full):
Handle unknown or invalid pads without crashing, as might occur if
a media file like an mp3 is specified as a subtitle file.
Fixes: #410039
2007-05-24 11:15:32 +00:00
Jan Schmidt
c446f911d4 gst/playback/gstplaybin.c: Block the subtitle bin output queue before ghosting it and linking, then unblock after. Th...
Original commit message from CVS:
* gst/playback/gstplaybin.c: (add_sink), (dummy_blocked_cb),
(setup_sinks):
Block the subtitle bin output queue before ghosting it and linking,
then unblock after. This avoids spurious not-linked errors caused
by the queue starting up (because it gets linked when it is ghosted).
Fixes: #350299
2007-05-24 10:19:54 +00:00
Wim Taymans
9b188adc27 Small cleanups.
Original commit message from CVS:
* ext/cdparanoia/gstcdparanoiasrc.c:
(gst_cd_paranoia_src_read_sector):
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_create):
Small cleanups.
* ext/theora/theoradec.c: (theora_dec_sink_event):
Fix typo.
* gst-libs/gst/rtp/gstbasertpdepayload.c:
(gst_base_rtp_depayload_set_gst_timestamp):
Add some FIXME
* gst/playback/gstdecodebin.c: (queue_underrun_cb):
And some debug info when a FIXME path is hit.
2007-05-21 10:25:44 +00:00
Stefan Kost
e7c3ddf3fc gst-libs/gst/audio/gstbaseaudiosink.c
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c
(gst_base_audio_sink_change_state):
Fix typo in comment.
* gst/playback/gstdecodebin.c (gst_decode_bin_class_init,
free_dynamics, pad_probe, close_pad_link, try_to_link_1,
get_our_ghost_pad, remove_element_chain, queue_underrun_cb,
close_link):
* gst/playback/gstplaybin.c (gst_play_bin_set_property,
gen_audio_element, remove_sinks, gst_play_bin_send_event_to_sink):
Remove trailing whitespaces in comments.
* gst/volume/Makefile.am:
Fix tabs.
2007-05-18 15:23:43 +00:00
Wim Taymans
a18a10e81f gst/playback/gstdecodebin2.c: Make decodebin2 autoplug depayloaders too.
Original commit message from CVS:
* gst/playback/gstdecodebin2.c: (gst_decode_bin_factory_filter):
Make decodebin2 autoplug depayloaders too.
* gst/playback/gsturidecodebin.c: (source_new_pad):
Set the newly created decoder in a usable state when autoplugging a
dynamic source such as RTSP.
2007-05-17 16:27:32 +00:00
Tim-Philipp Müller
2cd5f527fe gst/playback/gststreaminfo.c: Ignore video-codec tag for audio streams and ignore audio-codec tags for video streams....
Original commit message from CVS:
* gst/playback/gststreaminfo.c: (cb_probe):
Ignore video-codec tag for audio streams and ignore audio-codec tags
for video streams. Should make codec name collection a bit more
robust against sloppy demuxers that send tag events containing both
tags down each pad.
2007-05-17 16:11:03 +00:00
Wim Taymans
d33939800d gst/playback/gstqueue2.c: Tweak the buffering thresholds a little.
Original commit message from CVS:
* gst/playback/gstqueue2.c: (update_rates):
Tweak the buffering thresholds a little.
Update the buffer size with the previously calculate rate instead of
only when we calculate a new rate so that we get smoother buffering
updates.
* gst/playback/Makefile.am:
* gst/playback/gsturidecodebin.c: (gst_uri_decode_bin_base_init),
(gst_uri_decode_bin_class_init), (gst_uri_decode_bin_init),
(gst_uri_decode_bin_finalize), (gst_uri_decode_bin_set_property),
(gst_uri_decode_bin_get_property), (unknown_type),
(add_element_stream), (no_more_pads_full), (no_more_pads),
(source_no_more_pads), (new_decoded_pad), (array_has_value),
(gen_source_element), (has_all_raw_caps), (analyse_source),
(remove_decoders), (make_decoder), (remove_source),
(source_new_pad), (setup_source), (decoder_query_init),
(decoder_query_duration_fold), (decoder_query_duration_done),
(decoder_query_position_fold), (decoder_query_position_done),
(decoder_query_latency_fold), (decoder_query_latency_done),
(decoder_query_seeking_fold), (decoder_query_seeking_done),
(decoder_query_generic_fold), (gst_uri_decode_bin_query),
(gst_uri_decode_bin_change_state), (plugin_init):
New element that intergrates a source, optional buffering element and
decodebin.
2007-05-17 15:22:44 +00:00
Wim Taymans
fa972968b2 gst/playback/gstqueue2.c: fix build.
Original commit message from CVS:
* gst/playback/gstqueue2.c: (gst_queue_get_type),
(gst_queue_class_init), (gst_queue_finalize), (update_time_level),
(apply_segment), (apply_buffer), (update_buffering),
(reset_rate_timer), (update_rates), (gst_queue_locked_flush),
(gst_queue_locked_enqueue), (gst_queue_locked_dequeue),
(gst_queue_handle_sink_event), (gst_queue_is_filled),
(gst_queue_chain), (gst_queue_push_one), (gst_queue_loop),
(plugin_init):
fix build.
2007-05-17 13:36:11 +00:00
Wim Taymans
ae69903ca1 gst/playback/: On our way to playbin2 this is the new network queue that does buffering all by itself using high and ...
Original commit message from CVS:
* gst/playback/Makefile.am:
* gst/playback/gstqueue2.c: (gst_queue_get_type),
(gst_queue_class_init), (gst_queue_init), (gst_queue_finalize),
(gst_queue_getcaps), (gst_queue_bufferalloc),
(gst_queue_acceptcaps), (update_time_level), (apply_segment),
(apply_buffer), (update_buffering), (reset_rate_timer),
(update_rates), (gst_queue_locked_flush),
(gst_queue_locked_enqueue), (gst_queue_locked_dequeue),
(gst_queue_handle_sink_event), (gst_queue_is_empty),
(gst_queue_is_filled), (gst_queue_chain), (gst_queue_push_one),
(gst_queue_loop), (gst_queue_handle_src_event),
(gst_queue_handle_src_query), (gst_queue_sink_activate_push),
(gst_queue_src_activate_push), (gst_queue_change_state),
(gst_queue_set_property), (gst_queue_get_property), (plugin_init):
On our way to playbin2 this is the new network queue that does buffering
all by itself using high and low watermarks. It can also measure up and
downstream bandwidth to optimally size the queue.
2007-05-17 11:57:44 +00:00
Wim Taymans
56f01bc0cb gst/playback/gstplaybasebin.c: Connect to the new queue "pushing" signal instead of the broken "running" one.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (fill_buffer), (check_queue),
(queue_out_of_data):
Connect to the new queue "pushing" signal instead of the broken
"running" one.
2007-05-10 15:28:13 +00:00
Tim-Philipp Müller
997621c9b9 gst/playback/: Better error message for text files.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (type_found), (plugin_init):
* gst/playback/gstdecodebin2.c: (plugin_init):
Better error message for text files.
2007-05-01 18:45:36 +00:00
Wim Taymans
34a49a9a06 gst/playback/gstplaybin.c: Activate sync in playbin, we are ready to handle it for live streams.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (add_sink),
(gst_play_bin_change_state):
Activate sync in playbin, we are ready to handle it for live streams.
2007-04-06 12:58:06 +00:00
Tommi Myöhänen
32a727628f gst/playback/gstplaybasebin.c: Fix leak in add_stream(), when g_value_set_object() increases the refcount of streamin...
Original commit message from CVS:
Patch by: Tommi Myöhänen <ext-tommi dot myohanen at nokia dot com>
* gst/playback/gstplaybasebin.c: (add_stream):
Fix leak in add_stream(), when g_value_set_object() increases the
refcount of streaminfo object. Fixes #426250.
2007-04-05 10:27:06 +00:00
Tommi Myöhänen
8676f3dce7 gst/playback/gstdecodebin2.c: Decodebin2 doesn't unref pads it obtains in some occasions:
Original commit message from CVS:
Patch by: Tommi Myöhänen <ext-tommi dot myohanen at nokia dot com>
* gst/playback/gstdecodebin2.c: (connect_pad), (expose_pad),
(deactivate_free_recursive):
Decodebin2 doesn't unref pads it obtains in some occasions:
- multiqueue src pads, when either connecting further or exposing
- sink pads of new autoplugged elements
- peer pads when recursively freeing elements
Fixes #425455.
2007-04-03 11:10:52 +00:00
Jan Schmidt
9cbead077e gst/playback/gstplaybin.c: Remove playbin's override of the set_clock vmethod. It's irrelevant after Wim's commit on ...
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gst_play_bin_class_init):
Remove playbin's override of the set_clock vmethod. It's irrelevant
after Wim's commit on the 19th.
2007-03-22 17:43:52 +00:00
Tim-Philipp Müller
5b1cd74011 gst/playback/gstplaybin.c: Use GST_PTR_FORMAT to log caps.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (add_sink):
Use GST_PTR_FORMAT to log caps.
2007-03-21 11:03:23 +00:00
Wim Taymans
d24780a03b gst/playback/gstdecodebin.c: Don't post STATE_DIRTY anymore.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (remove_fakesink):
Don't post STATE_DIRTY anymore.
* gst/playback/gstplaybin.c: (add_sink), (gst_play_bin_send_event),
(gst_play_bin_change_state):
Remove stream_time reset in seek handling, core does that now.
Disable clocking for live pipelines by forcing a NULL clock to the
complete pipeline, core is too smart now for our previous hack.
We can always autoplug in PAUSED now.
2007-03-19 10:52:50 +00:00
Thomas Vander Stichele
f6bd20e5e3 rename utils to pbutils
Original commit message from CVS:
* configure.ac:
* docs/libs/gst-plugins-base-libs-docs.sgml:
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/Makefile.am:
* gst-libs/gst/interfaces/mixer.c:
* gst-libs/gst/pbutils/Makefile.am:
* gst-libs/gst/pbutils/descriptions.c:
(gst_pb_utils_get_source_description),
(gst_pb_utils_get_sink_description),
(gst_pb_utils_get_decoder_description),
(gst_pb_utils_get_encoder_description),
(gst_pb_utils_get_element_description),
(gst_pb_utils_add_codec_description_to_tag_list),
(gst_pb_utils_get_codec_description), (gst_pb_utils_list_all):
* gst-libs/gst/pbutils/descriptions.h:
* gst-libs/gst/pbutils/install-plugins.c:
* gst-libs/gst/pbutils/install-plugins.h:
* gst-libs/gst/pbutils/missing-plugins.c:
(gst_missing_uri_source_message_new),
(gst_missing_uri_sink_message_new),
(gst_missing_element_message_new),
(gst_missing_decoder_message_new),
(gst_missing_encoder_message_new),
(gst_missing_plugin_message_get_description):
* gst-libs/gst/pbutils/missing-plugins.h:
* gst-libs/gst/pbutils/pbutils.c: (gst_pb_utils_init):
* gst-libs/gst/pbutils/pbutils.h:
* gst-libs/gst/utils/Makefile.am:
* gst-libs/gst/utils/base-utils.c:
* gst-libs/gst/utils/base-utils.h:
* gst-libs/gst/utils/descriptions.c:
* gst-libs/gst/utils/descriptions.h:
* gst-libs/gst/utils/install-plugins.c:
* gst-libs/gst/utils/install-plugins.h:
* gst-libs/gst/utils/missing-plugins.c:
* gst-libs/gst/utils/missing-plugins.h:
* gst-plugins-base.spec.in:
* gst/playback/Makefile.am:
* gst/playback/gstdecodebin.c:
* gst/playback/gstdecodebin2.c:
* gst/playback/gstplaybasebin.c: (setup_subtitle),
(gen_source_element):
* gst/playback/gstplaybin.c: (plugin_init):
* tests/check/Makefile.am:
* tests/check/libs/pbutils.c: (GST_START_TEST),
(test_pb_utils_install_plugins_do_callout), (libgstpbutils_suite):
* tests/check/libs/utils.c:
rename utils to pbutils
2007-03-04 23:39:51 +00:00
Jan Schmidt
c73e88a6a1 Add documentation for decodebin2 that indicates that the API is still unstable.
Original commit message from CVS:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-base-plugins-docs.sgml:
* docs/plugins/gst-plugins-base-plugins-sections.txt:
* docs/plugins/inspect/plugin-decodebin2.xml:
* gst/playback/gstdecodebin2.c: (gst_decode_bin_class_init):
Add documentation for decodebin2 that indicates that the API
is still unstable.
2007-03-02 12:59:15 +00:00
Ed Catmur
61eaa5eb9b gst/playback/gstplaybin.c: Fix race condition when rapidly switching visualisations in playbin.
Original commit message from CVS:
Patch by: Ed Catmur <ed at catmur dot co dot uk>
* gst/playback/gstplaybin.c: (gst_play_bin_vis_unblocked),
(gst_play_bin_vis_blocked), (gst_play_bin_set_property):
Fix race condition when rapidly switching visualisations in playbin.
Fixes #401029.
2007-02-28 15:17:20 +00:00
Tim-Philipp Müller
d35f4efe67 gst/playback/gstplaybin.c: Improve docs: point out that the application needs to assist playbin with buffering.
Original commit message from CVS:
* gst/playback/gstplaybin.c:
Improve docs: point out that the application needs to assist playbin
with buffering.
2007-02-23 18:49:29 +00:00
Edward Hervey
7bc6fc07a1 gst/playback/gstdecodebin2.c: Don't free groups from the streaming threads. Just put them aside and free them in disp...
Original commit message from CVS:
* gst/playback/gstdecodebin2.c: (gst_decode_bin_dispose),
(multi_queue_underrun_cb), (gst_decode_group_check_if_drained),
(sort_end_pads), (gst_decode_group_expose),
(gst_decode_group_hide):
Don't free groups from the streaming threads. Just put them aside and
free them in dispose.
2007-02-20 15:44:32 +00:00
Edward Hervey
7746c2f176 gst/playback/gstdecodebin2.c: Handle dynamic pads within groups.
Original commit message from CVS:
* gst/playback/gstdecodebin2.c: (connect_element),
(pad_added_group_cb), (gst_decode_group_check_if_blocked),
(sort_end_pads), (gst_decode_group_expose):
Handle dynamic pads within groups.
Sort pads before exposing them in order to make playbin happy.
There still is a race with the multiqueue filling up. This should be
solved separately.
Fixes #398721
2007-02-20 11:20:52 +00:00
Tim-Philipp Müller
a58a6b1854 gst/playback/gstplaybasebin.c: When we have external subtitles and wait for the subtitle decodebin to get up and runn...
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (setup_source):
When we have external subtitles and wait for the subtitle decodebin
to get up and running, we set up a (sync) bus handler for the
subtitle decodebin, so we can stop waiting when it posts an error
message. However, we should do that before we set the subtitle
decodebin's state to playing, otherwise things are racy and we might
miss error messages posted before we had a chance to set up the bus.
This should finally fix totem hanging on .txt pseudo-subtitle files.
2007-02-12 10:33:40 +00:00
Tim-Philipp Müller
12f5dd47ef gst/playback/: Don't error out if there is no fakesink in the READY to NULL state change, since when decodebin is re-...
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (add_fakesink),
(gst_decode_bin_change_state):
* gst/playback/gstdecodebin2.c: (add_fakesink),
(gst_decode_bin_change_state):
Don't error out if there is no fakesink in the READY to NULL state
change, since when decodebin is re-used, we're only adding the
fakesink element in READY to PAUSED.
* tests/check/elements/decodebin.c:
(new_decoded_pad_plug_fakesink_cb), (GST_START_TEST),
(decodebin_suite):
Minimal unit test to make sure we can use the same decodebin
instance twice (at least with audiotestsrc input).
2007-02-09 13:16:27 +00:00
Jan Schmidt
800cd83487 gst/playback/gstplaybin.c: Add audioresample+audioconvert in front of the visualisation element, so that elements lik...
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gen_vis_element):
Add audioresample+audioconvert in front of the visualisation
element, so that elements like libvisual 0.4 that don't support all
samplerates can work.
Fixes: #402505
2007-01-31 15:58:53 +00:00
Tim-Philipp Müller
514c2d7610 gst/playback/gstplaybasebin.c: Take some locks and make a copy of the streaminfo value array we maintain while holdin...
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_property),
(gst_play_base_bin_get_streaminfo_value_array):
Take some locks and make a copy of the streaminfo value array we
maintain while holding the lock, so that the application can
retrieve the stream-info as a value array in a thread-safe way.
2007-01-30 19:19:37 +00:00
Wim Taymans
ce1ff3c94c gst/playback/gstplaybasebin.c: Don't try to disconnect a signal from a finalized object.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (remove_source):
Don't try to disconnect a signal from a finalized object.
2007-01-25 16:02:41 +00:00
Tim-Philipp Müller
af52900954 gst/playback/gstdecodebin2.c: Cast lock macro parameters to make sure we're actually accessing the lock member at the...
Original commit message from CVS:
* gst/playback/gstdecodebin2.c: (gst_decode_bin_dispose):
Cast lock macro parameters to make sure we're actually accessing the
lock member at the right class level. Free list itself in _dispose()
as well and NULL it in case dispose gets called multiple times.
2007-01-25 14:29:21 +00:00
Edward Hervey
a8d29e1f82 gst/playback/gstdecodebin2.c: Free GstDecodeGroups no longer used.
Original commit message from CVS:
* gst/playback/gstdecodebin2.c:
(gst_decode_bin_dispose),(gst_decode_bin_finalize):
Free GstDecodeGroups no longer used.
(gst_decode_group_expose):
Don't unlock too many times !
(deactivate_free_recursive):
Free iterator once we're done with it.
Fix for recursively deactivating elements (stop at ghostpads).
2007-01-25 14:02:37 +00:00
Tim-Philipp Müller
dab1309f32 gst/playback/gstplaybin.c: Fix up caps on the frame buffer before we save it and potentially make it accessible to ot...
Original commit message from CVS:
* gst/playback/gstplaybin.c: (handoff):
Fix up caps on the frame buffer before we save it and potentially
make it accessible to other threads via g_object_get; also use
gst_buffer_replace() instead of gst_mini_object_replace().
2007-01-25 12:24:18 +00:00
Tim-Philipp Müller
d289e2d55c gst/playback/gstplaybin.c: Make getting the current frame thread-safe.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gst_play_bin_get_property):
Make getting the current frame thread-safe.
2007-01-25 12:06:59 +00:00
Edward Hervey
77cf01b76b gst/playback/gstdecodebin2.c: Set queues to bigger sizes to cope with HD contents.
Original commit message from CVS:
* gst/playback/gstdecodebin2.c: (gst_decode_bin_finalize),
(gst_decode_group_new), (gst_decode_group_free):
Set queues to bigger sizes to cope with HD contents.
Fix some mutex freeing and add comment about MT safe methods.
2007-01-25 11:48:10 +00:00
Tim-Philipp Müller
b8d04c8843 gst/playback/gstdecodebin2.c: Don't leak mutex.
Original commit message from CVS:
* gst/playback/gstdecodebin2.c: (gst_decode_bin_finalize):
Don't leak mutex.
* tests/check/elements/playbin.c:
(test_sink_usage_video_only_stream),
(test_suburi_error_unknowntype), (test_suburi_error_invalidfile),
(test_suburi_error_wrongproto), (test_missing_urisource_handler),
(test_missing_suburisource_handler),
(test_missing_primary_decoder), (playbin_suite):
Run all tests once with decodebin and once with decodebin2.
One test does not pass yet with decodebin2.
2007-01-23 17:49:29 +00:00
Edward Hervey
a5146c9037 gst/playback/gstdecodebin2.c: Cleanups.
Original commit message from CVS:
* gst/playback/gstdecodebin2.c: (gst_decode_group_new),
(get_current_group), (group_demuxer_event_probe),
(gst_decode_group_expose), (deactivate_free_recursive),
(gst_decode_group_free):
Cleanups.
Don't forget to emit 'no-more-pads' once a group is exposed.
Cleanup elements from a DecodeGroup once we remove it.
Protect call to gst_decode_group_expose() with the decodebin lock.
2007-01-22 17:37:38 +00:00
Tim-Philipp Müller
acf3bcdfbb gst/playback/gstplaybasebin.c: Attempt at a better error message in case we don't have the required
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (setup_subtitle),
(gen_source_element), (gst_play_base_bin_change_state):
Attempt at a better error message in case we don't have the required
URI handler installed; post missing-plugin message also when we're
missing an URI handler for the subtitle URI; clean up properly also
when an error occurs and we never made it to PAUSED state.
* tests/check/elements/playbin.c: (GST_START_TEST),
(playbin_suite):
Check that we're also getting a missing-plugin messsage for a
missing subtitle URI handler (and clean up properly).
2007-01-19 19:09:05 +00:00
Tim-Philipp Müller
638dbd7b71 gst/playback/gstplaybasebin.c: Plug a few reference leaks.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (analyse_source), (setup_source):
Plug a few reference leaks.
2007-01-19 18:47:30 +00:00
Tim-Philipp Müller
5262208d6e gst/playback/: Let decodebin be the element to post missing-plugin messages for missing decoders (rather than playbin...
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).
2007-01-17 16:11:14 +00:00
Tim-Philipp Müller
9de43e8bc5 gst/playback/gstplaybin.c: Post missing-plugin messages also when we error out because converters, textoverlay or aut...
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).
2007-01-11 13:12:17 +00:00
Wim Taymans
3f147830e1 gst/playback/: Fix the case where we try to ref a NULL element when we delay a link because of unfixed caps.
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.
2007-01-10 16:08:18 +00:00
Tim-Philipp Müller
686ad73bfe gst/playback/: Post missing-plugin messages on the bus for missing sources and missing decoders/demuxers/depayloaders...
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.
2007-01-09 14:33:24 +00:00
Tim-Philipp Müller
4e3fc9611f Printf format and missing argument fixes.
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.
2007-01-05 19:43:55 +00:00
Thomas Vander Stichele
95ada43982 configure.ac: split out GST_CFLAGS into GST_PLUGINS_BASE_CFLAGS and GST_CFLAGS so that GST_BASE_CFLAGS can go inbetwe...
Original commit message from CVS:
* configure.ac:
split out GST_CFLAGS into GST_PLUGINS_BASE_CFLAGS and GST_CFLAGS
so that GST_BASE_CFLAGS can go inbetween them, making sure
we use uninstalled gst-libs headers
* docs/libs/Makefile.am:
* ext/alsa/Makefile.am:
* ext/cdparanoia/Makefile.am:
* ext/gnomevfs/Makefile.am:
* ext/libvisual/Makefile.am:
* ext/ogg/Makefile.am:
* ext/theora/Makefile.am:
* ext/vorbis/Makefile.am:
* gst-libs/gst/audio/Makefile.am:
* gst-libs/gst/cdda/Makefile.am:
* gst-libs/gst/interfaces/Makefile.am:
* gst-libs/gst/riff/Makefile.am:
* gst-libs/gst/rtp/Makefile.am:
* gst-libs/gst/tag/Makefile.am:
* gst/adder/Makefile.am:
* gst/audioconvert/Makefile.am:
* gst/audiorate/Makefile.am:
* gst/audioresample/Makefile.am:
* gst/playback/Makefile.am:
* gst/tcp/Makefile.am:
* gst/videoscale/Makefile.am:
* gst/volume/Makefile.am:
* sys/ximage/Makefile.am:
* sys/xvimage/Makefile.am:
* tests/icles/Makefile.am:
adapt
2007-01-04 12:49:48 +00:00
Tim-Philipp Müller
a4c0d0b8c3 gst/playback/gstdecodebin.c: Special-case the text/plain media type: we only want to recognise it as a 'raw' decoded ...
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.
2006-12-16 13:59:09 +00:00
Tim-Philipp Müller
95f46c1fee gst/playback/: Refuse to change state to READY when we failed to create any of the required elements in our instance ...
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.
2006-12-16 12:22:57 +00:00
Jan Schmidt
35fa7a7fbd gst/playback/gstdecodebin.c: Handle the case where an element has multiple pads with unfixed caps as well as still po...
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.
2006-12-05 12:44:00 +00:00
Wim Taymans
bdd8747c6c gst/playback/gstdecodebin.c: Fix #382223, add more dynamic caps handling.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (close_pad_link):
Fix #382223, add more dynamic caps handling.
2006-12-04 13:02:37 +00:00
Wim Taymans
4c0af72b12 gst/playback/gstplaybasebin.c: Improve debug.
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.
2006-11-28 16:43:18 +00:00
Wim Taymans
0288dceae6 gst/playback/gstplaybasebin.c: Add event probe to see when EOS is in a queue and we can disable the underrun signals....
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.
2006-11-28 16:21:27 +00:00
Edward Hervey
b8423f254c gst/playback/: New decodebin2 element.
Original commit message from CVS:
* gst/playback/Makefile.am:
* gst/playback/gstdecodebin2.c: (gst_decode_bin_get_type),
(_gst_boolean_accumulator), (gst_decode_bin_class_init),
(gst_decode_bin_factory_filter), (compare_ranks), (print_feature),
(gst_decode_bin_init), (gst_decode_bin_dispose),
(gst_decode_bin_finalize), (gst_decode_bin_set_property),
(gst_decode_bin_get_property), (gst_decode_bin_set_caps),
(gst_decode_bin_get_caps), (gst_decode_bin_autoplug_continue),
(gst_decode_bin_autoplug_sort), (analyze_new_pad), (connect_pad),
(connect_element), (expose_pad), (type_found),
(pad_added_group_cb), (pad_removed_group_cb),
(no_more_pads_group_cb), (pad_added_cb), (pad_removed_cb),
(no_more_pads_cb), (find_compatibles), (is_demuxer_element),
(are_raw_caps), (multi_queue_overrun_cb),
(multi_queue_underrun_cb), (gst_decode_group_new),
(get_current_group), (group_demuxer_event_probe),
(gst_decode_group_control_demuxer_pad),
(gst_decode_group_control_source_pad),
(gst_decode_group_check_if_blocked),
(gst_decode_group_check_if_drained), (gst_decode_group_expose),
(gst_decode_group_hide), (gst_decode_group_free),
(gst_decode_group_set_complete), (source_pad_blocked_cb),
(source_pad_event_probe), (gst_decode_pad_new), (add_fakesink),
(remove_fakesink), (find_sink_pad), (gst_decode_bin_change_state),
(plugin_init):
New decodebin2 element.
Closes #370092
* gst/playback/gstplay-marshal.list:
Added marshallers for new signals in decodebin2
* gst/playback/gstplaybasebin.c: (setup_subtitle), (make_decoder):
Use decodebin2 if *and only if* the USE_DECODEBIN2 environment variable
is set.
2006-11-28 14:40:39 +00:00
Wim Taymans
ce6c9ab620 gst/playback/gstplaybasebin.c: Disable rtsp:// uris for the release, it's not good enough yet.
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.
2006-11-28 10:45:40 +00:00
Tim-Philipp Müller
69c8c3adc0 gst/playback/gststreamselector.c: Don't unref a NULL pad.
Original commit message from CVS:
* gst/playback/gststreamselector.c: (gst_stream_selector_dispose):
Don't unref a NULL pad.
2006-11-10 00:52:55 +00:00
Tim-Philipp Müller
453f06075c gst/playback/gstplaybasebin.c: Catch async errors when starting up the subtitle bin, so we can stop waiting and conti...
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.
2006-10-18 12:57:54 +00:00
Tim-Philipp Müller
1e57021ef3 gst/playback/gstplaybin.c: The old pad activation spiel.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (setup_sinks):
The old pad activation spiel.
2006-10-18 09:46:35 +00:00
Tim-Philipp Müller
4e50cce048 gst/playback/gstplaybasebin.c: Don't hang forever if the subbin already fails to start up in the state change to PAUS...
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).
2006-10-18 09:31:49 +00:00
Jan Schmidt
7696cf6acb gst/playback/gstdecodebin.c: Don't return a pad from get_our_ghost_pad unless it is actually the one we want.
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.
2006-10-17 11:34:32 +00:00
Ville Syrjala
9b139e41fb gst-libs/gst/audio/gstbaseaudiosink.c: Don't crash when ringbuffer is not yet created.
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.
2006-10-13 14:15:42 +00:00
Josep Torre Valles
4de10dacb6 ext/gnomevfs/: Fix URI interface implementation return type.
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.
2006-10-10 12:49:03 +00:00
Wim Taymans
4cc39ec809 gst/playback/: Activate dynamic pads before adding them to the element.
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.
2006-10-06 14:37:43 +00:00
Tim-Philipp Müller
9e107d670a Printf format fixes.
Original commit message from CVS:
* ext/alsa/gstalsadeviceprobe.c:
(gst_alsa_device_property_probe_get_values):
* ext/alsa/gstalsasink.c: (set_hwparams):
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_chain_elem_pad),
(gst_ogg_chain_new_stream), (gst_ogg_demux_read_chain):
* ext/ogg/gstoggmux.c: (gst_ogg_mux_send_headers),
(gst_ogg_mux_process_best_pad):
* ext/ogg/gstoggparse.c: (gst_ogg_parse_new_stream),
(gst_ogg_parse_chain):
* ext/ogg/gstogmparse.c: (gst_ogm_parse_stream_header):
* ext/vorbis/vorbisdec.c: (vorbis_handle_data_packet):
* ext/vorbis/vorbisenc.c: (gst_vorbis_enc_setup),
(gst_vorbis_enc_buffer_check_discontinuous):
* ext/vorbis/vorbisparse.c: (vorbis_parse_src_query):
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_render):
* gst-libs/gst/cdda/gstcddabasesrc.c:
(gst_cdda_base_src_handle_track_seek):
* gst-libs/gst/rtp/gstbasertpdepayload.c:
(gst_base_rtp_depayload_push_full):
* gst-libs/gst/rtp/gstbasertppayload.c: (gst_basertppayload_push):
* gst/audioresample/resample.c: (resample_input_pushthrough):
* gst/playback/gstplaybasebin.c: (queue_out_of_data):
* gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_handle_clients):
* gst/typefind/gsttypefindfunctions.c: (mp3_type_find_at_offset),
(wavpack_type_find):
* gst/videotestsrc/gstvideotestsrc.c: (gst_video_test_src_create):
* sys/xvimage/xvimagesink.c: (gst_xvimage_buffer_destroy),
(gst_xvimagesink_check_xshm_calls), (gst_xvimagesink_xvimage_new):
* tests/check/elements/volume.c: (GST_START_TEST):
Printf format fixes.
2006-10-05 15:55:21 +00:00
Jan Schmidt
e2a039a53e gst/playback/gstdecodebin.c: Fix typo in a debug statement.
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.
2006-09-30 15:30:07 +00:00
Wim Taymans
ad4586e590 gst/playback/gstdecodebin.c: Fix compilation.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (no_more_pads):
Fix compilation.
2006-09-29 17:35:01 +00:00
Wim Taymans
a76023b481 gst/playback/gstdecodebin.c: Remove g_print
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (new_caps):
Remove g_print
* gst/playback/gstplaybin.c:
Add some docs.
2006-09-29 16:04:05 +00:00
Wim Taymans
bfc803b0b4 gst/playback/gstplaybasebin.c: Handle invalid URIs a bit more gracefully.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (setup_subtitle),
(gen_source_element):
Handle invalid URIs a bit more gracefully.
2006-09-29 13:46:45 +00:00
Wim Taymans
5ed137a270 gst/playback/gstdecodebin.c: Implement delayed caps linking needed for element with a lot of different caps on the sr...
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).
2006-09-28 15:29:17 +00:00
Tim-Philipp Müller
0c3733c652 gst/playback/gstplaybin.c: Only remove visualisation from visbin if there is a visbin (or: don't throw warnings when ...
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).
2006-09-28 09:41:20 +00:00
Wim Taymans
f5a74b2643 gst/playback/gstdecodebin.c: Cleanups and small leak fixes.
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.
2006-09-25 15:47:25 +00:00
Wim Taymans
5c5edca364 gst/playback/gstplaybin.c: Detect NO_PREROLL state change returns and disable clock distribution to the sinks so that...
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.
2006-09-25 13:24:59 +00:00
Peter Kjellerstedt
8d51f4caf1 gst/playback/test.c: Fix compilation with uClibc and -Werror (#357591).
Original commit message from CVS:
Patch by: Peter Kjellerstedt  <pkj at axis com>
* gst/playback/test.c:
Fix compilation with uClibc and -Werror (#357591).
2006-09-25 11:28:15 +00:00
Wim Taymans
3469171e16 gst/playback/gstplaybasebin.c: Improve buffering a bit by avoiding a deadlock because we cannot assume the underrun i...
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.
2006-09-23 08:53:30 +00:00
Wim Taymans
4c6f5e766a gst/playback/gstplaybasebin.c: Refactor handling of overrun detection.
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.
2006-09-21 07:01:48 +00:00
Tim-Philipp Müller
aeb0afba16 gst/playback/gstplaybasebin.c: Make stream-switching appear instant to the application (ie. make sure that a g_object...
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.
2006-09-17 20:32:09 +00:00
Wim Taymans
102ec386b1 gst/playback/gstplaybasebin.*: Don't use a 0 low watermark when buffering, it is catching starvation way too late. In...
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.
2006-09-15 11:17:02 +00:00
Thomas Vander Stichele
280e2ca67b releasing 0.10.10
Original commit message from CVS:
releasing 0.10.10
2006-09-14 20:09:19 +00:00
Tim-Philipp Müller
8332201367 gst/playback/gstplaybin.c: Improve docs: add section about BUFFERING messages sent by playbin.
Original commit message from CVS:
* gst/playback/gstplaybin.c:
Improve docs: add section about BUFFERING messages sent by playbin.
2006-08-29 10:58:43 +00:00
Tim-Philipp Müller
89ee2ff0c5 Document playbin.
Original commit message from CVS:
* docs/plugins/gst-plugins-base-plugins-docs.sgml:
* docs/plugins/gst-plugins-base-plugins-sections.txt:
* docs/plugins/gst-plugins-base-plugins.args:
* gst/playback/gstplaybin.c:
Document playbin.
* docs/plugins/inspect/plugin-adder.xml:
* docs/plugins/inspect/plugin-alsa.xml:
* docs/plugins/inspect/plugin-audioconvert.xml:
* docs/plugins/inspect/plugin-audiorate.xml:
* docs/plugins/inspect/plugin-audioresample.xml:
* docs/plugins/inspect/plugin-audiotestsrc.xml:
* docs/plugins/inspect/plugin-cdparanoia.xml:
* docs/plugins/inspect/plugin-decodebin.xml:
* docs/plugins/inspect/plugin-ffmpegcolorspace.xml:
* docs/plugins/inspect/plugin-gnomevfs.xml:
* docs/plugins/inspect/plugin-ogg.xml:
* docs/plugins/inspect/plugin-pango.xml:
* docs/plugins/inspect/plugin-playbin.xml:
* docs/plugins/inspect/plugin-subparse.xml:
* docs/plugins/inspect/plugin-tcp.xml:
* docs/plugins/inspect/plugin-theora.xml:
* docs/plugins/inspect/plugin-typefindfunctions.xml:
* docs/plugins/inspect/plugin-video4linux.xml:
* docs/plugins/inspect/plugin-videorate.xml:
* docs/plugins/inspect/plugin-videoscale.xml:
* docs/plugins/inspect/plugin-videotestsrc.xml:
* docs/plugins/inspect/plugin-volume.xml:
* docs/plugins/inspect/plugin-vorbis.xml:
* docs/plugins/inspect/plugin-ximagesink.xml:
* docs/plugins/inspect/plugin-xvimagesink.xml:
Update to CVS version.
2006-08-15 17:21:33 +00:00
Tim-Philipp Müller
44bb02bceb gst/playback/gstplaybin.c: Add "connection-speed" property; re-order redirect messages with multiple redirect locatio...
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).
2006-08-14 17:54:01 +00:00
Tim-Philipp Müller
309d776504 gst/playback/gstplaybin.c: Update max volume to the same value that the volume element uses.
Original commit message from CVS:
* gst/playback/gstplaybin.c:
Update max volume to the same value that the volume element uses.
2006-08-14 11:41:04 +00:00
Tim-Philipp Müller
11f5530766 gst/playback/: Remove GLib-2.6 compatibility cruft.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_property):
* gst/playback/gstplaybin.c: (gst_play_bin_get_property):
Remove GLib-2.6 compatibility cruft.
2006-07-26 10:31:06 +00:00
Wim Taymans
ac162b0f78 gst/playback/test.c: Example of a small audio/video player using decodebin.
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.
2006-07-20 10:42:21 +00:00
Jan Schmidt
435fd24556 gst/playback/gstdecodebin.c: Fix a caps leak when linking (#347304)
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)
2006-07-13 14:38:15 +00:00
Tim-Philipp Müller
089a7c7262 gst/playback/gstdecodebin.c: Also emit 'unknown-type' signal (which should really be called unhandled-type) if we fou...
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.
2006-07-10 14:59:03 +00:00
Tim-Philipp Müller
f1318291ed gst/playback/gstplaybasebin.*: Protect list of elements with a subtitle-encoding property and the subtitle encoding m...
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.
2006-07-06 13:04:24 +00:00
Wim Taymans
361979b83b gst/playback/gstplaybasebin.c: Improve checking if we are dealing with a stream. Added some more uris that need buffe...
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.
2006-07-04 14:06:03 +00:00
Jan Schmidt
91ee7188d7 gst/playback/gstdecodebin.c: Protect remove_fakesink using a mutex, so that we don't try and remove the fakesink simu...
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.
2006-06-23 16:45:50 +00:00
Cody Russell
c10584ed40 gst/: Avoid unnecessary class cast check in class_init functions (#337747).
Original commit message from CVS:
Patch by: Cody Russell <bratsche at gnome org>
* gst/audioresample/gstaudioresample.c:
(gst_audioresample_class_init):
* gst/playback/gststreamselector.c:
(gst_stream_selector_class_init):
* gst/subparse/gstsubparse.c: (gst_sub_parse_class_init):
* gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_class_init):
* gst/tcp/gsttcpclientsink.c: (gst_tcp_client_sink_class_init):
* gst/tcp/gsttcpclientsrc.c: (gst_tcp_client_src_class_init):
* gst/tcp/gsttcpserversink.c: (gst_tcp_server_sink_class_init):
* gst/tcp/gsttcpserversrc.c: (gst_tcp_server_src_class_init):
* gst/videoscale/gstvideoscale.c: (gst_video_scale_class_init):
* gst/videotestsrc/gstvideotestsrc.c:
(gst_video_test_src_class_init):
* gst/volume/gstvolume.c: (gst_volume_class_init):
Avoid unnecessary class cast check in class_init
functions (#337747).
2006-06-22 10:10:51 +00:00
Tim-Philipp Müller
ebfe6f3c6a gst/playback/gststreaminfo.c: Try GST_TAG_CODEC as fallback when extracting the codec name; more debug info.
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.
2006-06-14 14:49:33 +00:00
Wim Taymans
571ba11a3b gst/playback/gstplaybasebin.*: Make the subtitle detection work from any thread so we don't deadlock. Fixes #343397.
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.
2006-06-02 10:34:12 +00:00
Stefan Kost
131fb86b4b Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass
Original commit message from CVS:
* ext/alsa/gstalsamixerelement.h:
* ext/alsa/gstalsamixeroptions.h:
* ext/alsa/gstalsamixertrack.h:
* ext/gnomevfs/gstgnomevfssink.h:
* ext/gnomevfs/gstgnomevfssrc.h:
* ext/theora/gsttheoradec.h:
* ext/theora/gsttheoraenc.h:
* ext/theora/gsttheoraparse.h:
* ext/vorbis/vorbisparse.h:
* gst-libs/gst/audio/gstaudioclock.h:
* gst-libs/gst/audio/gstaudiofilter.h:
* gst-libs/gst/rtp/gstbasertpaudiopayload.h:
* gst/audioconvert/gstaudioconvert.h:
* gst/audioresample/gstaudioresample.h:
* gst/audiotestsrc/gstaudiotestsrc.h:
* gst/ffmpegcolorspace/gstffmpegcolorspace.h:
* gst/playback/gststreamselector.h:
* gst/tcp/gstmultifdsink.h:
* gst/tcp/gsttcpclientsink.h:
* gst/tcp/gsttcpclientsrc.h:
* gst/tcp/gsttcpserversink.h:
* gst/tcp/gsttcpserversrc.h:
* gst/videorate/gstvideorate.h:
* gst/videoscale/gstvideoscale.h:
* gst/videotestsrc/gstvideotestsrc.h:
* gst/volume/gstvolume.h:
* sys/v4l/gstv4ljpegsrc.h:
* sys/v4l/gstv4lmjpegsink.h:
* sys/v4l/gstv4lmjpegsrc.h:
* sys/v4l/gstv4lsrc.h:
* sys/ximage/ximagesink.h:
* sys/xvimage/xvimagesink.h:
* tests/old/testsuite/alsa/sinesrc.h:
Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass
2006-06-01 19:19:51 +00:00
Tim-Philipp Müller
d100e58eea gst/playback/gstplaybasebin.c: Throw a more comprehensible error for rtsp:// URIs (rather than erroring out with a ne...
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.
2006-05-30 19:00:39 +00:00
Young-Ho Cha
e3b4b0a97c gst/playback/gstplaybasebin.*: Add 'subtitle-encoding' property to playbin, so applications can force a subtitle enco...
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).
2006-05-29 13:21:00 +00:00
Jan Schmidt
0d9b638931 gst/playback/gstdecodebin.c: When there is only one unfinished pad and it receives an event that doesn't match our re...
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.
2006-05-25 16:50:17 +00:00
Julien Moutte
2e02bce5f0 gst/playback/gstdecodebin.c: Make decodebin reusable when going from PAUSE_TO_READY and then back to PAUSED.
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.
2006-05-15 17:01:02 +00:00
Sjoerd Simons
c7f353f294 gst/playback/gstplaybasebin.*: API: GstPlayBaseBin::stream-info-value-array property use a more bindings-friendly way...
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
2006-05-11 21:01:05 +00:00
Wim Taymans
03c8d8ae43 gst/playback/gstdecodebin.c: Also catch queue underruns but don't do anything yet.
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.
2006-05-11 19:38:22 +00:00
Tim-Philipp Müller
7cae9d887f gst/playback/gstplaybin.c: Make playbin automatically plug an 'audioresample' element before the audio sink as well. ...
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).
2006-05-11 18:06:18 +00:00
Tim-Philipp Müller
a2bf9eeca8 gst/playback/gstplaybasebin.c: Make http sources send special headers so that we receive icecast metadata if the http...
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).
2006-05-11 16:04:28 +00:00
Tim-Philipp Müller
d8965c30fb Const-ify GEnumValue and GFlagsValue arrays. Use
Original commit message from CVS:
* ext/pango/gsttextoverlay.c: (gst_text_overlay_valign_get_type),
(gst_text_overlay_halign_get_type),
(gst_text_overlay_wrap_mode_get_type):
* ext/theora/theoradec.c: (theora_handle_type_packet),
(theora_handle_data_packet):
* ext/theora/theoraenc.c: (gst_border_mode_get_type),
(theora_enc_sink_setcaps), (theora_enc_chain):
* gst-libs/gst/cdda/gstcddabasesrc.c:
(gst_cdda_base_src_mode_get_type):
* gst/audiotestsrc/gstaudiotestsrc.c:
(gst_audiostestsrc_wave_get_type):
* gst/playback/gststreaminfo.c: (gst_stream_type_get_type):
* gst/tcp/gstfdset.c: (gst_fdset_mode_get_type):
* gst/tcp/gstmultifdsink.c: (gst_recover_policy_get_type),
(gst_sync_method_get_type), (gst_unit_type_get_type),
(gst_client_status_get_type):
* gst/videoscale/gstvideoscale.c:
(gst_video_scale_method_get_type):
* gst/videotestsrc/gstvideotestsrc.c:
(gst_video_test_src_pattern_get_type):
* gst/videotestsrc/videotestsrc.c: (paint_setup_I420),
(paint_setup_YV12), (paint_setup_YUY2), (paint_setup_UYVY),
(paint_setup_YVYU), (paint_setup_IYU2), (paint_setup_Y41B),
(paint_setup_Y42B), (paint_setup_Y800), (paint_setup_YVU9),
(paint_setup_YUV9), (paint_setup_RGB888), (paint_setup_BGR888),
(paint_setup_RGB565), (paint_setup_xRGB1555):
Const-ify GEnumValue and GFlagsValue arrays. Use
GST_ROUND_UP_* macros instead of home-made ones.
2006-05-09 19:24:46 +00:00
Wim Taymans
d612f665ce gst/playback/gstdecodebin.c: Properly remove ghostpads. Fixes #340392
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (cleanup_decodebin):
Properly remove ghostpads. Fixes #340392
2006-05-05 11:33:37 +00:00
Stefan Kost
868984b414 gst/playback/: free cpas using gst_caps_unref, don't leak caps-strings
Original commit message from CVS:
* gst/playback/gstplaybin.c: (add_sink):
* gst/playback/test.c: (main):
* gst/playback/test5.c: (dump_element_stats):
* gst/playback/test6.c: (main):
free cpas using gst_caps_unref, don't leak caps-strings
2006-05-02 18:15:25 +00:00
Thomas Vander Stichele
e5cbf3654b exit needs stdlib.h
Original commit message from CVS:
exit needs stdlib.h
2006-04-29 01:18:05 +00:00
Stefan Kost
e972defd3e make GstElementDetails const
Original commit message from CVS:
* ext/alsa/gstalsamixerelement.c:
* ext/alsa/gstalsasrc.c:
* ext/cdparanoia/gstcdparanoiasrc.c:
* ext/gnomevfs/gstgnomevfssink.c:
* ext/gnomevfs/gstgnomevfssrc.c:
* ext/ogg/gstoggdemux.c:
* ext/ogg/gstoggmux.c:
* ext/ogg/gstoggparse.c:
* ext/ogg/gstogmparse.c:
* ext/pango/gstclockoverlay.c:
* ext/pango/gsttextoverlay.c:
* ext/pango/gsttextrender.c:
* ext/pango/gsttimeoverlay.c:
* ext/theora/theoradec.c:
* ext/theora/theoraenc.c:
* ext/vorbis/vorbisdec.c:
* ext/vorbis/vorbisenc.c:
* gst-libs/gst/audio/gstaudiofilter.c:
* gst-libs/gst/audio/gstaudiofiltertemplate.c:
* gst/audioconvert/gstaudioconvert.c:
* gst/audiorate/gstaudiorate.c:
* gst/audioresample/gstaudioresample.c:
* gst/audiotestsrc/gstaudiotestsrc.c:
* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
* gst/playback/gstdecodebin.c:
* gst/playback/gstplaybin.c:
* gst/playback/gststreamselector.c:
* gst/subparse/gstsubparse.c:
* gst/tcp/gstmultifdsink.c:
* gst/tcp/gsttcpclientsink.c:
* gst/tcp/gsttcpclientsrc.c:
* gst/tcp/gsttcpserversink.c:
* gst/tcp/gsttcpserversrc.c:
* gst/typefind/gsttypefindfunctions.c: (plugin_init):
* gst/videorate/gstvideorate.c:
* gst/videoscale/gstvideoscale.c:
* gst/videotestsrc/gstvideotestsrc.c:
* gst/volume/gstvolume.c:
* sys/v4l/gstv4ljpegsrc.c:
* sys/v4l/gstv4lmjpegsink.c:
* sys/v4l/gstv4lmjpegsrc.c:
* sys/v4l/gstv4lsrc.c:
* sys/ximage/ximagesink.c:
* sys/xvimage/xvimagesink.c:
* tests/check/libs/cddabasesrc.c:
make GstElementDetails const
2006-04-28 19:46:37 +00:00
Jan Schmidt
b00641404a gst/playback/gststreamselector.c: Restore old StreamSelector behaviour.
Original commit message from CVS:

Patch by: Jan Schmidt

* gst/playback/gststreamselector.c:
(gst_stream_selector_bufferalloc):
Restore old StreamSelector behaviour.
Fixes #338419.
2006-04-22 21:12:52 +00:00
Tim-Philipp Müller
77208215d6 gst/playback/gststreamselector.c: Don't leak pad name.
Original commit message from CVS:
* gst/playback/gststreamselector.c:
(gst_stream_selector_get_property):
Don't leak pad name.
2006-04-11 10:45:32 +00:00
Stefan Kost
0afac375b4 Fix #337365 (g_type_class_ref <-> g_type_class_peek_parent)
Original commit message from CVS:
* ext/alsa/gstalsamixeroptions.c:
(gst_alsa_mixer_options_class_init):
* ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_class_init):
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_class_init):
* ext/ogg/gstoggmux.c: (gst_ogg_mux_class_init):
* ext/ogg/gstoggparse.c: (gst_ogg_parse_class_init):
* gst-libs/gst/audio/gstaudioclock.c: (gst_audio_clock_class_init):
* gst-libs/gst/audio/gstaudiofilter.c:
(gst_audio_filter_class_init):
* gst-libs/gst/audio/gstaudiosink.c:
(gst_audioringbuffer_class_init):
* gst-libs/gst/audio/gstaudiosrc.c:
(gst_audioringbuffer_class_init):
* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_class_init):
* gst-libs/gst/interfaces/colorbalancechannel.c:
(gst_color_balance_channel_class_init):
* gst-libs/gst/interfaces/mixeroptions.c:
(gst_mixer_options_class_init):
* gst-libs/gst/interfaces/mixertrack.c:
(gst_mixer_track_class_init):
* gst-libs/gst/interfaces/tunerchannel.c:
(gst_tuner_channel_class_init):
* gst-libs/gst/interfaces/tunernorm.c: (gst_tuner_norm_class_init):
* gst-libs/gst/netbuffer/gstnetbuffer.c:
(gst_netbuffer_class_init):
* gst-libs/gst/rtp/gstbasertppayload.c:
(gst_basertppayload_class_init):
* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init):
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init):
* gst/playback/gstplaybin.c: (gst_play_bin_class_init):
* gst/playback/gststreaminfo.c: (gst_stream_info_class_init):
* gst/playback/gststreamselector.c:
(gst_stream_selector_class_init):
* gst/subparse/gstsubparse.c: (gst_sub_parse_class_init):
* gst/tcp/gsttcpclientsink.c: (gst_tcp_client_sink_class_init):
* sys/v4l/gstv4lcolorbalance.c:
(gst_v4l_color_balance_channel_class_init):
* sys/v4l/gstv4ljpegsrc.c: (gst_v4ljpegsrc_class_init):
* sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_class_init):
* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_class_init):
* sys/v4l/gstv4ltuner.c: (gst_v4l_tuner_channel_class_init),
(gst_v4l_tuner_norm_class_init):
* sys/ximage/ximagesink.c: (gst_ximagesink_class_init):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_class_init):
* tests/old/testsuite/alsa/sinesrc.c: (sinesrc_class_init):
Fix #337365 (g_type_class_ref <-> g_type_class_peek_parent)
2006-04-08 21:02:53 +00:00
Stefan Kost
1a2642a1d2 Fix broken GObject macros
Original commit message from CVS:
* ext/pango/gsttextrender.h:
* gst-libs/gst/audio/gstaudiosink.h:
* gst-libs/gst/audio/gstaudiosrc.h:
* gst-libs/gst/audio/gstbaseaudiosink.h:
* gst-libs/gst/audio/gstbaseaudiosrc.h:
* gst-libs/gst/audio/gstringbuffer.h:
* gst-libs/gst/rtp/gstbasertpdepayload.h:
* gst-libs/gst/rtp/gstbasertppayload.h:
* gst-libs/gst/video/gstvideofilter.h:
* gst-libs/gst/video/gstvideosink.h:
* gst/playback/gstplaybasebin.h:
* gst/tcp/gstmultifdsink.h:
* sys/v4l/gstv4lelement.h:
Fix broken GObject macros
2006-04-08 18:09:17 +00:00
Jan Schmidt
1b8dd847b1 gst/playback/gstplaybasebin.c: Clean up our group elements properly in the case where it never got committed - it sti...
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.
2006-04-07 17:18:11 +00:00
Jan Schmidt
67dac71e6c gst/playback/gstplaybasebin.c: Don't remove our mute-probe if someone else already did so.
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.
2006-04-07 09:51:35 +00:00
Tim-Philipp Müller
6eef85d9f7 gst/playback/gstplaybin.c: Error out gracefully when we can't create any of the usual conversion elements for some re...
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.
2006-03-28 13:13:43 +00:00
Tim-Philipp Müller
ec53ce9691 gst/playback/gstplaybasebin.c: Don't post RESOURCE_NOT_FOUND error when we can't find a source element for a particul...
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).
2006-03-28 10:21:52 +00:00
Stefan Kost
2d826700fa Add docs for adder, use GST_ELEMENT_DETAILS macro, define GstElementDetails at the top
Original commit message from CVS:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-base-plugins-docs.sgml:
* docs/plugins/gst-plugins-base-plugins-sections.txt:
* ext/cdparanoia/gstcdparanoiasrc.c:
* ext/gnomevfs/gstgnomevfssink.c: (gst_gnome_vfs_sink_base_init),
(gst_gnome_vfs_sink_class_init):
* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_base_init):
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_base_init):
* ext/ogg/gstoggmux.c:
* ext/ogg/gstoggparse.c: (gst_ogg_parse_base_init):
* ext/ogg/gstogmparse.c: (gst_ogm_audio_parse_base_init),
(gst_ogm_video_parse_base_init), (gst_ogm_text_parse_base_init):
* ext/pango/gsttextoverlay.c:
* ext/pango/gsttextrender.c:
* ext/theora/theoradec.c:
* ext/theora/theoraenc.c:
* ext/vorbis/vorbisdec.c:
* ext/vorbis/vorbisenc.c:
* gst-libs/gst/audio/gstaudiofilter.c:
(gst_audio_filter_base_init):
* gst-libs/gst/audio/gstaudiofiltertemplate.c:
(gst_audio_filter_template_base_init):
* gst/adder/gstadder.c: (gst_adder_get_type):
* gst/adder/gstadder.h:
* gst/audioconvert/gstaudioconvert.c:
* gst/audiotestsrc/gstaudiotestsrc.c:
(gst_audiostestsrc_wave_get_type), (gst_audio_test_src_class_init),
(gst_audio_test_src_create):
* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
* gst/playback/gstdecodebin.c:
* gst/playback/gstplaybin.c:
* gst/playback/gststreamselector.c:
(gst_stream_selector_base_init):
* gst/subparse/gstsubparse.c: (gst_sub_parse_base_init):
* gst/volume/gstvolume.c:
* sys/v4l/gstv4lmjpegsink.c:
* sys/v4l/gstv4lmjpegsrc.c:
* tests/check/libs/cddabasesrc.c:
* tests/old/examples/gob/gst-identity2.gob:
Add docs for adder, use GST_ELEMENT_DETAILS macro,
define GstElementDetails at the top
2006-03-24 10:42:11 +00:00
Edward Hervey
8f194ed848 gcc 4.1 unreferenced pointer fixes.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_dispose):
* gst/playback/gstplaybin.c: (handoff):
* gst/playback/gststreamselector.c:
(gst_stream_selector_set_property):
gcc 4.1 unreferenced pointer fixes.
* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_put):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_put):
gst_buffer_ref() now takes a GstBuffer*.
2006-03-21 14:26:01 +00:00
Jan Schmidt
2caf3a5639 gst/playback/gststreamselector.c: Preserve the existing buggy streamselector behaviour by performing a fallback buffe...
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.
2006-03-16 10:22:27 +00:00
Jan Schmidt
28bf221806 ext/alsa/gstalsasink.c: Chain up to the parent finalize method.
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.
2006-03-15 17:59:05 +00:00
Tim-Philipp Müller
577ded7b53 ext/gnomevfs/gstgnomevfssrc.c: Don't send EOS event here, the base class will send one for us.
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.
2006-02-21 12:16:16 +00:00
Julien Moutte
6f9edeac69 gst/playback/gstdecodebin.c: Make decodebin reusable by fixing remove_element_chain first and then introduce a cleane...
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)
------------------------------------------------------
2006-02-20 15:57:51 +00:00
Tim-Philipp Müller
67e0a285c4 gst/playback/gstdecodebin.c: That should be text/x-pango-markup, not text/x-pango-layout.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (mimetype_is_raw):
That should be text/x-pango-markup, not text/x-pango-layout.
2006-02-19 14:09:40 +00:00
Julien Moutte
1993f0dfaf gst/playback/gstdecodebin.c: pango layout should be considered as row.
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.
2006-02-19 00:40:38 +00:00
Julien Moutte
3491deae9c gst/playback/gststreaminfo.*: Introduce language informations.
Original commit message from CVS:
2006-02-19  Julien MOUTTE  <julien@moutte.net>

* gst/playback/gststreaminfo.c: (gst_stream_type_get_type),
(cb_probe):
* gst/playback/gststreaminfo.h: Introduce language informations.
2006-02-19 00:25:16 +00:00
Julien Moutte
3281418028 ext/pango/gsttextoverlay.c: Refactoring of textoverlay without collectpads. This now supports sparse subtitles coming...
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.
2006-02-18 19:10:35 +00:00
Wim Taymans
8ad81db4b8 gst/playback/gstplaybin.c: Update vis bin docs.
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.
2006-02-13 15:59:48 +00:00
Edward Hervey
50951316a5 gst/playback/gstplaybasebin.c: Remove stray semi-colon (fixes #330888).
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (prepare_output):
Remove stray semi-colon (fixes #330888).
2006-02-12 14:26:55 +00:00
Tim-Philipp Müller
bd323373ad gst/playback/gstplaybasebin.c: Don't print the URI as part of the error message, it makes error dialogs look rather u...
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.
2006-02-07 14:57:46 +00:00
Tim-Philipp Müller
8c46daa929 gst/playback/gstplaybasebin.c: Error out if we have only text or subtitles, but nothing else. Also error out if we ha...
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.
2006-02-07 13:11:31 +00:00
Julien Moutte
189cd30822 gst/playback/gstplaybin.c: Fix broken code refactoring.
Original commit message from CVS:
2006-02-05  Julien MOUTTE  <julien@moutte.net>

* gst/playback/gstplaybin.c: (gen_text_element): Fix broken code
refactoring.
2006-02-05 12:06:25 +00:00