summaryrefslogtreecommitdiff
path: root/testcase/codec/codec_haltests.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'testcase/codec/codec_haltests.cpp')
-rw-r--r--testcase/codec/codec_haltests.cpp36
1 files changed, 11 insertions, 25 deletions
diff --git a/testcase/codec/codec_haltests.cpp b/testcase/codec/codec_haltests.cpp
index 41498aa..2d4e592 100644
--- a/testcase/codec/codec_haltests.cpp
+++ b/testcase/codec/codec_haltests.cpp
@@ -114,45 +114,31 @@ pad_added_cb(GstElement * demux, GstPad * pad, GstBin * pipeline)
caps = gst_pad_query_caps(pad, NULL);
gchar *caps_str = gst_caps_to_string(caps);
+ gst_caps_unref(caps);
if (strstr(caps_str, "h264")) {
parse = gst_element_factory_make("h264parse", NULL);
codec = gst_element_factory_make(codec_list[H264].plugins[0], NULL);
- sink = gst_element_factory_make("fakesink", NULL);
-
- gst_bin_add_many(GST_BIN(pipeline), parse, codec, sink, NULL);
- gst_element_link_many(demux, parse, codec, sink, NULL);
-
- gst_element_set_state(parse, GST_STATE_PAUSED);
- gst_element_set_state(codec, GST_STATE_PAUSED);
- gst_element_set_state(sink, GST_STATE_PAUSED);
} else if (strstr(caps_str, "h263")) {
parse = gst_element_factory_make("h263parse", NULL);
codec = gst_element_factory_make(codec_list[H263].plugins[0], NULL);
- sink = gst_element_factory_make("fakesink", NULL);
-
- gst_bin_add_many(GST_BIN(pipeline), codec, sink, NULL);
- gst_element_link_many(demux, codec, sink, NULL);
-
- gst_element_set_state(parse, GST_STATE_PAUSED);
- gst_element_set_state(codec, GST_STATE_PAUSED);
- gst_element_set_state(sink, GST_STATE_PAUSED);
} else if (strstr(caps_str, "video/mpeg")) {
parse = gst_element_factory_make("mpeg4videoparse", NULL);
codec = gst_element_factory_make(codec_list[MPEG4].plugins[0], NULL);
- sink = gst_element_factory_make("fakesink", NULL);
-
- gst_bin_add_many(GST_BIN(pipeline), parse, codec, sink, NULL);
- gst_element_link_many(demux, parse, codec, sink, NULL);
-
- gst_element_set_state(parse, GST_STATE_PAUSED);
- gst_element_set_state(codec, GST_STATE_PAUSED);
- gst_element_set_state(sink, GST_STATE_PAUSED);
} else {
GST_WARNING_OBJECT(pad, "non video pad");
+ g_free(caps_str);
+ return;
}
- gst_caps_unref(caps);
+ sink = gst_element_factory_make("fakesink", NULL);
+ gst_bin_add_many(GST_BIN(pipeline), parse, codec, sink, NULL);
+ gst_element_link_many(demux, parse, codec, sink, NULL);
+
+ gst_element_set_state(parse, GST_STATE_PAUSED);
+ gst_element_set_state(codec, GST_STATE_PAUSED);
+ gst_element_set_state(sink, GST_STATE_PAUSED);
+ g_free(caps_str);
}
static GstBusSyncReply