Audio src blocked before session set up

David Woodhouse dwmw2 at infradead.org
Wed Apr 18 17:18:54 EDT 2018


I've suddenly started experiencing a problem where my outbound audio in
Pidgin is missing — Farstream never seems to send any audio, and I
don't even get the farstream-send-codec-changed signal.

It's sporadic, and relatively hard to reproduce. And of course the more
I turn up the GST_DEBUG debugging, the harder it gets.

It looks like the problem occurs when pulsesrc gets blocked:

New App transmitter
(11:21:32) GLib-GObject: g_object_newv: object class 'FsAppStreamTransmitter' has no property named 'controlling-mode'
0:00:05.967645116 23118      0x1e07290 WARN            fsconference fs-stream-transmitter.c:294:fs_stream_transmitter_set_property: Subclass FsAppStreamTransmitter of FsStreamTransm
itter does not override the preferred-local-candidates property setter
0:00:05.967674719 23118      0x1e07290 INFO               GST_EVENT gstevent.c:1382:gst_event_new_reconfigure: creating reconfigure event
(11:21:32) media: Creating hash table for sessions
(11:21:32) gtkmedia: state: 0 sid: chime name: (null)
(11:21:32) headset: media state-changed: PURPLE_MEDIA_STATE_NEW chime (null)
0:00:05.938819668 23118      0x2e41630 INFO        GST_ELEMENT_PADS gstelement.c:904:gst_element_get_static_pad: no such pad 'sink' in element "pulsesrc0"
0:00:05.967796826 23118      0x2e41630 FIXME                default gstutils.c:3766:gst_pad_create_stream_id_internal:<pulsesrc0:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
0:00:05.967852418 23118      0x2e41630 INFO                 basesrc gstbasesrc.c:2739:gst_base_src_loop:<pulsesrc0> pausing after gst_base_src_get_range() = flushing
0:00:05.967864004 23118      0x2e41630 INFO                    task gsttask.c:316:gst_task_func:<pulsesrc0:src> Task going to paused
(11:21:32) chime: Call media state 0


After that, I never get any more audio data.

In a working call, the first buffer from the pulsesrc seems to come
*earlier*, and I don't quite understand what's going on, but it doesn't
get paused and everything works.

 $ grep backend-fs2 fscall-working
(11:19:53) backend-fs2: Creating hash table for sessions
(11:19:53) backend-fs2: connecting pad: success
(11:19:53) backend-fs2: create_src: setting source state to GST_STATE_PLAYING - it may hang here on win32
(11:19:53) backend-fs2: create_src: state set
(11:19:53) backend-fs2: Creating hash table for participants
(11:19:53) backend-fs2: got new local candidate: (null)
(11:19:53) backend-fs2: farstream-send-codec-changed: codec: 97: audio CHIME clock:16000 channels:1
(11:19:54) backend-fs2: farstream-recv-codecs-changed: CHIME

 $ grep backend-fs2 fscall-silent
(11:21:32) backend-fs2: Creating hash table for sessions
(11:21:32) backend-fs2: connecting pad: success
(11:21:32) backend-fs2: create_src: setting source state to GST_STATE_PLAYING - it may hang here on win32
(11:21:32) backend-fs2: create_src: state set
(11:21:32) backend-fs2: Creating hash table for participants
(11:21:32) backend-fs2: got new local candidate: (null)
(11:21:32) backend-fs2: farstream-recv-codecs-changed: CHIME

Log files at http://david.woodhou.se/fscall-silent and
http://david.woodhou.se/fscall-working

Graphs at http://david.woodhou.se/fscall-silent-graph.svg and
http://david.woodhou.se/fscall-working-graph.svg

What's going wrong here? Is Pidgin setting the src element to PLAYING
too soon? This is Farstream 0.2.7 FWIW; is there something fixed in
0.2.8 or later? 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 5213 bytes
Desc: not available
URL: <https://pidgin.im/pipermail/devel/attachments/20180418/e385edfe/attachment.bin>


More information about the Devel mailing list