khronosfws/openmax_al/src/engine/xaaudiodecodercapabilitiesitf.c
author hgs
Fri, 11 Jun 2010 19:59:23 -0500
changeset 25 6f7ceef7b1d1
parent 19 4a629bc82c5e
child 28 ebf79c79991a
permissions -rw-r--r--
201023
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
25
hgs
parents: 19
diff changeset
     2
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents: 19
diff changeset
     3
 * All rights reserved.
hgs
parents: 19
diff changeset
     4
 * This component and the accompanying materials are made available
hgs
parents: 19
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
hgs
parents: 19
diff changeset
     6
 * which accompanies this distribution, and is available
hgs
parents: 19
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents: 19
diff changeset
     8
 *
hgs
parents: 19
diff changeset
     9
 * Initial Contributors:
hgs
parents: 19
diff changeset
    10
 * Nokia Corporation - initial contribution.
hgs
parents: 19
diff changeset
    11
 *
hgs
parents: 19
diff changeset
    12
 * Contributors:
hgs
parents: 19
diff changeset
    13
 *
hgs
parents: 19
diff changeset
    14
 * Description: Audio Encoder Capabilities Interface Implementation
hgs
parents: 19
diff changeset
    15
 *
hgs
parents: 19
diff changeset
    16
 */
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
#include <stdio.h>
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
#include <stdlib.h>
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
#include <assert.h>
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
#include <string.h>
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
#include "xaglobals.h"
19
hgs
parents: 12
diff changeset
    24
#include "xaadptbasectx.h"
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
#include "xaaudiodecodercapabilitiesitf.h"
19
hgs
parents: 12
diff changeset
    26
#include "xacapabilitiesmgr.h"
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
/* XAAudioDecoderCapabilitiesItfImpl* GetImpl
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
 * Description: Validate interface pointer and cast it to implementation pointer.
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
 */
25
hgs
parents: 19
diff changeset
    30
static XAAudioDecoderCapabilitiesItfImpl* GetImpl(
hgs
parents: 19
diff changeset
    31
        XAAudioDecoderCapabilitiesItf self)
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
    {
25
hgs
parents: 19
diff changeset
    33
    if (self)
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
        {
25
hgs
parents: 19
diff changeset
    35
        XAAudioDecoderCapabilitiesItfImpl* impl =
hgs
parents: 19
diff changeset
    36
                (XAAudioDecoderCapabilitiesItfImpl*) (*self);
hgs
parents: 19
diff changeset
    37
        if (impl && (impl == impl->self))
hgs
parents: 19
diff changeset
    38
            {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    39
            return impl;
25
hgs
parents: 19
diff changeset
    40
            }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
        }
25
hgs
parents: 19
diff changeset
    42
    return NULL;
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
    }
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    44
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
/*****************************************************************************
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
 * Base interface XAAudioDecoderCapabilitiesItf implementation
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
 *****************************************************************************/
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
/* XAresult XAAudioDecoderCapabilitiesItfImpl_GetAudioDecoders
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    50
 * Description: Retrieves the available audio decoders.
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    51
 */
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    52
XAresult XAAudioDecoderCapabilitiesItfImpl_GetAudioDecoders(
25
hgs
parents: 19
diff changeset
    53
        XAAudioDecoderCapabilitiesItf self, XAuint32* pNumDecoders,
hgs
parents: 19
diff changeset
    54
        XAuint32* pDecoderIds)
