static GstPad * mpegts_parse_activate_program (MpegTSParse2 * parse, MpegTSParseProgram * program) { MpegTSParsePad *tspad; gchar *pad_name; pad_name = g_strdup_printf ("program_%d", ((MpegTSBaseProgram *) program)->program_number); tspad = mpegts_parse_create_tspad (parse, pad_name); tspad->program_number = ((MpegTSBaseProgram *) program)->program_number; tspad->program = program; program->tspad = tspad; g_free (pad_name); gst_pad_set_active (tspad->pad, TRUE); program->active = TRUE; return tspad->pad; }
GstPad *pad; gint program_num = -1; GstEvent *event; gchar *stream_id; g_return_val_if_fail (template != NULL, NULL); g_return_val_if_fail (GST_IS_MPEGTS_PARSE (element), NULL); g_return_val_if_fail (padname != NULL, NULL); sscanf (padname + 8, "%d", &program_num); GST_DEBUG_OBJECT (element, "padname:%s, program:%d", padname, program_num); parse = GST_MPEGTS_PARSE (element); tspad = mpegts_parse_create_tspad (parse, padname); tspad->program_number = program_num; /* Find if the program is already active */ parseprogram = (MpegTSParseProgram *) mpegts_base_get_program (GST_MPEGTS_BASE (parse), program_num); if (parseprogram) { tspad->program = parseprogram; parseprogram->tspad = tspad; } pad = tspad->pad; parse->srcpads = g_list_append (parse->srcpads, pad); base->push_data = TRUE; base->push_section = TRUE;
const gchar * unused) { MpegTSParse2 *parse; gchar *name; GstPad *pad; g_return_val_if_fail (template != NULL, NULL); g_return_val_if_fail (GST_IS_MPEGTS_PARSE (element), NULL); parse = GST_MPEGTS_PARSE (element); GST_OBJECT_LOCK (element); name = g_strdup_printf ("src%d", parse->req_pads++); GST_OBJECT_UNLOCK (element); pad = mpegts_parse_create_tspad (parse, name)->pad; gst_pad_set_active (pad, TRUE); gst_element_add_pad (element, pad); g_free (name); return pad; } static void mpegts_parse_release_pad (GstElement * element, GstPad * pad) { g_return_if_fail (GST_IS_MPEGTS_PARSE (element)); gst_pad_set_active (pad, FALSE); /* we do the cleanup in GstElement::pad-removed */ gst_element_remove_pad (element, pad);