Skip to content

rtpdtmfdepay: fix caps negotiation with audioconvert

Specify "layout" field in src template to make sure it's set and gets fixated properly if the downstream element supports both interleaved and non-interleaved caps.


gst_pad_set_caps: assertion 'caps != NULL && gst_caps_is_fixed (caps)' failed

critical with e.g.

$ gst-launch-1.0 rtpdtmfsrc ! rtpdtmfdepay ! audioconvert ! fakesink

Not that the layout really matters in our case since we always output mono anyway, but non-interleaved requires adding AudioMeta, so this is the easiest fix.

The caps queried from the audioconvert downstream had layout = { interleaved, non-interleaved } and that field didn't get fixated, so set_caps complained.

Edited by Tim-Philipp Müller

Merge request reports