FreeCalypso > hg > gsm-codec-lib
diff libtwamr/ietf_fo.c @ 441:ebe499058c63
libtwamr: implement API functions for RFC 4867 I/O
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 09 May 2024 07:06:31 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtwamr/ietf_fo.c Thu May 09 07:06:31 2024 +0000 @@ -0,0 +1,23 @@ +/* + * The function implemented in this module groks the first octet of + * an RFC 4867 payload and tells the calling application how many more + * bytes need to be read, or if the frame type is invalid. + */ + +#include <stdint.h> +#include "tw_amr.h" + +static const uint8_t extra_bytes_per_ft[9] = + {12, 13, 15, 17, 19, 20, 26, 31, 5}; + +int amr_ietf_grok_first_octet(uint8_t fo) +{ + uint8_t ft; + + ft = (fo & 0x78) >> 3; + if (ft == AMR_FT_NODATA) + return 0; + if (ft > MRDTX) + return -1; + return extra_bytes_per_ft[ft]; +}