After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 739542 - interaudiosrc: racy caps negotiation/fixation
interaudiosrc: racy caps negotiation/fixation
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal normal
: 1.5.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-11-03 00:05 UTC by Tim-Philipp Müller
Modified: 2014-11-03 09:59 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Tim-Philipp Müller 2014-11-03 00:05:54 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.

Thread 140737308382976 (LWP 28411)

  • #0 g_logv
    at gmessages.c line 1046
  • #1 g_log
    at gmessages.c line 1079
  • #2 g_return_if_fail_warning
  • #3 gst_structure_fixate_field_string
    at gststructure.c line 2669
  • #4 gst_inter_audio_src_fixate
    at gstinteraudiosrc.c line 439
  • #5 gst_base_src_fixate
    at gstbasesrc.c line 965
  • #6 gst_base_src_default_negotiate
    at gstbasesrc.c line 3210
  • #7 gst_base_src_negotiate
    at gstbasesrc.c line 3255
  • #8 gst_base_src_loop
    at gstbasesrc.c line 2682
  • #9 gst_task_func
    at gsttask.c line 317
  • #10 g_thread_pool_thread_proxy
    at gthreadpool.c line 307
  • #11 g_thread_proxy
    at gthread.c line 764
  • #12 start_thread
    at pthread_create.c line 309
  • #13 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 111


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.
Comment 1 Sebastian Dröge (slomo) 2014-11-03 09:08:23 UTC
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
Comment 2 Tim-Philipp Müller 2014-11-03 09:59:50 UTC
Ah yes, of course :)