[Spice-devel] (no subject)

Pavel Grunt pgrunt at redhat.com
Tue Sep 13 07:59:08 UTC 2016


Hi,

On Tue, 2016-09-13 at 15:44 +0800, Qingyun Ao wrote:
> I try to test spice with h264 on Raspberry Pi, but failed with
> error.

Please open a bug (see https://www.spice-space.org/support.html )
server should not abort. If possible attach the backtrace.

I don't know why gstreamer failed to initialize x264 encoder

Pavel

>  The spice server is started with qemu on CentOS 7, while the spicy
> client is built from spice-gtk (with gstreamer plugins including
> omx) on Debian (Raspberry Pi). Can anybody give some hint?
>  
> The following are steps I used to setup spice server.
>  
> 1. Download source codes
> yum -y install git
> git clone git://anongit.freedesktop.org/spice/spice-protocol
> git clone git://anongit.freedesktop.org/spice/spice
> git clone git://anongit.freedesktop.org/spice/qemu
>  
> 2. Install build tools
> yum -y install autoconf automake libtool
> yum -y install pyparsing
>  
> 3. Build spice protocol
> cd spice-protocol
> ./autogen.sh --prefix=/usr
> make
> make install
> cd ..
>  
> 4. Install gstreamer dependencies
> yum -y install epel-release
> rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-
> release-0-5.el7.nux.noarch.rpm [Note A]
> yum -y install gstreamer1-devel
> yum -y install gstreamer1-plugins-base-devel gstreamer1-plugins-bad-
> free gstreamer1-plugins-good gstreamer1-plugins-ugly
> yum -y install gstreamer1-libav
>  
> 5. Install other dependencies
> yum -y install glib2-devel pixman-devel celt051-devel openssl-devel
> libjpeg-turbo-devel
>  
> 6. Modify & build spice
> cd spice
> Modify server/reds.c to change video negotiation sequence by putting
> gstreamer:h264 in the first place.
> static const char default_video_codecs[] =
> "gstreamer:h264;spice:mjpeg;gstreamer:mjpeg;gstreamer:vp8";
> ./autogen.sh --enable-gstreamer=1.0 --prefix=/usr
> make
> make install
> cd ..
>  
> 7. Build qemu
> cp /usr/lib/pkgconfig/spice-server.pc /usr/share/pkgconfig/
> cd qemu
> ./configure --enable-spice --target-list=x86_64-softmmu [Note B]
> make
> make install
> cd ..
> ldconfig
>  
> 8. Create & start Windows 7 guest
> /usr/local/bin/qemu-img create –f qcow2 win7.img 30G
> /usr/local/bin/qemu-system-x86_64 -cpu host -smp 2,sockets=1,cores=2
> -m 2048 -net nic,model=virtio -net user -drive file=virtio-win-
> amd64.vfd,if=floppy -drive file=win7.img,if=virtio,index=0 -cdrom
> win7.iso -boot d --enable-kvm -vga qxl -spice
> port=5900,ipv4,disable-ticketing,image-compression=auto_glz,jpeg-
> wan-compression=always,playback-compression=off,zlib-glz-wan-
> compression=never,streaming-video=filter,agent-mouse=on [Note C]
> Connect Windows 7 guest from Raspberry Pi by executing: spicy –h
> ###.###.### -p 5900
>  
> 9. Test H264 video
> Install Windows 7 OS
> Install ovirt-4.0 guest tool (with qxl driver)
> Install PotPlayer
> Run PotPlayer
>  
> 10. Got error on CentOS 7
>  
>  (qemu-system-x86_64:35545): Spice-WARNING **: gstreamer-
> encoder.c:773:map_format: The 8 format has not been tested yet
>  
> (qemu-system-x86_64:35545): Spice-WARNING **: gstreamer-
> encoder.c:816:handle_pipeline_message: GStreamer error from element
> encoder: Can not initialize x264 encoder.
>  
> (qemu-system-x86_64:35545): Spice-WARNING **: gstreamer-
> encoder.c:816:handle_pipeline_message: GStreamer error from element
> encoder: GStreamer error: negotiation problem.
>  
> (qemu-system-x86_64:35545): Spice-WARNING **: gstreamer-
> encoder.c:816:handle_pipeline_message: GStreamer error from element
> src: Internal data flow error.
>  
> (qemu-system-x86_64:35545): Spice-WARNING **: gstreamer-
> encoder.c:816:handle_pipeline_message: GStreamer error from element
> encoder: Can not initialize x264 encoder.
>  
> (qemu-system-x86_64:35545): Spice-WARNING **: gstreamer-
> encoder.c:816:handle_pipeline_message: GStreamer error from element
> encoder: GStreamer error: negotiation problem.
>  
> (qemu-system-x86_64:35545): Spice-WARNING **: gstreamer-
> encoder.c:816:handle_pipeline_message: GStreamer error from element
> src: Internal data flow error.
>  
> (qemu-system-x86_64:35545): Spice-ERROR **: ../spice-
> common/common/ring.h:55:ring_add: assertion `ring->next != NULL &&
> ring->prev != NULL' failed
> Trace/breakpoint trap(Dump)
>  
> [Note A]
> The output for “yum search gstreamer1*” before nux installation:
> gstreamer1.x86_64 : GStreamer streaming media framework runtime
> gstreamer1.i686 : GStreamer streaming media framework runtime
> gstreamer1-devel.i686 : Libraries/include files for GStreamer
> streaming media framework
> gstreamer1-devel.x86_64 : Libraries/include files for GStreamer
> streaming media framework
> gstreamer1-devel-docs.noarch : Developer documentation for GStreamer
> streaming media framework
> gstreamer1-plugins-bad-free.x86_64 : GStreamer streaming media
> framework "bad" plugins
> gstreamer1-plugins-bad-free.i686 : GStreamer streaming media
> framework "bad" plugins
> gstreamer1-plugins-bad-free-devel.i686 : Development files for the
> GStreamer media framework "bad" plug-ins
> gstreamer1-plugins-bad-free-devel.x86_64 : Development files for the
> GStreamer media framework "bad" plug-ins
> gstreamer1-plugins-base.x86_64 : GStreamer streaming media framework
> base plugins
> gstreamer1-plugins-base.i686 : GStreamer streaming media framework
> base plugins
> gstreamer1-plugins-base-devel.i686 : GStreamer Base Plugins
> Development files
> gstreamer1-plugins-base-devel.x86_64 : GStreamer Base Plugins
> Development files
> gstreamer1-plugins-base-devel-docs.noarch : Developer documentation
> for GStreamer Base plugins library
> gstreamer1-plugins-base-tools.x86_64 : Tools for GStreamer streaming
> media framework base plugins
> gstreamer1-plugins-good.x86_64 : GStreamer plugins with good code
> and licensing
> gstreamer1-plugins-good.i686 : GStreamer plugins with good code and
> licensing
>  
> The packages added for “yum search gstreamer1*” after nux
> installation:
> gstreamer1-libav-debuginfo.x86_64 : Debug information for package
> gstreamer1-libav
> gstreamer1-plugins-bad-freeworld-debuginfo.x86_64 : Debug
> information for package gstreamer1-plugins-bad-freeworld
> gstreamer1-plugins-ugly-debuginfo.x86_64 : Debug information for
> package gstreamer1-plugins-ugly
> gstreamer1-rtsp-server-devel.x86_64 : Development files for
> gstreamer1-rtsp-server
> gstreamer1-vaapi-debuginfo.x86_64 : Debug information for package
> gstreamer1-vaapi
> gstreamer1-vaapi-devel.x86_64 : Development files for gstreamer1-
> vaapi
> gstreamer1-libav.x86_64 : GStreamer 1.0 libav-based plug-ins
> gstreamer1-plugins-bad-freeworld.x86_64 : GStreamer 1.0 streaming
> media framework "bad" plug-ins
> gstreamer1-plugins-ugly.x86_64 : GStreamer 1.0 streaming media
> framework "ugly" plug-ins
> gstreamer1-plugins-ugly-devel-docs.noarch : Development
> documentation for the GStreamer "ugly" plug-ins
> gstreamer1-rtsp-server.x86_64 : GStreamer RTSP server library
> gstreamer1-rtsp-server-devel-docs.noarch : Developer documentation
> for GStreamer-based RTSP server library
> gstreamer1-vaapi.x86_64 : GStreamer plugins to use VA API video
> acceleration
> mingw32-gstreamer1.noarch : MinGW Windows Streaming-Media Framework
> Runtime
> mingw32-gstreamer1-plugins-base.noarch : Cross compiled GStreamer
> media framework base plug-ins
> mingw64-gstreamer1.noarch : MinGW Windows Streaming-Media Framework
> Runtime
> mingw64-gstreamer1-plugins-base.noarch : Cross compiled GStreamer
> media framework base plug-ins
>  
> [Note B]
> The output for executing the script: ./configure --enable-spice --
> target-list=x86_64-softmmu
> No C++ compiler available; disabling C++ specific optional code
> Install prefix    /usr/local
> BIOS directory    /usr/local/share/qemu
> binary directory  /usr/local/bin
> library directory /usr/local/lib
> module directory  /usr/local/lib/qemu
> libexec directory /usr/local/libexec
> include directory /usr/local/include
> config directory  /usr/local/etc
> local state directory   /usr/local/var
> Manual directory  /usr/local/share/man
> ELF interp prefix /usr/gnemul/qemu-%M
> Source path       /root/qemu
> C compiler        cc
> Host C compiler   cc
> C++ compiler    
> Objective-C compiler cc
> ARFLAGS           rv
> CFLAGS            -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -pthread
> -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include   -g
> QEMU_CFLAGS       -I/usr/include/pixman-1    -Werror -fPIE -DPIE
> -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
> -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings
> -Wmissing-prototypes -fno-strict-aliasing -fno-common  -Wendif-
> labels -Wmissing-include-dirs -Wempty-body -Wnested-externs
> -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers
> -Wold-style-declaration -Wold-style-definition -Wtype-limits
> -fstack-protector-strong  -I/usr/include/glib-2.0 -I/usr/lib64/glib-
> 2.0/include -I/usr/include/pixman-1 -I/usr/include/spice-1
> -I/usr/include/spice-server
> LDFLAGS           -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -pie
> -m64 –g
> make              make
> install           install
> python            python -B
> smbd              /usr/sbin/smbd
> module support    no
> host CPU          x86_64
> host big endian   no
> target list       x86_64-softmmu
> tcg debug enabled no
> gprof enabled     no
> sparse enabled    no
> strip binaries    yes
> profiler          no
> static build      no
> pixman            system
> SDL support       no
> GTK support       no
> GTK GL support    no
> VTE support       no
> TLS priority      NORMAL
> GNUTLS support    no
> GNUTLS rnd        no
> libgcrypt         no
> libgcrypt kdf     no
> nettle            no
> nettle kdf        no
> libtasn1          no
> curses support    no
> virgl support     no
> curl support      no
> mingw32 support   no
> Audio drivers     oss
> Block whitelist (rw)
> Block whitelist (ro)
> VirtFS support    no
> VNC support       yes
> VNC SASL support  no
> VNC JPEG support  yes
> VNC PNG support   no
> xen support       no
> brlapi support    no
> bluez  support    no
> Documentation     no
> PIE               yes
> vde support       no
> netmap support    no
> Linux AIO support no
> ATTR/XATTR support yes
> Install blobs     yes
> KVM support       yes
> RDMA support      no
> TCG interpreter   no
> fdt support       no
> preadv support    yes
> fdatasync         yes
> madvise           yes
> posix_madvise     yes
> uuid support      no
> libcap-ng support no
> vhost-net support yes
> vhost-scsi support yes
> Trace backends    log
> spice support     yes (0.12.12/0.13.2.38-5d6e-dirty)
> rbd support       no
> xfsctl support    no
> smartcard support no
> libusb            no
> usb net redir     no
> OpenGL support    no
> OpenGL dmabufs    no
> libiscsi support  no
> libnfs support    no
> build guest agent yes
> QGA VSS support   no
> QGA w32 disk info no
> QGA MSI support   no
> seccomp support   no
> coroutine backend ucontext
> coroutine pool    yes
> GlusterFS support no
> Archipelago support no
> gcov              gcov
> gcov enabled      no
> TPM support       yes
> libssh2 support   no
> TPM passthrough   yes
> QOM debugging     yes
> vhdx              no
> lzo support       no
> snappy support    no
> bzip2 support     no
> NUMA host support no
> tcmalloc support  no
> jemalloc support  no
> avx2 optimization yes
>  
> [Note C]
> win7.iso is Windows 7 (64bit) Installation ISO
> virtio-win-amd64.vfd is virtual floppy image file with virtio driver
> 


More information about the Spice-devel mailing list