From: PacketVideo CM Date: Fri, 4 Dec 2009 19:48:35 +0000 (-0800) Subject: RIO-8043: GetActualAACConfig - add mime type as input to process properly RFC 3016... X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=3443d4eee1fa2d2fcec16bcad4fb74af70107bd3;p=android-x86%2Fexternal-opencore.git RIO-8043: GetActualAACConfig - add mime type as input to process properly RFC 3016 type streams --- diff --git a/codecs_v2/audio/aac/dec/util/getactualaacconfig/include/getactualaacconfig.h b/codecs_v2/audio/aac/dec/util/getactualaacconfig/include/getactualaacconfig.h index 21159ffb..c46e56e2 100644 --- a/codecs_v2/audio/aac/dec/util/getactualaacconfig/include/getactualaacconfig.h +++ b/codecs_v2/audio/aac/dec/util/getactualaacconfig/include/getactualaacconfig.h @@ -41,7 +41,8 @@ OSCL_IMPORT_REF int32 GetActualAacConfig(uint8* aConfigHeader, int32* aConfigHeaderSize, uint8* SamplingRateIndex, uint32* NumChannels, - uint32* aSamplesPerFrame); + uint32* aSamplesPerFrame, + bool mime_3016); #endif diff --git a/codecs_v2/audio/aac/dec/util/getactualaacconfig/src/getactualaacconfig.cpp b/codecs_v2/audio/aac/dec/util/getactualaacconfig/src/getactualaacconfig.cpp index b9c4e6c4..0a2edd94 100644 --- a/codecs_v2/audio/aac/dec/util/getactualaacconfig/src/getactualaacconfig.cpp +++ b/codecs_v2/audio/aac/dec/util/getactualaacconfig/src/getactualaacconfig.cpp @@ -161,7 +161,8 @@ OSCL_EXPORT_REF int32 GetActualAacConfig(uint8* aConfigHeader, int32* aConfigHeaderSize, uint8* SamplingRateIndex, uint32* NumChannels, - uint32* aSamplesPerFrame) + uint32* aSamplesPerFrame, + bool mime_3016) { tPVMP4AudioDecoderExternal * iAACDecExt = NULL; @@ -248,6 +249,11 @@ OSCL_EXPORT_REF int32 GetActualAacConfig(uint8* aConfigHeader, */ pVars->aacConfigUtilityEnabled = true; /* set aac utility mode */ + if (mime_3016 == true) /* streaming rfc-3016 type, config holds streamMuxConfig */ + { + pVars->inputStream.usedBits += 15; /* jump over streamMuxConfig bits */ + } + status = get_audio_specific_config(pVars); } diff --git a/codecs_v2/utilities/pv_config_parser/src/pv_audio_config_parser.cpp b/codecs_v2/utilities/pv_config_parser/src/pv_audio_config_parser.cpp index fc710594..6742dcd5 100644 --- a/codecs_v2/utilities/pv_config_parser/src/pv_audio_config_parser.cpp +++ b/codecs_v2/utilities/pv_config_parser/src/pv_audio_config_parser.cpp @@ -678,7 +678,8 @@ OSCL_EXPORT_REF int32 pv_audio_config_parser(pvAudioConfigParserInputs *aInputs, &bytes_consumed, &SamplingRateIndex, &NumChannels, - &SamplesPerFrame); + &SamplesPerFrame, + (aInputs->iMimeType == PVMF_MIME_AAC_SIZEHDR)); if (status != 0)//error { bBitStreamValid = false; diff --git a/engines/2way/src/pv_2way_sdkinfo.h b/engines/2way/src/pv_2way_sdkinfo.h index d5114b1e..685f01fa 100644 --- a/engines/2way/src/pv_2way_sdkinfo.h +++ b/engines/2way/src/pv_2way_sdkinfo.h @@ -21,7 +21,7 @@ // This header file is automatically generated at build-time // *** OFFICIAL RELEASE INFO -- Will not auto update -#define PV2WAY_ENGINE_SDKINFO_LABEL "1086733" -#define PV2WAY_ENGINE_SDKINFO_DATE 0x20091115 +#define PV2WAY_ENGINE_SDKINFO_LABEL "1088390" +#define PV2WAY_ENGINE_SDKINFO_DATE 0x20091116 #endif //PV_2WAY_SDKINFO_H_INCLUDED diff --git a/engines/author/src/pv_author_sdkinfo.h b/engines/author/src/pv_author_sdkinfo.h index b6e164bf..308ebf86 100644 --- a/engines/author/src/pv_author_sdkinfo.h +++ b/engines/author/src/pv_author_sdkinfo.h @@ -21,7 +21,7 @@ // This header file is automatically generated at build-time // *** OFFICIAL RELEASE INFO -- Will not auto update -#define PVAUTHOR_ENGINE_SDKINFO_LABEL "1086733" -#define PVAUTHOR_ENGINE_SDKINFO_DATE 0x20091115 +#define PVAUTHOR_ENGINE_SDKINFO_LABEL "1088390" +#define PVAUTHOR_ENGINE_SDKINFO_DATE 0x20091116 #endif //PV_AUTHOR_SDKINFO_H_INCLUDED diff --git a/engines/player/src/pv_player_sdkinfo.h b/engines/player/src/pv_player_sdkinfo.h index 178dea8d..9e966bbb 100644 --- a/engines/player/src/pv_player_sdkinfo.h +++ b/engines/player/src/pv_player_sdkinfo.h @@ -21,7 +21,7 @@ // This header file is automatically generated at build-time // *** OFFICIAL RELEASE INFO -- Will not auto update -#define PVPLAYER_ENGINE_SDKINFO_LABEL "1086733" -#define PVPLAYER_ENGINE_SDKINFO_DATE 0x20091115 +#define PVPLAYER_ENGINE_SDKINFO_LABEL "1088390" +#define PVPLAYER_ENGINE_SDKINFO_DATE 0x20091116 #endif //PV_PLAYER_SDKINFO_H_INCLUDED diff --git a/fileformats/rawaac/parser/src/aacfileparser.cpp b/fileformats/rawaac/parser/src/aacfileparser.cpp index 7c908c93..25b28928 100644 --- a/fileformats/rawaac/parser/src/aacfileparser.cpp +++ b/fileformats/rawaac/parser/src/aacfileparser.cpp @@ -549,7 +549,13 @@ int32 AACBitstreamObject::getFileInfo(int32& fileSize, TAACFormat& format, uint8 uint32 samplesPerFrame; int32 status = GetActualAacConfig(pBuffer, - &iAudioObjectType, &config_header_size, &sampleFreqIndex, &iChannelConfig, &samplesPerFrame); + &iAudioObjectType, + &config_header_size, + &sampleFreqIndex, + &iChannelConfig, + &samplesPerFrame, + false); + if (status != SUCCESS) return AACBitstreamObject::MISC_ERROR; // Retrieve the audio object type diff --git a/nodes/pvmp4ffparsernode/src/pvmf_mp4ffparser_node_metadata.cpp b/nodes/pvmp4ffparsernode/src/pvmf_mp4ffparser_node_metadata.cpp index 74544597..9bbcd6ed 100644 --- a/nodes/pvmp4ffparsernode/src/pvmf_mp4ffparser_node_metadata.cpp +++ b/nodes/pvmp4ffparsernode/src/pvmf_mp4ffparser_node_metadata.cpp @@ -1380,7 +1380,8 @@ uint32 PVMFMP4FFParserNode::GetNumAudioChannels(uint32 aId) &specinfosize, &sampleRateIndex, &num_channels, - &samplesPerFrame); + &samplesPerFrame, + false); } } @@ -1431,7 +1432,9 @@ uint32 PVMFMP4FFParserNode::GetAudioSampleRate(uint32 aId) &specinfosize, &sampleRateIndex, &num_channels, - &samplesPerFrame); + &samplesPerFrame, + false); + if (sampleRateIndex < 13) { sample_rate = sample_freq_table[(uint32)sampleRateIndex];