GNOME Bugzilla – Bug 741906
caps negotiation pb with empathy-call ?
Last modified: 2015-02-24 08:28:23 UTC
I cannot establish a video call with a peer, when the gstreamer pipeline contains the vaapi elements. It fails with this error : empathy-Message: Element error: Internal data flow error. -- gstbasesrc.c(2933): gst_base_src_loop (): /GstPipeline:pipeline0/FsRtpConference:fsrtpconference0/GstBin:bin2/GstNiceSrc:nicesrc2: streaming task paused, reason not-negotiated (-4) (empathy-call:1335): GStreamer-WARNING **: Element 'empathygstvideosrc0' already has parent (empathy-call:1335): empathy-WARNING **: Could not add video input to pipeline I'm running Fedora 21 (libva 1.4.1, gstreamer1 1.4.4, empathy 3.12.7, libnice 0.1.7), and gstreamer1-vaapi from git master. [bellet@gandi-2 ~]$ vainfo libva info: LIBVA_TRACE is on, save log into /tmp/vaapi.27778.023115d0 libva info: VA-API version 0.36.0 libva info: va_getDriverName() returns 0 libva info: Trying to open /usr/lib64/dri/i965_drv_video.so libva info: Found init function __vaDriverInit_0_36 libva info: va_openDriver() returns 0 vainfo: VA-API version: 0.36 (libva 1.4.1) vainfo: Driver version: Intel i965 driver for Intel(R) Sandybridge Mobile - 1.4.1 vainfo: Supported profile and entrypoints VAProfileMPEG2Simple : VAEntrypointVLD VAProfileMPEG2Main : VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice VAProfileH264Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointEncSlice VAProfileH264High : VAEntrypointVLD VAProfileH264High : VAEntrypointEncSlice VAProfileH264StereoHigh : VAEntrypointVLD VAProfileVC1Simple : VAEntrypointVLD VAProfileVC1Main : VAEntrypointVLD VAProfileVC1Advanced : VAEntrypointVLD VAProfileNone : VAEntrypointVideoProc I'll attach the log file obtained from : GST_PLUGIN_PATH=~/Development/gstreamer-vaapi/gst/vaapi/.libs /usr/libexec/empathy-call --gst-debug='*vaapi*:5,*rtp*:5,*caps*:5,*nice*:5' > /tmp/log.txt 2>&1 The peer is running the same version of Fedora 21, without gstreamer1-vaapi.
Created attachment 293258 [details] empath-call gst debug log (compressed)
Maybe the problem is located more precisely here (caps cannot intersect) : 0:00:19.672604485 8108 0x7f0ff40250f0 INFO vaapidecode gstvaapidecode.c:963:gst_vaapidecode_query:<vaapidecode0> query type caps 0:00:19.672608380 8108 0x7f0ff40250f0 DEBUG GST_PADS gstpad.c:3589:gst_pad_query:<vaapidecode0:sink> sent query 0x7f0fd8001de0 (caps), result 1 0:00:19.672612413 8108 0x7f0ff40250f0 DEBUG GST_CAPS gstutils.c:2776:gst_pad_query_caps:<vaapidecode0:sink> query returned video/mpeg, mpegversion=(int)2, profile=(string){ simple, main }; video/x-h264, profile=(string){ main, high, constrained-baseline, stereo-high }; video/x-wmv, wmvversion=(int)3, format=(string)WVC1, profile=(string)advanced; video/x-wmv, wmvversion=(int)3, profile=(string){ simple, main } 0:00:19.672623478 8108 0x7f0ff40250f0 DEBUG GST_PADS gstpad.c:2941:gst_pad_query_accept_caps_default:<vaapidecode0:sink> allowed caps subset video/mpeg, mpegversion=(int)2, profile=(string){ simple, main }; video/x-h264, profile=(string){ main, high, constrained-baseline, stereo-high }; video/x-wmv, wmvversion=(int)3, format=(string)WVC1, profile=(string)advanced; video/x-wmv, wmvversion=(int)3, profile=(string){ simple, main }, caps video/x-h264, stream-format=(string)byte-stream, alignment=(string)nal 0:00:19.672638504 8108 0x7f0ff40250f0 DEBUG GST_PADS gstpad.c:3095:gst_pad_query_default:<vaapidecode0:sink> not forwarding 0x7f0fd8002230 (accept-caps) query 0:00:19.672643160 8108 0x7f0ff40250f0 DEBUG GST_PADS gstpad.c:3589:gst_pad_query:<vaapidecode0:sink> sent query 0x7f0fd8002230 (accept-caps), result 1 0:00:19.672647920 8108 0x7f0ff40250f0 DEBUG default gstutils.c:2886:gst_pad_peer_query_accept_caps:<'':src_internal> query returned 0 0:00:19.672651569 8108 0x7f0ff40250f0 DEBUG autoconvert gstautoconvert.c:643:gst_auto_convert_activate_element:<autoconvert1> Could not set '':src_internal to video/x-h264, stream-format=(string)byte-stream, alignment=(string)nal 0:00:19.672657823 8108 0x7f0ff40250f0 DEBUG autoconvert gstautoconvert.c:608:factory_can_intersect:<autoconvert1> Factories <avdec_h264> static caps video/x-h264, alignment=(string)au, stream-format=(string){ avc, byte-stream } and caps video/x-h264, stream-format=(string)byte-stream, alignment=(string)nal can not intersect 0:00:19.672665442 8108 0x7f0ff40250f0 WARN autoconvert gstautoconvert.c:796:gst_auto_convert_sink_setcaps:<autoconvert1> Could not find a matching element for caps 0:00:19.672668678 8108 0x7f0ff40250f0 DEBUG GST_PADS gstpad.c:5156:gst_pad_send_event_unchecked:<autoconvert1:sink> sent event, ret not-negotiated
Does this issue is reproducible with current gstreamer-vaapi master branch?? (there are couple of patches already landed to fix some negotiation issues)
Yes, it works with gstreamer-vaapi master. Thanks!
(In reply to Fabrice Bellet from comment #4) > Yes, it works with gstreamer-vaapi master. Thanks! \o/