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 > _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel