deinterleave: Allow switching between 1 channel configs

regardless of whether they're positioned, since positioning
with a 1 channel stream doesn't change anything.
This commit is contained in:
Vincent Penquerc'h 2019-01-24 16:21:12 -05:00 committed by Olivier Crête
parent eddaf49510
commit a329a3a2c6

View file

@ -365,13 +365,23 @@ gst_deinterleave_check_caps_change (GstDeinterleave * self,
gint i; gint i;
gboolean same_layout = TRUE; gboolean same_layout = TRUE;
gboolean was_unpositioned; gboolean was_unpositioned;
gboolean is_unpositioned = GST_AUDIO_INFO_IS_UNPOSITIONED (new_info); gboolean is_unpositioned;
gint new_channels = GST_AUDIO_INFO_CHANNELS (new_info); gint new_channels;
gint old_channels; gint old_channels;
was_unpositioned = GST_AUDIO_INFO_IS_UNPOSITIONED (old_info); new_channels = GST_AUDIO_INFO_CHANNELS (new_info);
old_channels = GST_AUDIO_INFO_CHANNELS (old_info); old_channels = GST_AUDIO_INFO_CHANNELS (old_info);
if (GST_AUDIO_INFO_IS_UNPOSITIONED (new_info) || new_channels == 1)
is_unpositioned = TRUE;
else
is_unpositioned = FALSE;
if (GST_AUDIO_INFO_IS_UNPOSITIONED (old_info) || old_channels == 1)
was_unpositioned = TRUE;
else
was_unpositioned = FALSE;
/* We allow caps changes as long as the number of channels doesn't change /* We allow caps changes as long as the number of channels doesn't change
* and the channel positions stay the same. _getcaps() should've cared * and the channel positions stay the same. _getcaps() should've cared
* for this already but better be safe. * for this already but better be safe.