hgs
parents: 19
diff changeset
    55
    {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    56
    XAAudioDecoderCapabilitiesItfImpl* impl = GetImpl(self);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    57
    XAresult res = XA_RESULT_SUCCESS;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    58
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    59
    DEBUG_API("->XAAudioDecoderCapabilitiesItfImpl_GetAudioDecoders");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    60
25
hgs
parents: 19
diff changeset
    61
    if (!impl || !pNumDecoders)
hgs
parents: 19
diff changeset
    62
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    63
        DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    64
        res = XA_RESULT_PARAMETER_INVALID;
25
hgs
parents: 19
diff changeset
    65
        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    66
    else
25
hgs
parents: 19
diff changeset
    67
        {
hgs
parents: 19
diff changeset
    68
        if (pDecoderIds)
hgs
parents: 19
diff changeset
    69
            { /* query array of decoders */
hgs
parents: 19
diff changeset
    70
            if (*pNumDecoders < impl->numCodecs)
hgs
parents: 19
diff changeset
    71
                {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    72
                DEBUG_ERR("XA_RESULT_BUFFER_INSUFFICIENT");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    73
                res = XA_RESULT_BUFFER_INSUFFICIENT;
25
hgs
parents: 19
diff changeset
    74
                }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    75
            else
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    76
                {
25
hgs
parents: 19
diff changeset
    77
hgs
parents: 19
diff changeset
    78
                XAuint32 i = 0;
hgs
parents: 19
diff changeset
    79
                XACapabilities temp;
hgs
parents: 19
diff changeset
    80
                for (i = 0; i < impl->numCodecs; i++)
hgs
parents: 19
diff changeset
    81
                    {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    82
                    /* query decoder id from adaptation using index value */
25
hgs
parents: 19
diff changeset
    83
                    XACapabilitiesMgr_GetCapsByIdx(NULL,
hgs
parents: 19
diff changeset
    84
                            (XACapsType) (XACAP_DECODER | XACAP_AUDIO), i,
hgs
parents: 19
diff changeset
    85
                            &temp);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    86
                    pDecoderIds[i] = temp.xaid;
25
hgs
parents: 19
diff changeset
    87
                    }
hgs
parents: 19
diff changeset
    88
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    89
                }
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    90
            }
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    91
        /* return number of decoders */
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    92
        *pNumDecoders = impl->numCodecs;
25
hgs
parents: 19
diff changeset
    93
        }DEBUG_API("<-XAAudioDecoderCapabilitiesItfImpl_GetAudioDecoders");
hgs
parents: 19
diff changeset
    94
    return res;
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    95
    }
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    96
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    97
/* XAresult XAAudioDecoderCapabilitiesItfImpl_GetAudioDecoderCapabilities
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    98
 * Description: Queries for the audio decoder�s capabilities.
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    99
 */
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   100
XAresult XAAudioDecoderCapabilitiesItfImpl_GetAudioDecoderCapabilities(
25
hgs
parents: 19
diff changeset
   101
        XAAudioDecoderCapabilitiesItf self, XAuint32 decoderId,
hgs
parents: 19
diff changeset
   102
        XAuint32* pIndex, XAAudioCodecDescriptor* pDescriptor)
