khronosfws/openmax_al/src/common/xametadataextractionitf.c
changeset 33 5e8b14bae8c3
parent 25 6f7ceef7b1d1
child 53 eabc8c503852
equal deleted inserted replaced
28:ebf79c79991a 33:5e8b14bae8c3
   148     DEBUG_API("->XAMetadataExtractionItfImpl_GetKeySize");
   148     DEBUG_API("->XAMetadataExtractionItfImpl_GetKeySize");
   149 
   149 
   150     impl = GetImpl(self);
   150     impl = GetImpl(self);
   151     if (!impl || !pKeySize)
   151     if (!impl || !pKeySize)
   152         {
   152         {
   153         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");DEBUG_API("<-XAMetadataExtractionItfImpl_GetKeySize");
   153         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
       
   154         DEBUG_API("<-XAMetadataExtractionItfImpl_GetKeySize");
   154         return XA_RESULT_PARAMETER_INVALID;
   155         return XA_RESULT_PARAMETER_INVALID;
   155         }
   156         }
   156     *pKeySize = 0;
   157     *pKeySize = 0;
   157 
   158 
   158     if (impl->adaptCtx && impl->adaptCtx->fwtype == FWMgrFWMMF)
   159     if (impl->adaptCtx && impl->adaptCtx->fwtype == FWMgrFWMMF)
   171     else
   172     else
   172         {
   173         {
   173         /* check index and return unfiltered index */
   174         /* check index and return unfiltered index */
   174         if (CheckAndUnfilterIndex(impl, index, &newidx) != XA_RESULT_SUCCESS)
   175         if (CheckAndUnfilterIndex(impl, index, &newidx) != XA_RESULT_SUCCESS)
   175             {
   176             {
   176             DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");DEBUG_API("<-XAMetadataExtractionItfImpl_GetKeySize");
   177             DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
       
   178             DEBUG_API("<-XAMetadataExtractionItfImpl_GetKeySize");
   177             return XA_RESULT_PARAMETER_INVALID;
   179             return XA_RESULT_PARAMETER_INVALID;
   178             }
   180             }
   179 
   181 
   180         /* size = size of struct + size of data - 1 (struct size already includes one char) */
   182         /* size = size of struct + size of data - 1 (struct size already includes one char) */
   181         *pKeySize = sizeof(XAMetadataInfo)
   183         *pKeySize = sizeof(XAMetadataInfo)
   208     DEBUG_API("->XAMetadataExtractionItfImpl_GetKey");
   210     DEBUG_API("->XAMetadataExtractionItfImpl_GetKey");
   209 
   211 
   210     impl = GetImpl(self);
   212     impl = GetImpl(self);
   211     if (!impl || !pKey)
   213     if (!impl || !pKey)
   212         {
   214         {
   213         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");DEBUG_API("<-XAMetadataExtractionItfImpl_GetKey");
   215         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
       
   216         DEBUG_API("<-XAMetadataExtractionItfImpl_GetKey");
   214         return XA_RESULT_PARAMETER_INVALID;
   217         return XA_RESULT_PARAMETER_INVALID;
   215         }
   218         }
   216 
   219 
   217     memset(pKey, 0, keySize);
   220     memset(pKey, 0, keySize);
   218 
   221 
   233         {
   236         {
   234 
   237 
   235         /* check index and return unfiltered index */
   238         /* check index and return unfiltered index */
   236         if (CheckAndUnfilterIndex(impl, index, &newidx) != XA_RESULT_SUCCESS)
   239         if (CheckAndUnfilterIndex(impl, index, &newidx) != XA_RESULT_SUCCESS)
   237             {
   240             {
   238             DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");DEBUG_API("<-XAMetadataExtractionItfImpl_GetKey");
   241             DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
       
   242             DEBUG_API("<-XAMetadataExtractionItfImpl_GetKey");
   239             return XA_RESULT_PARAMETER_INVALID;
   243             return XA_RESULT_PARAMETER_INVALID;
   240             }
   244             }
   241 
   245 
   242         /* needed size = size of struct + size of data - 1 (struct size already includes one char) */
   246         /* needed size = size of struct + size of data - 1 (struct size already includes one char) */
   243         neededsize = sizeof(XAMetadataInfo)
   247         neededsize = sizeof(XAMetadataInfo)
   282     DEBUG_API("->XAMetadataExtractionItfImpl_GetValueSize");
   286     DEBUG_API("->XAMetadataExtractionItfImpl_GetValueSize");
   283 
   287 
   284     impl = GetImpl(self);
   288     impl = GetImpl(self);
   285     if (!impl || !pValueSize)
   289     if (!impl || !pValueSize)
   286         {
   290         {
   287         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");DEBUG_API("<-XAMetadataExtractionItfImpl_GetValueSize");
   291         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
       
   292         DEBUG_API("<-XAMetadataExtractionItfImpl_GetValueSize");
   288         return XA_RESULT_PARAMETER_INVALID;
   293         return XA_RESULT_PARAMETER_INVALID;
   289         }
   294         }
   290     *pValueSize = 0;
   295     *pValueSize = 0;
   291 
   296 
   292     if (impl->adaptCtx && impl->adaptCtx->fwtype == FWMgrFWMMF)
   297     if (impl->adaptCtx && impl->adaptCtx->fwtype == FWMgrFWMMF)
   305     else
   310     else
   306         {
   311         {
   307         /* check index and return unfiltered index */
   312         /* check index and return unfiltered index */
   308         if (CheckAndUnfilterIndex(impl, index, &newidx) != XA_RESULT_SUCCESS)
   313         if (CheckAndUnfilterIndex(impl, index, &newidx) != XA_RESULT_SUCCESS)
   309             {
   314             {
   310             DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");DEBUG_API("<-XAMetadataExtractionItfImpl_GetValueSize");
   315             DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
       
   316             DEBUG_API("<-XAMetadataExtractionItfImpl_GetValueSize");
   311             return XA_RESULT_PARAMETER_INVALID;
   317             return XA_RESULT_PARAMETER_INVALID;
   312             }
   318             }
   313 
   319 
   314         /* size = size of struct + size of data - 1 (struct size already includes one char) */
   320         /* size = size of struct + size of data - 1 (struct size already includes one char) */
   315         *pValueSize = sizeof(XAMetadataInfo)
   321         *pValueSize = sizeof(XAMetadataInfo)
   342     DEBUG_API("->XAMetadataExtractionItfImpl_GetValue");
   348     DEBUG_API("->XAMetadataExtractionItfImpl_GetValue");
   343 
   349 
   344     impl = GetImpl(self);
   350     impl = GetImpl(self);
   345     if (!impl || !pValue)
   351     if (!impl || !pValue)
   346         {
   352         {
   347         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");DEBUG_API("<-XAMetadataExtractionItfImpl_GetValue");
   353         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
       
   354         DEBUG_API("<-XAMetadataExtractionItfImpl_GetValue");
   348         return XA_RESULT_PARAMETER_INVALID;
   355         return XA_RESULT_PARAMETER_INVALID;
   349         }
   356         }
   350 
   357 
   351     memset(pValue, 0, valueSize);
   358     memset(pValue, 0, valueSize);
   352 
   359 
   366     else
   373     else
   367         {
   374         {
   368         /* check index and return unfiltered index */
   375         /* check index and return unfiltered index */
   369         if (CheckAndUnfilterIndex(impl, index, &newidx) != XA_RESULT_SUCCESS)
   376         if (CheckAndUnfilterIndex(impl, index, &newidx) != XA_RESULT_SUCCESS)
   370             {
   377             {
   371             DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");DEBUG_API("<-XAMetadataExtractionItfImpl_GetValue");
   378             DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
       
   379             DEBUG_API("<-XAMetadataExtractionItfImpl_GetValue");
   372             return XA_RESULT_PARAMETER_INVALID;
   380             return XA_RESULT_PARAMETER_INVALID;
   373             }
   381             }
   374 
   382 
   375         /* needed size = size of struct + size of data - 1 (struct size already includes one char) */
   383         /* needed size = size of struct + size of data - 1 (struct size already includes one char) */
   376         neededsize = sizeof(XAMetadataInfo)
   384         neededsize = sizeof(XAMetadataInfo)
   431 
   439 
   432     DEBUG_API("->XAMetadataExtractionItfImpl_AddKeyFilter");
   440     DEBUG_API("->XAMetadataExtractionItfImpl_AddKeyFilter");
   433 
   441 
   434     if (!impl)
   442     if (!impl)
   435         {
   443         {
   436         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");DEBUG_API("<-XAMetadataExtractionItfImpl_AddKeyFilter");
   444         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
       
   445         DEBUG_API("<-XAMetadataExtractionItfImpl_AddKeyFilter");
   437         return XA_RESULT_PARAMETER_INVALID;
   446         return XA_RESULT_PARAMETER_INVALID;
   438         }
   447         }
   439     else
   448     else
   440         {
   449         {
   441 
   450 
   493                     }
   502                     }
   494                 /*reset matchmask*/
   503                 /*reset matchmask*/
   495                 matchMask = 0;
   504                 matchMask = 0;
   496                 }
   505                 }
   497             }
   506             }
   498         }DEBUG_API_A1("<-XAMetadataExtractionItfImpl_AddKeyFilter (%d)", (int)res);
   507         }
       
   508     DEBUG_API_A1("<-XAMetadataExtractionItfImpl_AddKeyFilter (%d)", (int)res);
   499     return res;
   509     return res;
   500     }
   510     }
   501 
   511 
   502 /*
   512 /*
   503  * Clears the key filter
   513  * Clears the key filter
   625     XAMetadataExtractionItfImpl* impl = NULL;
   635     XAMetadataExtractionItfImpl* impl = NULL;
   626     DEBUG_API("->XAMetadataExtractionItfImp_AdaptCb");
   636     DEBUG_API("->XAMetadataExtractionItfImp_AdaptCb");
   627     impl = (XAMetadataExtractionItfImpl*) pHandlerCtx;
   637     impl = (XAMetadataExtractionItfImpl*) pHandlerCtx;
   628     if (!impl)
   638     if (!impl)
   629         {
   639         {
   630         DEBUG_ERR("XAMetadataExtractionItfImp_AdaptCb, invalid context pointer!");DEBUG_API("<-XAMetadataExtractionItfImp_AdaptCb");
   640         DEBUG_ERR("XAMetadataExtractionItfImp_AdaptCb, invalid context pointer!");
       
   641         DEBUG_API("<-XAMetadataExtractionItfImp_AdaptCb");
   631         return;
   642         return;
   632         }
   643         }
   633     if (event && event->eventid == XA_ADAPT_MDE_TAGS_AVAILABLE)
   644     if (event && event->eventid == XA_ADAPT_MDE_TAGS_AVAILABLE)
   634         {
   645         {
   635         /* get the tag list */
   646         /* get the tag list */
   644         impl->filteredcount = 0;
   655         impl->filteredcount = 0;
   645         }
   656         }
   646     else
   657     else
   647         {
   658         {
   648         DEBUG_INFO("unhandled");
   659         DEBUG_INFO("unhandled");
   649         }DEBUG_API("<-XAMetadataExtractionItfImp_AdaptCb");
   660         }
       
   661     DEBUG_API("<-XAMetadataExtractionItfImp_AdaptCb");
   650     }
   662     }
   651 
   663 
   652 /* For given index over filtered array, return index over whole array
   664 /* For given index over filtered array, return index over whole array
   653  */
   665  */
   654 XAresult CheckAndUnfilterIndex(XAMetadataExtractionItfImpl *impl,
   666 XAresult CheckAndUnfilterIndex(XAMetadataExtractionItfImpl *impl,
   659     if (impl->filteringOn)
   671     if (impl->filteringOn)
   660         {
   672         {
   661         XAint16 i = -1;
   673         XAint16 i = -1;
   662         if (oldidx >= impl->filteredcount)
   674         if (oldidx >= impl->filteredcount)
   663             {
   675             {
   664             DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");DEBUG_API("<-CheckAndUnfilterIndex");
   676             DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
       
   677             DEBUG_API("<-CheckAndUnfilterIndex");
   665             return XA_RESULT_PARAMETER_INVALID;
   678             return XA_RESULT_PARAMETER_INVALID;
   666             }
   679             }
   667         *newidx = 0;
   680         *newidx = 0;
   668         while (*newidx < impl->currentTags.itemcount)
   681         while (*newidx < impl->currentTags.itemcount)
   669             {
   682             {
   676             }
   689             }
   677         if (*newidx == impl->currentTags.itemcount)
   690         if (*newidx == impl->currentTags.itemcount)
   678             {
   691             {
   679             /* should not end up here */
   692             /* should not end up here */
   680             *newidx = 0;
   693             *newidx = 0;
   681             DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");DEBUG_API("<-CheckAndUnfilterIndex");
   694             DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
       
   695             DEBUG_API("<-CheckAndUnfilterIndex");
   682             return XA_RESULT_PARAMETER_INVALID;
   696             return XA_RESULT_PARAMETER_INVALID;
   683             }
   697             }
   684         }
   698         }
   685     else
   699     else
   686         {
   700         {
   687         if (oldidx >= impl->currentTags.itemcount)
   701         if (oldidx >= impl->currentTags.itemcount)
   688             {
   702             {
   689             DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");DEBUG_API("<-CheckAndUnfilterIndex");
   703             DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
       
   704             DEBUG_API("<-CheckAndUnfilterIndex");
   690             return XA_RESULT_PARAMETER_INVALID;
   705             return XA_RESULT_PARAMETER_INVALID;
   691             }
   706             }
   692         *newidx = oldidx;
   707         *newidx = oldidx;
   693         }
   708         }
   694 
   709