Revert "opusenc: Reverse channel order in template caps"
authorSebastian Dröge <sebastian@centricular.com>
Thu, 5 Jan 2023 15:35:02 +0000 (17:35 +0200)
committerSebastian Dröge <sebastian@centricular.com>
Thu, 5 Jan 2023 15:57:19 +0000 (17:57 +0200)
This reverts commit cdf411e82d7e437e5de138492b6e75e5513686ee. It causes
pipelines to unnecessarily negotiate to 8 channels.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1688

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3689>

subprojects/gst-plugins-base/ext/opus/gstopusenc.c

index 5476106..6f1fc2b 100644 (file)
@@ -857,8 +857,17 @@ gst_opus_enc_get_sink_template_caps (void)
     g_value_unset (&rate_array);
     g_value_unset (&v);
 
+    /* Mono */
+    s = gst_structure_copy (s1);
+    gst_structure_set (s, "channels", G_TYPE_INT, 1, NULL);
+    gst_caps_append_structure (caps, s);
+
+    s = gst_structure_copy (s2);
+    gst_structure_set (s, "channels", G_TYPE_INT, 1, NULL);
+    gst_caps_append_structure (caps, s);
+
     /* Stereo and further */
-    for (i = 8; i >= 2; i--) {
+    for (i = 2; i <= 8; i++) {
       guint64 channel_mask = 0;
       const GstAudioChannelPosition *pos = gst_opus_channel_positions[i - 1];
 
@@ -889,14 +898,6 @@ gst_opus_enc_get_sink_template_caps (void)
       gst_caps_append_structure (caps, s);
     }
 
-    /* Mono */
-    s = gst_structure_copy (s1);
-    gst_structure_set (s, "channels", G_TYPE_INT, 1, NULL);
-    gst_caps_append_structure (caps, s);
-
-    s = gst_structure_copy (s2);
-    gst_structure_set (s, "channels", G_TYPE_INT, 1, NULL);
-    gst_caps_append_structure (caps, s);
     gst_structure_free (s1);
     gst_structure_free (s2);