summaryrefslogtreecommitdiff
path: root/src/mm_player_gst.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm_player_gst.c')
-rw-r--r--src/mm_player_gst.c33
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);