rfc-5584

RTP Payload Format for the Adaptive TRansform Acoustic Coding (ATRAC) Family

M. Hatanaka, J. Matsumoto
date2009-07 streamIETF arearai wgavt statusPROPOSED STANDARD pages30 canonicalhttps://www.rfc-editor.org/rfc/rfc5584 doi10.17487/RFC5584 errataview
This document describes an RTP payload format for efficient and flexible transporting of audio data encoded with the Adaptive TRansform Audio Coding (ATRAC) family of codecs. Recent enhancements to the ATRAC family of codecs support high-quality audio coding with multiple channels. The RTP payload format as presented in this document also includes support for data fragmentation, elementary redundancy measures, and a variation on scalable streaming. [STANDARDS-TRACK]

Extracted elements (26)

design-rationale §5.3.2

Frame size is carried in-band in the Block Length field for each frame to enable parsing of multi-frame packets and to allow decoding to proceed even when only a non-initial fragment of a frame is received.

rtp, realtime

design-rationale §5.3.1

The Fragment Number field is only 3 bits because this is sufficient to avoid rollover given the maximum supported ATRAC bit-rate at time of publication; the spec notes this choice should be revisited if the maximum bit-rate increases.

rtp, realtime

interoperability-note §7.6.1

In offer/answer for ATRAC-X and ATRAC Advanced Lossless, an answer MUST NOT require capabilities beyond what was offered, but SHOULD provide values as close as possible to the offer. Each parameter combination (baseLayer, blockLength, sampleRate, channelID) is unique and not compatible with any other combination.

rtp, realtime

interoperability-note §7.2

The ATRAC-X and ATRAC Advanced Lossless channelID speaker mapping differs from the channel ordering defined in RFC 3551. When channelID=0 (undefined layout), the channel mapping from RFC 3551 Section 4.1 may be used as a fallback.

rtp, realtime

normative-requirement §4.3 MUST

An RTP packet MUST carry either one or more complete ATRAC frames or a single fragment of one ATRAC frame. If a single ATRAC frame will not fit in a path-MTU-sized packet, it MUST be fragmented.

rtp, realtime

normative-requirement §7.1 MUST

Any unknown media type parameter MUST be ignored by the receiver, as specified for all three ATRAC media subtypes (ATRAC3, ATRAC-X, ATRAC Advanced Lossless).

rtp, realtime

normative-requirement §7.6.4 MUST

For ATRAC Advanced Lossless multi-session streaming, SDP attributes 'group', 'mid', and 'depend' MUST be used to signal layered coding dependency, with 'group:DDP' indicating the base/enhancement relationship.

rtp, realtime

normative-requirement §5.2 MUST

For ATRAC3 and ATRAC Advanced Lossless, the RTP timestamp rate MUST be 44100 Hz. For ATRAC-X, the timestamp rate is 44100 Hz or 48000 Hz selected by out-of-band signaling.

rtp, realtime

normative-requirement §7.1 MUST

For ATRAC3, the maxptime value MUST be a multiple of 24 ms. For ATRAC-X, it MUST be a multiple of 47 ms or 43 ms depending on sample rate. For ATRAC Advanced Lossless, it MUST be 12, 24, or 47 ms.

rtp, realtime

normative-requirement §7.6.3 MUST

If maxRedundantFrames is not signaled, a default of 15 MUST be assumed by the receiver. In offer/answer, maxRedundantFrames MAY be increased in an answer (max 15) but MUST NOT be reduced.

rtp, realtime

normative-requirement §4.5.2 MUST

In multi-session streaming, paired base and enhancement layer sessions MUST use the same CNAME in RTCP to ensure correct source mapping. The two sessions MUST be synchronized using RTCP SR packet information. If enhancement layer data cannot arrive before presentation time, the decoder MUST decode only the base layer.

rtp, realtime

normative-requirement §4.5.1 MUST

