khronosfws/openmax_al/src/common/xacommon.c
changeset 53 eabc8c503852
parent 25 6f7ceef7b1d1
equal deleted inserted replaced
48:a493a607b5bf 53:eabc8c503852
    97         if (isLocal)
    97         if (isLocal)
    98             {
    98             {
    99             FILE* file = fopen((char*) fname, "r");
    99             FILE* file = fopen((char*) fname, "r");
   100             if (!file)
   100             if (!file)
   101                 {
   101                 {
   102                 DEBUG_INFO_A1("%s not found from filesystem", fname);
   102                 DEBUG_INFO_A1_STR("%s not found from filesystem", (char *)fname);
   103                 ret = XA_RESULT_CONTENT_NOT_FOUND;
   103                 ret = XA_RESULT_CONTENT_NOT_FOUND;
   104                 }
   104                 }
   105             else
   105             else
   106                 {
   106                 {
   107                 fclose(file);
   107                 fclose(file);
   249     while (counter < pCounter)
   249     while (counter < pCounter)
   250         {
   250         {
   251         if (counter > 0)
   251         if (counter > 0)
   252             {
   252             {
   253             /*XADataSink and XADataSrc are equivalent, use XADataSink for both*/
   253             /*XADataSink and XADataSrc are equivalent, use XADataSink for both*/
   254 xaSnk            = va_arg(argptr, XADataSink*);
   254             xaSnk = va_arg(argptr, XADataSink*);
   255             }
   255             }
   256         if( !xaSnk )
   256         if( !xaSnk )
   257             { /*NULL sinks/sources are possible, not checked here*/
   257             { /*NULL sinks/sources are possible, not checked here*/
   258             counter++;
   258             counter++;
   259             continue;
   259             continue;
   267             return ret;
   267             return ret;
   268             }
   268             }
   269         switch ( *(XAuint32*)(xaSnk->pLocator) )
   269         switch ( *(XAuint32*)(xaSnk->pLocator) )
   270             {
   270             {
   271             case XA_DEFAULTDEVICEID_AUDIOOUTPUT:
   271             case XA_DEFAULTDEVICEID_AUDIOOUTPUT:
   272             DEBUG_INFO("XA_DEFAULTDEVICEID_AUDIOOUTPUT");
   272                 DEBUG_INFO("XA_DEFAULTDEVICEID_AUDIOOUTPUT");
   273             uri = (XADataLocator_URI*)xaSnk->pLocator;
   273                 uri = (XADataLocator_URI*)xaSnk->pLocator;
   274             break;
   274                 break;
   275             case XA_DATALOCATOR_URI:
   275             case XA_DATALOCATOR_URI:
   276             DEBUG_INFO("XA_DATALOCATOR_URI");
   276                 DEBUG_INFO("XA_DATALOCATOR_URI");
   277             uri = (XADataLocator_URI*)xaSnk->pLocator;
   277                 uri = (XADataLocator_URI*)xaSnk->pLocator;
   278             if( !uri->URI && !xaSnk->pFormat )
   278                 if( !uri->URI && !xaSnk->pFormat )
   279                 {
   279                     {
   280                 DEBUG_ERR("Invalid parameter set for uri ");
   280                     DEBUG_ERR("Invalid parameter set for uri ");
       
   281                     ret = XA_RESULT_PARAMETER_INVALID;
       
   282                     }
       
   283                 break;
       
   284             case XA_DATALOCATOR_NATIVEDISPLAY:
       
   285                 DEBUG_INFO("Sink locator type - XA_DATALOCATOR_NATIVEDISPLAY");
       
   286                 display = (XADataLocator_NativeDisplay*)(xaSnk->pLocator);
       
   287                 if( !display->hDisplay || !display->hWindow )
       
   288                     {
       
   289                     /*No action at this time*/
       
   290                     DEBUG_INFO("Warning - no display or window handle set");
       
   291                     }
       
   292                 break;
       
   293             case XA_DATALOCATOR_OUTPUTMIX:
       
   294                 DEBUG_INFO("Sink locator type - XA_DATALOCATOR_OUTPUTMIX");
       
   295                     {
       
   296                     omix = (XADataLocator_OutputMix*)(xaSnk->pLocator);
       
   297                     if ( !omix->outputMix )
       
   298                         {
       
   299                         DEBUG_ERR("Invalid parameter set for outputmix");
       
   300                         ret = XA_RESULT_PARAMETER_INVALID;
       
   301                         }
       
   302                     }
       
   303                 break;
       
   304             case XA_DATALOCATOR_ADDRESS:
       
   305                 DEBUG_INFO("XA_DATALOCATOR_ADDRESS");
       
   306                 address = (XADataLocator_Address*)(xaSnk->pLocator);
       
   307                 if( !address->pAddress && !xaSnk->pFormat )
       
   308                     {
       
   309                     DEBUG_ERR("Invalid parameter set for address");
       
   310                     ret = XA_RESULT_PARAMETER_INVALID;
       
   311                     }
       
   312                 break;
       
   313             case XA_DATALOCATOR_IODEVICE:
       
   314                 DEBUG_INFO("XA_DATALOCATOR_IODEVICE");
       
   315                 iodevice = (XADataLocator_IODevice*)(xaSnk->pLocator);
       
   316                 if( iodevice->device )
       
   317                     {
       
   318                     DEBUG_INFO("Media object as IODevice");
       
   319                     }
       
   320                 else
       
   321                     {
       
   322                     DEBUG_INFO("Iodevice id used");
       
   323                     }
       
   324                 break;
       
   325             default:
       
   326                 DEBUG_ERR("Incorrect data locator for sink.");
   281                 ret = XA_RESULT_PARAMETER_INVALID;
   327                 ret = XA_RESULT_PARAMETER_INVALID;
   282                 }
   328                 break;
   283             break;
       
   284             case XA_DATALOCATOR_NATIVEDISPLAY:
       
   285             DEBUG_INFO("Sink locator type - XA_DATALOCATOR_NATIVEDISPLAY");
       
   286             display = (XADataLocator_NativeDisplay*)(xaSnk->pLocator);
       
   287             if( !display->hDisplay || !display->hWindow )
       
   288                 {
       
   289                 /*No action at this time*/
       
   290                 DEBUG_INFO("Warning - no display or window handle set");
       
   291                 }
       
   292             break;
       
   293             case XA_DATALOCATOR_OUTPUTMIX:
       
   294             DEBUG_INFO("Sink locator type - XA_DATALOCATOR_OUTPUTMIX");
       
   295                 {
       
   296                 omix = (XADataLocator_OutputMix*)(xaSnk->pLocator);
       
   297                 if ( !omix->outputMix )
       
   298                     {
       
   299                     DEBUG_ERR("Invalid parameter set for outputmix");
       
   300                     ret = XA_RESULT_PARAMETER_INVALID;
       
   301                     }
       
   302                 }
       
   303             break;
       
   304             case XA_DATALOCATOR_ADDRESS:
       
   305             DEBUG_INFO("XA_DATALOCATOR_ADDRESS");
       
   306             address = (XADataLocator_Address*)(xaSnk->pLocator);
       
   307             if( !address->pAddress && !xaSnk->pFormat )
       
   308                 {
       
   309                 DEBUG_ERR("Invalid parameter set for address");
       
   310                 ret = XA_RESULT_PARAMETER_INVALID;
       
   311                 }
       
   312             break;
       
   313             case XA_DATALOCATOR_IODEVICE:
       
   314             DEBUG_INFO("XA_DATALOCATOR_IODEVICE");
       
   315             iodevice = (XADataLocator_IODevice*)(xaSnk->pLocator);
       
   316             if( iodevice->device )
       
   317                 {
       
   318                 DEBUG_INFO("Media object as IODevice");
       
   319                 }
       
   320             else
       
   321                 {
       
   322                 DEBUG_INFO("Iodevice id used");
       
   323                 }
       
   324             break;
       
   325             default:
       
   326             DEBUG_ERR("Incorrect data locator for sink.")
       
   327             ret = XA_RESULT_PARAMETER_INVALID;
       
   328             break;
       
   329             }
   329             }
   330         counter ++;
   330         counter ++;
   331         }
   331         }
   332     va_end(argptr);
   332     va_end(argptr);
   333     DEBUG_API("<-XACommon_ValidateDataLocator");
   333     DEBUG_API("<-XACommon_ValidateDataLocator");