Original commit message from CVS:
2006-01-26 Julien MOUTTE <julien@moutte.net>
* gst/playback/gstplaybin.c: (gst_play_bin_init),
(gst_play_bin_dispose), (gst_play_bin_vis_unblocked),
(gst_play_bin_vis_blocked), (gst_play_bin_set_property):
On the fly visualisation switch, works disabling, enabling as
well but it won't be able to enable vis in a playbin that was
created with no visualisation.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_init),
(free_pad_probes), (remove_fakesink), (pad_probe),
(close_pad_link), (gst_decode_bin_change_state):
Replace GstPadBlockCallback with pad probes that detect
first buffer AND eos before removing fakesink.
Fixes hang with demuxers doing EOS while pre-rolling.
Solves #328279
Original commit message from CVS:
* gst/playback/gststreaminfo.c: (gst_stream_info_set_mute):
* gst/playback/gststreamselector.c:
(gst_stream_selector_set_property):
Comment out broken code that connects to the state-changed signal.
At this point, changing current stream selection is broken, but
stuff like gst-launch playbin current-audio=1 works and filters
to the chosen stream.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (setup_source):
Fix playback for sources that emit raw audio or
raw video streams (e.g.: cd audio sources) (#325984).
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (group_destroy),
(probe_triggered), (new_decoded_pad), (mute_group_type),
(set_active_source):
* gst/playback/gststreaminfo.c: (gst_stream_info_set_mute):
* gst/playback/gststreamselector.c:
(gst_stream_selector_base_init),
(gst_stream_selector_set_property),
(gst_stream_selector_request_new_pad):
Reenable stream selection. These mechanisms need a complete overhaul
in the face of 0.8->0.10 changes though.
Original commit message from CVS:
* gst/audiorate/gstaudiorate.c: (gst_audio_rate_chain),
(gst_audio_rate_change_state), (plugin_init):
Add debugging category.
Fix type issues.
Add case for incoming buffers without valid offset/offset_end.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gen_audio_element):
Don't leak an autoaudiosink/alsasink when we generate
a new audio element. (old code, I guess)
Original commit message from CVS:
* gst/audiorate/gstaudiorate.c: (gst_audio_rate_setcaps):
Support float audio in audiorate.
Use width rather than depth for selecting sample width.
Original commit message from CVS:
* gst/videotestsrc/videotestsrc.h:
Use GLib types here (that way we don't have to include the
generated _stdint.h header, which makes life easier for win32
folks that don't use autotools for the build) (#325990, patch
by: Sergey Scobich).
Original commit message from CVS:
* gst/audioresample/resample.h:
Declare struct _ResampleState.buffer as unsigned char *, not void *,
since we do arithmetic on it.
Original commit message from CVS:
* configure.ac:
* gst/volume/Makefile.am:
* gst/volume/demo.c:
move old example to tests/examples/volume/volune.c
* tests/examples/Makefile.am:
* tests/examples/seek/seek.c: (main):
change window-close event from "delete-event" to "destroy"
* tests/examples/volume/Makefile.am:
* tests/examples/volume/volume.c: (value_changed_callback),
(setup_gui), (message_received), (eos_message_received), (main):
fix event handling and bus usage
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (new_pad):
Fix non-C89 variable declaration not at the start of a block. Should
help some compilers.
Original commit message from CVS:
* gst/videotestsrc/gstvideotestsrc.c:
(gst_video_test_src_class_init), (gst_video_test_src_start):
Add start method to reset running time and number of frames sent
when starting up (fixes#324696; patch by: Michal Benes).
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_deactivate_current_chain),
(gst_ogg_demux_activate_chain):
Extra debug output when activating/deactivating chains.
* gst/playback/gstdecodebin.c: (gst_decode_bin_factory_filter),
(is_demuxer_element), (try_to_link_1), (remove_element_chain),
(unlinked):
Remove a queue from our list when it becomes unlinked.
Don't add queues to elements in class 'Demux' if they
can only produce one pad
Original commit message from CVS:
* ext/libvisual/visual.c: (make_valid_name):
change some char* into char[]
* gst/audiotestsrc/gstaudiotestsrc.c:
(gst_audio_test_src_class_init), (gst_audio_test_src_do_seek),
(gst_audio_test_src_create):
* gst/audiotestsrc/gstaudiotestsrc.h:
prepare to handle EOS and SEGMENT_DONE
Original commit message from CVS:
* gst/tcp/gsttcp.c:
* gst/tcp/gsttcpclientsink.c:
* gst/tcp/gsttcpserversink.c:
* gst/tcp/gsttcpserversrc.c:
Add <string.h> includes for memset and FD_ZERO (fixes#323878;
patch by: Benjamin Pineau).
Original commit message from CVS:
* gst/videorate/gstvideorate.c: (gst_video_rate_blank_data),
(gst_video_rate_chain):
Fix timestamping for videorate when the first buffer it sees has a
non-zero timestamp. Fix some misleading debug output.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c:
* gst/playback/gstplaybin.c: (handoff):
Make sure the video frame buffer we return to apps via the
"frame" property always has caps set on it. Modify
_gst_gvalue_set_object() macro to handle NULL objects
gracefully too.
Original commit message from CVS:
* gst/audiotestsrc/gstaudiotestsrc.c:
(gst_audio_test_src_class_init), (gst_audio_test_src_init),
(gst_audio_test_src_setcaps), (gst_audio_test_src_src_query),
(gst_audio_test_src_do_seek), (gst_audio_test_src_is_seekable),
(gst_audio_test_src_create):
* gst/audiotestsrc/gstaudiotestsrc.h:
Adjust to some recent api changes and add wtays new cool seeking
capabillities
Original commit message from CVS:
* gst/subparse/gstsubparse.c: (gst_sub_parse_init),
(gst_sub_parse_do_seek), (gst_sub_parse_src_event), (parse_subrip),
(parser_state_init), (handle_buffer), (gst_sub_parse_chain),
(gst_sub_parse_sink_event), (gst_sub_parse_change_state):
Implement some sort of event handling that doesn't rely on
g_return_if_fail; make sure we always push the last chunk of an
.srt out when we receive an EOS; use gst_pad_alloc_buffer; fix
state change function; remove some old cruft. Seeking is still
rather unlikely to work though.
* tools/.cvsignore:
Ignore more.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_property):
* gst/playback/gstplaybin.c: (gst_play_bin_get_property):
Work around refcount problem with g_value_set_object() that occur
if the core has been compiled against GLib-2.6 (g_value_set_object()
will only g_object_ref() the element, but the caller will
gst_object_unref() it and bad things will happen due to the way
GstObjects are refcounted in the GLib-2.6 case). Fixes problems with
totem for people on FC4 using Thomas's 0.10 RPMs.
Original commit message from CVS:
* gst/playback/gststreamselector.c: (gst_stream_selector_chain):
3rd time's the charm. Correct ref-counting for discarded buffers.
Original commit message from CVS:
* gst/playback/gststreamselector.c:
(gst_stream_selector_class_init), (gst_stream_selector_init),
(gst_stream_selector_dispose), (gst_stream_selector_set_property),
(gst_stream_selector_get_property),
(gst_stream_selector_get_linked_pad),
(gst_stream_selector_request_new_pad), (gst_stream_selector_chain):
* gst/playback/gststreamselector.h:
Add the active-pad property for playbin to use shortly. Ignore buffers
from any other pad, returning GST_FLOW_NOT_LINKED
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_init),
(try_to_link_1), (queue_filled_cb):
Better use of the queues. Start with a small size queue and only increase
the size of the queues when the other queues are empty.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (group_commit), (probe_triggered):
* gst/playback/gstplaybasebin.h:
Prepare to handle errors betters.
* gst/playback/gstplaybin.c: (add_sink), (setup_sinks):
Set sinks to PAUSED first before adding and linking them so that
we don't interrupt dataflow.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init),
(gst_decode_bin_init), (close_pad_link), (try_to_link_1):
Remove unused properties, and add queues between demuxers and decoders
so that a lot more files can preroll properly.
Original commit message from CVS:
* gst-libs/gst/net/Makefile.am:
* gst-libs/gst/rtp/Makefile.am:
* gst-libs/gst/tag/Makefile.am:
remove silly include
* gst/tags/Makefile.am:
* gst/tags/gsttagediting.c:
* gst/tags/gsttageditingprivate.h:
* gst/tags/tagedit.vcproj:
remove directory, is as good as empty
Original commit message from CVS:
* gst/audiorate/gstaudiorate.c: (gst_audiorate_chain):
Properly return GstFlowReturn from gst_pad_push in chain functions.
Original commit message from CVS:
2005-11-24 Andy Wingo <wingo@pobox.com>
* gst/tcp/gstmultifdsink.c (gst_multifdsink_handle_client_write):
Be threadsafe.
Original commit message from CVS:
* gst/videorate/gstvideorate.c: (gst_videorate_chain):
* gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_create):
Use utility method for scaling clocktime for fractional framerates.
Original commit message from CVS:
* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
(gst_ffmpeg_pixfmt_to_caps), (gst_ffmpeg_caps_to_pixfmt):
* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
(gst_ffmpegcsp_caps_remove_format_info):
* gst/ffmpegcolorspace/imgconvert.c:
* gst/ffmpegcolorspace/imgconvert_template.h:
Forward-port fixes from the 0.8 branch (patch by Luca Ognibene,
#318353); use gst_structure_has_name().
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (mp3_type_find),
(mpeg2_sys_type_find), (mpeg1_sys_type_find),
(mpeg_video_type_find), (mpeg_video_stream_type_find):
Terminate vararg functions with NULL instead of 0 to
make gcc4 happy.
Original commit message from CVS:
2005-11-21 Andy Wingo <wingo@pobox.com>
* gst/playback/gstplaybin.c (gen_audio_element)
(gen_video_element): Use the new MISSING_PLUGIN core error
category.
Original commit message from CVS:
* ext/ogg/gstoggmux.c: (gst_ogg_mux_init),
(gst_ogg_mux_request_new_pad), (gst_ogg_mux_queue_pads),
(gst_ogg_mux_clear_collectpads), (gst_ogg_mux_change_state):
* gst/adder/gstadder.c: (gst_adder_init),
(gst_adder_request_new_pad), (gst_adder_collected),
(gst_adder_change_state):
Update for gst_collectpads_foo() to gst_collect_pads_foo()
API change.
Original commit message from CVS:
* gst-libs/gst/tag/Makefile.am:
* gst-libs/gst/tag/gstvorbistag.c:
(gst_tag_list_to_vorbiscomment_buffer):
Remove obsolete vorbistag element and debug category.
* gst/playback/gstplaybasebin.c: (check_queue):
Don't divide by 0 when queue-threshold is 0.
* sys/ximage/ximagesink.c: (gst_ximagesink_set_property):
Don't modify an existing pixel-aspect-ratio if we fail to read
a new one.
Original commit message from CVS:
2005-11-18 Julien MOUTTE <julien@moutte.net>
* gst/videoscale/gstvideoscale.c: (gst_videoscale_class_init),
(gst_videoscale_fixate_caps): Introduce back caps fixate with
handling of PAR.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_init):
Unsetting IS_SINK flag from the fakesink, so decodebin
never behaves as a sink.
Original commit message from CVS:
* gst/tcp/gstmultifdsink.c: (gst_multifdsink_client_queue_data),
(gst_multifdsink_render):
Don't leak GDP headers when using GDP mode (i.e. tcpserversink).
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gen_audio_element):
Use autoaudiosink, it tends to be more widely available than
autoaudiiosink.
Original commit message from CVS:
2005-11-14 Andy Wingo <wingo@pobox.com>
* gst/playback/gstplaybin.c (gen_audio_element): Use autoaudiosink
as well if it is available. Fixes#316442.
Original commit message from CVS:
* gst/videotestsrc/gstvideotestsrc.c:
(gst_videotestsrc_class_init), (gst_videotestsrc_init),
(gst_videotestsrc_src_fixate):
move fixation to a fixate function
remove negotiate function, basesrc's is good enough
fixes a bug for check when using the element alone
Original commit message from CVS:
* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
(gst_ffmpeg_get_palette), (gst_ffmpeg_set_palette),
(gst_ffmpegcsp_avpicture_fill):
* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
(gst_ffmpegcsp_get_unit_size), (gst_ffmpegcsp_transform):
Make palettes work again (see #132341). Use our own macros
for rounding up.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (group_commit), (new_decoded_pad),
(setup_substreams), (set_active_source):
Unlock GROUP_LOCK in failure cases, so that we don't deadlock when
trying to go to NULL if we failed to read a file.
Original commit message from CVS:
* gst/audiotestsrc/gstaudiotestsrc.c:
(gst_audiotestsrc_class_init), (gst_audiotestsrc_get_times),
(gst_audiotestsrc_create):
* gst/sine/gstsinesrc.c: (gst_sinesrc_class_init),
(gst_sinesrc_get_times), (gst_sinesrc_create):
* gst/videotestsrc/gstvideotestsrc.c:
(gst_videotestsrc_class_init), (gst_videotestsrc_get_times),
(gst_videotestsrc_create):
The base class can now sync for us.
Original commit message from CVS:
* gst/sine/gstsinesrc.c: (gst_sinesrc_class_init),
(gst_sinesrc_get_query_types), (gst_sinesrc_src_query),
(gst_sinesrc_newsegment):
Send newsegment event in TIME format, set duration if
num-buffers is set, fix duration querying.
Original commit message from CVS:
Reviewed by: Tim-Philipp Müller <tim at centricular dot net>
* gst/volume/gstvolume.c: (volume_set_caps):
Fix compilation on Solaris with Forte. (#320923)
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_init),
(gst_decode_bin_dispose), (free_dynamics), (remove_fakesink),
(pad_blocked), (close_pad_link), (new_pad), (no_more_pads):
Handle the case where a pad_block failed.
Original commit message from CVS:
* gst-libs/gst/audio/gstringbuffer.h:
Don't break ABI.
* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
(gst_ffmpeg_caps_to_pixfmt):
* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
(gst_ffmpegcsp_set_caps):
Some more comments.
Handle missing required caps fields better.
Original commit message from CVS:
* gst/adder/gstadder.c: (gst_adder_query), (gst_adder_collected),
(gst_adder_change_state):
Fix timestamps and fix deadlock when stopping the collectpads.
Original commit message from CVS:
* gst/audioconvert/audioconvert.c: (audio_convert_clean_context):
When clearing an audioconvert context, set tmpbufsize to zero, so
we'll allocate it again later if required.
This fixes audioconvert re-negotiating formats, which previously
segfaulted with a NULL destination buffer.
Original commit message from CVS:
2005-10-24 Julien MOUTTE <julien@moutte.net>
* gst-libs/gst/video/video.h:
* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support):
And
here comes my change on caps for framerate and geometry range.
We are now accepting 1 to MAXINT for width and height, and from
0.0 to MAXDOUBLE for framerate. That allows duration less png
frames
to be blended correctly in videomixer.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_init),
(gst_decode_bin_dispose), (free_dynamics), (pad_unblocked),
(pad_blocked), (close_pad_link), (new_pad):
Don't try to remove elements twice.
Original commit message from CVS:
* ext/vorbis/vorbisenc.c: (gst_vorbisenc_get_query_types),
(gst_vorbisenc_src_query):
Implement position and duration queries.
* gst/playback/test3.c: (update_scale), (main):
Fix for async state changes and print nicer output.
Original commit message from CVS:
* gst/audiotestsrc/gstaudiotestsrc.c: (gst_audiotestsrc_src_query):
* gst/sine/gstsinesrc.c: (gst_sinesrc_src_query):
Don't use functions for position queries when handling
duration queries.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (group_destroy),
(gst_play_base_bin_change_state):
Fix leak.
Handle case where playbasebin is now ASYNC because
decodebin is.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (utf8_type_find),
(xml_check_first_element), (xml_type_find), (smil_type_find),
(plugin_init):
Add typefinding for SMIL and for generic XML. Based on patch by
Akos Maroy (#308663).
Original commit message from CVS:
2005-10-17 Andy Wingo <wingo@pobox.com>
* gst/tcp/gstmultifdsink.c: Convert to use the boilerplate macro.
* gst/tcp/gsttcp.c (gst_tcp_socket_read): Comment update.
Original commit message from CVS:
2005-10-17 Julien MOUTTE <julien@moutte.net>
* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
(gst_ffmpegcsp_get_unit_size): We are asked to compute a buffer
size
from caps, let's use the caps...
Original commit message from CVS:
2005-10-16 Andy Wingo <wingo@pobox.com>
* gst/playback/gstdecodebin.c
(gst_element_set_state_like_a_crazy_man): New kraaaaaaazy
function!
(try_to_link_1): Increase kraziness level.
Original commit message from CVS:
- Don't use non-portable LL suffix on constants, since MSVC doesn't allow
them. These constants all fit into ints anyway.
- Continue to hate nano.
Original commit message from CVS:
* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_commit),
(gst_ring_buffer_read), (gst_ring_buffer_clear):
Don't assert on normal stuff.
* gst/playback/gstplaybin.c: (do_playbin_seek):
API fix.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gst_play_bin_send_event_to_sink),
(do_playbin_seek), (gst_play_bin_send_event):
Override send_event differently, so that we can takes bits of
functionality from GstPipeline (special handling for seeks,
including pausing/resuming, and resetting stream time) and
still get
the appropriate behaviour of only forwarding event to a single
sink,
rather than all of them.
Unfortunately requires a lot of code duplication, but the
alternatives are equally ugly in the end.
Original commit message from CVS:
* gst/audioconvert/audioconvert.h:
* gst/audioconvert/gstchannelmix.c: (gst_channel_mix_unset_matrix),
(gst_channel_mix_setup_matrix), (gst_channel_mix_mix):
Alloc temp storage somewhere else where we can do it more
portable.
Original commit message from CVS:
* gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_create),
(gst_tcpserversrc_start):
Don't block in accept while doing the state change, move
to poll and make cancellable.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (wavpack_type_find),
(plugin_init):
Add wavpack and spc typefind functions from 0.8 branch.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (tar_type_find),
(ar_type_find), (msdos_type_find), (plugin_init):
Add typefind functions for tar archives, ar archives,
RAR archives, and msdos-executables (dlls, exe, etc.).
Some of those would be wrongly identified as mpeg
streams of some sort before (#315550).
Original commit message from CVS:
* gst/adder/gstadder.c: (gst_adder_query), (gst_adder_class_init),
(gst_adder_init), (gst_adder_request_new_pad),
(gst_adder_change_state):
Add query function to source pad, so adder reports the correct
time/sample position when queried (#315457); fix state change
function; use GST_DEBUG_FUNCPTR() for pad functions.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (utf8_type_find):
Fix leaks in typefind registration
Clean up the gratuitous commenting and whitespacing a little
Original commit message from CVS:
* gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init),
(gst_multifdsink_finalize), (multifdsink_hash_remove),
(gst_multifdsink_stop):
Fix crasher when going to NULL multiple times.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (group_destroy),
(gen_preroll_element), (remove_groups), (setup_source):
* gst/playback/gstplaybin.c: (remove_sinks), (add_sink),
(setup_sinks), (gst_play_bin_send_event),
(gst_play_bin_change_state):
Set state to NULL before removing from bin. Fix refcounting.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gst_play_bin_send_event):
Correct refcounting in send_event() function. Previously was wrong
if the first sink was unable to handle the event.
Original commit message from CVS:
2005-10-03 Andy Wingo <wingo@pobox.com>
* gst/playback/gstdecodebin.c (try_to_link_1)
(remove_element_chain): set element to NULL before removing it.
Original commit message from CVS:
2005-09-28 Andy Wingo <wingo@pobox.com>
* gst/videotestsrc/gstvideotestsrc.c: Implement live source mode
and unlocking.
Original commit message from CVS:
2005-09-28 Andy Wingo <wingo@pobox.com>
* gst/tcp/gsttcpclientsink.c (gst_tcpclientsink_base_init):
Actually add the pad template.
(gst_tcpclientsink_get_type): We're a base sink. Woot, works.
* gst/tcp/gsttcpserversrc.c: Go ahead and fix up serversrc while
I'm at it...
Original commit message from CVS:
2005-09-28 Andy Wingo <wingo@pobox.com>
* gst/tcp/gsttcpclientsrc.c: Make interruptable -- code stolen
from fdsrc. Get caps in create() instead of start() so it can be
interrupted. Interruption somewhat untested.
* gst/tcp/gsttcp.c (gst_tcp_read_buffer, gst_tcp_socket_read):
Proper EOS handling.
Original commit message from CVS:
2005-09-27 Andy Wingo <wingo@pobox.com>
* gst/tcp/gsttcpserversrc.c:
* gst/tcp/gsttcpclientsrc.c: Updated for new gsttcp API.
* gst/tcp/gsttcp.h:
* gst/tcp/gsttcp.c (gst_tcp_read_buffer): New function, factored
out of tcpclientsrc.c. Cancellable.
(gst_tcp_socket_read): Made private, cancellable, with better
diagnostics. Also the FIONREAD ioctl takes a int*, not a size_t*.
(gst_tcp_gdp_read_buffer): Made cancellable, actually returns the
whole buffer, and better diagnostics.
(gst_tcp_gdp_read_caps): Same.
* gst/sine/gstsinesrc.c (gst_sinesrc_wait): Add the base time.
Original commit message from CVS:
2005-09-26 Andy Wingo <wingo@pobox.com>
* gst/sine/gstsinesrc.h:
* gst/sine/gstsinesrc.c: Refactor, remove the table lookup code,
change the 'sync' property to 'is-live' and implement it halfway,
update for controller api change.
* gst/volume/gstvolume.c (volume_transform_ip): Update for
controller api change.
Original commit message from CVS:
* gst/audioresample/Makefile.am:
* gst/audioresample/debug.h:
* gst/audioresample/gstaudioresample.c:
* gst/audioresample/resample.c: Convert to using gst debugging
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gst_play_bin_class_init),
(gst_play_bin_send_event):
Only seek on one sink, the first one that succeeds.
Original commit message from CVS:
2005-09-21 Andy Wingo <wingo@pobox.com>
* gst/playback/gstplaybasebin.c: Attempt to fix up buffer probe
thingies.
* gst/playback/gstdecodebin.c (gst_decode_bin_dispose): Dispose
can be called multiple times, dogs.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: free plugin list correctly
* gst/playback/gstplaybin.c: emit warning if autovideosink
and autoaudiosink can't be found (instead of segfaulting)
Original commit message from CVS:
* check/generic/states.c:
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_typefind):
* gst/playback/gstdecodebin.c: (gst_decode_bin_init):
Fixes for changes in registry API.
* configure.ac: Only export gst_plugins_desc. Add -no-undefined
to GST_PLUGIN_LDFLAGS.
* ext/libvisual/visual.c: Make the library shut up.
* gst-libs/gst/audio/audio.c: Don't define a plugin in a library.
* gst-libs/gst/audio/gstaudiofilter.c: same
Original commit message from CVS:
* gst/audioconvert/Makefile.am:
Audioconvert derives from GstBaseTransform and should
link to the library with our base elements to avoid
unresolved symbols. Makes things work with MinGW (#316160)
* gst/playback/test4.c: (main):
Fix MinGW build problem and use g_usleep() instead of
sleep() (#316162)
Original commit message from CVS:
* gst/audioconvert/audioconvert.c: (float),
(audio_convert_prepare_context), (audio_convert_convert):
* gst/audioconvert/audioconvert.h:
Cleanups, speedups, simplifications, added back support
for 24 bits.
Original commit message from CVS:
* check/Makefile.am:
* check/pipelines/simple_launch_lines.c: (setup_pipeline),
(run_pipeline), (GST_START_TEST), (simple_launch_lines_suite):
Add extra tests for basetransform based components.
Comment out the test_element_negotiation test until we decide
if it's testing correct behaviour.
* ext/libvisual/visual.c: (gst_visual_init), (get_buffer),
(gst_visual_chain), (gst_visual_change_state):
Slightly more correct but still bogus timestamping.
Fix state change function.
* gst/audioconvert/gstaudioconvert.c:
(gst_audio_convert_class_init):
* gst/audioresample/gstaudioresample.c:
* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
(gst_ffmpegcsp_class_init):
* gst/videoscale/gstvideoscale.c: (gst_videoscale_class_init),
(gst_videoscale_prepare_size), (gst_videoscale_set_caps),
(gst_videoscale_prepare_image):
* gst/volume/gstvolume.c: (gst_volume_class_init),
(volume_transform_ip):
Basetransform updates. Enable passthrough modes.
* sys/ximage/ximagesink.c: (gst_ximage_buffer_init),
(gst_ximagesink_renegotiate_size), (gst_ximagesink_xcontext_get),
(gst_ximagesink_setcaps), (gst_ximagesink_buffer_alloc):
Negotiation fix that allows the window to return to the original
size and renegotiate passthrough upstream. Extra debug output.
Original commit message from CVS:
* configure.ac:
In the output at the end, don't show the first plugin on the same
line as "Core plug-ins, always built:".
Indent the output as for other plugin categories
* gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_create):
#define that can be used to not use peer buffer_alloc functions for
test purposes.
* sys/ximage/ximagesink.c: (gst_ximage_buffer_init),
(gst_ximage_buffer_get_type), (gst_ximagesink_ximage_new),
(gst_ximagesink_show_frame):
* sys/xvimage/xvimagesink.c: (gst_xvimage_buffer_init),
(gst_xvimage_buffer_get_type), (gst_xvimagesink_setcaps),
(gst_xvimagesink_show_frame):
Error case handling fixes. gst-launch fakesrc ! x[v]imagesink now
fails gracefully instead of XError aborting or deadlocking.
Original commit message from CVS:
* gst/volume/gstvolume.c: (gst_volume_class_init),
(volume_transform):
do not update controlled params, if buffer has no timestamp
Original commit message from CVS:
* configure.ac:
* gst/sine/Makefile.am:
* gst/volume/Makefile.am:
controllerized elements also need to link against controller-libs ;)
Original commit message from CVS:
reviewed by: <delete if not using a buddy>
* docs/libs/tmpl/gstcolorbalance.sgml:
* docs/libs/tmpl/gstgconf.sgml:
* docs/libs/tmpl/gstmixer.sgml:
* docs/libs/tmpl/gstringbuffer.sgml:
* gst/sine/gstsinesrc.c: (gst_sinesrc_class_init),
(gst_sinesrc_create):
* gst/volume/gstvolume.c: (gst_volume_class_init),
(volume_transform):
controllerized two audio plugins
Original commit message from CVS:
* gst/audioconvert/audioconvert.c: (if), (float),
(audio_convert_get_func_index), (check_default),
(audio_convert_clean_fmt), (audio_convert_prepare_context),
(audio_convert_clean_context), (audio_convert_get_sizes),
(audio_convert_convert):
More elegant and working temp buffer selection algo.
Original commit message from CVS:
* gst/audioconvert/audioconvert.c: (if), (float),
(audio_convert_get_func_index), (check_default),
(audio_convert_clean_fmt), (audio_convert_prepare_context),
(audio_convert_clean_context), (audio_convert_get_sizes),
(get_temp_buffer), (audio_convert_convert):
Use realloc else we lose our original data.
Original commit message from CVS:
* check/Makefile.am:
* check/elements/audioconvert.c: (setup_audioconvert),
(cleanup_audioconvert), (get_int_caps), (verify_convert),
(GST_START_TEST), (audioconvert_suite), (main):
add a test for audioconvert
* gst/audioresample/gstaudioresample.c:
* gst/audioresample/gstaudioresample.h:
set DURATION so that TIMESTAMP(a) + DURATION(a) == TIMESTAMP(b);
note that for buffers of 1/3 sec this means DURATION(c) is
one nanosecond more than for a and b
Original commit message from CVS:
* gst/audioresample/debug.c:
* gst/audioresample/gstaudioresample.c:
add room for extra overlap samples when asked to transform size
protect against possible mem corruption and check for discrepancies
between written size and outbuffer's size so we can warn for
potential problems
* gst/audioresample/resample.c: (resample_init),
(resample_get_output_size_for_input), (resample_get_output_size),
(resample_set_n_channels), (resample_set_format):
set debug level based on RESAMPLE_DEBUG env var
make sure that get_output_size* returns a whole number of
sample_size
set sample_size each time either channel or format is set
* gst/audioresample/resample_chunk.c: (resample_scale_chunk):
* gst/audioresample/resample_functable.c:
(resample_scale_functable):
* gst/audioresample/resample_ref.c: (resample_scale_ref):
remove r->sample_size, it's done in resample.c now
add some debugging to the ref implementation
make sure we only give back bytes that are wholes of the sample
size
Original commit message from CVS:
* check/Makefile.am:
* configure.ac:
add core's plugins to the mix so that playbin works
* check/generic/states.c: (GST_START_TEST):
set a 0 timeout on pipelines, so they don't force the next
state change
* gst/playback/gstplaybasebin.c: (setup_source), (prepare_output),
(gst_play_base_bin_change_state):
remove the crappy error handling and do GST error handling
Original commit message from CVS:
* gst/videoscale/gstvideoscale.c: (gst_videoscale_init),
(gst_videoscale_prepare_size), (parse_caps),
(gst_videoscale_set_caps), (gst_videoscale_get_size),
(gst_videoscale_prepare_image), (gst_videoscale_transform_ip),
(gst_videoscale_transform):
* gst/videoscale/gstvideoscale.h:
Refactor, make use of BaseTranform really well.
Original commit message from CVS:
* check/Makefile.am:
Add CHECK_CFLAGS and LDFLAGS
* gst/playback/gstplaybasebin.c: (fill_buffer):
GST_MESSAGE_SRC became a GObject
Original commit message from CVS:
* gst/playback/gstplaybin.c: (remove_sinks):
Remove visualization from parent explicitely; works around some
apparent refcount issue that I haven't tracked down yet.
Original commit message from CVS:
* common/gtk-doc-plugins.mak:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-base-plugins-docs.sgml:
* docs/plugins/gst-plugins-base-plugins-sections.txt:
renamed to actual element names, so much nicer to look at
* docs/plugins/tmpl/gstmultifdsink.sgml:
remove
* docs/plugins/tmpl/multifdsink.sgml:
* docs/plugins/tmpl/tcpserversink.sgml:
add
* ext/alsa/gstalsa.c:
* ext/cdparanoia/gstcdparanoia.c: (cdparanoia_get_property):
* ext/ogg/gstoggmux.c:
* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_chain):
* gst/playback/gstdecodebin.c:
* gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init):
* gst/tcp/gsttcpserversink.c:
various fixes and documentation additions
Original commit message from CVS:
2005-08-04 Andy Wingo <wingo@pobox.com>
* gst/videoscale/gstvideoscale.c (gst_videoscale_get_size):
* gst/ffmpegcolorspace/gstffmpegcolorspace.c
(gst_ffmpegcsp_get_size): Adapt to API changes.
* gst/videoscale/gstvideoscale.c (gst_videoscale_transform_ip):
Implement an in-place do-nothing transform.
Original commit message from CVS:
* configure.ac:
When testing for X libs, use the X CFlags
* gst/adder/gstadder.c: (gst_adder_change_state):
Stop the collectpads before calling parent state change function
on PAUSED->READY, otherwise we deadlock deactivating pads.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gen_video_element),
(gen_audio_element):
Switch to auto*sink elements as default sinks; add volume element
so that volume control in totem works.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gen_preroll_element):
* gst/playback/gstplaybin.c: (setup_sinks),
(gst_play_bin_change_state):
Refcount fix and more comments.
Original commit message from CVS:
2005-07-20 Andy Wingo <wingo@pobox.com>
* gst/videoscale/vs_image.c (vs_image_scale_nearest_YUYV): Typo
fix (?), fixes a seggie mcfalterson (#310894).
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (fill_buffer):
Use _new_custom() so we can set custom message types for buffering
messages.
Original commit message from CVS:
* gst/tcp/gstfdset.c: (gst_fdset_free):
* gst/tcp/gstmultifdsink.c: (gst_multifdsink_init),
(gst_multifdsink_add), (gst_multifdsink_remove),
(gst_multifdsink_clear), (gst_multifdsink_get_stats),
(gst_multifdsink_remove_client_link),
(gst_multifdsink_client_queue_data),
(gst_multifdsink_client_queue_caps),
(gst_multifdsink_client_queue_buffer),
(gst_multifdsink_queue_buffer), (gst_multifdsink_handle_clients),
(gst_multifdsink_stop):
* gst/tcp/gstmultifdsink.h:
0.8 backporting.
* sys/ximage/ximagesink.c: (gst_ximagesink_show_frame):
Also draw image when not from a pool.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (check_queue), (probe_triggered),
(mute_stream), (silence_stream):
Small debug additions.
Original commit message from CVS:
make GST_PLUGIN_LDFLAGS only be flags; GST_LIBS should be
added manually to each Makefile.am so we are sure it goes
*last* and doesn't add -L flags before linking in libs of our
own, like, say, internal .la libs, that then accidentally pick
up the installed copy.
Original commit message from CVS:
* ext/theora/theoradec.c: (theora_dec_src_getcaps),
(theora_dec_push), (theora_handle_data_packet):
Prepare for better timestamp fix later.
* gst/audioconvert/gstaudioconvert.c:
List most accurate caps first
* gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_loop):
Use proper pad task function.
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new),
(gst_xvimagesink_show_frame):
Fix deadlock when alloc failed.
Original commit message from CVS:
2005-07-05 Andy Wingo <wingo@pobox.com>
* gst/playback/gstplaybasebin.c (fill_buffer):
message_new_application fixen.
x
Original commit message from CVS:
2005-07-04 Andy Wingo <wingo@pobox.com>
* gst/audioconvert/gstaudioconvert.c (gst_audio_convert_fixate):
No refcount leakage.
Original commit message from CVS:
2005-07-01 Andy Wingo <wingo@pobox.com>
* ext/theora/theoradec.c (theora_dec_src_getcaps): Implement a
getcaps to do explicit caps. Needs to be done in all decoders,
possibly via a base class.
* configure.ac (GST_PLUGIN_LDFLAGS): Add videoscale.
* ext/ogg/gstoggdemux.c (gst_ogg_pad_typefind): No need to set
caps on the sink pad, just rely on the pad template. Also, setting
ANY caps on a pad is not valid because the caps are not fixed.
* sys/ximage/ximagesink.c (gst_ximagesink_buffer_alloc): Set the
caps on the buffer, and get the width from the desired_caps if
they're set.
(gst_ximagesink_renegotiate_size): Implement via setting the
desired_caps on the ximagesink.
(gst_ximagesink_setcaps): Only reset the width of the player if it
wasn't already set. Not sure if this is right.
(gst_ximagesink_show_frame): Memcpy only for normal buffers.
* sys/ximage/ximagesink.h (desired_caps): New field, is the caps
that the user wants. NULL unless the window has been resized.
* gst/volume/gstvolume.c (volume_transform): Adapt to
basetransform refcount changes.
Original commit message from CVS:
2005-07-01 Andy Wingo <wingo@pobox.com>
* gst/videoscale/gstvideoscale.c:
* gst/videoscale/gstvideoscale.h: Clean up, port to 0.9. Derives
from BaseTransform, implements a transform_caps. Removed dead code
including some PAR stuff that was never reached -- should probably
be added back somehow.
Original commit message from CVS:
2005-06-27 Andy Wingo <wingo@pobox.com>
* gst/videotestsrc/gstvideotestsrc.c
(gst_videotestsrc_activate_push): Activation API changes.
* gst/playback/gstdecodebin.c (gst_decode_bin_change_state)
(gst_decode_bin_dispose): Free dynamics in READY->NULL, because
they have refs on the decodebin.
* ext/ogg/gstoggdemux.c (gst_ogg_pad_class_init): Ref the right
parent class.
(gst_ogg_pad_typefind): Don't leak a pad ref.
(gst_ogg_chain_new_stream): gst_object_unref, not g_object_unref.
(gst_ogg_demux_sink_activate, gst_ogg_demux_sink_activate_push)
(gst_ogg_demux_sink_activate_pull): Changes for activation API.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init):
2nd argument of 'unknow-type' signal is a GstCaps and not a
GstMiniObject
Original commit message from CVS:
2005-06-25 Jan Schmidt <thaytan@mad.scientist.com>
* gst-libs/gst/audio/gstaudiosink.c: (gst_audioringbuffer_acquire):
Set the worker thread's running flag to TRUE before starting the
thread.
* gst/playback/gstdecodebin.c: (gst_decode_bin_init):
Catch a failure to add typefind to the bin.
Original commit message from CVS:
* gst/videorate/gstvideorate.c: (gst_videorate_transformcaps),
(gst_videorate_getcaps), (gst_videorate_setcaps),
(gst_videorate_event), (gst_videorate_chain):
Fixed videorate, fixating an already fixated caps is not
an error.
Original commit message from CVS:
2005-06-02 Andy Wingo <wingo@pobox.com>
* pkgconfig/gstreamer-libs-uninstalled.pc.in (prefix):
* pkgconfig/gstreamer-libs.pc.in (prefix): Add gst/tag to the -L
list.
* gst/playback/gstdecodebin.c (gst_decode_bin_dispose): Don't
remove the typefind, the bin dispose will do it for us. When it's
removed and unreffed, the signal handler will be disconnected,
too.
(unlinked): It's too difficult to disconnect from unlinked
handlers, as they are on pads not elements. Just punt if the pads
aren't grandkids of the bin.
Original commit message from CVS:
* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
(gst_ffmpegcsp_getcaps), (gst_ffmpegcsp_configure_context),
(gst_ffmpegcsp_setcaps), (gst_ffmpegcsp_bufferalloc),
(gst_ffmpegcsp_chain), (gst_ffmpegcsp_change_state):
No need to take the STREAM lock anymore.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (probe_triggered):
Fix missing unlock.
* gst/playback/gstplaybin.c: (add_sink):
First add, then link (otherwise pad link fails).
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gen_preroll_element):
Increase buffer for video, decrease buffer for other media types.
* gst/playback/gstplaybin.c: (gen_video_element),
(gen_audio_element):
Change names for debugging purposes.
Original commit message from CVS:
* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
(gst_ffmpegcsp_getcaps), (gst_ffmpegcsp_configure_context),
(gst_ffmpegcsp_setcaps), (gst_ffmpegcsp_bufferalloc),
(gst_ffmpegcsp_chain):
Enable buffer alloc passthrough if the source and dest
formats are the same.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
(fill_buffer), (check_queue), (queue_threshold_reached),
(queue_out_of_data):
* gst/playback/gstplaybasebin.h:
Post buffer-fullness on the bus.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_type),
(gst_play_base_bin_class_init), (gst_play_base_bin_finalize),
(get_active_group), (get_building_group), (group_destroy),
(group_commit), (check_queue), (queue_overrun),
(queue_threshold_reached), (queue_out_of_data),
(gen_preroll_element), (remove_groups), (unknown_type),
(add_element_stream), (no_more_pads), (probe_triggered),
(preroll_unlinked), (new_decoded_pad), (setup_subtitle),
(setup_substreams), (setup_source), (finish_source),
(prepare_output), (muted_group_change_state),
(gst_play_base_bin_set_property), (gst_play_base_bin_get_property),
(gst_play_base_bin_change_state):
* gst/playback/gstplaybasebin.h:
* gst/playback/gstplaybin.c: (gst_play_bin_class_init),
(gst_play_bin_init), (gst_play_bin_set_property),
(gen_video_element), (gen_text_element), (gen_audio_element),
(gen_vis_element), (remove_sinks), (add_sink), (setup_sinks),
(gst_play_bin_change_state):
* gst/playback/gststreaminfo.c: (gst_stream_info_class_init),
(cb_probe), (gst_stream_info_new), (gst_stream_info_dispose),
(stream_info_change_state), (gst_stream_info_set_mute),
(gst_stream_info_get_property):
* gst/playback/gststreaminfo.h:
* gst/playback/gststreamselector.c: (gst_stream_selector_init),
(gst_stream_selector_get_linked_pad),
(gst_stream_selector_getcaps),
(gst_stream_selector_get_linked_pads),
(gst_stream_selector_request_new_pad), (gst_stream_selector_chain):
* gst/playback/gststreamselector.h:
Rough port of playbin. Needs some more work, but is mostly done,
and uses a few locks in important places, which should make stuff
like chain-switches clean. Still uses GST_STATE() in a few places,
which isn't all that good an idea, subtitles/elements disabled
because no elements to test with and thus probably broken, query
and event handling moved to GstBin, internal thread removed
alltogether because the pipeline does that for us now. Can play
Ogg/Vorbis files. Haven't tested anything else yet.
Original commit message from CVS:
* ext/vorbis/vorbisdec.c (vorbis_handle_comment_packet): Post a
message to the bus with the tags. Still not sent downstream tho.
* gst/playback/gstdecodebin.c (remove_element_chain): Unref after
get_parent.
(remove_element_chain): Use OBJECT_PARENT instead of get_parent to
avoid refcounting hassles.
Original commit message from CVS:
2005-05-09 Andy Wingo <wingo@pobox.com>
* gst/volume/Makefile.am:
* gst/volume/demo.c
* gst/volume/gstvolume.h
* gst/volume/gstvolume.c: Port to 0.9 API, derive from
basetransform. Probably need an audio filter base class.
Original commit message from CVS:
* ext/vorbis/vorbisenc.c: (gst_vorbisenc_sink_setcaps),
(gst_vorbisenc_src_query), (gst_vorbisenc_sink_query),
(gst_vorbisenc_set_header_on_caps), (gst_vorbisenc_sink_event),
(gst_vorbisenc_chain):
* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_chain),
(gst_audio_convert_caps_remove_format_info),
(gst_audio_convert_getcaps), (gst_audio_convert_setcaps),
(gst_audio_convert_fixate), (gst_audio_convert_channels):
Make caps writable before writing to it.
Fix negotiation in audioconvert some more.
Original commit message from CVS:
* gst/videorate/gstvideorate.c: (gst_videorate_class_init),
(gst_videorate_getcaps), (gst_videorate_setcaps),
(gst_videorate_blank_data), (gst_videorate_init),
(gst_videorate_event), (gst_videorate_chain),
(gst_videorate_change_state):
Port videorate, do a better job at negotiation while we're at
it.
Original commit message from CVS:
* configure.ac: Require liboil.
* gst/videotestsrc/gstvideotestsrc.c: Fix up liboil calls, add
a few more.
* gst/videotestsrc/videotestsrc.c:
* gst/videotestsrc/videotestsrc.h:
Original commit message from CVS:
* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
(gst_ffmpegcsp_getcaps), (gst_ffmpegcsp_configure_context),
(gst_ffmpegcsp_setcaps), (gst_ffmpegcsp_chain):
Well, unreffing a buffer right before pushing it is asking
for trouble..
Original commit message from CVS:
2005-05-05 Andy Wingo <wingo@pobox.com>
* gst/audiorate/gstaudiorate.c (gst_audiorate_class_init): Pacify
GObject.
* configure.ac: Return audiorate and subparse from the ghetto.
Re-enable -Wall -Werror.
* gst/subparse/gstsubparse.c:
* gst/subparse/gstsubparse.h: Port to 0.9. Can operate loop-based
or chain-based. Cleaned up a bit. Not tested.
Original commit message from CVS:
* gst/adder/Makefile.am:
* gst/adder/gstadder.c: (gst_adder_setcaps),
(gst_adder_class_init), (gst_adder_init),
(gst_adder_request_new_pad), (gst_adder_collected),
(gst_adder_change_state):
* gst/adder/gstadder.h:
Ported adder as an example of a mixer element using
collect pads. Needs more negotiation work.
Original commit message from CVS:
* examples/dynparams/Makefile.am: Move demo-dparams from gst/sine
to examples/dynparams. Examples do not belong interspersed with
source code.
* examples/dynparams/demo-dparams.c:
* gst/sine/Makefile.am:
* gst/sine/demo-dparams.c:
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_factory_filter):
* gst/playback/gstdecodebin.c: (find_compatibles):
Work with staticpadtemplates in elementfactories.
Original commit message from CVS:
Plugin port to 0.9, ogg/theora playback should work in the seek
example now.
Removed old examples.
Removed old oggvorbisenc, renamed rawvorbisenc to vorbisenc as
explained in 0.9 TODO doc.
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_invert):
Declare variables at beginning of block and make gcc-2.95 happy
(fixes # 167482, patch by Gergely Nagy).
* gst/tcp/gsttcpclientsrc.c:
* gst/tcp/gsttcpclientsrc.h:
Move some includes into the header, so that struct sockaddr_in is
defined when it should be defined on FreeBSD as well (fixes
#167483).
* gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_init_receive):
Don't pass uninitialised values to setsockopt() here either.
Original commit message from CVS:
* gst/audioconvert/gstchannelmix.h:
include missing header file
* gst/audioconvert/gstchannelmix.c:
(gst_audio_convert_fill_compatible):
use same sign for both channels when converting to/from compatible
channel. Previously used different signs made the signals cancel
each other out and appear like silence. (fixes#167269)