/* Create output-selector with given number of src pads and switch given number of input buffers to each src pad. */ static void run_output_selector_buffer_count (gint num_output_pads, gint num_buffers_per_output) { /* setup input_pad ! selector ! output_pads */ gint i = 0; GList *output_pads = NULL, *input_pads = NULL; GstElement *sel = gst_check_setup_element ("output-selector"); GstPad *input_pad = gst_check_setup_src_pad (sel, &srctemplate); input_pads = g_list_append (input_pads, input_pad); gst_pad_set_active (input_pad, TRUE); for (i = 0; i < num_output_pads; i++) { output_pads = g_list_append (output_pads, setup_output_pad (sel, NULL)); } /* 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, output_pads, num_buffers_per_output); count_output_buffers (output_pads, num_buffers_per_output); fail_unless (gst_element_set_state (sel, GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS, "could not set to null"); /* cleanup input_pad, selector and output_pads */ gst_pad_set_active (input_pad, FALSE); gst_check_teardown_src_pad (sel); g_list_foreach (output_pads, (GFunc) cleanup_pad, sel); g_list_free (output_pads); g_list_free (input_pads); gst_check_teardown_element (sel); }
static void cleanup_filesrc (GstElement * filesrc) { gst_pad_set_active (mysinkpad, FALSE); gst_check_teardown_sink_pad (filesrc); gst_check_teardown_element (filesrc); }
static void cleanup_filesink (GstElement * filesink) { gst_pad_set_active (mysrcpad, FALSE); gst_check_teardown_src_pad (filesink); gst_check_teardown_element (filesink); }
static void cleanup (void) { GST_DEBUG ("cleanup_queue"); gst_check_drop_buffers (); drop_events (); g_cond_free (underrun_cond); underrun_cond = NULL; g_mutex_free (underrun_mutex); underrun_mutex = NULL; 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_gnomevfssink (GstElement * gnomevfssink) { gst_pad_set_active (mysrcpad, FALSE); gst_check_teardown_src_pad (gnomevfssink); gst_check_teardown_element (gnomevfssink); }
static void udpsink_test (gboolean use_buffer_lists) { GstElement *udpsink; GstPad *srcpad; GstBufferList *list; guint data_size; list = _create_buffer_list (&data_size); udpsink = gst_check_setup_element ("udpsink"); if (use_buffer_lists) _set_render_function (udpsink); srcpad = gst_check_setup_src_pad_by_name (udpsink, &srctemplate, "sink"); gst_element_set_state (udpsink, GST_STATE_PLAYING); gst_pad_push_event (srcpad, gst_event_new_new_segment_full (FALSE, 1.0, 1.0, GST_FORMAT_TIME, 0, -1, 0)); gst_pad_push_list (srcpad, list); gst_check_teardown_pad_by_name (udpsink, "sink"); gst_check_teardown_element (udpsink); if (use_buffer_lists) fail_if (data_size != render_list_bytes_received); }
static void udpsink_test (gboolean use_buffer_lists) { GstSegment segment; GstElement *udpsink; GstPad *srcpad; GstBufferList *list; guint data_size; list = create_buffer_list (&data_size); udpsink = gst_check_setup_element ("udpsink"); if (use_buffer_lists) set_render_list_function (udpsink); srcpad = gst_check_setup_src_pad_by_name (udpsink, &srctemplate, "sink"); gst_element_set_state (udpsink, GST_STATE_PLAYING); gst_pad_set_active (srcpad, TRUE); gst_pad_push_event (srcpad, gst_event_new_stream_start ("hey there!")); gst_segment_init (&segment, GST_FORMAT_TIME); gst_pad_push_event (srcpad, gst_event_new_segment (&segment)); fail_unless_equals_int (gst_pad_push_list (srcpad, list), GST_FLOW_OK); gst_check_teardown_pad_by_name (udpsink, "sink"); gst_check_teardown_element (udpsink); if (use_buffer_lists) fail_unless_equals_int (data_size, render_list_bytes_received); }
static void cleanup_appsrc (GstElement * appsrc) { GST_DEBUG ("cleanup_appsrc"); gst_check_teardown_sink_pad (appsrc); gst_check_teardown_element (appsrc); }
static void cleanup_appsink (GstElement * appsink) { GST_DEBUG ("cleanup_appsink"); gst_check_teardown_src_pad (appsink); gst_check_teardown_element (appsink); }
static void cleanup_curlfilesink (GstElement * sink) { GST_DEBUG ("cleanup_curlfilesink"); gst_check_teardown_src_pad (sink); gst_check_teardown_element (sink); }
static void cleanup_multifdsink (GstElement * multifdsink) { GST_DEBUG ("cleanup_multifdsink"); gst_check_teardown_src_pad (multifdsink); gst_check_teardown_element (multifdsink); }
static void teardown (void) { if (camera) gst_check_teardown_element (camera); GST_INFO ("done"); }
static void cleanup_audiodecodertest (void) { gst_pad_set_active (mysrcpad, FALSE); gst_pad_set_active (mysinkpad, FALSE); gst_check_teardown_src_pad (dec); gst_check_teardown_sink_pad (dec); gst_check_teardown_element (dec); }
static void cleanup_filter (GstElement * filter) { GST_DEBUG ("cleanup_element"); gst_check_teardown_src_pad (filter); gst_check_teardown_sink_pad (filter); gst_check_teardown_element (filter); }
static void cleanup_glimagesink (void) { gst_element_set_state (sinkelement, GST_STATE_NULL); gst_element_get_state (sinkelement, NULL, NULL, GST_CLOCK_TIME_NONE); gst_pad_set_active (srcpad, FALSE); gst_check_teardown_src_pad (sinkelement); gst_check_teardown_element (sinkelement); }
static void cleanup_avisubtitle (GstElement * avisubtitle) { gst_pad_set_active (mysinkpad, FALSE); gst_pad_set_active (mysrcpad, FALSE); gst_check_teardown_sink_pad (avisubtitle); gst_check_teardown_src_pad (avisubtitle); gst_check_teardown_element (avisubtitle); }
static void cleanup_filesrc (GstElement * filesrc) { gst_pad_set_active (mysinkpad, FALSE); gst_check_teardown_sink_pad (filesrc); gst_check_teardown_element (filesrc); g_cond_free (eos_cond); g_mutex_free (event_mutex); }
static void teardown_dtmfsrc (void) { gst_object_unref (testclock); gst_pad_set_active (sink, FALSE); gst_element_set_bus (dtmfsrc, NULL); gst_object_unref (bus); gst_check_teardown_sink_pad (dtmfsrc); gst_check_teardown_element (dtmfsrc); }
static void cleanup_capssetter (GstElement * capssetter) { GST_DEBUG ("cleanup_capssetter"); gst_pad_set_active (mysrcpad, FALSE); gst_pad_set_active (mysinkpad, FALSE); gst_check_teardown_src_pad (capssetter); gst_check_teardown_sink_pad (capssetter); gst_check_teardown_element (capssetter); }
static void cleanup_videotestsrc (GstElement * videotestsrc) { GST_DEBUG ("cleanup_videotestsrc"); gst_check_drop_buffers (); gst_pad_set_active (mysinkpad, FALSE); gst_check_teardown_sink_pad (videotestsrc); gst_check_teardown_element (videotestsrc); }
static void cleanup_identity (GstElement * identity) { GST_DEBUG ("cleanup_identity"); gst_pad_set_active (mysrcpad, FALSE); gst_pad_set_active (mysinkpad, FALSE); gst_check_teardown_src_pad (identity); gst_check_teardown_sink_pad (identity); gst_check_teardown_element (identity); }
static void teardown_output_selector (void) { gst_pad_set_active (input_pad, FALSE); gst_object_unref (input_pad); gst_check_teardown_src_pad (sel); g_list_foreach (output_pads, (GFunc) cleanup_pad, sel); g_list_free (output_pads); gst_check_teardown_element (sel); output_pads = NULL; }
void cleanup_level (GstElement * level) { GST_DEBUG ("cleanup_level"); gst_pad_set_active (mysrcpad, FALSE); gst_pad_set_active (mysinkpad, FALSE); gst_check_teardown_src_pad (level); gst_check_teardown_sink_pad (level); gst_check_teardown_element (level); }
static void cleanup_videodecodertest (void) { gst_pad_set_active (mysrcpad, FALSE); gst_pad_set_active (mysinkpad, FALSE); gst_check_teardown_src_pad (dec); gst_check_teardown_sink_pad (dec); gst_check_teardown_element (dec); g_list_free_full (events, (GDestroyNotify) gst_event_unref); events = NULL; }
static void cleanup_mpg123audiodec (GstElement * mpg123audiodec) { GST_DEBUG ("cleanup_mpeg1layer2dec"); gst_element_set_state (mpg123audiodec, GST_STATE_NULL); gst_pad_set_active (mysrcpad, FALSE); gst_pad_set_active (mysinkpad, FALSE); gst_check_teardown_src_pad (mpg123audiodec); gst_check_teardown_sink_pad (mpg123audiodec); gst_check_teardown_element (mpg123audiodec); }
static void cleanup_wavpackdec (GstElement * wavpackdec) { GST_DEBUG ("cleanup_wavpackdec"); gst_element_set_state (wavpackdec, GST_STATE_NULL); gst_pad_set_active (mysrcpad, FALSE); gst_pad_set_active (mysinkpad, FALSE); gst_check_teardown_src_pad (wavpackdec); gst_check_teardown_sink_pad (wavpackdec); gst_check_teardown_element (wavpackdec); }
static void cleanup_vorbistag (GstElement * vorbistag) { GST_DEBUG ("cleanup_vorbistag"); gst_element_set_state (vorbistag, GST_STATE_NULL); gst_pad_set_active (mysrcpad, FALSE); gst_pad_set_active (mysinkpad, FALSE); gst_check_teardown_src_pad (vorbistag); gst_check_teardown_sink_pad (vorbistag); gst_check_teardown_element (vorbistag); }
static void cleanup_opusdec (GstElement * opusdec) { GST_DEBUG ("cleanup_opusdec"); gst_element_set_state (opusdec, GST_STATE_NULL); gst_pad_set_active (mydecsrcpad, FALSE); gst_pad_set_active (mydecsinkpad, FALSE); gst_check_teardown_src_pad (opusdec); gst_check_teardown_sink_pad (opusdec); gst_check_teardown_element (opusdec); }
static void cleanup_x264enc (GstElement * x264enc) { GST_DEBUG ("cleanup_x264enc"); gst_element_set_state (x264enc, GST_STATE_NULL); gst_pad_set_active (mysrcpad, FALSE); gst_pad_set_active (mysinkpad, FALSE); gst_check_teardown_src_pad (x264enc); gst_check_teardown_sink_pad (x264enc); gst_check_teardown_element (x264enc); }
static void cleanup_videotestsrc (GstElement * videotestsrc) { GST_DEBUG ("cleanup_videotestsrc"); g_list_foreach (buffers, (GFunc) gst_mini_object_unref, NULL); g_list_free (buffers); buffers = NULL; gst_pad_set_active (mysinkpad, FALSE); gst_check_teardown_sink_pad (videotestsrc); gst_check_teardown_element (videotestsrc); }