diff options
author | Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> | 2012-06-05 14:18:34 +0200 |
---|---|---|
committer | Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> | 2012-06-05 19:05:46 +0200 |
commit | 10c7f77f767c52547b4fd024f3827ff41aff6d39 (patch) | |
tree | 464a4a1ea64645230be095231b5f89a63435637f | |
parent | c82df3815880a1a3c4664e20617c0a3ac33df09b (diff) |
mpegtsmux: avoid PID collision for auto-generated PID
-rw-r--r-- | gst/mpegtsmux/tsmux/tsmux.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/gst/mpegtsmux/tsmux/tsmux.c b/gst/mpegtsmux/tsmux/tsmux.c index 4e5a196d1..838c48a0c 100644 --- a/gst/mpegtsmux/tsmux/tsmux.c +++ b/gst/mpegtsmux/tsmux/tsmux.c @@ -356,9 +356,13 @@ tsmux_get_new_pid (TsMux * mux) { g_return_val_if_fail (mux != NULL, -1); - /* FIXME: It's possible that this next PID is already taken if a - * specific PID was requested earlier. We should find a free PID */ - return mux->next_stream_pid++; + /* make sure this PID is free + * (and not taken by a specific earlier request) */ + do { + mux->next_stream_pid++; + } while (tsmux_find_stream (mux, mux->next_stream_pid)); + + return mux->next_stream_pid; } /** |