} else {
MMPLAYER_RELEASE_ELEMENT(player, mainbin, MMPLAYER_M_AUTOPLUG); /* uridecodebin */
mainbin[MMPLAYER_M_MUXED_S_BUFFER].gst = NULL;
- mainbin[MMPLAYER_M_TYPEFIND].gst = NULL;
mainbin[MMPLAYER_M_SRC].gst = NULL;
}
}
void
-_mmplayer_gst_element_added(GstElement *bin, GstElement *element, gpointer data)
+_mmplayer_gst_element_added(GstBin *bin, GstElement *element, gpointer data)
{
mmplayer_t *player = (mmplayer_t *)data;
const gchar *klass = NULL;
current_state = GST_STATE(mainbin[MMPLAYER_M_PIPE].gst);
// sync clock with current pipeline
- curr_clock = GST_ELEMENT_CLOCK(player->pipeline->mainbin[MMPLAYER_M_PIPE].gst);
+ curr_clock = gst_element_get_clock(player->pipeline->mainbin[MMPLAYER_M_PIPE].gst);
curr_time = gst_clock_get_time(curr_clock);
base_time = gst_element_get_base_time(GST_ELEMENT_CAST(player->pipeline->mainbin[MMPLAYER_M_PIPE].gst));
if (GST_STATE_CHANGE_FAILURE == ret) {
LOGE("fail to state change.");
result = MM_ERROR_PLAYER_INTERNAL;
+ if (curr_clock)
+ gst_object_unref(curr_clock);
goto ERROR;
}
}