diff doc/AMR-hex-utils @ 592:24aba0e7aa35

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
children
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.