- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Were you able to make any progress?
Regards,
Paul
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page