support local playback
[platform/core/multimedia/libmm-player.git] / src / mm_player_priv.c
index 7b3d35f..00e8afb 100644 (file)
@@ -1171,6 +1171,7 @@ _mmplayer_gst_decode_pad_added(GstElement *elem, GstPad *pad, gpointer data)
        const gchar *name = NULL;
        GstPad *sinkpad = NULL;
        gboolean first_track = FALSE;
+       gboolean caps_ret = TRUE;
 
        main_element_id_e elem_idx = MMPLAYER_M_NUM;
        mmplayer_track_type_e stream_type = MM_PLAYER_TRACK_TYPE_AUDIO;
@@ -1182,13 +1183,8 @@ _mmplayer_gst_decode_pad_added(GstElement *elem, GstPad *pad, gpointer data)
        LOGD("pad-added signal handling");
 
        /* get mimetype from caps */
-       caps = gst_pad_get_current_caps(pad);
-       if (caps) {
-               str = gst_caps_get_structure(caps, 0);
-               if (str)
-                       name = gst_structure_get_name(str);
-       }
-       if (!name)
+       MMPLAYER_GST_GET_CAPS_INFO(pad, caps, str, name, caps_ret);
+       if (!caps_ret)
                goto ERROR;
 
        MMPLAYER_LOG_GST_CAPS_TYPE(caps);
@@ -4208,7 +4204,6 @@ __mmplayer_gst_destroy_pipeline(mmplayer_t *player)
        MMPLAYER_FREEIF(player->type);
        player->no_more_pad = FALSE;
        player->num_dynamic_pad = 0;
-       player->demux_pad_index = 0;
 
        MMPLAYER_SUBTITLE_INFO_LOCK(player);
        player->subtitle_language_list = NULL;
@@ -5029,7 +5024,6 @@ _mmplayer_realize(MMHandleType hplayer)
        player->is_subtitle_off = FALSE; /* set the subtitle ON default */
        player->video360_metadata.is_spherical = -1;
        player->is_openal_plugin_used = FALSE;
-       player->demux_pad_index = 0;
        player->subtitle_language_list = NULL;
        player->is_subtitle_force_drop = FALSE;
 
@@ -5894,7 +5888,6 @@ _mmplayer_typefind_have_type(GstElement *tf, guint probability,
        GstCaps *caps, gpointer data)
 {
        mmplayer_t *player = (mmplayer_t *)data;
-       GstPad *pad = NULL;
 
        MMPLAYER_FENTER();
 
@@ -5926,13 +5919,15 @@ _mmplayer_typefind_have_type(GstElement *tf, guint probability,
 
        __mmplayer_update_content_type_info(player);
 
-       pad = gst_element_get_static_pad(tf, "src");
-       if (!pad) {
-               LOGE("fail to get typefind src pad.");
-               return;
-       }
-
        if (!player->pipeline->mainbin[MMPLAYER_M_AUTOPLUG].gst) {
+               GstPad *pad = NULL;
+
+               pad = gst_element_get_static_pad(tf, "src");
+               if (!pad) {
+                       LOGE("fail to get typefind src pad.");
+                       return;
+               }
+
                if (!_mmplayer_gst_create_decoder(player, pad, caps)) {
                        gboolean async = FALSE;
                        LOGE("failed to autoplug %s", player->type);
@@ -5942,9 +5937,8 @@ _mmplayer_typefind_have_type(GstElement *tf, guint probability,
                        if (async && player->msg_posted == FALSE)
                                __mmplayer_handle_missed_plugin(player);
                }
+               gst_object_unref(GST_OBJECT(pad));
        }
-
-       gst_object_unref(GST_OBJECT(pad));
        MMPLAYER_FLEAVE();
        return;
 }