static void cleanup_spectrum (GstElement * spectrum) { GST_DEBUG ("cleanup_spectrum"); gst_pad_set_active (mysrcpad, FALSE); gst_pad_set_active (mysinkpad, FALSE); gst_check_teardown_src_pad (spectrum); gst_check_teardown_sink_pad (spectrum); gst_check_teardown_element (spectrum); g_list_foreach (buffers, (GFunc) gst_mini_object_unref, NULL); g_list_free (buffers); buffers = NULL; }
static void mulawdec_teardown (void) { /* free decoded buffers */ g_list_foreach (buffers, buffer_unref, NULL); g_list_free (buffers); buffers = NULL; gst_pad_set_active (mysrcpad, FALSE); gst_pad_set_active (mysinkpad, FALSE); gst_check_teardown_src_pad (mulawdec); gst_check_teardown_sink_pad (mulawdec); gst_check_teardown_element (mulawdec); mulawdec = NULL; }
void cleanup_audiowsincband (GstElement * audiowsincband) { GST_DEBUG ("cleanup_audiowsincband"); g_list_foreach (buffers, (GFunc) gst_mini_object_unref, NULL); g_list_free (buffers); buffers = NULL; gst_pad_set_active (mysrcpad, FALSE); gst_pad_set_active (mysinkpad, FALSE); gst_check_teardown_src_pad (audiowsincband); gst_check_teardown_sink_pad (audiowsincband); gst_check_teardown_element (audiowsincband); }
void cleanup_xingmux (GstElement * xingmux) { GST_DEBUG ("cleanup_xingmux"); g_list_foreach (buffers, (GFunc) gst_mini_object_unref, NULL); g_list_free (buffers); buffers = NULL; gst_pad_set_active (mysrcpad, FALSE); gst_pad_set_active (mysinkpad, FALSE); gst_check_teardown_src_pad (xingmux); gst_check_teardown_sink_pad (xingmux); gst_check_teardown_element (xingmux); }
static void cleanup_audioencodertest (void) { gst_pad_set_active (mysrcpad, FALSE); gst_pad_set_active (mysinkpad, FALSE); gst_element_set_state (enc, GST_STATE_NULL); gst_check_teardown_src_pad (enc); gst_check_teardown_sink_pad (enc); gst_check_teardown_element (enc); g_list_free_full (events, (GDestroyNotify) gst_event_unref); events = NULL; }
static void cleanup_mpeg2enc (GstElement * mpeg2enc) { GST_DEBUG ("cleanup_mpeg2enc"); gst_element_set_state (mpeg2enc, GST_STATE_NULL); gst_pad_set_active (mysrcpad, FALSE); gst_pad_set_active (mysinkpad, FALSE); gst_check_teardown_src_pad (mpeg2enc); gst_check_teardown_sink_pad (mpeg2enc); gst_check_teardown_element (mpeg2enc); g_mutex_clear (&mpeg2enc_mutex); g_cond_clear (&mpeg2enc_cond); }
static void cleanup_gdppay (GstElement * gdppay) { GST_DEBUG ("cleanup_gdppay"); if (mysrcpad) gst_pad_set_active (mysrcpad, FALSE); if (myshsrcpad) gst_pad_set_active (myshsrcpad, FALSE); gst_pad_set_active (mysinkpad, FALSE); gst_check_teardown_src_pad (gdppay); gst_check_teardown_sink_pad (gdppay); gst_check_teardown_element (gdppay); mysrcpad = NULL; myshsrcpad = NULL; }
static void cleanup_videorate (GstElement * videorate) { GST_DEBUG ("cleanup_videorate"); g_list_foreach (buffers, (GFunc) gst_mini_object_unref, NULL); g_list_free (buffers); buffers = NULL; gst_element_set_state (videorate, GST_STATE_NULL); gst_element_get_state (videorate, NULL, NULL, GST_CLOCK_TIME_NONE); gst_pad_set_active (mysrcpad, FALSE); gst_pad_set_active (mysinkpad, FALSE); gst_check_teardown_src_pad (videorate); gst_check_teardown_sink_pad (videorate); gst_check_teardown_element (videorate); }
static void teardown_input_selector_with_2_streams (void) { fail_unless (gst_element_set_state (selector, GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS, "could not set to null"); gst_pad_remove_probe (output_pad, eos_probe); gst_pad_set_active (output_pad, FALSE); gst_check_teardown_sink_pad (selector); gst_check_teardown_element (selector); gst_object_unref (stream1_pad); gst_object_unref (stream2_pad); g_mutex_clear (&eos_probe_lock); g_cond_clear (&eos_probe_cond); }
static void cleanup_wavpackenc (GstElement * wavpackenc) { GST_DEBUG ("cleanup_wavpackenc"); gst_bus_set_flushing (bus, TRUE); gst_element_set_bus (wavpackenc, NULL); gst_object_unref (GST_OBJECT (bus)); gst_element_set_state (wavpackenc, GST_STATE_NULL); gst_pad_set_active (mysrcpad, FALSE); gst_pad_set_active (mysinkpad, FALSE); gst_check_teardown_src_pad (wavpackenc); gst_check_teardown_sink_pad (wavpackenc); gst_check_teardown_element (wavpackenc); }
static void cleanup_element (GstElement * element) { GstBus *bus; /* Free parsed buffers */ gst_check_drop_buffers (); bus = GST_ELEMENT_BUS (element); gst_bus_set_flushing (bus, TRUE); gst_object_unref (bus); gst_pad_set_active (srcpad, FALSE); gst_pad_set_active (sinkpad, FALSE); gst_check_teardown_src_pad (element); gst_check_teardown_sink_pad (element); gst_check_teardown_element (element); }
static void cleanup (void) { gst_check_drop_buffers (); gst_pad_set_active (mysrcpad, FALSE); gst_check_teardown_src_pad (element); mysrcpad = NULL; gst_pad_set_active (mysinkpad, FALSE); gst_check_teardown_sink_pad (element); mysinkpad = NULL; gst_check_teardown_element (element); element = NULL; gst_check_drop_buffers (); }
static void cleanup_jitterbuffer (GstElement * jitterbuffer) { GST_DEBUG ("cleanup_jitterbuffer"); g_list_foreach (buffers, (GFunc) gst_mini_object_unref, NULL); g_list_free (buffers); buffers = NULL; g_list_free (inbuffers); inbuffers = NULL; gst_pad_set_active (mysrcpad, FALSE); gst_pad_set_active (mysinkpad, FALSE); gst_check_teardown_src_pad (jitterbuffer); gst_check_teardown_sink_pad (jitterbuffer); gst_check_teardown_element (jitterbuffer); }
static void teardown_subparse (void) { GST_DEBUG ("cleaning up"); g_list_foreach (buffers, (GFunc) gst_mini_object_unref, NULL); g_list_free (buffers); buffers = NULL; gst_pad_set_active (mysrcpad, FALSE); gst_pad_set_active (mysinkpad, FALSE); gst_check_teardown_sink_pad (subparse); gst_check_teardown_src_pad (subparse); gst_check_teardown_element (subparse); subparse = NULL; mysrcpad = NULL; mysinkpad = NULL; }
/* Create input-selector with given number of sink pads and switch given number of input buffers to each sink pad. */ static void run_input_selector_buffer_count (gint num_input_pads, gint num_buffers_per_input) { /* set up input_pads ! selector ! output_pad */ gint i = 0, probe_id = 0; GList *input_pads = NULL, *output_pads = NULL; GstElement *sel = gst_check_setup_element ("input-selector"); GstPad *output_pad = gst_check_setup_sink_pad (sel, &sinktemplate); output_pads = g_list_append (output_pads, output_pad); gst_pad_set_active (output_pad, TRUE); for (i = 0; i < num_input_pads; i++) { input_pads = g_list_append (input_pads, setup_input_pad (sel)); } /* add probe */ probe_id = gst_pad_add_probe (output_pad, GST_PAD_PROBE_TYPE_DATA_BOTH, (GstPadProbeCallback) probe_cb, NULL, NULL); g_object_set_data (G_OBJECT (output_pad), "probe_id", GINT_TO_POINTER (probe_id)); /* run the test */ fail_unless (gst_element_set_state (sel, GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, "could not set to playing"); push_newsegment_events (input_pads); push_switched_buffers (input_pads, sel, input_pads, num_buffers_per_input); count_output_buffers (output_pads, (num_input_pads * num_buffers_per_input)); fail_unless (gst_element_set_state (sel, GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS, "could not set to null"); /* clean up */ gst_pad_remove_probe (output_pad, probe_id); gst_pad_set_active (output_pad, FALSE); gst_check_teardown_sink_pad (sel); GST_DEBUG ("setting selector pad to NULL"); selector_set_active_pad (sel, NULL); // unref input-selector active pad g_list_foreach (input_pads, (GFunc) cleanup_pad, sel); g_list_free (input_pads); g_list_free (output_pads); gst_check_teardown_element (sel); }
static void teardown_cmmlenc (void) { /* free encoded buffers */ g_list_foreach (buffers, buffer_unref, NULL); g_list_free (buffers); buffers = NULL; current_buf = NULL; gst_bus_set_flushing (bus, TRUE); gst_object_unref (bus); GST_DEBUG ("teardown_cmmlenc"); gst_pad_set_active (srcpad, FALSE); gst_pad_set_active (sinkpad, FALSE); gst_check_teardown_src_pad (cmmlenc); gst_check_teardown_sink_pad (cmmlenc); gst_check_teardown_element (cmmlenc); }
void cleanup_rgvolume (GstElement * element) { GST_DEBUG ("cleanup_rgvolume"); g_list_foreach (buffers, (GFunc) gst_mini_object_unref, NULL); g_list_free (buffers); buffers = NULL; g_list_foreach (events, (GFunc) gst_mini_object_unref, NULL); g_list_free (events); events = NULL; gst_pad_set_active (mysrcpad, FALSE); gst_pad_set_active (mysinkpad, FALSE); gst_check_teardown_src_pad (element); gst_check_teardown_sink_pad (element); gst_check_teardown_element (element); }
static void cleanup (void) { GST_DEBUG ("cleanup_queue"); gst_check_drop_buffers (); drop_events (); if (mysinkpad != NULL) { gst_pad_set_active (mysinkpad, FALSE); gst_check_teardown_sink_pad (queue); } gst_pad_set_active (mysrcpad, FALSE); gst_check_teardown_src_pad (queue); gst_check_teardown_element (queue); queue = NULL; }
static void cleanup_amrnbenc (GstElement * amrnbenc) { GstBus *bus; /* free encoded buffers */ g_list_foreach (buffers, buffer_unref, NULL); g_list_free (buffers); buffers = NULL; bus = GST_ELEMENT_BUS (amrnbenc); gst_bus_set_flushing (bus, TRUE); gst_object_unref (bus); GST_DEBUG ("cleanup_amrnbenc"); gst_pad_set_active (srcpad, FALSE); gst_pad_set_active (sinkpad, FALSE); gst_check_teardown_src_pad (amrnbenc); gst_check_teardown_sink_pad (amrnbenc); gst_check_teardown_element (amrnbenc); }
static void helper (gboolean flush) { GstElement *filter; GstBus *bus; GstPad *mysrcpad; GstPad *mysinkpad; /* init */ filter = gst_check_setup_element ("omx_dummy"); mysrcpad = gst_check_setup_src_pad (filter, &srctemplate, NULL); mysinkpad = gst_check_setup_sink_pad (filter, &sinktemplate, NULL); gst_pad_set_active (mysrcpad, TRUE); gst_pad_set_active (mysinkpad, TRUE); /* need to know when we are eos */ gst_pad_set_event_function (mysinkpad, test_sink_event); /* and notify the test run */ eos_mutex = g_mutex_new (); eos_cond = g_cond_new (); eos_arrived = FALSE; g_object_set (G_OBJECT (filter), "library-name", "libomxil-foo.so", NULL); /* start */ fail_unless_equals_int (gst_element_set_state (filter, GST_STATE_PLAYING), GST_STATE_CHANGE_SUCCESS); bus = gst_bus_new (); gst_element_set_bus (filter, bus); /* send buffers in order*/ { guint i; for (i = 0; i < BUFFER_COUNT; i++) { GstBuffer *inbuffer; inbuffer = gst_buffer_new_and_alloc (BUFFER_SIZE); GST_BUFFER_DATA(inbuffer)[0] = i; ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); if (flush && i % FLUSH_AT == 0) { gst_pad_push_event (mysrcpad, gst_event_new_flush_start ()); gst_pad_push_event (mysrcpad, gst_event_new_flush_stop ()); i += FLUSH_AT; } } } { GstMessage *message; fail_if ((message = gst_bus_pop (bus)) != NULL); /* make sure there's no error on the bus */ message = gst_bus_poll (bus, GST_MESSAGE_ERROR, 0); fail_if (message); } gst_pad_push_event (mysrcpad, gst_event_new_eos ()); /* need to wait a bit to make sure src pad task digested all and sent eos */ g_mutex_lock (eos_mutex); while (!eos_arrived) g_cond_wait (eos_cond, eos_mutex); g_mutex_unlock (eos_mutex); /* check the order of the buffers*/ if (!flush) { GList *cur; guint i; for (cur = buffers, i = 0; cur; cur = g_list_next (cur), i++) { GstBuffer *buffer; buffer = cur->data; fail_unless (GST_BUFFER_DATA(buffer)[0] == i); } fail_unless (i == BUFFER_COUNT); } /* cleanup */ gst_bus_set_flushing (bus, TRUE); gst_element_set_bus (filter, NULL); gst_object_unref (GST_OBJECT (bus)); gst_check_drop_buffers (); /* deinit */ gst_element_set_state (filter, GST_STATE_NULL); gst_pad_set_active (mysrcpad, FALSE); gst_pad_set_active (mysinkpad, FALSE); gst_check_teardown_src_pad (filter); gst_check_teardown_sink_pad (filter); gst_check_teardown_element (filter); g_mutex_free (eos_mutex); g_cond_free (eos_cond); }