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-libs/gst/audio/gstringbuffer.c:
(gst_ring_buffer_samples_done), (gst_ring_buffer_commit),
(gst_ring_buffer_read):
Early morning compilation fix.
Original commit message from CVS:
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support),
(gst_xvimagesink_get_times):
change colorkey behaviour back according to #354773 comment 6/7
Original commit message from CVS:
* gst/tcp/gstmultifdsink.c: (gst_sync_method_get_type),
(gst_multi_fd_sink_class_init), (get_buffers_max), (find_limits),
(gst_multi_fd_sink_recover_client),
(gst_multi_fd_sink_queue_buffer), (gst_multi_fd_sink_set_property),
(gst_multi_fd_sink_get_property):
* gst/tcp/gstmultifdsink.h:
Implement stubbed out properties unit-type, units-soft-max,
units-max, to allow specifying maximum sizes in units other than
buffers.
Fixes#355935
Original commit message from CVS:
* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps),
(gst_riff_create_audio_template_caps):
Reorder the audio formats a bit for clarity.
Detect and create caps for MSGSM and MSN (WAV49).
Fixes#356596.
* sys/xvimage/xvimagesink.c: (gst_xvimage_buffer_destroy),
(gst_xvimagesink_check_xshm_calls), (gst_xvimagesink_xvimage_new),
(gst_xvimagesink_get_xv_support), (gst_xvimagesink_show_frame):
Small cleanups, move error handling out of normal flow for clarity.
Original commit message from CVS:
* gst/videotestsrc/gstvideotestsrc.c:
Use G_UNLIKELY in _create and log one more detail.
(gst_video_test_src_get_times), (gst_video_test_src_create):
* sys/ximage/ximagesink.c: (gst_ximagesink_get_times):
Use gst_util_uint64_scale_int in _get_times().
Original commit message from CVS:
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support),
(gst_xvimagesink_get_times):
xvimage assumed that XV_COLORKEY can be set in RGB888 format (fixes
#354773), use gst_util_uint64_scale_int in _get_times()
Original commit message from CVS:
* ext/ogg/gstoggmux.c: (gst_ogg_mux_push_buffer):
Timestamps are unsigned; comparision against GST_CLOCK_TIME_NONE was
always true, leading to dropping all timestamps.
Original commit message from CVS:
* ext/libvisual/visual.c: (gst_vis_src_negotiate),
(gst_visual_chain), (gst_visual_change_state):
update to work also with libvisual 0.4 API
* tools/gst-launch-ext.1.in:
* tools/gst-visualise.1.in:
remove references to old man-pages
* tests/examples/seek/seek.c: (main):
add real meadi-buttons, add tool-tips for the seek-options, arrange
seek options in a table
Original commit message from CVS:
* ext/ogg/gstoggmux.c: (gst_ogg_mux_clear),
(gst_ogg_mux_push_buffer):
Don't generate out-of-order timestamps from oggmux, instead clamp
output timestamps to be >= the previously output ts.
Fixes#355595
Original commit message from CVS:
* gst/tcp/gstmultifdsink.c: (gst_sync_method_get_type),
(gst_multi_fd_sink_class_init):
Updates, fixes, and typo corrections for multifdsink. No functional
changes.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (ogganx_type_find):
Don't crash on truncated files - check that we got an 8 byte buffer
before trying to memcmp it.
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:
* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_find_master_mixer),
(gst_alsa_mixer_ensure_track_list):
Try harder to guess which mixer track is the master mixer
track (instead of just taking the first one that has a pvolume).
Fixes#342228.
Original commit message from CVS:
* gst/audioconvert/gstaudioconvert.c: (set_structure_widths),
(gst_audio_convert_transform_caps):
Get structure-name just once.
Original commit message from CVS:
* ext/gnomevfs/gstgnomevfssrc.c:
Add docs about icydemux usage in connection with gnomevfssrc
* ext/libvisual/visual.c:
* ext/ogg/gstoggaviparse.c:
* ext/ogg/gstoggdemux.c:
* ext/ogg/gstoggmux.c:
* ext/ogg/gstoggparse.c:
* gst-libs/gst/audio/gstaudiofiltertemplate.c:
* gst-libs/gst/audio/gstaudiosink.c:
* gst-libs/gst/audio/gstaudiosrc.c:
* gst/audiorate/gstaudiorate.c:
More G_OBJECT macro fixing.
* gst/audiotestsrc/gstaudiotestsrc.h:
Fix wrong info in header due to copy & paste
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_get_time), (gst_base_audio_sink_callback):
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_get_time), (gst_base_audio_src_fixate),
(gst_base_audio_src_get_times), (gst_base_audio_src_get_offset),
(gst_base_audio_src_create), (gst_base_audio_src_change_state):
Do the delay calculation in the source/sink base classes as this is
specific for the capture/playback mode.
Try to fixate a bit better, like round depth up to a multiple of 8
bigger than width.
Handle underruns correctly by marking DISCONT on buffers and adjusting
timestamps to handle the gap.
Set offset/offset_end correctly on buffers.
* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_pause),
(gst_ring_buffer_samples_done), (gst_ring_buffer_commit),
(gst_ring_buffer_read):
Remove resync and underrun recovery from the ringbuffer.
Fix ringbuffer read code on under/overrun.
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:
* configure.ac:
We require 0.10.10.1 now because of _wait_preroll().
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_render):
Use gst_base_sink_wait_preroll().
Original commit message from CVS:
* ext/alsa/gstalsasink.c: (xrun_recovery), (gst_alsasink_write):
* ext/alsa/gstalsasrc.c: (xrun_recovery), (gst_alsasrc_read):
Use DEBUG_OBJECT more.
Original commit message from CVS:
patch by: Michael Smith <msmith at fluendo dot com>
* gst/tcp/gstmultifdsink.c: (is_sync_frame),
(gst_multi_fd_sink_client_queue_buffer),
(gst_multi_fd_sink_new_client):
* tests/check/elements/multifdsink.c: (GST_START_TEST),
(multifdsink_suite):
Fix implementation of sync-method 'next-keyframe'
Original commit message from CVS:
patch by: Wim Taymans <wim at fluendo dot com>
* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_start):
This patch removes the RANDOM flag that was incorrectly introduced with
revision 1.91. Fixes#354590
Original commit message from CVS:
Patch by: James Livingston <doclivingston at gmail.com>
* tests/check/Makefile.am:
* tests/check/pipelines/.cvsignore:
* tests/check/pipelines/oggmux.c: (get_page_codec),
(check_chain_final_state), (fail_if_audio), (validate_ogg_page),
(eos_buffer_probe), (start_pipeline), (stop_pipeline), (eos_watch),
(test_pipeline), (test_vorbis), (test_theora), (test_vorbis_theora),
(test_theora_vorbis), (oggmux_suite):
Add simple unit test for oggmux from #337026 with checking for the
EOS flags disabled for the time being.
Original commit message from CVS:
* tests/check/elements/videotestsrc.c: (check_rgb_buf):
Returning a return value often helps. In this case, we
don't need the return value anyway, so just get rid of it.
Should make build bots much happier.
Original commit message from CVS:
* gst/videotestsrc/videotestsrc.c: (paintinfo_find_by_structure),
(paint_get_structure), (gst_video_test_src_get_size),
(gst_video_test_src_smpte), (gst_video_test_src_snow),
(gst_video_test_src_unicolor), (paint_setup_AYUV),
(paint_hline_AYUV), (paint_setup_ARGB8888), (paint_setup_ABGR8888),
(paint_setup_RGBA8888), (paint_setup_BGRA8888), (paint_hline_str4):
* gst/videotestsrc/videotestsrc.h:
Add support for AYUV and the various RGBA formats. Initialise
fields of paintinfo structs allocated on the stack.
* tests/check/elements/videotestsrc.c: (right_shift_colour),
(fix_expected_colour), (check_rgb_buf), (got_buf_cb),
(GST_START_TEST), (videotestsrc_suite):
Add unit tests for videotestsrc's RGB output.
Original commit message from CVS:
* gst/adder/gstadder.c: (forward_event_func),
(gst_adder_src_event), (gst_adder_collected),
(gst_adder_change_state):
* gst/adder/gstadder.h:
Remember the start position asked in the incoming seeks, so we can
output GST_EVENT_NEW_SEGMENT with a correct position value (instead
of assuming it will always be 0).
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_init),
(gst_ogg_demux_finalize), (gst_ogg_demux_perform_seek),
(gst_ogg_demux_loop):
Send the GST_EVENT_NEW_SEGMENT from the streaming thread.
Original commit message from CVS:
* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
(gst_ffmpegcsp_get_unit_size):
Return FALSE instead of returning a random false unit
size when the format isn't known/supported (even if
this shouldn't happen under normal circumstances).
Original commit message from CVS:
Patch by: Tim-Philipp Müller <tim at centricular dot net>
* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_create),
(gst_gnome_vfs_src_start):
Try harder to get the size from a uri by using _info_uri() when
_info_from_handle() does not give us enough info.
Also follow symlinks when getting the size.
Partially Fixes#332864.
Original commit message from CVS:
Patch by: Viktor Peters <viktor dot peters at gmail dot com>
* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_ensure_track_list),
(gst_alsa_mixer_update), (gst_alsa_mixer_get_volume),
(gst_alsa_mixer_set_volume), (gst_alsa_mixer_set_mute),
(gst_alsa_mixer_set_record):
* ext/alsa/gstalsamixertrack.c:
(gst_alsa_mixer_track_update_alsa_capabilities),
(alsa_track_has_cap), (gst_alsa_mixer_track_new),
(gst_alsa_mixer_track_update):
* ext/alsa/gstalsamixertrack.h:
Improve and fix mixer track handling, in particular better handling
of alsa's pvolume/pswitch/cvolume/cswitch capabilities; create separate
track objects for tracks that have both capture and playback volume
(and label them differently as well so they're not mistakenly
assumed to be duplicates); classify mixer tracks that only affect
the audible volume of something (rather than the capture volume)
as playback tracks. Redefine/fix meaning of RECORD and MUTE flags
for capture tracks to correspond to alsa-pswitch alsa-cswitch
(following the meaning documented in the mixer interface header
file); add support for alsa's exclusive cswitch groups; update/sync
state/flags better if mixer settings are changed by another
application. Fixes#336075.
Original commit message from CVS:
* ext/vorbis/vorbisenc.c: (gst_vorbis_enc_push_buffer),
(gst_vorbis_enc_buffer_check_discontinuous),
(gst_vorbis_enc_chain):
Ignore explicit DISCONT marked on buffers (which is often spurious,
particularly when using multiple segments), in favour of solely
using the timestamps/durations.
Original commit message from CVS:
* gst/audiorate/gstaudiorate.c: (gst_audio_rate_chain):
Don't rely on incoming buffers offset anymore, since it is completely
broken when using multiple segments.
Instead convert the incoming buffers timestamp to running time, and
then convert that value to the offsets.
Also inform GstSegment of the last outputted stop position, which is
needed if we received several segments with an unknown stop value.
Original commit message from CVS:
* gst/audiorate/gstaudiorate.c: (gst_audio_rate_sink_event),
(gst_audio_rate_chain):
Make the metadata of the buffer writable before changing its
flags.