diff options
| author | František Dvořák <valtri@civ.zcu.cz> | 2014-07-02 22:22:38 +0200 |
|---|---|---|
| committer | František Dvořák <valtri@civ.zcu.cz> | 2014-07-02 22:22:38 +0200 |
| commit | 59b0e77bf65c413e87649ca1fbe980fd4c6e86a8 (patch) | |
| tree | 3215ce8cbb793e2e16288a6aabab4eb06fa17e66 /gsm | |
| download | codecs-testing-mingw-59b0e77bf65c413e87649ca1fbe980fd4c6e86a8.tar.gz codecs-testing-mingw-59b0e77bf65c413e87649ca1fbe980fd4c6e86a8.tar.xz codecs-testing-mingw-59b0e77bf65c413e87649ca1fbe980fd4c6e86a8.zip | |
Initial import.
Diffstat (limited to 'gsm')
| -rwxr-xr-x | gsm/clean.sh | 2 | ||||
| -rw-r--r-- | gsm/gsm.c | 44 | ||||
| -rwxr-xr-x | gsm/test.sh | 25 |
3 files changed, 71 insertions, 0 deletions
diff --git a/gsm/clean.sh b/gsm/clean.sh new file mode 100755 index 0000000..281f29a --- /dev/null +++ b/gsm/clean.sh @@ -0,0 +1,2 @@ +#! /bin/bash -xe +rm -fv gsmdec* gsmenc* jam*.wave jam*.gsm diff --git a/gsm/gsm.c b/gsm/gsm.c new file mode 100644 index 0000000..5df1dc0 --- /dev/null +++ b/gsm/gsm.c @@ -0,0 +1,44 @@ +#define CC /* +gcc -W -Wall -g -O2 $0 -o gsmdec-linux -lgsm || exit $? +i686-w64-mingw32-gcc -W -Wall -g -O2 $0 -o gsmdec-win32.exe -lgsm || exit $? +x86_64-w64-mingw32-gcc -W -Wall -g -O2 $0 -o gsmdec-win64.exe -lgsm || exit $? +gcc -W -Wall -g -O2 -DENCODE $0 -o gsmenc-linux -lgsm || exit $? +i686-w64-mingw32-gcc -W -Wall -g -O2 -DENCODE $0 -o gsmenc-win32.exe -lgsm || exit $? +x86_64-w64-mingw32-gcc -W -Wall -g -O2 -DENCODE $0 -o gsmenc-win64.exe -lgsm || exit $? +exit 0 +*/ + +#include <unistd.h> +#include <gsm.h> +#ifdef WIN32 +#include <fcntl.h> +#endif + +int main() { + gsm g; + gsm_signal wave[160]; + gsm_frame data; + ssize_t len; + +#ifdef WIN32 + setmode(0, _O_BINARY); + setmode(1, _O_BINARY); +#endif + g = gsm_create(); +#ifdef ENCODE + while ((len = read(0, wave, sizeof wave)) != 0) { + if (len != sizeof wave) return 1; + gsm_encode(g, wave, data); + if (write(1, (char *)data, sizeof data) != sizeof data) return 3; + } +#else + while ((len = read(0, (char *)data, sizeof data)) != 0) { + if (len != sizeof data) return 1; + if (gsm_decode(g, data, wave) < 0) return 2; + if (write(1, wave, sizeof wave) != sizeof wave) return 3; + } +#endif + gsm_destroy(g); + + return 0; +} diff --git a/gsm/test.sh b/gsm/test.sh new file mode 100755 index 0000000..bbd3ea8 --- /dev/null +++ b/gsm/test.sh @@ -0,0 +1,25 @@ +#! /bin/bash -xe + +# +# yum install gsm +# yum install mingw32-gsm mingw64-gsm --enablerepo=updates-testing +# + +rm -f gsmdec* gsmenc* jam*.wave jam*.gsm + +sh -x `dirname $0`/gsm.c + +dd if=/dev/urandom bs=320 count=10240 > jam.wave + +./gsmenc-linux < jam.wave > jam-linux.gsm +./gsmdec-linux < jam-linux.gsm > jam-decoded-linux.wave + +export WINEPREFIX=$HOME/.wine32 +./gsmenc-win32.exe < jam.wave > jam-win32.gsm +./gsmdec-win32.exe < jam-linux.gsm > jam-decoded-win32.wave + +export WINEPREFIX=$HOME/.wine64 +./gsmenc-win64.exe < jam.wave > jam-win64.gsm +./gsmdec-win64.exe < jam-linux.gsm > jam-decoded-win64.wave + +md5sum jam*.wave jam*.gsm |
