diff options
Diffstat (limited to 'src/mm_player_gst.c')
-rw-r--r-- | src/mm_player_gst.c | 33 |
1 files changed, 10 insertions, 23 deletions
diff --git a/src/mm_player_gst.c b/src/mm_player_gst.c index 406b3ac..a2a3e0d 100644 --- a/src/mm_player_gst.c +++ b/src/mm_player_gst.c @@ -2564,12 +2564,13 @@ static void __mmplayer_gst_rtp_dynamic_pad(GstElement *element, GstPad *pad, gpointer data) { GstPad *sinkpad = NULL; - GstCaps* caps = NULL; - GstElement* new_element = NULL; - GstStructure* str = NULL; - const gchar* name = NULL; + GstCaps *caps = NULL; + GstElement *new_element = NULL; + GstStructure *str = NULL; + const gchar *name = NULL; + gboolean caps_ret = TRUE; - mm_player_t* player = (mm_player_t*) data; + mm_player_t *player = (mm_player_t*) data; MMPLAYER_FENTER(); @@ -2578,33 +2579,19 @@ __mmplayer_gst_rtp_dynamic_pad(GstElement *element, GstPad *pad, gpointer data) player->pipeline && player->pipeline->mainbin); + MMPLAYER_GST_GET_CAPS_INFO(pad, caps, str, name, caps_ret); + if (!caps_ret) + goto ERROR; /* payload type is recognizable. increase num_dynamic and wait for sinkbin creation. * num_dynamic_pad will decreased after creating a sinkbin. */ player->num_dynamic_pad++; - LOGD("stream count inc : %d\n", player->num_dynamic_pad); - - caps = gst_pad_query_caps(pad, NULL); - - MMPLAYER_CHECK_NULL(caps); + LOGD("stream count inc : %d", player->num_dynamic_pad); /* clear previous result*/ player->have_dynamic_pad = FALSE; - str = gst_caps_get_structure(caps, 0); - - if (!str) { - LOGE("cannot get structure from caps.\n"); - goto ERROR; - } - - name = gst_structure_get_name(str); - if (!name) { - LOGE("cannot get mimetype from structure.\n"); - goto ERROR; - } - if (strstr(name, "video")) { gint stype = 0; mm_attrs_get_int_by_name(player->attrs, "display_surface_type", &stype); |