Depaylaoding RTP MP4A-LATM

johnwesting john.blank.westing at
Mon Apr 22 07:41:53 PDT 2013

Update to this question: There were a few problems that were preventing me
from depayloading the stream with rtpmp4adepay. 

1) In MPEG4-LATM over RTP the RTP Market Bit is used to signal
AudioMuxElement() boundaries (see RFC 3016). The rtpmp4adepay element waits
for the marker bit to know when to start processing the AudioMuxElement(),
but the iPhone never sends it. I guess this is a quirk with Apple products.
IMO Apple isn't following the spec 100%, but to each their own. Apple states
that in the document titled "Bluetooth Accessory Design Guidelines for Apple
Products" that, "As recommended in Section 4.3 of RFC 3016, only one
AudioMuxElement is put into each AVDTP packet." I guess this statement makes
them exempt from following the spec and using the RTP Marker Bit as is
described in RFC 3016. Which is fine, but it makes their stream incompatible
with existing LATM decoders.

2) I took a look at the source code and the rtpmp4adepay element does not
support in-band transmission of StreamMuxConfig(). Which is what Apple does;
from "Bluetooth Accessory Design Guidelines for Apple Products", "The
muxConfigPresent argument to the AudioMuxElement is set to 1 (in-band mode),
as recommended in Section 4.1 of RFC 3016." I have added an rtplatmdepay
element that handles in-band transmission of StreamMuxConfig().

View this message in context:
Sent from the GStreamer-devel mailing list archive at

More information about the gstreamer-devel mailing list