[Live-devel] streaming ADTS file

Ross Finlayson finlayson at live555.com
Thu Feb 9 18:08:02 PST 2006


At 12:53 PM 2/9/2006, you wrote:
>Hi, Ross,
>
>I have one ADTS aac audio file, I have question about
>streaming by 2 different RTPSinks.

No, if you're streaming from an ADTS-format AAC file, you should use 
only a "MPEG4GenericRTPSink".  ("MPEG4LATMAudioRTPSink" is used only 
for LATM-formatted AAC audio, which is *not* what you get in a 
ADTS-format file.)


>1) If I choose MPEG4GenericRTPSink, in
>MPEG4GenericRTPSink::createNew(
>UsageEnvironment& env, Groupsock* RTPgs,
>u_int8_t rtpPayloadFormat,
>u_int32_t rtpTimestampFrequency,
>char const* sdpMediaTypeString,
>char const* mpeg4Mode,
>char const* configString, unsigned numChannels)
>
>here parameter mpeg4Mode, from the source, it seems
>only permit "AAC-hbr", how about "AAC-lbr"?

Currently, "MPEG4GenericRTPSink" supports only "AAC-hbr".  However, 
there is probably no reason why it could not be extended to also 
support "AAC-lbr".  (See RFC3640, section 3.3.5.)

>about parameter configString, the only way to get it
>is to open the file and analyze the header of ADTS,
>right?

Yes, unless you have some other way of knowing this data.

>2) If I choose MPEG4LATMAudioRTPSink

You shouldn't.  (See above.)

>3) in ADTSAudioFileSource.cpp, during the analyzation
>of frame_length, in the following code
>if (!protection_absent)
>{
>     fseek(fFid, 16, SEEK_CUR);
>     numBytesToRead = numBytesToRead > 16 ?
>numBytesToRead - 16 : 0;
>  }
>I think crc length should be 16 bits,2 bytes, so here
>16 should be changed to 2, is that right?

Yes, you're right.  Thanks for reporting this.  It will be fixed in 
the next release of the code.


	Ross Finlayson
	Live Networks, Inc. (LIVE555.COM)
	<http://www.live555.com/>



More information about the live-devel mailing list