librtmp is always built with MinGW in Cerbero, so if the plugin is
built with MSVC and it frees memory allocated by librtmp, that leads
to a crash since the CRT used by MinGW and MSVC are different.
This is fixed in master by switching to a newer GCC toolchain which
has been configured to use the same CRT as newer versions of Visual
Studio, so there's no cross-CRT memory alloc/free issues.
See: https://gitlab.freedesktop.org/gstreamer/cerbero/issues/164
GST_ERROR_OBJECT (src, "Failed to parse URI %s", uri);
g_set_error (error, GST_URI_ERROR, GST_URI_ERROR_BAD_URI,
"Could not parse RTMP URI");
+#ifndef _MSC_VER
/* FIXME: we should not be freeing RTMP internals to avoid leaking */
free (playpath.av_val);
+#endif
return FALSE;
}
+#ifndef _MSC_VER
free (playpath.av_val);
+#endif
src->uri = g_strdup (uri);
}