Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.

AAC Decoding with ipp samples

evertonesm
Beginner
521 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
521 Views
Hello Everton,

Were you able to make any progress?

Regards,

Paul
0 Kudos
Reply