summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gst/mpegtsmux/gstbasetsmux.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/gst/mpegtsmux/gstbasetsmux.c b/gst/mpegtsmux/gstbasetsmux.c
index d2a73dd4f..045c34ddb 100644
--- a/gst/mpegtsmux/gstbasetsmux.c
+++ b/gst/mpegtsmux/gstbasetsmux.c
@@ -1268,6 +1268,10 @@ gst_base_ts_mux_request_new_pad (GstElement * element, GstPadTemplate * templ,
if (name != NULL && sscanf (name, "sink_%d", &pid) == 1) {
if (tsmux_find_stream (mux->tsmux, pid))
goto stream_exists;
+ /* Make sure we don't use reserved PID.
+ * FIXME : This should be extended to other variants (ex: ATSC) reserved PID */
+ if (pid < TSMUX_START_ES_PID)
+ goto invalid_stream_pid;
} else {
pid = tsmux_get_new_pid (mux->tsmux);
}
@@ -1288,6 +1292,13 @@ stream_exists:
(NULL));
return NULL;
}
+
+invalid_stream_pid:
+ {
+ GST_ELEMENT_ERROR (element, STREAM, MUX,
+ ("Invalid Elementary stream PID (< 0x40)"), (NULL));
+ return NULL;
+ }
}
static void