diff -r a493a607b5bf -r eabc8c503852 khronosfws/openmax_al/src/common/xametadataextractionitf.c --- a/khronosfws/openmax_al/src/common/xametadataextractionitf.c Fri Sep 03 19:34:12 2010 -0500 +++ b/khronosfws/openmax_al/src/common/xametadataextractionitf.c Tue Sep 21 11:38:43 2010 -0500 @@ -18,13 +18,9 @@ #include #include #include -#include #include "xametadataextractionitf.h" #include "xadebug.h" - -#include "xametadataadaptation.h" - #include "xaadaptationmmf.h" #include "xametadataadaptctxmmf.h" #include "xamediaplayeradaptctxmmf.h" @@ -108,15 +104,7 @@ } else { - if (impl->filteringOn) - { - *pItemCount = impl->filteredcount; - } - else - { - *pItemCount = impl->currentTags.itemcount; - } - res = XA_RESULT_SUCCESS; + res = XA_RESULT_PARAMETER_INVALID; } } else @@ -144,7 +132,7 @@ { XAMetadataExtractionItfImpl *impl = NULL; XAresult res = XA_RESULT_SUCCESS; - XAuint32 newidx = 0; + DEBUG_API("->XAMetadataExtractionItfImpl_GetKeySize"); impl = GetImpl(self); @@ -171,17 +159,7 @@ } else { - /* check index and return unfiltered index */ - if (CheckAndUnfilterIndex(impl, index, &newidx) != XA_RESULT_SUCCESS) - { - DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); - DEBUG_API("<-XAMetadataExtractionItfImpl_GetKeySize"); - return XA_RESULT_PARAMETER_INVALID; - } - - /* size = size of struct + size of data - 1 (struct size already includes one char) */ - *pKeySize = sizeof(XAMetadataInfo) - + impl->currentTags.mdeKeys[newidx]->size - 1; + res = XA_RESULT_PARAMETER_INVALID; } DEBUG_API_A1("<-XAMetadataExtractionItfImpl_GetKeySize (%d)", (int)res); @@ -202,11 +180,7 @@ { XAMetadataExtractionItfImpl *impl = NULL; XAresult res = XA_RESULT_SUCCESS; - XAuint32 newidx = 0; - XAuint32 neededsize = 0; - - XAuint32 newdatasize = 0; DEBUG_API("->XAMetadataExtractionItfImpl_GetKey"); impl = GetImpl(self); @@ -234,36 +208,7 @@ } else { - - /* check index and return unfiltered index */ - if (CheckAndUnfilterIndex(impl, index, &newidx) != XA_RESULT_SUCCESS) - { - DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); - DEBUG_API("<-XAMetadataExtractionItfImpl_GetKey"); - return XA_RESULT_PARAMETER_INVALID; - } - - /* needed size = size of struct + size of data - 1 (struct size already includes one char) */ - neededsize = sizeof(XAMetadataInfo) - + impl->currentTags.mdeKeys[newidx]->size - 1; - if (keySize < neededsize) - { /* cannot fit all of key data */ - newdatasize = impl->currentTags.mdeKeys[newidx]->size - - (neededsize - keySize); - DEBUG_ERR("XA_RESULT_BUFFER_INSUFFICIENT"); - res = XA_RESULT_BUFFER_INSUFFICIENT; - } - else - { - newdatasize = impl->currentTags.mdeKeys[newidx]->size; - res = XA_RESULT_SUCCESS; - } - /* copy data up to given size */ - memcpy(pKey, impl->currentTags.mdeKeys[newidx], keySize - 1); - /* ensure null-termination */ - - memset(pKey->data + newdatasize - 1, 0, 1); - pKey->size = newdatasize; + res = XA_RESULT_PARAMETER_INVALID; } DEBUG_API_A1("<-XAMetadataExtractionItfImpl_GetKey (%d)", (int)res); @@ -282,7 +227,7 @@ { XAMetadataExtractionItfImpl *impl = NULL; XAresult res = XA_RESULT_SUCCESS; - XAuint32 newidx = 0; + DEBUG_API("->XAMetadataExtractionItfImpl_GetValueSize"); impl = GetImpl(self); @@ -309,17 +254,7 @@ } else { - /* check index and return unfiltered index */ - if (CheckAndUnfilterIndex(impl, index, &newidx) != XA_RESULT_SUCCESS) - { - DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); - DEBUG_API("<-XAMetadataExtractionItfImpl_GetValueSize"); - return XA_RESULT_PARAMETER_INVALID; - } - - /* size = size of struct + size of data - 1 (struct size already includes one char) */ - *pValueSize = sizeof(XAMetadataInfo) - + impl->currentTags.mdeValues[newidx]->size - 1; + res = XA_RESULT_PARAMETER_INVALID; } DEBUG_API_A1("<-XAMetadataExtractionItfImpl_GetValueSize (%d)", (int)res); @@ -340,11 +275,7 @@ { XAMetadataExtractionItfImpl *impl = NULL; XAresult res = XA_RESULT_SUCCESS; - XAuint32 newidx = 0; - XAuint32 neededsize = 0; - - XAuint32 newdatasize = 0; DEBUG_API("->XAMetadataExtractionItfImpl_GetValue"); impl = GetImpl(self); @@ -372,36 +303,7 @@ } else { - /* check index and return unfiltered index */ - if (CheckAndUnfilterIndex(impl, index, &newidx) != XA_RESULT_SUCCESS) - { - DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); - DEBUG_API("<-XAMetadataExtractionItfImpl_GetValue"); - return XA_RESULT_PARAMETER_INVALID; - } - - /* needed size = size of struct + size of data - 1 (struct size already includes one char) */ - neededsize = sizeof(XAMetadataInfo) - + impl->currentTags.mdeValues[newidx]->size - 1; - if (valueSize < neededsize) - { /* cannot fit all of key data */ - newdatasize = impl->currentTags.mdeValues[newidx]->size - - (neededsize - valueSize); - DEBUG_ERR("XA_RESULT_BUFFER_INSUFFICIENT"); - res = XA_RESULT_BUFFER_INSUFFICIENT; - } - else - { - newdatasize = impl->currentTags.mdeValues[newidx]->size; - res = XA_RESULT_SUCCESS; - } - /* copy data up to given size */ - memcpy(pValue, impl->currentTags.mdeValues[newidx], valueSize - 1); - /* ensure null-termination */ - - memset(pValue->data + newdatasize - 1, 0, 1); - - pValue->size = newdatasize; + res = XA_RESULT_PARAMETER_INVALID; } DEBUG_API_A1("<-XAMetadataExtractionItfImpl_GetValue (%d)",(int)res); @@ -430,11 +332,8 @@ { XAresult res = XA_RESULT_SUCCESS; - XAuint32 idx = 0; - XAuint8 matchMask = 0; + XAMetadataExtractionItfImpl *impl = NULL; - XAMetadataExtractionItfImpl *impl = NULL; - const XAchar* parsedkey; impl = GetImpl(self); DEBUG_API("->XAMetadataExtractionItfImpl_AddKeyFilter"); @@ -455,54 +354,8 @@ } else { - impl->filteringOn = XA_BOOLEAN_TRUE; - for (idx = 0; idx < impl->currentTags.itemcount; idx++) - { - if ((filterMask & XA_METADATA_FILTER_KEY) && pKey) - { - parsedkey = XAMetadataAdapt_ParseKhronosKey(pKey); - if (strcmp((char*) parsedkey, - (char*) impl->currentTags.mdeKeys[idx]->data) - == 0) - { - matchMask |= XA_METADATA_FILTER_KEY; - } - } - if (filterMask & XA_METADATA_FILTER_LANG && pValueLangCountry) - { - if (strcmp( - (char*) pValueLangCountry, - (char*) impl->currentTags.mdeKeys[idx]->langCountry) - == 0) - { - matchMask |= XA_METADATA_FILTER_LANG; - } - } - if (filterMask & XA_METADATA_FILTER_ENCODING) - { - if (keyEncoding - == impl->currentTags.mdeKeys[idx]->encoding) - { - matchMask |= XA_METADATA_FILTER_ENCODING; - } - if (valueEncoding - == impl->currentTags.mdeValues[idx]->encoding) - { - matchMask |= XA_METADATA_FILTER_ENCODING; - } - } - /* check if all filters apply */ - if (filterMask == matchMask) - { - if (impl->tagmatchesfilter[idx] == XA_BOOLEAN_FALSE) - { - impl->tagmatchesfilter[idx] = XA_BOOLEAN_TRUE; - impl->filteredcount++; - } - } - /*reset matchmask*/ - matchMask = 0; - } + DEBUG_API("<-XAMetadataExtractionItfImpl_AddKeyFilter Not Supported in GST"); + res = XA_RESULT_PARAMETER_INVALID; } } DEBUG_API_A1("<-XAMetadataExtractionItfImpl_AddKeyFilter (%d)", (int)res); @@ -518,8 +371,6 @@ XAMetadataExtractionItfImpl *impl = NULL; XAresult res = XA_RESULT_SUCCESS; - XAuint32 idx = 0; - DEBUG_API("->XAMetadataExtractionItfImpl_ClearKeyFilter"); impl = GetImpl(self); if (!impl) @@ -537,17 +388,8 @@ } else { - if (impl->tagmatchesfilter) - { - - for (idx = 0; idx < impl->currentTags.itemcount; idx++) - { - impl->tagmatchesfilter[idx] = XA_BOOLEAN_FALSE; - } - - } - impl->filteredcount = 0; - impl->filteringOn = XA_BOOLEAN_FALSE; + DEBUG_API("<-XAMetadataExtractionItfImpl_ClearKeyFilter Not Supported in GST"); + res = XA_RESULT_PARAMETER_INVALID; } } @@ -583,9 +425,6 @@ self->itf.ClearKeyFilter = XAMetadataExtractionItfImpl_ClearKeyFilter; /* init variables */ - self->filteredcount = 0; - self->filteringOn = XA_BOOLEAN_FALSE; - self->adaptCtx = adaptCtx; if (self->adaptCtx->fwtype != FWMgrFWMMF) @@ -608,18 +447,11 @@ void XAMetadataExtractionItfImpl_Free(XAMetadataExtractionItfImpl* self) { DEBUG_API("->XAMetadataExtractionItfImpl_Free"); - assert(self==self->self); if (self->adaptCtx->fwtype != FWMgrFWMMF) { XAAdaptationBase_RemoveEventHandler(self->adaptCtx, &XAMetadataExtractionItfImp_AdaptCb); - XAMetadataAdapt_FreeImplTagList(&(self->currentTags), XA_BOOLEAN_TRUE); - - if (self->tagmatchesfilter) - { - free(self->tagmatchesfilter); - } } free(self); @@ -641,73 +473,8 @@ DEBUG_API("<-XAMetadataExtractionItfImp_AdaptCb"); return; } - if (event && event->eventid == XA_ADAPT_MDE_TAGS_AVAILABLE) - { - /* get the tag list */ - XAMetadataExtractionItfAdapt_FillTagList( - (XAAdaptationGstCtx*) impl->adaptCtx, &(impl->currentTags)); - if (impl->tagmatchesfilter) - { - free(impl->tagmatchesfilter); - } - impl->tagmatchesfilter = calloc(impl->currentTags.itemcount, - sizeof(XAboolean)); - impl->filteredcount = 0; - } - else - { - DEBUG_INFO("unhandled"); - } + DEBUG_INFO("unhandled"); DEBUG_API("<-XAMetadataExtractionItfImp_AdaptCb"); } -/* For given index over filtered array, return index over whole array - */ -XAresult CheckAndUnfilterIndex(XAMetadataExtractionItfImpl *impl, - XAuint32 oldidx, XAuint32 *newidx) - { - DEBUG_API("->CheckAndUnfilterIndex"); - if (impl->filteringOn) - { - XAint16 i = -1; - if (oldidx >= impl->filteredcount) - { - DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); - DEBUG_API("<-CheckAndUnfilterIndex"); - return XA_RESULT_PARAMETER_INVALID; - } - *newidx = 0; - while (*newidx < impl->currentTags.itemcount) - { - if (impl->tagmatchesfilter[*newidx]) - i++; - if (i < oldidx) - (*newidx)++; - else - break; - } - if (*newidx == impl->currentTags.itemcount) - { - /* should not end up here */ - *newidx = 0; - DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); - DEBUG_API("<-CheckAndUnfilterIndex"); - return XA_RESULT_PARAMETER_INVALID; - } - } - else - { - if (oldidx >= impl->currentTags.itemcount) - { - DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); - DEBUG_API("<-CheckAndUnfilterIndex"); - return XA_RESULT_PARAMETER_INVALID; - } - *newidx = oldidx; - } - - DEBUG_API("<-CheckAndUnfilterIndex"); - return XA_RESULT_SUCCESS; - } -