Pure Go | MIT | G729/8000 | annexb=no

g729

A clean-room, G.729A-compatible speech codec for Go services that need RTP payload type 18 without cgo, native codec packages, or vendored codec source.

v0.1.0-rc1

Built for server-side RTP media paths.

The primary target is MRCP, TTS, IVR, SIP/RTP, and other backend media applications where the input is 8 kHz mono signed 16-bit PCM and the output is 10-byte G.729 speech frames.

Supported scope

A narrow, explicit codec claim.

Supported

G729/8000 payloads

RTP payload type 18, 8 kHz clock, 10 ms speech frames, 10 bytes per frame.

Supported

ptime 10 and 20

Use one encoded frame for ptime=10, or concatenate two frames for ptime=20.

Required

annexb=no

Annex B SID, CNG, and DTX are not implemented in this release.

Not claimed

No certification claim

ITU byte-exact conformance and broad interoperability certification are not claimed.

SIP/RTP integration

Advertise the exact media shape.

The codec core emits raw 10-byte speech frames. Your SIP/RTP stack owns RTP headers, timestamps, sequence numbers, jitter handling, and packet transmission.

m=audio 49170 RTP/AVP 18
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=ptime:20
a=maxptime:20

Listening comparison

Prepared for codec quality samples.

This page is ready for four reviewed listening samples: FFmpeg encoded payloads decoded by this project and FFmpeg, plus this project's encoded payloads decoded by this project and FFmpeg.

Reference payload

FFmpeg encode -> g729 decode

Sample pending.

Reference path

FFmpeg encode -> FFmpeg decode

Sample pending.

Project loopback

g729 encode -> g729 decode

Sample pending.

Interop path

g729 encode -> FFmpeg decode

Sample pending.

Current gate: the outbound encoder/RTP send path is black-box tested against FFmpeg, and the strict decoder has local FFmpeg/Asterisk-origin sample regression coverage. These are project release gates, not ITU certification.

Clean-room boundary

No vendored codec source. No cgo.

The repository documents its clean-room rule and MIT distribution provenance. External codecs may be used only as black-box tools, and published demo media should carry source and redistribution records.