hlsdemux: fix race condition while changing bitrate and seeking
Submitted by Philip Murphy
Link to original bug (#756913)
Description
- Changed GST_M3U8_CLIENT_LOCK to a recursive mutex
- This was needed as a race condition was present in gst_hls_demux_change_playlist, while switching
variant it was possible for a seek to occur because the mutex was unlocked. This seek would fail at this point because
client->current->endlist would not have been set to true yet. Changing GST_M3U8_CLIENT_LOCK to a recursive mutex prevents
a seek occurring while switching variant.
- This was needed as a race condition was present in gst_hls_demux_change_playlist, while switching
- This fix only applies to 1.4.5
- I understand that changing GST_M3U8_CLIENT_LOCK to a recursive mutex may not be an ideal solution, so I am open to suggestions on a more appropriate solution.
Version: 1.4.5