GstBaseTsMux *mux = GST_BASE_TS_MUX (element);
gint pid = -1;
GstPad *pad = NULL;
+ gchar *free_name = NULL;
if (name != NULL && sscanf (name, "sink_%d", &pid) == 1) {
if (tsmux_find_stream (mux->tsmux, pid))
do {
pid = tsmux_get_new_pid (mux->tsmux);
} while (gst_base_ts_mux_has_pad_with_pid (mux, pid));
+
+ /* Name the pad correctly after the selected pid */
+ name = free_name = g_strdup_printf ("sink_%d", pid);
}
pad = (GstPad *)
gst_base_ts_mux_pad_reset (GST_BASE_TS_MUX_PAD (pad));
GST_BASE_TS_MUX_PAD (pad)->pid = pid;
+ g_free (free_name);
+
return pad;
/* ERRORS */
invalid_stream_pid:
{
GST_ELEMENT_ERROR (element, STREAM, MUX,
- ("Invalid Elementary stream PID (< 0x40)"), (NULL));
+ ("Invalid Elementary stream PID (0x%02u < 0x40)", pid), (NULL));
return NULL;
}
}