mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-22 07:08:23 +00:00
mpegtsmux: Avoid crash releasing pad with NULL prog
If we release a pad while the muxer is running which has never been used for aggregation (thus it does not have an assigned program), `prog` is NULL. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1411>
This commit is contained in:
parent
9e977832c1
commit
cba9ba9b38
1 changed files with 8 additions and 6 deletions
|
@ -1292,13 +1292,15 @@ gst_base_ts_mux_release_pad (GstElement * element, GstPad * pad)
|
|||
GstBaseTsMuxPad *ts_pad = GST_BASE_TS_MUX_PAD (pad);
|
||||
gint pid = ts_pad->pid;
|
||||
|
||||
if (ts_pad->prog->pcr_stream == ts_pad->stream) {
|
||||
tsmux_stream_pcr_unref (ts_pad->prog->pcr_stream);
|
||||
ts_pad->prog->pcr_stream = NULL;
|
||||
}
|
||||
if (tsmux_remove_stream (mux->tsmux, pid, ts_pad->prog)) {
|
||||
g_hash_table_remove (mux->programs, GINT_TO_POINTER (ts_pad->prog_id));
|
||||
if (ts_pad->prog) {
|
||||
if (ts_pad->prog->pcr_stream == ts_pad->stream) {
|
||||
tsmux_program_set_pcr_stream (ts_pad->prog, NULL);
|
||||
}
|
||||
if (tsmux_remove_stream (mux->tsmux, pid, ts_pad->prog)) {
|
||||
g_hash_table_remove (mux->programs, GINT_TO_POINTER (ts_pad->prog_id));
|
||||
}
|
||||
}
|
||||
|
||||
tsmux_resend_pat (mux->tsmux);
|
||||
tsmux_resend_si (mux->tsmux);
|
||||
|
||||
|
|
Loading…
Reference in a new issue