diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 827a3545..fb299456 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,7 +5,7 @@ before_script: dnf install 'dnf-command(debuginfo-install)' git libtool make libasan orc-devel python3 python3-six python3-pyparsing glib-networking asciidoc bzip2 meson ninja-build file - glib2-devel celt051-devel pixman-devel alsa-lib-devel openssl-devel libjpeg-turbo-devel + glib2-devel pixman-devel alsa-lib-devel openssl-devel libjpeg-turbo-devel libcacard-devel cyrus-sasl-devel lz4-devel opus-devel gstreamer1-devel gstreamer1-plugins-base-devel dconf @@ -31,7 +31,7 @@ makecheck: - > CFLAGS='-O2 -pipe -g -fsanitize=address -fno-omit-frame-pointer -Wframe-larger-than=40920' LDFLAGS='-fsanitize=address -lasan' - ../autogen.sh --enable-celt051 + ../autogen.sh - make - make -C server check || (cat server/tests/test-suite.log && exit 1) - cd .. @@ -41,7 +41,7 @@ meson-makecheck: - > CFLAGS='-O2 -pipe -g -fsanitize=address -fno-omit-frame-pointer -Wframe-larger-than=40920' LDFLAGS='-fsanitize=address -lasan' - meson --buildtype=release build -Dcelt051=enabled || (cat build/meson-logs/meson-log.txt && exit 1) + meson --buildtype=release build || (cat build/meson-logs/meson-log.txt && exit 1) - ninja -C build - (cd build && meson test) || (cat build/meson-logs/testlog.txt && exit 1) @@ -50,13 +50,13 @@ meson-makecheck: # --without-sasl disable SASL options: script: - - ./autogen.sh --enable-statistics --without-sasl --disable-celt051 + - ./autogen.sh --enable-statistics --without-sasl - make - make -C server check || (cat server/tests/test-suite.log && exit 1) meson-options: script: - - meson --buildtype=release -Dstatistics=true -Dsasl=false -Dcelt051=disabled build + - meson --buildtype=release -Dstatistics=true -Dsasl=false build - ninja -C build - (cd build && meson test) || (cat build/meson-logs/testlog.txt && exit 1) @@ -70,18 +70,18 @@ check-valgrind: -y - > CFLAGS='-O2 -pipe -g -D_FORTIFY_SOURCE=0' - ./autogen.sh --enable-valgrind --enable-extra-checks --enable-celt051 + ./autogen.sh --enable-valgrind --enable-extra-checks - make - make check-valgrind || (cat server/tests/test-suite-memcheck.log && exit 1) syntax-check: script: - - ./autogen.sh --enable-celt051 + - ./autogen.sh - make syntax-check distcheck: script: - - ./autogen.sh --enable-celt051 --enable-manual + - ./autogen.sh --enable-manual - make distcheck # Same as makecheck job but use a Centos image @@ -106,7 +106,7 @@ makecheck-centos: - > CFLAGS='-O2 -pipe -g -fsanitize=address -fno-omit-frame-pointer -Wframe-larger-than=40920' LDFLAGS='-fsanitize=address -lasan' - ./autogen.sh --disable-celt051 + ./autogen.sh - make - make -C server check || (cat server/tests/test-suite.log && exit 1) @@ -151,7 +151,7 @@ makecheck-windows: - (cd spice-protocol/build && mingw64-meson --werror) - ninja -C spice-protocol/build install - NOCONFIGURE=yes ./autogen.sh - - mingw64-configure --disable-celt051 + - mingw64-configure - mingw64-make - mingw64-make LOG_COMPILE=wine -C server check || (cat server/tests/test-suite.log && exit 1) @@ -163,7 +163,7 @@ websocket-autobahn: - pip2 install autobahntestsuite - wstest -a - > - meson --buildtype=release build -Dcelt051=enabled || (cat build/meson-logs/meson-log.txt && exit 1) + meson --buildtype=release build || (cat build/meson-logs/meson-log.txt && exit 1) - ninja -C build - build/server/tests/test-websocket & pid=$! - wstest -m fuzzingclient -s server/tests/fuzzingclient.json diff --git a/.travis.yml b/.travis.yml index f97288fc..9ffd2f4d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,9 +21,6 @@ install: - wget http://www.spice-space.org/download/libcacard/libcacard-LATEST.tar.xz - tar xf libcacard-LATEST.tar.xz - cd libcacard-* && ./configure --prefix=/usr && make && sudo make install && cd - - - wget http://downloads.us.xiph.org/releases/celt/celt-0.5.1.3.tar.gz - - tar xf celt-0.5.1.3.tar.gz - - cd celt-0.5.1.3 && ./configure --prefix=/usr && make && sudo make install && cd - - wget http://www.spice-space.org/download/releases/spice-protocol-0.12.10.tar.bz2 - tar xf spice-protocol-0.12.10.tar.bz2 - cd spice-protocol-0.12.10 && ./configure --prefix=/usr && make && sudo make install && cd - diff --git a/docs/manual/manual.txt b/docs/manual/manual.txt index e282919b..4dd374bd 100644 --- a/docs/manual/manual.txt +++ b/docs/manual/manual.txt @@ -196,7 +196,7 @@ client OS and the guest OS. Bidirectional Audio:: Spice supports audio playback and recording. Playback is compressed -using the CELT algorithm +using the OPUS algorithm Lip-sync:: between video and audio. Available only when video streaming is diff --git a/docs/spice_for_newbies.txt b/docs/spice_for_newbies.txt index f5a07d2d..b9cc73c7 100644 --- a/docs/spice_for_newbies.txt +++ b/docs/spice_for_newbies.txt @@ -393,8 +393,7 @@ client machine settings. This is implemented by a client command to the guest ag + . 2-way Audio and Lip-sync + -Spice supports audio playback and recording. Playback is compressed using the CELT -footnote:celt[http://www.celt-codec.org/[The CELT ultra-low delay audio codec]] algorithm. +Spice supports audio playback and recording. Playback is compressed using the OPUS algorithm. Lip-sync between video and audio is achieved by time-stamping the video frames in the QXL device and injecting them in the client side, synchronized with the audio, which is independent. + diff --git a/docs/spice_protocol.txt b/docs/spice_protocol.txt index 005afefc..7fd2dcf9 100644 --- a/docs/spice_protocol.txt +++ b/docs/spice_protocol.txt @@ -2541,8 +2541,8 @@ signed integer */ + . Playback data mode + -Two types of data mode are available: (1) raw PCM data and (2) compressed data -in CELT 0_5_1 format. +Two types of data mode are available: (1) raw PCM data, (2) compressed data +in CELT 0_5_1 format (obsolete) and (3) compressed data in OPUS format. + [source,c] ---- @@ -2561,8 +2561,8 @@ SPICE_PLAYBACK_CAP_LATENCY = 2 SPICE_PLAYBACK_CAP_OPUS = 3 ---- + -Spice client needs to declare support of CELT_5_1 in channel capabilities in -order to allow the server to send playback packets in CELT_0_5_1 format. +Spice client needs to declare support of OPUS in channel capabilities in +order to allow the server to send playback packets in OPUS format. + . SPICE_MSG_PLAYBACK_MODE, SpiceMsgPlaybackMode + @@ -2651,7 +2651,7 @@ SPICE_AUDIO_FMT_S16 = 1 /* each channel sample is a 16 bit signed integer */ . Record data mode + Two types of data mode are available: (1) raw PCM data (2) compressed data in -CELT 0.5.1 format. +CELT 0.5.1 format (obsolete) (3) compressed data in OPUS format. + [source,c] ---- @@ -2669,8 +2669,8 @@ SPICE_RECORD_CAP_VOLUME = 1 SPICE_RECORD_CAP_OPUS = 2 ---- + -Spice server needs to declare support of CELT_5_1 in channel capabilities in -order to allow the client to send recorded packets in CELT_0_5_1 format. +Spice server needs to declare support of OPUS in channel capabilities in +order to allow the client to send recorded packets in OPUS format. + . SPICE_MSGC_RECORD_MODE, SpiceMsgcRecordMode + diff --git a/subprojects/spice-common b/subprojects/spice-common index 11009d1b..31a14b20 160000 --- a/subprojects/spice-common +++ b/subprojects/spice-common @@ -1 +1 @@ -Subproject commit 11009d1b64387ad7bec9e669039fc41a0411c918 +Subproject commit 31a14b20d0f257e27a2c518a9defc30d94674a81