diff -r 80975da52420 -r 4a629bc82c5e khronosfws/openmax_al/src/engine/xaaudioencodercapabilitiesitf.c --- a/khronosfws/openmax_al/src/engine/xaaudioencodercapabilitiesitf.c Mon May 03 12:59:52 2010 +0300 +++ b/khronosfws/openmax_al/src/engine/xaaudioencodercapabilitiesitf.c Fri Apr 30 19:18:45 2010 -0500 @@ -21,10 +21,10 @@ #include #include "xaglobals.h" +#include "xaadptbasectx.h" #include "xaaudioencodercapabilitiesitf.h" -#ifdef _GSTREAMER_BACKEND_ -#include "XAStaticCapsAdaptation.h" -#endif +#include "xacapabilitiesmgr.h" + /* XAAudioEncoderCapabilitiesItfImpl* GetImpl * Description: Validate interface pointer and cast it to implementation pointer. */ @@ -73,16 +73,16 @@ } else { -#ifdef _GSTREAMER_BACKEND_ + XAuint32 i = 0; - XAStaticCapsData temp; + XACapabilities temp; for( i=0; inumCodecs; i++ ) { /* query encoder id from adaptation using index value */ - XAStaticCapsAdapt_GetCapsByIdx(XACAP_ENCODER|XACAP_AUDIO, i, &temp); + XACapabilitiesMgr_GetCapsByIdx(impl->capslist, (XACapsType)(XACAP_ENCODER|XACAP_AUDIO), i, &temp); pEncoderIds[i] = temp.xaid; } -#endif + pEncoderIds[0] = XA_AUDIOCODEC_AMR; pEncoderIds[1] = XA_AUDIOCODEC_AAC; pEncoderIds[2] = XA_AUDIOCODEC_PCM; @@ -108,9 +108,9 @@ XAAudioEncoderCapabilitiesItfImpl* impl = GetImpl(self); XAresult res = XA_RESULT_SUCCESS; -#ifdef _GSTREAMER_BACKEND_ - XAStaticCapsData temp; -#endif + + XACapabilities temp; + DEBUG_API("->XAAudioEncoderCapabilitiesItfImpl_GetAudioEncoderCapabilities"); /*if( !impl || !pIndex || !pDescriptor )*/ @@ -236,53 +236,54 @@ } -#ifdef _GSTREAMER_BACKEND_ - res = XAStaticCapsAdapt_GetCapsById(XACAP_ENCODER|XACAP_AUDIO, encoderId, &temp); + + res = XACapabilitiesMgr_GetCapsById(impl->capslist, (XACapsType)(XACAP_ENCODER|XACAP_AUDIO), encoderId, &temp); if( res == XA_RESULT_SUCCESS ) { - /* map applicable values to XAAudioCodecCapabilities */ - pDescriptor->maxChannels=temp.maxCh; - pDescriptor->minSampleRate=temp.minSR*1000; /* milliHz */ - if (temp.maxSR < (0xFFFFFFFF / 1000)) + XAAudioCodecDescriptor* desc = ((XAAudioCodecDescriptor*)(temp.pEntry)); + /* map applicable values to XAAudioCodecCapabilities */ + pDescriptor->maxChannels = desc->maxChannels; + pDescriptor->minSampleRate= desc->minSampleRate*1000; /* milliHz */ + if (desc->maxSampleRate < (0xFFFFFFFF / 1000)) { - pDescriptor->maxSampleRate = temp.maxSR*1000; + pDescriptor->maxSampleRate = desc->maxSampleRate*1000; } else { - pDescriptor->maxSampleRate = 0xFFFFFFFF; - } - pDescriptor->minBitsPerSample=temp.minBPS; - pDescriptor->maxBitsPerSample=temp.maxBPS; + pDescriptor->maxSampleRate = 0xFFFFFFFF; + } + pDescriptor->minBitsPerSample=desc->minBitsPerSample; + pDescriptor->maxBitsPerSample=desc->maxBitsPerSample; pDescriptor->isFreqRangeContinuous=XA_BOOLEAN_TRUE; - pDescriptor->minBitRate=temp.minBR; - pDescriptor->maxBitRate=temp.maxBR; - pDescriptor->numBitratesSupported = temp.numBitrates; + pDescriptor->minBitRate=desc->minBitRate; + pDescriptor->maxBitRate=desc->maxBitRate; + pDescriptor->numBitratesSupported = desc->numBitratesSupported; pDescriptor->isBitrateRangeContinuous=XA_BOOLEAN_TRUE; - if (temp.xaid == XA_AUDIOCODEC_PCM ) { - pDescriptor->profileSetting=XA_AUDIOPROFILE_PCM; - pDescriptor->modeSetting=0; + pDescriptor->profileSetting=XA_AUDIOPROFILE_PCM; + pDescriptor->modeSetting=0; /* no chanmode for pcm defined */ } - else if (temp.xaid == XA_ADAPTID_VORBIS) /* for ogg */ + else if (temp.xaid == XA_ADAPTID_VORBIS) /* for ogg */ { - if (temp.maxCh == 1) - { - pDescriptor->profileSetting=XA_AUDIOPROFILE_MPEG1_L3; - pDescriptor->modeSetting=XA_AUDIOCHANMODE_MP3_MONO; - } - else - { - pDescriptor->profileSetting=XA_AUDIOPROFILE_MPEG2_L3; - pDescriptor->modeSetting=XA_AUDIOCHANMODE_MP3_STEREO; - } + if (desc->maxChannels == 1) + { + pDescriptor->profileSetting=XA_AUDIOPROFILE_MPEG1_L3; + pDescriptor->modeSetting=XA_AUDIOCHANMODE_MP3_MONO; + } + else + { + pDescriptor->profileSetting=XA_AUDIOPROFILE_MPEG2_L3; + pDescriptor->modeSetting=XA_AUDIOCHANMODE_MP3_STEREO; + } } else { - /* Do nothing */ + /* do nothing */ } + } -#endif + DEBUG_API("<-XAAudioEncoderCapabilitiesItfImpl_GetAudioEncoderCapabilities"); return res; } @@ -295,7 +296,7 @@ /* XAAudioEncoderCapabilitiesItfImpl_Create * Description: Allocate and initialize XAAudioEncoderCapabilitiesItfImpl */ -XAAudioEncoderCapabilitiesItfImpl* XAAudioEncoderCapabilitiesItfImpl_Create() +XAAudioEncoderCapabilitiesItfImpl* XAAudioEncoderCapabilitiesItfImpl_Create(XACapabilities* caps) { XAAudioEncoderCapabilitiesItfImpl* self = (XAAudioEncoderCapabilitiesItfImpl*) calloc(1,sizeof(XAAudioEncoderCapabilitiesItfImpl)); @@ -309,12 +310,12 @@ XAAudioEncoderCapabilitiesItfImpl_GetAudioEncoders; self->itf.GetAudioEncoderCapabilities = XAAudioEncoderCapabilitiesItfImpl_GetAudioEncoderCapabilities; - -#ifdef _GSTREAMER_BACKEND_ + self->capslist = caps; + /* init variables */ - assert( XAStaticCapsAdapt_GetCapsCount( XACAP_ENCODER|XACAP_AUDIO, + assert( XACapabilitiesMgr_GetCapsCount( caps, (XACapsType)((XACapsType)(XACAP_ENCODER|XACAP_AUDIO)), &(self->numCodecs) ) == XA_RESULT_SUCCESS ); -#endif + /*self->mmfEngine = (void*)mmf_capability_engine_init();*/ self->numCodecs = 3; self->self = self;