[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