webrtcbin create-answer returns unknown SDP type

Alexei Golovko alexej.golovko at gmail.com
Wed Jul 6 10:55:58 UTC 2022


`apt show python3-gst-1.0` gives me version 1.20.1

Also I made a minimal example without external dependencies: just set
hardcoded SDP as local-description and emit create-answer.
https://pastebin.com/9xPk6EkY
It also prints unknown SDP type, new enum value each run:
https://pastebin.com/zKhDsLZZ

This behaviour also reproduces with python 3.9 on NixOS 22.05 (I've used
the following shell.nix: https://pastebin.com/vsBG5RXR).

вт, 5 июл. 2022 г. в 17:33, Matthew Waters <ystreet00 at gmail.com>:

> Looks like you are looking for python3-gst-1.0:
> https://packages.ubuntu.com/search?suite=default&section=all&arch=any&keywords=python3-gst&searchon=names
> .
>
> I don't know how exactly the python bindings operate so cannot give you
> that information.  Others on this list may be able to point you in the
> right direction.
>
> On 5/7/22 23:19, Alexei Golovko wrote:
>
> I have installed python3-gi package from apt repository, version
> 3.42.0-3build1.
> Yes, value for the enum changes each run.
> Could you give advice on how to check if this is a python binding problem
> or lower-level one?
>
> вт, 5 июл. 2022 г. в 16:02, Matthew Waters <ystreet00 at gmail.com>:
>
>> Please keep the list in CC so others searching for the same issue might
>> find a solution.
>>
>> PyGObject is not gst-python.  gst-python provides some convenience API on
>> top of PyGObject and may be required in this case.
>>
>> That log is expected for your case (no existing transceiver or pad).
>>
>> The value for the enum is different from your last run.  This points to
>> uninitialized/random memory being accessed.  You would need to figure out
>> if that's in the python translation layer or not.
>>
>> Cheers
>> -Matt
>>
>> On 5/7/22 22:41, Alexei Golovko wrote:
>>
>> Here is the log with GST_DEBUG=3,*webrtc*:7 —
>> https://pastebin.com/RshtnqQx
>> I use PyGObject 3.42.1.
>>
>> I see in logs following lines:
>> 2022-07-05 15:15:57.949 jord ERROR| 0:00:01.214992971     9
>> 0x55e2cbd19980 DEBUG              webrtcbin
>> gstwebrtcbin.c:1874:_find_codec_preferences:<webrtctransceiver0> Could not
>> find caps for mline 0
>> 2022-07-05 15:15:57.949 jord ERROR| 0:00:01.215007126     9
>> 0x55e2cbd19980 TRACE              webrtcbin
>> gstwebrtcbin.c:4071:_create_answer_task:<wrb> trying to compare
>> application/x-rtp, media=(string)video, payload=(int)96,
>> clock-rate=(int)90000, encoding-name=(string)H264,
>> profile-level-id=(string)42e01f, packetization-mode=(string)1,
>> rtcp-fb-nack=(boolean)true, rtcp-fb-nack-pli=(boolean)true,
>> rtcp-fb-goog-remb=(boolean)true; application/x-rtp, media=(string)video,
>> payload=(int)97, clock-rate=(int)90000, encoding-name=(string)RTX,
>> apt=(string)96 and (NULL)
>>
>> Maybe they are related to the problem, though I am not sure.
>>
>> вт, 5 июл. 2022 г. в 15:12, Matthew Waters <ystreet00 at gmail.com>:
>>
>>> Hi,
>>>
>>> That SDP doesn't actually exist as a valid value.  You can enable
>>> GStreamer debugging with GST_DEBUG=3,*webrtc*:7 and that may show
>>> something interesting.
>>>
>>> Otherwise, one has to figure out if the python bindings are doing
>>> something weird here.  I assume you have a relevant gst-python
>>> installation available and in use.
>>>
>>> Cheers
>>> -Matt
>>>
>>> On 5/7/22 02:44, Alexei Golovko via gstreamer-devel wrote:
>>> > Hi,
>>> > I try to use webrtcbin with Janus.
>>> > I've found examples like
>>> >
>>> https://github.com/centricular/gstwebrtc-demos/blob/master/janus/janusvideoroom.py
>>> ,
>>> >
>>> https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/blob/master/tests/examples/webrtc/webrtcrenego.c
>>> ,
>>> >
>>> https://github.com/centricular/gstwebrtc-demos/blob/master/sendrecv/gst-rust/src/main.rs
>>> ,
>>> >
>>> https://gitlab.freedesktop.org/gstreamer/gst-examples/-/blob/master/webrtc/sendrecv/gst/webrtc_sendrecv.py
>>> .
>>> >
>>> > They tend to create an offer locally, send it to Janus, receive an
>>> > answer and set it as a remote description. I would like to mimic
>>> > behaviour, which we used to use with python's aiortc: get an offer
>>> > from Janus, generate an answer and send it back.
>>> >
>>> > I set SDP offer from Janus with set-remote-description, then emit
>>> > create-answer; but I get an answer WebRTCSessionDescription with an
>>> > empty SDP and a very strange WebRTCSDPType=-43384639 (non-existing
>>> enum?).
>>> >
>>> > What am I doing wrong and how to fix this?
>>> >
>>> > The python script used is here: https://pastebin.com/WGPcF64m
>>> > Module dvr_processor.dvr_processor.janus contains communication with
>>> > Janus: https://pastebin.com/KAhTv8Lq
>>> > Logs are here: https://pastebin.com/QVegDhRZ
>>> >
>>> > It is gstreamer 1.20.1 on ubuntu-22.04 based image.
>>> >
>>> > Regards,
>>> > Alexei Golovko.
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20220706/b091caf1/attachment.htm>


More information about the gstreamer-devel mailing list