Skip to content

decodebin3: introduce parse input lock for upstream changes

When upstream changes like dynamic stream changes is happened, below symptom may be observed.

  1. DecodebinInputSteam is created in create_input_stream. But, it is not linked yet to multiqueue sinkpad and not assigned.
  2. custom-eos is delivered to multiqueue srcpad and it understands input stream is null and try to release slot by async call.
  3. The new input stream is linked to slot by link_input_to_slot.
  4. The slot is released by free_multiqueue_slot.

After that the DecodebinInputStream lost correponding slot and It may cause unexpected behaviour or crash symptom.

To avoid this problem, take parse input lock for create_input_stream and custom-eos is handled in multiqueue srcpad.

Merge request reports