interleave: error when channel-positions-from-input=False

self->channels is being incremented only when
channel-positions-from-input is set as TRUE. So in case of FALSE
self->func is not set and hence creating assertion error.
Hence removing the condition to increment self->channels.

https://bugzilla.gnome.org/show_bug.cgi?id=744211
diff --git a/gst/interleave/interleave.c b/gst/interleave/interleave.c
index 28f941a..f27591a 100644
--- a/gst/interleave/interleave.c
+++ b/gst/interleave/interleave.c
@@ -453,7 +453,6 @@
 
       self->channel_positions = g_value_dup_boxed (value);
       self->channel_positions_from_input = FALSE;
-      self->channels = self->channel_positions->n_values;
       break;
     case PROP_CHANNEL_POSITIONS_FROM_INPUT:
       self->channel_positions_from_input = g_value_get_boolean (value);
@@ -497,23 +496,23 @@
   GstInterleave *self = GST_INTERLEAVE (element);
   GstPad *new_pad;
   gchar *pad_name;
-  gint channels, padnumber;
+  gint channel, padnumber;
   GValue val = { 0, };
 
   if (templ->direction != GST_PAD_SINK)
     goto not_sink_pad;
 
   padnumber = g_atomic_int_add (&self->padcounter, 1);
-  if (self->channel_positions_from_input)
-    channels = g_atomic_int_add (&self->channels, 1);
-  else
-    channels = padnumber;
+
+  channel = g_atomic_int_add (&self->channels, 1);
+  if (!self->channel_positions_from_input)
+    channel = padnumber;
 
   pad_name = g_strdup_printf ("sink_%u", padnumber);
   new_pad = GST_PAD_CAST (g_object_new (GST_TYPE_INTERLEAVE_PAD,
           "name", pad_name, "direction", templ->direction,
           "template", templ, NULL));
-  GST_INTERLEAVE_PAD_CAST (new_pad)->channel = channels;
+  GST_INTERLEAVE_PAD_CAST (new_pad)->channel = channel;
   GST_DEBUG_OBJECT (self, "requested new pad %s", pad_name);
   g_free (pad_name);