GSM_EXPLODE(3)
π GSM_EXPLODE(3) β the library functions manual, but make it make sense
okay bestie, welcome to GSM_EXPLODE(3), a.k.a. the library functions manual entry for two lil test-only helpers. sit down, grab a strawberry π, we're gonna go through this together.
β¨ NAME β¨
gsm_explode, gsm_implode β GSM 06.10 supplementary functions for testing π§ͺ
like, they're the extra lil guys. the supplementary ones. purely for testing. no cap.
π¦ SYNOPSIS π¦
#include "gsm.h"
void gsm_explode(g, frame, xframe)
gsm g;
gsm_frame frame;
gsm_signal xframe[ 76 ];
void gsm_implode(g, xframe, frame)
gsm g;
gsm_signal xframe[ 76 ];
gsm_frame frame;
look at that. g is a gsm, frame is a gsm_frame, and xframe is a gsm_signal array of 76 elements. not 75. not 77. 76. and yes, the order flips between the two functions β gsm_explode goes g, frame, xframe and gsm_implode goes g, xframe, frame. the way they just swapped them π. keep an eye on that or you will get it backwards, fr fr.
πΈ DESCRIPTION πΈ
so, gsm is an implementation of the final draft GSM 06.10 standard for full-rate speech transcoding. it's giving vintage telecom royalty. π
and here's the tea: test data for implementations of this particular document can actually be bought and used to verify an implementation. like, you can purchase the test vectors and check yourself. iconic, honestly.
now the plot twist β the encoded test data uses a format that is different from what you'd use to transmit frames with the least number of bits. because of course it is. π the test data format is not the efficient-wire-format format. they're two different vibes entirely.
that's literally the whole job of these two functions:
gsm_explode()andgsm_implode()convert between the internal, small, 33-byte format and the 76-word format used by the test data.
33 bytes β 76 words. that's the conversion. that's it. that's the function. π«Ά
β RETURN VALUE β
gsm_explode() returns -1 if the frame you passed in is invalid, and 0 otherwise.
so like β0means we good,-1means bestie that frame is not it. π
π BUGS π
found a bug? please direct bug reports to jutta@pobox.com and cabo@tzi.org. they're the ones who want to hear about it, not me. π
π₯ SEE ALSO π₯
gsm(3)β the main character. go read that one too.
and that's the whole page, bestie π this was GSM_EXPLODE(3) from the Library Functions Manual, brought to you by the absolute legends behind it. slay, stay safe, and don't forget to keep your gsm_signal xframe[ 76 ] at exactly 76. mwah π
β¨
π¦ where this page comes from
- debian bookworm: libgsm1-dev 1.0.22-1 Β· TU-Berlin-2.0
- debian trixie: libgsm1-dev 1.0.22-1+b2 Β· TU-Berlin-2.0
- ubuntu jammy: libgsm1-dev 1.0.19-1 Β· TU-Berlin-2.0
- ubuntu noble: libgsm1-dev 1.0.22-1build1 Β· TU-Berlin-2.0
- ubuntu questing: libgsm1-dev 1.0.22-1build1
- ubuntu resolute: libgsm1-dev 1.0.23-2 Β· TU-Berlin-2.0
- ubuntu stonking: libgsm1-dev 1.0.24-1 Β· TU-Berlin-2.0
- Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms