summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWim Taymans <wtaymans@redhat.com>2015-11-06 16:42:35 +0100
committerWim Taymans <wtaymans@redhat.com>2015-11-06 16:42:35 +0100
commit268ed5dd6ffbea7ca9e7fe5c0f09ca2de7306f5a (patch)
tree498dfaa2beb96b7523181e0e90dbf6cd7e6295ee
parent9fbe0386d0b5c29c0e8b308dc08ef4d91e58eb0c (diff)
channelmix: don't limit channelpositions
Don't set a limit on the channel positions, just like the metadata.
-rw-r--r--gst/audioconvert/gstchannelmix.c13
-rw-r--r--gst/audioconvert/gstchannelmix.h4
2 files changed, 9 insertions, 8 deletions
diff --git a/gst/audioconvert/gstchannelmix.c b/gst/audioconvert/gstchannelmix.c
index de3ceea85..639de1538 100644
--- a/gst/audioconvert/gstchannelmix.c
+++ b/gst/audioconvert/gstchannelmix.c
@@ -785,16 +785,16 @@ GstAudioChannelMix *
gst_audio_channel_mix_new (GstAudioChannelMixFlags flags,
GstAudioFormat format,
gint in_channels,
- GstAudioChannelPosition in_position[64],
- gint out_channels, GstAudioChannelPosition out_position[64])
+ GstAudioChannelPosition * in_position,
+ gint out_channels, GstAudioChannelPosition * out_position)
{
GstAudioChannelMix *mix;
gint i;
g_return_val_if_fail (format == GST_AUDIO_FORMAT_S32
|| format == GST_AUDIO_FORMAT_F64, NULL);
- g_return_val_if_fail (in_channels > 0, NULL);
- g_return_val_if_fail (out_channels > 0, NULL);
+ g_return_val_if_fail (in_channels > 0 && in_channels < 64, NULL);
+ g_return_val_if_fail (out_channels > 0 && out_channels < 64, NULL);
mix = g_slice_new0 (GstAudioChannelMix);
mix->flags = flags;
@@ -802,10 +802,11 @@ gst_audio_channel_mix_new (GstAudioChannelMixFlags flags,
mix->in_channels = in_channels;
mix->out_channels = out_channels;
- for (i = 0; i < 64; i++) {
+ for (i = 0; i < in_channels; i++)
mix->in_position[i] = in_position[i];
+ for (i = 0; i < out_channels; i++)
mix->out_position[i] = out_position[i];
- }
+
gst_audio_channel_mix_setup_matrix (mix);
switch (mix->format) {
diff --git a/gst/audioconvert/gstchannelmix.h b/gst/audioconvert/gstchannelmix.h
index cbd0ddc6c..fd969171e 100644
--- a/gst/audioconvert/gstchannelmix.h
+++ b/gst/audioconvert/gstchannelmix.h
@@ -47,9 +47,9 @@ typedef enum {
GstAudioChannelMix * gst_audio_channel_mix_new (GstAudioChannelMixFlags flags,
GstAudioFormat format,
gint in_channels,
- GstAudioChannelPosition in_position[64],
+ GstAudioChannelPosition *in_position,
gint out_channels,
- GstAudioChannelPosition out_position[64]);
+ GstAudioChannelPosition *out_position);
void gst_audio_channel_mix_free (GstAudioChannelMix *mix);
/*