pidgin/pidgin

handle audiomixer empty caps possibility
audiomixer-rate
2019-07-19, Fabrice Bellet
87fa3fa518c5
Parents 0b4112b40eb0
Children 23b34e926db7
handle audiomixer empty caps possibility
--- a/libpurple/media/backend-fs2.c Tue Jul 16 16:23:48 2019 +0200
+++ b/libpurple/media/backend-fs2.c Fri Jul 19 15:55:49 2019 +0200
@@ -2195,23 +2195,25 @@
sinkpad = gst_element_get_static_pad (stream->src, "src");
caps = gst_pad_get_current_caps (sinkpad);
- convert = gst_element_factory_make("audioconvert", NULL);
- resample = gst_element_factory_make("audioresample", NULL);
- capsfilter = gst_element_factory_make("capsfilter", NULL);
-
- gst_bin_add_many(GST_BIN(priv->confbin), convert,
- resample, capsfilter, NULL);
- gst_element_link_many(gst_pad_get_parent_element (srcpad),
- convert, resample, capsfilter, NULL);
-
- g_object_set (capsfilter, "caps", caps, NULL);
- gst_element_set_state (convert, GST_STATE_PLAYING);
- gst_element_set_state (resample, GST_STATE_PLAYING);
- gst_element_set_state (capsfilter, GST_STATE_PLAYING);
-
- srcpad = gst_element_get_static_pad (capsfilter, "src");
+ if (caps) {
+ convert = gst_element_factory_make("audioconvert", NULL);
+ resample = gst_element_factory_make("audioresample", NULL);
+ capsfilter = gst_element_factory_make("capsfilter", NULL);
+
+ gst_bin_add_many(GST_BIN(priv->confbin), convert,
+ resample, capsfilter, NULL);
+ gst_element_link_many(gst_pad_get_parent_element (srcpad),
+ convert, resample, capsfilter, NULL);
+
+ g_object_set (capsfilter, "caps", caps, NULL);
+ gst_element_set_state (convert, GST_STATE_PLAYING);
+ gst_element_set_state (resample, GST_STATE_PLAYING);
+ gst_element_set_state (capsfilter, GST_STATE_PLAYING);
+
+ srcpad = gst_element_get_static_pad (capsfilter, "src");
+ gst_object_unref (caps);
+ }
gst_object_unref (sinkpad);
- gst_object_unref (caps);
}
}