In scalable multiplexed streaming, each packet MUST begin with the base layer, and base and enhancement layer types MUST interleave if both exist in a packet.

rtp, realtime

normative-requirement §5.3.2.2 MUST

Packets containing related fragmented frames MUST have identical timestamps. The Fragment Number MUST be zero for an unfragmented frame, start at 1 for the first fragment, and increase sequentially; the Continuation bit MUST be 0 on the last packet.

rtp, realtime

normative-requirement §10.1 MUST

Receivers MUST verify packet integrity: if a UDP packet is longer than the RTP packet length, extra bytes MUST be ignored; if a UDP packet is shorter or improperly encoded, it MUST be discarded.

rtp, realtime, security

normative-requirement §5.1 MUST

The ATRAC Frames Section MUST NOT be empty. When redundancy is used, the RTP timestamp MUST be set to the oldest redundant frame's timestamp.

rtp, realtime

normative-requirement §7.6.3 MUST

The ATRAC-X delayMode parameter is non-negotiable in offer/answer: if the answerer cannot comply with the offered value, the session MUST be deemed inoperable.

rtp, realtime

normative-requirement §5.2 MUST

The RTP Marker bit (M) MUST be set to 1 if the packet is the first packet after a silence period; otherwise it MUST be set to 0.

rtp, realtime

normative-requirement §10.2 MUST

Validity checking of received audio packets MUST be performed. A malformed ATRAC frame MUST be discarded and decoder errors concealed in the audio output until a valid frame is decoded, preventing crashes or abnormal decoder behavior.

rtp, realtime, security

normative-requirement §4.2 MUST

When multiple frames are carried in a single RTP packet, each frame MUST be complete; the number of frames MUST be integral. An RTP packet MUST NOT contain fragments of multiple ATRAC frames and MUST NOT mix complete and fragmented frames.

rtp, realtime

protocol-element §5.1

The ATRAC RTP payload consists of two octet-aligned sections: an ATRAC Header Section (1 byte) containing packet-wide information, and an ATRAC Frames Section containing either a single fragment of one ATRAC frame or one or more complete ATRAC frames.

rtp, realtime

protocol-element §7.4

The channelID parameter maps to channel count and speaker layout: 0=up to 64 channels (undefined layout), 1=mono, 2=stereo, 3=3-channel, 4=4-channel, 5=5.1, 6=6.1, 7=7.1.

rtp, realtime

protocol-element §5.3.2.1

The redundancy mechanism allows time-shifted copies of earlier ATRAC frames to be included in current packets. The receiver can deduce the redundancy level from successive packet timestamps and frame counts, allowing recovery of frames lost due to packet loss.

rtp, realtime

registry §8

Three new IANA media subtypes were registered: audio/ATRAC3 (file extensions: at3, aa3, omg), audio/ATRAC-X (file extensions: atx, aa3, omg), and audio/ATRAC-ADVANCED-LOSSLESS (file extensions: aal, aa3, omg). All are restricted to RTP framing only.

rtp, realtime, registry

security-consideration §9

The ATRAC payload carries only compressed audio data and cannot carry active content that would impose malicious side effects. However, this payload format implements no security mechanisms; confidentiality, integrity, and authentication must be provided externally, e.g., via SRTP (RFC 3711).

security, rtp, realtime

wire-format §5.3.2

Each entry in the ATRAC Frames Section is prefixed by a Layer Type Flag (E, 1 bit; 1=enhancement layer, 0=base layer) and a Block Length field (15 bits, max 32,767 bytes) indicating the byte length of the following encoded ATRAC frame.

rtp, realtime

wire-format §5.3.1

The ATRAC Header Section is a fixed 1-byte field with three subfields: Continuation Flag (C, 1 bit), Fragment Number (FrgNo, 3 bits), and Number of Frames (NFrames, 4 bits). C=0 indicates the last or only fragment; FrgNo starts at 1 for fragmented frames and is 0 for unfragmented; NFrames encodes frame count as field value + 1.

rtp, realtime