GNOME Bugzilla – Bug 739542
interaudiosrc: racy caps negotiation/fixation
Last modified: 2014-11-03 09:59:50 UTC
interaudiosrc occasionally makes the generic/states unit test fail: 0:00:00.083560608 28393 0x7f1720 DEBUG check generic/states.c:103:test_state_changes_up_and_down_seq: test start 0:00:00.083573401 28393 0x7f1720 DEBUG check generic/states.c:113:test_state_changes_up_and_down_seq: testing element interaudiosrc [New Thread 0x7ffff545d700 (LWP 28411)] 0:00:00.133478286 28393 0x7f1720 DEBUG check generic/states.c:113:test_state_changes_up_and_down_seq: testing element interaudiosrc 0:00:00.133741070 28393 0x7f1720 DEBUG check generic/states.c:113:test_state_changes_up_and_down_seq: testing element interaudiosrc 0:00:00.133949399 28393 0x7f1720 DEBUG check generic/states.c:113:test_state_changes_up_and_down_seq: testing element interaudiosrc 0:00:00.134032778 28393 0x7764a0 ERROR interaudiosrc gstinteraudiosrc.c:432:gst_inter_audio_src_fixate:<interaudiosrc> fixate audio/x-raw (lt-states:28393): GStreamer-CRITICAL **: gst_structure_fixate_field_string: assertion 'gst_structure_has_field (structure, field_name)' failed Program received signal SIGTRAP, Trace/breakpoint trap.
+ Trace 234295
Thread 140737308382976 (LWP 28411)
I don't know why it has a fixate function in the first place, that doesn't seem to make sense to me seeing that caps are determined by whatever the sink on the other end of the surface/tunnel receives.
It has fixate functions because if there is no corresponding sink it will have to output silence in some format :) For the video source it also has a fixate function because the framerate can be configured there. commit f660537fd593e0098f491af4ed8aaf8014373b67 Author: Sebastian Dröge <sebastian@centricular.com> Date: Mon Nov 3 10:05:59 2014 +0100 interaudio: Set all required fields on the template caps https://bugzilla.gnome.org/show_bug.cgi?id=739542
Ah yes, of course :)