static SessionHarness * session_harness_new (void) { SessionHarness *h = g_new0 (SessionHarness, 1); h->caps = generate_caps (); h->testclock = GST_TEST_CLOCK_CAST (gst_test_clock_new ()); gst_system_clock_set_default (GST_CLOCK_CAST (h->testclock)); h->session = gst_element_factory_make ("rtpsession", NULL); gst_element_set_clock (h->session, GST_CLOCK_CAST (h->testclock)); h->send_rtp_h = gst_harness_new_with_element (h->session, "send_rtp_sink", "send_rtp_src"); gst_harness_set_src_caps (h->send_rtp_h, gst_caps_copy (h->caps)); h->recv_rtp_h = gst_harness_new_with_element (h->session, "recv_rtp_sink", "recv_rtp_src"); gst_harness_set_src_caps (h->recv_rtp_h, gst_caps_copy (h->caps)); h->rtcp_h = gst_harness_new_with_element (h->session, "recv_rtcp_sink", "send_rtcp_src"); gst_harness_set_src_caps_str (h->rtcp_h, "application/x-rtcp"); g_signal_connect (h->session, "request-pt-map", (GCallback) _pt_map_requested, h); g_object_get (h->session, "internal-session", &h->internal_session, NULL); return h; }
static GstHarness * setup_audioencodertester (void) { GstHarness *h; GstElement *enc; static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, GST_STATIC_CAPS ("audio/x-test-custom") ); static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, GST_STATIC_CAPS ("audio/x-raw") ); enc = g_object_new (GST_AUDIO_ENCODER_TESTER_TYPE, NULL); h = gst_harness_new_full (enc, &srctemplate, "sink", &sinktemplate, "src"); gst_harness_set_src_caps (h, gst_caps_new_simple ("audio/x-raw", "rate", G_TYPE_INT, TEST_AUDIO_RATE, "channels", G_TYPE_INT, TEST_AUDIO_CHANNELS, "format", G_TYPE_STRING, TEST_AUDIO_FORMAT, "layout", G_TYPE_STRING, "interleaved", NULL)); gst_object_unref (enc); return h; }