Original commit message from CVS:
Based on a patch by: Tim-Philipp Müller <tim.muller at collabora co uk>
* gst/audioconvert/audioconvert.c: (audio_convert_prepare_context):
* gst/audioconvert/audioconvert.h:
* gst/audioconvert/gstaudioconvert.c:
(gst_audio_convert_parse_caps),
(structure_has_fixed_channel_positions),
(gst_audio_convert_transform_caps):
* gst/audioconvert/gstchannelmix.c: (gst_channel_mix_fill_matrix):
Add support for more than 8 channels and NONE channel layouts. For
more than 8 channels no channel conversion is supported yet, only
format conversions are supported. Fixes bug #398033.
* tests/check/elements/audioconvert.c: (verify_convert),
(GST_START_TEST), (audioconvert_suite):
Add some unit tests by Tim for checking the NONE channel layouts
and more than 8 channels and add some more unit tests for channel
conversions.
Original commit message from CVS:
* gst/audioconvert/audioconvert.c: (float), (double), (float_hq),
(double_hq), (audio_convert_get_func_index),
(audio_convert_prepare_context), (audio_convert_convert):
* gst/audioconvert/audioconvert.h:
* gst/audioconvert/gstchannelmix.c: (gst_channel_mix_setup_matrix),
(gst_channel_mix_mix_int), (gst_channel_mix_mix_float):
* gst/audioconvert/gstchannelmix.h:
* tests/check/elements/audioconvert.c: (GST_START_TEST):
Add float as an intermediate format, as well as float mixing. Enable
test that was failing before. Fixes#339837
Original commit message from CVS:
* gst/audioconvert/gstchannelmix.c: (gst_channel_mix_fill_others):
Fix#341696: crash when mixing L+R+C to mono or stereo.
* tests/check/Makefile.am:
* tests/check/elements/audioconvert.c: (set_channel_positions),
(get_float_mc_caps), (get_int_mc_caps), (GST_START_TEST),
(audioconvert_suite):
Add test for the above, including some generic framework bits for
testing multichannel things.
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/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)
Original commit message from CVS:
* gst/audioconvert/gstchannelmix.c: (gst_audio_convert_mix):
more overwriting protection due to modifying channels one by one
instead of all at once
Original commit message from CVS:
* gst/audioconvert/gstchannelmix.c: (gst_audio_convert_mix):
walk the samples backwards if out_channels > in_channels so we don't
overwrite data