Commit df724c41 authored by Luis de Bethencourt's avatar Luis de Bethencourt Committed by Tim-Philipp Müller

rtph265pay: fix potential crash when shutting down

A race condition in the state change function may cause buffers to be
unreffed while they are still used by the streaming thread in
gst_rtp_h265_pay_send_vps_sps_pps() resulting in a crash. Chain up to the
parent class first in the state change function to make sure streaming
has stopped and only then free those buffers.
parent f2bae3ab
......@@ -1431,6 +1431,13 @@ gst_rtp_h265_pay_change_state (GstElement * element, GstStateChange transition)
rtph265pay->send_vps_sps_pps = FALSE;
gst_adapter_clear (rtph265pay->adapter);
ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
switch (transition) {
rtph265pay->last_vps_sps_pps = -1;
gst_rtp_h265_pay_clear_vps_sps_pps (rtph265pay);
......@@ -1439,8 +1446,6 @@ gst_rtp_h265_pay_change_state (GstElement * element, GstStateChange transition)
ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
return ret;
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment