AAC Decoding with ipp samples

AAC Decoding with ipp samples

evertonesm's picture

Hello!

I'm trying to decoding a AAC sound from a IP camera. To do this I'm developing a C++ dll.

Actually I don't know how exactly to do this, I'm following the steps bellow:

1 - Initializing the Decoder

{ code }

m_Params.m_info_in.stream_type = UMC::UNDEF_AUDIO;

m_Params.lpMemoryAllocator = NULL;

m_Params.m_pData = NULL;

m_Params.ModeDecodeHEAACprofile = HEAAC_LP_MODE;

m_Params.ModeDwnsmplHEAACprofile = HEAAC_DWNSMPL_ON;

m_Params.flag_SBR_support_lev = SBR_DISABLE;

m_Params.m_info_out.bitPerSample = 16;

m_Params.m_info_out.channels = 2;

m_Params.m_info_out.sample_frequency = 44100;

m_Params.m_info_in.bitrate = 128000;

// Initialization of AAC decoder

UMC::Status status = m_Decoder.Init(&m_Params);

{ code }

2 - Getting the Suggested input and output buffers

{ code }

// Audio Paramas functions

UMC::AudioCodecParams audio_codec_params;

m_Decoder.GetInfo(&audio_codec_params);

// Get Buffers Size

*inBuffer = int(audio_codec_params.m_SuggestedInputSize);

*outBuffer = int(audio_codec_params.m_SuggestedOutputSize);

{ code }

3 - Sending the camera audio according to suggested sizes

{ code }

AACDecStatus AACAudioDecoder::DecodeData(void *Data, int *Len, void *Out, int *OutLen, int *OutSize){

// Status

UMC::Status status;

// Set the input buffer pointer to the input data

m_inMediaBuffer.SetBufferPointer((Ipp8u *)Data, (size_t)*Len);

m_inMediaBuffer.SetDataSize((size_t)*Len);

// Set the output buffer pointer to the output data

m_outMediaBuffer.SetBufferPointer((Ipp8u *)Out, (size_t )*OutLen);

m_outMediaBuffer.SetDataSize((size_t)*OutLen);

// Encode audio pack

status = m_Decoder.GetFrame(&m_inMediaBuffer, &m_outMediaBuffer);

// Return Data Out size

*OutSize = m_outMediaBuffer.GetDataSize();

// Check if the encoding was sucessfull

}

{ code }

But in the 3 part I always receive status = UMC_ERR_UNSUPPORTED;

I'm sending bellow the camera information of thedata:

v=0

o=RTSP 948498866 755 IN IP4 0.0.0.0

s=RTSP server

c=IN IP4 0.0.0.0

t=0 0

a=charset:Shift_JIS

a=range:npt=0-

a=control:*

a=etag:1234567890

m=video 0 RTP/AVP 96

b=AS:0

a=rtpmap:96 MP4V-ES/30000

a=control:trackID=1

a=fmtp:96 profile-level-id=3;config=000001B003000001B509000001000000012000C488800F519044C1463F;decode_buf=76800

m=audio 0 RTP/AVP 97

a=control:trackID=6

a=rtpmap:97 mpeg4-generic/44100/2

a=fmtp:97 streamtype=5; profile-level-id=15; mode=AAC-hbr; config=1210;SizeLength=13; IndexLength=3; IndexDeltaLength=3; CTSDeltaLength=0; DTSDeltaLength=0;

I saw that the format is mpeg4-generic but I can't initialize with this specifications AAC_MPEG4_STREAM without this error: UMC_ERR_INVALID_PARAM;

I'm not find anyexampleto initialize with this header.

AnyoneKnow what I'm doing wrong?

Thanks in advance,

Everton Soares Manso

2 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
Paul Fischer (Intel)'s picture

Hello Everton,

Were you able to make any progress?

Regards,

Paul

Login to leave a comment.