hgs
parents: 19
diff changeset
   103
    {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   104
    XAAudioDecoderCapabilitiesItfImpl* impl = GetImpl(self);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   105
    XAresult res = XA_RESULT_SUCCESS;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   106
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   107
    DEBUG_API("->XAAudioDecoderCapabilitiesItfImpl_GetAudioDecoderCapabilities");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   108
25
hgs
parents: 19
diff changeset
   109
    if (!impl || !pIndex)
hgs
parents: 19
diff changeset
   110
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   111
        DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   112
        res = XA_RESULT_PARAMETER_INVALID;
25
hgs
parents: 19
diff changeset
   113
        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   114
    else
25
hgs
parents: 19
diff changeset
   115
        {
hgs
parents: 19
diff changeset
   116
        if (!pDescriptor)
hgs
parents: 19
diff changeset
   117
            { /* query number of capa structures */
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   118
            *pIndex = 1;
25
hgs
parents: 19
diff changeset
   119
            }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   120
        else
25
hgs
parents: 19
diff changeset
   121
            { /* query capabilities */
hgs
parents: 19
diff changeset
   122
            if (*pIndex >= 1)
hgs
parents: 19
diff changeset
   123
                {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   124
                DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   125
                res = XA_RESULT_PARAMETER_INVALID;
25
hgs
parents: 19
diff changeset
   126
                }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   127
            else
25
hgs
parents: 19
diff changeset
   128
                {
hgs
parents: 19
diff changeset
   129
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   130
                /* query capabilities from adaptation using codec id */
19
hgs
parents: 12
diff changeset
   131
                XACapabilities temp;
25
hgs
parents: 19
diff changeset
   132
                memset(pDescriptor, 0, sizeof(XAAudioCodecDescriptor));
hgs
parents: 19
diff changeset
   133
                res = XACapabilitiesMgr_GetCapsById(NULL,
hgs
parents: 19
diff changeset
   134
                        (XACapsType) (XACAP_DECODER | XACAP_AUDIO),
hgs
parents: 19
diff changeset
   135
                        decoderId, &temp);
hgs
parents: 19
diff changeset
   136
                if (res == XA_RESULT_SUCCESS)
hgs
parents: 19
diff changeset
   137
                    {
hgs
parents: 19
diff changeset
   138
                    XAAudioCodecDescriptor* desc =
hgs
parents: 19
diff changeset
   139
                            ((XAAudioCodecDescriptor*) (temp.pEntry));
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   140
                    /* map applicable values to XAAudioCodecCapabilities */
19
hgs
parents: 12
diff changeset
   141
                    pDescriptor->maxChannels = desc->maxChannels;
25
hgs
parents: 19
diff changeset
   142
                    pDescriptor->minSampleRate = desc->minSampleRate * 1000; /* milliHz */
19
hgs
parents: 12
diff changeset
   143
                    if (desc->maxSampleRate < (0xFFFFFFFF / 1000))
25
hgs
parents: 19
diff changeset
   144
                        {
hgs
parents: 19
diff changeset
   145
                        pDescriptor->maxSampleRate = desc->maxSampleRate
hgs
parents: 19
diff changeset
   146
                                * 1000;
hgs
parents: 19
diff changeset
   147
                        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   148
                    else
25
hgs
parents: 19
diff changeset
   149
                        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   150
                        pDescriptor->maxSampleRate = 0xFFFFFFFF;
25
hgs
parents: 19
diff changeset
   151
                        }
hgs
parents: 19
diff changeset
   152
                    pDescriptor->minBitsPerSample = desc->minBitsPerSample;
hgs
parents: 19
diff changeset
   153
                    pDescriptor->maxBitsPerSample = desc->maxBitsPerSample;
hgs
parents: 19
diff changeset
   154
                    pDescriptor->isFreqRangeContinuous = XA_BOOLEAN_TRUE;
hgs
parents: 19
diff changeset
   155
                    pDescriptor->minBitRate = desc->minBitRate;
hgs
parents: 19
diff changeset
   156
                    pDescriptor->maxBitRate = desc->maxBitRate;
hgs
parents: 19
diff changeset
   157
                    pDescriptor->numBitratesSupported
hgs
parents: 19
diff changeset
   158
                            = desc->numBitratesSupported;
hgs
parents: 19
diff changeset
   159
                    pDescriptor->isBitrateRangeContinuous = XA_BOOLEAN_TRUE;
hgs
parents: 19
diff changeset
   160
                    if (temp.xaid == XA_AUDIOCODEC_PCM)
hgs
parents: 19
diff changeset
   161
                        {
hgs
parents: 19
diff changeset
   162
                        pDescriptor->profileSetting = XA_AUDIOPROFILE_PCM;
hgs
parents: 19
diff changeset
   163
                        pDescriptor->modeSetting = 0; /* no chanmode for pcm defined */
hgs
parents: 19
diff changeset
   164
                        }
hgs
parents: 19
diff changeset
   165
                    else if (temp.xaid == XA_ADAPTID_VORBIS) /* for ogg */
hgs
parents: 19
diff changeset
   166
                        {
hgs
parents: 19
diff changeset
   167
                        if (desc->maxChannels == 1)
hgs
parents: 19
diff changeset
   168
                            {
hgs
parents: 19
diff changeset
   169
                            pDescriptor->profileSetting
hgs
parents: 19
diff changeset
   170
                                    =XA_AUDIOPROFILE_MPEG1_L3;
hgs
parents: 19
diff changeset
   171
                            pDescriptor->modeSetting
hgs
parents: 19
diff changeset
   172
                                    =XA_AUDIOCHANMODE_MP3_MONO;
hgs
parents: 19
diff changeset
   173
                            }
hgs
parents: 19
diff changeset
   174
                        else
hgs
parents: 19
diff changeset
   175
                            {
hgs
parents: 19
diff changeset
   176
                            pDescriptor->profileSetting
hgs
parents: 19
diff changeset
   177
                                    =XA_AUDIOPROFILE_MPEG2_L3;
hgs
parents: 19
diff changeset
   178
                            pDescriptor->modeSetting
hgs
parents: 19
diff changeset
   179
                                    =XA_AUDIOCHANMODE_MP3_STEREO;
hgs
parents: 19
diff changeset
   180
                            }
hgs
parents: 19
diff changeset
   181
                        }
hgs
parents: 19
diff changeset
   182
                    else
hgs
parents: 19
diff changeset
   183
                        {
hgs
parents: 19
diff changeset
   184
                        /* do nothing */
hgs
parents: 19
diff changeset
   185
                        }
hgs
parents: 19
diff changeset
   186
                    /*other caps undefined*/
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   187
                    }
25
hgs
parents: 19
diff changeset
   188
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   189
                }
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   190
            }
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   191
        }
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   192
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   193
    DEBUG_API("<-XAAudioDecoderCapabilitiesItfImpl_GetAudioDecoderCapabilities");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   194
    return res;
25
hgs
parents: 19
diff changeset
   195
    }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   196
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   197
/*****************************************************************************
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   198
 * XAAudioDecoderCapabilitiesItfImpl -specific methods
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   199
 *****************************************************************************/
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   200
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   201
/* XAAudioDecoderCapabilitiesItfImpl_Create
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   202
 * Description: Allocate and initialize XAAudioDecoderCapabilitiesItfImpl
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   203
 */
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   204
XAAudioDecoderCapabilitiesItfImpl* XAAudioDecoderCapabilitiesItfImpl_Create()
25
hgs
parents: 19
diff changeset
   205
    {
hgs
parents: 19
diff changeset
   206
    XAAudioDecoderCapabilitiesItfImpl* self =
hgs
parents: 19
diff changeset
   207
            (XAAudioDecoderCapabilitiesItfImpl*) calloc(1,
hgs
parents: 19
diff changeset
   208
                    sizeof(XAAudioDecoderCapabilitiesItfImpl));
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   209
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   210
    DEBUG_API("->XAAudioDecoderCapabilitiesItfImpl_Create");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   211
25
hgs
parents: 19
diff changeset
   212
    if (self)
hgs
parents: 19
diff changeset
   213
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   214
        /* init itf default implementation */
25
hgs
parents: 19
diff changeset
   215
        self->itf.GetAudioDecoders
hgs
parents: 19
diff changeset
   216
                = XAAudioDecoderCapabilitiesItfImpl_GetAudioDecoders;
hgs
parents: 19
diff changeset
   217
        self->itf.GetAudioDecoderCapabilities
hgs
parents: 19
diff changeset
   218
                = XAAudioDecoderCapabilitiesItfImpl_GetAudioDecoderCapabilities;
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   219
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   220
        /* init variables */
25
hgs
parents: 19
diff changeset
   221
19
hgs
parents: 12
diff changeset
   222
        assert( XACapabilitiesMgr_GetCapsCount(NULL, (XACapsType)(XACAP_DECODER|XACAP_AUDIO),
25
hgs
parents: 19
diff changeset
   223
                        &(self->numCodecs) ) == XA_RESULT_SUCCESS );
19
hgs
parents: 12
diff changeset
   224
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   225
        self->self = self;
25
hgs
parents: 19
diff changeset
   226
        }DEBUG_API("<-XAAudioDecoderCapabilitiesItfImpl_Create");
hgs
parents: 19
diff changeset
   227
    return self;
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   228
    }
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   229
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   230
/* void XAAudioDecoderCapabilitiesItfImpl_Free
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   231
 * Description: Free all resources reserved at XAAudioDecoderCapabilitiesItfImpl_Create
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   232
 */
25
hgs
parents: 19
diff changeset
   233
void XAAudioDecoderCapabilitiesItfImpl_Free(
hgs
parents: 19
diff changeset
   234
        XAAudioDecoderCapabilitiesItfImpl* self)
hgs
parents: 19
diff changeset
   235
    {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   236
    DEBUG_API("->XAAudioDecoderCapabilitiesItfImpl_Free");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   237
    assert(self==self->self);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   238
    free(self);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   239
    DEBUG_API("<-XAAudioDecoderCapabilitiesItfImpl_Free");
25
hgs
parents: 19
diff changeset
   240
    }