diff -r 095bea5f582e -r 0ac9a5310753 khronosfws/openmax_al/src/mmf_adaptation/xammfcapabilitiesmgr.c --- a/khronosfws/openmax_al/src/mmf_adaptation/xammfcapabilitiesmgr.c Tue Aug 31 15:43:02 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,355 +0,0 @@ -/* - * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). - * All rights reserved. - * This component and the accompanying materials are made available - * under the terms of "Eclipse Public License v1.0" - * which accompanies this distribution, and is available - * at the URL "http://www.eclipse.org/legal/epl-v10.html". - * - * Initial Contributors: - * Nokia Corporation - initial contribution. - * - * Contributors: - * - * Description: MMF capabilities mgr - * - */ -#include -#include -#include "xammfcapabilitiesmgr.h" - -static XAresult XAMMFCapabilitiesMgr_GetAudioAACEncoderCapabilities( - XACapabilities **ppNode); -static XAresult XAMMFCapabilitiesMgr_GetAudioAMREncoderCapabilities( - XACapabilities **ppNode); -static XAresult XAMMFCapabilitiesMgr_GetAudioPCMEncoderCapabilities( - XACapabilities **ppNode); - -/* XAresult XAMMFCapabilitiesMgr_UpdateCapabilitieList - * Description: Update the capabilities list supported by GStreamer framework. - */ -XAresult XAMMFCapabilitiesMgr_UpdateCapabilitieList( - FrameworkMap *frameworkMap, XACapabilities **ppListHead) - - { - XAresult res = XA_RESULT_SUCCESS; - XACapabilities *lastNode; - XACapabilities *firstNode; - XACapabilities *newNode = NULL; - FWMgrFwType fwtype = FWMgrFWUknown; - char *uri = NULL; - DEBUG_API("->XAGSTCapabilitiesMgr_UpdateCapabilitieList"); - - if (!frameworkMap || !ppListHead) - { - res = XA_RESULT_PARAMETER_INVALID; - return res; - } - - lastNode = firstNode = *ppListHead; - - /* traverse and point to the last node in the list */ - while (lastNode && lastNode->next) - { - lastNode = lastNode->next; - } - - uri = "file:///c:/test.mp4"; - fwtype = XAFrameworkMgr_GetFramework(frameworkMap, uri, FWMgrMORecorder); - - if (fwtype == FWMgrFWMMF) - { - /* Add codec capabilities */ - newNode = NULL; - res = XAMMFCapabilitiesMgr_GetAudioAACEncoderCapabilities(&newNode); - if (res != XA_RESULT_SUCCESS) - { - return res; - } - if (lastNode) - { - lastNode->next = newNode; - } - if (newNode) - { /* if a new node is created move lastNode to the new item */ - if (!firstNode) - { - firstNode = newNode; - } - lastNode = newNode; - } - } - - uri = "file:///c:/test.amr"; - fwtype = XAFrameworkMgr_GetFramework(frameworkMap, uri, FWMgrMORecorder); - - if (fwtype == FWMgrFWMMF) - { - newNode = NULL; - res = XAMMFCapabilitiesMgr_GetAudioAMREncoderCapabilities(&newNode); - if (res != XA_RESULT_SUCCESS) - { - return res; - } - if (lastNode) - { - lastNode->next = newNode; - } - if (newNode) - { /* if a new node is created move lastNode to the new item */ - if (!firstNode) - { - firstNode = newNode; - } - lastNode = newNode; - } - } - - uri = "file:///c:/test.wav"; - fwtype = XAFrameworkMgr_GetFramework(frameworkMap, uri, FWMgrMORecorder); - - if (fwtype == FWMgrFWMMF) - { - newNode = NULL; - res = XAMMFCapabilitiesMgr_GetAudioPCMEncoderCapabilities(&newNode); - if (res != XA_RESULT_SUCCESS) - { - return res; - } - if (lastNode) - { - lastNode->next = newNode; - } - if (newNode) - { /* if a new node is created move lastNode to the new item */ - if (!firstNode) - { - firstNode = newNode; - } - lastNode = newNode; - } - } - /* if empty list, then append first node as the head */ - if (!(*ppListHead)) - { - *ppListHead = firstNode; - } - DEBUG_API("<-XAGSTCapabilitiesMgr_UpdateCapabilitieList"); - return res; - } - -XAresult XAMMFCapabilitiesMgr_GetAudioAACEncoderCapabilities( - XACapabilities **ppNode) - { - XAresult res = XA_RESULT_SUCCESS; - XACapabilities *newNode = NULL; - XAAudioCodecDescriptor *entries = NULL; - - newNode = (XACapabilities *) calloc(1, sizeof(XACapabilities)); - if (!newNode) - { - res = XA_RESULT_MEMORY_FAILURE; - return res; - } - - newNode->capsType = AUD_E; - newNode->xaid = XA_AUDIOCODEC_AAC; - newNode->noOfEntries = 1; - - /* Allocate array */ - entries = (XAAudioCodecDescriptor*) calloc(1, - sizeof(XAAudioCodecDescriptor)); - if (!entries) - { - res = XA_RESULT_MEMORY_FAILURE; - XACapabilitiesMgr_DeleteCapabilitieList(&newNode); - return res; - } - - newNode->pEntry = (void*) entries; - - entries->maxChannels = 2; - entries->minBitsPerSample = 16; - entries->maxBitsPerSample = 16; - entries->minSampleRate = 8000000; /*milliHz*/ - entries->maxSampleRate = 48000000; - entries->isFreqRangeContinuous = XA_BOOLEAN_FALSE; - entries->numSampleRatesSupported = 7; - entries->pSampleRatesSupported = (XAmilliHertz*) calloc( - entries->numSampleRatesSupported, sizeof(XAmilliHertz)); - if (!entries->pSampleRatesSupported) - { - res = XA_RESULT_MEMORY_FAILURE; - XACapabilitiesMgr_DeleteCapabilitieList(&newNode); - return res; - } - /* entries in milliHz */ - entries->pSampleRatesSupported[0] = 8000000; - entries->pSampleRatesSupported[1] = 11025000; - entries->pSampleRatesSupported[2] = 16000000; - entries->pSampleRatesSupported[3] = 22050000; - entries->pSampleRatesSupported[4] = 32000000; - entries->pSampleRatesSupported[5] = 44100000; - entries->pSampleRatesSupported[6] = 48000000; - - entries->minBitRate = 32000; - entries->maxBitRate = 256000; - entries->isBitrateRangeContinuous = XA_BOOLEAN_FALSE; - entries->numBitratesSupported = 8; - entries->pBitratesSupported = (XAuint32*) calloc( - entries->numBitratesSupported, sizeof(XAuint32)); - if (!entries->pBitratesSupported) - { - res = XA_RESULT_MEMORY_FAILURE; - XACapabilitiesMgr_DeleteCapabilitieList(&newNode); - return res; - } - (entries->pBitratesSupported)[0] = 32000; - (entries->pBitratesSupported)[1] = 64000; - (entries->pBitratesSupported)[2] = 96000; - (entries->pBitratesSupported)[3] = 128000; - (entries->pBitratesSupported)[4] = 160000; - (entries->pBitratesSupported)[5] = 192000; - (entries->pBitratesSupported)[6] = 224000; - (entries->pBitratesSupported)[7] = 256000; - - entries->profileSetting = XA_AUDIOPROFILE_AAC_AAC; - entries->modeSetting = XA_AUDIOMODE_AAC_LC; - - *ppNode = newNode; - return res; - } - -XAresult XAMMFCapabilitiesMgr_GetAudioAMREncoderCapabilities( - XACapabilities **ppNode) - { - XAresult res = XA_RESULT_SUCCESS; - XACapabilities *newNode = NULL; - XAAudioCodecDescriptor *entries = NULL; - - newNode = (XACapabilities *) calloc(1, sizeof(XACapabilities)); - if (!newNode) - { - res = XA_RESULT_MEMORY_FAILURE; - return res; - } - - newNode->capsType = AUD_E; - newNode->xaid = XA_AUDIOCODEC_AMR; - newNode->noOfEntries = 1; - - /* Allocate array */ - entries = (XAAudioCodecDescriptor*) calloc(1, - sizeof(XAAudioCodecDescriptor)); - if (!entries) - { - res = XA_RESULT_MEMORY_FAILURE; - XACapabilitiesMgr_DeleteCapabilitieList(&newNode); - return res; - } - - newNode->pEntry = (void*) entries; - - entries->maxChannels = 1; - entries->minBitsPerSample = 8; - entries->maxBitsPerSample = 8; - entries->minSampleRate = 8000000; /*milliHz*/ - entries->maxSampleRate = 8000000; - entries->isFreqRangeContinuous = XA_BOOLEAN_TRUE; - entries->numSampleRatesSupported = 1; - entries->minBitRate = 4750; - entries->maxBitRate = 12200; - entries->isBitrateRangeContinuous = XA_BOOLEAN_FALSE; - entries->numBitratesSupported = 8; - entries->pBitratesSupported = (XAuint32*) calloc( - entries->numBitratesSupported, sizeof(XAuint32)); - if (!entries->pBitratesSupported) - { - res = XA_RESULT_MEMORY_FAILURE; - XACapabilitiesMgr_DeleteCapabilitieList(&newNode); - return res; - } - (entries->pBitratesSupported)[0] = 4750; - (entries->pBitratesSupported)[1] = 5150; - (entries->pBitratesSupported)[2] = 5900; - (entries->pBitratesSupported)[3] = 6700; - (entries->pBitratesSupported)[4] = 7400; - (entries->pBitratesSupported)[5] = 7950; - (entries->pBitratesSupported)[6] = 10200; - (entries->pBitratesSupported)[7] = 12200; - - entries->profileSetting = XA_AUDIOPROFILE_AMR; - entries->modeSetting = 0; - - *ppNode = newNode; - return res; - } - -XAresult XAMMFCapabilitiesMgr_GetAudioPCMEncoderCapabilities( - XACapabilities **ppNode) - { - XAresult res = XA_RESULT_SUCCESS; - XACapabilities *newNode = NULL; - XAAudioCodecDescriptor *entries = NULL; - - newNode = (XACapabilities *) calloc(1, sizeof(XACapabilities)); - if (!newNode) - { - res = XA_RESULT_MEMORY_FAILURE; - return res; - } - - newNode->capsType = AUD_E; - newNode->xaid = XA_AUDIOCODEC_PCM; - newNode->noOfEntries = 1; - - /* Allocate array */ - entries = (XAAudioCodecDescriptor*) calloc(1, - sizeof(XAAudioCodecDescriptor)); - if (!entries) - { - res = XA_RESULT_MEMORY_FAILURE; - XACapabilitiesMgr_DeleteCapabilitieList(&newNode); - return res; - } - - newNode->pEntry = (void*) entries; - - entries->maxChannels = 2; - entries->minBitsPerSample = 16; - entries->maxBitsPerSample = 16; - entries->minSampleRate = 8000000; /*milliHz*/ - entries->maxSampleRate = 96000000; - entries->isFreqRangeContinuous = XA_BOOLEAN_FALSE; - entries->numSampleRatesSupported = 10; - entries->pSampleRatesSupported = (XAmilliHertz*) calloc( - entries->numSampleRatesSupported, sizeof(XAmilliHertz)); - if (!entries->pSampleRatesSupported) - { - res = XA_RESULT_MEMORY_FAILURE; - XACapabilitiesMgr_DeleteCapabilitieList(&newNode); - return res; - } - /* entries in milliHz */ - entries->pSampleRatesSupported[0] = 12000000; - entries->pSampleRatesSupported[1] = 16000000; - entries->pSampleRatesSupported[2] = 22050000; - entries->pSampleRatesSupported[3] = 24000000; - entries->pSampleRatesSupported[4] = 32000000; - entries->pSampleRatesSupported[5] = 44100000; - entries->pSampleRatesSupported[6] = 48000000; - entries->pSampleRatesSupported[7] = 64000000; - entries->pSampleRatesSupported[8] = 88200000; - entries->pSampleRatesSupported[9] = 96000000; - - entries->minBitRate = 0; - entries->maxBitRate = 0; - entries->isBitrateRangeContinuous = XA_BOOLEAN_FALSE; - entries->pBitratesSupported = NULL; - entries->numBitratesSupported = 0; - entries->profileSetting = XA_AUDIOPROFILE_PCM; - entries->modeSetting = 0; - - *ppNode = newNode; - return res; - }