x_elem_info.sink_caps = x_sink_caps; \
x_elem_info.src_caps = x_src_caps; \
x_element = _create_element_from_registry(&x_elem_info); \
+ if (!x_element) \
+ LOG_ERROR("failed to create element of [%s]", x_klass_name); \
if (x_elem_info.sink_caps) \
gst_caps_unref(x_elem_info.sink_caps); \
if (x_elem_info.src_caps) \
gst_caps_unref(x_elem_info.src_caps); \
- if (!x_element) { \
- LOG_ERROR("failed to create element of [%s]", x_klass_name); \
- return WEBRTC_ERROR_INVALID_OPERATION; \
- } \
} while (0)
#define MALLOC_AND_INIT_SLOT(x_slot, x_id, x_bin_name, x_webrtcbin) \
GstCaps *sink_caps;
element_info_s elem_info;
const gchar *encoder_klass_name;
- gchar *media_type;
+ gchar *media_type = NULL;
RET_VAL_IF(webrtc == NULL, WEBRTC_ERROR_INVALID_PARAMETER, "webrtc is NULL");
RET_VAL_IF(source == NULL, WEBRTC_ERROR_INVALID_PARAMETER, "source is NULL");
__make_default_raw_caps(type, &webrtc->ini),
__make_default_encoded_caps(type, &webrtc->ini, NULL),
*encoder);
+ if (*encoder == NULL)
+ return WEBRTC_ERROR_INVALID_OPERATION;
CREATE_ELEMENT_FROM_REGISTRY(elem_info, GST_KLASS_NAME_PAYLOADER_RTP,
__make_default_encoded_caps(type, &webrtc->ini, &media_type),
NULL,
*payloader);
+ if (*payloader == NULL) {
+ g_free(media_type);
+ return WEBRTC_ERROR_INVALID_OPERATION;
+ }
if (!(*queue = _create_element(DEFAULT_ELEMENT_QUEUE, NULL))) {
LOG_ERROR("failed to create queue");