mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-31 03:29:50 +00:00
audio: Add support again for more than 64 channels with NONE layouts
This commit is contained in:
parent
2db0238450
commit
8dcea5d498
1 changed files with 6 additions and 9 deletions
|
@ -404,7 +404,6 @@ check_valid_channel_positions (const GstAudioChannelPosition * position,
|
|||
{
|
||||
gint i, j;
|
||||
guint64 channel_mask = 0;
|
||||
gboolean none_layout = FALSE;
|
||||
|
||||
if (channels == 1 && position[0] == GST_AUDIO_CHANNEL_POSITION_MONO) {
|
||||
if (channel_mask_out)
|
||||
|
@ -412,6 +411,12 @@ check_valid_channel_positions (const GstAudioChannelPosition * position,
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
if (channels > 0 && position[0] == GST_AUDIO_CHANNEL_POSITION_NONE) {
|
||||
if (channel_mask_out)
|
||||
*channel_mask_out = 0;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
j = 0;
|
||||
for (i = 0; i < channels; i++) {
|
||||
while (j < G_N_ELEMENTS (default_channel_order)
|
||||
|
@ -422,11 +427,6 @@ check_valid_channel_positions (const GstAudioChannelPosition * position,
|
|||
position[i] == GST_AUDIO_CHANNEL_POSITION_MONO)
|
||||
return FALSE;
|
||||
|
||||
if (position[i] == GST_AUDIO_CHANNEL_POSITION_NONE) {
|
||||
none_layout = TRUE;
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Is this in valid channel order? */
|
||||
if (enforce_order && j == G_N_ELEMENTS (default_channel_order))
|
||||
return FALSE;
|
||||
|
@ -438,9 +438,6 @@ check_valid_channel_positions (const GstAudioChannelPosition * position,
|
|||
channel_mask |= (G_GUINT64_CONSTANT (1) << position[i]);
|
||||
}
|
||||
|
||||
if (none_layout && channel_mask != 0)
|
||||
return FALSE;
|
||||
|
||||
if (channel_mask_out)
|
||||
*channel_mask_out = channel_mask;
|
||||
|
||||
|
|
Loading…
Reference in a new issue