summaryrefslogtreecommitdiff
path: root/gst/mpegtsmux/gstbasetsmux.c
diff options
context:
space:
mode:
Diffstat (limited to 'gst/mpegtsmux/gstbasetsmux.c')
-rw-r--r--gst/mpegtsmux/gstbasetsmux.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gst/mpegtsmux/gstbasetsmux.c b/gst/mpegtsmux/gstbasetsmux.c
index 50009af4b..5fc5ee0a2 100644
--- a/gst/mpegtsmux/gstbasetsmux.c
+++ b/gst/mpegtsmux/gstbasetsmux.c
@@ -1353,6 +1353,7 @@ gst_base_ts_mux_request_new_pad (GstElement * element, GstPadTemplate * templ,
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))
@@ -1365,6 +1366,9 @@ gst_base_ts_mux_request_new_pad (GstElement * element, GstPadTemplate * templ,
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 *)
@@ -1374,6 +1378,8 @@ gst_base_ts_mux_request_new_pad (GstElement * element, GstPadTemplate * templ,
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 */
@@ -1387,7 +1393,7 @@ stream_exists:
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;
}
}