changeset 592:24aba0e7aa35 default tip

document AMR hex (TW-TS-005 Annex C) utilities addition
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 07 Nov 2025 00:41:56 +0000
parents 2f1e91dd552b
children
files doc/AMR-hex-utils doc/TW-TS-005 doc/Utils-overview
diffstat 3 files changed, 49 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/AMR-hex-utils	Fri Nov 07 00:41:56 2025 +0000
@@ -0,0 +1,34 @@
+As Themyscira Wireless work extends further into AMR, we now have the option of
+storing sequences of AMR RTP payloads in a TW-TS-005 hexadecimal file.  (See
+TW-TS-005 article.)  TW-TS-005 was originally intended for FR/EFR and HRv1
+codecs, but beginning with spec version 1.1.0, newly added Annex C specifies
+how TW-TS-005 hex format may be used for AMR.  As explained in that annex, any
+workflow involving TW-TS-005 Annex C hex files requires out-of-band knowledge
+as to which RTP payload format is captured: bandwidth-efficient (BWE) or
+octet-aligned (OA).
+
+The following format conversion utilities are provided for working with
+TW-TS-005 Annex C hex files:
+
+amr-hex-bwe2oa	Both input and output are hex files; input is BWE, output is OA.
+
+amr-hex-oa2bwe	Both input and output are hex files; input is OA, output is BWE.
+
+amr-hexoa2ietf	Input is a hex file in OA format, output is RFC 4867 storage
+		format (binary *.amr).
+
+amr-ietf2hexoa	Input is RFC 4867 storage format (binary *.amr), output is
+		TW-TS-005 hex with RTP payloads in OA format.
+
+Input to amr-hex-oa2bwe and amr-hexoa2ietf conversion utilities may be either
+standard RFC 4867 OA or TW-TS-006 OAX (OA extended) - however, extended
+information content in OAX format cannot be converted to BWE or RFC 4867 storage
+format, hence any such extended info will be lost.  However, in the absence of
+OAX, using only standard RTP payload formats per RFC 4867, conversion between
+BWE and OA is lossless.
+
+Conversion from TW-TS-005 Annex C to RFC 4867 storage format is lossy: CMR field
+exists in RTP and thus in TW-TS-005 hex recordings, but not in RFC 4867 storage
+format.  amr-ietf2hexoa conversion utility sets CMR to 15 (NO_DATA); if some
+other CMR is desired, the desired effect can be trivially achieved by applying
+sed to amr-ietf2hexoa output.
--- a/doc/TW-TS-005	Thu Nov 06 23:19:57 2025 +0000
+++ b/doc/TW-TS-005	Fri Nov 07 00:41:56 2025 +0000
@@ -3,17 +3,24 @@
 Binary-file-format article.  However, a newer hexadecimal format has now been
 standardized as Themyscira Wireless Technical Specification TW-TS-005:
 
-https://www.freecalypso.org/specs/tw-ts-005-v010003.txt
+https://www.freecalypso.org/specs/tw-ts-005-v010100.txt
 
-The standard has two annexes intended for practical use:
+The original version of this standard had two annexes intended for practical
+use:
 
 * TW-TS-005 Annex A defines a representation format for FR and EFR codecs;
 * TW-TS-005 Annex B defines a representation format for HR codec.
 
+The current version of TW-TS-005 linked above has two additional annexes:
+
+* TW-TS-005 Annex C specifies representation of AMR RTP payloads in hex files;
+* TW-TS-005 Annex D specifies representation of CSD RTP payloads in hex files.
+
 The present version of ThemWi GSM codec libraries & utilities suite includes
 some utilities that operate on TW-TS-005 Annex A hex files; support for Annex B
 will appear in a future version when our work on GSM-HR codec integration
-progresses further.
+progresses further.  Support for Annex C is described in AMR-hex-utils article;
+no utilities for Annex D exist as of this writing.
 
 TW-TS-005 Annex A vs gsmx binary format
 =======================================
--- a/doc/Utils-overview	Thu Nov 06 23:19:57 2025 +0000
+++ b/doc/Utils-overview	Fri Nov 07 00:41:56 2025 +0000
@@ -6,6 +6,11 @@
 amr-cod2ietf
 amr-ietf2cod
 
+amr-hex-bwe2oa		See AMR-hex-utils article.
+amr-hex-oa2bwe
+amr-hexoa2ietf
+amr-ietf2hexoa
+
 amrefr-decode-r		See AMR-EFR-hybrid-emu article.
 amrefr-encode-r
 amrefr-tseq-dec