Intel® Integrated Performance Primitives
Community support and discussions relating to developing high-performance vision, signal, security, and storage applications.
Announcements
The Intel sign-in experience is changing in February to support enhanced security controls. If you sign in, click here for more information.

AAC Decoding with ipp samples

evertonesm
Beginner
150 Views

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

0 Kudos
1 Reply
PaulF_IntelCorp
Employee
150 Views
Hello Everton,

Were you able to make any progress?

Regards,

Paul
Reply