gsm_create man page on Alpinelinux

Man page or keyword search:  
man Server   18016 pages
apropos Keyword Search (all sections)
Output format
Alpinelinux logo
[printable version]

GSM(3)									GSM(3)

NAME
       gsm_create, gsm_destroy, gsm_encode, gsm_decode — GSM 06.10 lossy sound
       compression

SYNOPSIS
       #include "gsm.h"

       gsm gsm_create();

       void gsm_encode(handle, src, dst)
       gsm handle;
       gsm_signal src[160];
       gsm_frame dst;

       int gsm_decode(handle, src, dst)
       gsm handle;
       gsm_frame src;
       gsm_signal dst[160];

       void gsm_destroy(handle)
       gsm handle;

DESCRIPTION
       Gsm is an implementation of the final  draft  GSM  06.10	 standard  for
       full-rate speech transcoding.

       gsm_create()  initializes  a  gsm pass and returns a 'gsm' object which
       can  be	used  as  a  handle  in	 subsequent  calls  to	 gsm_decode(),
       gsm_encode() or gsm_destroy().

       gsm_encode()  encodes an array of 160 13-bit samples (given as gsm_sig‐
       nal's, signed integral values of at least 16 bits) into a gsm_frame  of
       33  bytes.  (gsm_frame is a type defined as an array of 33 gsm_bytes in
       gsm.h.)

       gsm_decode() decodes a gsm_frame into an array of  160  13-bit  samples
       (given  as  gsm_signals),  which	 sound	rather like what you handed to
       gsm_encode() on the other side of the wire.

       gsm_destroy() finishes a gsm pass and frees all storage associated with
       it.

   Sample format
       The following scaling is assumed for input to the algorithm:
	  0  1				   11 12
	  S..v..v..v..v..v..v..v..v..v..v..v..v..*..*..*
       Only the top 13 bits are used as a signed input value.
       The output of gsm_decode() has the three lower bits set to zero.

RETURN VALUE
       gsm_create()  returns  an  opaque  handle  object  of type gsm, or 0 on
       error.  gsm_decode() returns -1 if the passed frame is invalid, else 0.

EXAMPLE
       #include "gsm.h"

       gsm handle;
       gsm_frame buf;
       gsm_signal sample[160];
       int cc, soundfd;

       play() {	 /* read compressed data from standard input, write to soundfd */

	    if (!(handle = gsm_create())) error...
	    while (cc = read(0, (char *)buf, sizeof buf)) {
		 if (cc != sizeof buf) error...
		 if (gsm_decode(handle, buf, sample) < 0) error...
		 if (write(soundfd, sample, sizeof sample) != sizeof sample)
		      error...
	    }
	    gsm_destroy(handle);
       }

       record() {     /* read from soundfd, write compressed to standard output */

	    if (!(handle = gsm_create())) error...
	    while (cc = read(soundfd, sample, sizeof sample)) {
		 if (cc != sizeof sample) error...
		 gsm_encode(handle, sample, buf);
		 if (write(1, (char *)buf, sizeof buf) != sizeof sample)
		      error...
	    }
	    gsm_destroy(handle);
       }

BUGS
       Please direct bug  reports  to  jutta@cs.tu-berlin.de  and  cabo@cs.tu-
       berlin.de.

SEE ALSO
       toast(1), gsm_print(3), gsm_explode(3), gsm_option(3)

									GSM(3)
[top]

List of man pages available for Alpinelinux

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net