Cannot establish an Audio/Video Call in Pidgin : streaming stopped, reason not-negotiated (-4)
Alain Knaff
alain at knaff.lu
Sun Apr 26 11:42:07 EDT 2020
Package: libpurple0
Version: 2.13.0-2+b1
Hi,
This is observed with the pidgin & libpurple included on plain Debian 10.
Whenever I try to establish an audio-video call, I get the following error boxes:
Call with sip:john.doe at hisdomain.lu failed
Conference error
Media error
Conference error
Call with sip:john.doe at ourdomain.lu failed
Error with your webcam
Media error
Error with your webcam
A small investigation showed that this was due to the gstreamer pipeline
not being able to negotiate a common format.
Originally, this pipeline is
v4l2src --> videoscale --> prpl_video_caps --> tee --> ...
prpl_video_caps is a filter on format (video/x-raw), size and framerate.
The odd thing is that there is nothing in the pipeline before this
filter to adapt format and framerate.
Unfortunately, manipulating the pipeline to also include videoconvert
and videorate before the filter doesn't fix this.
However, changing the prpl_video_caps to not filter on format, but only
on size and framerate and then inserting an extra filter with just the
format after videoconvert does seem to address the issue:
v4l2src --> videoconvert --> formatfilter --> videoscale --> prpl_video_caps --> tee --> ...
Where formatfilter filters on video/x-raw, and prpl_video_caps now
solely filters on width=[250,352], height=[200,288], framerate=[1/1,20/1]
It is weird, as the simpler configuration (one filter to filter on
everything) does work in gst-launch:
gst-launch-1.0 v4l2src ! videoconvert ! videoscale ! "video/x-raw,width=[250,352],height=[200,288],framerate=[1/1,20/1]" ! xvimagesink
Attached is a log with the error, and also a LD_PRELOADable object to do
the GST pipeline manipulation described above which works around the
issue.
N.B. I initially tried to report this to the TRAC bug reporting system
mentioned at https://developer.pidgin.im/wiki/TipsForBugReports but
unfortunately, it didn't let me register an account for doing so:
Error: Not Found
No handler matched request to /register
Thanks,
Alain
More information about the Support
mailing list