FreeCalypso > hg > gsm-codec-lib
diff doc/Codec-utils @ 136:8eb0e7a39409
doc: document command line utilities
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 11 Dec 2022 22:20:36 +0000 |
parents | |
children | 30c7bc064218 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/Codec-utils Sun Dec 11 22:20:36 2022 +0000 @@ -0,0 +1,39 @@ +Standalone command line utilities for FR and EFR codecs +======================================================= + +The pre-existing FOSS opencore-amr package includes amrnb-enc and amrnb-dec test +programs: the first reads linear PCM from a WAV file and emits AMR encoder +output in a .amr file (RFC 4867 AMR storage format), the second reads this .amr +format and emits AMR decoder output as WAV. Inspired by these simple test +programs, the present package offers equivalent command line utilities for GSM +FR and EFR codecs. Here they are: + +gsmfr-encode This utility reads linear PCM from a WAV file, runs libgsm + 06.10 encoder and writes the output in the classic .gsm format + (directly abutted FR codec frames of 33 bytes each). We don't + currently have a Tx-side DTX implementation (VAD etc) for GSM + FR, hence the output from gsmfr-encode will always consist of + good speech frames only. + +gsmfr-decode This utility reads our gsmx format (see Binary-file-format + article), which is a superset of the classic libgsm format. + The input to gsmfr-decode may be a pure .gsm recording as + produced by gsmfr-encode or toast from libgsm package, or it + can also contain SID frames and/or BFI markers. The processing + performed by gsmfr-decode begins with our FR1 Rx DTX handler + preprocessor, which will be an identity transform for pure .gsm + input but becomes important for real-world input containing SIDs + and BFIs, and is followed by gsm_decode() from libgsm. The + decoded output is written as WAV. + +gsmefr-encode This utility reads linear PCM from a WAV file, runs our EFR + encoder (Themyscira libgsmefr) and writes the output in our gsmx + format. There is an option to enable or disable DTX: -d enables + DTX, otherwise it is disabled. (This option mirrors amrnb-enc.) + +gsmefr-decode This utility reads our gsmx format (which must be EFR, not FR1) + and feeds all frames and BFIs to our EFR decoder. The decoded + output is written as WAV. + +WAV reading and writing functions used by the above utilities have been lifted +out of opencore-amrnb test code.