gstreamer1.0 video issues

Andreas Gajda Andreas_Gajda at web.de
Sun Dec 1 11:57:09 EST 2019


Am Sonntag, den 01.12.2019, 14:57 +0100 schrieb Andreas Gajda:
> Hallo Everyone,
>
> I'm trying to create a video session over XMPP jingles protocoll. I
> always get an error window and several error messages.
>
> I'm using the fedora 31 version, but also compiled the same version
> from source, with no difference:
> $pidgin --version
> Pidgin 2.13.0-15.fc31 (libpurple 2.13.0)
>
> (Other programs show the webcam video with no problem.)
>
> After many hours of online search and testing, I've narrowed it down,
> that my webcam seems to use a video format, which is not support by xv.
> For example, this ends with an error:
>
> gst-launch-1.0 v4l2src device=/dev/video0 ! xvimagesink
> Leitung wird auf PAUSIERT gesetzt ...
> Leitung ist aktiv und erfordert keinen VORLAUF …
> Leitung wird auf ABSPIELEN gesetzt ...
> FEHLER: Von Element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
> Internal data stream error.
> Zusätzliche Fehlerdiagnoseinformation:
> gstbasesrc.c(3072): gst_base_src_loop ():
> /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
> streaming stopped, reason not-negotiated (-4)
>
> but this works:
> gst-launch-1.0 v4l2src device=/dev/video0 ! jpegdec ! xvimagesink
>
> Using GST_DEBUG=*:4 I've got the following format information:
> INFO        GST_ELEMENT_PADS
> gstelement.c:912:gst_element_get_static_pad: no such pad 'sink' in
> element "v4l2src0"
> INFO                    v4l2
> gstv4l2object.c:1201:gst_v4l2_object_fill_format_list:<v4l2src0:src>
> got 2 format(s):
> INFO                    v4l2
> gstv4l2object.c:1205:gst_v4l2_object_fill_format_list:<v4l2src0:src>
> YUYV
> INFO                    v4l2
> gstv4l2object.c:1205:gst_v4l2_object_fill_format_list:<v4l2src0:src>
> MJPG
> Leitung wird auf ABSPIELEN gesetzt ...
> INFO                    v4l2
> gstv4l2object.c:4252:gst_v4l2_object_probe_caps:<v4l2src0:src> probed
> caps: video/x-raw, format=(string)YUY2, width=(int)640,
> height=(int)480, pixel-aspect-ratio=(fraction)1/1,
> framerate=(fraction)30/1; video/x-raw, format=(string)YUY2,
> width=(int)640, height=(int)360, pixel-aspect-ratio=(fraction)1/1,
> framerate=(fraction)30/1; video/x-raw, format=(string)YUY2,
> width=(int)424, height=(int)240, pixel-aspect-ratio=(fraction)1/1,
> framerate=(fraction)30/1; video/x-raw, format=(string)YUY2,
> width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1,
> framerate=(fraction)30/1; video/x-raw, format=(string)YUY2,
> width=(int)320, height=(int)180, pixel-aspect-ratio=(fraction)1/1,
> framerate=(fraction)30/1; video/x-raw, format=(string)YUY2,
> width=(int)160, height=(int)120, pixel-aspect-ratio=(fraction)1/1,
> framerate=(fraction)30/1; image/jpeg, width=(int)1280, height=(int)720,
> pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1; image/jpeg,
> width=(int)960, height=(int)540, pixel-aspect-ratio=(fraction)1/1,
> framerate=(fraction)30/1; image/jpeg, width=(int)848, height=(int)480,
> pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1; image/jpeg,
> width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1,
> framerate=(fraction)30/1
>
> Is there a way to configure pidgin,e.g for using a stream converter for
> input or output? I've no experience in gstreamer programming, but if I
> can modify the source code to create a pipeline, like above, this could
> solve my problem. Any hint is appreciated.
>
> Thank you very much in advance!
> Andreas
>
> _______________________________________________
> Support at pidgin.im mailing list
> Want to unsubscribe?  Use this link:
> https://lists.pidgin.im/listinfo/support
Hello,

after some digging in libpurple, I've found that there is already some video converting in place.
But I've found another error in the logs with more logging enabled:

(17:22:40) jingle-rtp: jingle_rtp_codecs_changed_cb: session_id: audio-session jingle_session: 0x1ae4560
(17:22:40) jingle-rtp: jingle_rtp_codecs_changed_cb: session_id: audio-session jingle_session: 0x1ae4560
(17:22:40) backend-fs2: got new local candidate: 6
(17:22:40) backend-fs2: got new local candidate: 5
(17:22:40) backend-fs2: got new local candidate: 4
(17:22:40) backend-fs2: got new local candidate: 6
(17:22:40) backend-fs2: got new local candidate: 5
(17:22:40) backend-fs2: got new local candidate: 4
(17:22:40) backend-fs2: got new local candidate: 1
(17:22:40) backend-fs2: got new local candidate: 2
(17:22:40) backend-fs2: got new local candidate: 3
(17:22:40) backend-fs2: got new local candidate: 7
(17:22:40) backend-fs2: got new local candidate: 8
(17:22:40) backend-fs2: got new local candidate: 9
(17:22:40) backend-fs2: got new local candidate: 1
(17:22:40) backend-fs2: got new local candidate: 2
(17:22:40) backend-fs2: got new local candidate: 3
(17:22:40) backend-fs2: got new local candidate: 7
(17:22:40) backend-fs2: got new local candidate: 8
(17:22:40) backend-fs2: got new local candidate: 9
(17:22:40) jingle-rtp: jingle_rtp_candidates_prepared_cb
(17:22:40) jingle: jingle_iceudp_finalize
(17:22:40) jingle: jingle_transport_finalize
(17:22:40) jingle-rtp: jingle_rtp_codecs_changed_cb: session_id: video-session jingle_session: 0x1ae4560
(17:22:40) mediamanager: gst pipeline error: remote error: error set output format: -22
(17:22:40) mediamanager: Debug details: ../src/gst/gstpipewiresrc.c(950): on_remote_state_changed ():
/GstPipeline:pipeline0/GstBin:vvconfig-
videosrc/GstBin:pidgindefaultvideosrc/GstAutoVideoSrc:autovideosrc0/GstPipeWireSrc:autovideosrc0-actual-src-pipewir
(17:22:40) backend-fs2: gst error remote error: error set output format: -22
debugging: ../src/gst/gstpipewiresrc.c(950): on_remote_state_changed (): /GstPipeline:pipeline0/GstBin:vvconfig-
videosrc/GstBin:pidgindefaultvideosrc/GstAutoVideoSrc:autovideosrc0/GstPipeWireSrc:autovideosrc0-actual-src-pipewir
(17:22:40) media: Fehler mit Ihrer Webcam
(17:22:40) media: Konferenzfehler

I haven't found any information yet, which output format is used.

Andreas



More information about the Support mailing list