GstCaps *sink_caps;
element_info_s elem_info;
gchar *media_type = NULL;
+ unsigned int payload_id;
RET_VAL_IF(webrtc == NULL, WEBRTC_ERROR_INVALID_PARAMETER, "webrtc is NULL");
RET_VAL_IF(source == NULL, WEBRTC_ERROR_INVALID_PARAMETER, "source is NULL");
g_free(media_type);
return WEBRTC_ERROR_INVALID_OPERATION;
}
- if ((sink_caps = __make_rtp_caps(media_type, source->id))) {
+
+ payload_id = __get_available_payload_id(webrtc);
+ if (payload_id == 0) {
+ g_free(media_type);
+ return WEBRTC_ERROR_INVALID_OPERATION;
+ }
+ source->av[source->media_types == MEDIA_TYPE_VIDEO ? AV_IDX_VIDEO : AV_IDX_AUDIO].payload_id = payload_id;
+
+ if ((sink_caps = __make_rtp_caps(media_type, payload_id))) {
g_object_set(G_OBJECT(*capsfilter), "caps", sink_caps, NULL);
gst_caps_unref(sink_caps);
}