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