player->audio_stream_cb = NULL;
player->audio_stream_cb_user_param = NULL;
+ gst_object_unref(GST_OBJECT(pad));
+
}
}
if ((player->audio_stream_render_cb_ex) && (!player->audio_stream_sink_sync))
}
if (type == MM_PLAYER_STREAM_TYPE_TEXT) {
- __mmplayer_try_to_plug_decodebin(player, gst_element_get_static_pad(mainbin[queue_id].gst, "src"), caps);
+ __mmplayer_try_to_plug_decodebin(player, srcpad, caps);
} else {
if (!__mmplayer_gst_create_es_decoder(player, type, srcpad)) {
LOGE("failed to create decoder");
caps_a = NULL;
has_audio_attrs = TRUE;
- } else
+ } else {
LOGW("not ready to get audio caps");
-
+ }
gst_object_unref(pad);
- } else
+ } else {
LOGW("failed to get pad from audiosink");
+ }
}
}
}
has_video_attrs = TRUE;
- } else
+ } else {
LOGD("no negitiated caps from videosink");
+ }
gst_object_unref(pad);
- pad = NULL;
} else {
LOGD("no videosink sink pad");
}
}
}
+ gst_object_unref(GST_OBJECT(sinkpad));
+ sinkpad = NULL;
+
selector = player->pipeline->mainbin[elemId].gst;
if (selector == NULL) {
selector = gst_element_factory_make("input-selector", NULL);
gst_element_set_state(selector, GST_STATE_PAUSED);
gst_bin_add(GST_BIN(pipeline), selector);
- } else
+ } else {
LOGD("input-selector is already created.\n");
+ }
// link
LOGD("Calling request pad with selector %p \n", selector);
mm_attrs_set_int_by_name(attrs, "content_text_track_num", (gint)player->selector[MM_PLAYER_TRACK_TYPE_TEXT].total_track_num);
if (mmf_attrs_commit(attrs))
LOGE("failed to commit.\n");
- } else
+ } else {
LOGE("cannot get content attribute");
-
- if (srcpad) {
- gst_object_unref(GST_OBJECT(srcpad));
- srcpad = NULL;
}
+
+ gst_object_unref(GST_OBJECT(srcpad));
}
static void
}
}
+ gst_object_unref(GST_OBJECT(srcpad));
+ srcpad = NULL;
+
if (audio_selector) {
active_index = player->selector[MM_PLAYER_TRACK_TYPE_AUDIO].active_pad_index;
if ((active_index != DEFAULT_TRACK) &&
__mmplayer_pipeline_complete(NULL, player);
}
+ gst_object_unref(GST_OBJECT(srcpad));
+ srcpad = NULL;
+
if (!MMPLAYER_IS_MS_BUFF_SRC(player)) {
if (text_selector)
__mmplayer_handle_text_decode_path(player, text_selector);
MMPLAYER_FLEAVE();
ERROR:
- if (srcpad) {
- gst_object_unref(GST_OBJECT(srcpad));
- srcpad = NULL;
- }
-
if (player->gapless.reconfigure) {
player->gapless.reconfigure = FALSE;
MMPLAYER_PLAYBACK_UNLOCK(player);
__mmplayer_add_signal_connection(player, G_OBJECT(sink_pad), MM_PLAYER_SIGNAL_TYPE_VIDEOBIN,
"notify::caps", G_CALLBACK(__mmplayer_gst_caps_notify_cb), (gpointer)player);
gst_object_unref(GST_OBJECT(sink_pad));
- } else
+ } else {
LOGW("failed to get sink pad from videosink\n");
+ }
}
/* store it as it's sink element */
}
gst_object_unref(GST_OBJECT(sinkpad));
+ sinkpad = NULL;
+ gst_object_unref(GST_OBJECT(qsrcpad));
+ qsrcpad = NULL;
mainbin[MMPLAYER_M_AUTOPLUG].id = MMPLAYER_M_AUTOPLUG;
mainbin[MMPLAYER_M_AUTOPLUG].gst = decodebin;
if (sinkpad)
gst_object_unref(GST_OBJECT(sinkpad));
+ if (qsrcpad)
+ gst_object_unref(GST_OBJECT(qsrcpad));
+
if (queue2) {
/* NOTE : Trying to dispose element queue0, but it is in READY instead of the NULL state.
* You need to explicitly set elements to the NULL state before
if (dump_s->dump_pad) {
if (dump_s->probe_handle_id)
gst_pad_remove_probe(dump_s->dump_pad, dump_s->probe_handle_id);
+ gst_object_unref(GST_OBJECT(dump_s->dump_pad));
}
if (dump_s->dump_element_file) {
fclose(dump_s->dump_element_file);