--- a/mdfdevvideoextensions/nga_mdf_postprocessor/inc/surface_hints.h Mon Aug 23 21:48:44 2010 +0100
+++ b/mdfdevvideoextensions/nga_mdf_postprocessor/inc/surface_hints.h Wed Sep 08 17:15:23 2010 +0100
@@ -48,6 +48,12 @@
*/
const TInt KSurfaceProtection = 0x3;
+/** Hint about the surface’s characteristics or properties,
+ For example if a surface can be persisted by the effects engine.
+ @see TSurfaceCharacteristics for possible values.
+*/
+const TInt KSurfaceCharacteristics = 0x4;
+
/** Values used for the KSurfaceContent key */
enum TSurfaceContent
@@ -121,6 +127,17 @@
};
+/** Values used for the KSurfaceCharacteristics key. The values are bitmasks and can be combined.
+*/
+enum TSurfaceCharacteristics
+ {
+ /**
+ * Surface cannot be persisted once it has been closed by the creator
+ */
+ ENotPersistable = 1,
+ };
+
+
class TSurfaceUpdate
{
/** Constructor.
@@ -186,7 +203,7 @@
return ( iValue & 0x80000000 ) ? ETrue : EFalse;
}
-}; //namespace surfaceHints
+} //namespace surfaceHints
#endif //__SURFACE_HINTS_LOCAL_H__
--- a/mdfdevvideoextensions/nga_mdf_postprocessor/src/NGAPostProcHwDevice.cpp Mon Aug 23 21:48:44 2010 +0100
+++ b/mdfdevvideoextensions/nga_mdf_postprocessor/src/NGAPostProcHwDevice.cpp Wed Sep 08 17:15:23 2010 +0100
@@ -2332,7 +2332,6 @@
err = iSurfaceHandler->AddSurfaceHint(iSurfaceId,iHint);
if(err == KErrAlreadyExists)
{
- err = KErrNone;
err = iSurfaceHandler->SetSurfaceHint(iSurfaceId,iHint);
}
PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:AddHints. err = %d --"), this,err);
@@ -2342,10 +2341,21 @@
err = iSurfaceHandler->AddSurfaceHint(iSurfaceId,iHint);
if(err == KErrAlreadyExists)
{
- err = KErrNone;
err = iSurfaceHandler->SetSurfaceHint(iSurfaceId,iHint);
}
PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:AddHints. err = %d --"), this,err);
+ if(iUsingExternalSurface)
+ {
+ iHint.iKey.iUid = surfaceHints::KSurfaceCharacteristics;
+ iHint.iValue = surfaceHints::ENotPersistable;
+ iHint.iMutable = ETrue;
+ err = iSurfaceHandler->AddSurfaceHint(iSurfaceId,iHint);
+ if(err == KErrAlreadyExists)
+ {
+ err = iSurfaceHandler->SetSurfaceHint(iSurfaceId,iHint);
+ }
+ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:AddHints. err = %d --"), this,err);
+ }
return err;
}
--- a/mmtestenv/mmtesttools/Group/bld.inf Mon Aug 23 21:48:44 2010 +0100
+++ b/mmtestenv/mmtesttools/Group/bld.inf Wed Sep 08 17:15:23 2010 +0100
@@ -45,8 +45,6 @@
../Rom/miscUnitTests.iby /epoc32/rom/include/miscunittests.iby
../Rom/miscIntTests.iby /epoc32/rom/include/miscinttests.iby
-../Rom/omxilunittests.iby /epoc32/rom/include/omxilunittests.iby
-
../Rom/misc.iby /epoc32/rom/include/misc.iby
../Rom/miscOpt.iby /epoc32/rom/include/miscopt.iby
../Rom/miscOptTests.iby /epoc32/rom/include/miscopttests.iby
@@ -226,18 +224,6 @@
../Scripts/runmmfvideorendererunittests.bat c:/runmmfvideorendererunittests.bat
#endif // SYMBIAN_GRAPHICS_USE_GCE
../Scripts/runMMFVideoNoGCETests.bat c:/runmmfvideonogcetests.bat
-// OMX IL
-
-// only use if A3F is created
-#ifdef SYMBIAN_MULTIMEDIA_A3FDEVSOUND
-../Scripts/runmilifunittests.bat c:/runmilifunittests.bat
-../Scripts/runmmpacketvideotests.bat c:/runmmpacketvideotests.bat
-#endif //SYMBIAN_MULTIMEDIA_A3FDEVSOUND
-
-../Scripts/runomxilcomppcmrendererunittests.bat c:/runomxilcomppcmrendererunittests.bat
-../Scripts/runomxilcontentpipeunittests.bat c:/runomxilcontentpipeunittests.bat
-../Scripts/runomxilcoreconftests.bat c:/runomxilcoreconftests.bat
-../Scripts/runomxilcoreconftestswinscwudeb.bat c:/omxil/runomxilcoreconftestswinscwudeb.bat
../RTA/rta.ini /epoc32/winscw/c/rta/rta.ini
../RTA/rta.script /epoc32/winscw/c/rta/rta.script
--- a/mmtestenv/mmtesttools/Rom/omxilunittests.iby Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef OMXILUNITTESTS_IBY
-#define OMXILUNITTESTS_IBY
-
-#include <coreconf.iby>
-#include <tsu_omxil_components.iby>
-#include <tsu_omxil_dummycontentpipe.iby>
-#include <omxildummycontentpipe.iby>
-#include <omxildummycontentpipe2.iby>
-#include <omxildummyloader.iby>
-#include <omxildummycomponents.iby>
-#include <milifunittests.iby>
-
-data=EPOCROOT##epoc32\data\c\runomxilcomppcmrendererunittests.bat runomxilcomppcmrendererunittests.bat
-data=EPOCROOT##epoc32\data\c\runomxilcontentpipeunittests.bat runomxilcontentpipeunittests.bat
-data=EPOCROOT##epoc32\data\c\runomxilcoreconftests.bat runomxilcoreconftests.bat
-data=EPOCROOT##epoc32\data\c\runmilifunittests.bat runmilifunittests.bat
-
-#endif // OMXILUNITTESTS_IBY
--- a/mmtestenv/mmtesttools/Scripts/CopyDataToCF.bat Mon Aug 23 21:48:44 2010 +0100
+++ b/mmtestenv/mmtesttools/Scripts/CopyDataToCF.bat Wed Sep 08 17:15:23 2010 +0100
@@ -859,23 +859,6 @@
copy %EPOCROOT%epoc32\data\c\mm\mdf\truepause\testingOut3.raw %1\mm\mdf\truepause\testingOut3.raw
REM ################################# END HWDEV TRUEPAUSE DATA #########################################
-REM ################################# START OMXIL DATA ##################################
-mkdir %1\unittest\omxil\
-mkdir %1\unittest\omxil\testfiles\
-
-copy %EPOCROOT%epoc32\data\c\omxil\testfiles\*.* %1\unittest\omxil\testfiles\*.*
-
-mkdir %1\unittest\omxil\test\
-mkdir %1\unittest\omxil\aacdecoder\
-mkdir %1\unittest\omxil\common\
-mkdir %1\unittest\omxil\pcmrenderer\
-
-copy %EPOCROOT%epoc32\data\c\omxil\test\*.* %1\unittest\omxil\test\*.*
-copy %EPOCROOT%epoc32\data\c\omxil\aacdecoder\*.* %1\unittest\omxil\aacdecoder\*.*
-copy %EPOCROOT%epoc32\data\c\omxil\common\*.* %1\unittest\omxil\common\*.*
-copy %EPOCROOT%epoc32\data\c\omxil\pcmrenderer\*.* %1\unittest\omxil\pcmrenderer\*.*
-
-REM ################################ END OMXIL DATA ############################
REM ################################ DevSubtitle data ##########################
--- a/mmtestenv/mmtesttools/Scripts/DABS/CommandFiles/mmpacketvideotests_copy_data.txt Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-md e:\logs\
-md e:\logs\testresults\
-md e:\logs\testresults\omxil\
-md c:\tsi_a3f_devsound_aac\
-copy z:\tsi_a3f_devsound_aac_play.ini c:\tsi_a3f_devsound_aac\tsi_a3f_devsound_aac_play.ini
-copy e:\inttest\a3f\tsi_a3f_devsound_aac\*.* c:\tsi_a3f_devsound_aac\
-md c:\omxil\
-md c:\omxil\testfiles\
-copy e:\unittest\omxil\testfiles\*.* c:\omxil\testfiles\
--- a/mmtestenv/mmtesttools/Scripts/DABS/CommandFiles/mmpacketvideotests_del_data.txt Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-del c:\tsi_a3f_devsound_aac\*.*
-del c:\omxil\testfiles\*.*
-del c:\omxil\*.*
-del c:\*.*
--- a/mmtestenv/mmtesttools/Scripts/DABS/CommandFiles/omxilcomponentsunittests_copy_data.txt Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-md e:\logs\
-md e:\logs\testresults\
-md e:\logs\testresults\omxil\
-
-md c:\omxil\
-md c:\omxil\testfiles\
-
-copy E:\unittest\omxil\testfiles\*.* c:\omxil\testfiles\
--- a/mmtestenv/mmtesttools/Scripts/DABS/CommandFiles/omxilcomponentsunittests_del_data.txt Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-del c:\omxil\testfiles\*.*
-
-md e:\logs\
-md e:\logs\testresults\
-md e:\logs\testresults\omxil\
-
-copy c:\logs\testresults\omxil\*.htm e:\logs\testresults\omxil\
-del c:\logs\testresults\omxil\*.htm
-
-del c:\omxil\testfiles\*.*
--- a/mmtestenv/mmtesttools/Scripts/DABS/CommandFiles/omxilcoreconftests_copy_data.txt Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-md c:\omxil\
-md c:\omxil\test\
-md c:\omxil\aacdecoder\
-md c:\omxil\common\
-md c:\omxil\pcmrenderer\
-
-
-copy E:\unittest\omxil\test\*.* c:\omxil\test\
-copy E:\unittest\omxil\aacdecoder\*.* c:\omxil\aacdecoder\
-copy E:\unittest\omxil\common\*.* c:\omxil\common\
-copy E:\unittest\omxil\pcmrenderer\*.* c:\omxil\pcmrenderer\
--- a/mmtestenv/mmtesttools/Scripts/DABS/CommandFiles/omxilcoreconftests_del_data.txt Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-del E:\unittest\omxil\test\*_coreconftestoutput.txt
-del E:\unittest\omxil\aacdecoder\*_coreconfvendoroutput.txt
-del E:\unittest\omxil\common\*_coreconfvendoroutput.txt
-del E:\unittest\omxil\pcmrenderer\*_coreconfvendoroutput.txt
-
-
-copy c:\omxil\test\*_coreconftestoutput.txt E:\unittest\omxil\test\
-copy c:\omxil\aacdecoder\*_coreconfvendoroutput.txt E:\unittest\omxil\aacdecoder\
-copy c:\omxil\common\*_coreconfvendoroutput.txt E:\unittest\omxil\common\
-copy c:\omxil\pcmrenderer\*_coreconfvendoroutput.txt E:\unittest\omxil\pcmrenderer\
-
-
-del c:\omxil\*.*
--- a/mmtestenv/mmtesttools/Scripts/DABS/test_data.txt Mon Aug 23 21:48:44 2010 +0100
+++ b/mmtestenv/mmtesttools/Scripts/DABS/test_data.txt Wed Sep 08 17:15:23 2010 +0100
@@ -60,10 +60,8 @@
../runmmfdevsoundinttests.bat
../runa3fdevsoundinttests.bat
../runa3fdevsoundlonginttests.bat
-../runmmpacketvideotests.bat
../runmmfdevvideointtests.bat
../runMMFSecureDrmUnitTests.bat
../runMMFSecureDrmIntTests.bat
../runmmfaclntsecuredrmunittests.bat
-../runomxilcoreconftests.bat
../run3gplibrarytests.bat
\ No newline at end of file
--- a/mmtestenv/mmtesttools/Scripts/runAllAudioTests.bat Mon Aug 23 21:48:44 2010 +0100
+++ b/mmtestenv/mmtesttools/Scripts/runAllAudioTests.bat Wed Sep 08 17:15:23 2010 +0100
@@ -18,5 +18,4 @@
runMDFUnitTests.bat
RunMMFAudioIntTests.bat
RunMMFAudioUnitTests.bat
-runmmpacketvideotests.bat
runMMFOptUnitTests.bat
--- a/mmtestenv/mmtesttools/Scripts/runMMFAudioUnitTests.bat Mon Aug 23 21:48:44 2010 +0100
+++ b/mmtestenv/mmtesttools/Scripts/runMMFAudioUnitTests.bat Wed Sep 08 17:15:23 2010 +0100
@@ -40,10 +40,6 @@
runMMFAclntDRMUnitTests.bat
runMMFSrsSnkUnitTests.bat
runMMFOggctrlUnitTests.bat
-runmilifunittests.bat
-runomxilcomppcmrendererunittests.bat
-runomxilcontentpipeunittests.bat
-runomxilcoreconftests.bat
runMMFSecureDrmUnitTests.bat
runmmfaclntsecuredrmunittests.bat
REM run runmmfvideorendererunittests.bat if SYMBIAN_GRAPHICS_USE_GCE is enabled
--- a/mmtestenv/mmtesttools/Scripts/runMMFUnitTests.bat Mon Aug 23 21:48:44 2010 +0100
+++ b/mmtestenv/mmtesttools/Scripts/runMMFUnitTests.bat Wed Sep 08 17:15:23 2010 +0100
@@ -45,9 +45,6 @@
runMMFOggctrlUnitTests.bat
runMMFAvictrlUnitTests.bat
runmmfrufunittests.bat
-runomxilcomppcmrendererunittests.bat
-runomxilcontentpipeunittests.bat
-runomxilcoreconftests.bat
runMMFSecureDrmUnitTests.bat
runmmfaclntsecuredrmunittests.bat
REM run runmmfvideorendererunittests.bat if SYMBIAN_GRAPHICS_USE_GCE is enabled
--- a/mmtestenv/mmtesttools/Scripts/runmilifunittests.bat Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-rem Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
-rem All rights reserved.
-rem This component and the accompanying materials are made available
-rem under the terms of "Eclipse Public License v1.0"
-rem which accompanies this distribution, and is available
-rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
-rem
-rem Initial Contributors:
-rem Nokia Corporation - initial contribution.
-rem
-rem Contributors:
-rem
-rem Description:
-rem
-
-del E:\Logs\TestResults\omxil\tsu_milif_omxilif.*
-md E:\Logs
-md E:\Logs\TestResults
-md E:\Logs\TestResults\omxil
-
-testframework z:\omxil\tsu_milif_omxilif.script
-
-move C:\Logs\TestResults\omxil\*.htm E:\Logs\TestResults\omxil
-del C:\*.*
--- a/mmtestenv/mmtesttools/Scripts/runmmpacketvideotests.bat Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-rem All rights reserved.
-rem This component and the accompanying materials are made available
-rem under the terms of "Eclipse Public License v1.0"
-rem which accompanies this distribution, and is available
-rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
-rem
-rem Initial Contributors:
-rem Nokia Corporation - initial contribution.
-rem
-rem Contributors:
-rem
-rem Description:
-rem
-
-del e:\logs\testresults\tsi_a3f_devsound_aac*.*
-del e:\logs\testresults\omxil\tsu_milif_omxilif*.*
-del e:\logs\testresults\omxil\tsu_omxil_aacdecoder_01_debug*.*
-
-md e:\logs\
-md e:\logs\testresults\
-md e:\logs\testresults\omxil\
-
-md c:\tsi_a3f_devsound_aac\
-
-rem ******************A3F Devsound PacketVideo Integration Tests ****************
-
-
-copy z:\tsi_a3f_devsound_aac_play.ini c:\tsi_a3f_devsound_aac\tsi_a3f_devsound_aac_play.ini
-
-rem Copy test data
-copy e:\inttest\a3f\tsi_a3f_devsound_aac\*.* c:\tsi_a3f_devsound_aac\
-
-testframework tsi_a3f_devsound_aac_play_debug.script
-move c:\logs\testresults\*.htm e:\logs\testresults\
-
-testframework tsi_a3f_devsound_aac_play_alloc.script
-move c:\logs\testresults\*.htm e:\logs\testresults\
-
-del c:\tsi_a3f_devsound_aac\*.*
-
-
-rem *****************************************************************************
-
-rem *********** Multimedia Integration Layer Interface PacketVideo Unit Tests ***********
-
-
-testframework z:\omxil\tsu_milif_omxilif_aac.script
-move c:\logs\testresults\omxil\*.htm e:\logs\testresults\omxil\
-
-rem *****************************************************************************
-
-rem ************************ OMX IL AAC Decoder Unit Tests ************************
-
-md c:\omxil\
-md c:\omxil\testfiles\
-
-copy e:\unittest\omxil\testfiles\*.* c:\omxil\testfiles\
-
-testframework \omxil\tsu_omxil_aacdecoder_01_debug.script
-move c:\logs\testresults\omxil\tsu_omxil_aacdecoder_01_debug.htm e:\logs\testresults\omxil\
-
-del c:\omxil\testfiles\*.*
-del c:\omxil\*.*
-
-rem *****************************************************************************
-
-del c:\*.*
\ No newline at end of file
--- a/mmtestenv/mmtesttools/Scripts/runomxilcomppcmrendererunittests.bat Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-rem Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
-rem All rights reserved.
-rem This component and the accompanying materials are made available
-rem under the terms of "Eclipse Public License v1.0"
-rem which accompanies this distribution, and is available
-rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
-rem
-rem Initial Contributors:
-rem Nokia Corporation - initial contribution.
-rem
-rem Contributors:
-rem
-rem Description:
-rem
-
-del E:\Logs\TestResults\omxil\tsu_omxil_pcmrenderer_01.htm
-
-md E:\Logs
-md E:\Logs\TestResults
-md E:\Logs\TestResults\omxil
-
-md C:\omxil\
-md C:\omxil\testfiles\
-
-copy e:\unittest\omxil\testfiles\*.* C:\omxil\testfiles\
-
-testframework \omxil\tsu_omxil_pcmrenderer_01.script
-move C:\Logs\TestResults\omxil\tsu_omxil_pcmrenderer_01.htm E:\Logs\TestResults\omxil\
-
-del C:\omxil\testfiles\*.*
--- a/mmtestenv/mmtesttools/Scripts/runomxilcontentpipeunittests.bat Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-rem Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
-rem All rights reserved.
-rem This component and the accompanying materials are made available
-rem under the terms of "Eclipse Public License v1.0"
-rem which accompanies this distribution, and is available
-rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
-rem
-rem Initial Contributors:
-rem Nokia Corporation - initial contribution.
-rem
-rem Contributors:
-rem
-rem Description:
-rem
-
-del E:\Logs\TestResults\omxil\tsu_omxil_dummycontentpipe*.*
-md E:\Logs
-md E:\Logs\TestResults
-md E:\Logs\TestResults\omxil
-
-testframework z:\omxil\tsu_omxil_dummycontentpipe.script
-
-move C:\Logs\TestResults\omxil\*.htm E:\Logs\TestResults\omxil
-del C:\*.*
--- a/mmtestenv/mmtesttools/Scripts/runomxilcoreconftests.bat Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,179 +0,0 @@
-rem Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
-rem All rights reserved.
-rem This component and the accompanying materials are made available
-rem under the terms of "Eclipse Public License v1.0"
-rem which accompanies this distribution, and is available
-rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
-rem
-rem Initial Contributors:
-rem Nokia Corporation - initial contribution.
-rem
-rem Contributors:
-rem
-rem Description:
-rem Core-Loader Conformance Tests for test and vendor components
-rem
-rem
-
-
-del E:\unittest\omxil\test\*_coreconftestoutput.txt
-del E:\unittest\omxil\aacdecoder\*_coreconfvendoroutput.txt
-del E:\unittest\omxil\common\*_coreconfvendoroutput.txt
-del E:\unittest\omxil\pcmrenderer\*_coreconfvendoroutput.txt
-
-
-REM ...where core-loader conformance input files will be exported/copied
-md c:\omxil\
-md c:\omxil\test\
-md c:\omxil\aacdecoder\
-md c:\omxil\common\
-md c:\omxil\pcmrenderer\
-
-
-REM copy core-loader conformance input files to H4
-copy E:\unittest\omxil\test\*.* c:\omxil\test\
-copy E:\unittest\omxil\aacdecoder\*.* c:\omxil\aacdecoder\
-copy E:\unittest\omxil\common\*.* c:\omxil\common\
-copy E:\unittest\omxil\pcmrenderer\*.* c:\omxil\pcmrenderer\
-
-
-REM run core conformance tests
-coreconf.exe c:\omxil\test\coreinitdeinit_coreconftestinput.txt
-move c:\omxil\test\coreinitdeinit_coreconftestoutput.txt E:\unittest\omxil\test\coreinitdeinit_coreconftestoutput.txt
-
-coreconf.exe c:\omxil\test\getcontentpipe_coreconftestinput.txt
-move c:\omxil\test\getcontentpipe_coreconftestoutput.txt E:\unittest\omxil\test\getcontentpipe_coreconftestoutput.txt
-
-coreconf.exe c:\omxil\test\setuptunnel_coreconftestinput.txt
-move c:\omxil\test\setuptunnel_coreconftestoutput.txt E:\unittest\omxil\test\setuptunnel_coreconftestoutput.txt
-
-REM run core-loader conformance tests
-coreconf.exe c:\omxil\test\compload_coreconftestinput.txt
-move c:\omxil\test\compload_coreconftestoutput.txt E:\unittest\omxil\test\compload_coreconftestoutput.txt
-
-coreconf.exe c:\omxil\test\compnameenum_coreconftestinput.txt
-move c:\omxil\test\compnameenum_coreconftestoutput.txt E:\unittest\omxil\test\compnameenum_coreconftestoutput.txt
-
-coreconf.exe c:\omxil\test\compsofrole_coreconftestinput.txt
-move c:\omxil\test\compsofrole_coreconftestoutput.txt E:\unittest\omxil\test\compsofrole_coreconftestoutput.txt
-
-coreconf.exe c:\omxil\test\rolesofcomp_coreconftestinput.txt
-move c:\omxil\test\rolesofcomp_coreconftestoutput.txt E:\unittest\omxil\test\rolesofcomp_coreconftestoutput.txt
-
-REM run all conformance tests
-coreconf.exe c:\omxil\test\allconftests_coreconftestinput.txt
-move c:\omxil\test\allconftests_coreconftestoutput.txt E:\unittest\omxil\test\allconftests_coreconftestoutput.txt
-
-coreconf.exe c:\omxil\test\allconftests2_coreconftestinput.txt
-move c:\omxil\test\allconftests2_coreconftestoutput.txt E:\unittest\omxil\test\allconftests2_coreconftestoutput.txt
-
-coreconf.exe c:\omxil\test\allconftests3_coreconftestinput.txt
-move c:\omxil\test\allconftests3_coreconftestoutput.txt E:\unittest\omxil\test\allconftests3_coreconftestoutput.txt
-
-
-REM run core conformance tests with vendor components
-coreconf.exe c:\omxil\aacdecoder\coreinitdeinit_coreconfvendorinput.txt
-move c:\omxil\aacdecoder\coreinitdeinit_coreconfvendoroutput.txt E:\unittest\omxil\aacdecoder\coreinitdeinit_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\aacdecoder\getcontentpipe_coreconfvendorinput.txt
-move c:\omxil\aacdecoder\getcontentpipe_coreconfvendoroutput.txt E:\unittest\omxil\aacdecoder\getcontentpipe_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\aacdecoder\setuptunnel_coreconfvendorinput.txt
-move c:\omxil\aacdecoder\setuptunnel_coreconfvendoroutput.txt E:\unittest\omxil\aacdecoder\setuptunnel_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\aacdecoder\compload_coreconfvendorinput.txt
-move c:\omxil\aacdecoder\compload_coreconfvendoroutput.txt E:\unittest\omxil\aacdecoder\compload_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\aacdecoder\compnameenum_coreconfvendorinput.txt
-move c:\omxil\aacdecoder\compnameenum_coreconfvendoroutput.txt E:\unittest\omxil\aacdecoder\compnameenum_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\aacdecoder\compsofrole_coreconfvendorinput.txt
-move c:\omxil\aacdecoder\compsofrole_coreconfvendoroutput.txt E:\unittest\omxil\aacdecoder\compsofrole_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\aacdecoder\rolesofcomp_coreconfvendorinput.txt
-move c:\omxil\aacdecoder\rolesofcomp_coreconfvendoroutput.txt E:\unittest\omxil\aacdecoder\rolesofcomp_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\aacdecoder\allconftests_coreconfvendorinput.txt
-move c:\omxil\aacdecoder\allconftests_coreconfvendoroutput.txt E:\unittest\omxil\aacdecoder\allconftests_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\aacdecoder\allconftests2_coreconfvendorinput.txt
-move c:\omxil\aacdecoder\allconftests2_coreconfvendoroutput.txt E:\unittest\omxil\aacdecoder\allconftests2_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\aacdecoder\allconftests3_coreconfvendorinput.txt
-move c:\omxil\aacdecoder\allconftests3_coreconfvendoroutput.txt E:\unittest\omxil\aacdecoder\allconftests3_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\common\coreinitdeinit_coreconfvendorinput.txt
-move c:\omxil\common\coreinitdeinit_coreconfvendoroutput.txt E:\unittest\omxil\common\coreinitdeinit_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\common\getcontentpipe_coreconfvendorinput.txt
-move c:\omxil\common\getcontentpipe_coreconfvendoroutput.txt E:\unittest\omxil\common\getcontentpipe_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\common\setuptunnel_coreconfvendorinput.txt
-move c:\omxil\common\setuptunnel_coreconfvendoroutput.txt E:\unittest\omxil\common\setuptunnel_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\common\compload_coreconfvendorinput.txt
-move c:\omxil\common\compload_coreconfvendoroutput.txt E:\unittest\omxil\common\compload_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\common\compnameenum_coreconfvendorinput.txt
-move c:\omxil\common\compnameenum_coreconfvendoroutput.txt E:\unittest\omxil\common\compnameenum_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\common\compsofrole_coreconfvendorinput.txt
-move c:\omxil\common\compsofrole_coreconfvendoroutput.txt E:\unittest\omxil\common\compsofrole_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\common\rolesofcomp_coreconfvendorinput.txt
-move c:\omxil\common\rolesofcomp_coreconfvendoroutput.txt E:\unittest\omxil\common\rolesofcomp_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\common\allconftests_coreconfvendorinput.txt
-move c:\omxil\common\allconftests_coreconfvendoroutput.txt E:\unittest\omxil\common\allconftests_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\common\allconftests2_coreconfvendorinput.txt
-move c:\omxil\common\allconftests2_coreconfvendoroutput.txt E:\unittest\omxil\common\allconftests2_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\common\allconftests3_coreconfvendorinput.txt
-move c:\omxil\common\allconftests3_coreconfvendoroutput.txt E:\unittest\omxil\common\allconftests3_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\common\allconftests4_coreconfvendorinput.txt
-move c:\omxil\common\allconftests4_coreconfvendoroutput.txt E:\unittest\omxil\common\allconftests4_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\common\allconftests5_coreconfvendorinput.txt
-move c:\omxil\common\allconftests5_coreconfvendoroutput.txt E:\unittest\omxil\common\allconftests5_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\common\allconftests6_coreconfvendorinput.txt
-move c:\omxil\common\allconftests6_coreconfvendoroutput.txt E:\unittest\omxil\common\allconftests6_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\pcmrenderer\coreinitdeinit_coreconfvendorinput.txt
-move c:\omxil\pcmrenderer\coreinitdeinit_coreconfvendoroutput.txt E:\unittest\omxil\pcmrenderer\coreinitdeinit_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\pcmrenderer\getcontentpipe_coreconfvendorinput.txt
-move c:\omxil\pcmrenderer\getcontentpipe_coreconfvendoroutput.txt E:\unittest\omxil\pcmrenderer\getcontentpipe_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\pcmrenderer\setuptunnel_coreconfvendorinput.txt
-move c:\omxil\pcmrenderer\setuptunnel_coreconfvendoroutput.txt E:\unittest\omxil\pcmrenderer\setuptunnel_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\pcmrenderer\compload_coreconfvendorinput.txt
-move c:\omxil\pcmrenderer\compload_coreconfvendoroutput.txt E:\unittest\omxil\pcmrenderer\compload_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\pcmrenderer\compnameenum_coreconfvendorinput.txt
-move c:\omxil\pcmrenderer\compnameenum_coreconfvendoroutput.txt E:\unittest\omxil\pcmrenderer\compnameenum_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\pcmrenderer\compsofrole_coreconfvendorinput.txt
-move c:\omxil\pcmrenderer\compsofrole_coreconfvendoroutput.txt E:\unittest\omxil\pcmrenderer\compsofrole_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\pcmrenderer\rolesofcomp_coreconfvendorinput.txt
-move c:\omxil\pcmrenderer\rolesofcomp_coreconfvendoroutput.txt E:\unittest\omxil\pcmrenderer\rolesofcomp_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\pcmrenderer\allconftests_coreconfvendorinput.txt
-move c:\omxil\pcmrenderer\allconftests_coreconfvendoroutput.txt E:\unittest\omxil\pcmrenderer\allconftests_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\pcmrenderer\allconftests2_coreconfvendorinput.txt
-move c:\omxil\pcmrenderer\allconftests2_coreconfvendoroutput.txt E:\unittest\omxil\pcmrenderer\allconftests2_coreconfvendoroutput.txt
-
-coreconf.exe c:\omxil\pcmrenderer\allconftests3_coreconfvendorinput.txt
-move c:\omxil\pcmrenderer\allconftests3_coreconfvendoroutput.txt E:\unittest\omxil\pcmrenderer\allconftests3_coreconfvendoroutput.txt
-
-
-REM delete core-loader conformance input files from H4
-del c:\omxil\test\*.*
-del c:\omxil\aacdecoder\*.*
-del c:\omxil\common\*.*
-del c:\omxil\pcmrenderer\*.*
--- a/mmtestenv/mmtesttools/Scripts/runomxilcoreconftestswinscwudeb.bat Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-rem Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
-rem All rights reserved.
-rem This component and the accompanying materials are made available
-rem under the terms of "Eclipse Public License v1.0"
-rem which accompanies this distribution, and is available
-rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
-rem
-rem Initial Contributors:
-rem Nokia Corporation - initial contribution.
-rem
-rem Contributors:
-rem
-rem Description:
-rem this bat file is used to run all core conformance tests on emulator and in UDEB mode only
-rem because for vendor components, the binaries are not available in UREL mode and tests will fail
-rem this bat file is exported to \epoc32\winscw\c\omxil and can be run from this location
-rem or can also be run from \TestTools\Scripts
-rem this bat file will not be in the ROM; for testing on hw, use runomxilcoreconftests.bat
-rem
-rem
-
-cd \epoc32\release\winscw\udeb
-
-coreconf.exe \omxil\test\allconftests_coreconftestinput.txt
-coreconf.exe \omxil\test\allconftests2_coreconftestinput.txt
-coreconf.exe \omxil\test\allconftests3_coreconftestinput.txt
-coreconf.exe \omxil\test\compload_coreconftestinput.txt
-coreconf.exe \omxil\test\compnameenum_coreconftestinput.txt
-coreconf.exe \omxil\test\compsofrole_coreconftestinput.txt
-coreconf.exe \omxil\test\coreinitdeinit_coreconftestinput.txt
-coreconf.exe \omxil\test\getcontentpipe_coreconftestinput.txt
-coreconf.exe \omxil\test\rolesofcomp_coreconftestinput.txt
-coreconf.exe \omxil\test\setuptunnel_coreconftestinput.txt
-
-coreconf.exe \omxil\aacdecoder\allconftests_coreconfvendorinput.txt
-coreconf.exe \omxil\aacdecoder\allconftests2_coreconfvendorinput.txt
-coreconf.exe \omxil\aacdecoder\allconftests3_coreconfvendorinput.txt
-coreconf.exe \omxil\aacdecoder\compload_coreconfvendorinput.txt
-coreconf.exe \omxil\aacdecoder\compnameenum_coreconfvendorinput.txt
-coreconf.exe \omxil\aacdecoder\compsofrole_coreconfvendorinput.txt
-coreconf.exe \omxil\aacdecoder\coreinitdeinit_coreconfvendorinput.txt
-coreconf.exe \omxil\aacdecoder\getcontentpipe_coreconfvendorinput.txt
-coreconf.exe \omxil\aacdecoder\rolesofcomp_coreconfvendorinput.txt
-coreconf.exe \omxil\aacdecoder\setuptunnel_coreconfvendorinput.txt
-
-coreconf.exe \omxil\common\allconftests_coreconfvendorinput.txt
-coreconf.exe \omxil\common\allconftests2_coreconfvendorinput.txt
-coreconf.exe \omxil\common\allconftests3_coreconfvendorinput.txt
-coreconf.exe \omxil\common\allconftests4_coreconfvendorinput.txt
-coreconf.exe \omxil\common\allconftests5_coreconfvendorinput.txt
-coreconf.exe \omxil\common\allconftests6_coreconfvendorinput.txt
-coreconf.exe \omxil\common\compload_coreconfvendorinput.txt
-coreconf.exe \omxil\common\compnameenum_coreconfvendorinput.txt
-coreconf.exe \omxil\common\compsofrole_coreconfvendorinput.txt
-coreconf.exe \omxil\common\coreinitdeinit_coreconfvendorinput.txt
-coreconf.exe \omxil\common\getcontentpipe_coreconfvendorinput.txt
-coreconf.exe \omxil\common\rolesofcomp_coreconfvendorinput.txt
-coreconf.exe \omxil\common\setuptunnel_coreconfvendorinput.txt
-
-coreconf.exe \omxil\pcmrenderer\allconftests_coreconfvendorinput.txt
-coreconf.exe \omxil\pcmrenderer\allconftests2_coreconfvendorinput.txt
-coreconf.exe \omxil\pcmrenderer\allconftests3_coreconfvendorinput.txt
-coreconf.exe \omxil\pcmrenderer\compload_coreconfvendorinput.txt
-coreconf.exe \omxil\pcmrenderer\compnameenum_coreconfvendorinput.txt
-coreconf.exe \omxil\pcmrenderer\compsofrole_coreconfvendorinput.txt
-coreconf.exe \omxil\pcmrenderer\coreinitdeinit_coreconfvendorinput.txt
-coreconf.exe \omxil\pcmrenderer\getcontentpipe_coreconfvendorinput.txt
-coreconf.exe \omxil\pcmrenderer\rolesofcomp_coreconfvendorinput.txt
-coreconf.exe \omxil\pcmrenderer\setuptunnel_coreconfvendorinput.txt
--- a/omxil/mmilapi/group/bld.inf Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +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:
-//
-
-// Include refomxil and unit test subcomponent bld.inf's
-#include "../refomxil/group/bld.inf"
-#include "../unittest/group/bld.inf"
-
-// End of file
\ No newline at end of file
--- a/omxil/mmilapi/group/multimedia_il_api.mrp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-# multimedia_il_api.mrp
-#
-# Copyright (c) 2008-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:
-#
-
-component multimedia_il_api
-
-source \sf\os\mm\omxil\mmilapi\
-
-binary \sf\os\mm\omxil\mmilapi\group all
-
-exports \sf\os\mm\omxil\mmilapi\group
-
-notes_source \component_defs\release.src
-
-ipr T
--- a/omxil/mmilapi/ilif/inc/ilaudioconfigstructs.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef ILAUDIOCONFIGSTRUCTS_H
-#define ILAUDIOCONFIGSTRUCTS_H
-
-#include <openmax/il/khronos/v1_x/OMX_Audio.h>
-
-/**
-@file
-@internalTechnology
-@prototype
-*/
-
-/**
-This is the structure to be used by implementations of the MMMFDevSoundCustomInterfaceSpecificConfig::SetFormatSpecificConfigL()
-method to pass the AudioSpecificConfig configuration data blindly to the codec.
-*/
-class TAudioSpecificConfigType
-{
-public:
- /** The pointer to the AudioSpecificConfig chunk of data.
- */
- TUint8* iAudioSpecificConfig;
-
- /** The length of the data encapsulated in this structure..
- */
- TUint32 iAudioSpecificConfigLength;
-
-};
-
-
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-/* The rest of this file defines some structures that are not publishedPartner yet.
-/* They have been defined for internal used only as a proof of concept for testing
-/* the varios possible MILIF implementations.
-/* These definition could be upgraded to publishedPartner when the need for Symbian
-/* support of these particular params arises.
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/**
-A typedef to symbianize the OpenMAX IL PORTFORMATTYPE parameter structure.
-*/
-typedef OMX_AUDIO_PARAM_PORTFORMATTYPE TAudioPortFormatType;
-
-
-/**
-A typedef to symbianize the OpenMAX IL VORBISTYPE parameter structure.
-
-@internalTechnology
-@prototype
-*/
-typedef OMX_AUDIO_PARAM_VORBISTYPE TPortVorbisType;
-
-/**
-A typedef to symbianize the OpenMAX IL PCMMODETYPE parameter structure.
-
-@internalTechnology
-@prototype
-*/
-typedef OMX_AUDIO_PARAM_PCMMODETYPE TPortPCMModeType;
-
-/**
-A typedef to symbianize the OpenMAX IL AACPROFILETYPE parameter structure.
-
-@internalTechnology
-@prototype
-*/
-typedef OMX_AUDIO_PARAM_AACPROFILETYPE TPortAACProfileType;
-
-/**
-A typedef to symbianize the OpenMAX IL VOLUMETYPE parameter structure.
-
-@internalTechnology
-@prototype
-*/
-typedef OMX_AUDIO_CONFIG_VOLUMETYPE TPortVolumeType;
-
-/**
-A typedef to symbianize the OpenMAX IL MUTETYPE parameter structure.
-
-@internalTechnology
-@prototype
-*/
-typedef OMX_AUDIO_CONFIG_MUTETYPE TPortMuteType;
-
-
-/**
-This is the structure to be used by implementations of the MMMFDevSoundCustomInterfaceSpecificConfig::SetFormatSpecificConfigL()
-method to extract configuration data from the AudioSpecificConfig.
-
-@internalTechnology
-@prototype
-*/
-class TAacConfig
- {
-public:
- inline TAacConfig();
-
- inline TAacConfig(TUint8 aAudioType, TUint8 aSamplingRateIndex, TUint32 aNumChannels, TInt aStereoMode);
-
-public:
- /** The audio object type
- */
- TUint8 iAudioType;
-
- /** The rate index of the audio data.
- */
- TUint8 iSamplingRateIndex;
-
- /** Number of channels of the underlying AAC coded stream
- */
- TUint32 iNumChannels;
-
- /** The type of stereo audio data.
- */
- TInt iStereoMode;
- };
-
-inline
-TAacConfig::TAacConfig()
- :
- iAudioType(0),
- iSamplingRateIndex(0),
- iNumChannels(0),
- iStereoMode(0)
- {
- }
-
-inline
-TAacConfig::TAacConfig(
- TUint8 aAudioType,
- TUint8 aSamplingRateIndex,
- TUint32 aNumChannels,
- TInt aStereoMode
- )
- :
- iAudioType(aAudioType),
- iSamplingRateIndex(aSamplingRateIndex),
- iNumChannels(aNumChannels),
- iStereoMode(aStereoMode)
- {
- }
-
-
-
-#endif // ILAUDIOCONFIGSTRUCTS_H
--- a/omxil/mmilapi/ilif/inc/ilconfigstructs.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @internalTechnology
- @prototype
-*/
-
-#ifndef ILCONFIGSTRUCTS_H
-#define ILCONFIGSTRUCTS_H
-
-#include <openmax/il/khronos/v1_x/OMX_Component.h>
-
-
-/**
- A typedef to symbianize the OpenMAX IL PORTDEFINITIONTYPE parameter structure.
- */
-typedef OMX_PARAM_PORTDEFINITIONTYPE TPortDefinitionType;
-
-
-#endif // ILCONFIGSTRUCTS_H
--- a/omxil/mmilapi/ilif/inc/ilifbase.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,284 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @internalTechnology
- @prototype
-*/
-
-#ifndef ILIFBASE_H
-#define ILIFBASE_H
-
-#include <e32base.h>
-
-
-/**
- Enumeration used to indicate IL Component internal state.
-*/
-enum TILComponentState
- {
- /**
- Component invalid state
- */
- EComponentInvalid = 0,
- /**
- Component loaded state
- */
- EComponentLoaded,
- /**
- Component idle state
- */
- EComponentIdle,
- /**
- Component executing state
- */
- EComponentExecuting,
- /**
- Component paused state
- */
- EComponentPaused,
- /**
- Component waiting for resources state
- */
- EComponentWaitingForResources,
- /**
- Component loading state
- */
- EComponentLoading,
- /**
- Component initializing state
- */
- EComponentInitializing,
-
- EComponentMax = 0X7FFFFFFF
- };
-
-
-/**
-Enumeration used to indicate if a port is an input or an output port
-*/
-enum TPortDirection
-{
- /**
- Port is an input port
- */
- EDirInput,
- /**
- Port is an output port
- */
- EDirOutput
-};
-
-
-/**
- Enumeration used to define the various types of IL Events
- This enumeration matches the possible component events as defined in the
- OpenMAX v1.1 specification
- */
-enum TILEventTypes
- {
- /**
- Component has completed the execution of a command.
- */
- EEventCmdComplete = 0,
- /**
- Component has detected an error condition.
- */
- EEventError,
- /**
- A buffer mark has reached the target component, and the IL client has
- received this event with the private data pointer of the mark.
- */
- EEventMark,
- /**
- Component has changed port settings. For example, the component has
- changed port settings resulting from bit stream parsing.
- */
- EEventPortSettingsChanged,
- /**
- The event that a component sends when it detects the end of a stream.
- */
- EEventBufferFlag,
- /**
- The component has been granted resources and is transitioning from the
- OMX_StateWaitForResources state to the OMX_StateIdle state.
- */
- EEventResourcesAcquired,
- /**
- The component has been resumed (i.e. no longer suspended) due to
- reacquisition of resources.
- */
- EEventDynamicResourcesAvailable,
-
- EEventMax = 0X7FFFFFFF
- };
-
-
-/**
-Event structure representing the events and data sent from the IL component to the IL client.
-*/
-class TILEvent
- {
-public:
- inline TILEvent();
-
- inline TILEvent(TILEventTypes aEvent, TUint32 aData1, TUint32 aData2, TAny* aExtraData);
-
-public:
- /**
- Event the component wants to notify the application about.
- */
- TILEventTypes iEvent;
- /**
- The first integer event-specific parameter.
- */
- TUint32 iData1;
- /**
- The second integer event-specific parameter.
- */
- TUint32 iData2;
- /**
- A pointer to additional event-specific data the component wants to send to the application.
- The component owns the memory.
- */
- TAny* iExtraData;
- };
-
-/**
- Enumeration used to define commands sent to the IL component
- This enumeration defines commands as defined in the OpenMAX v1.1 specification
- that are not alredy covered by the Symbian IL API
- */
-enum TILCommandTypes
- {
- /**
- Change the component state command.
- */
- ECommandStateSet,
- /**
- Flush the data queue(s) of a component.
- */
- ECommandFlush,
- /**
- Disable a port on a component.
- */
- ECommandPortDisable,
- /**
- Enable a port on a component.
- */
- ECommandPortEnable,
- /**
- Mark a component/buffer for observation.
- */
- ECommandMarkBuffer,
- /**
- Invalid command.
- */
- ECommandInvalid = 0X7FFFFFFF
- };
-
-/**
-Command structure representing the command's data sent to the IL component by the IL client
-*/
-class TILCommand
- {
-public:
- inline TILCommand();
-
- inline TILCommand(TILCommandTypes iCmd, TUint32 aData1, TAny* aExtraData);
-
-public:
- /**
- Command that the application wants to send to the component.
- */
- TILCommandTypes iCmd;
- /**
- The integer command-specific parameter.
- */
- TUint32 iData1;
- /**
- A pointer to additional command-specific data the application wants to send to the component.
- The application owns the memory.
- */
- TAny* iExtraData;
- };
-
-
-/**
-Structure encapsulating the various fields needed to represent a version of some content.
-*/
-class TILVersion
- {
-public:
- inline TILVersion();
-
- inline TILVersion(TUint8 aMajor, TUint8 aMinor, TUint8 aRev, TUint8 aStep);
-
- inline TBool operator==(TILVersion aVersion);
-
- inline TBool operator!=(TILVersion aVersion);
-
-public:
- /**
- Integer representing the Major version number.
- */
- TUint8 iMajor;
- /**
- Integer representing the Minor version number.
- */
- TUint8 iMinor;
- /**
- Integer representing the Revision version number.
- */
- TUint8 iRev;
- /**
- Integer representing the Step version number.
- */
- TUint8 iStep;
- };
-
-/**
-Structure encapsulating the various fields needed to represent a version of an IL component.
-This structure is based on the arguments required by the OMX_GetComponentVersion OMX API MACRO.
-*/
-class TILComponentVersion
- {
-public:
- inline TILComponentVersion(TPtr8& aPtr);
-
-public:
- /**
- The component name to which the structure applies.
- */
- TPtr8 iComponentName;
- /**
- The version of the component to which structure applies.
- */
- TILVersion iComponentVersion;
- /**
- The version of the specification that was used to build this component.
- */
- TILVersion iSpecVersion;
- /**
- The unique identifier for the particular instance of the component to which structure applies.
- */
- TUint32 iComponentUniqueID;
- };
-
-
-#include "ilifbase.inl"
-
-#endif // ILIFBASE_H
--- a/omxil/mmilapi/ilif/inc/ilifbase.inl Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,117 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @internalTechnology
- @prototype
-*/
-
-#ifndef ILIFBASE_INL
-#define ILIFBASE_INL
-
-inline
-TILEvent::TILEvent()
- :
- iEvent(EEventMax),
- iData1(0),
- iData2(0),
- iExtraData(0)
- {
- }
-
-inline
-TILEvent::TILEvent(
- TILEventTypes aEvent,
- TUint32 aData1,
- TUint32 aData2,
- TAny* aExtraData
- )
- :
- iEvent(aEvent),
- iData1(aData1),
- iData2(aData2),
- iExtraData(aExtraData)
- {
- }
-
-inline
-TILCommand::TILCommand()
- :
- iCmd(ECommandInvalid),
- iData1(0),
- iExtraData(0)
- {
- }
-
-inline
-TILCommand::TILCommand(
- TILCommandTypes aCmd,
- TUint32 aData1,
- TAny* aExtraData
- )
- :
- iCmd(aCmd),
- iData1(aData1),
- iExtraData(aExtraData)
- {
- }
-
-inline TILVersion::TILVersion()
- :
- iMajor(0),
- iMinor(0),
- iRev(0),
- iStep(0)
- {
- }
-
-inline TILVersion::TILVersion(
- TUint8 aMajor,
- TUint8 aMinor,
- TUint8 aRev,
- TUint8 aStep
- )
- :
- iMajor(aMajor),
- iMinor(aMinor),
- iRev(aRev),
- iStep(aStep)
- {
- }
-
-inline TBool TILVersion::operator==(TILVersion aVersion)
- {
- return (!(operator!=(aVersion)));
- }
-
-inline TBool TILVersion::operator!=(TILVersion aVersion)
- {
- return ((aVersion.iMajor != iMajor) || (aVersion.iMinor != iMinor) || (aVersion.iRev != iRev) || (aVersion.iStep != iStep));
- }
-
-inline TILComponentVersion::TILComponentVersion(
- TPtr8& aPtr
- )
- :
- iComponentName(aPtr),
- iComponentVersion(),
- iSpecVersion(),
- iComponentUniqueID(0)
- {
- }
-
-
-#endif // ILIFBASE_INL
--- a/omxil/mmilapi/ilif/inc/ilifuids.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @internalTechnology
- @prototype
-*/
-
-#ifndef ILIFUIDS_H
-#define ILIFUIDS_H
-
-#include "ilifuids.hrh"
-
-/**
-UID used to identify the MILComponentIf API.
-@see KILComponentIfUid
-*/
-const TUid KUidILComponentIf = { KILComponentIfUid };
-
-#endif // ILIFUIDS_H
\ No newline at end of file
--- a/omxil/mmilapi/ilif/inc/ilifuids.hrh Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @internalTechnology
- @prototype
-*/
-
-#ifndef ILIFUIDS_HRH
-#define ILIFUIDS_HRH
-
-/**
-Defines the numerical value for KUidILComponentIf.
-@see KUidILComponentIf
-*/
-#define KILComponentIfUid 0x10285C08
-
-#endif // ILIFUIDS_HRH
-
--- a/omxil/mmilapi/ilif/inc/iltypeuids.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,139 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef ILTYPEUIDS_H
-#define ILTYPEUIDS_H
-
-/**
-@file
-@internalTechnology
-@prototype
-*/
-
-/**
-The UID to identify the specific TOMXILStructParam type of IL structs.
-@see TOMXILStructParam
-*/
-const TInt KUidOMXILStructType = 0x10285C09;
-
-/**
-The UID to identify the TTaskConfig encapsulated in the TILStruct.
-@see TILTaskConfig
-*/
-const TInt KUidMMFTTaskConfig = 0x10285C0A;
-
-/**
-The UID to identify the TAudioSpecificConfigType encapsulated in the TILStruct.
-@see TILAudioSpecificConfig
-*/
-const TInt KUidMMFAudioSpecificConfigType = 0x10285C7E;
-
-/**
-The UID to identify the TTimeIntervalMicroSeconds encapsulated in the TILStruct.
-@see TILVolumeRamp
-*/
-const TInt KUidMMFVolumeRampType = 0x10285CC7;
-
-/**
-The UID to identify the TUint encapsulated in the TILStruct representing the Volume.
-@see TILVolume
-*/
-const TInt KUidMMFVolumeType = 0x10285D18;
-
-/**
-The UID to identify the TUint encapsulated in the TILStruct representing the number of bytes played.
-@see TILBytesPlayed
-*/
-const TInt KUidMMFBytesPlayedType = 0x10285CC8;
-
-/**
-The UID to identify the TPortDefinitionType encapsulated in the TILStruct.
-@see TILPortDefinition
-*/
-const TInt KUidTPortDefinitionType = 0x10285C0B;
-
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-/* The rest of this file defines some UIDs that are not publishedPartner yet.
-/* They have been defined for internal used only as a proof of concept for testing
-/* the varios possible MILIF implementations.
-/* These definition could be upgraded to publishedPartner when the need for Symbian
-/* support of these particular params arises.
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/**
-The UID to identify the TAacConfig encapsulated in the TILStruct.
-@see TILAacConfig
-
-@internalTechnology
-@prototype
-*/
-const TInt KUidMMFTAacConfig = 0x10285C25;
-
-/**
-The UID to identify the TAudioPortFormatType encapsulated in the TILStruct.
-@see TILAudioPortFormat
-
-@internalTechnology
-@prototype
-*/
-const TInt KUidTAudioPortFormatType = 0x10285C0C;
-
-/**
-The UID to identify the TPortVorbisType encapsulated in the TILStruct.
-@see TILPortVorbis
-
-@internalTechnology
-@prototype
-*/
-const TInt KUidTPortVorbisType = 0x10285C0D;
-
-/**
-The UID to identify the TPortPCMModeType encapsulated in the TILStruct.
-@see TILPortModePCM
-
-@internalTechnology
-@prototype
-*/
-const TInt KUidTPortPCMModeType = 0x10285C0E;
-
-/**
-The UID to identify the TPortAACProfileType encapsulated in the TILStruct.
-@see TILPortAACProfile
-
-@internalTechnology
-@prototype
-*/
-const TInt KUidTPortAACProfileType = 0x10285C0F;
-
-/**
-The UID to identify the TPortVolumeType encapsulated in the TILStruct.
-@see TILPortVolume
-
-@internalTechnology
-@prototype
-*/
-const TInt KUidTPortVolumeType = 0x10285C10;
-
-/**
-The UID to identify the TPortMuteType encapsulated in the TILStruct.
-@see TILPortMute
-
-@internalTechnology
-@prototype
-*/
-const TInt KUidTPortMuteType = 0x10285C11;
-
-
-#endif // ILTYPEUIDS_H
\ No newline at end of file
--- a/omxil/mmilapi/ilif/inc/milcomponentif.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,334 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @internalTechnology
- @prototype
-*/
-
-#ifndef MILCOMPONENTIF_H
-#define MILCOMPONENTIF_H
-
-#include <e32base.h>
-#include "ilifbase.h"
-#include "tilstruct.h"
-
-class MILIfObserver;
-class MILComponentPortIf;
-
-/**
-IL Component interface class
-*/
-class MILComponentIf
- {
-public:
-
- /**
- Synchronous method which creates the physical IL Component.
-
- @param aComponentName
- The string identifying the name of the component.
- @param aComponentObserver
- The class to receive asynchronous component events.
- @leave System wide error.
- */
- virtual void CreateComponentL(const TDesC8& aComponentName, MILIfObserver& aComponentObserver) = 0;
-
- /**
- Synchronous method which creates the physical IL Component.
-
- @param aComponentUID
- The UIF identifying a particular component implementation.
- @param aComponentObserver
- The class to receive asynchronous component events.
- @leave System wide error.
- */
- virtual void CreateComponentL(const TUid& aComponentUID, MILIfObserver& aComponentObserver) = 0;
-
- /**
- Called by the IL client to release the component associated to this interface
- */
- virtual void ReleaseComponent() = 0;
-
- /**
- Synchronous method which returns the input ports a component holds.
- The array is cleared before appending ports.
-
- @param aComponentPorts
- The array to which the input ports will be appended.
- @return An error code indicating if the function call was successful. KErrNone on success, otherwise
- another of the system-wide error codes.
- */
- virtual TInt GetComponentInputPorts(RPointerArray<MILComponentPortIf>& aComponentPorts) const = 0;
-
- /**
- Synchronous method which returns the output ports a component holds.
- The array is cleared before appending ports.
-
- @param aComponentPorts
- The array to which the output ports will be appended.
- @return An error code indicating if the function call was successful. KErrNone on success, otherwise
- another of the system-wide error codes.
- */
- virtual TInt GetComponentOutputPorts(RPointerArray<MILComponentPortIf>& aComponentPorts) const = 0;
-
- /**
- Synchronous method which sets the configuration for a Component.
- Note that in the omx implementation of this interface this function will be used for both SetParameter()
- and SetConfig()
-
- @param aConfig
- The reference to the structure that contains the configuration data.
- @param aComponentPort
- The component's port to be configured when needed, otherwise NULL.
- @return An error code indicating if the function call was successful. KErrNone on success, otherwise
- another of the system-wide error codes.
- @see TILStruct
- */
- virtual TInt SetConfig(const TILStruct& aConfig, const MILComponentPortIf* aComponentPort = NULL) = 0;
-
- /**
- Synchronous method which gets a configuration structure from a component.
- Note that in the omx implementation of this interface this function will be used for both GetParameter()
- and GetConfig()
-
- @param aConfig
- The reference to the structure that is to contain the configuration information.
- @param aComponentPort
- The component's port to be queried when needed, otherwise NULL.
- @return An error code indicating if the function call was successful. KErrNone on success, otherwise
- another of the system-wide error codes.
- @see TILStruct
- */
- virtual TInt GetConfig(TILStruct& aConfig, const MILComponentPortIf* aComponentPort = NULL) const = 0;
-
- /**
- Asynchronous method which instructs the Component to start the initialization.
- An event is sent to the component's observer on completion.
-
- @return An error code indicating if the function call was successful. KErrNone on success, otherwise
- another of the system-wide error codes.
- @see MILIfObserver::MsgFromILComponent()
- */
- virtual TInt Initialize() = 0;
-
- /**
- Asynchronous method which instructs the Component to start the execution.
- An event is sent to the component's observer on completion.
-
- @return An error code indicating if the function call was successful. KErrNone on success, otherwise
- another of the system-wide error codes.
- @see MILIfObserver::MsgFromILComponent()
- */
- virtual TInt Execute() = 0;
-
- /**
- Asynchronous method which pauses the current on-going task.
- An event is sent to the component's observer on completion.
-
- @return An error code indicating if the function call was successful. KErrNone on success, otherwise
- another of the system-wide error codes.
- @see MILIfObserver::MsgFromILComponent()
- */
- virtual TInt Pause() = 0;
-
- /**
- Asynchronous method which stops the current on-going task.
- An event is sent to the component's observer on completion.
-
- @return An error code indicating if the function call was successful. KErrNone on success, otherwise
- another of the system-wide error codes.
- @see MILIfObserver::MsgFromILComponent()
- */
- virtual TInt Stop() = 0;
-
- /**
- Asynchronous method which moves the component back to its uninitialized state.
- An event is sent to the component's observer on completion.
-
- @return An error code indicating if the function call was successful. KErrNone on success, otherwise
- another of the system-wide error codes.
- @see MILIfObserver::MsgFromILComponent()
- */
- virtual TInt UnInitialize() = 0;
-
- /**
- Synchronous method which returns the current state of the Component.
-
- @param aState
- The current state of the Component.
- @return An error code indicating if the function call was successful. KErrNone on success, otherwise
- another of the system-wide error codes.
- */
- virtual TInt GetState(TILComponentState& aState) const = 0;
-
- /**
- Synchronous method which sends a command to the component.
-
- @param aCommand
- The reference to the structure that is to contain the command to be executed by the component.
- @return An error code indicating if the function call was successful. KErrNone on success, otherwise
- another of the system-wide error codes.
- @see TILCommand
- */
- virtual TInt SendCommand(const TILCommand& aCommand) = 0;
-
- /**
- Asynchronous function used to flush all component ports.
- An event is sent to the component's observer on completion.
-
- @return An error code indicating if the function call was successful. KErrNone on success, otherwise
- another of the system-wide error codes.
- */
- virtual TInt FlushAllPorts() = 0;
-
- /**
- Called by the IL client to query the component about the roles it supports.
- A component role is a string identifying the behaviour of the component.
-
- @param aComponentRole
- The pointer to the string returned identifying the role of the component.
- @param aIndex
- The index of the component's role being queried.
- @return An error code indicating if the function call was successful. KErrNone on success, otherwise
- another of the system-wide error codes.
- */
- virtual TInt ComponentRoleEnum(TPtr8& aComponentRole, TUint32 aIndex) const = 0;
-
-
- /**
- Called by the IL client to query the component's version.
-
- @param aVersion
- The reference to the structure that is to contain the version of the component
- @return An error code indicating if the function call was successful. KErrNone on success, otherwise
- another of the system-wide error codes.
- @see TILComponentVersion
- */
- virtual TInt GetComponentVersion(TILComponentVersion& aVersion) const = 0;
-
- /**
- Synchronous method which uses a standardized OpenMAX or vendor-specific extension string
- to set a particular component configuration.
- Note that in the OMX implementation of this interface this function will be used for both
- SetParameter() and SetConfig().
-
- @param aParameterName
- The string that identifies the data container.
- @param aConfig
- The reference to the structure that allows access to the data container used for this
- particular component configuration
- @param aComponentPort
- The component's port to which the config command is targeted to.
- @return An error code indicating if the function call was successful. KErrNone on success, otherwise
- another of the system-wide error codes.
- @see TILStruct
- */
- virtual TInt SetExtConfig(const TDesC8& aParameterName, const TILStruct& aConfig, const MILComponentPortIf* aComponentPort = NULL) = 0;
-
- /**
- Synchronous method which uses a standardized OpenMAX or vendor-specific extension string
- to get a particular component configuration.
-
- @param aParameterName
- The string that identifies the data container.
- @param aConfig
- The reference to the structure to access the component's configuration data.
- @param aComponentPort
- The component's port to which the config command is targeted to.
- @return An error code indicating if the function call was successful. KErrNone on success, otherwise
- another of the system-wide error codes.
- @see TILStruct
- */
- virtual TInt GetExtConfig(const TDesC8& aParameterName, TILStruct& aConfig, const MILComponentPortIf* aComponentPort = NULL) const = 0;
-
-
- /**
- Synchronous method to set a particular instance of this interface to the specific role passed as a parameter.
- A single implementation of this API may support various component roles. It is necessary for the
- implementation to know what type of component is configuring so that the appropriate translation of
- configuration parameters can be chosen.
- The role UIDs may be defined by the client application and can be mapped be the implementation of this API
- to roles the components under this layer understand.
-
- @param aFormat
- The UID identifying the role to be played by the implementation of this API.
- @return An error code indicating if the function call was successful. KErrNone on success, otherwise
- another of the system-wide error codes.
- */
- virtual TInt SetComponentIfRole(const TUid& aComponentRole) = 0;
-
- /**
- Synchronous method to set a particular instance of this interface to the specific role passed as a parameter.
- A single implementation of this API may support various component roles. It is necessary for the
- implementation to know what type of component is configuring so that the appropriate translation of
- configuration parameters can be chosen.
- Usually the component role names are defined by a known standard body. For instance role names are defined
- for OpenMAX IL Standard Components by Khronos Group.
-
- @param aComponentRole
- The string identifying the role to be played by the implementation of this API.
- @return An error code indicating if the function call was successful. KErrNone on success, otherwise
- another of the system-wide error codes.
- */
- virtual TInt SetComponentIfRole(const TDesC8& aComponentRole) = 0;
-
- /**
- Synchronous method to query about the particular role the interface is set to.
- A single implementation of this API can support various roles, however the role of the interface
- is that of the physical component instantiated under this interface.
- The role of the interface is set by the client after the component creation by calling SetComponentIfRole.
- The role UIDs may be defined by the client application and can be mapped be the implementation of this API
- to roles the components under this layer understand.
-
- @param aComponentRole
- The UID identifying this interface's role which is to be passed back to the caller.
- @return An error code indicating if the function call was successful. KErrNone on success, otherwise
- another of the system-wide error codes.
- */
- virtual TInt GetComponentIfRole(TUid& aComponentRole) const = 0;
-
- /**
- Synchronous method to query about the particular role the interface is set to.
- A single implementation of this API can support various roles, however the role of the interface
- is that of the [hysical component instantiated under this interface.
- The role of the interface is set by the client after the component creation by calling SetComponentIfRole.
- Usually the component role names are defined by a known standard body. For instance role names are defined
- for OpenMAX IL Standard Components by Khronos Group.
-
- @param aComponentRole
- The string identifying this interface's role which is to be passed back to the caller.
- @return An error code indicating if the function call was successful. KErrNone on success, otherwise
- another of the system-wide error codes.
- */
- virtual TInt GetComponentIfRole(TDes8& aComponentRole) const = 0;
-
- /**
- Synchronous method used to identify a particular interface implementation.
- It takes as a parameter the UID identifying the type of the interface requested and
- it returns a pointer to the specified interface or NULL if it does not exist.
- Must be cast to correct type by the user
-
- @param aInterfaceId
- The UID associated with the interface requested.
- @return A pointer to the specified interface or NULL if it has not be implemented.
- */
- virtual TAny* CustomInterface(TUid aInterfaceId) = 0;
-
- };
-
-
-#endif // MILCOMPONENTIF_H
--- a/omxil/mmilapi/ilif/inc/milcomponentportif.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,153 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @internalTechnology
- @prototype
-*/
-
-#ifndef MILCOMPONENTPORTIF_H
-#define MILCOMPONENTPORTIF_H
-
-#include <e32base.h>
-#include "ilifbase.h"
-#include "milcomponentif.h"
-
-class MILComponentPortIf;
-class MILComponentPortIfObserver;
-
-class CMMFBuffer;
-
-/**
-IL Component Port interface class
-*/
-class MILComponentPortIf
- {
-public:
-
- /**
- Asynchronous function used to get data from an output Port.
-
- @param aBuffer
- Reference to the buffer to be filled.
- @return An error code indicating if the function call was successful. KErrNone on success, otherwise
- another of the system-wide error codes.
- */
- virtual TInt FillThisBuffer(CMMFBuffer& aBuffer) = 0;
-
- /**
- Asynchronous function used to deliver data to an input Port.
-
- @param aBuffer
- Reference to the buffer to be emptied.
- @return An error code indicating if the function call was successful. KErrNone on success, otherwise
- another of the system-wide error codes.
- */
- virtual TInt EmptyThisBuffer(const CMMFBuffer& aBuffer) = 0;
-
- /**
- Called by an IL client to request tunnelling between the component's port represented by this
- interface and the component's port represented by the port interface passed as a parameter.
- It can also be called by an IL client to request tearing down an existing tunnel by passing a NULL
- port argument.
-
- @param aPort
- The port interface representing the port to be tunelled to, or NULL to disconnect tunnel.
- @return An error code indicating if the function call was successful. KErrNone on success, otherwise
- another of the system-wide error codes.
- */
- virtual TInt TunnelRequest(MILComponentPortIf* aPort) = 0;
-
- /**
- Called by a component to get the index of this port.
-
- @return An integer specifying the index of this port.
- */
- virtual TInt PortIndex() const = 0;
-
- /**
- Called by a component to get the direction of this port.
-
- @return The direction of this port
- */
- virtual TPortDirection PortDirection() const = 0;
-
- /**
- Synchronous function used to instruct the port to create a buffer.
-
- @param aBufferSize
- The size of the buffer to be created.
- @leave KErrNoMemory if not sufficient memory available when creating the buffer.
- @return A pointer to the newly created buffer.
- */
- virtual CMMFBuffer* CreateBufferL(TInt aBufferSize) = 0;
-
- /**
- Synchronous function used to instruct the Port to use the buffer passed
- in the function's argument.
-
- @param aBuffer
- A reference to the buffer to be used by the Port.
- @return An error code indicating if the function call was successful.
- KErrNone on success, otherwise another of the system-wide error codes.
- */
- virtual TInt UseBuffer(CMMFBuffer& aBuffer) = 0;
-
- /**
- Synchronous function used to instruct the port to free the buffer passed
- in the function's argument.
-
- @param aBuffer
- The buffer to be freed
- @return An error code indicating if the function call was successful.
- KErrNone on success, otherwise another of the system-wide error codes.
- */
- virtual TInt FreeBuffer(CMMFBuffer* aBuffer) = 0;
-
- /**
- Asynchronous function used to flush this port.
-
- @return An error code indicating if the function call was successful.
- KErrNone on success, otherwise another of the system-wide error codes.
- */
- virtual TInt FlushPort() = 0;
-
- /**
- Asynchronous function used to enable this port.
-
- @return An error code indicating if the function call was successful.
- KErrNone on success, otherwise another of the system-wide error codes.
- */
- virtual TInt EnablePort() = 0;
-
- /**
- Asynchronous function used to disable this port.
-
- @return An error code indicating if the function call was successful.
- KErrNone on success, otherwise another of the system-wide error codes.
- */
- virtual TInt DisablePort() = 0;
-
- /**
- Synchronous function that returns a pointer to a component owning this port.
-
- @return A pointer to this port's component
- */
- virtual MILComponentIf* PortComponent() const = 0;
-
- };
-
-#endif // MILCOMPONENTPORTIF_H
--- a/omxil/mmilapi/ilif/inc/milifobserver.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @internalTechnology
- @prototype
-*/
-
-#ifndef MILIFOBSERVER_H
-#define MILIFOBSERVER_H
-
-#include <e32base.h>
-#include "ilifbase.h"
-
-class CMMFBuffer;
-class MILComponentIf;
-
-/**
-IL Component observer class
-*/
-class MILIfObserver
- {
-public:
- /**
- Callback function to send an event/message to the component observer, i.e. the IL client.
-
- @param aComponent
- The IL Component which sent the callback.
- @param aEvent
- A reference to the structure that contains the event data.
- Any implementation of this function should be able to handle expected and unexpected events.
- @return An error code indicating if the function call was successful. KErrNone on success, otherwise
- another of the system-wide error codes.
- @see TILEvent
- */
- virtual TInt MsgFromILComponent(const MILComponentIf* aComponent, const TILEvent& aEvent) = 0;
-
- /**
- Callback function to return to the component port observer the buffer that has been delivered.
- The observer is usually the IL client or another port.
-
- Note that for some implementations this is essentially equivalent to EmptyBufferDone() from input
- ports and FillBufferDone() from output ports.
-
- @param aPort
- The interface from the port which sent the callback.
- @param aBuffer
- The buffer returned by the IL component.
- @return An error code indicating if the function call was successful. KErrNone on success, otherwise
- another of the system-wide error codes.
- */
- virtual TInt BufferDelivered(const MILComponentPortIf* aPort, const CMMFBuffer* aBuffer) = 0;
- };
-
-#endif // MILIFOBSERVER_H
--- a/omxil/mmilapi/ilif/inc/tilstruct.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @internalTechnology
- @prototype
-*/
-
-#ifndef TILSTRUCT_H
-#define TILSTRUCT_H
-
-#include <e32base.h>
-
-/**
-Configuration structure base class.
-Represents a configuration structure identified by a base class.
-*/
-class TILStruct
- {
-public:
- inline const TUid& Uid() const;
-
-protected:
- inline TILStruct();
-
-protected:
- TUid iUid;
- };
-
-/**
-Template class to create a TILStruct configuration given a structure and an unique UID to identify it.
-*/
-template<TInt32 U , class T>
-class TILStructParam : public TILStruct
- {
-public:
- inline TILStructParam(const T& aParameterStructure);
- inline TILStructParam();
- inline operator T&();
- inline static const T* GetStructure(const TILStruct& aConfig);
- inline static T* GetStructure(TILStruct& aConfig);
-private:
- TPckgBuf<T> iBuf;
- };
-
-#include "tilstruct.inl"
-
-#endif // TILSTRUCT_H
--- a/omxil/mmilapi/ilif/inc/tilstruct.inl Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @internalTechnology
- @prototype
-*/
-
-#ifndef TILSTRUCT_INL
-#define TILSTRUCT_INL
-
-/**
-Constructor
-*/
-inline TILStruct::TILStruct()
- :
- iUid(KNullUid)
- {
- }
-
-/**
-Obtain the UID identifying the structure.
-@return The identifying UID of the structure.
-*/
-inline const TUid& TILStruct::Uid() const
- {
- return iUid;
- }
-
-/**
-Constructor
-@param aParameterStructure The structure to store
-*/
-template <TInt32 U, class T>
-inline TILStructParam<U,T>::TILStructParam(const T& aParameterStructure)
- {
- iUid = TUid::Uid(U);
- iBuf = TPckgBuf<T>(aParameterStructure);
- }
-
-/**
-Default Constructor
-*/
-template <TInt32 U, class T>
-inline TILStructParam<U,T>::TILStructParam()
- {
- iUid = TUid::Uid(U);
- }
-
-/**
-Operator to return the structure represented by the class.
-@return The structure represented by the class.
-*/
-template <TInt32 U, class T>
-inline TILStructParam<U,T>::operator T&()
- {
- return iBuf();
- }
-
-/**
-Static method to return the structure represented by TILStruct.
-@param A const reference to the base structure.
-@return A const pointer to the structure represented by the class.
-*/
-template <TInt32 U, class T>
-inline const T* TILStructParam<U,T>::GetStructure(const TILStruct& aConfig)
- {
- const T* ptr = &((static_cast<const TILStructParam<U,T>& >(aConfig)).iBuf());
- return ptr;
- }
-
-/**
-Static method to return the structure represented by TILStruct.
-@param A reference to the base structure.
-@return A pointer to the structure represented by the class.
-*/
-template <TInt32 U, class T>
-inline T* TILStructParam<U,T>::GetStructure(TILStruct& aConfig)
- {
- T* ptr = &((static_cast<TILStructParam<U,T>& >(aConfig)).iBuf());
- return ptr;
- }
-
-
-
-#endif // TILSTRUCT_INL
--- a/omxil/mmilapi/ilif/inc/tilstructtypes.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,154 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @internalTechnology
- @prototype
-*/
-
-#ifndef TILSTRUCTTYPES_H
-#define TILSTRUCTTYPES_H
-
-#include "tilstruct.h"
-#include "iltypeuids.h"
-#include "ilconfigstructs.h"
-#include "ilaudioconfigstructs.h"
-#include <mmf/server/taskconfig.h>
-
-
-/**
-TILStruct to encapsulate TTaskConfig
-see KUidMMFTTaskConfig
-see TILStructParam
-*/
-typedef TILStructParam<KUidMMFTTaskConfig, TTaskConfig> TILTaskConfig;
-
-/**
-TILStruct to encapsulate TAudioSpecificConfigType
-see KUidMMFAudioSpecificConfigType
-see TILStructParam
-*/
-typedef TILStructParam<KUidMMFAudioSpecificConfigType, TAudioSpecificConfigType> TILAudioSpecificConfig;
-
-/**
-TILStruct to encapsulate TPortDefinitionType
-see KUidTPortDefinitionType
-see TILStructParam
-*/
-typedef TILStructParam<KUidTPortDefinitionType, TPortDefinitionType> TILPortDefinition;
-
-/**
-TILStruct to encapsulate TTimeIntervalMicroSeconds containing the volume ramping interval
-see KUidMMFVorlumeRampType
-see TILStructParam
-*/
-typedef TILStructParam<KUidMMFVolumeRampType, TTimeIntervalMicroSeconds> TILVolumeRamp;
-
-/**
-TILStruct to encapsulate the TUint containing the volume setting
-see KUidMMFVolumeType
-see TILStructParam
-*/
-typedef TILStructParam<KUidMMFVolumeType, TUint> TILVolume;
-
-/**
-TILStruct to encapsulate the TUint containing the number of bytes played
-see KUidMMFBytesPlayedType
-see TILStructParam
-*/
-typedef TILStructParam<KUidMMFBytesPlayedType, TUint> TILBytesPlayed;
-
-
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-/* The rest of this file defines some structures that are not publishedPartner yet.
-/* They have been defined for internal used only as a proof of concept for testing
-/* the various possible MILIF implementations.
-/* These definition could be upgraded to publishedPartner when the need for Symbian
-/* support of these particular params arises.
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-
-/**
-TILStruct to encapsulate TAacConfig
-see KUidMMFTAacConfig
-see TILStructParam
-
-@internalTechnology
-@prototype
-*/
-typedef TILStructParam<KUidMMFTAacConfig, TAacConfig> TILAacConfig;
-
-/**
-TILStruct to encapsulate TAudioPortFormatType
-see KUidTAudioPortFormatType
-see TILStructParam
-
-@internalTechnology
-@prototype
-*/
-typedef TILStructParam<KUidTAudioPortFormatType, TAudioPortFormatType> TILAudioPortFormat;
-
-/**
-TILStruct to encapsulate TPortVorbisType
-see KUidTPortVorbisType
-see TILStructParam
-
-@internalTechnology
-@prototype
-*/
-typedef TILStructParam<KUidTPortVorbisType, TPortVorbisType> TILPortVorbis;
-
-/**
-TILStruct to encapsulate TPortPCMModeType
-see KUidTPortPCMModeType
-see TILStructParam
-
-@internalTechnology
-@prototype
-*/
-typedef TILStructParam<KUidTPortPCMModeType, TPortPCMModeType> TILPortPCMMode;
-
-/**
-TILStruct to encapsulate TPortAACProfileType
-see KUidTPortAACProfileType
-see TILStructParam
-
-@internalTechnology
-@prototype
-*/
-typedef TILStructParam<KUidTPortAACProfileType, TPortAACProfileType> TILPortAACProfile;
-
-/**
-TILStruct to encapsulate TPortVolumeType
-see KUidTPortVolumeType
-see TILStructParam
-
-@internalTechnology
-@prototype
-*/
-typedef TILStructParam<KUidTPortVolumeType, TPortVolumeType> TILPortVolume;
-
-/**
-TILStruct to encapsulate TPortMuteType
-see KUidTPortMuteType
-see TILStructParam
-
-@internalTechnology
-@prototype
-*/
-typedef TILStructParam<KUidTPortMuteType, TPortMuteType> TILPortMute;
-
-#endif // TILSTRUCTTYPES_H
\ No newline at end of file
--- a/omxil/mmilapi/ilif/inc/tomxilstruct.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @internalTechnology
- @prototype
-*/
-
-#ifndef TOMXILSTRUCT_H
-#define TOMXILSTRUCT_H
-
-#include "tilstruct.h"
-#include <openmax/il/khronos/v1_x/OMX_Component.h>
-
-/**
-A typedef to symbianize the OpenMAX IL index type structure.
-*/
-typedef OMX_INDEXTYPE TILStructIndex;
-
-
-/**
-Derived class to create a TILStruct configuration given an index and a pointer to a parameter structure.
-The index identifies the param structure
-*/
-class TOMXILStructParam : public TILStruct
- {
-public:
- inline TOMXILStructParam(TAny* aParam, TILStructIndex aIndex);
- inline TAny* Param() const;
- inline TILStructIndex Index() const;
-
-private:
- TAny* iParam; // Not owned
- TILStructIndex iIndex;
- };
-
-#include "tomxilstruct.inl"
-
-#endif // TOMXILSTRUCT_H
--- a/omxil/mmilapi/ilif/inc/tomxilstruct.inl Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @internalTechnology
- @prototype
-*/
-
-#ifndef TOMXILSTRUCT_INL
-#define TOMXILSTRUCT_INL
-
-
-/**
-Constructor
-
-@param aParam
- The pointer to the structure associated to the particular index stored in this wrapper class.
-@param aIndex
- An index to identify the definition of the structure pointed to by this wrapper class.
-*/
-inline TOMXILStructParam::TOMXILStructParam(TAny* aParam, TILStructIndex aIndex)
- : iParam(aParam), iIndex(aIndex)
-{
- ASSERT(aParam);
-
- iUid = TUid::Uid(KUidOMXILStructType);
-}
-
-
-/**
-Method to return the pointer to the structure represented by the index stored in this TOMXILStructParam.
-The pointer should be cast to the structure associated to the TILStructIndex stored TOMXILStructParam
-
-@return A pointer to the OMX IL structure represented by this particular instance of the TOMXILStructParam
-*/
-inline TAny* TOMXILStructParam::Param() const
-{
- // This is not a const method. The fields in Param could be modified by the client.
- return iParam;
-}
-
-
-/**
-Method to return the TILStructIndex.
-
-@return A TILStructIndex index
-@see TILStructIndex
-*/
-inline TILStructIndex TOMXILStructParam::Index() const
-{
- return iIndex;
-}
-
-
-#endif // TOMXILSTRUCT_INL
--- a/omxil/mmilapi/refomxil/bwins/omxilgenericilif.def Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-EXPORTS
- ??0COmxILGenericILIF@@IAE@XZ @ 1 NONAME ; COmxILGenericILIF::COmxILGenericILIF(void)
- ??1COmxILGenericILIF@@UAE@XZ @ 2 NONAME ; COmxILGenericILIF::~COmxILGenericILIF(void)
- ?ComponentRoleEnum@COmxILGenericILIF@@UBEHAAVTPtr8@@K@Z @ 3 NONAME ; int COmxILGenericILIF::ComponentRoleEnum(class TPtr8 &, unsigned long) const
- ?CreateComponentL@COmxILGenericILIF@@UAEXABVTDesC8@@AAVMILIfObserver@@@Z @ 4 NONAME ; void COmxILGenericILIF::CreateComponentL(class TDesC8 const &, class MILIfObserver &)
- ?CreateComponentL@COmxILGenericILIF@@UAEXABVTUid@@AAVMILIfObserver@@@Z @ 5 NONAME ; void COmxILGenericILIF::CreateComponentL(class TUid const &, class MILIfObserver &)
- ?CustomInterface@COmxILGenericILIF@@UAEPAXVTUid@@@Z @ 6 NONAME ; void * COmxILGenericILIF::CustomInterface(class TUid)
- ?EmptyBufferDone@COmxILGenericILIF@@UAEHPBVCMMFBuffer@@H@Z @ 7 NONAME ; int COmxILGenericILIF::EmptyBufferDone(class CMMFBuffer const *, int)
- ?EventHandler@COmxILGenericILIF@@UAEHW4OMX_EVENTTYPE@@KKPAX@Z @ 8 NONAME ; int COmxILGenericILIF::EventHandler(enum OMX_EVENTTYPE, unsigned long, unsigned long, void *)
- ?Execute@COmxILGenericILIF@@UAEHXZ @ 9 NONAME ; int COmxILGenericILIF::Execute(void)
- ?FillBufferDone@COmxILGenericILIF@@UAEHPAVCMMFBuffer@@H@Z @ 10 NONAME ; int COmxILGenericILIF::FillBufferDone(class CMMFBuffer *, int)
- ?FlushAllPorts@COmxILGenericILIF@@UAEHXZ @ 11 NONAME ; int COmxILGenericILIF::FlushAllPorts(void)
- ?GetComponentIfRole@COmxILGenericILIF@@UBEHAAVTDes8@@@Z @ 12 NONAME ; int COmxILGenericILIF::GetComponentIfRole(class TDes8 &) const
- ?GetComponentIfRole@COmxILGenericILIF@@UBEHAAVTUid@@@Z @ 13 NONAME ; int COmxILGenericILIF::GetComponentIfRole(class TUid &) const
- ?GetComponentInputPorts@COmxILGenericILIF@@UBEHAAV?$RPointerArray@VMILComponentPortIf@@@@@Z @ 14 NONAME ; int COmxILGenericILIF::GetComponentInputPorts(class RPointerArray<class MILComponentPortIf> &) const
- ?GetComponentOutputPorts@COmxILGenericILIF@@UBEHAAV?$RPointerArray@VMILComponentPortIf@@@@@Z @ 15 NONAME ; int COmxILGenericILIF::GetComponentOutputPorts(class RPointerArray<class MILComponentPortIf> &) const
- ?GetComponentVersion@COmxILGenericILIF@@UBEHAAVTILComponentVersion@@@Z @ 16 NONAME ; int COmxILGenericILIF::GetComponentVersion(class TILComponentVersion &) const
- ?GetConfig@COmxILGenericILIF@@UBEHAAVTILStruct@@PBVMILComponentPortIf@@@Z @ 17 NONAME ; int COmxILGenericILIF::GetConfig(class TILStruct &, class MILComponentPortIf const *) const
- ?GetExtConfig@COmxILGenericILIF@@UBEHABVTDesC8@@AAVTILStruct@@PBVMILComponentPortIf@@@Z @ 18 NONAME ; int COmxILGenericILIF::GetExtConfig(class TDesC8 const &, class TILStruct &, class MILComponentPortIf const *) const
- ?GetState@COmxILGenericILIF@@UBEHAAW4TILComponentState@@@Z @ 19 NONAME ; int COmxILGenericILIF::GetState(enum TILComponentState &) const
- ?Initialize@COmxILGenericILIF@@UAEHXZ @ 20 NONAME ; int COmxILGenericILIF::Initialize(void)
- ?OmxGetConfig@COmxILGenericILIF@@IBEHW4OMX_INDEXTYPE@@PAX@Z @ 21 NONAME ; int COmxILGenericILIF::OmxGetConfig(enum OMX_INDEXTYPE, void *) const
- ?OmxGetExtensionIndex@COmxILGenericILIF@@IBEHABVTDesC8@@PAW4OMX_INDEXTYPE@@@Z @ 22 NONAME ; int COmxILGenericILIF::OmxGetExtensionIndex(class TDesC8 const &, enum OMX_INDEXTYPE *) const
- ?OmxGetParameter@COmxILGenericILIF@@IBEHW4OMX_INDEXTYPE@@PAX@Z @ 23 NONAME ; int COmxILGenericILIF::OmxGetParameter(enum OMX_INDEXTYPE, void *) const
- ?OmxSetConfig@COmxILGenericILIF@@IAEHW4OMX_INDEXTYPE@@PAX@Z @ 24 NONAME ; int COmxILGenericILIF::OmxSetConfig(enum OMX_INDEXTYPE, void *)
- ?OmxSetParameter@COmxILGenericILIF@@IAEHW4OMX_INDEXTYPE@@PAX@Z @ 25 NONAME ; int COmxILGenericILIF::OmxSetParameter(enum OMX_INDEXTYPE, void *)
- ?Pause@COmxILGenericILIF@@UAEHXZ @ 26 NONAME ; int COmxILGenericILIF::Pause(void)
- ?ReleaseComponent@COmxILGenericILIF@@UAEXXZ @ 27 NONAME ; void COmxILGenericILIF::ReleaseComponent(void)
- ?SendCommand@COmxILGenericILIF@@UAEHABVTILCommand@@@Z @ 28 NONAME ; int COmxILGenericILIF::SendCommand(class TILCommand const &)
- ?SetComponentIfRole@COmxILGenericILIF@@UAEHABVTDesC8@@@Z @ 29 NONAME ; int COmxILGenericILIF::SetComponentIfRole(class TDesC8 const &)
- ?SetComponentIfRole@COmxILGenericILIF@@UAEHABVTUid@@@Z @ 30 NONAME ; int COmxILGenericILIF::SetComponentIfRole(class TUid const &)
- ?SetConfig@COmxILGenericILIF@@UAEHABVTILStruct@@PBVMILComponentPortIf@@@Z @ 31 NONAME ; int COmxILGenericILIF::SetConfig(class TILStruct const &, class MILComponentPortIf const *)
- ?SetExtConfig@COmxILGenericILIF@@UAEHABVTDesC8@@ABVTILStruct@@PBVMILComponentPortIf@@@Z @ 32 NONAME ; int COmxILGenericILIF::SetExtConfig(class TDesC8 const &, class TILStruct const &, class MILComponentPortIf const *)
- ?Stop@COmxILGenericILIF@@UAEHXZ @ 33 NONAME ; int COmxILGenericILIF::Stop(void)
- ?UnInitialize@COmxILGenericILIF@@UAEHXZ @ 34 NONAME ; int COmxILGenericILIF::UnInitialize(void)
-
--- a/omxil/mmilapi/refomxil/eabi/omxilgenericilif.def Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-EXPORTS
- _ZN17COmxILGenericILIF10InitializeEv @ 1 NONAME
- _ZN17COmxILGenericILIF11SendCommandERK10TILCommand @ 2 NONAME
- _ZN17COmxILGenericILIF12EventHandlerE13OMX_EVENTTYPEmmPv @ 3 NONAME
- _ZN17COmxILGenericILIF12OmxSetConfigE13OMX_INDEXTYPEPv @ 4 NONAME
- _ZN17COmxILGenericILIF12SetExtConfigERK6TDesC8RK9TILStructPK18MILComponentPortIf @ 5 NONAME
- _ZN17COmxILGenericILIF12UnInitializeEv @ 6 NONAME
- _ZN17COmxILGenericILIF13FlushAllPortsEv @ 7 NONAME
- _ZN17COmxILGenericILIF14FillBufferDoneEP10CMMFBufferi @ 8 NONAME
- _ZN17COmxILGenericILIF15CustomInterfaceE4TUid @ 9 NONAME
- _ZN17COmxILGenericILIF15EmptyBufferDoneEPK10CMMFBufferi @ 10 NONAME
- _ZN17COmxILGenericILIF15OmxSetParameterE13OMX_INDEXTYPEPv @ 11 NONAME
- _ZN17COmxILGenericILIF16CreateComponentLERK4TUidR13MILIfObserver @ 12 NONAME
- _ZN17COmxILGenericILIF16CreateComponentLERK6TDesC8R13MILIfObserver @ 13 NONAME
- _ZN17COmxILGenericILIF16ReleaseComponentEv @ 14 NONAME
- _ZN17COmxILGenericILIF18SetComponentIfRoleERK4TUid @ 15 NONAME
- _ZN17COmxILGenericILIF18SetComponentIfRoleERK6TDesC8 @ 16 NONAME
- _ZN17COmxILGenericILIF4StopEv @ 17 NONAME
- _ZN17COmxILGenericILIF5PauseEv @ 18 NONAME
- _ZN17COmxILGenericILIF7ExecuteEv @ 19 NONAME
- _ZN17COmxILGenericILIF9SetConfigERK9TILStructPK18MILComponentPortIf @ 20 NONAME
- _ZN17COmxILGenericILIFC2Ev @ 21 NONAME
- _ZN17COmxILGenericILIFD0Ev @ 22 NONAME
- _ZN17COmxILGenericILIFD1Ev @ 23 NONAME
- _ZN17COmxILGenericILIFD2Ev @ 24 NONAME
- _ZNK17COmxILGenericILIF12GetExtConfigERK6TDesC8R9TILStructPK18MILComponentPortIf @ 25 NONAME
- _ZNK17COmxILGenericILIF12OmxGetConfigE13OMX_INDEXTYPEPv @ 26 NONAME
- _ZNK17COmxILGenericILIF15OmxGetParameterE13OMX_INDEXTYPEPv @ 27 NONAME
- _ZNK17COmxILGenericILIF17ComponentRoleEnumER5TPtr8m @ 28 NONAME
- _ZNK17COmxILGenericILIF18GetComponentIfRoleER4TUid @ 29 NONAME
- _ZNK17COmxILGenericILIF18GetComponentIfRoleER5TDes8 @ 30 NONAME
- _ZNK17COmxILGenericILIF19GetComponentVersionER19TILComponentVersion @ 31 NONAME
- _ZNK17COmxILGenericILIF20OmxGetExtensionIndexERK6TDesC8P13OMX_INDEXTYPE @ 32 NONAME
- _ZNK17COmxILGenericILIF22GetComponentInputPortsER13RPointerArrayI18MILComponentPortIfE @ 33 NONAME
- _ZNK17COmxILGenericILIF23GetComponentOutputPortsER13RPointerArrayI18MILComponentPortIfE @ 34 NONAME
- _ZNK17COmxILGenericILIF8GetStateER17TILComponentState @ 35 NONAME
- _ZNK17COmxILGenericILIF9GetConfigER9TILStructPK18MILComponentPortIf @ 36 NONAME
- _ZTI13COmxCallbacks @ 37 NONAME
- _ZTI17COmxBufferManager @ 38 NONAME
- _ZTI17COmxILGenericILIF @ 39 NONAME
- _ZTI21COmxILGenericPortILIF @ 40 NONAME
- _ZTIN17COmxBufferManager10COmxBufferE @ 41 NONAME
- _ZTIN17COmxILGenericILIF5CBodyE @ 42 NONAME
- _ZTV13COmxCallbacks @ 43 NONAME
- _ZTV17COmxBufferManager @ 44 NONAME
- _ZTV17COmxILGenericILIF @ 45 NONAME
- _ZTV21COmxILGenericPortILIF @ 46 NONAME
- _ZTVN17COmxBufferManager10COmxBufferE @ 47 NONAME
- _ZTVN17COmxILGenericILIF5CBodyE @ 48 NONAME
- _ZThn4_N17COmxILGenericILIF10InitializeEv @ 49 NONAME
- _ZThn4_N17COmxILGenericILIF11SendCommandERK10TILCommand @ 50 NONAME
- _ZThn4_N17COmxILGenericILIF12UnInitializeEv @ 51 NONAME
- _ZThn4_N17COmxILGenericILIF13FlushAllPortsEv @ 52 NONAME
- _ZThn4_N17COmxILGenericILIF15CustomInterfaceE4TUid @ 53 NONAME
- _ZThn4_N17COmxILGenericILIF16CreateComponentLERK4TUidR13MILIfObserver @ 54 NONAME
- _ZThn4_N17COmxILGenericILIF16CreateComponentLERK6TDesC8R13MILIfObserver @ 55 NONAME
- _ZThn4_N17COmxILGenericILIF16ReleaseComponentEv @ 56 NONAME
- _ZThn4_N17COmxILGenericILIF18SetComponentIfRoleERK4TUid @ 57 NONAME
- _ZThn4_N17COmxILGenericILIF18SetComponentIfRoleERK6TDesC8 @ 58 NONAME
- _ZThn4_N17COmxILGenericILIF4StopEv @ 59 NONAME
- _ZThn4_N17COmxILGenericILIF5PauseEv @ 60 NONAME
- _ZThn4_N17COmxILGenericILIF7ExecuteEv @ 61 NONAME
- _ZThn4_NK17COmxILGenericILIF17ComponentRoleEnumER5TPtr8m @ 62 NONAME
- _ZThn4_NK17COmxILGenericILIF18GetComponentIfRoleER4TUid @ 63 NONAME
- _ZThn4_NK17COmxILGenericILIF18GetComponentIfRoleER5TDes8 @ 64 NONAME
- _ZThn4_NK17COmxILGenericILIF19GetComponentVersionER19TILComponentVersion @ 65 NONAME
- _ZThn4_NK17COmxILGenericILIF22GetComponentInputPortsER13RPointerArrayI18MILComponentPortIfE @ 66 NONAME
- _ZThn4_NK17COmxILGenericILIF23GetComponentOutputPortsER13RPointerArrayI18MILComponentPortIfE @ 67 NONAME
- _ZThn4_NK17COmxILGenericILIF8GetStateER17TILComponentState @ 68 NONAME
- _ZThn8_N17COmxILGenericILIF12EventHandlerE13OMX_EVENTTYPEmmPv @ 69 NONAME
- _ZThn8_N17COmxILGenericILIF14FillBufferDoneEP10CMMFBufferi @ 70 NONAME
- _ZThn8_N17COmxILGenericILIF15EmptyBufferDoneEPK10CMMFBufferi @ 71 NONAME
-
--- a/omxil/mmilapi/refomxil/group/bld.inf Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifdef SYMBIAN_MULTIMEDIA_A3FDEVSOUND
-
-
-PRJ_MMPFILES
-../mmpfiles/omxilgenericilif.mmp
-
-PRJ_EXPORTS
-// IBY FILE
-milif.iby /epoc32/rom/include/milif.iby
-
-#endif // SYMBIAN_MULTIMEDIA_A3FDEVSOUND
-
-// End of file
--- a/omxil/mmilapi/refomxil/group/milif.iby Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef MILIF_IBY
-#define MILIF_IBY
-
-#ifdef SYMBIAN_MULTIMEDIA_A3FDEVSOUND
-
-// OMX IL Generic IL Interface
-file=ABI_DIR\BUILD_DIR\omxilgenericilif.dll System\Libs\omxilgenericilif.dll
-
-#endif // SYMBIAN_MULTIMEDIA_A3FDEVSOUND
-
-#endif // MILIF_IBY
\ No newline at end of file
--- a/omxil/mmilapi/refomxil/inc/momxilcomponentifobserver.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef MOMXILCOMPONENTIFOBSERVER_H
-#define MOMXILCOMPONENTIFOBSERVER_H
-
-#include <e32base.h>
-#include <openmax/il/khronos/v1_x/OMX_Core.h>
-
-class CMMFBuffer;
-
-/**
-OpenMAX component interface observer class.
-This is an internal interface class that encapsulates and represents the OpenMAX callback API as defined by the OpenMAX specification.
-*/
-class MOmxILComponentIfObserver
- {
-public:
-
- /**
- Callback method that returns the buffer that has been filled.
-
- @param aBuffer
- The buffer returned by the OpenMAX component.
- @param aPortIndex
- The OpenMAX component's port index returning the buffer.
- @return
- KErrNone, if successful; otherwise one of the other system-wide error codes.
- */
-
- virtual TInt FillBufferDone(CMMFBuffer* aBuffer, TInt aPortIndex) = 0;
-
- /**
- Callback method that returns the buffer that has been emptied.
-
- @param aBuffer
- The buffer returned by the OpenMAX component.
- @param aPortIndex
- The OpenMAX component's port index returning the buffer.
- @return
- KErrNone, if successful; otherwise one of the other system-wide error codes.
- */
- virtual TInt EmptyBufferDone(const CMMFBuffer* aBuffer, TInt aPortIndex) = 0;
-
- /**
- Callback method used by the component to notify the client application of a particular event.
-
- @param aEvent
- Event the component wants to notify the application about.
- @param aData1
- The first integer event-specific parameter.
- @param aData2
- The second integer event-specific parameter.
- @param aExtraInfo
- A pointer to additional event-specific data the component wants to send to the application.
- The component owns the memory.
- @return
- KErrNone, if successful; otherwise one of the other system-wide error codes.
- */
- virtual TInt EventHandler(OMX_EVENTTYPE aEvent, TUint32 aData1, TUint32 aData2, TAny* aExtraInfo) = 0;
- };
-
-#endif // MOMXILCOMPONENTIFOBSERVER_H
-
--- a/omxil/mmilapi/refomxil/inc/omxilcoreutils.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef OMXILCOREUTILS_H
-#define OMXILCOREUTILS_H
-
-#include "ilifbase.h"
-#include <e32std.h>
-#include <openmax/il/khronos/v1_x/OMX_Core.h>
-
-
-const TInt KSymbianErrors[] =
- {
- KErrNoMemory, /*OMX_ErrorInsufficientResources*/
- KErrUnknown, /*OMX_ErrorUndefined*/
- KErrBadName, /*OMX_ErrorInvalidComponentName*/
- KErrNotFound, /*OMX_ErrorComponentNotFound*/
- KErrGeneral, /*OMX_ErrorInvalidComponent*/
- KErrArgument, /*OMX_ErrorBadParameter*/
- KErrNotSupported, /*OMX_ErrorNotImplemented*/
- KErrUnderflow, /*OMX_ErrorUnderflow*/
- KErrOverflow, /*OMX_ErrorOverflow*/
- KErrHardwareNotAvailable, /* OMX_ErrorHardware*/
- KErrGeneral, /*OMX_ErrorInvalidState*/
- KErrCorrupt, /*OMX_ErrorStreamCorrupt*/
- KErrArgument, /*OMX_ErrorPortsNotCompatible*/
- KErrHardwareNotAvailable, /*OMX_ErrorResourcesLost*/
- KErrCompletion, /*OMX_ErrorNoMore*/
- KErrGeneral, /*OMX_ErrorVersionMismatch*/
- KErrNotReady, /*OMX_ErrorNotReady*/
- KErrTimedOut, /*OMX_ErrorTimeout*/
- KErrNone, /*OMX_ErrorSameState*/
- KErrNotReady, /*OMX_ErrorResourcesPreempted*/
- KErrNotReady, /*OMX_ErrorPortUnresponsiveDuringAllocation*/
- KErrNotReady, /*OMX_ErrorPortUnresponsiveDuringDeallocation*/
- KErrNotReady, /*OMX_ErrorPortUnresponsiveDuringStop*/
- KErrNotReady, /*OMX_ErrorIncorrectStateTransition*/
- KErrNotReady, /*OMX_ErrorIncorrectStateOperation*/
- KErrNotSupported, /*OMX_ErrorUnsupportedSetting*/
- KErrNotSupported, /*OMX_ErrorUnsupportedIndex*/
- KErrArgument, /*OMX_ErrorBadPortIndex*/
- KErrNotReady, /*OMX_ErrorPortUnpopulated*/
- KErrNotReady, /*OMX_ErrorComponentSuspended*/
- KErrNotReady, /*OMX_ErrorDynamicResourcesUnavailable*/
- KErrCorrupt, /*OMX_ErrorMbErrorsInFrame*/
- KErrNotSupported, /*OMX_ErrorFormatNotDetected*/
- KErrGeneral, /*OMX_ErrorContentPipeOpenFailed*/
- KErrGeneral, /*OMX_ErrorContentPipeCreationFailed*/
- KErrCorrupt, /*OMX_ErrorSeperateTablesUsed*/
- KErrNotSupported, /*OMX_ErrorTunnelingUnsupported*/
- };
-
-
-TInt ConvertOmxErrorType(OMX_ERRORTYPE aErrorType);
-OMX_ERRORTYPE ConvertSymbianErrorType(TInt aError);
-TILComponentState ConvertOmxState(OMX_STATETYPE aState);
-OMX_COMMANDTYPE ConvertSymbianCommandType(TILCommandTypes aCmd);
-
-#endif // OMXILCOREUTILS_H
-
--- a/omxil/mmilapi/refomxil/inc/omxilgenericilif.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef OMXILGENERICILIF_H
-#define OMXILGENERICILIF_H
-
-
-#include "milcomponentif.h"
-#include "momxilcomponentifobserver.h"
-#include <e32base.h>
-#include <openmax/il/khronos/v1_x/OMX_Component.h>
-
-/**
-Implementation of the MILComponentIf specific to OpenMAX specification.
-This is the base class implementing the generic parts of the interface and it should be
-further extended by derivation with the settings of the specific implementation
-*/
-class COmxILGenericILIF : public CBase,
- public MILComponentIf,
- public MOmxILComponentIfObserver
- {
-friend class COmxILGenericPortILIF;
-
-public:
- // from MILComponentIf
- IMPORT_C void CreateComponentL(const TDesC8& aComponentName, MILIfObserver& aComponentIfObserver);
- IMPORT_C void CreateComponentL(const TUid& aUid, MILIfObserver& ComponentIfObserver);
- IMPORT_C void ReleaseComponent();
- IMPORT_C TInt GetComponentInputPorts(RPointerArray<MILComponentPortIf>& aComponentPorts) const;
- IMPORT_C TInt GetComponentOutputPorts(RPointerArray<MILComponentPortIf>& aComponentPorts) const;
- IMPORT_C virtual TInt SetConfig(const TILStruct& aConfig, const MILComponentPortIf* aComponentPort = NULL) = 0;
- IMPORT_C virtual TInt GetConfig(TILStruct& aConfig, const MILComponentPortIf* aComponentPort = NULL) const = 0;
- IMPORT_C TInt Initialize();
- IMPORT_C TInt Execute();
- IMPORT_C TInt Pause();
- IMPORT_C TInt Stop();
- IMPORT_C TInt UnInitialize();
- IMPORT_C TInt GetState(TILComponentState& aState) const;
- IMPORT_C TInt SendCommand(const TILCommand& aCommand);
- IMPORT_C TInt FlushAllPorts();
- IMPORT_C TInt ComponentRoleEnum(TPtr8& aComponentRole, TUint32 aIndex) const;
- IMPORT_C TInt GetComponentVersion(TILComponentVersion& aVersion) const;
- IMPORT_C TInt SetComponentIfRole(const TUid& aComponentRole);
- IMPORT_C TInt SetComponentIfRole(const TDesC8& aComponentRole);
- IMPORT_C TInt GetComponentIfRole(TUid& aComponentRole) const;
- IMPORT_C TInt GetComponentIfRole(TDes8& aComponentRole) const;
- IMPORT_C virtual TInt SetExtConfig(const TDesC8& aParameterName, const TILStruct& aConfig, const MILComponentPortIf* aComponentPort = NULL) = 0;
- IMPORT_C virtual TInt GetExtConfig(const TDesC8& aParameterName, TILStruct& aConfig, const MILComponentPortIf* aComponentPort = NULL) const = 0;
- IMPORT_C TAny* CustomInterface(TUid aUid);
-
- // from MOmxILComponentIfObserver
- IMPORT_C TInt FillBufferDone(CMMFBuffer* aBuffer, TInt aPortIndex);
- IMPORT_C TInt EmptyBufferDone(const CMMFBuffer* aBuffer, TInt aPortIndex);
- IMPORT_C TInt EventHandler(OMX_EVENTTYPE aEvent, TUint32 aData1, TUint32 aData2, TAny* aExtraInfo);
-
- IMPORT_C ~COmxILGenericILIF();
-
-protected:
- IMPORT_C COmxILGenericILIF();
-
- IMPORT_C TInt OmxGetParameter(OMX_INDEXTYPE aParamIndex, TAny* aComponentParameterStructure) const;
- IMPORT_C TInt OmxSetParameter(OMX_INDEXTYPE aParamIndex, TAny* aComponentParameterStructure);
- IMPORT_C TInt OmxGetConfig(OMX_INDEXTYPE aConfigIndex, TAny* aValue) const;
- IMPORT_C TInt OmxSetConfig(OMX_INDEXTYPE aConfigIndex, TAny* aValue);
- IMPORT_C TInt OmxGetExtensionIndex(const TDesC8& aParameterName, OMX_INDEXTYPE* aIndexType) const;
-
-private:
- // Internal implementation. Only meant to be used by the component's port interface.
- TInt OmxSendCommand(OMX_COMMANDTYPE aCmd, TUint32 aParam1, TAny* aCmdData);
- TInt OmxComponentTunnelRequest(TUint32 aPortInput, OMX_HANDLETYPE aOutput, TUint32 aPortOutput);
- TInt OmxComponentDisconnectTunnel(TUint32 aPortInput, OMX_HANDLETYPE aOutput, TUint32 aPortOutput);
- TInt OmxUseBuffer(CMMFBuffer* aBuffer, TUint32 aPortIndex);
- CMMFBuffer* OmxAllocateBufferL(TUint32 aPortIndex, TUint32 aSizeBytes);
- TInt OmxFreeBuffer(CMMFBuffer* aBuffer);
- TInt OmxEmptyThisBuffer(const CMMFBuffer* aBuffer, MOmxILComponentIfObserver* aObserver);
- TInt OmxFillThisBuffer(CMMFBuffer* aBuffer, MOmxILComponentIfObserver* aObserver);
- OMX_COMPONENTTYPE* OmxHandle() const;
-
-private:
- class CBody;
-
- CBody* iBody;
- };
-
-#endif // OMXILGENERICILIF_H
-
--- a/omxil/mmilapi/refomxil/inc/omxilgenericilifbodyimpl.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,146 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef OMXILGENERICILIFBODYIMPL_H
-#define OMXILGENERICILIFBODYIMPL_H
-
-#include "momxilcomponentifobserver.h"
-#include <e32msgqueue.h>
-#include <openmax/il/khronos/v1_x/OMX_Component.h>
-
-
-class COmxBufferManager : public CBase
- {
-public:
-
- class COmxBuffer : public CBase
- {
- public:
- static COmxBuffer* NewL(OMX_BUFFERHEADERTYPE* aBufferHeader, CMMFBuffer* aBuffer);
- ~COmxBuffer();
-
- CMMFBuffer* MmfBuffer() const;
- OMX_BUFFERHEADERTYPE* BufferHeader() const;
-
- void SetPortObserver(MOmxILComponentIfObserver* aObserver);
- MOmxILComponentIfObserver* PortObserver() const;
-
- private:
- COmxBuffer();
- void ConstructL(OMX_BUFFERHEADERTYPE* aBufferHeader, CMMFBuffer* aBuffer);
-
- OMX_BUFFERHEADERTYPE* iBufferHeader;
- CMMFBuffer* iMmfBuffer;
-
- TBool iOwnsMmfBuffer;
-
- MOmxILComponentIfObserver* iPortObserver;
- };
-
-public:
- COmxBufferManager(OMX_COMPONENTTYPE* aHandle);
- ~COmxBufferManager();
-
- // Buffer lookup
- COmxBuffer* FindBuffer(const CMMFBuffer* aBuffer) const;
- COmxBuffer* FindBuffer(OMX_BUFFERHEADERTYPE* aBuffer) const;
-
- // OMX Calls
- TInt UseBuffer(CMMFBuffer& aBuffer, TUint nPortIndex);
- CMMFBuffer* AllocateBufferL(TUint nPortIndex, TUint nSizeBytes);
- TInt FreeBuffer(CMMFBuffer* aBuffer);
-
- TInt EmptyThisBuffer(const CMMFBuffer* aBuffer, MOmxILComponentIfObserver* aObserver);
- TInt FillThisBuffer(CMMFBuffer* aBuffer, MOmxILComponentIfObserver* aObserver);
-
- // Store OMX buffer pointer
- void StoreBufferL(OMX_BUFFERHEADERTYPE* aBufferHeader, CMMFBuffer* aBuffer);
-
-private:
- RPointerArray<COmxBuffer> iBuffers;
- OMX_COMPONENTTYPE* iHandle;
- };
-
-class COmxCallbacks : public CActive
- {
-public:
- enum TMessageType
- {
- EFillBufferCallback,
- EEmptyBufferCallback,
- EEventCallback
- };
-
- class TEventParams
- {
- public:
- OMX_EVENTTYPE iEvent;
- TUint32 iData1;
- TUint32 iData2;
- TAny* iExtraData;
- };
-
- class TOmxMessage
- {
- public:
- TMessageType iType;
- OMX_HANDLETYPE iComponent;
- union
- {
- COmxBufferManager::COmxBuffer* iBuffer;
- TEventParams iEventParams;
- };
- };
-public:
- static COmxCallbacks* NewL(MOmxILComponentIfObserver& aObserver);
- operator OMX_CALLBACKTYPE*();
- void RunL();
- void DoCancel();
-
- TInt FillBufferDone(OMX_HANDLETYPE aComponent, COmxBufferManager::COmxBuffer* aBuffer);
- TInt EmptyBufferDone(OMX_HANDLETYPE aComponent, COmxBufferManager::COmxBuffer* aBuffer);
- TInt EventHandler(OMX_HANDLETYPE aComponent, const TEventParams& aParams);
- virtual ~COmxCallbacks();
-
-private:
- void ConstructL();
- COmxCallbacks(MOmxILComponentIfObserver& aObserver);
-
-private:
- OMX_CALLBACKTYPE iHandle;
- RMsgQueue<TOmxMessage> iMsgQueue;
- MOmxILComponentIfObserver& iParent;
- };
-
-
-// OMX callback handler functions
-OMX_ERRORTYPE EventHandler(OMX_OUT OMX_HANDLETYPE aComponent,
- OMX_OUT TAny* aAppData,
- OMX_OUT OMX_EVENTTYPE aEvent,
- OMX_OUT TUint32 aData1,
- OMX_OUT TUint32 aData2,
- OMX_OUT TAny* aExtra);
-
-OMX_ERRORTYPE EmptyBufferDone(
- OMX_HANDLETYPE aComponent,
- TAny* aAppData,
- OMX_BUFFERHEADERTYPE* aBuffer);
-
-OMX_ERRORTYPE FillBufferDone(
- OMX_HANDLETYPE aComponent,
- TAny* aAppData,
- OMX_BUFFERHEADERTYPE* aBuffer);
-
-#endif // OMXILGENERICILIFBODYIMPL_H
--- a/omxil/mmilapi/refomxil/inc/omxilgenericportilif.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef OMXILGENERICPORTILIF_H
-#define OMXILGENERICPORTILIF_H
-
-#include "milcomponentportif.h"
-#include "omxilgenericilif.h"
-
-
-/**
-Concrete implementation of the MILComponentPortIf that encapsulates the
-component's port specific behaviour according to OpenMAX specification.
-*/
-class COmxILGenericPortILIF : public CBase,
- public MILComponentPortIf
- {
-public:
- static COmxILGenericPortILIF* NewL(COmxILGenericILIF& aParent, TPortDirection aPortDirection, TInt aIndex);
-
- // MILComponentPortIf
- TInt FillThisBuffer(CMMFBuffer& aBuffer);
- TInt EmptyThisBuffer(const CMMFBuffer& aBuffer);
- TInt TunnelRequest(MILComponentPortIf* aPort);
- TInt PortIndex() const;
- TPortDirection PortDirection() const;
- CMMFBuffer* CreateBufferL(TInt aBufferSize);
- TInt UseBuffer(CMMFBuffer& aBuffer);
- TInt FreeBuffer(CMMFBuffer* aBuffer);
- TInt FlushPort();
- TInt EnablePort();
- TInt DisablePort();
- MILComponentIf* PortComponent() const;
-
- void SetPortConnectedTo(COmxILGenericPortILIF* aPort);
-
-private:
- COmxILGenericPortILIF(COmxILGenericILIF& aParent, TPortDirection aPortDirection, TInt aIndex);
-
-private:
- TPortDirection iPortDirection;
- TInt iPortIndex;
- COmxILGenericILIF& iPortComponent;
- COmxILGenericPortILIF* iTunneledPort;
- };
-
-#endif // OMXILGENERICPORTILIF_H
--- a/omxil/mmilapi/refomxil/inc/omxilspecversion.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef OMXILSPECVERSION_H
-#define OMXILSPECVERSION_H
-
-#include <e32def.h>
-
-
-// OMX IL v1.1.1 used for this implementation
-const TUint8 KOMXILSpecVersionMajor = 1;
-const TUint8 KOMXILSpecVersionMinor = 1;
-const TUint8 KOMXILSpecVersionRevision = 1;
-const TUint8 KOMXILSpecVersionStep = 0;
-
-const OMX_VERSIONTYPE KOMXILSpecVersion = { KOMXILSpecVersionMajor, KOMXILSpecVersionMinor, KOMXILSpecVersionRevision, KOMXILSpecVersionStep };
-
-
-#endif // OMXILSPECVERSION_H
\ No newline at end of file
--- a/omxil/mmilapi/refomxil/mmpfiles/omxilgenericilif.mmp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include "../src/omxilgenericilif/omxilgenericilif.hrh"
-
-TARGET omxilgenericilif.dll
-TARGETTYPE dll
-
-CAPABILITY All -TCB
-
-UID KSharedLibraryUidDefine KUidOmxILGenericILIFDll
-VENDORID 0x70000001
-
-
-SOURCEPATH ../src/omxilgenericilif
-SOURCE omxilgenericilif.cpp
-SOURCE omxilgenericilifbody.cpp
-SOURCE omxilgenericilifbodyimpl.cpp
-SOURCE omxilgenericportilif.cpp
-SOURCE omxilcoreutils.cpp
-
-USERINCLUDE ../src/omxilgenericilif
-USERINCLUDE ../inc
-USERINCLUDE ../../ilif/inc
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-
-LIBRARY euser.lib
-LIBRARY mmfserverbaseclasses.lib
-LIBRARY omxilcoreclient.lib
-
-
-DEFFILE omxilgenericilif.def
-NOSTRICTDEF
-
-
-SMPSAFE
--- a/omxil/mmilapi/refomxil/src/omxilgenericilif/omxilcoreutils.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,135 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include "omxilcoreutils.h"
-
-
-/**
- Converts an OpenMAX error code to a Symbian error code.
- @param aErrorType The OpenMAX error code.
- @return The Symbian error code.
- */
-TInt ConvertOmxErrorType(OMX_ERRORTYPE aErrorType)
- {
- if (aErrorType == OMX_ErrorNone)
- {
- return KErrNone;
- }
- else if (aErrorType >= OMX_ErrorInsufficientResources &&
- aErrorType <= OMX_ErrorTunnelingUnsupported)
- {
- return KSymbianErrors[aErrorType - OMX_ErrorInsufficientResources];
- }
- else
- {
- return KErrGeneral;
- }
- }
-
-/**
- Converts a Symbian error code to an OpenMAX error code.
- @param aError The Symbian error code.
- @return The OpenMAX error code.
- */
-OMX_ERRORTYPE ConvertSymbianErrorType(TInt aError)
- {
- // In the current implementation this function is only used for the return code in the
- // callback methods. Currently the only expected errors KErrNone and KErrOverflow.
-
- OMX_ERRORTYPE err = OMX_ErrorNone;
- switch (aError)
- {
- case KErrNone:
- err = OMX_ErrorNone;
- break;
- case KErrOverflow:
- case KErrNoMemory:
- err = OMX_ErrorInsufficientResources;
- break;
- case KErrNotSupported:
- err = OMX_ErrorNotImplemented;
- break;
- case KErrNotReady:
- err = OMX_ErrorNotReady;
- break;
- case KErrGeneral:
- default:
- err = OMX_ErrorUndefined;
- }
- return err;
- }
-
-/**
- Converts an OpenMAX state to a Symbian state.
- @param aState
- The OpenMAX error code.
- @return The Symbian state.
- @see TILComponentState
- */
-TILComponentState ConvertOmxState(OMX_STATETYPE aState)
- {
- TILComponentState state = EComponentInvalid;
- switch (aState)
- {
- case OMX_StateInvalid:
- state = EComponentInvalid;
- break;
- case OMX_StateLoaded:
- state = EComponentLoaded;
- break;
- case OMX_StateIdle:
- state = EComponentIdle;
- break;
- case OMX_StateExecuting:
- state = EComponentExecuting;
- break;
- case OMX_StatePause:
- state = EComponentPaused;
- break;
- case OMX_StateWaitForResources:
- state = EComponentWaitingForResources;
- break;
- default:
- state = EComponentInvalid;
- }
- return state;
- }
-
-
-OMX_COMMANDTYPE ConvertSymbianCommandType(TILCommandTypes aCmd)
- {
- OMX_COMMANDTYPE omxcommand = OMX_CommandMax;
- switch (aCmd)
- {
- case ECommandStateSet:
- omxcommand = OMX_CommandStateSet;
- break;
- case ECommandFlush:
- omxcommand = OMX_CommandFlush;
- break;
- case ECommandPortDisable:
- omxcommand = OMX_CommandPortDisable;
- break;
- case ECommandPortEnable:
- omxcommand = OMX_CommandPortEnable;
- break;
- case ECommandMarkBuffer:
- omxcommand = OMX_CommandMarkBuffer;
- break;
- default:
- omxcommand = OMX_CommandMax;
- }
- return omxcommand;
- }
--- a/omxil/mmilapi/refomxil/src/omxilgenericilif/omxilgenericilif.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,299 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include "omxilgenericilif.h"
-#include "omxilgenericilifbody.h"
-#include "omxilcoreutils.h"
-#include "ilifuids.h"
-#include <openmax/il/khronos/v1_x/OMX_Types.h>
-
-
-const TUint32 KOMXALL = 0xFFFFFFFF;
-
-
-EXPORT_C COmxILGenericILIF::COmxILGenericILIF()
- {
- }
-
-EXPORT_C COmxILGenericILIF::~COmxILGenericILIF()
- {
- if (iBody)
- {
- delete iBody;
- }
- }
-
-EXPORT_C void COmxILGenericILIF::CreateComponentL(const TDesC8& aComponentName,
- MILIfObserver& aComponentIfObserver)
- {
- iBody = CBody::NewL(*this, aComponentIfObserver, aComponentName);
-
- User::LeaveIfError(iBody->SetPortsL());
- }
-
-EXPORT_C void COmxILGenericILIF::CreateComponentL(const TUid& /*aUid*/,
- MILIfObserver& /*ComponentIfObserver*/)
- {
- // OMX Versions do not use this method of creation
- User::Leave(KErrNotSupported);
- }
-
-EXPORT_C void COmxILGenericILIF::ReleaseComponent()
- {
- delete iBody;
- iBody = NULL;
-
- delete this;
- }
-
-EXPORT_C TInt COmxILGenericILIF::GetComponentInputPorts(RPointerArray<MILComponentPortIf>& aComponentPorts) const
- {
- return (iBody->GetComponentPorts(aComponentPorts, OMX_DirInput));
- }
-
-EXPORT_C TInt COmxILGenericILIF::GetComponentOutputPorts(RPointerArray<MILComponentPortIf>& aComponentPorts) const
- {
- return (iBody->GetComponentPorts(aComponentPorts, OMX_DirOutput));
- }
-
-EXPORT_C TInt COmxILGenericILIF::SetConfig(const TILStruct& /*aConfig*/,
- const MILComponentPortIf* /*aComponentPort*/)
- {
- // It should be implemented in the derived class
- return (KErrNotSupported);
- }
-
-EXPORT_C TInt COmxILGenericILIF::GetConfig(TILStruct& /*aConfig*/,
- const MILComponentPortIf* /*aComponentPort*/) const
- {
- // It should be implemented in the derived class
- return (KErrNotSupported);
- }
-
-EXPORT_C TInt COmxILGenericILIF::Initialize()
- {
- return (iBody->OmxSendCommand(OMX_CommandStateSet, OMX_StateIdle, NULL));
- }
-
-EXPORT_C TInt COmxILGenericILIF::Execute()
- {
- return (iBody->OmxSendCommand(OMX_CommandStateSet, OMX_StateExecuting, NULL));
- }
-
-EXPORT_C TInt COmxILGenericILIF::Pause()
- {
- return (iBody->OmxSendCommand(OMX_CommandStateSet, OMX_StatePause, NULL));
- }
-
-EXPORT_C TInt COmxILGenericILIF::Stop()
- {
- return (iBody->OmxSendCommand(OMX_CommandStateSet, OMX_StateIdle, NULL));
- }
-
-EXPORT_C TInt COmxILGenericILIF::UnInitialize()
- {
- return (iBody->OmxSendCommand(OMX_CommandStateSet, OMX_StateLoaded, NULL));
- }
-
-EXPORT_C TInt COmxILGenericILIF::GetState(TILComponentState& aState) const
- {
- TInt error;
- OMX_STATETYPE state;
- error = iBody->OmxGetState(&state);
- aState = ConvertOmxState(state);
- return error;
- }
-
-EXPORT_C TInt COmxILGenericILIF::SendCommand(const TILCommand& aCommand)
- {
- OMX_COMMANDTYPE command = ConvertSymbianCommandType(aCommand.iCmd);
- return (iBody->OmxSendCommand(command, aCommand.iData1, aCommand.iExtraData));
- }
-
-EXPORT_C TInt COmxILGenericILIF::FlushAllPorts()
- {
- return (iBody->OmxSendCommand(OMX_CommandFlush, KOMXALL, NULL));
- }
-
-EXPORT_C TInt COmxILGenericILIF::ComponentRoleEnum(TPtr8& aComponentRole,
- TUint32 aIndex) const
- {
- return (iBody->OmxComponentRoleEnum(aComponentRole, aIndex));
- }
-
-EXPORT_C TInt COmxILGenericILIF::GetComponentVersion(TILComponentVersion& aVersion) const
- {
- return (iBody->OmxGetComponentVersion(aVersion.iComponentName,
- (OMX_VERSIONTYPE*)&aVersion.iComponentVersion,
- (OMX_VERSIONTYPE*)&aVersion.iSpecVersion,
- (OMX_UUIDTYPE*)&aVersion.iComponentUniqueID));
- }
-
-EXPORT_C TInt COmxILGenericILIF::SetComponentIfRole(const TUid& aComponentRole)
- {
- return (iBody->SetIfToRole(aComponentRole));
- }
-
-EXPORT_C TInt COmxILGenericILIF::SetComponentIfRole(const TDesC8& /*aComponentRole*/)
- {
- // Under A3F the roles are identified by Format Uid rather than role names.
- return (KErrNotSupported);
- }
-
-EXPORT_C TInt COmxILGenericILIF::GetComponentIfRole(TUid& aComponentRole) const
- {
- return (iBody->GetIfRole(aComponentRole));
- }
-
-EXPORT_C TInt COmxILGenericILIF::GetComponentIfRole(TDes8& /*aComponentRole*/) const
- {
- // Under A3F the roles are identified by Format Uid rather than role names.
- return (KErrNotSupported);
- }
-
-EXPORT_C TInt COmxILGenericILIF::SetExtConfig(const TDesC8& /*aParameterName*/,
- const TILStruct& /*aConfig*/,
- const MILComponentPortIf* /*aComponentPort*/)
- {
- // It should be implemented in the derived class
- return (KErrNotSupported);
- }
-
-EXPORT_C TInt COmxILGenericILIF::GetExtConfig(const TDesC8& /*aParameterName*/,
- TILStruct& /*aConfig*/,
- const MILComponentPortIf* /*aComponentPort*/) const
- {
- // It should be implemented in the derived class
- return (KErrNotSupported);
- }
-
-EXPORT_C TAny* COmxILGenericILIF::CustomInterface(TUid aUid)
- {
- if (aUid == KUidILComponentIf)
- {
- MILComponentIf* componentIf = this;
- return componentIf;
- }
- else
- {
- return NULL;
- }
- }
-
-EXPORT_C TInt COmxILGenericILIF::FillBufferDone(CMMFBuffer* aBuffer,
- TInt aPortIndex)
- {
- return (iBody->FillBufferDone(aBuffer, aPortIndex));
- }
-
-EXPORT_C TInt COmxILGenericILIF::EmptyBufferDone(const CMMFBuffer* aBuffer,
- TInt aPortIndex)
- {
- return (iBody->EmptyBufferDone(aBuffer, aPortIndex));
- }
-
-EXPORT_C TInt COmxILGenericILIF::EventHandler(OMX_EVENTTYPE aEvent,
- TUint32 aData1,
- TUint32 aData2,
- TAny* aExtraInfo)
- {
- return (iBody->EventHandler(aEvent, aData1, aData2, aExtraInfo));
- }
-
-EXPORT_C TInt COmxILGenericILIF::OmxGetParameter(OMX_INDEXTYPE aParamIndex,
- TAny* aComponentParameterStructure) const
- {
- return (iBody->OmxGetParameter(aParamIndex, aComponentParameterStructure));
- }
-
-EXPORT_C TInt COmxILGenericILIF::OmxSetParameter(OMX_INDEXTYPE aParamIndex,
- TAny* aComponentParameterStructure)
- {
- return (iBody->OmxSetParameter(aParamIndex, aComponentParameterStructure));
- }
-
-EXPORT_C TInt COmxILGenericILIF::OmxGetConfig(OMX_INDEXTYPE aConfigIndex,
- TAny* aValue) const
- {
- return (iBody->OmxGetConfig(aConfigIndex, aValue));
- }
-
-EXPORT_C TInt COmxILGenericILIF::OmxSetConfig(OMX_INDEXTYPE aConfigIndex,
- TAny* aValue)
- {
- return (iBody->OmxSetConfig(aConfigIndex, aValue));
- }
-
-EXPORT_C TInt COmxILGenericILIF::OmxGetExtensionIndex(const TDesC8& aParameterName,
- OMX_INDEXTYPE* aIndexType) const
- {
- return (iBody->OmxGetExtensionIndex(aParameterName, aIndexType));
- }
-
-TInt COmxILGenericILIF::OmxSendCommand(OMX_COMMANDTYPE aCmd,
- TUint32 aParam1,
- TAny* aCmdData)
- {
- return (iBody->OmxSendCommand(aCmd, aParam1, aCmdData));
- }
-
-TInt COmxILGenericILIF::OmxComponentTunnelRequest(TUint32 aPortInput,
- OMX_HANDLETYPE aOutput,
- TUint32 aPortOutput)
- {
- return (iBody->OmxComponentTunnelRequest(aPortInput, aOutput, aPortOutput));
- }
-
-TInt COmxILGenericILIF::OmxComponentDisconnectTunnel(TUint32 aPortInput,
- OMX_HANDLETYPE aOutput,
- TUint32 aPortOutput)
- {
- return (iBody->OmxComponentDisconnectTunnel(aPortInput, aOutput, aPortOutput));
- }
-
-TInt COmxILGenericILIF::OmxUseBuffer(CMMFBuffer* aBuffer,
- TUint32 aPortIndex)
- {
- return (iBody->OmxUseBuffer(aBuffer, aPortIndex));
- }
-
-CMMFBuffer* COmxILGenericILIF::OmxAllocateBufferL(TUint32 aPortIndex,
- TUint32 aSizeBytes)
- {
- return (iBody->OmxAllocateBufferL(aPortIndex, aSizeBytes));
- }
-
-TInt COmxILGenericILIF::OmxFreeBuffer(CMMFBuffer* aBuffer)
- {
- return (iBody->OmxFreeBuffer(aBuffer));
- }
-
-TInt COmxILGenericILIF::OmxEmptyThisBuffer(const CMMFBuffer* aBuffer,
- MOmxILComponentIfObserver* aObserver)
- {
- return (iBody->OmxEmptyThisBuffer(aBuffer, aObserver));
- }
-
-TInt COmxILGenericILIF::OmxFillThisBuffer(CMMFBuffer* aBuffer,
- MOmxILComponentIfObserver* aObserver)
- {
- return (iBody->OmxFillThisBuffer(aBuffer, aObserver));
- }
-
-
-OMX_COMPONENTTYPE* COmxILGenericILIF::OmxHandle() const
- {
- return (iBody->Handle());
- }
--- a/omxil/mmilapi/refomxil/src/omxilgenericilif/omxilgenericilif.hrh Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef OMXILGENERICILIF_HRH
-#define OMXILGENERICILIF_HRH
-
-#define KSharedLibraryUidDefine 0x1000008D
-
-// UID to identify the generic OMX MILIF Dll.
-// This DLL is part of the reference milif implementation.
-#define KUidOmxILGenericILIFDll 0x10285C7C
-
-#endif // OMXILGENERICILIF_HRH
-
--- a/omxil/mmilapi/refomxil/src/omxilgenericilif/omxilgenericilifbody.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,430 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-#include "omxilgenericilifbody.h"
-#include "omxilcoreutils.h"
-#include "omxilspecversion.h"
-#include "milifobserver.h"
-#include "tilstructtypes.h"
-
-
-const TInt KMaxComponentNameLength = 128;
-
-
-COmxILGenericILIF::CBody::CBody(COmxILGenericILIF& aParent,
- MILIfObserver& aComponentIfObserver)
- :
- iParent(aParent),
- iIfObserver(aComponentIfObserver)
-
- {
- }
-
-COmxILGenericILIF::CBody::~CBody()
- {
- iInputPorts.ResetAndDestroy();
- iInputPorts.Close();
- iOutputPorts.ResetAndDestroy();
- iOutputPorts.Close();
- delete iBufferManager;
- delete iCallbacks;
-
- ::OMX_FreeHandle(reinterpret_cast<OMX_HANDLETYPE>(iHandle));
- }
-
-COmxILGenericILIF::CBody* COmxILGenericILIF::CBody::NewL(COmxILGenericILIF& aParent,
- MILIfObserver& aComponentIfObserver,
- const TDesC8& aComponentName)
- {
- CBody* self = new (ELeave) CBody(aParent, aComponentIfObserver);
- CleanupStack::PushL(self);
- self->ConstructL(aComponentName);
- CleanupStack::Pop(self);
- return self;
- }
-
-void COmxILGenericILIF::CBody::ConstructL(const TDesC8& aComponentName)
- {
- iCallbacks = COmxCallbacks::NewL(iParent);
-
- RBuf8 buf;
- buf.CleanupClosePushL();
- buf.CreateL(aComponentName, KMaxComponentNameLength);
- TUint8* name = const_cast<TUint8*>(buf.PtrZ());
-
- OMX_ERRORTYPE errorType = ::OMX_GetHandle(reinterpret_cast<OMX_HANDLETYPE*>(&iHandle),
- reinterpret_cast<OMX_STRING>(name),
- iCallbacks,
- *iCallbacks);
- CleanupStack::PopAndDestroy(&buf);
-
- User::LeaveIfError(ConvertOmxErrorType(errorType));
-
- iBufferManager = new (ELeave) COmxBufferManager(iHandle);
- }
-
-OMX_COMPONENTTYPE* COmxILGenericILIF::CBody::Handle() const
- {
- return iHandle;
- }
-
-TInt COmxILGenericILIF::CBody::OmxGetComponentVersion(TPtr8 aComponentName,
- OMX_VERSIONTYPE* aComponentVersion,
- OMX_VERSIONTYPE* aSpecVersion,
- OMX_UUIDTYPE* aComponentUUID)
- {
- ASSERT(aComponentVersion);
- ASSERT(aSpecVersion);
- ASSERT(aComponentUUID);
-
- TUint8* cname = const_cast<TUint8*>(aComponentName.PtrZ());
- OMX_ERRORTYPE error = iHandle->GetComponentVersion(reinterpret_cast<OMX_HANDLETYPE>(iHandle),
- reinterpret_cast<OMX_STRING>(cname), aComponentVersion, aSpecVersion, aComponentUUID);
-
- TLex8 lex(cname);
- TInt length;
- for( length = 0; !lex.Eos(); ++length )
- {
- lex.Inc();
- }
- aComponentName.SetLength(length);
-
- return ConvertOmxErrorType(error);
- }
-
-TInt COmxILGenericILIF::CBody::OmxSendCommand(OMX_COMMANDTYPE aCmd,
- TUint32 aParam,
- TAny* aCmdData)
- {
- OMX_ERRORTYPE error = iHandle->SendCommand(reinterpret_cast<OMX_HANDLETYPE>(iHandle), aCmd, aParam, aCmdData);
- return ConvertOmxErrorType(error);
- }
-
-TInt COmxILGenericILIF::CBody::OmxGetParameter(OMX_INDEXTYPE aParamIndex,
- TAny* aValue)
- {
- ASSERT(aValue);
-
- OMX_ERRORTYPE error = iHandle->GetParameter(reinterpret_cast<OMX_HANDLETYPE>(iHandle), aParamIndex, aValue);
- return ConvertOmxErrorType(error);
- }
-
-TInt COmxILGenericILIF::CBody::OmxSetParameter(OMX_INDEXTYPE aIndex,
- TAny* aValue)
- {
- ASSERT(aValue);
-
- OMX_ERRORTYPE error = iHandle->SetParameter(reinterpret_cast<OMX_HANDLETYPE>(iHandle), aIndex, aValue);
- return ConvertOmxErrorType(error);
- }
-
-TInt COmxILGenericILIF::CBody::OmxGetConfig(OMX_INDEXTYPE aIndex,
- TAny* aValue)
- {
- ASSERT(aValue);
-
- OMX_ERRORTYPE error = iHandle->GetConfig(reinterpret_cast<OMX_HANDLETYPE>(iHandle), aIndex, aValue);
- return ConvertOmxErrorType(error);
- }
-
-TInt COmxILGenericILIF::CBody::OmxSetConfig(OMX_INDEXTYPE aIndex,
- TAny* aValue)
- {
- ASSERT(aValue);
-
- OMX_ERRORTYPE error = iHandle->SetConfig(reinterpret_cast<OMX_HANDLETYPE>(iHandle), aIndex, aValue);
- return ConvertOmxErrorType(error);
- }
-
-TInt COmxILGenericILIF::CBody::OmxGetExtensionIndex(const TDesC8& aParameterName,
- OMX_INDEXTYPE* aIndexType)
- {
- HBufC8* buf = HBufC8::New(aParameterName.Length()+1);
- if (buf == NULL)
- {
- return KErrNoMemory;
- }
- else
- {
- *buf = aParameterName;
- TUint8* cstring = const_cast<TUint8*>(buf->Des().PtrZ());
- OMX_ERRORTYPE error = iHandle->GetExtensionIndex(reinterpret_cast<OMX_HANDLETYPE>(iHandle), reinterpret_cast<char*>(cstring), aIndexType);
- delete buf;
- return ConvertOmxErrorType(error);
- }
- }
-
-TInt COmxILGenericILIF::CBody::OmxGetState(OMX_STATETYPE* aState)
- {
-
- OMX_ERRORTYPE error = iHandle->GetState(reinterpret_cast<OMX_HANDLETYPE>(iHandle), aState);
- return ConvertOmxErrorType(error);
- }
-
-TInt COmxILGenericILIF::CBody::OmxComponentTunnelRequest(TUint32 aPortInput,
- OMX_HANDLETYPE aOutput,
- TUint32 aPortOutput)
- {
- OMX_ERRORTYPE error = ::OMX_SetupTunnel(aOutput, aPortOutput, reinterpret_cast<OMX_HANDLETYPE>(iHandle), aPortInput);
- return ConvertOmxErrorType(error);
- }
-
-TInt COmxILGenericILIF::CBody::OmxComponentDisconnectTunnel(TUint32 aPortInput,
- OMX_HANDLETYPE aOutput,
- TUint32 aPortOutput)
- {
- OMX_ERRORTYPE error = ::OMX_SetupTunnel(aOutput, aPortOutput, 0, 0);
- if (error == OMX_ErrorNone)
- {
- error = ::OMX_SetupTunnel(0, 0, reinterpret_cast<OMX_HANDLETYPE>(iHandle), aPortInput);
- }
- return ConvertOmxErrorType(error);
- }
-
-TInt COmxILGenericILIF::CBody::OmxUseBuffer(CMMFBuffer* aBuffer,
- TUint32 aPortIndex)
- {
- ASSERT(aBuffer);
-
- return (iBufferManager->UseBuffer(*aBuffer, aPortIndex));
- }
-
-CMMFBuffer* COmxILGenericILIF::CBody::OmxAllocateBufferL(TUint32 aPortIndex,
- TUint32 aSizeBytes)
- {
- return (iBufferManager->AllocateBufferL(aPortIndex, aSizeBytes));
- }
-
-TInt COmxILGenericILIF::CBody::OmxFreeBuffer(CMMFBuffer* aBuffer)
- {
- ASSERT(aBuffer);
-
- return (iBufferManager->FreeBuffer(aBuffer));
- }
-
-TInt COmxILGenericILIF::CBody::OmxEmptyThisBuffer(const CMMFBuffer* aBuffer,
- MOmxILComponentIfObserver* aObserver)
- {
- ASSERT(aBuffer);
-
- return (iBufferManager->EmptyThisBuffer(aBuffer, aObserver));
- }
-
-TInt COmxILGenericILIF::CBody::OmxFillThisBuffer(CMMFBuffer* aBuffer,
- MOmxILComponentIfObserver* aObserver)
- {
- ASSERT(aBuffer);
-
- return (iBufferManager->FillThisBuffer(aBuffer, aObserver));
- }
-
-TInt COmxILGenericILIF::CBody::OmxComponentRoleEnum(TPtr8& aComponentRole,
- TUint32 aIndex)
- {
- TUint8* role = const_cast<TUint8*> (aComponentRole.PtrZ());
- OMX_ERRORTYPE error = iHandle->ComponentRoleEnum(reinterpret_cast<OMX_HANDLETYPE>(iHandle), reinterpret_cast<OMX_U8*>(role), aIndex);
-
- TLex8 lex(role);
- TInt length;
- for( length = 0; !lex.Eos(); ++length )
- {
- lex.Inc();
- }
- aComponentRole.SetLength(length);
-
- return ConvertOmxErrorType(error);
- }
-
-TInt COmxILGenericILIF::CBody::SetIfToRole(const TUid& aComponentRole)
- {
- iFormat = aComponentRole;
- return KErrNone;
- }
-
-TInt COmxILGenericILIF::CBody::GetIfRole(TUid& aComponentRole) const
- {
- aComponentRole = iFormat;
- return KErrNone;
- }
-
-TInt COmxILGenericILIF::CBody::SetPortsL()
- {
- OMX_PORT_PARAM_TYPE param;
- param.nVersion = KOMXILSpecVersion;
- param.nSize = sizeof(OMX_PORT_PARAM_TYPE);
- TInt err = OmxGetParameter(OMX_IndexParamAudioInit, ¶m);
-
- if (err == KErrNone)
- {
- for (TInt i=0; i < param.nPorts && err == KErrNone; i++ )
- {
- OMX_PARAM_PORTDEFINITIONTYPE portInfo;
- portInfo.nPortIndex = i;
- portInfo.nVersion = KOMXILSpecVersion;
- portInfo.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
- err = OmxGetParameter(OMX_IndexParamPortDefinition, &portInfo);
- if (err == KErrNone)
- {
- if (portInfo.eDir == OMX_DirInput)
- {
- COmxILGenericPortILIF* inputPort = COmxILGenericPortILIF::NewL(iParent, EDirInput, portInfo.nPortIndex);
- err = iInputPorts.Append(inputPort);
- }
- else
- {
- COmxILGenericPortILIF* outputPort = COmxILGenericPortILIF::NewL(iParent, EDirOutput, portInfo.nPortIndex);
- err = iOutputPorts.Append(outputPort);
- }
- }
- }
- }
- return err;
- }
-
-TInt COmxILGenericILIF::CBody::GetComponentPorts(RPointerArray<MILComponentPortIf>& aComponentPorts,
- OMX_DIRTYPE aDirection)
- {
- TInt err = KErrNone;
- if (aDirection == OMX_DirInput)
- {
- const TInt counter = iInputPorts.Count();
- for (TInt i=0; i < counter && err == KErrNone; i++ )
- {
- err = aComponentPorts.Append(iInputPorts[i]);
- }
- }
- else if (aDirection == OMX_DirOutput)
- {
- const TInt counter = iOutputPorts.Count();
- for (TInt i=0; i < counter && err == KErrNone; i++ )
- {
- err = aComponentPorts.Append(iOutputPorts[i]);
- }
- }
- else
- {
- err = KErrNotSupported;
- }
- return err;
- }
-
-TInt COmxILGenericILIF::CBody::FillBufferDone(CMMFBuffer* aBuffer,
- TInt aPortIndex)
- {
- ASSERT(aBuffer);
-
- // Loop through all output ports to search for the interface associated to this port index
- const TInt counter = iOutputPorts.Count();
- for (TInt i=0; i < counter; i++ )
- {
- if (iOutputPorts[i]->PortIndex() == aPortIndex)
- {
- return (iIfObserver.BufferDelivered(iOutputPorts[i], aBuffer));
- }
- }
-
- return KErrNotFound;
- }
-
-TInt COmxILGenericILIF::CBody::EmptyBufferDone(const CMMFBuffer* aBuffer,
- TInt aPortIndex)
- {
- ASSERT(aBuffer);
-
- // Loop through all input ports to search for the interface associated to this port index
- const TInt counter = iInputPorts.Count();
- for (TInt i=0; i < counter; i++ )
- {
- if (iInputPorts[i]->PortIndex() == aPortIndex)
- {
- return (iIfObserver.BufferDelivered(iInputPorts[i], aBuffer));
- }
- }
-
- return KErrNotFound;
- }
-
-TInt COmxILGenericILIF::CBody::EventHandler(OMX_EVENTTYPE aEvent,
- TUint32 aData1,
- TUint32 aData2,
- TAny* /*aExtraInfo*/)
- {
- TInt err = KErrNone;
- TILEvent thisEvent;
-
- switch (aEvent)
- {
- case OMX_EventCmdComplete:
- {
- thisEvent.iEvent = EEventCmdComplete;
- if (aData1 == OMX_CommandStateSet)
- {
- thisEvent.iData1 = ECommandStateSet;
- OMX_STATETYPE state = static_cast<OMX_STATETYPE>(aData2);
- thisEvent.iData2 = ConvertOmxState(state);
- err = iIfObserver.MsgFromILComponent(&iParent, thisEvent);
- break;
- }
- else if (aData1 == OMX_CommandFlush)
- {
- thisEvent.iData1 = ECommandFlush;
- thisEvent.iData2 = aData2; // Port index
- err = iIfObserver.MsgFromILComponent(&iParent, thisEvent);
- }
- else if (aData1 == OMX_CommandPortDisable)
- {
- thisEvent.iData1 = ECommandPortDisable;
- thisEvent.iData2 = aData2; // Port index
- err = iIfObserver.MsgFromILComponent(&iParent, thisEvent);
- }
- else if (aData1 == OMX_CommandPortEnable)
- {
- thisEvent.iData1 = ECommandPortEnable;
- thisEvent.iData2 = aData2; // Port index
- err = iIfObserver.MsgFromILComponent(&iParent, thisEvent);
- }
- else
- {
- err = KErrNotSupported;
- }
-
- break;
- }
- case OMX_EventBufferFlag:
- {
- // Propagate the EOF up to client as KErrUnderflow
- thisEvent.iEvent = EEventBufferFlag;
- thisEvent.iData1 = aData1;
- thisEvent.iData2 = static_cast<TUint32>(KErrUnderflow);
- err = iIfObserver.MsgFromILComponent(&iParent, thisEvent);
- break;
- }
- case OMX_EventError:
- {
- // Propagate the error up to client
- thisEvent.iEvent = EEventError;
- OMX_ERRORTYPE errorx = static_cast<OMX_ERRORTYPE>(aData1);
- thisEvent.iData1 = ConvertOmxErrorType(errorx);
- err = iIfObserver.MsgFromILComponent(&iParent, thisEvent);
- break;
- }
- default:
- {
- err = KErrNotSupported;
- }
- }
- return err;
- }
--- a/omxil/mmilapi/refomxil/src/omxilgenericilif/omxilgenericilifbody.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef OMXILGENERICILIFBODY_H
-#define OMXILGENERICILIFBODY_H
-
-
-#include "omxilgenericilif.h"
-#include "omxilgenericportilif.h"
-#include "omxilgenericilifbodyimpl.h"
-#include <e32base.h>
-#include <openmax/il/khronos/v1_x/OMX_Component.h>
-
-
-/**
-Body implementation of the COmxILGenericILIF specific to OpenMAX specification.
-*/
-class COmxILGenericILIF::CBody : public CBase
- {
-public:
- static CBody* NewL(COmxILGenericILIF& aParent,
- MILIfObserver& aComponentIfObserver,
- const TDesC8& aComponentName);
- ~CBody();
-
- OMX_COMPONENTTYPE* Handle() const;
-
- TInt OmxGetComponentVersion(TPtr8 aComponentName, OMX_VERSIONTYPE* aComponentVersion, OMX_VERSIONTYPE* aSpecVersion, OMX_UUIDTYPE* aComponentUUID);
- TInt OmxSendCommand(OMX_COMMANDTYPE aCmd, TUint32 aParam1, TAny* aCmdData);
- TInt OmxGetParameter(OMX_INDEXTYPE aParamIndex, TAny* aComponentParameterStructure);
- TInt OmxSetParameter(OMX_INDEXTYPE aIndex, TAny* aComponentParameterStructure);
- TInt OmxGetConfig(OMX_INDEXTYPE aIndex, TAny* aValue);
- TInt OmxSetConfig(OMX_INDEXTYPE aIndex, TAny* aValue);
- TInt OmxGetExtensionIndex(const TDesC8& aParameterName, OMX_INDEXTYPE* aIndexType);
- TInt OmxGetState(OMX_STATETYPE* aState);
- TInt OmxComponentTunnelRequest(TUint32 aPortInput, OMX_HANDLETYPE aOutput, TUint32 aPortOutput);
- TInt OmxComponentDisconnectTunnel(TUint32 aPortInput, OMX_HANDLETYPE aOutput, TUint32 aPortOutput);
- TInt OmxUseBuffer(CMMFBuffer* aBuffer, TUint32 aPortIndex);
- CMMFBuffer* OmxAllocateBufferL(TUint32 aPortIndex, TUint32 aSizeBytes);
- TInt OmxFreeBuffer(CMMFBuffer* aBuffer);
- TInt OmxEmptyThisBuffer(const CMMFBuffer* aBuffer, MOmxILComponentIfObserver* aObserver);
- TInt OmxFillThisBuffer(CMMFBuffer* aBuffer, MOmxILComponentIfObserver* aObserver);
- TInt OmxComponentRoleEnum(TPtr8& aComponentRole, TUint32 aIndex);
- TInt SetIfToRole(const TUid& aComponentRole);
- TInt GetIfRole(TUid& aComponentRole) const;
- TInt GetComponentPorts(RPointerArray<MILComponentPortIf>& aComponentPorts, OMX_DIRTYPE);
- TInt SetPortsL();
-
- TInt FillBufferDone(CMMFBuffer* aBuffer, TInt aPortIndex);
- TInt EmptyBufferDone(const CMMFBuffer* aBuffer, TInt aPortIndex);
- TInt EventHandler(OMX_EVENTTYPE aEvent, TUint32 aData1, TUint32 aData2, TAny* aExtraInfo);
-
-private:
- CBody(COmxILGenericILIF& aParent, MILIfObserver& aComponentIfObserver);
- void ConstructL(const TDesC8& aComponentName);
-
-private:
-
- OMX_COMPONENTTYPE* iHandle;
-
- RPointerArray<COmxILGenericPortILIF> iInputPorts;
- RPointerArray<COmxILGenericPortILIF> iOutputPorts;
-
- COmxBufferManager* iBufferManager;
- COmxCallbacks* iCallbacks;
-
- COmxILGenericILIF& iParent;
- MILIfObserver& iIfObserver;
-
- TUid iFormat;
- };
-
-#endif // OMXILGENERICILIFBODY_H
-
--- a/omxil/mmilapi/refomxil/src/omxilgenericilif/omxilgenericilifbodyimpl.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,441 +0,0 @@
-// Copyright (c) 2008-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:
-// omxilgenericifilbodyimpl.cpp
-//
-//
-
-#include "omxilgenericilifbodyimpl.h"
-#include "omxilcoreutils.h"
-#include <e32base.h>
-#include <e32msgqueue.h>
-#include <mmf/server/mmfdatabuffer.h>
-
-
-const TInt KMaxMsgQueueEntries = 10;
-
-COmxBufferManager::COmxBufferManager(OMX_COMPONENTTYPE* aHandle)
- : iHandle(aHandle)
- {
- }
-
-COmxBufferManager::COmxBuffer::COmxBuffer()
- {
- }
-
-
-COmxBufferManager::COmxBuffer* COmxBufferManager::COmxBuffer::NewL(OMX_BUFFERHEADERTYPE* aBufferHeader,
- CMMFBuffer* aBuffer)
- {
- COmxBuffer* self = new (ELeave) COmxBuffer;
- CleanupStack::PushL(self);
- self->ConstructL(aBufferHeader, aBuffer);
- CleanupStack::Pop(self);
- return self;
- }
-
-COmxBufferManager::COmxBuffer::~COmxBuffer()
- {
- if (iOwnsMmfBuffer)
- {
- delete iMmfBuffer;
- }
- }
-
-CMMFBuffer* COmxBufferManager::COmxBuffer::MmfBuffer() const
- {
- return iMmfBuffer;
- }
-
-OMX_BUFFERHEADERTYPE* COmxBufferManager::COmxBuffer::BufferHeader() const
- {
- return iBufferHeader;
- }
-
-void COmxBufferManager::COmxBuffer::SetPortObserver(MOmxILComponentIfObserver* aObserver)
- {
- iPortObserver = aObserver;
- }
-
-MOmxILComponentIfObserver* COmxBufferManager::COmxBuffer::PortObserver() const
- {
- return iPortObserver;
- }
-
-COmxBufferManager::COmxBuffer* COmxBufferManager::FindBuffer(const CMMFBuffer* aBuffer) const
- {
- COmxBuffer* buffer = NULL;
- for (TInt i=0;i<iBuffers.Count() && !buffer;i++)
- {
- if (iBuffers[i]->MmfBuffer() == aBuffer)
- {
- buffer = iBuffers[i];
- }
- }
- return buffer;
- }
-
-COmxBufferManager::COmxBuffer* COmxBufferManager::FindBuffer(OMX_BUFFERHEADERTYPE* aBuffer) const
- {
- return reinterpret_cast<COmxBuffer*>(aBuffer->pAppPrivate);
- }
-
- TInt COmxBufferManager::UseBuffer(CMMFBuffer& aBuffer, TUint aPortIndex)
- {
- if (CMMFBuffer::IsSupportedDataBuffer(aBuffer.Type()))
- {
- OMX_BUFFERHEADERTYPE* buffer;
- CMMFDataBuffer& dataBuffer = static_cast<CMMFDataBuffer&>(aBuffer);
-
- TDes8& aBufferDes = dataBuffer.Data();
- OMX_ERRORTYPE error = iHandle->UseBuffer(static_cast<OMX_HANDLETYPE>(iHandle), &buffer, aPortIndex, (void*)&aBuffer, aBufferDes.MaxLength(), const_cast<TUint8*>(aBufferDes.Ptr()));
- if (error != OMX_ErrorNone)
- {
- return ConvertOmxErrorType(error);
- }
- TRAPD(err, StoreBufferL(buffer, &aBuffer));
- return err;
- }
- else
- {
- return KErrNotSupported;
- }
- }
-
-
- CMMFBuffer* COmxBufferManager::AllocateBufferL(TUint aPortIndex,
- TUint aSizeBytes)
- {
- OMX_BUFFERHEADERTYPE* buffer;
- OMX_ERRORTYPE error = iHandle->AllocateBuffer(static_cast<OMX_HANDLETYPE>(iHandle), &buffer, aPortIndex, NULL, aSizeBytes);
- User::LeaveIfError(ConvertOmxErrorType(error));
-
- StoreBufferL(buffer,NULL); // transfers ownership
-
- return FindBuffer(buffer)->MmfBuffer();
- }
-
-
- TInt COmxBufferManager::FreeBuffer(CMMFBuffer* aBuffer)
- {
- COmxBuffer* buffer;
- for (TInt i=0;i<iBuffers.Count();i++)
- {
- buffer = iBuffers[i];
- if (buffer->MmfBuffer() == aBuffer)
- {
- iBuffers.Remove(i);
- OMX_ERRORTYPE err = iHandle->FreeBuffer(static_cast<OMX_HANDLETYPE>(iHandle), 0, buffer->BufferHeader());
- delete buffer;
- return err;
- }
- }
- return KErrNotFound;
- }
-
-void COmxBufferManager::COmxBuffer::ConstructL(OMX_BUFFERHEADERTYPE* aBufferHeader,
- CMMFBuffer* aBuffer)
- {
-
- // Now if CMMFBuffer is NULL, this is been called from allocate buffer, and we need to
- // Allocate a ptr buffer to correspond to the buffer created by OMX
- ASSERT(aBufferHeader);
- iBufferHeader = aBufferHeader;
- if (aBuffer == NULL)
- {
- TPtr8 ptr(iBufferHeader->pBuffer, iBufferHeader->nFilledLen, iBufferHeader->nAllocLen);
- CMMFBuffer* mmfBuffer = CMMFPtrBuffer::NewL(ptr);
- iMmfBuffer = mmfBuffer;
- iOwnsMmfBuffer = ETrue;
- }
- else
- {
- iMmfBuffer = aBuffer;
- }
-
- // store pointer to element in array
- iBufferHeader->pAppPrivate = this;
- }
-
-void COmxBufferManager::StoreBufferL(OMX_BUFFERHEADERTYPE* aBufferHeader,
- CMMFBuffer* aBuffer)
- {
- COmxBuffer* buf = COmxBuffer::NewL(aBufferHeader, aBuffer);
- CleanupStack::PushL(buf);
- iBuffers.AppendL(buf);
- CleanupStack::Pop(buf);
- }
-
- TInt COmxBufferManager::EmptyThisBuffer(const CMMFBuffer* aBuffer,
- MOmxILComponentIfObserver* aObserver)
- {
- if (CMMFBuffer::IsSupportedDataBuffer(aBuffer->Type()))
- {
- COmxBuffer* omxBuffer = FindBuffer(aBuffer);
- if (!omxBuffer)
- {
- return KErrNotFound;
- }
-
- omxBuffer->SetPortObserver(aObserver);
- OMX_BUFFERHEADERTYPE* bufferHeader = omxBuffer->BufferHeader();
- const CMMFDataBuffer* buf = static_cast<const CMMFDataBuffer*>(aBuffer);
- const TDesC8& des = buf->Data();
- bufferHeader->nFilledLen = des.Length();
- bufferHeader->nFlags = 0;
- if (aBuffer->LastBuffer())
- {
- bufferHeader->nFlags |= OMX_BUFFERFLAG_EOS;
- }
- else
- {
- bufferHeader->nFlags &= ~OMX_BUFFERFLAG_EOS;
- }
- return ConvertOmxErrorType(iHandle->EmptyThisBuffer(static_cast<OMX_HANDLETYPE>(iHandle), bufferHeader));
- }
- else
- {
- return KErrNotSupported;
- }
- }
-
-
- TInt COmxBufferManager::FillThisBuffer(CMMFBuffer* aBuffer,
- MOmxILComponentIfObserver* aObserver)
- {
- if (CMMFBuffer::IsSupportedDataBuffer(aBuffer->Type()))
- {
- COmxBuffer* omxBuffer = FindBuffer(aBuffer);
- if (!omxBuffer)
- {
- return KErrNotFound;
- }
- omxBuffer->SetPortObserver(aObserver);
- OMX_BUFFERHEADERTYPE* bufferHeader = omxBuffer->BufferHeader();
-
- bufferHeader->nFilledLen = 0;
- // clear last buffer flag
- bufferHeader->nFlags &= ~OMX_BUFFERFLAG_EOS;
- return ConvertOmxErrorType(iHandle->FillThisBuffer(static_cast<OMX_HANDLETYPE>(iHandle), bufferHeader));
- }
- else
- {
- return KErrNotSupported;
- }
- }
-
-
-
-COmxBufferManager::~COmxBufferManager()
- {
- for (TInt i=0;i<iBuffers.Count();i++)
- {
- COmxBuffer* omxBuffer = iBuffers[i];
- iHandle->FreeBuffer(static_cast<OMX_HANDLETYPE>(iHandle), 0, omxBuffer->BufferHeader());
- delete omxBuffer;
- }
- iBuffers.Close();
- }
-
-
-COmxCallbacks* COmxCallbacks::NewL(MOmxILComponentIfObserver& aObserver)
- {
- COmxCallbacks* self = new (ELeave) COmxCallbacks(aObserver);
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-
-void COmxCallbacks::ConstructL()
- {
- OMX_CALLBACKTYPE h =
- {
- &::EventHandler,
- &::EmptyBufferDone,
- &::FillBufferDone
- };
-
- iHandle = h;
- CActiveScheduler::Add(this);
-
- User::LeaveIfError(iMsgQueue.CreateLocal(KMaxMsgQueueEntries));
- iMsgQueue.NotifyDataAvailable(iStatus);
- SetActive();
- }
-
-COmxCallbacks::COmxCallbacks(MOmxILComponentIfObserver& aObserver)
- : CActive(EPriorityStandard),
- iParent(aObserver)
- {
- }
-
-
-COmxCallbacks::operator OMX_CALLBACKTYPE*()
- {
- return &iHandle;
- }
-
-
-void COmxCallbacks::RunL()
- {
- TOmxMessage msg;
-
- while (iMsgQueue.Receive(msg)==KErrNone)
- {
- switch (msg.iType)
- {
- case EEmptyBufferCallback:
- {
- MOmxILComponentIfObserver* callback = msg.iBuffer->PortObserver();
- const CMMFBuffer* buffer = msg.iBuffer->MmfBuffer();
- OMX_BUFFERHEADERTYPE* bufferHeader = msg.iBuffer->BufferHeader();
- TInt portIndex = static_cast<TInt>(bufferHeader->nInputPortIndex);
- User::LeaveIfError(callback->EmptyBufferDone(buffer, portIndex));
- break;
- }
-
- case EFillBufferCallback:
- {
- CMMFBuffer* mmfBuffer = msg.iBuffer->MmfBuffer();
- OMX_BUFFERHEADERTYPE* bufferHeader = msg.iBuffer->BufferHeader();
-
- if (CMMFBuffer::IsSupportedDataBuffer(mmfBuffer->Type()))
- {
- CMMFDataBuffer* dataBuffer = static_cast<CMMFDataBuffer*>(mmfBuffer);
- TDes8& aBufferDes = dataBuffer->Data();
- aBufferDes.SetLength(bufferHeader->nFilledLen);
- mmfBuffer->SetLastBuffer(bufferHeader->nFlags & OMX_BUFFERFLAG_EOS);
- }
- else
- {
- ASSERT(EFalse);
- }
- MOmxILComponentIfObserver* callback = msg.iBuffer->PortObserver();
- bufferHeader = msg.iBuffer->BufferHeader();
- TInt portIndex = static_cast<TInt>(bufferHeader->nOutputPortIndex);
- User::LeaveIfError(callback->FillBufferDone(mmfBuffer, portIndex));
- break;
- }
- case EEventCallback:
- {
- TInt err = KErrNone;
- err = iParent.EventHandler(msg.iEventParams.iEvent,
- msg.iEventParams.iData1,
- msg.iEventParams.iData2,
- msg.iEventParams.iExtraData);
- if (err != KErrNone)
- {
- // Very possible the event is not supported by the IL Client.
- // Ignore for now
- // ASSERT(EFalse); // Uncomment this line if interested in catching this case on debug mode.
- }
- break;
- }
- default:
- {
- // This is an invalid state
- ASSERT(EFalse);
- }
- };
- }
-
- // setup for next callbacks
- iStatus = KRequestPending;
- iMsgQueue.NotifyDataAvailable(iStatus);
- SetActive();
- }
-
-COmxCallbacks::~COmxCallbacks()
- {
- Cancel();
- iMsgQueue.Close();
- }
-
-
-void COmxCallbacks::DoCancel()
- {
- if (iMsgQueue.Handle()!=NULL)
- {
- iMsgQueue.CancelDataAvailable();
- }
- }
-
-
-TInt COmxCallbacks::FillBufferDone(OMX_HANDLETYPE aComponent,
- COmxBufferManager::COmxBuffer* aBuffer)
- {
- TOmxMessage message;
- message.iType = EFillBufferCallback;
- message.iComponent = aComponent;
- message.iBuffer = aBuffer;
- return iMsgQueue.Send(message);
- }
-
-TInt COmxCallbacks::EmptyBufferDone(OMX_HANDLETYPE aComponent,
- COmxBufferManager::COmxBuffer* aBuffer)
- {
- TOmxMessage message;
- message.iType = EEmptyBufferCallback;
- message.iComponent = aComponent;
- message.iBuffer = aBuffer;
- return iMsgQueue.Send(message);
- }
-
-TInt COmxCallbacks::EventHandler(OMX_HANDLETYPE aComponent,
- const TEventParams& aEventParams)
- {
- TOmxMessage message;
- message.iType = EEventCallback;
- message.iComponent = aComponent;
- message.iEventParams = aEventParams;
- return iMsgQueue.Send(message);
- }
-
-
-
-OMX_ERRORTYPE EventHandler(OMX_OUT OMX_HANDLETYPE aComponent,
- OMX_OUT TAny* aAppData,
- OMX_OUT OMX_EVENTTYPE aEvent,
- OMX_OUT TUint32 aData1,
- OMX_OUT TUint32 aData2,
- OMX_OUT TAny* aExtra)
- {
- COmxCallbacks::TEventParams eventParams;
- eventParams.iEvent = aEvent;
- eventParams.iData1 = aData1;
- eventParams.iData2 = aData2;
- eventParams.iExtraData = aExtra;
- TInt error = static_cast<COmxCallbacks*>(aAppData)->EventHandler(aComponent, eventParams);
- return ConvertSymbianErrorType(error);
- }
-
-OMX_ERRORTYPE EmptyBufferDone(OMX_HANDLETYPE aComponent,
- TAny* aAppData,
- OMX_BUFFERHEADERTYPE* aBuffer)
- {
- COmxBufferManager::COmxBuffer* buffer = static_cast<COmxBufferManager::COmxBuffer*>(aBuffer->pAppPrivate);
- TInt error = static_cast<COmxCallbacks*>(aAppData)->EmptyBufferDone(aComponent, buffer);
- return ConvertSymbianErrorType(error);
- }
-
-OMX_ERRORTYPE FillBufferDone(OMX_HANDLETYPE aComponent,
- TAny* aAppData,
- OMX_BUFFERHEADERTYPE* aBuffer)
- {
- COmxBufferManager::COmxBuffer* buffer = static_cast<COmxBufferManager::COmxBuffer*>(aBuffer->pAppPrivate);
- TInt error = static_cast<COmxCallbacks*>(aAppData)->FillBufferDone(aComponent, buffer);
- return ConvertSymbianErrorType(error);
- }
-
--- a/omxil/mmilapi/refomxil/src/omxilgenericilif/omxilgenericportilif.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,180 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include "omxilgenericportilif.h"
-
-/**
-class COmxILGenericPortILIF
-Concrete implementation of the MILComponentPortIf that encapsulates the
-component's port specific behaviour according to OpenMAX specification.
-*/
-COmxILGenericPortILIF::COmxILGenericPortILIF(COmxILGenericILIF& aParent,
- TPortDirection aPortDirection,
- TInt aIndex)
- :
- iPortDirection (aPortDirection),
- iPortIndex (aIndex),
- iPortComponent(aParent)
- {
- }
-
-COmxILGenericPortILIF* COmxILGenericPortILIF::NewL(COmxILGenericILIF& aParent,
- TPortDirection aPortDirection,
- TInt aIndex)
- {
- COmxILGenericPortILIF* self = new (ELeave) COmxILGenericPortILIF(aParent, aPortDirection, aIndex);
- return self;
- }
-
-TInt COmxILGenericPortILIF::FillThisBuffer(CMMFBuffer& aBuffer)
- {
- if (iPortDirection == EDirOutput)
- {
- return iPortComponent.OmxFillThisBuffer(&aBuffer, &iPortComponent);
- }
- else
- {
- return KErrCorrupt;
- }
- }
-
-TInt COmxILGenericPortILIF::EmptyThisBuffer(const CMMFBuffer& aBuffer)
- {
- if (iPortDirection == EDirInput)
- {
- return iPortComponent.OmxEmptyThisBuffer(&aBuffer, &iPortComponent);
- }
- else
- {
- return KErrCorrupt;
- }
- }
-
-TInt COmxILGenericPortILIF::TunnelRequest(MILComponentPortIf* aPort)
- {
- TInt error = KErrNotSupported;
-
- if (aPort)
- // This is the connet tunnel request
- {
- TPortDirection otherPortDir = aPort->PortDirection();
- COmxILGenericILIF* otherPortComponent = static_cast<COmxILGenericILIF*>(aPort->PortComponent());
-
- if (iPortDirection != otherPortDir)
- {
- if (iPortDirection == EDirInput)
- {
- error = iPortComponent.OmxComponentTunnelRequest(iPortIndex,
- otherPortComponent->OmxHandle(),
- aPort->PortIndex());
-
- }
- else
- {
- error = otherPortComponent->OmxComponentTunnelRequest(aPort->PortIndex(),
- iPortComponent.OmxHandle(),
- iPortIndex);
- }
-
- if (error == KErrNone)
- {
- iTunneledPort = static_cast<COmxILGenericPortILIF*>(aPort);
- iTunneledPort->SetPortConnectedTo(this);
- }
- }
- }
- else
- // This is the disconnet tunnel request
- {
- TPortDirection otherPortDir = iTunneledPort->PortDirection();
- COmxILGenericILIF* otherPortComponent = static_cast<COmxILGenericILIF*> (iTunneledPort->PortComponent());
-
- if (iPortDirection != otherPortDir)
- {
- if (iPortDirection == EDirInput)
- {
- error = iPortComponent.OmxComponentDisconnectTunnel(iPortIndex,
- otherPortComponent->OmxHandle(),
- iTunneledPort->PortIndex());
- }
- else
- {
- error = otherPortComponent->OmxComponentDisconnectTunnel(iTunneledPort->PortIndex(),
- iPortComponent.OmxHandle(),
- iPortIndex);
- }
-
- if (error == KErrNone)
- {
- iTunneledPort->SetPortConnectedTo(NULL);
- iTunneledPort = NULL;
- }
- }
- }
-
- return error;
- }
-
-TInt COmxILGenericPortILIF::PortIndex() const
- {
- return iPortIndex;
- }
-
-TPortDirection COmxILGenericPortILIF::PortDirection() const
- {
- return iPortDirection;
- }
-
-CMMFBuffer* COmxILGenericPortILIF::CreateBufferL(TInt aBufferSize)
- {
- return iPortComponent.OmxAllocateBufferL(iPortIndex, aBufferSize);
- }
-
-TInt COmxILGenericPortILIF::UseBuffer(CMMFBuffer& aBuffer)
- {
- return iPortComponent.OmxUseBuffer(&aBuffer, iPortIndex);
- }
-
-TInt COmxILGenericPortILIF::FreeBuffer(CMMFBuffer* aBuffer)
- {
- return iPortComponent.OmxFreeBuffer(aBuffer);
- }
-
-TInt COmxILGenericPortILIF::FlushPort()
- {
- return iPortComponent.OmxSendCommand(OMX_CommandFlush, iPortIndex, NULL);
- }
-
-TInt COmxILGenericPortILIF::EnablePort()
- {
- return iPortComponent.OmxSendCommand(OMX_CommandPortEnable, iPortIndex, NULL);
- }
-
-TInt COmxILGenericPortILIF::DisablePort()
- {
- return iPortComponent.OmxSendCommand(OMX_CommandPortDisable, iPortIndex, NULL);
- }
-
-MILComponentIf* COmxILGenericPortILIF::PortComponent() const
- {
- return &iPortComponent;
- }
-
-void COmxILGenericPortILIF::SetPortConnectedTo(COmxILGenericPortILIF* aPort)
- {
- iTunneledPort = aPort;
- }
-
-
--- a/omxil/mmilapi/unittest/bwins/omxildummybaseilif.def Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-EXPORTS
- ??0COmxILDummyBaseILIF@@IAE@XZ @ 1 NONAME ; COmxILDummyBaseILIF::COmxILDummyBaseILIF(void)
- ??1COmxILDummyBaseILIF@@UAE@XZ @ 2 NONAME ; COmxILDummyBaseILIF::~COmxILDummyBaseILIF(void)
- ?ComponentRoleEnum@COmxILDummyBaseILIF@@UBEHAAVTPtr8@@K@Z @ 3 NONAME ; int COmxILDummyBaseILIF::ComponentRoleEnum(class TPtr8 &, unsigned long) const
- ?CreateComponentL@COmxILDummyBaseILIF@@UAEXABVTDesC8@@AAVMILIfObserver@@@Z @ 4 NONAME ; void COmxILDummyBaseILIF::CreateComponentL(class TDesC8 const &, class MILIfObserver &)
- ?CreateComponentL@COmxILDummyBaseILIF@@UAEXABVTUid@@AAVMILIfObserver@@@Z @ 5 NONAME ; void COmxILDummyBaseILIF::CreateComponentL(class TUid const &, class MILIfObserver &)
- ?CustomInterface@COmxILDummyBaseILIF@@UAEPAXVTUid@@@Z @ 6 NONAME ; void * COmxILDummyBaseILIF::CustomInterface(class TUid)
- ?EmptyBufferDone@COmxILDummyBaseILIF@@UAEHPBVCMMFBuffer@@H@Z @ 7 NONAME ; int COmxILDummyBaseILIF::EmptyBufferDone(class CMMFBuffer const *, int)
- ?EventHandler@COmxILDummyBaseILIF@@UAEHW4OMX_EVENTTYPE@@KKPAX@Z @ 8 NONAME ; int COmxILDummyBaseILIF::EventHandler(enum OMX_EVENTTYPE, unsigned long, unsigned long, void *)
- ?Execute@COmxILDummyBaseILIF@@UAEHXZ @ 9 NONAME ; int COmxILDummyBaseILIF::Execute(void)
- ?FillBufferDone@COmxILDummyBaseILIF@@UAEHPAVCMMFBuffer@@H@Z @ 10 NONAME ; int COmxILDummyBaseILIF::FillBufferDone(class CMMFBuffer *, int)
- ?FlushAllPorts@COmxILDummyBaseILIF@@UAEHXZ @ 11 NONAME ; int COmxILDummyBaseILIF::FlushAllPorts(void)
- ?GetComponentIfRole@COmxILDummyBaseILIF@@UBEHAAVTDes8@@@Z @ 12 NONAME ; int COmxILDummyBaseILIF::GetComponentIfRole(class TDes8 &) const
- ?GetComponentIfRole@COmxILDummyBaseILIF@@UBEHAAVTUid@@@Z @ 13 NONAME ; int COmxILDummyBaseILIF::GetComponentIfRole(class TUid &) const
- ?GetComponentInputPorts@COmxILDummyBaseILIF@@UBEHAAV?$RPointerArray@VMILComponentPortIf@@@@@Z @ 14 NONAME ; int COmxILDummyBaseILIF::GetComponentInputPorts(class RPointerArray<class MILComponentPortIf> &) const
- ?GetComponentOutputPorts@COmxILDummyBaseILIF@@UBEHAAV?$RPointerArray@VMILComponentPortIf@@@@@Z @ 15 NONAME ; int COmxILDummyBaseILIF::GetComponentOutputPorts(class RPointerArray<class MILComponentPortIf> &) const
- ?GetComponentVersion@COmxILDummyBaseILIF@@UBEHAAVTILComponentVersion@@@Z @ 16 NONAME ; int COmxILDummyBaseILIF::GetComponentVersion(class TILComponentVersion &) const
- ?GetConfig@COmxILDummyBaseILIF@@UBEHAAVTILStruct@@PBVMILComponentPortIf@@@Z @ 17 NONAME ; int COmxILDummyBaseILIF::GetConfig(class TILStruct &, class MILComponentPortIf const *) const
- ?GetExtConfig@COmxILDummyBaseILIF@@UBEHABVTDesC8@@AAVTILStruct@@PBVMILComponentPortIf@@@Z @ 18 NONAME ; int COmxILDummyBaseILIF::GetExtConfig(class TDesC8 const &, class TILStruct &, class MILComponentPortIf const *) const
- ?GetState@COmxILDummyBaseILIF@@UBEHAAW4TILComponentState@@@Z @ 19 NONAME ; int COmxILDummyBaseILIF::GetState(enum TILComponentState &) const
- ?Initialize@COmxILDummyBaseILIF@@UAEHXZ @ 20 NONAME ; int COmxILDummyBaseILIF::Initialize(void)
- ?OmxGetConfig@COmxILDummyBaseILIF@@IBEHW4OMX_INDEXTYPE@@PAX@Z @ 21 NONAME ; int COmxILDummyBaseILIF::OmxGetConfig(enum OMX_INDEXTYPE, void *) const
- ?OmxGetExtensionIndex@COmxILDummyBaseILIF@@IBEHABVTDesC8@@PAW4OMX_INDEXTYPE@@@Z @ 22 NONAME ; int COmxILDummyBaseILIF::OmxGetExtensionIndex(class TDesC8 const &, enum OMX_INDEXTYPE *) const
- ?OmxGetParameter@COmxILDummyBaseILIF@@IBEHW4OMX_INDEXTYPE@@PAX@Z @ 23 NONAME ; int COmxILDummyBaseILIF::OmxGetParameter(enum OMX_INDEXTYPE, void *) const
- ?OmxSetConfig@COmxILDummyBaseILIF@@IAEHW4OMX_INDEXTYPE@@PAX@Z @ 24 NONAME ; int COmxILDummyBaseILIF::OmxSetConfig(enum OMX_INDEXTYPE, void *)
- ?OmxSetParameter@COmxILDummyBaseILIF@@IAEHW4OMX_INDEXTYPE@@PAX@Z @ 25 NONAME ; int COmxILDummyBaseILIF::OmxSetParameter(enum OMX_INDEXTYPE, void *)
- ?Pause@COmxILDummyBaseILIF@@UAEHXZ @ 26 NONAME ; int COmxILDummyBaseILIF::Pause(void)
- ?ReleaseComponent@COmxILDummyBaseILIF@@UAEXXZ @ 27 NONAME ; void COmxILDummyBaseILIF::ReleaseComponent(void)
- ?SendCommand@COmxILDummyBaseILIF@@UAEHABVTILCommand@@@Z @ 28 NONAME ; int COmxILDummyBaseILIF::SendCommand(class TILCommand const &)
- ?SetComponentIfRole@COmxILDummyBaseILIF@@UAEHABVTDesC8@@@Z @ 29 NONAME ; int COmxILDummyBaseILIF::SetComponentIfRole(class TDesC8 const &)
- ?SetComponentIfRole@COmxILDummyBaseILIF@@UAEHABVTUid@@@Z @ 30 NONAME ; int COmxILDummyBaseILIF::SetComponentIfRole(class TUid const &)
- ?SetConfig@COmxILDummyBaseILIF@@UAEHABVTILStruct@@PBVMILComponentPortIf@@@Z @ 31 NONAME ; int COmxILDummyBaseILIF::SetConfig(class TILStruct const &, class MILComponentPortIf const *)
- ?SetExtConfig@COmxILDummyBaseILIF@@UAEHABVTDesC8@@ABVTILStruct@@PBVMILComponentPortIf@@@Z @ 32 NONAME ; int COmxILDummyBaseILIF::SetExtConfig(class TDesC8 const &, class TILStruct const &, class MILComponentPortIf const *)
- ?Stop@COmxILDummyBaseILIF@@UAEHXZ @ 33 NONAME ; int COmxILDummyBaseILIF::Stop(void)
- ?UnInitialize@COmxILDummyBaseILIF@@UAEHXZ @ 34 NONAME ; int COmxILDummyBaseILIF::UnInitialize(void)
-
--- a/omxil/mmilapi/unittest/bwins/tsu_milif_omxilif.def Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
- ?NewTestSuiteL@CTestSuiteMILIF@@SAPAV1@XZ @ 1 NONAME ; class CTestSuiteMILIF * CTestSuiteMILIF::NewTestSuiteL(void)
-
--- a/omxil/mmilapi/unittest/eabi/omxildummybaseilif.def Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-EXPORTS
- _ZN19COmxILDummyBaseILIF10InitializeEv @ 1 NONAME
- _ZN19COmxILDummyBaseILIF11SendCommandERK10TILCommand @ 2 NONAME
- _ZN19COmxILDummyBaseILIF12EventHandlerE13OMX_EVENTTYPEmmPv @ 3 NONAME
- _ZN19COmxILDummyBaseILIF12OmxSetConfigE13OMX_INDEXTYPEPv @ 4 NONAME
- _ZN19COmxILDummyBaseILIF12SetExtConfigERK6TDesC8RK9TILStructPK18MILComponentPortIf @ 5 NONAME
- _ZN19COmxILDummyBaseILIF12UnInitializeEv @ 6 NONAME
- _ZN19COmxILDummyBaseILIF13FlushAllPortsEv @ 7 NONAME
- _ZN19COmxILDummyBaseILIF14FillBufferDoneEP10CMMFBufferi @ 8 NONAME
- _ZN19COmxILDummyBaseILIF15CustomInterfaceE4TUid @ 9 NONAME
- _ZN19COmxILDummyBaseILIF15EmptyBufferDoneEPK10CMMFBufferi @ 10 NONAME
- _ZN19COmxILDummyBaseILIF15OmxSetParameterE13OMX_INDEXTYPEPv @ 11 NONAME
- _ZN19COmxILDummyBaseILIF16CreateComponentLERK4TUidR13MILIfObserver @ 12 NONAME
- _ZN19COmxILDummyBaseILIF16CreateComponentLERK6TDesC8R13MILIfObserver @ 13 NONAME
- _ZN19COmxILDummyBaseILIF16ReleaseComponentEv @ 14 NONAME
- _ZN19COmxILDummyBaseILIF18SetComponentIfRoleERK4TUid @ 15 NONAME
- _ZN19COmxILDummyBaseILIF18SetComponentIfRoleERK6TDesC8 @ 16 NONAME
- _ZN19COmxILDummyBaseILIF4StopEv @ 17 NONAME
- _ZN19COmxILDummyBaseILIF5PauseEv @ 18 NONAME
- _ZN19COmxILDummyBaseILIF7ExecuteEv @ 19 NONAME
- _ZN19COmxILDummyBaseILIF9SetConfigERK9TILStructPK18MILComponentPortIf @ 20 NONAME
- _ZN19COmxILDummyBaseILIFC1Ev @ 21 NONAME
- _ZN19COmxILDummyBaseILIFC2Ev @ 22 NONAME
- _ZN19COmxILDummyBaseILIFD0Ev @ 23 NONAME
- _ZN19COmxILDummyBaseILIFD1Ev @ 24 NONAME
- _ZN19COmxILDummyBaseILIFD2Ev @ 25 NONAME
- _ZNK19COmxILDummyBaseILIF12GetExtConfigERK6TDesC8R9TILStructPK18MILComponentPortIf @ 26 NONAME
- _ZNK19COmxILDummyBaseILIF12OmxGetConfigE13OMX_INDEXTYPEPv @ 27 NONAME
- _ZNK19COmxILDummyBaseILIF15OmxGetParameterE13OMX_INDEXTYPEPv @ 28 NONAME
- _ZNK19COmxILDummyBaseILIF17ComponentRoleEnumER5TPtr8m @ 29 NONAME
- _ZNK19COmxILDummyBaseILIF18GetComponentIfRoleER4TUid @ 30 NONAME
- _ZNK19COmxILDummyBaseILIF18GetComponentIfRoleER5TDes8 @ 31 NONAME
- _ZNK19COmxILDummyBaseILIF19GetComponentVersionER19TILComponentVersion @ 32 NONAME
- _ZNK19COmxILDummyBaseILIF20OmxGetExtensionIndexERK6TDesC8P13OMX_INDEXTYPE @ 33 NONAME
- _ZNK19COmxILDummyBaseILIF22GetComponentInputPortsER13RPointerArrayI18MILComponentPortIfE @ 34 NONAME
- _ZNK19COmxILDummyBaseILIF23GetComponentOutputPortsER13RPointerArrayI18MILComponentPortIfE @ 35 NONAME
- _ZNK19COmxILDummyBaseILIF8GetStateER17TILComponentState @ 36 NONAME
- _ZNK19COmxILDummyBaseILIF9GetConfigER9TILStructPK18MILComponentPortIf @ 37 NONAME
- _ZTI13COmxCallbacks @ 38 NONAME
- _ZTI17COmxBufferManager @ 39 NONAME
- _ZTI19COmxILDummyBaseILIF @ 40 NONAME
- _ZTI23COmxILDummyBasePortILIF @ 41 NONAME
- _ZTIN17COmxBufferManager10COmxBufferE @ 42 NONAME
- _ZTIN19COmxILDummyBaseILIF5CBodyE @ 43 NONAME
- _ZTV13COmxCallbacks @ 44 NONAME
- _ZTV17COmxBufferManager @ 45 NONAME
- _ZTV19COmxILDummyBaseILIF @ 46 NONAME
- _ZTV23COmxILDummyBasePortILIF @ 47 NONAME
- _ZTVN17COmxBufferManager10COmxBufferE @ 48 NONAME
- _ZTVN19COmxILDummyBaseILIF5CBodyE @ 49 NONAME
- _ZThn12_N19COmxILDummyBaseILIF12EventHandlerE13OMX_EVENTTYPEmmPv @ 50 NONAME
- _ZThn12_N19COmxILDummyBaseILIF14FillBufferDoneEP10CMMFBufferi @ 51 NONAME
- _ZThn12_N19COmxILDummyBaseILIF15EmptyBufferDoneEPK10CMMFBufferi @ 52 NONAME
- _ZThn4_N19COmxILDummyBaseILIF10InitializeEv @ 53 NONAME
- _ZThn4_N19COmxILDummyBaseILIF11SendCommandERK10TILCommand @ 54 NONAME
- _ZThn4_N19COmxILDummyBaseILIF12SetExtConfigERK6TDesC8RK9TILStructPK18MILComponentPortIf @ 55 NONAME
- _ZThn4_N19COmxILDummyBaseILIF12UnInitializeEv @ 56 NONAME
- _ZThn4_N19COmxILDummyBaseILIF13FlushAllPortsEv @ 57 NONAME
- _ZThn4_N19COmxILDummyBaseILIF15CustomInterfaceE4TUid @ 58 NONAME
- _ZThn4_N19COmxILDummyBaseILIF16CreateComponentLERK4TUidR13MILIfObserver @ 59 NONAME
- _ZThn4_N19COmxILDummyBaseILIF16CreateComponentLERK6TDesC8R13MILIfObserver @ 60 NONAME
- _ZThn4_N19COmxILDummyBaseILIF16ReleaseComponentEv @ 61 NONAME
- _ZThn4_N19COmxILDummyBaseILIF18SetComponentIfRoleERK4TUid @ 62 NONAME
- _ZThn4_N19COmxILDummyBaseILIF18SetComponentIfRoleERK6TDesC8 @ 63 NONAME
- _ZThn4_N19COmxILDummyBaseILIF4StopEv @ 64 NONAME
- _ZThn4_N19COmxILDummyBaseILIF5PauseEv @ 65 NONAME
- _ZThn4_N19COmxILDummyBaseILIF7ExecuteEv @ 66 NONAME
- _ZThn4_N19COmxILDummyBaseILIF9SetConfigERK9TILStructPK18MILComponentPortIf @ 67 NONAME
- _ZThn4_NK19COmxILDummyBaseILIF12GetExtConfigERK6TDesC8R9TILStructPK18MILComponentPortIf @ 68 NONAME
- _ZThn4_NK19COmxILDummyBaseILIF17ComponentRoleEnumER5TPtr8m @ 69 NONAME
- _ZThn4_NK19COmxILDummyBaseILIF18GetComponentIfRoleER4TUid @ 70 NONAME
- _ZThn4_NK19COmxILDummyBaseILIF18GetComponentIfRoleER5TDes8 @ 71 NONAME
- _ZThn4_NK19COmxILDummyBaseILIF19GetComponentVersionER19TILComponentVersion @ 72 NONAME
- _ZThn4_NK19COmxILDummyBaseILIF22GetComponentInputPortsER13RPointerArrayI18MILComponentPortIfE @ 73 NONAME
- _ZThn4_NK19COmxILDummyBaseILIF23GetComponentOutputPortsER13RPointerArrayI18MILComponentPortIfE @ 74 NONAME
- _ZThn4_NK19COmxILDummyBaseILIF8GetStateER17TILComponentState @ 75 NONAME
- _ZThn4_NK19COmxILDummyBaseILIF9GetConfigER9TILStructPK18MILComponentPortIf @ 76 NONAME
-
--- a/omxil/mmilapi/unittest/eabi/tsu_milif_omxilif.def Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-EXPORTS
- _ZN15CTestSuiteMILIF13NewTestSuiteLEv @ 1 NONAME
- _ZTI15CTestSuiteMILIF @ 2 NONAME
- _ZTI18RTestStepMILIFBase @ 3 NONAME
- _ZTI19RTestStepMILIFPorts @ 4 NONAME
- _ZTI20RTestStepMILIFConfig @ 5 NONAME
- _ZTI20RTestStepMILIFStates @ 6 NONAME
- _ZTI21RTestStepMILIFVersion @ 7 NONAME ABSENT
- _ZTI22RTestStepMILIFCommands @ 8 NONAME
- _ZTI24RTestStepMILIFExtensions @ 9 NONAME
- _ZTI24RTestStepMILIFTunnelling @ 10 NONAME ABSENT
- _ZTI27RTestStepMILIFComponentRole @ 11 NONAME
- _ZTV15CTestSuiteMILIF @ 12 NONAME
- _ZTV18RTestStepMILIFBase @ 13 NONAME
- _ZTV19RTestStepMILIFPorts @ 14 NONAME
- _ZTV20RTestStepMILIFConfig @ 15 NONAME
- _ZTV20RTestStepMILIFStates @ 16 NONAME
- _ZTV21RTestStepMILIFVersion @ 17 NONAME ABSENT
- _ZTV22RTestStepMILIFCommands @ 18 NONAME
- _ZTV24RTestStepMILIFExtensions @ 19 NONAME
- _ZTV24RTestStepMILIFTunnelling @ 20 NONAME ABSENT
- _ZTV27RTestStepMILIFComponentRole @ 21 NONAME
-
--- a/omxil/mmilapi/unittest/group/bld.inf Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifdef SYMBIAN_MULTIMEDIA_A3FDEVSOUND
-
-PRJ_TESTMMPFILES
-../mmpfiles/omxildummybaseilif.mmp
-../mmpfiles/omxildummyaudiodecilif.mmp
-../mmpfiles/omxildummyaudiodec.mmp
-../mmpfiles/dummypcmrenderer.mmp
-
-../mmpfiles/omxilvorbdechwdevice.mmp
-
-../mmpfiles/tsu_milif_omxilif.mmp
-
-PRJ_TESTEXPORTS
-../scripts/tsu_milif_omxilif.script c:/omxil/tsu_milif_omxilif.script
-
-// DEF FILES
-
-// IBY FILE
-milifunittests.iby /epoc32/rom/include/milifunittests.iby
-
-#endif // SYMBIAN_MULTIMEDIA_A3FDEVSOUND
-
-// End of file
--- a/omxil/mmilapi/unittest/group/component_test.pkg Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-"\sf\mm\omxil\mmilapi\unittest\scripts\tsu_milif_omxilif.script"-"c:\omxil\tsu_milif_omxilif.script"
--- a/omxil/mmilapi/unittest/group/milifunittests.iby Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef MILIFUNITTESTS_IBY
-#define MILIFUNITTESTS_IBY
-
-#ifdef SYMBIAN_MULTIMEDIA_A3FDEVSOUND
-
-// Dummy Pcm Renderer
-ECOM_PLUGIN(dummypcmrenderer.dll, dummypcmrenderer.rsc)
-
-// OMX IL Dummy Audio Decoder
-ECOM_PLUGIN(omxildummyaudiodec.dll, omxildummyaudiodec.rsc)
-
-// OMX IL Dummy Audio Decoder IL Interface
-ECOM_PLUGIN(omxildummyaudiodecilif.dll, omxildummyaudiodecilif.rsc)
-
-// OMX IL Dummy Base IL Interface
-file=ABI_DIR\BUILD_DIR\omxildummybaseilif.dll System\Libs\omxildummybaseilif.dll
-
-// OMX IL Vorbis Decoder HwDevice
-ECOM_PLUGIN(omxilvorbdechwdevice.dll, omxilvorbdechwdevice.rsc)
-
-// OMX IL MILIF Unit tests
-file=ABI_DIR\BUILD_DIR\tsu_milif_omxilif.dll System\Libs\tsu_milif_omxilif.dll
-
-// scripts
-data=EPOCROOT##epoc32\data\c\omxil\tsu_milif_omxilif.script \omxil\tsu_milif_omxilif.script
-
-#endif // SYMBIAN_MULTIMEDIA_A3FDEVSOUND
-
-#endif // MILIFUNITTESTS_IBY
\ No newline at end of file
--- a/omxil/mmilapi/unittest/inc/ilcomponentif.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef ILCOMPONENTIF_H
-#define ILCOMPONENTIF_H
-
-#include <e32base.h>
-#include <ecom/ecom.h>
-
-#include "milcomponentif.h"
-
-/**
- Generic ECom plugin class for creating MILComponentIf instances.
- @see MILComponentIf
-*/
-class CILComponentIf : public CBase,
- public MILComponentIf
- {
-public:
- inline static CILComponentIf* CreateImplementationL(TUid aImplementationUid);
-
- inline virtual ~CILComponentIf();
-
-private:
- TUid iDtor_ID_Key;
- };
-
-#include "ilcomponentif.inl"
-
-#endif // ILCOMPONENTIF_H
--- a/omxil/mmilapi/unittest/inc/ilcomponentif.inl Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef ILCOMPONENTIF_INL
-#define ILCOMPONENTIF_INL
-
-#include <ecom/ecom.h>
-
-#include "ilcomponentif.h"
-
-/**
- Create a CILComponentIf object with a known implementation Uid.
- Asks ECOM plugin framework to instantiate this concret plugin implementation.
- Will leave if it is not found (KErrNotFound).
- @param aUid - The Uid of a plugin implementation
- @return An instantiated CILComponentIf derived object from ECom.
- */
-inline CILComponentIf* CILComponentIf::CreateImplementationL(TUid aImplementationUid)
- {
- TAny* ptr = REComSession::CreateImplementationL(aImplementationUid , _FOFF(CILComponentIf, iDtor_ID_Key));
- return static_cast<CILComponentIf*>(ptr);
- }
-
-/**
- Interface base class destructor
-*/
-inline CILComponentIf::~CILComponentIf()
- {
- // Destroy any instance variables and then inform ecom that this specific
- // instance of the interface has been destroyed.
- REComSession::DestroyedImplementation(iDtor_ID_Key);
- }
-
-#endif // ILCOMPONENTIF_INL
--- a/omxil/mmilapi/unittest/inc/iltestuids.hrh Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef ILTESTUIDS_HRH
-#define ILTESTUIDS_HRH
-
-#define KSharedLibraryUidDefine 0x1000008D //standard UID for dlls
-#define KECOMPluginUidDefine 0x10009D8D //standard UID for ECOM plugins
-
-#define KUidOmxILVorbDecHwDeviceDll 0x10285C12
-#define KUidOmxILVorbDecHwDevice 0x10285C13
-
-#define KUidDummyPcmRendererMILIFPluginDll 0x10285C16
-#define KUidDummyPcmRendererMILIFPlugin 0x10285C17
-
-#define KUidOmxILDummyBaseMILIFPluginDll 0x10285C18
-#define KUidOmxILDummyAudioDecMILIFPluginDll 0x10285C19
-#define KUidOmxILDummyAudioDecMILIFPlugin 0x10285C1A
-
-#define KUidOmxILDummyAudioDecDll 0x10285C1B
-#define KUidOmxILDummyAudioDec 0x10285C1C
-
-#define KUidMILIFTestSuite 0x10285C1D
-#define KUidMILIFAacTestSuite 0x10287048
-
-#endif // ILTESTUIDS_HRH
-
--- a/omxil/mmilapi/unittest/inc/omxildummybaseilif.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef OMXILDUMMYBASEILIF_H
-#define OMXILDUMMYBASEILIF_H
-
-#include <e32base.h>
-#include <openmax/il/khronos/v1_x/OMX_Component.h>
-
-#include "ilcomponentif.h"
-#include "momxilcomponentifobserver.h"
-
-/**
-Test component.
-Implementation of the generic parts of the MILIF API specific to OpenMAX IL specification when implemented as a plugin.
-*/
-class COmxILDummyBaseILIF : public CILComponentIf,
- public MOmxILComponentIfObserver
- {
-friend class COmxILDummyBasePortILIF;
-
-public:
- class CBody;
-
-public:
-
- // from MILComponentIf
- IMPORT_C void CreateComponentL(const TDesC8& aComponentName, MILIfObserver& aComponentIfObserver);
- IMPORT_C void CreateComponentL(const TUid& aUid, MILIfObserver& aComponentIfObserver);
- IMPORT_C void ReleaseComponent();
- IMPORT_C TInt GetComponentInputPorts(RPointerArray<MILComponentPortIf>& aComponentPorts) const;
- IMPORT_C TInt GetComponentOutputPorts(RPointerArray<MILComponentPortIf>& aComponentPorts) const;
- IMPORT_C TInt SetConfig(const TILStruct& aConfig, const MILComponentPortIf* aComponentPort);
- IMPORT_C TInt GetConfig(TILStruct& aConfig, const MILComponentPortIf* aComponentPort) const;
- IMPORT_C TInt Initialize();
- IMPORT_C TInt Execute();
- IMPORT_C TInt Pause();
- IMPORT_C TInt Stop();
- IMPORT_C TInt UnInitialize();
- IMPORT_C TInt GetState(TILComponentState& aState) const;
- IMPORT_C TInt SendCommand(const TILCommand& aCommand);
- IMPORT_C TInt FlushAllPorts();
- IMPORT_C TInt ComponentRoleEnum(TPtr8& aComponentRole, TUint32 aIndex) const;
- IMPORT_C TInt GetComponentVersion(TILComponentVersion& aVersion) const;
- IMPORT_C TInt SetComponentIfRole(const TUid& aComponentRole);
- IMPORT_C TInt SetComponentIfRole(const TDesC8& aComponentRole);
- IMPORT_C TInt GetComponentIfRole(TUid& aComponentRole) const;
- IMPORT_C TInt GetComponentIfRole(TDes8& aComponentRole) const;
- IMPORT_C TInt SetExtConfig(const TDesC8& aParameterName, const TILStruct& aConfig, const MILComponentPortIf* aComponentPort);
- IMPORT_C TInt GetExtConfig(const TDesC8& aParameterName, TILStruct& aConfig, const MILComponentPortIf* aComponentPort) const;
- IMPORT_C TAny* CustomInterface(TUid aUid);
-
- // from MOmxILComponentIfObserver
- IMPORT_C TInt FillBufferDone(CMMFBuffer* aBuffer,TInt aPortIndex);
- IMPORT_C TInt EmptyBufferDone(const CMMFBuffer* aBuffer,TInt aPortIndex);
- IMPORT_C TInt EventHandler(OMX_EVENTTYPE aEvent, TUint32 aData1, TUint32 aData2, TAny* aExtraInfo);
-
- IMPORT_C ~COmxILDummyBaseILIF();
-
-protected:
- IMPORT_C COmxILDummyBaseILIF();
-
- IMPORT_C TInt OmxGetParameter(OMX_INDEXTYPE aParamIndex, TAny* aComponentParameterStructure) const;
- IMPORT_C TInt OmxSetParameter(OMX_INDEXTYPE aParamIndex, TAny* aComponentParameterStructure);
- IMPORT_C TInt OmxGetConfig(OMX_INDEXTYPE aConfigIndex, TAny* aValue) const;
- IMPORT_C TInt OmxSetConfig(OMX_INDEXTYPE aConfigIndex, TAny* aValue);
- IMPORT_C TInt OmxGetExtensionIndex(const TDesC8& aParameterName, OMX_INDEXTYPE* aIndexType) const;
-
-private:
- // Internal implementation. Only meant to be used by the component's port interface.
- TInt OmxSendCommand(OMX_COMMANDTYPE aCmd, TUint32 aParam1, TAny* aCmdData);
- TInt OmxComponentTunnelRequest(TUint32 aPortInput, OMX_HANDLETYPE aOutput, TUint32 aPortOutput);
- TInt OmxComponentDisconnectTunnel(TUint32 aPortInput, OMX_HANDLETYPE aOutput, TUint32 aPortOutput);
- TInt OmxUseBuffer(CMMFBuffer* aBuffer, TUint32 aPortIndex);
- CMMFBuffer* OmxAllocateBufferL(TUint32 aPortIndex, TUint32 aSizeBytes);
- TInt OmxFreeBuffer(CMMFBuffer* aBuffer);
- TInt OmxEmptyThisBuffer(const CMMFBuffer* aBuffer, MOmxILComponentIfObserver* aObserver);
- TInt OmxFillThisBuffer(CMMFBuffer* aBuffer, MOmxILComponentIfObserver* aObserver);
- OMX_COMPONENTTYPE* OmxHandle() const;
-
-private:
- CBody* iBody;
- };
-
-#endif // OMXILDUMMYBASEILIF_H
-
--- a/omxil/mmilapi/unittest/mmpfiles/dummypcmrenderer.mmp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include "../inc/iltestuids.hrh"
-
-TARGET dummypcmrenderer.dll
-TARGETTYPE plugin
-
-CAPABILITY ALL -TCB
-
-UID KECOMPluginUidDefine KUidDummyPcmRendererMILIFPluginDll
-VENDORID 0x70000001
-
-#ifdef SYMBIAN_MDF_SHAREDCHUNK_SOUNDDRIVER
-USERINCLUDE ../../../../mmdevicefw/mdf/src/audio/mdasoundadapter
-#endif
-
-SOURCEPATH ../test_plugins/dummypcmrenderer
-SOURCE dummypcmrenderer.cpp
-
-USERINCLUDE ../test_plugins/dummypcmrenderer
-USERINCLUDE ../inc
-USERINCLUDE ../../ilif/inc
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-
-RESOURCE dummypcmrenderer.rss
-
-LIBRARY euser.lib
-LIBRARY ecom.lib
-LIBRARY mmfserverbaseclasses.lib
-
-
-#ifdef SYMBIAN_MDF_SHAREDCHUNK_SOUNDDRIVER
-LIBRARY mdasoundadapter.lib
-#endif
-
-
-
-
-SMPSAFE
--- a/omxil/mmilapi/unittest/mmpfiles/omxildummyaudiodec.mmp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include "../inc/iltestuids.hrh"
-
-TARGET omxildummyaudiodec.dll
-TARGETTYPE PLUGIN
-
-CAPABILITY ALL -TCB
-
-UID KECOMPluginUidDefine KUidOmxILDummyAudioDecDll
-VENDORID 0x70000001
-
-SOURCEPATH ../test_plugins/omxildummyaudiodec
-SOURCE omximpl.cpp
-SOURCE omxildummyaudiodec.cpp
-
-USERINCLUDE ../inc
-USERINCLUDE ../test_plugins/omxildummyaudiodec
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-
-RESOURCE omxildummyaudiodec.rss
-
-LIBRARY euser.lib
-LIBRARY ecom.lib
-LIBRARY mmfserverbaseclasses.lib
-
-STATICLIBRARY omxilcomponentif.lib
-
-SMPSAFE
--- a/omxil/mmilapi/unittest/mmpfiles/omxildummyaudiodecilif.mmp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include "../inc/iltestuids.hrh"
-
-TARGET omxildummyaudiodecilif.dll
-TARGETTYPE plugin
-
-CAPABILITY All -TCB
-
-UID KECOMPluginUidDefine KUidOmxILDummyAudioDecMILIFPluginDll
-VENDORID 0x70000001
-
-
-SOURCEPATH ../test_plugins/omxildummyaudiodecilif
-SOURCE omxildummyaudiodecilif.cpp
-
-USERINCLUDE ../test_plugins/omxildummyaudiodecilif
-USERINCLUDE ../inc // CILComponentIf
-USERINCLUDE ../../refomxil/inc // omxilcomponent headers
-USERINCLUDE ../../ilif/inc
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-
-RESOURCE omxildummyaudiodecilif.rss
-
-LIBRARY euser.lib
-LIBRARY ecom.lib
-LIBRARY omxildummybaseilif.lib
-
-
-
-SMPSAFE
--- a/omxil/mmilapi/unittest/mmpfiles/omxildummybaseilif.mmp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include "../inc/iltestuids.hrh"
-
-TARGET omxildummybaseilif.dll
-TARGETTYPE dll
-
-CAPABILITY All -TCB
-
-UID KSharedLibraryUidDefine KUidOmxILDummyBaseMILIFPluginDll
-VENDORID 0x70000001
-
-
-SOURCEPATH ../../refomxil/src/omxilgenericilif
-SOURCE omxilgenericilifbodyimpl.cpp
-SOURCE omxilcoreutils.cpp
-SOURCEPATH ../test_plugins/omxildummybaseilif
-SOURCE omxildummybaseilif.cpp
-SOURCE omxildummybaseilifbody.cpp
-SOURCE omxildummybaseportilif.cpp
-
-USERINCLUDE ../test_plugins/omxildummybaseilif
-USERINCLUDE ../inc
-USERINCLUDE ../../refomxil/inc
-USERINCLUDE ../../ilif/inc
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-
-LIBRARY euser.lib
-LIBRARY ecom.lib
-LIBRARY mmfserverbaseclasses.lib
-LIBRARY omxilcoreclient.lib
-
-
-NOSTRICTDEF
-
-SMPSAFE
--- a/omxil/mmilapi/unittest/mmpfiles/omxilvorbdechwdevice.mmp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include "../inc/iltestuids.hrh"
-
-TARGET omxilvorbdechwdevice.dll
-TARGETTYPE plugin
-
-CAPABILITY All -TCB
-
-UID KECOMPluginUidDefine KUidOmxILVorbDecHwDeviceDll
-VENDORID 0x70000001
-
-SOURCEPATH ../test_plugins/audioilhwdevice_mvs_test/omxilvorbdechwdevice
-SOURCE omxilvorbdechwdevice.cpp
-
-USERINCLUDE ../test_plugins/audioilhwdevice_mvs_test/omxilvorbdechwdevice
-USERINCLUDE ../test_plugins/omxildummybaseilif // Generic implementation of milif API for OMX as a plugin
-USERINCLUDE ../test_plugins/dummypcmrenderer // CDummyPcmRenderer plugin
-USERINCLUDE ../inc // CILComponentIf
-USERINCLUDE ../../refomxil/inc // omxilcomponent headers
-USERINCLUDE ../../ilif/inc
-
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-
-RESOURCE omxilvorbdechwdevice.rss
-
-LIBRARY euser.lib
-LIBRARY ecom.lib
-LIBRARY mmcommonutils.lib
-LIBRARY mmfserverbaseclasses.lib
-LIBRARY omxilcoreclient.lib
-
-
-
-SMPSAFE
--- a/omxil/mmilapi/unittest/mmpfiles/tsu_milif_omxilif.mmp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include "../inc/iltestuids.hrh"
-
-TARGET tsu_milif_omxilif.dll
-TARGETTYPE dll
-
-CAPABILITY All -TCB
-
-UID 0x1000008d KUidMILIFTestSuite
-VENDORID 0x70000001
-
-SOURCEPATH ../src
-SOURCE tsu_milif_omxiliftests.cpp
-SOURCE tsu_milif_testsuite.cpp
-
-USERINCLUDE ../src
-USERINCLUDE ../inc // CILComponentIf
-USERINCLUDE ../../refomxil/inc
-USERINCLUDE ../../ilif/inc
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-
-LIBRARY euser.lib
-LIBRARY ecom.lib
-LIBRARY testframeworkclient.lib
-LIBRARY omxilcoreclient.lib
-
-NOSTRICTDEF
-
-
-SMPSAFE
--- a/omxil/mmilapi/unittest/scripts/tsu_milif_omxilif.script Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,126 +0,0 @@
-//
-// Copyright (c) 2008-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:
-//
-
-LOAD_SUITE TSU_MILIF_OMXILIF.dll
-
-//------------------------------------------------------------------------------------------//
-// Test Suite for the Generic Multimedia Integration Layer Interface //
-//
-// This test suite is based on the generic DLL implementation of the MILIF interface that has
-// been specialized to make use of a generic plugin implementation of the MILIF interface for
-// OMX audio decoders
-//
-// Test Cases: MM-MILIF-DUMMYOMXILIF-U-0001 to MM-MILIF-DUMMYOMXILIF-U-0006
-//
-//------------------------------------------------------------------------------------------//
-
-
-//------------------------------------------------------------------------------------------//
-// TEST STEP: TSU_MILIF_OMXILIF MM-MILIF-DUMMYOMXILIF-U-0001
-// RTestStepMILIFPorts: To test access to IL component ports through MILIF.
-// 1. Create an instance of the KUidOmxILAudioDecGenericIf test ECOM plugin interface.
-// 2. Use the interface to instanciate a dummy omx component.
-// 3. Set the role of the interface to "aac decoder".
-// 4. Get Component Input ports through interface.
-// 5. Get Component Output ports through interface.
-//------------------------------------------------------------------------------------------//
-//! @SYMTestCaseID MM-MILIF-DUMMYOMXILIF-U-0001
-
-RUN_TEST_STEP -1 TSU_MILIF_OMXILIF MM-MILIF-DUMMYOMXILIF-U-0001
-TEST_COMPLETE
-
-//------------------------------------------------------------------------------------------//
-// TEST STEP: TSU_MILIF_OMXILIF MM-MILIF-DUMMYOMXILIF-U-0002
-// RTestStepMILIFConfig: To test configuration of IL component through MILIF.
-// 1. Create an instance of the KUidOmxILAudioDecGenericIf test ECOM plugin interface.
-// 2. Use the interface to instanciate a dummy omx component.
-// 3. Set the role of the interface to "aac decoder".
-// 4. Get Component Input ports through interface.
-// 5a. Set a (partial) config port parameter through the interface.
-// 5b. Now Get the TPortDefinitionType config parameter through the interface.
-// 6a. Configure component through the interface.
-// 6b. Now Get the TOMXILStructParam config parameter through the interface.
-//------------------------------------------------------------------------------------------//
-//! @SYMTestCaseID MM-MILIF-DUMMYOMXILIF-U-0002
-
-RUN_TEST_STEP -1 TSU_MILIF_OMXILIF MM-MILIF-DUMMYOMXILIF-U-0002
-TEST_COMPLETE
-
-//------------------------------------------------------------------------------------------//
-// TEST STEP: TSU_MILIF_OMXILIF MM-MILIF-DUMMYOMXILIF-U-0003
-// RTestStepMILIFStates: To test driving the IL component state machine through MILIF.
-// 1. Create an instance of the KUidOmxILAudioDecGenericIf test ECOM plugin interface.
-// 2. Use the interface to instanciate a dummy omx component.
-// 3. Set the role of the interface to "aac decoder".
-// 4. Trigger transition from Load to Idle in component by calling Initialize()
-// 5a. Check the component was left in the correct state after EEventInitComplete event
-// 5b. Trigger transition from Idle to Execute in component by calling Execute()
-// 6a. Check the component was left in the correct state after EEventExecuteComplete event
-// 6b. Trigger transition from Executing to Pause in component by calling Pause()
-// 7a. Check the component was left in the correct state after EEventPauseComplete event
-// 7b. Trigger transition from Pause to Idle in component by calling Stop()
-// 8. Check the component was left in the correct state after EEventStopComplete event
-//------------------------------------------------------------------------------------------//
-//! @SYMTestCaseID MM-MILIF-DUMMYOMXILIF-U-0003
-
-RUN_TEST_STEP -1 TSU_MILIF_OMXILIF MM-MILIF-DUMMYOMXILIF-U-0003
-TEST_COMPLETE
-
-//------------------------------------------------------------------------------------------//
-// TEST STEP: TSU_MILIF_OMXILIF MM-MILIF-DUMMYOMXILIF-U-0004
-// RTestStepMILIFCommands: To test sending commands to the IL component through MILIF.
-// 1. Create an instance of the KUidOmxILAudioDecGenericIf test ECOM plugin interface.
-// 2. Use the interface to instanciate a dummy omx component.
-// 3. Set the role of the interface to "aac decoder".
-// 4. Trigger FlushAllPorts
-// 5. Trigger SendCommand() with ECommandPortDisable
-//------------------------------------------------------------------------------------------//
-//! @SYMTestCaseID MM-MILIF-DUMMYOMXILIF-U-0004
-
-RUN_TEST_STEP -1 TSU_MILIF_OMXILIF MM-MILIF-DUMMYOMXILIF-U-0004
-TEST_COMPLETE
-
-//------------------------------------------------------------------------------------------//
-// TEST STEP: TSU_MILIF_OMXILIF MM-MILIF-DUMMYOMXILIF-U-0005
-// RTestStepMILIFExtensions: To test configuration of the IL component with extended params through MILIF.
-// 1. Create an instance of the KUidOmxILAudioDecGenericIf test ECOM plugin interface.
-// 2. Use the interface to instanciate a dummy omx component.
-// 3. Set the role of the interface to "aac decoder".
-// 4. Get Component Input ports through interface.
-// 5a. Set a (partial) config port parameter through the interface's extension mechanism.
-// 5b. Get the parameter set in 5a through the interface's extension mechanism.
-//------------------------------------------------------------------------------------------//
-//! @SYMTestCaseID MM-MILIF-DUMMYOMXILIF-U-0005
-
-RUN_TEST_STEP -1 TSU_MILIF_OMXILIF MM-MILIF-DUMMYOMXILIF-U-0005
-TEST_COMPLETE
-
-//------------------------------------------------------------------------------------------//
-// TEST STEP: TSU_MILIF_OMXILIF MM-MILIF-DUMMYOMXILIF-U-0006
-// RTestStepMILIFComponentRole: To test access to the IL component role through MILIF.
-// 1. Create an instance of the KUidOmxILAudioDecGenericIf test ECOM plugin interface.
-// 2. Use the interface to instanciate a dummy omx component.
-// 3. Set the role of the interface to "aac decoder".
-// 4. Get component role through interface.
-// 5. Check the component's role returned is the expected role
-//------------------------------------------------------------------------------------------//
-//! @SYMTestCaseID MM-MILIF-DUMMYOMXILIF-U-0006
-
-RUN_TEST_STEP -1 TSU_MILIF_OMXILIF MM-MILIF-DUMMYOMXILIF-U-0006
-TEST_COMPLETE
-
-
-// End of Test Script
--- a/omxil/mmilapi/unittest/src/tsu_milif_omxiliftests.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1093 +0,0 @@
-// Copyright (c) 2008-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:
-// Implementation of Unit test step classes for MILIF testing.
-//
-//
-
-#include "tsu_milif_omxiliftests.h"
-#include "iltestuids.hrh"
-#include "ilcomponentif.h"
-#include "tilstructtypes.h"
-#include "tomxilstruct.h"
-#include <openmax/il/khronos/v1_x/OMX_Core.h>
-
-_LIT8(KDummyDecoderILComponentName,"OMX.SYMBIAN.AUDIO.DECODER.DUMMY");
-_LIT8(KExtensionPortDefinitionName,"OMX.CompanyXYZ.index.param.PortDefinition");
-_LIT8(KFakeRole,"audio_decoder.vrb");
-
-const TUid KUidFormatAAC = {0x1028347C};
-
-const TInt KMaxComponentRoleLength = 128;
-
-const TInt KZerothPort = 0;
-
-
-//
-// RTestStepMILIFBase: Base class for all RTestStepMILIF* tests
-//
-
-/*
- *
- * RTestStepMILIFBase - Test step constructor
- *
- */
-RTestStepMILIFBase::RTestStepMILIFBase(const TDesC& aTestName)
-:RAsyncTestStep()
- {
- iTestStepName = aTestName;
- }
-
-/*
- *
- * KickoffTestL - Starts the test
- *
- */
-void RTestStepMILIFBase::KickoffTestL()
- {
- __MM_HEAP_MARK;
-
- DoKickoffTestL();
- DoTestBody();
- }
-
-/*
- *
- * DoKickoffTestL
- *
- */
-void RTestStepMILIFBase::DoKickoffTestL()
- {
- OMX_Init();
-
- if ((iTestStepName == _L("MM-MILIF-DUMMYOMXILIF-U-0001"))||
- (iTestStepName == _L("MM-MILIF-DUMMYOMXILIF-U-0002"))||
- (iTestStepName == _L("MM-MILIF-DUMMYOMXILIF-U-0003"))||
- (iTestStepName == _L("MM-MILIF-DUMMYOMXILIF-U-0004"))||
- (iTestStepName == _L("MM-MILIF-DUMMYOMXILIF-U-0005"))||
- (iTestStepName == _L("MM-MILIF-DUMMYOMXILIF-U-0006")))
- {
- INFO_PRINTF1(_L("1. Create an instance of the KUidOmxILAudioDecGenericIf test ECOM plugin interface."));
- TRAPD(error, iDummyComponent = CILComponentIf::CreateImplementationL(TUid::Uid(KUidOmxILDummyAudioDecMILIFPlugin)));
- if(error != KErrNone)
- {
- ERR_PRINTF2(_L(" ERROR! - Could not instantiate the generic audio decoder OMX IL test ECOM plugin interface: error = %d"), error);
- StopTest(error, EFail);
- return;
- }
-
- INFO_PRINTF1(_L("2. Use the interface to instanciate a dummy omx component."));
- TRAP(error, iDummyComponent->CreateComponentL(KDummyDecoderILComponentName, *this));
- if(error != KErrNone)
- {
- ERR_PRINTF2(_L(" ERROR! - Could not create omx component: error = %d"), error);
- StopTest(error, EFail);
- return;
- }
-
- INFO_PRINTF1(_L("3. Set the role of the interface."));
- error = iDummyComponent->SetComponentIfRole(KUidFormatAAC);
- if(error != KErrNone)
- {
- ERR_PRINTF2(_L(" ERROR! - Could not set the role of the interface: error = %d"), error);
- StopTest(error, EFail);
- }
- }
- else
- {
- StopTest(KErrGeneral, EFail);
- }
- }
-
-/*
- *
- * DoTestBodyL
- *
- */
-void RTestStepMILIFBase::DoTestBody()
- {
- // Nothing to do in the base class
- }
-
-/*
- *
- * CloseTest
- *
- */
-void RTestStepMILIFBase::CloseTest()
- {
- if (iDummyComponent)
- {
- iDummyComponent->ReleaseComponent();
- iDummyComponent = NULL;
- }
-
- iComponentInPortIf = NULL;
- iComponentOutPortIf = NULL;
-
- OMX_Deinit();
-
- __MM_HEAP_MARKEND;
- }
-
-/*
- *
- * MsgFromILComponent - Callback from component for component events
- *
- */
-TInt RTestStepMILIFBase::MsgFromILComponent(const MILComponentIf* /*aComponent*/, const TILEvent& /*aEvent*/)
- {
- // Nothing to do in the base class
- return KErrNotSupported;
- }
-
-/*
- *
- * BufferDelivered - Callback from component for buffer delivered events
- *
- */
-TInt RTestStepMILIFBase::BufferDelivered(const MILComponentPortIf* /*aPort*/, const CMMFBuffer* /*aBuffer*/)
- {
- // Nothing to do in the base class
- return KErrNotSupported;
- }
-
-
-//
-// RTestStepMILIFPorts: To test access to IL component ports through MILIF.
-//
-
-/*
- *
- * RTestStepMILIFPorts - Test step constructor
- *
- */
-RTestStepMILIFPorts::RTestStepMILIFPorts(const TDesC& aTestName)
- :RTestStepMILIFBase(aTestName)
- {
- }
-
-/*
- *
- * NewL
- *
- */
-RTestStepMILIFPorts* RTestStepMILIFPorts::NewL(const TDesC& aTestName)
- {
- return (new (ELeave) RTestStepMILIFPorts(aTestName));
- }
-
-/*
- *
- * DoKickoffTestL
- *
- */
-void RTestStepMILIFPorts::DoKickoffTestL()
- {
- INFO_PRINTF1(_L("RTestStepMILIFPorts: To test access to IL component ports through MILIF interface."));
-
- RTestStepMILIFBase::DoKickoffTestL();
- }
-
-/*
- *
- * DoTestBodyL
- *
- */
-void RTestStepMILIFPorts::DoTestBody()
- {
- RPointerArray<MILComponentPortIf> ifPorts;
-
- INFO_PRINTF1(_L("4. Get Component Input ports through MILIF interface."));
- TInt error = iDummyComponent->GetComponentInputPorts(ifPorts);
- if (error == KErrNone && ifPorts.Count() == 1)
- {
- iComponentInPortIf = ifPorts[KZerothPort];
- ifPorts.Close();
- }
- else
- {
- if (ifPorts.Count() != 1)
- {
- error = KErrNotFound;
- }
- ifPorts.Close();
- ERR_PRINTF2(_L(" ERROR! - Fail to grab input ports: error = %d"), error);
- StopTest(error, EFail);
- return;
- }
-
-
- INFO_PRINTF1(_L("5. Get Component Output ports through MILIF interface."));
- error = iDummyComponent->GetComponentOutputPorts(ifPorts);
- if (error == KErrNone && ifPorts.Count() > 0)
- {
- iComponentOutPortIf = ifPorts[KZerothPort];
- ifPorts.Close();
- }
- else
- {
- if (ifPorts.Count() != 1)
- {
- error = KErrNotFound;
- }
- ifPorts.Close();
- ERR_PRINTF2(_L(" ERROR! - Fail to grab output ports: error = %d"), error);
- StopTest(error, EFail);
- return;
- }
- StopTest(KErrNone);
- }
-
-
-//
-// RTestStepMILIFConfig: To test configuration of IL component through MILIF.
-//
-
-/*
- *
- * RTestStepMILIFConfig - Test step constructor
- *
- */
-RTestStepMILIFConfig::RTestStepMILIFConfig(const TDesC& aTestName)
-:RTestStepMILIFBase(aTestName)
- {
- }
-
-/*
- *
- * NewL
- *
- */
-RTestStepMILIFConfig* RTestStepMILIFConfig::NewL(const TDesC& aTestName)
- {
- RTestStepMILIFConfig* self = new (ELeave) RTestStepMILIFConfig(aTestName);
- return self;
- }
-
-/*
- *
- * DoKickoffTestL
- *
- */
-void RTestStepMILIFConfig::DoKickoffTestL()
- {
- INFO_PRINTF1(_L("RTestStepMILIFConfig: To test configuration of the IL component through MILIF interface."));
-
- RTestStepMILIFBase::DoKickoffTestL();
- }
-
-/*
- *
- * DoTestBodyL -
- *
- */
-void RTestStepMILIFConfig::DoTestBody()
- {
- TInt error = KErrNone;
-
- INFO_PRINTF1(_L("4. Get Component Input ports through MILIF interface."));
- RPointerArray<MILComponentPortIf> ifPorts;
- error = iDummyComponent->GetComponentInputPorts(ifPorts);
- if (error == KErrNone && ifPorts.Count() == 1)
- {
- iComponentInPortIf = ifPorts[KZerothPort];
- ifPorts.Close();
- }
- else
- {
- if (ifPorts.Count() != 1)
- {
- error = KErrNotFound;
- }
- ifPorts.Close();
- ERR_PRINTF2(_L(" ERROR! - Fail to grab input ports: error = %d"), error);
- StopTest(error, EFail);
- return;
- }
-
- INFO_PRINTF1(_L("5a. Set a (partial) config port parameter through the interface."));
- INFO_PRINTF1(_L(" Using TPortDefinitionType and TILPortDefinition."));
- TPortDefinitionType partialConfig_s;
- partialConfig_s.nBufferCountActual = 1;
- TILPortDefinition paramStruct_s(partialConfig_s);
- error = iDummyComponent->SetConfig(paramStruct_s, iComponentInPortIf);
- if (error != KErrNone)
- {
- ERR_PRINTF2(_L(" ERROR! - Fail to set TILPortDefinition: error = %d"), error);
- StopTest(error, EFail);
- return;
- }
-
- INFO_PRINTF1(_L("5b. Now Get the TPortDefinitionType config parameter through the interface."));
- TILPortDefinition paramStruct_g;
- TPortDefinitionType* partialConfig_g = NULL;
- error = iDummyComponent->GetConfig(paramStruct_g, iComponentInPortIf);
- if (error != KErrNone)
- {
- ERR_PRINTF2(_L(" ERROR! - Fail to get TILPortDefinition: error = %d"), error);
- StopTest(error, EFail);
- return;
- }
- partialConfig_g = TILPortDefinition::GetStructure(paramStruct_g);
- if(partialConfig_g->nBufferCountActual != 1)
- {
- ERR_PRINTF1(_L(" ERROR! - Unexpected value. The get value does not match the value set."));
- StopTest(KErrCorrupt, EFail);
- return;
- }
-
- if ((iTestStepName == _L("MM-MILIF-DUMMYOMXILIF-U-0002")))
- {
- INFO_PRINTF1(_L("6a. Configure component through the interface."));
- INFO_PRINTF1(_L(" Using TOMXILStructParam and TILPortDefinition."));
- OMX_PARAM_PORTDEFINITIONTYPE omxconfig_s;
- omxconfig_s.nBufferCountActual = 3;
- TOMXILStructParam omxParamStruct_s(&omxconfig_s, OMX_IndexParamPortDefinition);
- error = iDummyComponent->SetConfig(omxParamStruct_s, iComponentInPortIf);
- if (error != KErrNone)
- {
- ERR_PRINTF2(_L(" ERROR! - Fail to set TOMXILStructParam: error = %d"), error);
- StopTest(error, EFail);
- return;
- }
-
- INFO_PRINTF1(_L("6b. Now Get the TOMXILStructParam config parameter through the interface."));
- OMX_PARAM_PORTDEFINITIONTYPE omxconfig_g;
- TOMXILStructParam omxParamStruct_g(&omxconfig_g, OMX_IndexParamPortDefinition);
- error = iDummyComponent->GetConfig(omxParamStruct_g, iComponentInPortIf);
- if (error != KErrNone)
- {
- ERR_PRINTF2(_L(" ERROR! - Fail to get TOMXILStructParam: error = %d"), error);
- StopTest(error, EFail);
- return;
- }
- if(omxconfig_g.nBufferCountActual != 3)
- {
- ERR_PRINTF1(_L(" ERROR! - Unexpected value. The get value does not match the value set."));
- StopTest(KErrCorrupt, EFail);
- return;
- }
- }
-
- StopTest(KErrNone);
- }
-
-
-//
-// RTestStepMILIFStates: To test driving the IL component state machine through MILIF.
-//
-
-/*
- *
- * RTestStepMILIFStates - Test step constructor
- *
- */
-RTestStepMILIFStates::RTestStepMILIFStates(const TDesC& aTestName)
-:RTestStepMILIFBase(aTestName)
- {
- }
-
-/*
- *
- * NewL
- *
- */
-RTestStepMILIFStates* RTestStepMILIFStates::NewL(const TDesC& aTestName)
- {
- RTestStepMILIFStates* self = new (ELeave) RTestStepMILIFStates(aTestName);
- return self;
- }
-
-/*
- *
- * DoKickoffTestL
- *
- */
-void RTestStepMILIFStates::DoKickoffTestL()
- {
- INFO_PRINTF1(_L("RTestStepMILIFStates: To test driving the IL component state machine through MILIF interface."));
-
- RTestStepMILIFBase::DoKickoffTestL();
- }
-
-/*
- *
- * DoTestBodyL -
- *
- */
-void RTestStepMILIFStates::DoTestBody()
- {
- Fsm(EEventInit, KErrNone);
- }
-
-/*
- *
- * Fsm - Executes this test events in sequence
- *
- *
- */
-void RTestStepMILIFStates::Fsm(TTestEvents aEvent, TInt aError)
- {
- TInt error = KErrNone;
-
- switch (iTestState)
- {
- case ETestStateStart:
- {
- if (aEvent == EEventInit)
- {
- INFO_PRINTF1(_L("4. Trigger transition from Load to Idle in component by calling Initialize()"));
- error = iDummyComponent->Initialize();
- if (error != KErrNone)
- {
- ERR_PRINTF2(_L(" ERROR! - MILComponentIf::Initialize() error = %d"), error);
- StopTest(error, EFail);
- break;
- }
- INFO_PRINTF1(_L(" -> Test State: EStatePlayInitializing"));
- iTestState = ETestStateInitializing;
- }
- else
- {
- ERR_PRINTF2(_L(" ERROR! - ETestStateStart did not received expected event. Received event: %d"), aEvent);
- StopTest(aError, EFail);
- }
- break;
- }
-
- case ETestStateInitializing:
- {
- if (aEvent == EEventInitComplete)
- {
- INFO_PRINTF1(_L("5a. Check the component was left in the correct state after EEventInitComplete event"));
- TILComponentState aState;
- error = iDummyComponent->GetState(aState);
- if ((error != KErrNone) || (aState != EComponentIdle))
- {
- ERR_PRINTF3(_L(" ERROR! - MILComponentIf::GetState Incorrect state = %d, error = %d."), error, aState);
- if (aState != EComponentIdle)
- {
- error = KErrGeneral;
- }
- StopTest(error, EFail);
- break;
- }
-
- INFO_PRINTF1(_L("5b. Trigger transition from Idle to Execute in component by calling Execute()"));
- error = iDummyComponent->Execute();
- if (error != KErrNone)
- {
- ERR_PRINTF2(_L(" ERROR! - MILComponentIf::Execute() error = %d"), error);
- StopTest(error, EFail);
- break;
- }
- INFO_PRINTF1(_L(" -> Test State: EStatePlayInitialized"));
- iTestState = ETestStateInitialized;
- }
- else
- {
- ERR_PRINTF2(_L(" ERROR! - ETestStateInitializing did not received expected event. Received event: %d"), aEvent);
- StopTest(aError, EFail);
- }
- break;
- }
-
- case ETestStateInitialized:
- {
- if (aEvent == EEventExecuteComplete)
- {
- INFO_PRINTF1(_L("6a. Check the component was left in the correct state after EEventExecuteComplete event"));
- TILComponentState aState;
- error = iDummyComponent->GetState(aState);
- if ((error != KErrNone) || (aState != EComponentExecuting))
- {
- ERR_PRINTF3(_L(" ERROR! - MILComponentIf::GetState Incorrect state = %d, error = %d."), error, aState);
- if (aState != EComponentExecuting)
- {
- error = KErrGeneral;
- }
- StopTest(error, EFail);
- break;
- }
-
- INFO_PRINTF1(_L("6b. Trigger transition from Executing to Pause in component by calling Pause()"));
- error = iDummyComponent->Pause();
- if (error != KErrNone)
- {
- ERR_PRINTF2(_L(" ERROR! - MILComponentIf::Pause() error = %d"), error);
- StopTest(error, EFail);
- break;
- }
- INFO_PRINTF1(_L(" -> Test State: EStatePlayPausing"));
- iTestState = ETestStatePausing;
- }
- else
- {
- ERR_PRINTF2(_L(" ERROR! - ETestStateInitialized did not received expected event. Received event: %d"), aEvent);
- StopTest(aError, EFail);
- }
- break;
- }
-
- case ETestStatePausing:
- {
- if (aEvent == EEventPauseComplete)
- {
- INFO_PRINTF1(_L("7a. Check the component was left in the correct state after EEventPauseComplete event"));
- TILComponentState aState;
- error = iDummyComponent->GetState(aState);
- if ((error != KErrNone) || (aState != EComponentPaused))
- {
- ERR_PRINTF3(_L(" ERROR! - MILComponentIf::GetState error = %d, state = %d"), error, aState);
- if (aState != EComponentPaused)
- {
- error = KErrGeneral;
- }
- StopTest(error, EFail);
- break;
- }
-
- INFO_PRINTF1(_L("7b. Trigger transition from Pause to Idle in component by calling Stop()"));
- error = iDummyComponent->Stop();
- if (error != KErrNone)
- {
- ERR_PRINTF2(_L(" ERROR! - MILComponentIf::Stop() error = %d"), error);
- StopTest(error, EFail);
- break;
- }
- INFO_PRINTF1(_L(" -> Test State: ETestStateStopping"));
- iTestState = ETestStateStopping;
- }
- else
- {
- ERR_PRINTF2(_L(" ERROR! - ETestStatePausing did not received expected event. Received event: %d"), aEvent);
- StopTest(aError, EFail);
- }
- break;
- }
-
- case ETestStateStopping:
- {
- if (aEvent == EEventStopComplete)
- {
- INFO_PRINTF1(_L("8. Check the component was left in the correct state after EEventStopComplete event"));
- TILComponentState aState;
- error = iDummyComponent->GetState(aState);
- if ((error != KErrNone) || (aState != EComponentIdle))
- {
- ERR_PRINTF3(_L(" ERROR! - MILComponentIf::GetState error = %d, state = %d"), error, aState);
- if (aState != EComponentIdle)
- {
- error = KErrGeneral;
- }
- StopTest(error, EFail);
- break;
- }
- StopTest(KErrNone);
- }
- else
- {
- ERR_PRINTF2(_L(" ERROR! - ETestStateStopping did not received expected event. Received event: %d"), aEvent);
- StopTest(aError, EFail);
- }
- break;
- }
-
- default:
- {
- ERR_PRINTF2(_L(" ERROR! - Invalid state received: %d"), iTestState);
- StopTest(KErrGeneral, EFail);
- }
- }
-
- }
-
-/*
- *
- * MsgFromILComponent -
- *
- */
-TInt RTestStepMILIFStates::MsgFromILComponent(const MILComponentIf* aComponent, const TILEvent& aEvent)
- {
- TInt error = KErrNone;
-
- if (aComponent != iDummyComponent)
- {
- ERR_PRINTF1(_L(" ERROR! - Invalid callback received"));
- StopTest(KErrGeneral, EFail);
- return KErrGeneral;
- }
-
- switch (aEvent.iEvent)
- {
- case EEventCmdComplete:
- {
- if (aEvent.iData1 == ECommandStateSet)
- {
- if (aEvent.iData2 == EComponentIdle)
- {
- INFO_PRINTF1(_L(" MsgFromILComponent:EEventCmdComplete -> EComponentIdle received"));
- if (iTestState == ETestStateInitializing)
- {
- Fsm(EEventInitComplete, KErrNone);
- }
- else if (iTestState == ETestStateStopping)
- {
- Fsm(EEventStopComplete, KErrNone);
- }
- else
- {
- ERR_PRINTF1(_L(" ERROR! - Unexpected callback received"));
- error = KErrGeneral;
- }
- }
- else if(aEvent.iData2 == EComponentExecuting)
- {
- INFO_PRINTF1(_L(" MsgFromILComponent:EEventCmdComplete -> EComponentExecuting received"));
- if (iTestState == ETestStateInitialized)
- {
- Fsm(EEventExecuteComplete, KErrNone);
- }
- else
- {
- ERR_PRINTF1(_L(" ERROR! - Unexpected callback received"));
- error = KErrGeneral;
- }
- }
- else if(aEvent.iData2 == EComponentPaused)
- {
- INFO_PRINTF1(_L(" MsgFromILComponent:EEventCmdComplete -> EComponentPaused received"));
- if (iTestState == ETestStatePausing)
- {
- Fsm(EEventPauseComplete, KErrNone);
- }
- else
- {
- ERR_PRINTF1(_L(" ERROR! - Unexpected callback received"));
- error = KErrGeneral;
- }
- }
- else
- {
- ERR_PRINTF1(_L(" ERROR! - Unexpected callback received"));
- error = KErrGeneral;
- }
- break;
- }
- }
- default:
- {
- ERR_PRINTF1(_L(" ERROR! - Unexpected callback received"));
- error = KErrNotSupported;
- }
- }
-
- if (error != KErrNone)
- {
- StopTest(error, EFail);
- }
- return error;
- }
-
-
-//
-// RTestStepMILIFCommands: To test sending commands to the IL component through MILIF.
-//
-
-/*
- *
- * RTestStepMILIFCommands - Test step constructor
- *
- */
-RTestStepMILIFCommands::RTestStepMILIFCommands(const TDesC& aTestName)
-:RTestStepMILIFBase(aTestName)
- {
- }
-
-/*
- *
- * NewL
- *
- */
-RTestStepMILIFCommands* RTestStepMILIFCommands::NewL(const TDesC& aTestName)
- {
- RTestStepMILIFCommands* self = new (ELeave) RTestStepMILIFCommands(aTestName);
- return self;
- }
-
-/*
- *
- * DoKickoffTestL
- *
- */
-void RTestStepMILIFCommands::DoKickoffTestL()
- {
- INFO_PRINTF1(_L("RTestStepMILIFCommands: To test sending commands to the IL component through MILIF interface."));
-
- RTestStepMILIFBase::DoKickoffTestL();
- }
-
-/*
- *
- * DoTestBodyL -
- *
- */
-void RTestStepMILIFCommands::DoTestBody()
- {
- Fsm(EEventInit, KErrNone);
- }
-
-/*
- *
- * Fsm - Executes this test events in sequence
- *
- */
-void RTestStepMILIFCommands::Fsm(TTestEvents aEvent, TInt aError)
- {
- TInt error = KErrNone;
-
- switch (iTestState)
- {
- case ETestStateStart:
- {
- if (aEvent == EEventInit)
- {
- INFO_PRINTF1(_L("4. Trigger FlushAllPorts"));
- error = iDummyComponent->FlushAllPorts();
- if (error != KErrNone)
- {
- ERR_PRINTF2(_L(" ERROR! - MILComponentIf::FlushAllPorts error = %d"), error);
- StopTest(error, EFail);
- break;
- }
- INFO_PRINTF1(_L(" -> Test State: ETestStateFlushing"));
- iTestState = ETestStateFlushing;
- }
- else
- {
- ERR_PRINTF2(_L(" ERROR! - ETestStateFlushing did not received expected event. Received event: %d"), aEvent);
- StopTest(aError, EFail);
- }
- break;
- }
-
- case ETestStateFlushing:
- {
- if (aEvent == EEventFlushComplete)
- {
- INFO_PRINTF1(_L(" Flush Command partially completed."));
- INFO_PRINTF1(_L(" -> Test State: ETestStateFirstPortFlushed"));
- iTestState = ETestStateFirstPortFlushed;
- }
- else
- {
- ERR_PRINTF2(_L(" ERROR! - ETestStateFlushing did not received expected event. Received event: %d"), aEvent);
- StopTest(aError, EFail);
- }
- break;
- }
-
- case ETestStateFirstPortFlushed:
- {
- if (aEvent == EEventFlushComplete)
- {
- INFO_PRINTF1(_L(" Flush Command completed."));
- INFO_PRINTF1(_L("5. Trigger SendCommand() with ECommandPortDisable"));
- TILCommand aCommand;
- aCommand.iCmd = ECommandPortDisable;
- aCommand.iData1 = 0;
- aCommand.iExtraData = NULL;
- error = iDummyComponent->SendCommand(aCommand);
-
- INFO_PRINTF1(_L(" -> Test State: ETestStateDisablingPort"));
- iTestState = ETestStateDisablingPort;
- }
- else
- {
- ERR_PRINTF2(_L(" ERROR! - ETestStateFirstPortFlushed did not received expected event. Received event: %d"), aEvent);
- StopTest(aError, EFail);
- }
- break;
- }
-
- case ETestStateDisablingPort:
- {
- if (aEvent == EEventPortDisableComplete)
- {
- INFO_PRINTF1(_L(" -> Test State: Port Disabled. Fisnished Test"));
- StopTest(KErrNone);
- }
- else
- {
- ERR_PRINTF2(_L(" ERROR! - ETestStateInitialized did not received expected event. Received event: %d"), aEvent);
- StopTest(aError, EFail);
- }
- break;
- }
-
- default:
- {
- ERR_PRINTF2(_L(" ERROR! - Invalid state received: %d"), iTestState);
- StopTest(KErrGeneral, EFail);
- }
- }
- }
-
-/*
- *
- * MsgFromILComponent -
- *
- */
-TInt RTestStepMILIFCommands::MsgFromILComponent(const MILComponentIf* aComponent, const TILEvent& aEvent)
- {
- TInt error = KErrNone;
-
- if (aComponent != iDummyComponent)
- {
- ERR_PRINTF1(_L(" ERROR! - Invalid callback received"));
- StopTest(KErrGeneral, EFail);
- return KErrGeneral;
- }
-
- switch (aEvent.iEvent)
- {
- case EEventCmdComplete:
- {
- if (aEvent.iData1 == ECommandFlush)
- {
- INFO_PRINTF1(_L(" MsgFromILComponent:EEventCmdComplete -> ECommandFlush received"));
- Fsm(EEventFlushComplete, KErrNone);
- }
- else if (aEvent.iData1 == ECommandPortDisable)
- {
- INFO_PRINTF1(_L(" MsgFromILComponent:EEventCmdComplete -> ECommandPortDisable received"));
- Fsm(EEventPortDisableComplete, KErrNone);
- }
- else
- {
- ERR_PRINTF1(_L(" ERROR! - Unexpected callback received"));
- error = KErrGeneral;
- }
- break;
- }
- default:
- {
- ERR_PRINTF1(_L(" ERROR! - Unexpected callback received"));
- error = KErrNotSupported;
- }
- }
-
- if (error != KErrNone)
- {
- StopTest(error, EFail);
- }
- return error;
- }
-
-
-//
-// RTestStepMILIFExtensions: To test configuration of the IL component with extended params through MILIF.
-//
-
-/*
- *
- * RTestStepMILIFExtensions - Test step constructor
- *
- */
-RTestStepMILIFExtensions::RTestStepMILIFExtensions(const TDesC& aTestName)
-:RTestStepMILIFBase(aTestName)
- {
- }
-
-/*
- *
- * NewL
- *
- */
-RTestStepMILIFExtensions* RTestStepMILIFExtensions::NewL(const TDesC& aTestName)
- {
- RTestStepMILIFExtensions* self = new (ELeave) RTestStepMILIFExtensions(aTestName);
- return self;
- }
-
-/*
- *
- * DoKickoffTestL
- *
- */
-void RTestStepMILIFExtensions::DoKickoffTestL()
- {
- INFO_PRINTF1(_L("RTestStepMILIFExtensions: To test configuration of the IL component with extended params through MILIF interface."));
-
- RTestStepMILIFBase::DoKickoffTestL();
- }
-
-/*
- *
- * DoTestBodyL -
- *
- */
-void RTestStepMILIFExtensions::DoTestBody()
- {
-
- TInt error = KErrNone;
-
- INFO_PRINTF1(_L("4. Get Component Input ports through MILIF interface."));
- RPointerArray<MILComponentPortIf> ifPorts;
- error = iDummyComponent->GetComponentInputPorts(ifPorts);
- if (error == KErrNone && ifPorts.Count() == 1)
- {
- iComponentInPortIf = ifPorts[KZerothPort];
- ifPorts.Close();
- }
- else
- {
- if (ifPorts.Count() != 1)
- {
- error = KErrNotFound;
- }
- ifPorts.Close();
- StopTest(error, EFail);
- return;
- }
-
- INFO_PRINTF1(_L("5a. Set a (partial) config port parameter through the interface's extension mechanism."));
- TPortDefinitionType partialConfig_s;
- partialConfig_s.nBufferCountActual = 1;
- TILPortDefinition paramStruct_s(partialConfig_s);
- error = iDummyComponent->SetExtConfig(KExtensionPortDefinitionName, paramStruct_s, iComponentInPortIf);
- if ((iTestStepName == _L("MM-MILIF-DUMMYOMXILIF-U-0005")))
- {
- if (error != KErrNone)
- {
- ERR_PRINTF2(_L(" ERROR! - Fail to set extension: error = %d"), error);
- StopTest(error, EFail);
- return;
- }
- }
- else
- {
- StopTest(KErrGeneral, EFail);
- }
-
- INFO_PRINTF1(_L("5b. Get the parameter set in 5a through the interface's extension mechanism."));
- TILPortDefinition paramStruct_g;
- TPortDefinitionType* partialConfig_g = NULL;
- error = iDummyComponent->GetExtConfig(KExtensionPortDefinitionName, paramStruct_g, iComponentInPortIf);
- if ((iTestStepName == _L("MM-MILIF-DUMMYOMXILIF-U-0005")))
- {
- if (error != KErrNone)
- {
- ERR_PRINTF2(_L(" ERROR! - Fail to get TILPortDefinition: error = %d"), error);
- StopTest(error, EFail);
- return;
- }
- partialConfig_g = TILPortDefinition::GetStructure(paramStruct_g);
- if(partialConfig_g->nBufferCountActual != 1)
- {
- ERR_PRINTF1(_L(" ERROR! - Unexpected value. The get value does not match the value set."));
- StopTest(KErrCorrupt, EFail);
- return;
- }
- }
- else
- {
- StopTest(KErrGeneral, EFail);
- return;
- }
-
- StopTest(KErrNone);
- }
-
-
-//
-// RTestStepMILIFComponentRole: To test access to the IL component role through MILIF.
-//
-
-/*
- *
- * RTestStepMILIFComponentRole - Test step constructor
- *
- */
-RTestStepMILIFComponentRole::RTestStepMILIFComponentRole(const TDesC& aTestName)
-:RTestStepMILIFBase(aTestName)
- {
- }
-
-/*
- *
- * NewL
- *
- */
-RTestStepMILIFComponentRole* RTestStepMILIFComponentRole::NewL(const TDesC& aTestName)
- {
- RTestStepMILIFComponentRole* self = new (ELeave) RTestStepMILIFComponentRole(aTestName);
- return self;
- }
-
-/*
- *
- * DoKickoffTestL
- *
- */
-void RTestStepMILIFComponentRole::DoKickoffTestL()
- {
- INFO_PRINTF1(_L("RTestStepMILIFComponentRole: To test access to the IL component role through MILIF interface."));
-
- RTestStepMILIFBase::DoKickoffTestL();
- }
-
-/*
- *
- * DoTestBodyL -
- *
- */
-void RTestStepMILIFComponentRole::DoTestBody()
- {
- TInt error = KErrNone;
- TInt index = 0;
-
- HBufC8* buf = HBufC8::New(KMaxComponentRoleLength);
- if (buf == NULL)
- {
- StopTest(KErrNoMemory, EFail);
- }
- else
- {
- TPtr8 componentRole = buf->Des();
-
- INFO_PRINTF1(_L("4. Get component role through MILIF interface."));
- error = iDummyComponent->ComponentRoleEnum(componentRole, index);
-
- INFO_PRINTF1(_L("5. Check the component's role returned is the expected role."));
- if (error != KErrNone)
- {
- ERR_PRINTF2(_L(" ERROR! - MILComponentIf::ComponentRoleEnum failed. Error returned = %d"), error);
- StopTest(error, EFail);
- delete buf;
- return;
- }
- else if (buf->Compare(KFakeRole) != 0 )
- {
- ERR_PRINTF1(_L(" ERROR! - MILComponentIf::ComponentRoleEnum failed. Unexpected role."));
- StopTest(error, EFail);
- delete buf;
- return;
- }
- StopTest(KErrNone);
-
- delete buf;
- }
- }
-
--- a/omxil/mmilapi/unittest/src/tsu_milif_omxiliftests.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,189 +0,0 @@
-// Copyright (c) 2008-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:
-// Declarations of Unit test step classes for MILIF testing.
-//
-//
-
-#ifndef TSI_MILIF_OMXILIFTESTS_H
-#define TSI_MILIF_OMXILIFTESTS_H
-
-#include <e32base.h>
-#include <testframework.h>
-
-#include "milcomponentportif.h"
-#include "milifobserver.h"
-
-enum TTestEvents
- {
- EEventInit = 0,
- EEventInitComplete,
- EEventExecuteComplete,
- EEventPauseComplete,
- EEventStopComplete,
- EEventFlushComplete,
- EEventPortDisableComplete
- };
-
-enum TTestState
- {
- ETestStateStart = 0,
- ETestStateInitializing,
- ETestStateInitialized,
- ETestStatePausing,
- ETestStateStopping,
- ETestStateFlushing,
- ETestStateFirstPortFlushed,
- ETestStateDisablingPort
- };
-
-
-/*
- *
- * RTestStepMILIFBase
- *
- */
-class RTestStepMILIFBase : public RAsyncTestStep,
- public MILIfObserver
- {
-public:
- // From RAsyncTestStep
- virtual void KickoffTestL();
- virtual void CloseTest();
-
- // from MILIfObserver
- virtual TInt MsgFromILComponent(const MILComponentIf* aComponent, const TILEvent& aEvent);
- virtual TInt BufferDelivered(const MILComponentPortIf* aPort, const CMMFBuffer* aBuffer);
-
-protected:
- RTestStepMILIFBase(const TDesC& aTestName);
-
- virtual void DoTestBody();
- virtual void DoKickoffTestL();
-
-protected:
- MILComponentIf* iDummyComponent;
- MILComponentPortIf* iComponentInPortIf; // Not owned
- MILComponentPortIf* iComponentOutPortIf;// Not owned
- TTestState iTestState;
- };
-
-/*
- *
- * RTestStepMILIFPorts
- *
- */
-class RTestStepMILIFPorts : public RTestStepMILIFBase
- {
-public:
- static RTestStepMILIFPorts* NewL(const TDesC& aTestName);
-
-private:
- RTestStepMILIFPorts(const TDesC& aTestName);
-
- virtual void DoKickoffTestL();
- virtual void DoTestBody();
- };
-
-/*
- *
- * RTestStepMILIFConfig
- *
- */
-class RTestStepMILIFConfig : public RTestStepMILIFBase
- {
-public:
- static RTestStepMILIFConfig* NewL(const TDesC& aTestName);
-
-private:
- RTestStepMILIFConfig(const TDesC& aTestName);
-
- virtual void DoTestBody();
- virtual void DoKickoffTestL();
- };
-
-/*
- *
- * RTestStepMILIFStates
- *
- */
-class RTestStepMILIFStates : public RTestStepMILIFBase
- {
-public:
- static RTestStepMILIFStates* NewL(const TDesC& aTestName);
-
-private:
- RTestStepMILIFStates(const TDesC& aTestName);
-
- virtual void DoKickoffTestL();
- virtual void DoTestBody();
-
- virtual TInt MsgFromILComponent(const MILComponentIf* aComponent, const TILEvent& aEvent);
- virtual void Fsm(TTestEvents aEvent, TInt aError);
- };
-
-/*
- *
- * RTestStepMILIFCommands
- *
- */
-class RTestStepMILIFCommands : public RTestStepMILIFBase
- {
-public:
- static RTestStepMILIFCommands* NewL(const TDesC& aTestName);
-
-private:
- RTestStepMILIFCommands(const TDesC& aTestName);
-
- virtual void DoKickoffTestL();
- virtual void DoTestBody();
-
- virtual TInt MsgFromILComponent(const MILComponentIf* aComponent, const TILEvent& aEvent);
- virtual void Fsm(TTestEvents aEvent, TInt aError);
- };
-
-/*
- *
- * RTestStepMILIFExtensions
- *
- */
-class RTestStepMILIFExtensions : public RTestStepMILIFBase
- {
-public:
- static RTestStepMILIFExtensions* NewL(const TDesC& aTestName);
-
-private:
- RTestStepMILIFExtensions(const TDesC& aTestName);
-
- virtual void DoKickoffTestL();
- virtual void DoTestBody();
- };
-
-/*
- *
- * RTestStepMILIFComponentRole
- *
- */
-class RTestStepMILIFComponentRole : public RTestStepMILIFBase
- {
-public:
- static RTestStepMILIFComponentRole* NewL(const TDesC& aTestName);
-
-private:
- RTestStepMILIFComponentRole(const TDesC& aTestName);
-
- virtual void DoKickoffTestL();
- virtual void DoTestBody();
- };
-
-#endif // TSI_MILIF_OMXILIFTESTS_H
--- a/omxil/mmilapi/unittest/src/tsu_milif_testsuite.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-// Copyright (c) 2008-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:
-// This file contains the test suite class implementation for MILIF unit tests.
-//
-//
-
-#include "tsu_milif_testsuite.h"
-#include "tsu_milif_omxiliftests.h"
-
-// Entry function - create a test suite object
-EXPORT_C CTestSuiteMILIF* CTestSuiteMILIF::NewTestSuiteL()
- {
- CTestSuiteMILIF* result = new (ELeave) CTestSuiteMILIF();
- CleanupStack::PushL(result);
- result->ConstructL();
- CleanupStack::Pop(result);
- return result;
- }
-
-/*
- *
- * CTestSuiteMILIF - Constructor
- *
- */
-CTestSuiteMILIF::CTestSuiteMILIF()
- {
- iSuiteName = _L("TSU_MILIF_OMXILIF");
- }
-
-/*
- *
- * ~CTestSuiteMILIF - Destructor
- *
- */
-CTestSuiteMILIF::~CTestSuiteMILIF()
- {
- }
-
-/*
- * GetVersion - Get test suite version
- *
- */
-TPtrC CTestSuiteMILIF::GetVersion() const
- {
- _LIT(KTxtVersion, "1.0");
- return KTxtVersion();
- }
-
-/*
- *
- * InitialiseL - Creates all the test steps and stores them inside CTestSuiteMILIF
- *
- */
-void CTestSuiteMILIF::InitialiseL()
- {
- AddTestStepL(RTestStepMILIFPorts::NewL(_L("MM-MILIF-DUMMYOMXILIF-U-0001")));
- AddTestStepL(RTestStepMILIFConfig::NewL(_L("MM-MILIF-DUMMYOMXILIF-U-0002")));
- AddTestStepL(RTestStepMILIFStates::NewL(_L("MM-MILIF-DUMMYOMXILIF-U-0003")));
- AddTestStepL(RTestStepMILIFCommands::NewL(_L("MM-MILIF-DUMMYOMXILIF-U-0004")));
- AddTestStepL(RTestStepMILIFExtensions::NewL(_L("MM-MILIF-DUMMYOMXILIF-U-0005")));
- AddTestStepL(RTestStepMILIFComponentRole::NewL(_L("MM-MILIF-DUMMYOMXILIF-U-0006")));
- }
--- a/omxil/mmilapi/unittest/src/tsu_milif_testsuite.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-// Copyright (c) 2008-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:
-// This file contains the test suite class declaration for MILIF unit tests.
-//
-//
-
-#ifndef TSU_MILIF_TESTSUITE_H
-#define TSU_MILIF_TESTSUITE_H
-
-#include <e32base.h>
-#include <testframework.h>
-
-/*
- *
- * CTestSuiteMILIF
- * - Test suite class
- *
- */
-class CTestSuiteMILIF : public CTestSuite
- {
-public:
- virtual ~CTestSuiteMILIF();
-
- // From CTestSuite
- void InitialiseL();
- TPtrC GetVersion() const;
-
- IMPORT_C static CTestSuiteMILIF* NewTestSuiteL();
-
-private:
- CTestSuiteMILIF();
- };
-
-#endif // TSU_MILIF_TESTSUITE_H
--- a/omxil/mmilapi/unittest/test_plugins/audioilhwdevice_mvs_test/omxilvorbdechwdevice/omxilvorbdechwdevice.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,677 +0,0 @@
-// Copyright (c) 2008-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:
-// vorbisdecilhwdevice.cpp
-//
-//
-
-#include "omxilvorbdechwdevice.h"
-
-#include <ecom/implementationproxy.h>
-#include <openmax/il/khronos/v1_x/OMX_Core.h>
-#include <mmf/server/mmfhwdevicesetup.h>
-#include <a3f/audioformatuids.h>
-
-#include "tilstructtypes.h"
-#include "ilcomponentif.h"
-#include "iltestuids.hrh"
-
-
-
-_LIT8(KNULLName,"");
-_LIT8(KVorbisDecoderILComponentName,"OMX.SYMBIAN.AUDIO.DECODER.VORBIS");
-
-const TInt KZerothPort = 0;
-const TInt KInputPortIndex = 0;
-const TInt KMaxNumberPort = 1;
-
-// _________________________________________________________________________________
-// Map the interface implementation KUidAudioDecILHwDevice UID to the implementation
-
-const TImplementationProxy ImplementationTable[] =
- {
- IMPLEMENTATION_PROXY_ENTRY(KUidOmxILVorbDecHwDevice , COmxILVorbDecHwDevice::NewL)
- };
-
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
- {
- aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
-
- return ImplementationTable;
- }
-// _________________________________________________________________________________
-
-
-/*
-The destructor. Releases the components and frees any owned buffers.
-@see CMMFHwDevice::~CMMFHwDevice()
-*/
-COmxILVorbDecHwDevice::~COmxILVorbDecHwDevice()
- {
- Stop();
-
- if (iCodecIf)
- {
- iCodecIf->ReleaseComponent();
- iCodecIf = NULL;
- }
- if (iRendererIf)
- {
- iRendererIf->ReleaseComponent();
- iRendererIf = NULL;
- }
-
- iCodecInPortIf = NULL;
- iCodecOutPortIf = NULL;
- iRendererInPortIf = NULL;
-
- delete iInBuffer;
- iInBuffer = NULL;
- delete iOutBuffer;
- iOutBuffer = NULL;
-
- delete iActiveWait;
-
- OMX_Deinit();
- }
-
-/**
-Creates a new COmxILVorbDecHwDevice object.
-The COmxILVorbDecHwDevice state is set to EILHwDeviceLoaderLoaded.
-@see TILHwDevState
-*/
-COmxILVorbDecHwDevice* COmxILVorbDecHwDevice::NewL()
- {
- COmxILVorbDecHwDevice* self = new (ELeave) COmxILVorbDecHwDevice;
- CleanupStack::PushL (self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-/*
-Default constructor.
-*/
-COmxILVorbDecHwDevice::COmxILVorbDecHwDevice()
- {
- }
-
-/*
-Second phase constructor
-*/
-void COmxILVorbDecHwDevice::ConstructL()
- {
- iActiveWait = new (ELeave) CActiveSchedulerWait;
- iState = EILHwDeviceCreated;
- OMX_Init();
-
- iCodecIf = CILComponentIf::CreateImplementationL(TUid::Uid(KUidOmxILDummyAudioDecMILIFPlugin));
- iCodecIf->CreateComponentL(KVorbisDecoderILComponentName, *this);
- User::LeaveIfError(iCodecIf->SetComponentIfRole(KUidFormatOGG));
-
- iRendererIf = CILComponentIf::CreateImplementationL(TUid::Uid(KUidDummyPcmRendererMILIFPlugin));
- iRendererIf->CreateComponentL(KNULLName, *this); //
-
- }
-
-/*
-@see CMMFHwDevice::Start()
-@see TDeviceFunc
-*/
-TInt COmxILVorbDecHwDevice::Start(TDeviceFunc aFuncCmd, TDeviceFlow /*aFlowCmd*/)
- {
- if (!((aFuncCmd == EDevDecode)|(aFuncCmd == EDevNullFunc)))
- {
- return KErrArgument;
- }
-
- TInt err = KErrNone;
- switch(aFuncCmd)
- {
- case EDevDecode:
- {
- err = StartDecode();
- break;
- }
- default:
- {
- err = KErrNotSupported;
- }
- }
-
- return err;
- }
-
-
-/*
-Starts the execution of the decode operation, and sets the state
-of the COmxILVorbDecHwDevice to EILHwDeviceExecuting.
-@return An error code indicating if the function call was successful.
-KErrNone on success, otherwise another of the system-wide error codes.
-*/
-TInt COmxILVorbDecHwDevice::StartExecuting()
- {
- TInt err = KErrNone;
- iCodecOutPortIf->FillThisBuffer(*iOutBuffer);
- err = iHwDeviceObserver->FillThisHwBuffer(*iInBuffer);
- if(err != KErrNone)
- {
- return err;
- }
-
- iState = EILHwDeviceExecuting;
-
- iCodecIf->Execute();
- iRendererIf->Execute();
-
- return err;
- }
-
-/*
-Initialises the decode operation, and set the state of the COmxILVorbDecHwDevice
-to EILHwDeviceInitializing.
-@return An error code indicating if the function call was successful.
-KErrNone on success, otherwise another of the system-wide error codes.
-*/
-TInt COmxILVorbDecHwDevice::InitializeDecode()
- {
- ASSERT(iCodecOutPortIf && iRendererInPortIf);
-
- //GetConfig from codec input port;
- TILPortDefinition paramStruct;
- TPortDefinitionType* config = NULL;
- TInt err =iCodecIf->GetConfig(paramStruct, iCodecInPortIf);
- if (err != KErrNone)
- {
- return err;
- }
- config = TILPortDefinition::GetStructure(paramStruct);
- TRAP(err, iInBuffer = CMMFDescriptorBuffer::NewL(config->nBufferSize));
- if(err != KErrNone)
- {
- return err;
- }
- iCodecInPortIf->UseBuffer(*iInBuffer);
-
- //GetConfig from codec output port;
- err =iCodecIf->GetConfig(paramStruct, iCodecOutPortIf);
- if (err != KErrNone)
- {
- return err;
- }
- config = TILPortDefinition::GetStructure(paramStruct);
- TRAP(err, iOutBuffer = CMMFDescriptorBuffer::NewL(config->nBufferSize));
- if(err != KErrNone)
- {
- return err;
- }
- iCodecOutPortIf->UseBuffer(*iOutBuffer);
-
- iState = EILHwDeviceInitializing;
-
- iCodecIf->Initialize();
- iRendererIf->Initialize();
-
- iActiveWait->Start();
- return KErrNone;
- }
-
-/*
-Starts the decode operation, providing that the intial state of the
-COmxILVorbDecHwDevice is EILHwDeviceLoaded.
-@return An error code indicating if the function call was successful.
-KErrNone on success, otherwise another of the system-wide error codes.
-*/
-TInt COmxILVorbDecHwDevice::StartDecode()
- {
- TInt err = KErrNone;
- if (iState == EILHwDeviceLoaded)
- {
- err = InitializeDecode();
- }
- if (err != KErrNone)
- {
- return err;
- }
- if (iState == EILHwDeviceIdle)
- {
- // Ensure that the LastBuffer flags are reset.
- iInBuffer->SetLastBuffer(EFalse);
- iOutBuffer->SetLastBuffer(EFalse);
- }
- return StartExecuting();
- }
-
-/*
-@see CMMFHwDevice::Stop()
-*/
-TInt COmxILVorbDecHwDevice::Stop()
- {
- if(iState == EILHwDeviceExecuting || iState == EILHwDevicePaused)
- {
- iStopping = ETrue;
-
- // reset the flags
- iCodecCallbackComplete = EFalse;
- iRendererCallbackComplete = EFalse;
-
- if(iRendererIf)
- {
- iRendererIf->Stop();
- }
- if(iCodecIf)
- {
- iCodecIf->Stop();
- }
-
- iState = EILHwDeviceIdle;
- }
- return KErrNone;
- }
-
-/*
-@see CMMFHwDevice::Pause()
-*/
-TInt COmxILVorbDecHwDevice::Pause()
- {
- TInt err = KErrNone;
- if(iState != EILHwDevicePaused)
- {
- if(iRendererIf)
- {
- err = iRendererIf->Pause();
- }
- iState = EILHwDevicePaused;
- }
- return err;
- }
-
-/*
-@see CMMFHwDevice::Init()
-*/
-TInt COmxILVorbDecHwDevice::Init(THwDeviceInitParams& aDevInfo)
- {
- RPointerArray<MILComponentPortIf> ifPorts;
-
- if(!aDevInfo.iHwDeviceObserver)
- {
- return KErrArgument;
- }
- iHwDeviceObserver = aDevInfo.iHwDeviceObserver;
-
- if(!iCodecIf)
- {
- return KErrNotSupported;
- }
-
- // Get decoder input port. For this particular scenario expects one single port.
- TInt err = iCodecIf->GetComponentInputPorts(ifPorts);
- if (err == KErrNone && ifPorts.Count() == KMaxNumberPort)
- {
- iCodecInPortIf = ifPorts[KZerothPort];
- ifPorts.Close();
- }
- else
- {
- if (!ifPorts.Count() != KMaxNumberPort)
- {
- err = KErrNotFound;
- }
- ifPorts.Close();
- return err;
- }
-
- // Get decoder ouput port. For this particular scenario expects one single port.
- err = iCodecIf->GetComponentOutputPorts(ifPorts);
- if (err == KErrNone && ifPorts.Count() == KMaxNumberPort)
- {
- iCodecOutPortIf = ifPorts[KZerothPort];
- ifPorts.Close();
- }
- else
- {
- if (!ifPorts.Count() != KMaxNumberPort)
- {
- err = KErrNotFound;
- }
- ifPorts.Close();
- return err;
- }
-
- if(!iRendererIf)
- {
- return KErrNotSupported;
- }
-
- // Get renderer inport port. For this particular scenario expects one single port.
- err = iRendererIf->GetComponentInputPorts(ifPorts);
- if (err == KErrNone && ifPorts.Count() == KMaxNumberPort)
- {
- iRendererInPortIf = ifPorts[KZerothPort];
- ifPorts.Close();
- }
- else
- {
- if (!ifPorts.Count() != KMaxNumberPort)
- {
- err = KErrNotFound;
- }
- ifPorts.Close();
- return err;
- }
-
- iState = EILHwDeviceLoaded;
- return KErrNone;
- }
-
-/*
-@see CMMFHwDevice::CustomInterface()
-*/
-TAny* COmxILVorbDecHwDevice::CustomInterface(TUid aInterfaceId)
- {
- if (aInterfaceId.iUid == KMmfPlaySettingsCustomInterface)
- {
- return iRendererIf->CustomInterface(aInterfaceId);
- }
- else
- {
- return NULL;
- }
- }
-
-/*
-@see CMMFHwDevice::ThisHwBufferFilled()
-*/
-TInt COmxILVorbDecHwDevice::ThisHwBufferFilled(CMMFBuffer& aFillBufferPtr)
- {
- aFillBufferPtr.SetStatus(EFull);
- iCodecInPortIf->EmptyThisBuffer(aFillBufferPtr);
- return KErrNone;
- }
-
-/*
-@see CMMFHwDevice::ThisHwBufferEmptied()
-*/
-TInt COmxILVorbDecHwDevice::ThisHwBufferEmptied(CMMFBuffer& /*aEmptyBufferPtr*/)
- {
- // Not used while decoding
- return KErrNotSupported;
- }
-
-/*
-@see CMMFHwDevice::SetConfig()
-*/
-TInt COmxILVorbDecHwDevice::SetConfig(TTaskConfig& aConfig)
- {
- TInt err = KErrNone;
-
- // Configure the Codec component
- TILTaskConfig configStruct(aConfig);
- err = iCodecIf->SetConfig(configStruct, iCodecInPortIf);
- if(err != KErrNone)
- {
- return err;
- }
- err = iCodecIf->SetConfig(configStruct, iCodecOutPortIf);
- if(err != KErrNone)
- {
- return err;
- }
- err = iRendererIf->SetConfig(configStruct, iCodecInPortIf);
- if(err != KErrNone)
- {
- return err;
- }
-
- return KErrNone;
- }
-
-/*
-@see CMMFHwDevice::StopAndDeleteCodec()
-*/
-TInt COmxILVorbDecHwDevice::StopAndDeleteCodec()
- {
- TInt stopError = Stop();
- TInt deleteError = DeleteCodec();
-
- if (stopError != KErrNone)
- {
- return stopError;
- }
- else
- {
- return deleteError;
- }
- }
-
-/*
-Unloads all components, and deletes any locally owned buffers.
-State is set to EILHwDeviceLoaderLoaded.
-
-@see CMMFHwDevice::DeleteCodec()
-*/
-TInt COmxILVorbDecHwDevice::DeleteCodec()
- {
- Stop();
- if (iCodecIf)
- {
- iCodecIf->ReleaseComponent();
- iCodecIf = NULL;
- }
- if (iRendererIf)
- {
- iRendererIf->ReleaseComponent();
- iRendererIf = NULL;
- }
-
- iCodecInPortIf = NULL;
- iCodecOutPortIf = NULL;
- iRendererInPortIf = NULL;
-
- delete iInBuffer;
- iInBuffer = NULL;
- delete iOutBuffer;
- iOutBuffer = NULL;
-
- iState = EILHwDeviceCreated;
-
- return KErrNone;
- }
-
-/*
-Called to indicate that the Hardware Device has been stopped, leading
-to callbacks to the observer.
-@see MMMFHwDeviceObserver::Stopped()
-@see MMMFHwDeviceObserver::Error()
-*/
-void COmxILVorbDecHwDevice::StopHwDevice(TInt error)
- {
- iHwDeviceObserver->Stopped();
- iHwDeviceObserver->Error(error);
- }
-
-/*
-Called to process messages from the IL components
-*/
-TInt COmxILVorbDecHwDevice::MsgFromILComponent(const MILComponentIf* aComponent, const TILEvent& aEvent)
- {
- TInt err = KErrNone;
- switch (aEvent.iEvent)
- {
- case EEventCmdComplete:
- {
- if (aEvent.iData1 == ECommandStateSet)
- {
- if (aEvent.iData2 == EComponentIdle)
- {
- if (iState == EILHwDeviceInitializing)
- {
- InitializeComplete(aComponent, KErrNone);
- }
- else
- {
- ExecuteComplete(aComponent, KErrNone);
- }
- }
- else if(aEvent.iData2 == EComponentExecuting)
- {
- ExecuteComplete(aComponent, KErrNone);
- }
- else
- {
- StopHwDevice(KErrNotSupported);
- }
- break;
- }
- else if (aEvent.iData1 == ECommandFlush)
- {
- //Command Flush completed
- err = KErrNotSupported; // check what a3f should do here if anything
- break;
- }
- }
- case EEventBufferFlag:
- {
- if (aEvent.iData1 == KInputPortIndex)
- {
- if (iState == EILHwDeviceExecuting)
- {
- StopHwDevice(aEvent.iData2);
- iState = EILHwDeviceIdle;
- }
- }
- else
- {
- err = KErrNotSupported;
- }
- break;
- }
- default:
- {
- err = KErrNotSupported;
- StopHwDevice(err);
- }
- }
- return err;
- }
-
-/*
-Called to indicate that the buffer has been delivered.
-*/
-TInt COmxILVorbDecHwDevice::BufferDelivered(const MILComponentPortIf* aPort, const CMMFBuffer* aBuffer)
- {
- TInt err = KErrNone;
-
- if(aPort == iCodecInPortIf)
- {
- if (!aBuffer->LastBuffer())
- {
- // if the device is idle (having been Stopped) then
- // FillThisHwBuffer will cause a kern-exec,
- // as the DevSoundSession no longer has a buffer
- if(iState == EILHwDeviceExecuting)
- {
- err = iHwDeviceObserver->FillThisHwBuffer(const_cast<CMMFBuffer&>(*aBuffer));
- if(err != KErrNone)
- {
- StopHwDevice(err);
- }
- }
- }
- }
- else if (aPort == iRendererInPortIf)
- {
- if (!aBuffer->LastBuffer())
- {
- err = iCodecOutPortIf->FillThisBuffer(*iOutBuffer);
- }
- }
- else if(aPort == iCodecOutPortIf)
- {
- err = iRendererInPortIf->EmptyThisBuffer(*aBuffer);
- }
- else
- {
- err = KErrNotSupported;
- }
- return err;
- }
-
-void COmxILVorbDecHwDevice::InitializeComplete(const MILComponentIf* aComponent, TInt aErrorCode)
- {
- if(aErrorCode != KErrNone)
- {
- // stop waiting on the active scheduler if we were doing so
- if (iState == EILHwDeviceInitializing)
- {
- // change state back to loaded
- iState = EILHwDeviceLoaded;
- iActiveWait->AsyncStop();
- }
- return;
- }
-
- if(aComponent == iCodecIf)
- {
- iCodecCallbackComplete = ETrue;
- }
- else if(aComponent == iRendererIf)
- {
- iRendererCallbackComplete = ETrue;
- }
-
- if(iCodecCallbackComplete && iRendererCallbackComplete)
- {
- // reset the flags
- iCodecCallbackComplete = EFalse;
- iRendererCallbackComplete = EFalse;
-
- // Both components initialised OK
- if (iState == EILHwDeviceInitializing)
- {
- iActiveWait->AsyncStop();
- }
- iState = EILHwDeviceIdle;
- }
- }
-
-void COmxILVorbDecHwDevice::ExecuteComplete(const MILComponentIf* aComponent, TInt aErrorCode)
- {
-
- if(aComponent == iCodecIf)
- {
- iCodecCallbackComplete = ETrue;
- }
- else if(aComponent == iRendererIf)
- {
- iRendererCallbackComplete = ETrue;
- }
-
- if (iCodecCallbackComplete && iRendererCallbackComplete)
- {
- if (iStopping)
- {
- StopHwDevice(aErrorCode);
- iState = EILHwDeviceIdle;
- iStopping = EFalse;
- }
- else if((aErrorCode != KErrNone ) && (iState == EILHwDeviceExecuting))
- {
- // stop the hardware device if we are still executing
- StopHwDevice(aErrorCode);
-
- iCodecCallbackComplete = EFalse;
- iRendererCallbackComplete = EFalse;
- }
- }
- }
--- a/omxil/mmilapi/unittest/test_plugins/audioilhwdevice_mvs_test/omxilvorbdechwdevice/omxilvorbdechwdevice.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,124 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @internalComponent
-*/
-
-#ifndef OMXILVORBDECHWDEVICE_H
-#define OMXILVORBDECHWDEVICE_H
-
-#include <mmf/server/mmfhwdevice.h>
-#include <mmf/server/mmfdatabuffer.h>
-#include <mmf/common/mmfutilities.h>
-
-#include "milcomponentportif.h"
-#include "milifobserver.h"
-
-class CMMFBuffer;
-
-/**
-Audio Decoder IL Hardware Device class that uses IL Components in order to decode audio data.
-@see CMMFHwDevice
-@see MMdfHwDeviceSetup
-@see MILIfObserver
-*/
-class COmxILVorbDecHwDevice : public CMMFHwDevice,
- public MILIfObserver
- {
-public:
- /*
- The current state of the IL Hardware Device.
- */
- enum TILHwDevState
- {
- /*
- The HwDevice has just been created.
- */
- EILHwDeviceCreated,
- /*
- The components have been loaded.
- */
- EILHwDeviceLoaded,
- /*
- The components are currently being initialised.
- */
- EILHwDeviceInitializing,
- /*
- The components are currently in the idle state.
- */
- EILHwDeviceIdle,
- /*
- The components are currently in the executing state.
- */
- EILHwDeviceExecuting,
- /*
- The components are currently in the paused state.
- */
- EILHwDevicePaused
- };
-
-public:
- static COmxILVorbDecHwDevice* NewL();
-
- // from CMMFHwDevice
- TInt Start(TDeviceFunc aFuncCmd, TDeviceFlow aFlowCmd);
- TInt Stop();
- TInt Pause();
- TInt Init(THwDeviceInitParams& aDevInfo);
- TAny* CustomInterface(TUid aInterfaceId);
- TInt ThisHwBufferFilled(CMMFBuffer& aFillBufferPtr);
- TInt ThisHwBufferEmptied(CMMFBuffer& aEmptyBufferPtr);
- TInt SetConfig(TTaskConfig& aConfig);
- TInt StopAndDeleteCodec();
- TInt DeleteCodec();
- ~COmxILVorbDecHwDevice();
-
- // from MILIfObserver
- TInt MsgFromILComponent(const MILComponentIf* aComponent,const TILEvent& aEvent);
- TInt BufferDelivered(const MILComponentPortIf* aPort, const CMMFBuffer* aBuffer);
-
-
-private:
- COmxILVorbDecHwDevice();
- void ConstructL();
- TInt CreateBuffers();
- TInt StartDecode();
- TInt InitializeDecode();
- TInt StartExecuting();
- void StopHwDevice(TInt error);
-
- void InitializeComplete(const MILComponentIf* aComponent, TInt aErrorCode);
- void ExecuteComplete(const MILComponentIf* aComponent, TInt aErrorCode);
-
-private:
- MILComponentIf* iCodecIf;
- MILComponentIf* iRendererIf;
- MILComponentPortIf* iCodecInPortIf;
- MILComponentPortIf* iCodecOutPortIf;
- MILComponentPortIf* iRendererInPortIf;
- CMMFBuffer* iInBuffer;
- CMMFBuffer* iOutBuffer;
- TBool iCodecCallbackComplete;
- TBool iRendererCallbackComplete;
-
- TILHwDevState iState;
- TBool iStopping;
-
- CActiveSchedulerWait* iActiveWait;
- };
-
-#endif // OMXILVORBDECHWDEVICE_H
--- a/omxil/mmilapi/unittest/test_plugins/audioilhwdevice_mvs_test/omxilvorbdechwdevice/omxilvorbdechwdevice.rss Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include <ecom/registryinfo.rh>
-#include <mmfplugininterfaceuids.hrh> // for Mmf Plugin Interface HwDevice UID
-#include "iltestuids.hrh"
-
-RESOURCE REGISTRY_INFO theInfo
- {
- dll_uid = KUidOmxILVorbDecHwDeviceDll;
- interfaces =
- {
- INTERFACE_INFO
- {
- interface_uid = KMmfUidPluginInterfaceHwDevice;
- implementations =
- {
- IMPLEMENTATION_INFO
- {
- implementation_uid = KUidOmxILVorbDecHwDevice;
- version_no = 1;
- display_name = "OMX IL Vorbis Decoder Hw Device";
- default_data = "VRBT, P16" ; // four CC code is a dummy VRBT = Vorb Test
- opaque_data = "";
- }
- };
- }
- };
- }
--- a/omxil/mmilapi/unittest/test_plugins/dummypcmrenderer/dummypcmrenderer.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,532 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include "dummypcmrenderer.h"
-#include "iltestuids.hrh"
-#include "tilstructtypes.h"
-#include <ecom/implementationproxy.h>
-#include <mmf/server/mmfdatabuffer.h>
-
-
-#define KDummyPCM16FormatUid 0x10111126 //dummy
-
-const TInt KBufferSize = 16384; // we need 16k to hold a pcm packet
-
-const TInt KDefaultSampleRate = 8000;
-const TInt KDefaultNumberChannels = 1;
-
-const TInt KInputPortIndex = 0;
-
-
-// ------------------------------------------------------------------------------------------
-// CDummyPcmRenderer::CInputPort Implementation
-
-CDummyPcmRenderer::CInputPort::CInputPort(CDummyPcmRenderer& aParent)
- : CActive(EPriorityNormal),
- iParent(aParent),
- iSampleRate(KDefaultSampleRate),
- iChannels(KDefaultNumberChannels),
- iBufferSize(KBufferSize)
- {
- CActiveScheduler::Add(this);
- }
-
-CDummyPcmRenderer::CInputPort::~CInputPort()
- {
- Cancel();
- iBuffers.Close();
- }
-
-CDummyPcmRenderer::CInputPort* CDummyPcmRenderer::CInputPort::NewL(CDummyPcmRenderer& aParent)
- {
- CInputPort* self = new (ELeave) CInputPort(aParent);
- return self;
- }
-
-TInt CDummyPcmRenderer::CInputPort::FillThisBuffer(CMMFBuffer& /*aInputBuffer*/)
- {
- return KErrNotSupported;
- }
-
-TInt CDummyPcmRenderer::CInputPort::EmptyThisBuffer(const CMMFBuffer& aInputBuffer)
- {
- TInt err = iBuffers.Append(&aInputBuffer);
- if (err == KErrNone)
- {
- TILComponentState state;
- if (iParent.GetState(state) != KErrNone)
- {
- return EComponentInvalid;
- }
- if (state == EComponentExecuting && !IsActive())
- {
- SetActive();
- TRequestStatus* status = &iStatus;
- User::RequestComplete(status, KErrNone);
- }
- }
- return err;
- }
-
-TInt CDummyPcmRenderer::CInputPort::TunnelRequest(MILComponentPortIf* aPort)
- {
- TILComponentState state;
- if (iParent.GetState(state) != KErrNone)
- {
- return EComponentInvalid;
- }
- if (( state != EComponentLoaded) && (!iStopped))
- {
- return EComponentInvalid;
- }
-
- if (iPortConnectedTo)
- {
- // the port is already connected, return an error
- return EPortAlreadyTunnelled;
- }
- iPortConnectedTo = const_cast<MILComponentPortIf*>(aPort);
- return KErrNone;
- }
-
-TInt CDummyPcmRenderer::CInputPort::DisconnectTunnel(MILComponentPortIf* /*aPort*/)
- {
- return KErrNotSupported;
- }
-
-TInt CDummyPcmRenderer::CInputPort::PortIndex() const
- {
- return KInputPortIndex;
- }
-
-TPortDirection CDummyPcmRenderer::CInputPort::PortDirection() const
- {
- return EDirInput;
- }
-
-
-CMMFBuffer* CDummyPcmRenderer::CInputPort::CreateBufferL(TInt /*aBufferSize*/)
- {
- User::Leave(KErrNotSupported);
- return NULL;
- }
-
-TInt CDummyPcmRenderer::CInputPort::UseBuffer(CMMFBuffer& /*aBuffer*/)
- {
- return KErrNotSupported;
- }
-
-TInt CDummyPcmRenderer::CInputPort::FreeBuffer(CMMFBuffer* /*aBuffer*/)
- {
- return KErrNotSupported;
- }
-
-TInt CDummyPcmRenderer::CInputPort::FlushPort()
- {
- return KErrNotSupported;
- }
-
-TInt CDummyPcmRenderer::CInputPort::EnablePort()
- {
- return KErrNotSupported;
- }
-
-TInt CDummyPcmRenderer::CInputPort::DisablePort()
- {
- return KErrNotSupported;
- }
-
-MILComponentIf* CDummyPcmRenderer::CInputPort::PortComponent() const
- {
- return &iParent;
- }
-
-void CDummyPcmRenderer::CInputPort::SetVolume(TUint aVolume)
- {
- iVolume = aVolume;
- }
-
-TUint CDummyPcmRenderer::CInputPort::Volume()
- {
- return iVolume;
- }
-
-TUint CDummyPcmRenderer::CInputPort::BytesPlayed()
- {
- return iBytesPlayed;
- }
-
-void CDummyPcmRenderer::CInputPort::SetVolumeRamp(const TTimeIntervalMicroSeconds& aRampDuration)
- {
- iRampDuration = aRampDuration;
- }
-
-TTimeIntervalMicroSeconds& CDummyPcmRenderer::CInputPort::VolumeRamp()
- {
- return iRampDuration;
- }
-
-TInt CDummyPcmRenderer::CInputPort::SampleRate()
- {
- return iSampleRate;
- }
-
-TInt CDummyPcmRenderer::CInputPort::Channels()
- {
- return iChannels;
- }
-
-TUint32 CDummyPcmRenderer::CInputPort::BufferSize() const
- {
- return iBufferSize;
- }
-
-void CDummyPcmRenderer::CInputPort::Execute()
- {
- if (!IsActive() && iBuffers.Count()>0)
- {
- SetActive();
- TRequestStatus* status = &iStatus;
- User::RequestComplete(status, KErrNone);
- }
- }
-
-void CDummyPcmRenderer::CInputPort::Pause()
- {
- if (iParent.SoundDevice().Handle())
- {
- iParent.SoundDevice().PausePlayBuffer();
- }
- }
-
-void CDummyPcmRenderer::CInputPort::Stop()
- {
- Cancel();
- }
-
-void CDummyPcmRenderer::CInputPort::RunL()
- {
-
- if (iCurrentBuffer != NULL)
- {
- // If we've been signalled with a buffer, callback that we've completed the writing of the
- // buffer
- if (iParent.Observer())
- {
- iParent.Observer()->BufferDelivered(this, iCurrentBuffer);
- if (iCurrentBuffer->LastBuffer())
- {
- TILEvent thisEvent;
- thisEvent.iEvent = EEventBufferFlag;
- thisEvent.iData1 = PortIndex();
- thisEvent.iData2 = static_cast<TUint32>(KErrUnderflow);
- iParent.Observer()->MsgFromILComponent(&iParent, thisEvent);
- iParent.SoundDevice().Close();
- }
- }
- iCurrentBuffer = NULL;
- }
-
- // only process the next buffer if there is no error
- // error callbacks were handled in the previous block
- if (iStatus == KErrNone)
- {
- if (iBuffers.Count()>0)
- {
- iCurrentBuffer = iBuffers[0];
- iBuffers.Remove(0);
-
- if (CMMFBuffer::IsSupportedDataBuffer(iCurrentBuffer->Type()))
- {
- TDes8& aBufferDes = (static_cast<CMMFDataBuffer*>(iCurrentBuffer))->Data();
- iStatus = KRequestPending;
- iParent.SoundDevice().PlayData(iStatus, aBufferDes);
- SetActive();
- }
- }
- }
- else
- {
- // In the real implementation here should be sending an error event back to the client
- }
- }
-
-void CDummyPcmRenderer::CInputPort::DoCancel()
- {
- if (iParent.SoundDevice().Handle())
- {
- iParent.SoundDevice().CancelPlayData();
- iParent.SoundDevice().FlushPlayBuffer();
- }
- }
-
-// ------------------------------------------------------------------------------------------
-// CDummyPcmRenderer Implementation
-
-CDummyPcmRenderer::CDummyPcmRenderer()
- {
- }
-
-CDummyPcmRenderer::~CDummyPcmRenderer()
- {
- delete iInputPort;
- iSoundDevice.Close();
- }
-
-CDummyPcmRenderer* CDummyPcmRenderer::NewL()
- {
- CDummyPcmRenderer* self = new (ELeave) CDummyPcmRenderer;
- return self;
- }
-
-void CDummyPcmRenderer::CreateComponentL(const TDesC8& /*aComponentName*/, MILIfObserver& aComponentIfObserver)
- {
- iObserver = &aComponentIfObserver;
- iInputPort = CInputPort::NewL(*this);
- iState = EComponentLoaded;
- }
-
-void CDummyPcmRenderer::CreateComponentL(const TUid& /*aUid*/, MILIfObserver& /*aComponentIfObserver*/)
- {
- User::LeaveIfError(KErrNotSupported);
- };
-
-void CDummyPcmRenderer::ReleaseComponent()
- {
- delete this;
- }
-
-TInt CDummyPcmRenderer::GetComponentInputPorts(RPointerArray<MILComponentPortIf>& aComponentPorts) const
- {
- return aComponentPorts.Append(iInputPort);
- }
-
-TInt CDummyPcmRenderer::GetComponentOutputPorts(RPointerArray<MILComponentPortIf>& /*aComponentPorts*/) const
- {
- return KErrNotSupported;
- }
-
-TInt CDummyPcmRenderer::SetConfig(const TILStruct& aConfig, const MILComponentPortIf* /*aComponentPort*/)
- {
- if (aConfig.Uid() == TUid::Uid(KUidMMFTTaskConfig))
- {
- const TTaskConfig* config = TILTaskConfig::GetStructure(aConfig);
- ASSERT(config);
- iInputPort->iSampleRate = config->iRate;
- iInputPort->iChannels = (config->iStereoMode & ETaskMono)? 1 : 2;
- iInputPort->iInterleaved = (config->iStereoMode & ETaskInterleaved)?ETrue : EFalse;
- return KErrNone;
- }
-
- return KErrNotSupported;
- }
-
-TInt CDummyPcmRenderer::GetConfig(TILStruct& /*aConfig*/, const MILComponentPortIf* /*aComponentPort*/) const
- {
- return KErrNotSupported;
- }
-
-TInt CDummyPcmRenderer::Initialize()
- {
- ASSERT(iObserver);
-
- TILEvent thisEvent;
- thisEvent.iEvent = EEventCmdComplete;
- thisEvent.iData1 = ECommandStateSet;
- thisEvent.iData2 = EComponentIdle;
- iObserver->MsgFromILComponent(this, thisEvent);
-
- iState = EComponentIdle;
- return KErrNone;
- }
-
-TInt CDummyPcmRenderer::UnInitialize()
- {
- ASSERT(iObserver);
-
- TILEvent thisEvent;
- thisEvent.iEvent = EEventCmdComplete;
- thisEvent.iData1 = ECommandStateSet;
- thisEvent.iData2 = EComponentLoaded;
- iObserver->MsgFromILComponent(this, thisEvent);
-
- iState = EComponentLoaded;
- return KErrNone;
- }
-
-TInt CDummyPcmRenderer::Execute()
- {
- ASSERT(iObserver);
- TInt err = KErrNone;
- if(!iSoundDevice.Handle())
- {
- err = iSoundDevice.Open();
- }
-
- RMdaDevSound::TCurrentSoundFormatBuf buf;
- if (err == KErrNone)
- {
- if(iState == EComponentPaused)
- {
- iSoundDevice.ResumePlaying();
- }
- else
- {
- // Set play format (for input port)
- iSoundDevice.GetPlayFormat(buf);
- buf().iRate = iInputPort->SampleRate();
- buf().iChannels = iInputPort->Channels();
- buf().iBufferSize = KBufferSize;
- buf().iEncoding = RMdaDevSound::EMdaSoundEncoding16BitPCM;
- err = iSoundDevice.SetPlayFormat(buf);
- }
- }
- iState = EComponentExecuting;
-
- TILEvent thisEvent;
- thisEvent.iEvent = EEventCmdComplete;
- thisEvent.iData1 = ECommandStateSet;
- thisEvent.iData2 = EComponentExecuting;
- iObserver->MsgFromILComponent(this, thisEvent);
-
- return err;
- }
-
-TInt CDummyPcmRenderer::Pause()
- {
- iState = EComponentPaused;
- iInputPort->Pause();
- return KErrNone;
- }
-
-TInt CDummyPcmRenderer::Stop()
- {
- if(iState == EComponentExecuting || iState == EComponentPaused)
- {
- // Cancel and flush the device driver
- iInputPort->Stop();
-
- TILEvent thisEvent;
- thisEvent.iEvent = EEventCmdComplete;
- thisEvent.iData1 = ECommandStateSet;
- thisEvent.iData2 = EComponentIdle;
- iObserver->MsgFromILComponent(this, thisEvent);
-
- iState = EComponentIdle;
-
- // Close the sound device
- iSoundDevice.Close();
-
- return KErrNone;
- }
- else
- {
- // invalid state
- return EComponentInvalid;
- }
- }
-
-TInt CDummyPcmRenderer::GetState(TILComponentState& aState) const
- {
- aState = iState;
- return KErrNone;
- }
-
-TInt CDummyPcmRenderer::SendCommand(const TILCommand& /*aCommand*/)
- {
- return KErrNotSupported;
- }
-
-TInt CDummyPcmRenderer::FlushAllPorts()
- {
- return KErrNotSupported;
- }
-
-TInt CDummyPcmRenderer::ComponentRoleEnum(TPtr8& /*aComponentRole*/, TUint32 /*aIndex*/) const
- {
- return KErrNotSupported;
- }
-
-TInt CDummyPcmRenderer::GetComponentVersion(TILComponentVersion& /*aVersion*/) const
- {
- return KErrNotSupported;
- }
-
-TInt CDummyPcmRenderer::SetComponentIfRole(const TDesC8& /*aComponentRole*/)
- {
- return KErrNotSupported;
- }
-
-TInt CDummyPcmRenderer::GetComponentIfRole(TDes8& /*aComponentRole*/) const
- {
- return KErrNotSupported;
- }
-
-TInt CDummyPcmRenderer::SetComponentIfRole(const TUid& /*aFormat*/)
- {
- // This interface is specific writen to support only this PCM renderer role
- return KErrNotSupported;
- }
-
-TInt CDummyPcmRenderer::GetComponentIfRole(TUid& aFormat) const
- {
- aFormat = TUid::Uid(KDummyPCM16FormatUid);
- return KErrNone;
- }
-
-TAny* CDummyPcmRenderer::CustomInterface(TUid aUid)
- {
- if (aUid.iUid == KMmfPlaySettingsCustomInterface)
- {
- return static_cast<MPlayCustomInterface*>(iInputPort);
- }
- return NULL;
- }
-
-TInt CDummyPcmRenderer::SetExtConfig(const TDesC8& /*aParameterName*/, const TILStruct& /*aConfig*/, const MILComponentPortIf* /*aComponentPort*/)
- {
- return KErrNotSupported;
- }
-
-TInt CDummyPcmRenderer::GetExtConfig(const TDesC8& /*aParameterName*/, TILStruct& /*aConfig*/, const MILComponentPortIf* /*aComponentPort*/) const
- {
- return KErrNotSupported;
- }
-
-
-MILIfObserver* CDummyPcmRenderer::Observer() const
- {
- return iObserver;
- }
-
-RMdaDevSound& CDummyPcmRenderer::SoundDevice()
- {
- return iSoundDevice;
- }
-
-
-// ------------------------------------------------------------------------------------------
-// ECOM Implementation table entry
-
-const TImplementationProxy ImplementationTable[] =
- {
- IMPLEMENTATION_PROXY_ENTRY(KUidDummyPcmRendererMILIFPlugin, CDummyPcmRenderer::NewL),
- };
-
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
- {
- aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
- return ImplementationTable;
- }
--- a/omxil/mmilapi/unittest/test_plugins/dummypcmrenderer/dummypcmrenderer.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @internalComponent
-*/
-
-#ifndef DUMMYPCMRENDERER_H
-#define DUMMYPCMRENDERER_H
-
-#include <e32msgqueue.h>
-#include <mmf/server/mmfhwdevicesetup.h>
-#include <mdf/mdfcommon.h>
-
-#include "milcomponentportif.h"
-#include "milifobserver.h"
-#include "ilcomponentif.h"
-
-#ifdef SYMBIAN_MDF_SHAREDCHUNK_SOUNDDRIVER
- #include "mdasoundadapter.h"
-#else
- #include <mdasound.h>
-#endif
-
-class CMMFBuffer;
-
-/*
-PCM sink renderer component (this is just a simple non-omx component for testing)
-This component is used together with the omxilvorbdechwdevice and the OMXVorbisDecoder
-for testing when requesting a HwDevice supporting VRB2 fourCC.
-*/
-class CDummyPcmRenderer : public CILComponentIf
- {
-public:
- /*
- PCM sink input port
- */
- class CInputPort: public CActive,
- public MILComponentPortIf,
- public MPlayCustomInterface
- {
- friend class CDummyPcmRenderer;
-
- public:
- static CInputPort* NewL(CDummyPcmRenderer& aParent);
-
- // MILComponentPortIf
- TInt FillThisBuffer(CMMFBuffer& aBuffer);
- TInt EmptyThisBuffer(const CMMFBuffer& aBuffer);
- TInt TunnelRequest(MILComponentPortIf* aPort);
- TInt DisconnectTunnel(MILComponentPortIf* aPort);
- TInt PortIndex() const;
- TPortDirection PortDirection() const;
- CMMFBuffer* CreateBufferL(TInt aBufferSize);
- TInt UseBuffer(CMMFBuffer& aBuffer);
- TInt FreeBuffer(CMMFBuffer* aBuffer);
- TInt FlushPort();
- TInt EnablePort();
- TInt DisablePort();
- MILComponentIf* PortComponent() const;
-
- // from MPlayCustomInterface
- void SetVolume(TUint aVolume);
- TUint Volume();
- TUint BytesPlayed();
- void SetVolumeRamp(const TTimeIntervalMicroSeconds& aRampDuration);
- TTimeIntervalMicroSeconds& VolumeRamp();
- TInt SampleRate();
- TInt Channels();
-
- // from CActive
- void RunL();
- void DoCancel();
-
- // Internal
- TUint32 BufferSize() const;
- void Execute();
- void Pause();
- void Stop();
- ~CInputPort();
-
- private:
- explicit CInputPort(CDummyPcmRenderer& aParent);
-
- private:
- CDummyPcmRenderer& iParent;
- MILComponentPortIf* iPortConnectedTo;
- CMMFBuffer* iCurrentBuffer;
- RPointerArray<CMMFBuffer> iBuffers;
- TInt iSampleRate;
- TInt iChannels;
- TBool iInterleaved;
- TUint iVolume;
- TTimeIntervalMicroSeconds iRampDuration;
- TUint iBytesPlayed;
- TBool iPaused;
- TBool iStopped;
- TUint iBufferSize;
- };
-public:
- static CDummyPcmRenderer* NewL();
-
- // from MILComponentIf
- void CreateComponentL(const TDesC8& aComponentName, MILIfObserver& aComponentIfObserver);
- void CreateComponentL(const TUid& aUid, MILIfObserver& aComponentIfObserver);
- void ReleaseComponent();
- TInt GetComponentInputPorts(RPointerArray<MILComponentPortIf>& aComponentPorts) const;
- TInt GetComponentOutputPorts(RPointerArray<MILComponentPortIf>& aComponentPorts) const;
- TInt SetConfig(const TILStruct& aConfig, const MILComponentPortIf* aComponentPort);
- TInt GetConfig(TILStruct& aConfig, const MILComponentPortIf* aComponentPort) const;
- TInt Initialize();
- TInt Execute();
- TInt Pause();
- TInt Stop();
- TInt UnInitialize();
- TInt GetState(TILComponentState& aState) const;
- TInt SendCommand(const TILCommand& aCommand);
- TInt FlushAllPorts();
- TInt ComponentRoleEnum(TPtr8& aComponentRole, TUint32 aIndex) const;
- TInt GetComponentVersion(TILComponentVersion& aVersion) const;
- TInt SetComponentIfRole(const TUid& aFormat);
- TInt SetComponentIfRole(const TDesC8& aComponentRole);
- TInt GetComponentIfRole(TUid& aFormat) const;
- TInt GetComponentIfRole(TDes8& aComponentRole) const;
- TInt SetExtConfig(const TDesC8& aParameterName, const TILStruct& aConfig, const MILComponentPortIf* aComponentPort);
- TInt GetExtConfig(const TDesC8& aParameterName, TILStruct& aConfig, const MILComponentPortIf* aComponentPort) const;
- TAny* CustomInterface(TUid aUid);
-
-
- ~CDummyPcmRenderer();
-
-private:
- CDummyPcmRenderer();
-
- RMdaDevSound& SoundDevice();
- MILIfObserver* Observer() const;
-
-private:
- RMdaDevSound iSoundDevice;
- TILComponentState iState;
-
- CInputPort* iInputPort;
- MILIfObserver* iObserver; // Not owned
- };
-
-#endif // DUMMYPCMRENDERER_H
--- a/omxil/mmilapi/unittest/test_plugins/dummypcmrenderer/dummypcmrenderer.rss Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include <ecom/registryinfo.rh>
-#include "ilifuids.hrh"
-#include "iltestuids.hrh"
-
-RESOURCE REGISTRY_INFO theInfo
- {
- dll_uid = KUidDummyPcmRendererMILIFPluginDll;
- interfaces =
- {
- INTERFACE_INFO
- {
- interface_uid = KILComponentIfUid;
- implementations =
- {
- IMPLEMENTATION_INFO
- {
- implementation_uid = KUidDummyPcmRendererMILIFPlugin;
- version_no = 1;
- display_name = "PCM Renderer";
- default_data = "" ;
- opaque_data = "";
- }
- };
- }
- };
- }
--- a/omxil/mmilapi/unittest/test_plugins/omxildummyaudiodec/omxildummyaudiodec.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,544 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-#include "omxildummyaudiodec.h"
-#include "iltestuids.hrh"
-#include <openmax/il/loader/omxilsymbiancomponentif.h>
-#include <mmf/server/mmfdatabuffer.h>
-
-_LIT8(KDummyDecoderILComponentName,"OMX.SYMBIAN.AUDIO.DECODER.DUMMY");
-const TInt KMaxComponentNameLength = 128;
-
-OMXIL_COMPONENT_ECOM_ENTRYPOINT(KUidOmxILDummyAudioDec);
-
-const TUint32 KOMXALL = 0xFFFFFFFF;
-
-const TInt KMaxComponentRoleLength = 128;
-
-const TInt KIndexInputPort = 0;
-const TInt KIndexOutputPort = 1;
-
-// Set some dummy input and output buffer sizes
-const TInt KDummyDecoderInputBufferSize = 0x2000;
-const TInt KDummyDecoderOutputBufferSize = 0x4000;
-
-//_LIT(KDummyDecoder, "DummyDecoder");
-
-
-
-TInt COmxIlDummyAudioDec::CreateComponent(OMX_HANDLETYPE hComponent)
- {
- COmxIlDummyAudioDec* self = new COmxIlDummyAudioDec(hComponent);
- if (self==NULL)
- {
- return KErrNoMemory;
-
- }
- else
- {
- return KErrNone;
- }
- }
-
-OMX_ERRORTYPE COmxIlDummyAudioDec::GetComponentVersion(
- OMX_STRING pComponentName,
- OMX_VERSIONTYPE* pComponentVersion,
- OMX_VERSIONTYPE* pSpecVersion,
- OMX_UUIDTYPE* pComponentUUID)
- {
- TPtr8 name(reinterpret_cast<TUint8*>(pComponentName),
- KMaxComponentNameLength);
- name.Copy(KDummyDecoderILComponentName);
- name.PtrZ();
-
- OMX_VERSIONTYPE compVer = { 1,0,0,0 };
- OMX_VERSIONTYPE specVer = { 1,1,1,0 };
-
- (*pComponentVersion) = compVer;
- (*pSpecVersion) = specVer;
-
- TPtr8 thisUid(reinterpret_cast<TUint8*>(*pComponentUUID), 128); //Maxsize fixed by Khronos;
- thisUid = TPtr8(reinterpret_cast<TUint8*>(this), sizeof(TUint32));
-
- return OMX_ErrorNone;
- }
-
-
-COmxIlDummyAudioDec::COmxIlDummyAudioDec(OMX_HANDLETYPE hComponent)
- :COmxComponentImpl(hComponent)
- {
- iState = OMX_StateLoaded;
- }
-
-COmxIlDummyAudioDec::~COmxIlDummyAudioDec()
- {
- if (iState == OMX_StateExecuting)
- {
- iState = OMX_StateIdle;
- }
- }
-
-OMX_ERRORTYPE COmxIlDummyAudioDec::SendCommand(
- OMX_COMMANDTYPE Cmd,
- TUint32 nParam1,
- TAny* /*pCmdData*/)
- {
- OMX_ERRORTYPE error = OMX_ErrorNone;
- switch (Cmd)
- {
- case OMX_CommandStateSet:
- {
- OMX_STATETYPE state = (OMX_STATETYPE)nParam1;
- if (state == iState)
- {
- error = OMX_ErrorSameState;
- }
- else
- {
- // notify client of the state change
- switch (state)
- {
- case OMX_StateIdle:
- case OMX_StatePause:
- case OMX_StateExecuting:
- break;
- };
- iState = state;
-
- EventHandlerCallback(
- OMX_EventCmdComplete,
- OMX_CommandStateSet,
- iState,
- NULL);
- }
- break;
- }
-
- case OMX_CommandFlush:
- {
- if(nParam1 == KOMXALL)
- {
- EventHandlerCallback(
- OMX_EventCmdComplete,
- OMX_CommandFlush,
- 0,
- NULL);
-
- EventHandlerCallback(
- OMX_EventCmdComplete,
- OMX_CommandFlush,
- 1,
- NULL);
- }
- else
- {
- EventHandlerCallback(
- OMX_EventCmdComplete,
- OMX_CommandFlush,
- nParam1,
- NULL);
- }
-
- break;
- }
- case OMX_CommandPortDisable:
- {
- if(nParam1 == KOMXALL)
- {
- EventHandlerCallback(
- OMX_EventCmdComplete,
- OMX_CommandPortDisable,
- 0,
- NULL);
-
- EventHandlerCallback(
- OMX_EventCmdComplete,
- OMX_CommandPortDisable,
- 1,
- NULL);
- }
- else
- {
- EventHandlerCallback(
- OMX_EventCmdComplete,
- OMX_CommandPortDisable,
- nParam1,
- NULL);
- }
- break;
- }
- }
- return error;
- }
-
-OMX_ERRORTYPE COmxIlDummyAudioDec::GetParameter(
- OMX_INDEXTYPE nParamIndex,
- TAny* ComponentParameterStructure)
- {
- switch (nParamIndex)
- {
- case OMX_IndexParamAudioInit :
- {
- OMX_PORT_PARAM_TYPE* param = static_cast<OMX_PORT_PARAM_TYPE*>(ComponentParameterStructure);
- param->nPorts = 2;
- }
- break;
- case OMX_IndexParamPortDefinition:
- {
- OMX_PARAM_PORTDEFINITIONTYPE* portDef = static_cast<OMX_PARAM_PORTDEFINITIONTYPE*>(ComponentParameterStructure);
- if (portDef->nPortIndex==0)
- {
- portDef->eDir = OMX_DirInput;
- portDef->nBufferSize = KDummyDecoderInputBufferSize;
- portDef->nBufferCountActual = iBufferCountActual0;
- }
- else
- {
- portDef->eDir = OMX_DirOutput;
- portDef->nBufferSize = KDummyDecoderOutputBufferSize;
- portDef->nBufferCountActual = iBufferCountActual1;
- }
- }
- break;
- default:
- return OMX_ErrorUnsupportedIndex;
- }
- return OMX_ErrorNone;
- }
-
-OMX_ERRORTYPE COmxIlDummyAudioDec::SetParameter(
- OMX_INDEXTYPE nIndex,
- TAny* ComponentParameterStructure)
- {
- ASSERT(iState == OMX_StateLoaded);
- switch (nIndex)
- {
- case OMX_IndexParamAudioVorbis:
- {
- // Fake this is Audio Vorbis decoder for the purpose of testing
- OMX_AUDIO_PARAM_VORBISTYPE* param = static_cast<OMX_AUDIO_PARAM_VORBISTYPE*>(ComponentParameterStructure);
- switch(param->nPortIndex)
- {
- case 0: // Input port
- {
- // nothing to set
- return OMX_ErrorNone;
- }
- case 1: // Output port
- default:
- {
- return OMX_ErrorUnsupportedIndex;
- }
- };
- }
- case OMX_IndexParamAudioPcm:
- {
- OMX_AUDIO_PARAM_PCMMODETYPE* param = static_cast<OMX_AUDIO_PARAM_PCMMODETYPE*>(ComponentParameterStructure);
- switch(param->nPortIndex)
- {
- case 1: // Output port = PCM
- {
- return OMX_ErrorNone;
- }
- case 0: // Input port
- default:
- {
- return OMX_ErrorUnsupportedIndex;
- }
- };
- }
- case OMX_IndexParamPortDefinition:
- {
- OMX_PARAM_PORTDEFINITIONTYPE* portDef = static_cast<OMX_PARAM_PORTDEFINITIONTYPE*>(ComponentParameterStructure);
- if (portDef->nPortIndex==0)
- {
- iBufferCountActual0 = portDef->nBufferCountActual;
- }
- else
- {
- iBufferCountActual1 = portDef->nBufferCountActual;
- }
- return OMX_ErrorNone;
- }
- default:
- {
- return OMX_ErrorUnsupportedIndex;
- }
- };
- }
-
-OMX_ERRORTYPE COmxIlDummyAudioDec::GetConfig(
- OMX_INDEXTYPE /*nIndex*/,
- TAny* /*value*/)
- {
- return OMX_ErrorUnsupportedIndex;
- }
-
-OMX_ERRORTYPE COmxIlDummyAudioDec::SetConfig(
- OMX_INDEXTYPE /*nIndex*/,
- TAny* /*value*/)
- {
- return OMX_ErrorUnsupportedIndex;
- }
-
-OMX_ERRORTYPE COmxIlDummyAudioDec::GetExtensionIndex(
- OMX_STRING /*parameterName*/,
- OMX_INDEXTYPE* pIndexType)
- {
- // This test component returns always OMX_IndexParamPortDefinition
- *pIndexType = OMX_IndexParamPortDefinition;
-
- return OMX_ErrorNone;
- }
-
-OMX_ERRORTYPE COmxIlDummyAudioDec::GetState(
- OMX_STATETYPE* pState)
- {
- *pState = iState;
- return OMX_ErrorNone;
- }
-
-// To be implemented for DM4
-OMX_ERRORTYPE COmxIlDummyAudioDec::ComponentTunnelRequest(
- OMX_HANDLETYPE /*hInput*/,
- TUint32 /*nInputPort*/,
- OMX_HANDLETYPE /*hOutput*/,
- TUint32 /*nOutputPort*/,
- OMX_TUNNELSETUPTYPE* /*pTunnelSetup*/)
- {
-
- // Fake everything as if it went fine
- return OMX_ErrorNone;
- }
-
-OMX_ERRORTYPE COmxIlDummyAudioDec::UseBuffer(
- OMX_BUFFERHEADERTYPE** ppBufferHeader,
- TUint32 nPortIndex,
- TAny* pAppPrivate,
- TUint32 nSizeBytes,
- TUint8* pBuffer)
- {
- ASSERT(iState == OMX_StateLoaded);
- *ppBufferHeader = new OMX_BUFFERHEADERTYPE;
- if (*ppBufferHeader != NULL)
- {
- (*ppBufferHeader)->pBuffer = pBuffer;
- (*ppBufferHeader)->pAppPrivate = pAppPrivate;
- (*ppBufferHeader)->nAllocLen = nSizeBytes;
- (*ppBufferHeader)->nFilledLen = 0;
- (*ppBufferHeader)->nFlags = 0;
- (*ppBufferHeader)->pInputPortPrivate = NULL;
- (*ppBufferHeader)->pOutputPortPrivate = NULL;
- }
-
-
-
- if (*ppBufferHeader)
- {
- TPtr8 ptr(pBuffer,nSizeBytes,nSizeBytes);
- CMMFBuffer* buffer = NULL;
- TRAPD(err, buffer = CMMFPtrBuffer::NewL(ptr));
- if (err != KErrNone)
- {
- return OMX_ErrorInsufficientResources;
- }
- switch (nPortIndex)
- {
- case KIndexInputPort:
- {
- (*ppBufferHeader)->pInputPortPrivate = buffer;
- (*ppBufferHeader)->nInputPortIndex = nPortIndex;
- }
- break;
- case KIndexOutputPort:
- {
- (*ppBufferHeader)->pOutputPortPrivate = buffer;
- (*ppBufferHeader)->nOutputPortIndex = nPortIndex;
- }
- break;
-
- }
- return OMX_ErrorNone;
- }
- else
- {
- return OMX_ErrorInsufficientResources;
- }
- }
-
-OMX_ERRORTYPE COmxIlDummyAudioDec::AllocateBuffer(
- OMX_BUFFERHEADERTYPE** pBuffer,
- TUint32 nPortIndex,
- TAny* pAppData,
- TUint32 nSizeBytes)
- {
- ASSERT(iState == OMX_StateLoaded);
-
- *pBuffer = new OMX_BUFFERHEADERTYPE;
- if (*pBuffer != NULL)
- {
- CMMFDescriptorBuffer* buffer = NULL;
- TRAPD(err, buffer = CMMFDescriptorBuffer::NewL(nSizeBytes));
- if (err != KErrNone)
- {
- return OMX_ErrorInsufficientResources;
- }
- (*pBuffer)->pBuffer = const_cast<TUint8*>(buffer->Data().Ptr());
- // store our allocated memory in component's private store
- switch (nPortIndex)
- {
- case KIndexInputPort:
- (*pBuffer)->pInputPortPrivate = buffer;
- (*pBuffer)->pOutputPortPrivate = NULL;
- break;
- case KIndexOutputPort:
- (*pBuffer)->pOutputPortPrivate = buffer;
- (*pBuffer)->pInputPortPrivate = NULL;
- break;
- };
-
-
- (*pBuffer)->nAllocLen = nSizeBytes;
- (*pBuffer)->nFilledLen = 0;
- (*pBuffer)->pAppPrivate = pAppData;
- }
-
- if (*pBuffer && (*pBuffer)->pBuffer)
- {
- return OMX_ErrorNone;
- }
- else
- {
- return OMX_ErrorInsufficientResources;
- }
- }
-
-OMX_ERRORTYPE COmxIlDummyAudioDec::FreeBuffer(
- TUint32 nPortIndex,
- OMX_BUFFERHEADERTYPE* pBuffer)
- {
- switch (nPortIndex)
- {
- case KIndexInputPort:
- {
- delete (static_cast<CMMFBuffer*>(pBuffer->pInputPortPrivate));
- pBuffer->pInputPortPrivate = NULL;
- break;
- }
- case KIndexOutputPort:
- delete (static_cast<CMMFBuffer*>(pBuffer->pOutputPortPrivate));
- pBuffer->pOutputPortPrivate = NULL;
- break;
-
- }
- delete pBuffer;
- return OMX_ErrorNone;
- }
-OMX_ERRORTYPE COmxIlDummyAudioDec::EmptyThisBuffer(
- OMX_BUFFERHEADERTYPE* pBuffer)
- {
- ASSERT(iState == OMX_StateExecuting ||
- iState == OMX_StateIdle ||
- iState == OMX_StatePause);
- EmptyBufferDoneCallback(pBuffer);
- return OMX_ErrorNone;
- }
-OMX_ERRORTYPE COmxIlDummyAudioDec::FillThisBuffer(
- OMX_BUFFERHEADERTYPE* pBuffer)
- {
- ASSERT(iState == OMX_StateExecuting ||
- iState == OMX_StateIdle ||
- iState == OMX_StatePause);
-
- FillBufferDoneCallback(pBuffer);
- return OMX_ErrorNone;
- }
-
-OMX_ERRORTYPE COmxIlDummyAudioDec::SetCallbacks(
- OMX_CALLBACKTYPE* pCallbacks,
- TAny* pAppData)
- {
- iCallback = pCallbacks;
- iAppData = pAppData;
- return OMX_ErrorNone;
- }
-
-OMX_ERRORTYPE COmxIlDummyAudioDec::ComponentRoleEnum(
- OMX_OUT OMX_U8 *aRole,
- OMX_IN OMX_U32 aIndex)
- {
- _LIT8(KFakeRole,"audio_decoder.vrb");
-
- if (aIndex == 0)
- {
- TPtr8 ptr((TUint8*)aRole, 0, KMaxComponentRoleLength);
- ptr.Copy(KFakeRole);
- ptr.PtrZ();
-
- return OMX_ErrorNone;
- }
- else
- {
- return OMX_ErrorBadParameter;
- }
- }
-
-// Callbacks for the Dummy Audio Decoder
-void COmxIlDummyAudioDec::EventHandlerCallback(
- OMX_OUT OMX_EVENTTYPE eEvent,
- OMX_OUT TUint32 nData1,
- OMX_OUT TUint32 nData2,
- OMX_OUT OMX_STRING cExtraInfo)
- {
- iCallback->EventHandler(
- this,
- iAppData,
- eEvent,
- nData1,
- nData2,
- cExtraInfo);
- }
-
-void COmxIlDummyAudioDec::FillBufferDoneCallback(OMX_BUFFERHEADERTYPE* aBuffer)
- {
- iCallback->FillBufferDone(
- *this,
- iAppData,
- aBuffer);
- }
-
-void COmxIlDummyAudioDec::EmptyBufferDoneCallback(OMX_BUFFERHEADERTYPE* aBuffer)
- {
- iCallback->EmptyBufferDone(
- *this,
- iAppData,
- aBuffer);
- }
-
-// Component Entry Point
-OMX_ERRORTYPE OMX_ComponentInit(OMX_HANDLETYPE hComponent)
- {
- TInt err = COmxIlDummyAudioDec::CreateComponent(hComponent);
- if (err == KErrNone)
- return OMX_ErrorNone;
- else
- {
- // return some problem
- return OMX_ErrorInsufficientResources;
-
- }
- }
-
--- a/omxil/mmilapi/unittest/test_plugins/omxildummyaudiodec/omxildummyaudiodec.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,109 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef OMXILDUMMYAUDIODEC_H
-#define OMXILDUMMYAUDIODEC_H
-
-#include "omximpl.h"
-
-// Test component. Dummy omx il decoder used by the MILIF test suite.
-class COmxIlDummyAudioDec : public COmxComponentImpl
- {
-public:
- friend class CCodecDummyProcessor;
- friend class CCodecCallbacks;
-
- static TInt CreateComponent(OMX_HANDLETYPE hComponent);
- ~COmxIlDummyAudioDec();
-
- OMX_ERRORTYPE GetComponentVersion(
- OMX_STRING pComponentName,
- OMX_VERSIONTYPE* pComponentVersion,
- OMX_VERSIONTYPE* pSpecVersion,
- OMX_UUIDTYPE* pComponentUUID);
- OMX_ERRORTYPE SendCommand(
- OMX_COMMANDTYPE Cmd,
- TUint32 nParam1,
- TAny* pCmdData);
- OMX_ERRORTYPE GetParameter(
- OMX_INDEXTYPE nParamIndex,
- TAny* ComponentParameterStructure);
- OMX_ERRORTYPE SetParameter(
- OMX_INDEXTYPE nIndex,
- TAny* ComponentParameterStructure);
- OMX_ERRORTYPE GetConfig(
- OMX_INDEXTYPE nIndex,
- TAny* value);
- OMX_ERRORTYPE SetConfig(
- OMX_INDEXTYPE nIndex,
- TAny* value);
- OMX_ERRORTYPE GetExtensionIndex(
- OMX_STRING ParameterName,
- OMX_INDEXTYPE* pIndexType);
- OMX_ERRORTYPE GetState(
- OMX_STATETYPE* pState);
- OMX_ERRORTYPE ComponentTunnelRequest(
- OMX_HANDLETYPE hInput,
- TUint32 nInputPort,
- OMX_HANDLETYPE hOutput,
- TUint32 nOutputPort,
- OMX_TUNNELSETUPTYPE* pTunnelSetup);
- virtual OMX_ERRORTYPE UseBuffer(
- OMX_BUFFERHEADERTYPE** pBufferHdr,
- TUint32 nPortIndex,
- TAny* pAppPrivate,
- TUint32 nSizeBytes,
- TUint8* pBuffer);
- virtual OMX_ERRORTYPE AllocateBuffer(
- OMX_BUFFERHEADERTYPE** pBuffer,
- TUint32 nPortIndex,
- TAny* pAppData,
- TUint32 nSizeBytes);
- OMX_ERRORTYPE FreeBuffer(
- TUint32 nPortIndex,
- OMX_BUFFERHEADERTYPE* pBuffer);
- OMX_ERRORTYPE EmptyThisBuffer(
- OMX_BUFFERHEADERTYPE* pBuffer);
- OMX_ERRORTYPE FillThisBuffer(
- OMX_BUFFERHEADERTYPE* pBuffer);
- OMX_ERRORTYPE SetCallbacks(
- OMX_CALLBACKTYPE* pCallbacks,
- TAny* pAppData);
- OMX_ERRORTYPE ComponentRoleEnum(
- OMX_OUT OMX_U8 *cRole,
- OMX_IN OMX_U32 nIndex);
-
-
- void EventHandlerCallback(
- OMX_EVENTTYPE eEvent,
- TUint32 nData1,
- TUint32 nData2,
- OMX_STRING cExtraInfo);
- void FillBufferDoneCallback(OMX_BUFFERHEADERTYPE* pBuffer);
- void EmptyBufferDoneCallback(OMX_BUFFERHEADERTYPE* pBuffer);
-
-private:
- COmxIlDummyAudioDec(OMX_HANDLETYPE hComponent);
-
-private:
- OMX_CALLBACKTYPE* iCallback;
- TAny* iAppData;
- OMX_STATETYPE iState;
-
- TInt iBufferCountActual0;
- TInt iBufferCountActual1;
- };
-
-#endif // OMXILDUMMYAUDIODEC_H
--- a/omxil/mmilapi/unittest/test_plugins/omxildummyaudiodec/omxildummyaudiodec.rss Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include <ecom/registryinfo.rh>
-#include <openmax/il/loader/omxilcomponentif.hrh>
-#include "iltestuids.hrh"
-
-
-RESOURCE REGISTRY_INFO theInfo
- {
- dll_uid = KUidOmxILDummyAudioDecDll;
- interfaces =
- {
- INTERFACE_INFO
- {
- interface_uid = KUidOmxILSymbianComponentIf;
- implementations =
- {
- IMPLEMENTATION_INFO
- {
- implementation_uid = KUidOmxILDummyAudioDec;
- version_no = 1;
- display_name = "OMX.SYMBIAN.AUDIO.DECODER.DUMMY" ; // Dummy Component name
- default_data = "Symbian IL Dummy OMX component";
- opaque_data = "";
- }
- };
- }
- };
- }
--- a/omxil/mmilapi/unittest/test_plugins/omxildummyaudiodec/omximpl.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,279 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-//#include <stdio.h>
-#include "omximpl.h"
-
-OMX_ERRORTYPE OMXComponentGetComponentVersion(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_OUT OMX_STRING pComponentName,
- OMX_OUT OMX_VERSIONTYPE* pComponentVersion,
- OMX_OUT OMX_VERSIONTYPE* pSpecVersion,
- OMX_OUT OMX_UUIDTYPE* pComponentUUID);
-OMX_ERRORTYPE OMXComponentSendCommand(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_COMMANDTYPE Cmd,
- OMX_IN OMX_U32 nParam1,
- OMX_IN OMX_PTR pCmdData);
-OMX_ERRORTYPE OMXComponentGetParameter(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_INDEXTYPE nParamIndex,
- OMX_INOUT OMX_PTR ComponentParameterStructure);
-OMX_ERRORTYPE OMXComponentSetParameter(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_INDEXTYPE nIndex,
- OMX_IN OMX_PTR ComponentParameterStructure);
-OMX_ERRORTYPE OMXComponentGetConfig(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_INDEXTYPE nIndex,
- OMX_INOUT OMX_PTR value);
-OMX_ERRORTYPE OMXComponentSetConfig(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_INDEXTYPE nIndex,
- OMX_IN OMX_PTR value);
-OMX_ERRORTYPE OMXComponentGetExtensionIndex(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_STRING ParameterName,
- OMX_OUT OMX_INDEXTYPE* pIndexType);
-OMX_ERRORTYPE OMXComponentGetState(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_OUT OMX_STATETYPE* pState);
-OMX_ERRORTYPE OMXComponentComponentTunnelRequest(
- OMX_IN OMX_HANDLETYPE hInput,
- OMX_IN OMX_U32 nPortInput,
- OMX_IN OMX_HANDLETYPE hOutput,
- OMX_IN OMX_U32 nPortOutput,
- OMX_IN OMX_TUNNELSETUPTYPE* pTunnelSetup);
-OMX_ERRORTYPE OMXComponentUseBuffer(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_INOUT OMX_BUFFERHEADERTYPE** ppBufferHdr,
- OMX_IN OMX_U32 nPortIndex,
- OMX_IN OMX_PTR pAppPrivate,
- OMX_IN OMX_U32 nSizeBytes,
- OMX_IN OMX_U8* pBuffer);
-OMX_ERRORTYPE OMXComponentAllocateBuffer(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_INOUT OMX_BUFFERHEADERTYPE** pBuffer,
- OMX_IN OMX_U32 nPortIndex,
- OMX_IN OMX_PTR pAppData,
- OMX_IN OMX_U32 nSizeBytes);
-OMX_ERRORTYPE OMXComponentFreeBuffer(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_U32 nPortIndex,
- OMX_IN OMX_BUFFERHEADERTYPE* pBuffer);
-OMX_ERRORTYPE OMXComponentEmptyThisBuffer(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_BUFFERHEADERTYPE* pBuffer);
-OMX_ERRORTYPE OMXComponentFillThisBuffer(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_BUFFERHEADERTYPE* pBuffer);
-OMX_ERRORTYPE OMXComponentSetCallbacks(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_CALLBACKTYPE* pCallbacks,
- OMX_IN OMX_PTR pAppData);
-OMX_ERRORTYPE OMXComponentDeInit(OMX_IN OMX_HANDLETYPE hComponent);
-
-OMX_ERRORTYPE OMXComponentRoleEnum(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_OUT OMX_U8 *cRole,
- OMX_IN OMX_U32 nIndex);
-
-
-void EventHandler(OMX_OUT OMX_HANDLETYPE hComponent,
- OMX_OUT OMX_PTR pAppData,
- OMX_OUT OMX_EVENTTYPE eEvent,
- OMX_OUT OMX_U32 Data,
- OMX_OUT OMX_STRING cExtraInfo);
-
-void InputBufferCallback(
- OMX_OUT OMX_HANDLETYPE hComponent,
- OMX_OUT OMX_PTR pAppData,
- OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
-
-void OutputBufferCallback(
- OMX_OUT OMX_HANDLETYPE hComponent,
- OMX_OUT OMX_PTR pAppData,
- OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
-
-
- COmxComponentImpl::COmxComponentImpl(OMX_HANDLETYPE hComponent)
- {
- iHandle = static_cast<OMX_COMPONENTTYPE*>(hComponent);
- OMX_VERSIONTYPE ver = { 1,0,0,0 };
-
- // fill in handle structure
-
- iHandle->nVersion = ver;
- iHandle->pComponentPrivate = this;
- iHandle->GetComponentVersion = &::OMXComponentGetComponentVersion;
- iHandle->SendCommand = &::OMXComponentSendCommand;
- iHandle->GetParameter = &::OMXComponentGetParameter;
- iHandle->SetParameter = &::OMXComponentSetParameter;
- iHandle->GetConfig = &::OMXComponentGetConfig;
- iHandle->SetConfig = &::OMXComponentSetConfig;
- iHandle->GetExtensionIndex = &::OMXComponentGetExtensionIndex;
- iHandle->GetState = &::OMXComponentGetState;
- iHandle->ComponentTunnelRequest = &::OMXComponentComponentTunnelRequest;
- iHandle->UseBuffer = &::OMXComponentUseBuffer;
- iHandle->AllocateBuffer = &::OMXComponentAllocateBuffer;
- iHandle->FreeBuffer = &::OMXComponentFreeBuffer;
- iHandle->EmptyThisBuffer = &::OMXComponentEmptyThisBuffer;
- iHandle->FillThisBuffer = &::OMXComponentFillThisBuffer;
- iHandle->SetCallbacks = &::OMXComponentSetCallbacks;
- iHandle->ComponentRoleEnum = &::OMXComponentRoleEnum;
- iHandle->ComponentDeInit = &::OMXComponentDeInit;
- }
-
- COmxComponentImpl::~COmxComponentImpl()
- {
-
- }
- COmxComponentImpl::operator OMX_HANDLETYPE()
- {
- return (OMX_HANDLETYPE)&iHandle;
- }
-
-
-OMX_ERRORTYPE OMXComponentGetComponentVersion(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_OUT OMX_STRING pComponentName,
- OMX_OUT OMX_VERSIONTYPE* pComponentVersion,
- OMX_OUT OMX_VERSIONTYPE* pSpecVersion,
- OMX_OUT OMX_UUIDTYPE* pComponentUUID)
- {
- return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->GetComponentVersion(pComponentName,pComponentVersion,pSpecVersion, pComponentUUID);
- }
-
-
-OMX_ERRORTYPE OMXComponentSendCommand(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_COMMANDTYPE Cmd,
- OMX_IN OMX_U32 nParam1,
- OMX_IN OMX_PTR pCmdData)
- {
- return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->SendCommand(Cmd ,nParam1, pCmdData);
-
- }
-OMX_ERRORTYPE OMXComponentGetParameter(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_INDEXTYPE nParamIndex,
- OMX_INOUT OMX_PTR ComponentParameterStructure)
- {
- return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->GetParameter(nParamIndex, ComponentParameterStructure);
- }
-OMX_ERRORTYPE OMXComponentSetParameter(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_INDEXTYPE nIndex,
- OMX_IN OMX_PTR ComponentParameterStructure)
- {
- return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->SetParameter(nIndex, ComponentParameterStructure);
- }
-OMX_ERRORTYPE OMXComponentGetConfig(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_INDEXTYPE nIndex,
- OMX_INOUT OMX_PTR value)
- {
- return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->GetConfig(nIndex, value);
- }
-OMX_ERRORTYPE OMXComponentSetConfig(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_INDEXTYPE nIndex,
- OMX_IN OMX_PTR value)
- {
- return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->SetConfig(nIndex, value);
- }
-OMX_ERRORTYPE OMXComponentGetExtensionIndex(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_STRING ParameterName,
- OMX_OUT OMX_INDEXTYPE* pIndexType)
- {
- return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->GetExtensionIndex(ParameterName, pIndexType);
- }
-OMX_ERRORTYPE OMXComponentGetState(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_OUT OMX_STATETYPE* pState)
- {
- return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->GetState(pState);
- }
-OMX_ERRORTYPE OMXComponentComponentTunnelRequest(
- OMX_IN OMX_HANDLETYPE hInput,
- OMX_IN OMX_U32 nInputPort,
- OMX_IN OMX_HANDLETYPE hOutput,
- OMX_IN OMX_U32 nOutputPort,
- OMX_IN OMX_TUNNELSETUPTYPE* pTunnelSetup)
- {
- return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hInput)->pComponentPrivate)->ComponentTunnelRequest(hInput, nInputPort, hOutput, nOutputPort, pTunnelSetup);
- }
-OMX_ERRORTYPE OMXComponentUseBuffer(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_INOUT OMX_BUFFERHEADERTYPE** ppBufferHdr,
- OMX_IN OMX_U32 nPortIndex,
- OMX_IN OMX_PTR pAppPrivate,
- OMX_IN OMX_U32 nSizeBytes,
- OMX_IN OMX_U8* pBuffer)
- {
- return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->UseBuffer(ppBufferHdr, nPortIndex, pAppPrivate, nSizeBytes, pBuffer);
- }
-
-OMX_ERRORTYPE OMXComponentAllocateBuffer(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_INOUT OMX_BUFFERHEADERTYPE** pBuffer,
- OMX_IN OMX_U32 nPortIndex,
- OMX_IN OMX_PTR pAppData,
- OMX_IN OMX_U32 nSizeBytes)
- {
- return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->AllocateBuffer(pBuffer, nPortIndex, pAppData, nSizeBytes);
- }
-
-OMX_ERRORTYPE OMXComponentFreeBuffer(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_U32 nPortIndex,
- OMX_IN OMX_BUFFERHEADERTYPE* pBuffer)
- {
- return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->FreeBuffer(nPortIndex, pBuffer);
- }
-OMX_ERRORTYPE OMXComponentEmptyThisBuffer(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_BUFFERHEADERTYPE* pBuffer)
- {
- return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->EmptyThisBuffer(pBuffer);
- }
-OMX_ERRORTYPE OMXComponentFillThisBuffer(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_BUFFERHEADERTYPE* pBuffer)
- {
- return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->FillThisBuffer(pBuffer);
- }
-OMX_ERRORTYPE OMXComponentSetCallbacks(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_CALLBACKTYPE* pCallbacks,
- OMX_IN OMX_PTR pAppData)
- {
- return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->SetCallbacks(pCallbacks, pAppData);
- }
-
-OMX_ERRORTYPE OMXComponentDeInit(OMX_IN OMX_HANDLETYPE hComponent)
- {
- delete ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate);
- return OMX_ErrorNone;
- }
-
-OMX_ERRORTYPE OMXComponentRoleEnum(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_OUT OMX_U8 *cRole,
- OMX_IN OMX_U32 nIndex)
- {
- return ((COmxComponentImpl*)((OMX_COMPONENTTYPE*)hComponent)->pComponentPrivate)->ComponentRoleEnum(cRole, nIndex);
- }
--- a/omxil/mmilapi/unittest/test_plugins/omxildummyaudiodec/omximpl.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef OMXIMPL_H
-#define OMXIMPL_H
-
-#include <e32base.h>
-#include <openmax/il/khronos/v1_x/OMX_Component.h>
-
-
-class COmxComponentImpl : public CBase
- {
-public:
- COmxComponentImpl(OMX_HANDLETYPE hComponent);
- virtual ~COmxComponentImpl();
-
- virtual OMX_ERRORTYPE GetComponentVersion(
- OMX_STRING pComponentName,
- OMX_VERSIONTYPE* pComponentVersion,
- OMX_VERSIONTYPE* pSpecVersion,
- OMX_UUIDTYPE* pComponentUUID)=0;
-
- virtual OMX_ERRORTYPE SendCommand(
- OMX_COMMANDTYPE Cmd,
- TUint32 nParam1,
- TAny* pCmdData)=0;
- virtual OMX_ERRORTYPE GetParameter(
- OMX_INDEXTYPE nParamIndex,
- TAny* ComponentParameterStructure)=0;
- virtual OMX_ERRORTYPE SetParameter(
- OMX_INDEXTYPE nIndex,
- TAny* ComponentParameterStructure)=0;
- virtual OMX_ERRORTYPE GetConfig(
- OMX_INDEXTYPE nIndex,
- TAny* value)=0;
- virtual OMX_ERRORTYPE SetConfig(
- OMX_INDEXTYPE nIndex,
- TAny* value)=0;
- virtual OMX_ERRORTYPE GetExtensionIndex(
- OMX_STRING ParameterName,
- OMX_INDEXTYPE* pIndexType)=0;
- virtual OMX_ERRORTYPE GetState(
- OMX_STATETYPE* pState)=0;
- virtual OMX_ERRORTYPE ComponentTunnelRequest(
- OMX_HANDLETYPE hInput,
- TUint32 nPortInput,
- OMX_HANDLETYPE hOutput,
- TUint32 nPortOutput,
- OMX_TUNNELSETUPTYPE* pTunnelSetup) = 0;
- virtual OMX_ERRORTYPE UseBuffer(
- OMX_BUFFERHEADERTYPE** ppBufferHdr,
- TUint32 nPortIndex,
- TAny* pAppPrivate,
- TUint32 nSizeBytes,
- TUint8* pBuffer)=0;
- virtual OMX_ERRORTYPE AllocateBuffer(
- OMX_BUFFERHEADERTYPE** pBuffer,
- TUint32 nPortIndex,
- TAny* pAppData,
- TUint32 nSizeBytes)=0;
- virtual OMX_ERRORTYPE FreeBuffer(
- TUint32 nPortIndex,
- OMX_BUFFERHEADERTYPE* pBuffer)=0;
- virtual OMX_ERRORTYPE EmptyThisBuffer(
- OMX_BUFFERHEADERTYPE* pBuffer)=0;
- virtual OMX_ERRORTYPE FillThisBuffer(
- OMX_BUFFERHEADERTYPE* pBuffer)=0;
- virtual OMX_ERRORTYPE SetCallbacks(
- OMX_CALLBACKTYPE* pCallbacks,
- TAny* pAppData)=0;
- virtual OMX_ERRORTYPE ComponentRoleEnum(
- OMX_OUT OMX_U8 *cRole,
- OMX_IN OMX_U32 nIndex)=0;
-
- operator OMX_HANDLETYPE();
-
-private:
- OMX_COMPONENTTYPE* iHandle;
- };
-
-
-#endif // OMXIMPL_H
--- a/omxil/mmilapi/unittest/test_plugins/omxildummyaudiodecilif/omxildummyaudiodecilif.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,512 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include "omxildummyaudiodecilif.h"
-#include "iltestuids.hrh"
-#include "omxilspecversion.h"
-#include "tilstructtypes.h"
-#include "tomxilstruct.h"
-#include "milcomponentportif.h"
-#include <ecom/implementationproxy.h>
-#include <a3f/audioformatuids.h>
-
-
-// _________________________________________________________________________________
-
-const TImplementationProxy ImplementationTable[] =
- {
- IMPLEMENTATION_PROXY_ENTRY(KUidOmxILDummyAudioDecMILIFPlugin , COmxILDummyAudioDecILIF::NewL)
- };
-
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
- {
- aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
-
- return ImplementationTable;
- };
-// _________________________________________________________________________________
-
-
-const TUint KMonoChannel = 1;
-const TUint KStereoChannel = 2;
-const TInt KPcm16BitsPerSample = 16;
-
-
-COmxILDummyAudioDecILIF* COmxILDummyAudioDecILIF::NewL()
- {
- COmxILDummyAudioDecILIF* self = new (ELeave) COmxILDummyAudioDecILIF;
- return self;
- }
-
-COmxILDummyAudioDecILIF::COmxILDummyAudioDecILIF()
- {
- }
-
-COmxILDummyAudioDecILIF::~COmxILDummyAudioDecILIF()
- {
- }
-
-
-
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-Mandatory params across all standard components
-===============================================
- OMX_IndexParamPortDefinition OMX_PARAM_PORTDEFINITIONTYPE (KUidTPortDefinitionType, TPortDefinitionType)
- OMX_IndexParamAudioInit
- OMX_IndexParamCompBufferSupplier
-
-Mandatory params across all audio standard components
-=====================================================
- OMX_IndexParamAudioPortFormat OMX_AUDIO_PARAM_PORTFORMATTYPE (KUidTAudioPortFormatType, TAudioPortFormatType)
-
-Component role: audio_decoder.aac
-=================================
-- APB+0: Accepts encoded audio
- OMX_IndexParamAudioAac OMX_AUDIO_PARAM_AACPROFILETYPE (KUidTPortAACProfileType, TPortAACProfileType)
-- APB+1: Emits decoded audio
- OMX_IndexParamAudioPcm OMX_AUDIO_PARAM_PCMMODETYPE (KUidTPortPCMType, TPortPCMType)
-
-Component role: audio_renderer.pcm
-==================================
-- APB+0: Accepts audio for rendering:
- (OMX_IndexParamAudioPcm, OMX_AUDIO_PARAM_PCMMODETYPE) (KUidTPortPCMType, TPortPCMType)
- (OMX_IndexConfigAudioVolume, OMX_AUDIO_CONFIG_VOLUMETYPE) (KUidTPortVolumeType, TPortVolumeType)
- (OMX_IndexConfigAudioMute, OMX_AUDIO_CONFIG_MUTETYPE) (KUidTPortMuteType, TPortMuteType)
-
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-TInt COmxILDummyAudioDecILIF::SetConfig(const TILStruct& aConfig,
- const MILComponentPortIf* aComponentPort)
- {
-
- TInt portIndex = 0xFF; // Initialize to invalid port index
- if (aComponentPort)
- {
- portIndex = aComponentPort->PortIndex();
- }
- else
- {
- // All parameters and configs are targetted to the port.
- return KErrArgument;
- }
-
- TInt error = KErrNone;
-
- switch (aConfig.Uid().iUid)
- {
- case KUidOMXILStructType:
- {
- const TOMXILStructParam* omxILStructParam = static_cast<const TOMXILStructParam*> (&aConfig);
- switch (omxILStructParam->Index())
- {
- case OMX_IndexParamPortDefinition:
- {
- OMX_PARAM_PORTDEFINITIONTYPE* config = reinterpret_cast<OMX_PARAM_PORTDEFINITIONTYPE*>(
- const_cast<TOMXILStructParam*>(omxILStructParam)->Param());
- ASSERT(config);
- config->nPortIndex = portIndex;
- config->nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
- error = OmxSetParameter(OMX_IndexParamPortDefinition, config);
- break;
- }
- default:
- {
- error = KErrNotSupported;
- }
- }
- break;
- }
-
- case KUidMMFTTaskConfig:
- {
- const TTaskConfig* config = TILTaskConfig::GetStructure(aConfig);
- ASSERT(config);
-
- TInt sampleRate = config->iRate;
- TInt channels = (config->iStereoMode & ETaskMono)? KMonoChannel : KStereoChannel;
- TBool interleaved = (config->iStereoMode & ETaskInterleaved)?ETrue : EFalse;
-
- TUid format;
- error = GetComponentIfRole(format);
- if (error != KErrNone)
- {
- break;
- }
-
- if (format == KUidFormatOGG)
- {
- if (aComponentPort->PortDirection()== EDirOutput)
- {
- // Set Output Port (PCM16)
- OMX_AUDIO_PARAM_PCMMODETYPE pcm;
- pcm.nVersion = KOMXILSpecVersion;
- pcm.nSize = sizeof(OMX_AUDIO_PARAM_PCMMODETYPE);
- pcm.nPortIndex = portIndex;
- pcm.nSamplingRate = sampleRate;
- pcm.ePCMMode = OMX_AUDIO_PCMModeLinear;
- pcm.eNumData = OMX_NumericalDataSigned;
- pcm.nBitPerSample = KPcm16BitsPerSample;
- pcm.nChannels = channels;
- pcm.bInterleaved = (OMX_BOOL)interleaved;
-
- error = OmxSetParameter(OMX_IndexParamAudioPcm, &pcm);
- }
- else if (aComponentPort->PortDirection() == EDirInput)
- {
- // Set Input Port (Vorbis)
- OMX_AUDIO_PARAM_VORBISTYPE vorbis;
- vorbis.nVersion = KOMXILSpecVersion;
- vorbis.nSize = sizeof(OMX_AUDIO_PARAM_VORBISTYPE);
- vorbis.nPortIndex = portIndex;
-
- error = OmxSetParameter(OMX_IndexParamAudioVorbis, &vorbis);
- }
- }
- else if (format == KUidFormatPCM16)
- {
- if (aComponentPort->PortDirection()== EDirInput)
- {
- // Set Input Port (PCM16)
- OMX_AUDIO_PARAM_PCMMODETYPE pcm;
- pcm.nVersion = KOMXILSpecVersion;
- pcm.nSize = sizeof(OMX_AUDIO_PARAM_PCMMODETYPE);
- pcm.nPortIndex = portIndex;
- pcm.nSamplingRate = sampleRate;
- pcm.ePCMMode = OMX_AUDIO_PCMModeLinear;
- pcm.eNumData = OMX_NumericalDataSigned;
- pcm.nBitPerSample = KPcm16BitsPerSample;
- pcm.nChannels = channels;
- pcm.bInterleaved = (OMX_BOOL)interleaved;
-
- error = OmxSetParameter(OMX_IndexParamAudioPcm, &pcm);
- }
- else
- {
- error = KErrNotSupported;
- }
- }
- else
- {
- error = KErrNotSupported;
- }
- break;
- }
- case KUidTPortDefinitionType:
- {
- OMX_PARAM_PORTDEFINITIONTYPE* config = const_cast<OMX_PARAM_PORTDEFINITIONTYPE*>(
- TILPortDefinition::GetStructure(aConfig));
- ASSERT(config);
- config->nVersion = KOMXILSpecVersion;
- config->nSize = sizeof(OMX_AUDIO_PARAM_PORTFORMATTYPE);
- config->nPortIndex = portIndex;
- error = OmxSetParameter(OMX_IndexParamPortDefinition, config);
- break;
- }
- case KUidTAudioPortFormatType:
- {
- OMX_AUDIO_PARAM_PORTFORMATTYPE* config = const_cast<OMX_AUDIO_PARAM_PORTFORMATTYPE*>(
- TILAudioPortFormat::GetStructure(aConfig));
- ASSERT(config);
- config->nVersion = KOMXILSpecVersion;
- config->nSize = sizeof(OMX_AUDIO_PARAM_PORTFORMATTYPE);
- config->nPortIndex = portIndex;
- error = OmxSetParameter(OMX_IndexParamAudioPortFormat, config);
- break;
- }
- case KUidTPortPCMModeType:
- {
- OMX_AUDIO_PARAM_PCMMODETYPE* config = const_cast<OMX_AUDIO_PARAM_PCMMODETYPE*>(
- TILPortPCMMode::GetStructure(aConfig));
- ASSERT(config);
- config->nVersion = KOMXILSpecVersion;
- config->nSize = sizeof(OMX_AUDIO_PARAM_PCMMODETYPE);
- config->nPortIndex = portIndex;
- error = OmxSetParameter(OMX_IndexParamAudioPcm, config);
- break;
- }
- case KUidTPortAACProfileType:
- {
- OMX_AUDIO_PARAM_AACPROFILETYPE* config = const_cast<OMX_AUDIO_PARAM_AACPROFILETYPE*>(
- TILPortAACProfile::GetStructure(aConfig));
- ASSERT(config);
- config->nVersion = KOMXILSpecVersion;
- config->nSize = sizeof(OMX_AUDIO_PARAM_AACPROFILETYPE);
- config->nPortIndex = portIndex;
- error = OmxSetParameter(OMX_IndexParamAudioAac, config);
- break;
- }
- case KUidTPortVorbisType:
- {
- OMX_AUDIO_PARAM_VORBISTYPE* config = const_cast<OMX_AUDIO_PARAM_VORBISTYPE*>(
- TILPortVorbis::GetStructure(aConfig));
- ASSERT(config);
- config->nVersion = KOMXILSpecVersion;
- config->nSize = sizeof(OMX_AUDIO_PARAM_VORBISTYPE);
- config->nPortIndex = portIndex;
- error = OmxSetParameter(OMX_IndexParamAudioVorbis, config);
- break;
- }
- case KUidTPortVolumeType:
- {
- OMX_AUDIO_CONFIG_VOLUMETYPE* config = const_cast<OMX_AUDIO_CONFIG_VOLUMETYPE*>(
- TILPortVolume::GetStructure(aConfig));
- ASSERT(config);
- config->nVersion = KOMXILSpecVersion;
- config->nSize = sizeof(OMX_AUDIO_CONFIG_VOLUMETYPE);
- config->nPortIndex = portIndex;
- error = OmxSetConfig(OMX_IndexConfigAudioVolume, config);
- break;
- }
- case KUidTPortMuteType:
- {
- OMX_AUDIO_CONFIG_MUTETYPE* config = const_cast<OMX_AUDIO_CONFIG_MUTETYPE*>(
- TILPortMute::GetStructure(aConfig));
- ASSERT(config);
- config->nVersion = KOMXILSpecVersion;
- config->nSize = sizeof(OMX_AUDIO_CONFIG_MUTETYPE);
- config->nPortIndex = portIndex;
- error = OmxSetConfig(OMX_IndexConfigAudioMute, config);
- break;
- }
- default:
- {
- error = KErrNotSupported;
- }
- }
- return error;
- }
-
-
-TInt COmxILDummyAudioDecILIF::GetConfig(TILStruct& aConfig,
- const MILComponentPortIf* aComponentPort) const
- {
- TInt portIndex = 0xFF; // Initialize to invalid port index
- if (aComponentPort)
- {
- portIndex = aComponentPort->PortIndex();
- }
- else
- {
- // All parameters and configs are targetted to the port.
- return KErrArgument;
- }
-
- TInt error = KErrNone;
-
- switch (aConfig.Uid().iUid)
- {
- case KUidOMXILStructType:
- {
- TOMXILStructParam* omxILStructParam = static_cast<TOMXILStructParam*> (&aConfig);
- switch (omxILStructParam->Index())
- {
- case OMX_IndexParamPortDefinition:
- {
- OMX_PARAM_PORTDEFINITIONTYPE* config = reinterpret_cast<OMX_PARAM_PORTDEFINITIONTYPE*>(omxILStructParam->Param());
- ASSERT(config);
- config->nVersion = KOMXILSpecVersion;
- config->nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
- config->nPortIndex = portIndex;
- error = OmxGetParameter(OMX_IndexParamPortDefinition, config);
- break;
- }
- default:
- {
- error = KErrNotSupported;
- }
- }
- break;
- }
-
- case KUidTPortDefinitionType:
- {
- OMX_PARAM_PORTDEFINITIONTYPE* config = TILPortDefinition::GetStructure(aConfig);
- ASSERT(config);
- config->nVersion = KOMXILSpecVersion;
- config->nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
- config->nPortIndex = portIndex;
- error = OmxGetParameter(OMX_IndexParamPortDefinition, config);
- break;
- }
- case KUidTAudioPortFormatType:
- {
- OMX_AUDIO_PARAM_PORTFORMATTYPE* config = TILAudioPortFormat::GetStructure(aConfig);
- ASSERT(config);
- config->nVersion = KOMXILSpecVersion;
- config->nSize = sizeof(OMX_AUDIO_PARAM_PORTFORMATTYPE);
- config->nPortIndex = portIndex;
- error = OmxGetParameter(OMX_IndexParamAudioPortFormat, config);
- break;
- }
- case KUidTPortPCMModeType:
- {
- OMX_AUDIO_PARAM_PCMMODETYPE* config = TILPortPCMMode::GetStructure(aConfig);
- ASSERT(config);
- config->nVersion = KOMXILSpecVersion;
- config->nSize = sizeof(OMX_AUDIO_PARAM_PCMMODETYPE);
- config->nPortIndex = portIndex;
- error = OmxGetParameter(OMX_IndexParamAudioPcm, config);
- break;
- }
- case KUidTPortAACProfileType:
- {
- OMX_AUDIO_PARAM_AACPROFILETYPE* config = TILPortAACProfile::GetStructure(aConfig);
- ASSERT(config);
- config->nVersion = KOMXILSpecVersion;
- config->nSize = sizeof(OMX_AUDIO_PARAM_AACPROFILETYPE);
- config->nPortIndex = portIndex;
- error = OmxGetParameter(OMX_IndexParamAudioAac, config);
- break;
- }
- case KUidTPortVorbisType:
- {
- OMX_AUDIO_PARAM_VORBISTYPE* config = TILPortVorbis::GetStructure(aConfig);
- ASSERT(config);
- config->nVersion = KOMXILSpecVersion;
- config->nSize = sizeof(OMX_AUDIO_PARAM_VORBISTYPE);
- config->nPortIndex = portIndex;
- error = OmxGetParameter(OMX_IndexParamAudioVorbis, config);
- break;
- }
- case KUidTPortVolumeType:
- {
- OMX_AUDIO_CONFIG_VOLUMETYPE* config = TILPortVolume::GetStructure(aConfig);
- ASSERT(config);
- config->nVersion = KOMXILSpecVersion;
- config->nSize = sizeof(OMX_AUDIO_CONFIG_VOLUMETYPE);
- config->nPortIndex = portIndex;
- error = OmxGetConfig(OMX_IndexConfigAudioVolume, config);
- break;
- }
- case KUidTPortMuteType:
- {
- OMX_AUDIO_CONFIG_MUTETYPE* config = TILPortMute::GetStructure(aConfig);
- ASSERT(config);
- config->nVersion = KOMXILSpecVersion;
- config->nSize = sizeof(OMX_AUDIO_CONFIG_MUTETYPE);
- config->nPortIndex = portIndex;
- error = OmxGetConfig(OMX_IndexConfigAudioMute, config);
- break;
- }
- default:
- {
- error = KErrNotSupported;
- }
- }
-
- return error;
- }
-
-TInt COmxILDummyAudioDecILIF::SetExtConfig(const TDesC8& aParameterName,
- const TILStruct& aConfig,
- const MILComponentPortIf* aComponentPort)
- {
- TInt portIndex = 0xFF; // Initialize to invalid port index
- if (aComponentPort)
- {
- portIndex = aComponentPort->PortIndex();
- }
- else
- {
- // All parameters and configs are targetted to the port.
- return KErrArgument;
- }
-
- OMX_INDEXTYPE indexType;
- TInt error = KErrNone;
- error = OmxGetExtensionIndex(aParameterName, &indexType);
-
- if (error == KErrNone)
- {
- switch (aConfig.Uid().iUid)
- {
- case KUidTPortDefinitionType:
- {
- OMX_PARAM_PORTDEFINITIONTYPE* config = const_cast<OMX_PARAM_PORTDEFINITIONTYPE*>(TILPortDefinition::GetStructure(aConfig));
- ASSERT(config);
- config->nVersion = KOMXILSpecVersion;
- config->nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
- config->nPortIndex = portIndex;
- error = OmxSetParameter(OMX_IndexParamPortDefinition, config);
- break;
- }
- default:
- {
- error = KErrNotSupported;
- }
- }
- }
-
-
- return error;
- }
-
-TInt COmxILDummyAudioDecILIF::GetExtConfig(const TDesC8& aParameterName,
- TILStruct& aConfig,
- const MILComponentPortIf* aComponentPort) const
- {
- TInt portIndex = 0xFF; // Initialize to invalid port index
- if (aComponentPort)
- {
- portIndex = aComponentPort->PortIndex();
- }
- else
- {
- // All parameters and configs are targetted to the port.
- return KErrArgument;
- }
-
- OMX_INDEXTYPE indexType;
-
- TInt error = KErrNone;
- error = OmxGetExtensionIndex(aParameterName, &indexType);
-
- if (error == KErrNone)
- {
- switch (aConfig.Uid().iUid)
- {
- case KUidTPortDefinitionType:
- {
- OMX_PARAM_PORTDEFINITIONTYPE* config = TILPortDefinition::GetStructure(aConfig);
- ASSERT(config);
- config->nVersion = KOMXILSpecVersion;
- config->nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
- config->nPortIndex = portIndex;
- error = OmxGetParameter(indexType, config);
- break;
- }
- default:
- {
- error = KErrNotSupported;
- }
- }
- }
- return error;
- }
-
-TInt COmxILDummyAudioDecILIF::SetComponentIfRole(const TUid& aComponentRole)
- {
- if ((aComponentRole == KUidFormatAAC) ||
- (aComponentRole == KUidFormatOGG) ||
- (aComponentRole == KUidFormatPCM16))
- {
- return (COmxILDummyBaseILIF::SetComponentIfRole(aComponentRole));
- }
- else
- {
- return KErrNotSupported;
- }
- }
--- a/omxil/mmilapi/unittest/test_plugins/omxildummyaudiodecilif/omxildummyaudiodecilif.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef OMXILDUMMYAUDIODECILIF_H
-#define OMXILDUMMYAUDIODECILIF_H
-
-#include "omxildummybaseilif.h"
-
-/**
-Test component.
-Concrete implementation of the MILIF API when implemented as a plugin
-and specific to the AAC and Vorbis decoder and the PCM renderer OMX IL component specifications.
-
-*/
-class COmxILDummyAudioDecILIF : public COmxILDummyBaseILIF
- {
-public:
- static COmxILDummyAudioDecILIF* NewL();
-
- // from COmxILDummyBaseILIF
- TInt SetConfig(const TILStruct& aConfig, const MILComponentPortIf* aComponentPort);
- TInt GetConfig(TILStruct& aConfig, const MILComponentPortIf* aComponentPort) const;
- TInt SetExtConfig(const TDesC8& aParameterName, const TILStruct& aConfig, const MILComponentPortIf* aComponentPort);
- TInt GetExtConfig(const TDesC8& aParameterName, TILStruct& aConfig, const MILComponentPortIf* aComponentPort) const;
- TInt SetComponentIfRole(const TUid& aComponentRole);
-
-private:
- COmxILDummyAudioDecILIF();
- ~COmxILDummyAudioDecILIF();
- };
-
-#endif // OMXILDUMMYAUDIODECILIF_H
-
--- a/omxil/mmilapi/unittest/test_plugins/omxildummyaudiodecilif/omxildummyaudiodecilif.rss Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-// Copyright (c) 2008-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:
-// comxilaudiodecgenericif.rss
-//
-//
-
-#include <ecom/registryinfo.rh>
-#include "ilifuids.hrh"
-#include "iltestuids.hrh"
-
-RESOURCE REGISTRY_INFO theInfo
- {
- dll_uid = KUidOmxILDummyAudioDecMILIFPluginDll;
- interfaces =
- {
- INTERFACE_INFO
- {
- interface_uid = KILComponentIfUid;
- implementations =
- {
- IMPLEMENTATION_INFO
- {
- implementation_uid = KUidOmxILDummyAudioDecMILIFPlugin;
- version_no = 1;
- display_name = "Symbian OMX IL v1.1 AudioDec I/F";
- default_data = "audio_decoder.vorbis, audio_decoder.aac, audio_renderer.pcm";
- opaque_data = "";
- }
- };
- }
- };
- }
--- a/omxil/mmilapi/unittest/test_plugins/omxildummybaseilif/omxildummybaseilif.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,298 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-#include "omxildummybaseilif.h"
-#include "omxildummybaseilifbody.h"
-#include "omxilcoreutils.h"
-#include "iltestuids.hrh"
-#include "milcomponentportif.h"
-#include "ilifuids.h"
-#include <openmax/il/khronos/v1_x/OMX_Types.h>
-
-const TUint32 KOMXALL = 0xFFFFFFFF;
-
-
-EXPORT_C COmxILDummyBaseILIF::COmxILDummyBaseILIF()
- {
- }
-
-EXPORT_C COmxILDummyBaseILIF::~COmxILDummyBaseILIF()
- {
- if (iBody)
- {
- delete iBody;
- }
- }
-
-EXPORT_C void COmxILDummyBaseILIF::CreateComponentL(const TDesC8& aComponentName,
- MILIfObserver& aComponentIfObserver)
- {
- iBody = CBody::NewL(*this, aComponentIfObserver, aComponentName);
-
- User::LeaveIfError(iBody->SetPortsL());
- }
-
-EXPORT_C void COmxILDummyBaseILIF::CreateComponentL(const TUid& /*aUid*/,
- MILIfObserver& /*ComponentIfObserver*/)
- {
- // OMX Versions do not use this method of creation
- User::Leave(KErrNotSupported);
- }
-
-EXPORT_C void COmxILDummyBaseILIF::ReleaseComponent()
- {
- delete iBody;
- iBody = NULL;
-
- delete this;
- }
-
-EXPORT_C TInt COmxILDummyBaseILIF::GetComponentInputPorts(RPointerArray<MILComponentPortIf>& aComponentPorts) const
- {
- return (iBody->GetComponentPorts(aComponentPorts, OMX_DirInput));
- }
-
-EXPORT_C TInt COmxILDummyBaseILIF::GetComponentOutputPorts(RPointerArray<MILComponentPortIf>& aComponentPorts) const
- {
- return (iBody->GetComponentPorts(aComponentPorts, OMX_DirOutput));
- }
-
-EXPORT_C TInt COmxILDummyBaseILIF::SetConfig(const TILStruct& /*aConfig*/,
- const MILComponentPortIf* /*aComponentPort*/)
- {
- // It should be implemented in the derived class
- return KErrNotSupported;
- }
-
-EXPORT_C TInt COmxILDummyBaseILIF::GetConfig(TILStruct& /*aConfig*/,
- const MILComponentPortIf* /*aComponentPort*/) const
- {
- // It should be implemented in the derived class
- return (KErrNotSupported);
- }
-
-EXPORT_C TInt COmxILDummyBaseILIF::Initialize()
- {
- return (iBody->OmxSendCommand(OMX_CommandStateSet, OMX_StateIdle, NULL));
- }
-
-EXPORT_C TInt COmxILDummyBaseILIF::Execute()
- {
- return (iBody->OmxSendCommand(OMX_CommandStateSet, OMX_StateExecuting, NULL));
- }
-
-EXPORT_C TInt COmxILDummyBaseILIF::Pause()
- {
- return (iBody->OmxSendCommand(OMX_CommandStateSet, OMX_StatePause, NULL));
- }
-
-EXPORT_C TInt COmxILDummyBaseILIF::Stop()
- {
- return (iBody->OmxSendCommand(OMX_CommandStateSet, OMX_StateIdle, NULL));
- }
-
-EXPORT_C TInt COmxILDummyBaseILIF::UnInitialize()
- {
- return (iBody->OmxSendCommand(OMX_CommandStateSet, OMX_StateLoaded, NULL));
- }
-
-EXPORT_C TInt COmxILDummyBaseILIF::GetState(TILComponentState& aState) const
- {
- TInt error;
- OMX_STATETYPE state;
- error = iBody->OmxGetState(&state);
- aState = ConvertOmxState(state);
- return error;
- }
-
-EXPORT_C TInt COmxILDummyBaseILIF::SendCommand(const TILCommand& aCommand)
- {
- OMX_COMMANDTYPE command = ConvertSymbianCommandType(aCommand.iCmd);
- return (iBody->OmxSendCommand(command, aCommand.iData1, aCommand.iExtraData));
- }
-
-EXPORT_C TInt COmxILDummyBaseILIF::FlushAllPorts()
- {
- return (iBody->OmxSendCommand(OMX_CommandFlush, KOMXALL, NULL));
- }
-
-EXPORT_C TInt COmxILDummyBaseILIF::ComponentRoleEnum(TPtr8& aComponentRole,
- TUint32 aIndex) const
- {
- return (iBody->OmxComponentRoleEnum(aComponentRole, aIndex));
- }
-
-EXPORT_C TInt COmxILDummyBaseILIF::GetComponentVersion(TILComponentVersion& aVersion) const
- {
- return (iBody->OmxGetComponentVersion(aVersion.iComponentName,
- (OMX_VERSIONTYPE*)&aVersion.iComponentVersion,
- (OMX_VERSIONTYPE*)&aVersion.iSpecVersion,
- (OMX_UUIDTYPE*)&aVersion.iComponentUniqueID));
- }
-
-EXPORT_C TInt COmxILDummyBaseILIF::SetComponentIfRole(const TUid& aComponentRole)
- {
- return (iBody->SetIfToRole(aComponentRole));
- }
-
-EXPORT_C TInt COmxILDummyBaseILIF::SetComponentIfRole(const TDesC8& /*aComponentRole*/)
- {
- return (KErrNotSupported);
- }
-
-EXPORT_C TInt COmxILDummyBaseILIF::GetComponentIfRole(TUid& aComponentRole) const
- {
- return (iBody->GetIfRole(aComponentRole));
- }
-
-EXPORT_C TInt COmxILDummyBaseILIF::GetComponentIfRole(TDes8& /*aComponentRole*/) const
- {
- return (KErrNotSupported);
- }
-
-EXPORT_C TInt COmxILDummyBaseILIF::SetExtConfig(const TDesC8& /*aParameterName*/,
- const TILStruct& /*aConfig*/,
- const MILComponentPortIf* /*aComponentPort*/)
- {
- // It should be implemented in the derived class
- return (KErrNotSupported);
- }
-
-EXPORT_C TInt COmxILDummyBaseILIF::GetExtConfig(const TDesC8& /*aParameterName*/,
- TILStruct& /*aConfig*/,
- const MILComponentPortIf* /*aComponentPort*/) const
- {
- // It should be implemented in the derived class
- return (KErrNotSupported);
- }
-EXPORT_C TAny* COmxILDummyBaseILIF::CustomInterface(TUid aUid)
- {
- if (aUid == KUidILComponentIf)
- {
- MILComponentIf* componentIf = this;
- return componentIf;
- }
- else
- {
- return NULL;
- }
- }
-
-
-EXPORT_C TInt COmxILDummyBaseILIF::FillBufferDone(CMMFBuffer* aBuffer,
- TInt aPortIndex)
- {
- return (iBody->FillBufferDone(aBuffer, aPortIndex));
- }
-
-EXPORT_C TInt COmxILDummyBaseILIF::EmptyBufferDone(const CMMFBuffer* aBuffer,
- TInt aPortIndex)
- {
- return (iBody->EmptyBufferDone(aBuffer, aPortIndex));
- }
-
-EXPORT_C TInt COmxILDummyBaseILIF::EventHandler(OMX_EVENTTYPE aEvent,
- TUint32 aData1,
- TUint32 aData2,
- TAny* aExtraInfo)
- {
- return (iBody->EventHandler(aEvent, aData1, aData2, aExtraInfo));
- }
-
-EXPORT_C TInt COmxILDummyBaseILIF::OmxGetParameter(OMX_INDEXTYPE aParamIndex,
- TAny* aComponentParameterStructure) const
- {
- return (iBody->OmxGetParameter(aParamIndex, aComponentParameterStructure));
- }
-
-EXPORT_C TInt COmxILDummyBaseILIF::OmxSetParameter(OMX_INDEXTYPE aParamIndex,
- TAny* aComponentParameterStructure)
- {
- return (iBody->OmxSetParameter(aParamIndex, aComponentParameterStructure));
- }
-
-EXPORT_C TInt COmxILDummyBaseILIF::OmxGetConfig(OMX_INDEXTYPE aConfigIndex,
- TAny* aValue) const
- {
- return (iBody->OmxGetConfig(aConfigIndex, aValue));
- }
-
-EXPORT_C TInt COmxILDummyBaseILIF::OmxSetConfig(OMX_INDEXTYPE aConfigIndex,
- TAny* aValue)
- {
- return (iBody->OmxSetConfig(aConfigIndex, aValue));
- }
-
-EXPORT_C TInt COmxILDummyBaseILIF::OmxGetExtensionIndex(const TDesC8& aParameterName,
- OMX_INDEXTYPE* aIndexType) const
- {
- return (iBody->OmxGetExtensionIndex(aParameterName, aIndexType));
- }
-
-TInt COmxILDummyBaseILIF::OmxSendCommand(OMX_COMMANDTYPE aCmd,
- TUint32 aParam1,
- TAny* aCmdData)
- {
- return (iBody->OmxSendCommand(aCmd, aParam1, aCmdData));
- }
-
-TInt COmxILDummyBaseILIF::OmxComponentTunnelRequest(TUint32 aPortInput,
- OMX_HANDLETYPE aOutput,
- TUint32 aPortOutput)
- {
- return (iBody->OmxComponentTunnelRequest(aPortInput, aOutput, aPortOutput));
- }
-
-TInt COmxILDummyBaseILIF::OmxComponentDisconnectTunnel(TUint32 aPortInput,
- OMX_HANDLETYPE aOutput,
- TUint32 aPortOutput)
- {
- return (iBody->OmxComponentDisconnectTunnel(aPortInput, aOutput, aPortOutput));
- }
-
-TInt COmxILDummyBaseILIF::OmxUseBuffer(CMMFBuffer* aBuffer,
- TUint32 aPortIndex)
- {
- return (iBody->OmxUseBuffer(aBuffer, aPortIndex));
- }
-
-CMMFBuffer* COmxILDummyBaseILIF::OmxAllocateBufferL(TUint32 aPortIndex,
- TUint32 aSizeBytes)
- {
- return (iBody->OmxAllocateBufferL(aPortIndex, aSizeBytes));
- }
-
-TInt COmxILDummyBaseILIF::OmxFreeBuffer(CMMFBuffer* aBuffer)
- {
- return (iBody->OmxFreeBuffer(aBuffer));
- }
-
-TInt COmxILDummyBaseILIF::OmxEmptyThisBuffer(const CMMFBuffer* aBuffer,
- MOmxILComponentIfObserver* aObserver)
- {
- return (iBody->OmxEmptyThisBuffer(aBuffer, aObserver));
- }
-
-TInt COmxILDummyBaseILIF::OmxFillThisBuffer(CMMFBuffer* aBuffer,
- MOmxILComponentIfObserver* aObserver)
- {
- return (iBody->OmxFillThisBuffer(aBuffer, aObserver));
- }
-
-OMX_COMPONENTTYPE* COmxILDummyBaseILIF::OmxHandle() const
- {
- return (iBody->Handle());
- }
--- a/omxil/mmilapi/unittest/test_plugins/omxildummybaseilif/omxildummybaseilifbody.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,415 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include "omxildummybaseilifbody.h"
-#include "omxilcoreutils.h"
-#include "omxilspecversion.h"
-#include "milifobserver.h"
-#include "tilstructtypes.h"
-
-
-const TInt KMaxComponentNameLength = 128;
-
-
-COmxILDummyBaseILIF::CBody::CBody(COmxILDummyBaseILIF& aParent,
- MILIfObserver& aComponentIfObserver)
- :
- iParent(aParent),
- iIfObserver(aComponentIfObserver)
- {
- }
-
-COmxILDummyBaseILIF::CBody::~CBody()
- {
- iInputPorts.ResetAndDestroy();
- iInputPorts.Close();
- iOutputPorts.ResetAndDestroy();
- iOutputPorts.Close();
- delete iBufferManager;
- delete iCallbacks;
-
- ::OMX_FreeHandle(reinterpret_cast<OMX_HANDLETYPE>(iHandle));
- }
-
-COmxILDummyBaseILIF::CBody* COmxILDummyBaseILIF::CBody::NewL(COmxILDummyBaseILIF& aParent,
- MILIfObserver& aComponentIfObserver,
- const TDesC8& aComponentName)
- {
- CBody* self = new (ELeave) CBody(aParent, aComponentIfObserver);
- CleanupStack::PushL(self);
- self->ConstructL(aComponentName);
- CleanupStack::Pop(self);
- return self;
- }
-
-void COmxILDummyBaseILIF::CBody::ConstructL(const TDesC8& aComponentName)
- {
- iCallbacks = COmxCallbacks::NewL(iParent);
-
- RBuf8 buf;
- buf.CleanupClosePushL();
- buf.CreateL(aComponentName, KMaxComponentNameLength);
- TUint8* name = const_cast<TUint8*>(buf.PtrZ());
-
- OMX_ERRORTYPE errorType = ::OMX_GetHandle(reinterpret_cast<OMX_HANDLETYPE*>(&iHandle),
- reinterpret_cast<OMX_STRING>(name),
- iCallbacks,
- *iCallbacks);
- CleanupStack::PopAndDestroy(&buf);
-
- User::LeaveIfError(ConvertOmxErrorType(errorType));
-
- iBufferManager = new (ELeave) COmxBufferManager(iHandle);
- }
-
-OMX_COMPONENTTYPE* COmxILDummyBaseILIF::CBody::Handle() const
- {
- return iHandle;
- }
-
-TInt COmxILDummyBaseILIF::CBody::OmxGetComponentVersion(TPtr8 aComponentName,
- OMX_VERSIONTYPE* aComponentVersion,
- OMX_VERSIONTYPE* aSpecVersion,
- OMX_UUIDTYPE* aComponentUUID)
- {
- ASSERT(aComponentVersion);
- ASSERT(aSpecVersion);
- ASSERT(aComponentUUID);
- TUint8* cname = const_cast<TUint8*>(aComponentName.PtrZ());
- OMX_ERRORTYPE error = iHandle->GetComponentVersion(reinterpret_cast<OMX_HANDLETYPE>(iHandle),
- reinterpret_cast<OMX_STRING>(cname), aComponentVersion, aSpecVersion, aComponentUUID);
-
- TLex8 lex(cname);
- TInt length;
- for( length = 0; !lex.Eos(); ++length )
- {
- lex.Inc();
- }
- aComponentName.SetLength(length);
- return ConvertOmxErrorType(error);
- }
-
-TInt COmxILDummyBaseILIF::CBody::OmxSendCommand(OMX_COMMANDTYPE aCmd,
- TUint32 aParam,
- TAny* aCmdData)
- {
- OMX_ERRORTYPE error = iHandle->SendCommand(reinterpret_cast<OMX_HANDLETYPE>(iHandle), aCmd, aParam, aCmdData);
- return ConvertOmxErrorType(error);
- }
-
-TInt COmxILDummyBaseILIF::CBody::OmxGetParameter(OMX_INDEXTYPE aParamIndex,
- TAny* aValue)
- {
- ASSERT(aValue);
- OMX_ERRORTYPE error = iHandle->GetParameter(reinterpret_cast<OMX_HANDLETYPE>(iHandle), aParamIndex, aValue);
- return ConvertOmxErrorType(error);
- }
-
-TInt COmxILDummyBaseILIF::CBody::OmxSetParameter(OMX_INDEXTYPE aIndex,
- TAny* aValue)
- {
- ASSERT(aValue);
- OMX_ERRORTYPE error = iHandle->SetParameter(reinterpret_cast<OMX_HANDLETYPE>(iHandle), aIndex, aValue);
- return ConvertOmxErrorType(error);
- }
-
-TInt COmxILDummyBaseILIF::CBody::OmxGetConfig(OMX_INDEXTYPE aIndex,
- TAny* aValue)
- {
- ASSERT(aValue);
- OMX_ERRORTYPE error = iHandle->GetConfig(reinterpret_cast<OMX_HANDLETYPE>(iHandle), aIndex, aValue);
- return ConvertOmxErrorType(error);
- }
-
-TInt COmxILDummyBaseILIF::CBody::OmxSetConfig(OMX_INDEXTYPE aIndex,
- TAny* aValue)
- {
- ASSERT(aValue);
- OMX_ERRORTYPE error = iHandle->SetConfig(reinterpret_cast<OMX_HANDLETYPE>(iHandle), aIndex, aValue);
- return ConvertOmxErrorType(error);
- }
-
-TInt COmxILDummyBaseILIF::CBody::OmxGetExtensionIndex(const TDesC8& aParameterName,
- OMX_INDEXTYPE* aIndexType)
-{
- HBufC8* buf = HBufC8::New(aParameterName.Length()+1);
- if (buf == NULL)
- {
- return KErrNoMemory;
- }
- else
- {
- *buf = aParameterName;
- TUint8* cstring = const_cast<TUint8*>(buf->Des().PtrZ());
- OMX_ERRORTYPE error = iHandle->GetExtensionIndex(reinterpret_cast<OMX_HANDLETYPE>(iHandle), reinterpret_cast<char*>(cstring), aIndexType);
- delete buf;
- return ConvertOmxErrorType(error);
- }
- }
-
-TInt COmxILDummyBaseILIF::CBody::OmxGetState(OMX_STATETYPE* aState)
- {
- OMX_ERRORTYPE error = iHandle->GetState(reinterpret_cast<OMX_HANDLETYPE>(iHandle), aState);
- return ConvertOmxErrorType(error);
- }
-
-TInt COmxILDummyBaseILIF::CBody::OmxComponentTunnelRequest(TUint32 aPortInput,
- OMX_HANDLETYPE aOutput,
- TUint32 aPortOutput)
- {
- OMX_ERRORTYPE error = ::OMX_SetupTunnel(aOutput, aPortOutput, reinterpret_cast<OMX_HANDLETYPE>(iHandle), aPortInput);
- return ConvertOmxErrorType(error);
- }
-
-TInt COmxILDummyBaseILIF::CBody::OmxComponentDisconnectTunnel(TUint32 aPortInput,
- OMX_HANDLETYPE aOutput,
- TUint32 aPortOutput)
- {
- OMX_ERRORTYPE error = ::OMX_SetupTunnel(aOutput, aPortOutput, 0, 0);
- if (error == OMX_ErrorNone)
- {
- error = ::OMX_SetupTunnel(0, 0, reinterpret_cast<OMX_HANDLETYPE>(iHandle), aPortInput);
- }
- return ConvertOmxErrorType(error);
- }
-
-TInt COmxILDummyBaseILIF::CBody::OmxUseBuffer(CMMFBuffer* aBuffer,
- TUint32 aPortIndex)
- {
- ASSERT(aBuffer);
- return (iBufferManager->UseBuffer(*aBuffer, aPortIndex));
- }
-
-CMMFBuffer* COmxILDummyBaseILIF::CBody::OmxAllocateBufferL(TUint32 aPortIndex,
- TUint32 aSizeBytes)
- {
- return (iBufferManager->AllocateBufferL(aPortIndex, aSizeBytes));
- }
-
-TInt COmxILDummyBaseILIF::CBody::OmxFreeBuffer(CMMFBuffer* aBuffer)
- {
- ASSERT(aBuffer);
- return (iBufferManager->FreeBuffer(aBuffer));
- }
-
-TInt COmxILDummyBaseILIF::CBody::OmxEmptyThisBuffer(const CMMFBuffer* aBuffer,
- MOmxILComponentIfObserver* aObserver)
- {
- ASSERT(aBuffer);
- return (iBufferManager->EmptyThisBuffer(aBuffer, aObserver));
- }
-
-TInt COmxILDummyBaseILIF::CBody::OmxFillThisBuffer(CMMFBuffer* aBuffer,
- MOmxILComponentIfObserver* aObserver)
- {
- ASSERT(aBuffer);
- return (iBufferManager->FillThisBuffer(aBuffer, aObserver));
- }
-
-TInt COmxILDummyBaseILIF::CBody::OmxComponentRoleEnum(TPtr8& aComponentRole,
- TUint32 aIndex)
- {
- TUint8* role = const_cast<TUint8*> (aComponentRole.PtrZ());
- OMX_ERRORTYPE error = iHandle->ComponentRoleEnum(reinterpret_cast<OMX_HANDLETYPE>(iHandle), reinterpret_cast<unsigned char*>(role), aIndex);
-
- TLex8 lex(role);
- TInt length;
- for( length = 0; !lex.Eos(); ++length )
- {
- lex.Inc();
- }
- aComponentRole.SetLength(length);
-
- return ConvertOmxErrorType(error);
- }
-
-TInt COmxILDummyBaseILIF::CBody::SetIfToRole(const TUid& aComponentRole)
- {
- iFormat = aComponentRole;
- return KErrNone;
- }
-
-TInt COmxILDummyBaseILIF::CBody::GetIfRole(TUid& aComponentRole) const
- {
- aComponentRole = iFormat;
- return KErrNone;
- }
-
-TInt COmxILDummyBaseILIF::CBody::SetPortsL()
- {
- OMX_PORT_PARAM_TYPE param;
- param.nVersion = KOMXILSpecVersion;
- param.nSize = sizeof(OMX_PORT_PARAM_TYPE);
- TInt err = OmxGetParameter(OMX_IndexParamAudioInit, ¶m);
-
- if (err == KErrNone)
- {
- for (TInt i=0; i < param.nPorts && err == KErrNone; i++ )
- {
- OMX_PARAM_PORTDEFINITIONTYPE portInfo;
- portInfo.nPortIndex = i;
- portInfo.nVersion = KOMXILSpecVersion;
- portInfo.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
- err = OmxGetParameter(OMX_IndexParamPortDefinition, &portInfo);
- if (err == KErrNone)
- {
- if (portInfo.eDir == OMX_DirInput)
- {
- COmxILDummyBasePortILIF* inputPort = COmxILDummyBasePortILIF::NewL(iParent, EDirInput, portInfo.nPortIndex);
- err = iInputPorts.Append(inputPort);
- }
- else
- {
- COmxILDummyBasePortILIF* outputPort = COmxILDummyBasePortILIF::NewL(iParent, EDirOutput, portInfo.nPortIndex);
- err = iOutputPorts.Append(outputPort);
- }
- }
- }
- }
- return err;
- }
-
-TInt COmxILDummyBaseILIF::CBody::GetComponentPorts(RPointerArray<MILComponentPortIf>& aComponentPorts,
- OMX_DIRTYPE aDirection)
- {
- TInt err = KErrNone;
- if (aDirection == OMX_DirInput)
- {
- const TInt counter = iInputPorts.Count();
- for (TInt i=0; i < counter && err == KErrNone; i++ )
- {
- err = aComponentPorts.Append(iInputPorts[i]);
- }
- }
- else if (aDirection == OMX_DirOutput)
- {
- const TInt counter = iOutputPorts.Count();
- for (TInt i=0; i < counter && err == KErrNone; i++ )
- {
- err = aComponentPorts.Append(iOutputPorts[i]);
- }
- }
- else
- {
- err = KErrNotSupported;
- }
- return err;
- }
-
-TInt COmxILDummyBaseILIF::CBody::FillBufferDone(CMMFBuffer* aBuffer,
- TInt aPortIndex)
- {
- ASSERT(aBuffer);
- // Loop through all output ports to search for the interface associated to this port index
- const TInt counter = iOutputPorts.Count();
- for (TInt i=0; i < counter; i++ )
- {
- if (iOutputPorts[i]->PortIndex() == aPortIndex)
- {
- return (iIfObserver.BufferDelivered(iOutputPorts[i], aBuffer));
- }
- }
-
- return KErrNotFound;
- }
-
-TInt COmxILDummyBaseILIF::CBody::EmptyBufferDone(const CMMFBuffer* aBuffer,
- TInt aPortIndex)
- {
- ASSERT(aBuffer);
- // Loop through all input ports to search for the interface associated to this port index
- const TInt counter = iInputPorts.Count();
- for (TInt i=0; i < counter; i++ )
- {
- if (iInputPorts[i]->PortIndex() == aPortIndex)
- {
- return (iIfObserver.BufferDelivered(iInputPorts[i], aBuffer));
- }
- }
-
- return KErrNotFound;
- }
-
-TInt COmxILDummyBaseILIF::CBody::EventHandler(OMX_EVENTTYPE aEvent,
- TUint32 aData1,
- TUint32 aData2,
- TAny* /*aExtraInfo*/)
- {
- TInt err = KErrNone;
- TILEvent thisEvent;
-
- switch (aEvent)
- {
- case OMX_EventCmdComplete:
- {
- thisEvent.iEvent = EEventCmdComplete;
- if (aData1 == OMX_CommandStateSet)
- {
- thisEvent.iData1 = ECommandStateSet;
- OMX_STATETYPE state = static_cast<OMX_STATETYPE>(aData2);
- thisEvent.iData2 = ConvertOmxState(state);
- err = iIfObserver.MsgFromILComponent(&iParent, thisEvent);
- break;
- }
- else if (aData1 == OMX_CommandFlush)
- {
- thisEvent.iData1 = ECommandFlush;
- thisEvent.iData2 = aData2; // Port index
- err = iIfObserver.MsgFromILComponent(&iParent, thisEvent);
- }
- else if (aData1 == OMX_CommandPortDisable)
- {
- thisEvent.iData1 = ECommandPortDisable;
- thisEvent.iData2 = aData2; // Port index
- err = iIfObserver.MsgFromILComponent(&iParent, thisEvent);
- }
- else if (aData1 == OMX_CommandPortEnable)
- {
- thisEvent.iData1 = ECommandPortEnable;
- thisEvent.iData2 = aData2; // Port index
- err = iIfObserver.MsgFromILComponent(&iParent, thisEvent);
- }
- else
- {
- err = KErrNotSupported;
- }
-
- break;
- }
- case OMX_EventBufferFlag:
- {
- // Propagate the EOF up to client as KErrUnderflow
- thisEvent.iEvent = EEventBufferFlag;
- thisEvent.iData1 = aData1;
- thisEvent.iData2 = static_cast<TUint32>(KErrUnderflow);
- err = iIfObserver.MsgFromILComponent(&iParent, thisEvent);
- break;
- }
- case OMX_EventError:
- {
- // Propagate the error up to client
- thisEvent.iEvent = EEventError;
- OMX_ERRORTYPE errorx = static_cast<OMX_ERRORTYPE>(aData1);
- thisEvent.iData1 = ConvertOmxErrorType(errorx);
- err = iIfObserver.MsgFromILComponent(&iParent, thisEvent);
- break;
- }
- default:
- {
- err = KErrNotSupported;
- }
- }
- return err;
- }
--- a/omxil/mmilapi/unittest/test_plugins/omxildummybaseilif/omxildummybaseilifbody.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +0,0 @@
-// Copyright (c) 2008-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:
-// omxildummybaseifilbody.h
-//
-//
-
-#ifndef OMXILDUMMYBASEIFILBODY_H
-#define OMXILDUMMYBASEIFILBODY_H
-
-
-#include "omxildummybaseilif.h"
-#include "omxildummybaseportilif.h"
-#include "omxilgenericilifbodyimpl.h"
-#include <e32base.h>
-#include <openmax/il/khronos/v1_x/OMX_Component.h>
-
-
-/**
-Body implementation of the COmxILDummyBaseILIF specific to OpenMAX specification.
-*/
-class COmxILDummyBaseILIF::CBody : public CBase
- {
-public:
- static CBody* NewL(COmxILDummyBaseILIF& aParent,
- MILIfObserver& aComponentIfObserver,
- const TDesC8& aComponentName);
- ~CBody();
-
- OMX_COMPONENTTYPE* Handle() const;
-
- TInt OmxGetComponentVersion(TPtr8 aComponentName, OMX_VERSIONTYPE* aComponentVersion, OMX_VERSIONTYPE* aSpecVersion, OMX_UUIDTYPE* aComponentUUID);
- TInt OmxSendCommand(OMX_COMMANDTYPE aCmd, TUint32 aParam1, TAny* aCmdData);
- TInt OmxGetParameter(OMX_INDEXTYPE aParamIndex, TAny* aComponentParameterStructure);
- TInt OmxSetParameter(OMX_INDEXTYPE aIndex, TAny* aComponentParameterStructure);
- TInt OmxGetConfig(OMX_INDEXTYPE aIndex, TAny* aValue);
- TInt OmxSetConfig(OMX_INDEXTYPE aIndex, TAny* aValue);
- TInt OmxGetExtensionIndex(const TDesC8& aParameterName, OMX_INDEXTYPE* aIndexType);
- TInt OmxGetState(OMX_STATETYPE* aState);
- TInt OmxComponentTunnelRequest(TUint32 aPortInput, OMX_HANDLETYPE aOutput, TUint32 aPortOutput);
- TInt OmxComponentDisconnectTunnel(TUint32 aPortInput, OMX_HANDLETYPE aOutput, TUint32 aPortOutput);
- TInt OmxUseBuffer(CMMFBuffer* aBuffer, TUint32 aPortIndex);
- CMMFBuffer* OmxAllocateBufferL(TUint32 aPortIndex, TUint32 aSizeBytes);
- TInt OmxFreeBuffer(CMMFBuffer* aBuffer);
- TInt OmxEmptyThisBuffer(const CMMFBuffer* aBuffer, MOmxILComponentIfObserver* aObserver);
- TInt OmxFillThisBuffer(CMMFBuffer* aBuffer, MOmxILComponentIfObserver* aObserver);
- TInt OmxComponentRoleEnum(TPtr8& aComponentRole, TUint32 aIndex);
-
- TInt SetIfToRole(const TUid& aComponentRole);
- TInt GetIfRole(TUid& aComponentRole) const;
-
- TInt GetComponentPorts(RPointerArray<MILComponentPortIf>& aComponentPorts, OMX_DIRTYPE);
- TInt SetPortsL();
-
- TInt FillBufferDone(CMMFBuffer* aBuffer, TInt aPortIndex);
- TInt EmptyBufferDone(const CMMFBuffer* aBuffer, TInt aPortIndex);
- TInt EventHandler(OMX_EVENTTYPE aEvent, TUint32 aData1, TUint32 aData2, TAny* aExtraInfo);
-
-private:
- CBody(COmxILDummyBaseILIF& aParent, MILIfObserver& aComponentIfObserver);
- void ConstructL(const TDesC8& aComponentName);
-
-private:
-
- OMX_COMPONENTTYPE* iHandle;
-
- RPointerArray<COmxILDummyBasePortILIF> iInputPorts;
- RPointerArray<COmxILDummyBasePortILIF> iOutputPorts;
-
- COmxBufferManager* iBufferManager;
- COmxCallbacks* iCallbacks;
-
- COmxILDummyBaseILIF& iParent;
- MILIfObserver& iIfObserver;
-
- TUid iFormat;
- };
-
-#endif // OMXILDUMMYBASEIFILBODY_H
-
--- a/omxil/mmilapi/unittest/test_plugins/omxildummybaseilif/omxildummybaseportilif.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,179 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include "omxildummybaseportilif.h"
-
-/**
-class COmxILDummyBasePortILIF
-Concrete implementation of the MILComponentPortIf that encapsulates the
-component's port specific behaviour according to OpenMAX specification.
-*/
-COmxILDummyBasePortILIF::COmxILDummyBasePortILIF(COmxILDummyBaseILIF& aParent,
- TPortDirection aPortDirection,
- TInt aIndex)
- :
- iPortDirection (aPortDirection),
- iPortIndex (aIndex),
- iPortComponent(aParent),
- iTunneledPort(NULL)
- {
- }
-
-COmxILDummyBasePortILIF* COmxILDummyBasePortILIF::NewL(COmxILDummyBaseILIF& aParent,
- TPortDirection aPortDirection,
- TInt aIndex)
- {
- COmxILDummyBasePortILIF* self = new (ELeave) COmxILDummyBasePortILIF(aParent, aPortDirection, aIndex);
- return self;
- }
-TInt COmxILDummyBasePortILIF::FillThisBuffer(CMMFBuffer& aBuffer)
- {
- if (iPortDirection == EDirOutput)
- {
- return iPortComponent.OmxFillThisBuffer(&aBuffer, &iPortComponent);
- }
- else
- {
- return KErrCorrupt;
- }
- }
-
-TInt COmxILDummyBasePortILIF::EmptyThisBuffer(const CMMFBuffer& aBuffer)
- {
- if (iPortDirection == EDirInput)
- {
- return iPortComponent.OmxEmptyThisBuffer(&aBuffer, &iPortComponent);
- }
- else
- {
- return KErrCorrupt;
- }
- }
-
-TInt COmxILDummyBasePortILIF::TunnelRequest(MILComponentPortIf* aPort)
- {
- TInt error = KErrNotSupported;
-
- if (aPort)
- // This is the connet tunnel request
- {
- TPortDirection otherPortDir = aPort->PortDirection();
- COmxILDummyBaseILIF* otherPortComponent = static_cast<COmxILDummyBaseILIF*> (aPort->PortComponent());
-
- if (iPortDirection != otherPortDir)
- {
- if (iPortDirection == EDirInput)
- {
- error = iPortComponent.OmxComponentTunnelRequest(iPortIndex,
- otherPortComponent->OmxHandle(),
- aPort->PortIndex());
- }
- else
- {
- error = otherPortComponent->OmxComponentTunnelRequest(aPort->PortIndex(),
- iPortComponent.OmxHandle(),
- iPortIndex);
- }
-
- if (error == KErrNone)
- {
- iTunneledPort = static_cast<COmxILDummyBasePortILIF*>(aPort);
- iTunneledPort->SetPortConnectedTo(this);
- }
- }
- }
- else
- // This is the disconnet tunnel request
- {
-
- TPortDirection otherPortDir = iTunneledPort->PortDirection();
- COmxILDummyBaseILIF* otherPortComponent = static_cast<COmxILDummyBaseILIF*> (iTunneledPort->PortComponent());
-
- if (iPortDirection != otherPortDir)
- {
- if (iPortDirection == EDirInput)
- {
- error = iPortComponent.OmxComponentDisconnectTunnel(iPortIndex,
- otherPortComponent->OmxHandle(),
- iTunneledPort->PortIndex());
- }
- else
- {
- error = otherPortComponent->OmxComponentDisconnectTunnel(iTunneledPort->PortIndex(),
- iPortComponent.OmxHandle(),
- iPortIndex);
- }
-
- if (error == KErrNone)
- {
- iTunneledPort->SetPortConnectedTo(NULL);
- iTunneledPort = NULL;
- }
- }
- }
- return error;
- }
-
-TInt COmxILDummyBasePortILIF::PortIndex() const
- {
- return iPortIndex;
- }
-
-TPortDirection COmxILDummyBasePortILIF::PortDirection() const
- {
- return iPortDirection;
- }
-
-CMMFBuffer* COmxILDummyBasePortILIF::CreateBufferL(TInt aBufferSize)
- {
- return iPortComponent.OmxAllocateBufferL(iPortIndex, aBufferSize);
- }
-
-TInt COmxILDummyBasePortILIF::UseBuffer(CMMFBuffer& aBuffer)
- {
- return iPortComponent.OmxUseBuffer(&aBuffer, iPortIndex);
- }
-
-TInt COmxILDummyBasePortILIF::FreeBuffer(CMMFBuffer* aBuffer)
- {
- return iPortComponent.OmxFreeBuffer(aBuffer);
- }
-
-TInt COmxILDummyBasePortILIF::FlushPort()
- {
- return iPortComponent.OmxSendCommand(OMX_CommandFlush, iPortIndex, NULL);
- }
-
-TInt COmxILDummyBasePortILIF::EnablePort()
- {
- return iPortComponent.OmxSendCommand(OMX_CommandPortEnable, iPortIndex, NULL);
- }
-
-TInt COmxILDummyBasePortILIF::DisablePort()
- {
- return iPortComponent.OmxSendCommand(OMX_CommandPortDisable, iPortIndex, NULL);
- }
-
-MILComponentIf* COmxILDummyBasePortILIF::PortComponent() const
- {
- return &iPortComponent;
- }
-
-
-void COmxILDummyBasePortILIF::SetPortConnectedTo(COmxILDummyBasePortILIF* aPort)
- {
- iTunneledPort = aPort;
- }
-
--- a/omxil/mmilapi/unittest/test_plugins/omxildummybaseilif/omxildummybaseportilif.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef OMXILDUMMYBASEPORTILIF_H
-#define OMXILDUMMYBASEPORTILIF_H
-
-#include "milcomponentportif.h"
-#include "omxildummybaseilif.h"
-
-
-/**
-Concrete implementation of the MILComponentPortIf that encapsulates the
-component's port specific behaviour according to OpenMAX specification.
-*/
-class COmxILDummyBasePortILIF : public CBase,
- public MILComponentPortIf
- {
-public:
- static COmxILDummyBasePortILIF* NewL(COmxILDummyBaseILIF& aParent, TPortDirection aPortDirection, TInt aIndex);
-
- // MILComponentPortIf
- TInt FillThisBuffer(CMMFBuffer& aBuffer);
- TInt EmptyThisBuffer(const CMMFBuffer& aBuffer);
- TInt TunnelRequest(MILComponentPortIf* aPort);
- TInt PortIndex() const;
- TPortDirection PortDirection() const;
- CMMFBuffer* CreateBufferL(TInt aBufferSize);
- TInt UseBuffer(CMMFBuffer& aBuffer);
- TInt FreeBuffer(CMMFBuffer* aBuffer);
- TInt FlushPort();
- TInt EnablePort();
- TInt DisablePort();
- MILComponentIf* PortComponent() const;
-
- void SetPortConnectedTo(COmxILDummyBasePortILIF* aPort);
-private:
- COmxILDummyBasePortILIF(COmxILDummyBaseILIF& aParent, TPortDirection aPortDirection, TInt aIndex);
-
-private:
- TPortDirection iPortDirection;
- TInt iPortIndex;
-
- COmxILDummyBaseILIF& iPortComponent;
- COmxILDummyBasePortILIF* iTunneledPort;
- };
-
-#endif // OMXILDUMMYBASEPORTILIF_H
--- a/omxil/omxilapi/group/bld.inf Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-PRJ_EXPORTS
-// Khronos OpenMAX IL API
-../v1_x/OMX_Core.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(openmax/il/khronos/v1_x/OMX_Core.h)
-../v1_x/OMX_Component.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(openmax/il/khronos/v1_x/OMX_Component.h)
-../v1_x/OMX_Index.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(openmax/il/khronos/v1_x/OMX_Index.h)
-../v1_x/OMX_Audio.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(openmax/il/khronos/v1_x/OMX_Audio.h)
-../v1_x/OMX_Video.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(openmax/il/khronos/v1_x/OMX_Video.h)
-../v1_x/OMX_IVCommon.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(openmax/il/khronos/v1_x/OMX_IVCommon.h)
-../v1_x/OMX_Image.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(openmax/il/khronos/v1_x/OMX_Image.h)
-../v1_x/OMX_Types.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(openmax/il/khronos/v1_x/OMX_Types.h)
-../v1_x/OMX_Other.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(openmax/il/khronos/v1_x/OMX_Other.h)
-../v1_x/OMX_ContentPipe.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(openmax/il/khronos/v1_x/OMX_ContentPipe.h)
-
-//
-// Files above are listed in \epoc32\tools\filenamepolicyexclusions.txt.
-// They are exported in CamelCase instead of lower case.
-// If a new header is added to the export, e.g. OMX_ContentPipe.h, the name
-// should be added to filenamepolicyexclusions.txt ahead of time. Otherwise
-// checksource will flag it as error.
-// filenamepolicyexclusions.txt is in \src\cedar\generic\tools\e32toolp\platform
--- a/omxil/omxilapi/group/multimedia_omx_il_api.mrp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-# multimedia_omx_il_api.mrp
-#
-# Copyright (c) 2008 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:
-#
-
-component multimedia_omx_il_api
-
-source \sf\os\mm\omxil\omxilapi
-
-# no binaries
-
-exports \sf\os\mm\omxil\omxilapi\group
-
-notes_source \component_defs\release.src
-
-
-ipr E
--- a/omxil/omxilapi/v1_x/OMX_Audio.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1312 +0,0 @@
-/*
- * Copyright (c) 2008 The Khronos Group Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject
- * to the following conditions:
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- */
-
-/** @file
- * OpenMax IL version 1.1.2
- * The structures needed by Audio components to exchange
- * parameters and configuration data with the componenmilts.
- */
-
-#ifndef OMX_Audio_h
-#define OMX_Audio_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-/* Each OMX header must include all required header files to allow the
- * header to compile without errors. The includes below are required
- * for this header file to compile successfully
- */
-
-#include <openmax/il/khronos/v1_x/OMX_Core.h>
-
-/** @defgroup midi MIDI
- * @ingroup audio
- */
-
-/** @defgroup effects Audio effects
- * @ingroup audio
- */
-
-/** @defgroup audio OpenMAX IL Audio Domain
- * Structures for OpenMAX IL Audio domain
- * @{
- */
-
-/** Enumeration used to define the possible audio codings.
- * If "OMX_AUDIO_CodingUnused" is selected, the coding selection must
- * be done in a vendor specific way. Since this is for an audio
- * processing element this enum is relevant. However, for another
- * type of component other enums would be in this area.
- */
-typedef enum OMX_AUDIO_CODINGTYPE {
- OMX_AUDIO_CodingUnused = 0, /**< Placeholder value when coding is N/A */
- OMX_AUDIO_CodingAutoDetect, /**< auto detection of audio format */
- OMX_AUDIO_CodingPCM, /**< Any variant of PCM coding */
- OMX_AUDIO_CodingADPCM, /**< Any variant of ADPCM encoded data */
- OMX_AUDIO_CodingAMR, /**< Any variant of AMR encoded data */
- OMX_AUDIO_CodingGSMFR, /**< Any variant of GSM fullrate (i.e. GSM610) */
- OMX_AUDIO_CodingGSMEFR, /**< Any variant of GSM Enhanced Fullrate encoded data*/
- OMX_AUDIO_CodingGSMHR, /**< Any variant of GSM Halfrate encoded data */
- OMX_AUDIO_CodingPDCFR, /**< Any variant of PDC Fullrate encoded data */
- OMX_AUDIO_CodingPDCEFR, /**< Any variant of PDC Enhanced Fullrate encoded data */
- OMX_AUDIO_CodingPDCHR, /**< Any variant of PDC Halfrate encoded data */
- OMX_AUDIO_CodingTDMAFR, /**< Any variant of TDMA Fullrate encoded data (TIA/EIA-136-420) */
- OMX_AUDIO_CodingTDMAEFR, /**< Any variant of TDMA Enhanced Fullrate encoded data (TIA/EIA-136-410) */
- OMX_AUDIO_CodingQCELP8, /**< Any variant of QCELP 8kbps encoded data */
- OMX_AUDIO_CodingQCELP13, /**< Any variant of QCELP 13kbps encoded data */
- OMX_AUDIO_CodingEVRC, /**< Any variant of EVRC encoded data */
- OMX_AUDIO_CodingSMV, /**< Any variant of SMV encoded data */
- OMX_AUDIO_CodingG711, /**< Any variant of G.711 encoded data */
- OMX_AUDIO_CodingG723, /**< Any variant of G.723 dot 1 encoded data */
- OMX_AUDIO_CodingG726, /**< Any variant of G.726 encoded data */
- OMX_AUDIO_CodingG729, /**< Any variant of G.729 encoded data */
- OMX_AUDIO_CodingAAC, /**< Any variant of AAC encoded data */
- OMX_AUDIO_CodingMP3, /**< Any variant of MP3 encoded data */
- OMX_AUDIO_CodingSBC, /**< Any variant of SBC encoded data */
- OMX_AUDIO_CodingVORBIS, /**< Any variant of VORBIS encoded data */
- OMX_AUDIO_CodingWMA, /**< Any variant of WMA encoded data */
- OMX_AUDIO_CodingRA, /**< Any variant of RA encoded data */
- OMX_AUDIO_CodingMIDI, /**< Any variant of MIDI encoded data */
- OMX_AUDIO_CodingKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_AUDIO_CodingVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_AUDIO_CodingMax = 0x7FFFFFFF
-} OMX_AUDIO_CODINGTYPE;
-
-
-/** The PortDefinition structure is used to define all of the parameters
- * necessary for the compliant component to setup an input or an output audio
- * path. If additional information is needed to define the parameters of the
- * port (such as frequency), additional structures must be sent such as the
- * OMX_AUDIO_PARAM_PCMMODETYPE structure to supply the extra parameters for the port.
- */
-typedef struct OMX_AUDIO_PORTDEFINITIONTYPE {
- OMX_STRING cMIMEType; /**< MIME type of data for the port */
- OMX_NATIVE_DEVICETYPE pNativeRender; /** < platform specific reference
- for an output device,
- otherwise this field is 0 */
- OMX_BOOL bFlagErrorConcealment; /**< Turns on error concealment if it is
- supported by the OMX component */
- OMX_AUDIO_CODINGTYPE eEncoding; /**< Type of data expected for this
- port (e.g. PCM, AMR, MP3, etc) */
-} OMX_AUDIO_PORTDEFINITIONTYPE;
-
-
-/** Port format parameter. This structure is used to enumerate
- * the various data input/output format supported by the port.
- */
-typedef struct OMX_AUDIO_PARAM_PORTFORMATTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< Indicates which port to set */
- OMX_U32 nIndex; /**< Indicates the enumeration index for the format from 0x0 to N-1 */
- OMX_AUDIO_CODINGTYPE eEncoding; /**< Type of data expected for this port (e.g. PCM, AMR, MP3, etc) */
-} OMX_AUDIO_PARAM_PORTFORMATTYPE;
-
-
-/** PCM mode type */
-typedef enum OMX_AUDIO_PCMMODETYPE {
- OMX_AUDIO_PCMModeLinear = 0, /**< Linear PCM encoded data */
- OMX_AUDIO_PCMModeALaw, /**< A law PCM encoded data (G.711) */
- OMX_AUDIO_PCMModeMULaw, /**< Mu law PCM encoded data (G.711) */
- OMX_AUDIO_PCMModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_AUDIO_PCMModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_AUDIO_PCMModeMax = 0x7FFFFFFF
-} OMX_AUDIO_PCMMODETYPE;
-
-
-typedef enum OMX_AUDIO_CHANNELTYPE {
- OMX_AUDIO_ChannelNone = 0x0, /**< Unused or empty */
- OMX_AUDIO_ChannelLF = 0x1, /**< Left front */
- OMX_AUDIO_ChannelRF = 0x2, /**< Right front */
- OMX_AUDIO_ChannelCF = 0x3, /**< Center front */
- OMX_AUDIO_ChannelLS = 0x4, /**< Left surround */
- OMX_AUDIO_ChannelRS = 0x5, /**< Right surround */
- OMX_AUDIO_ChannelLFE = 0x6, /**< Low frequency effects */
- OMX_AUDIO_ChannelCS = 0x7, /**< Back surround */
- OMX_AUDIO_ChannelLR = 0x8, /**< Left rear. */
- OMX_AUDIO_ChannelRR = 0x9, /**< Right rear. */
- OMX_AUDIO_ChannelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_AUDIO_ChannelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_AUDIO_ChannelMax = 0x7FFFFFFF
-} OMX_AUDIO_CHANNELTYPE;
-
-#define OMX_AUDIO_MAXCHANNELS 16 /**< maximum number distinct audio channels that a buffer may contain */
-#define OMX_MIN_PCMPAYLOAD_MSEC 5 /**< Minimum audio buffer payload size for uncompressed (PCM) audio */
-
-/** PCM format description */
-typedef struct OMX_AUDIO_PARAM_PCMMODETYPE {
- OMX_U32 nSize; /**< Size of this structure, in Bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_U32 nChannels; /**< Number of channels (e.g. 2 for stereo) */
- OMX_NUMERICALDATATYPE eNumData; /**< indicates PCM data as signed or unsigned */
- OMX_ENDIANTYPE eEndian; /**< indicates PCM data as little or big endian */
- OMX_BOOL bInterleaved; /**< True for normal interleaved data; false for
- non-interleaved data (e.g. block data) */
- OMX_U32 nBitPerSample; /**< Bit per sample */
- OMX_U32 nSamplingRate; /**< Sampling rate of the source data. Use 0 for
- variable or unknown sampling rate. */
- OMX_AUDIO_PCMMODETYPE ePCMMode; /**< PCM mode enumeration */
- OMX_AUDIO_CHANNELTYPE eChannelMapping[OMX_AUDIO_MAXCHANNELS]; /**< Slot i contains channel defined by eChannelMap[i] */
-
-} OMX_AUDIO_PARAM_PCMMODETYPE;
-
-
-/** Audio channel mode. This is used by both AAC and MP3, although the names are more appropriate
- * for the MP3. For example, JointStereo for MP3 is CouplingChannels for AAC.
- */
-typedef enum OMX_AUDIO_CHANNELMODETYPE {
- OMX_AUDIO_ChannelModeStereo = 0, /**< 2 channels, the bitrate allocation between those
- two channels changes accordingly to each channel information */
- OMX_AUDIO_ChannelModeJointStereo, /**< mode that takes advantage of what is common between
- 2 channels for higher compression gain */
- OMX_AUDIO_ChannelModeDual, /**< 2 mono-channels, each channel is encoded with half
- the bitrate of the overall bitrate */
- OMX_AUDIO_ChannelModeMono, /**< Mono channel mode */
- OMX_AUDIO_ChannelModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_AUDIO_ChannelModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_AUDIO_ChannelModeMax = 0x7FFFFFFF
-} OMX_AUDIO_CHANNELMODETYPE;
-
-
-typedef enum OMX_AUDIO_MP3STREAMFORMATTYPE {
- OMX_AUDIO_MP3StreamFormatMP1Layer3 = 0, /**< MP3 Audio MPEG 1 Layer 3 Stream format */
- OMX_AUDIO_MP3StreamFormatMP2Layer3, /**< MP3 Audio MPEG 2 Layer 3 Stream format */
- OMX_AUDIO_MP3StreamFormatMP2_5Layer3, /**< MP3 Audio MPEG2.5 Layer 3 Stream format */
- OMX_AUDIO_MP3StreamFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_AUDIO_MP3StreamFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_AUDIO_MP3StreamFormatMax = 0x7FFFFFFF
-} OMX_AUDIO_MP3STREAMFORMATTYPE;
-
-/** MP3 params */
-typedef struct OMX_AUDIO_PARAM_MP3TYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_U32 nChannels; /**< Number of channels */
- OMX_U32 nBitRate; /**< Bit rate of the input data. Use 0 for variable
- rate or unknown bit rates */
- OMX_U32 nSampleRate; /**< Sampling rate of the source data. Use 0 for
- variable or unknown sampling rate. */
- OMX_U32 nAudioBandWidth; /**< Audio band width (in Hz) to which an encoder should
- limit the audio signal. Use 0 to let encoder decide */
- OMX_AUDIO_CHANNELMODETYPE eChannelMode; /**< Channel mode enumeration */
- OMX_AUDIO_MP3STREAMFORMATTYPE eFormat; /**< MP3 stream format */
-} OMX_AUDIO_PARAM_MP3TYPE;
-
-
-typedef enum OMX_AUDIO_AACSTREAMFORMATTYPE {
- OMX_AUDIO_AACStreamFormatMP2ADTS = 0, /**< AAC Audio Data Transport Stream 2 format */
- OMX_AUDIO_AACStreamFormatMP4ADTS, /**< AAC Audio Data Transport Stream 4 format */
- OMX_AUDIO_AACStreamFormatMP4LOAS, /**< AAC Low Overhead Audio Stream format */
- OMX_AUDIO_AACStreamFormatMP4LATM, /**< AAC Low overhead Audio Transport Multiplex */
- OMX_AUDIO_AACStreamFormatADIF, /**< AAC Audio Data Interchange Format */
- OMX_AUDIO_AACStreamFormatMP4FF, /**< AAC inside MPEG-4/ISO File Format */
- OMX_AUDIO_AACStreamFormatRAW, /**< AAC Raw Format */
- OMX_AUDIO_AACStreamFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_AUDIO_AACStreamFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_AUDIO_AACStreamFormatMax = 0x7FFFFFFF
-} OMX_AUDIO_AACSTREAMFORMATTYPE;
-
-
-/** AAC mode type. Note that the term profile is used with the MPEG-2
- * standard and the term object type and profile is used with MPEG-4 */
-typedef enum OMX_AUDIO_AACPROFILETYPE{
- OMX_AUDIO_AACObjectNull = 0, /**< Null, not used */
- OMX_AUDIO_AACObjectMain = 1, /**< AAC Main object */
- OMX_AUDIO_AACObjectLC, /**< AAC Low Complexity object (AAC profile) */
- OMX_AUDIO_AACObjectSSR, /**< AAC Scalable Sample Rate object */
- OMX_AUDIO_AACObjectLTP, /**< AAC Long Term Prediction object */
- OMX_AUDIO_AACObjectHE, /**< AAC High Efficiency (object type SBR, HE-AAC profile) */
- OMX_AUDIO_AACObjectScalable, /**< AAC Scalable object */
- OMX_AUDIO_AACObjectERLC = 17, /**< ER AAC Low Complexity object (Error Resilient AAC-LC) */
- OMX_AUDIO_AACObjectLD = 23, /**< AAC Low Delay object (Error Resilient) */
- OMX_AUDIO_AACObjectHE_PS = 29, /**< AAC High Efficiency with Parametric Stereo coding (HE-AAC v2, object type PS) */
- OMX_AUDIO_AACObjectKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_AUDIO_AACObjectVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_AUDIO_AACObjectMax = 0x7FFFFFFF
-} OMX_AUDIO_AACPROFILETYPE;
-
-
-/** AAC tool usage (for nAACtools in OMX_AUDIO_PARAM_AACPROFILETYPE).
- * Required for encoder configuration and optional as decoder info output.
- * For MP3, OMX_AUDIO_CHANNELMODETYPE is sufficient. */
-#define OMX_AUDIO_AACToolNone 0x00000000 /**< no AAC tools allowed (encoder config) or active (decoder info output) */
-#define OMX_AUDIO_AACToolMS 0x00000001 /**< MS: Mid/side joint coding tool allowed or active */
-#define OMX_AUDIO_AACToolIS 0x00000002 /**< IS: Intensity stereo tool allowed or active */
-#define OMX_AUDIO_AACToolTNS 0x00000004 /**< TNS: Temporal Noise Shaping tool allowed or active */
-#define OMX_AUDIO_AACToolPNS 0x00000008 /**< PNS: MPEG-4 Perceptual Noise substitution tool allowed or active */
-#define OMX_AUDIO_AACToolLTP 0x00000010 /**< LTP: MPEG-4 Long Term Prediction tool allowed or active */
-#define OMX_AUDIO_AACToolAll 0x7FFFFFFF /**< all AAC tools allowed or active (*/
-
-/** MPEG-4 AAC error resilience (ER) tool usage (for nAACERtools in OMX_AUDIO_PARAM_AACPROFILETYPE).
- * Required for ER encoder configuration and optional as decoder info output */
-#define OMX_AUDIO_AACERNone 0x00000000 /**< no AAC ER tools allowed/used */
-#define OMX_AUDIO_AACERVCB11 0x00000001 /**< VCB11: Virtual Code Books for AAC section data */
-#define OMX_AUDIO_AACERRVLC 0x00000002 /**< RVLC: Reversible Variable Length Coding */
-#define OMX_AUDIO_AACERHCR 0x00000004 /**< HCR: Huffman Codeword Reordering */
-#define OMX_AUDIO_AACERAll 0x7FFFFFFF /**< all AAC ER tools allowed/used */
-
-
-/** AAC params */
-typedef struct OMX_AUDIO_PARAM_AACPROFILETYPE {
- OMX_U32 nSize; /**< Size of this structure, in Bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< Port that this structure applies to */
- OMX_U32 nChannels; /**< Number of channels */
- OMX_U32 nSampleRate; /**< Sampling rate of the source data. Use 0 for
- variable or unknown sampling rate. */
- OMX_U32 nBitRate; /**< Bit rate of the input data. Use 0 for variable
- rate or unknown bit rates */
- OMX_U32 nAudioBandWidth; /**< Audio band width (in Hz) to which an encoder should
- limit the audio signal. Use 0 to let encoder decide */
- OMX_U32 nFrameLength; /**< Frame length (in audio samples per channel) of the codec.
- Can be 1024 or 960 (AAC-LC), 2048 (HE-AAC), 480 or 512 (AAC-LD).
- Use 0 to let encoder decide */
- OMX_U32 nAACtools; /**< AAC tool usage */
- OMX_U32 nAACERtools; /**< MPEG-4 AAC error resilience tool usage */
- OMX_AUDIO_AACPROFILETYPE eAACProfile; /**< AAC profile enumeration */
- OMX_AUDIO_AACSTREAMFORMATTYPE eAACStreamFormat; /**< AAC stream format enumeration */
- OMX_AUDIO_CHANNELMODETYPE eChannelMode; /**< Channel mode enumeration */
-} OMX_AUDIO_PARAM_AACPROFILETYPE;
-
-
-/** VORBIS params */
-typedef struct OMX_AUDIO_PARAM_VORBISTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_U32 nChannels; /**< Number of channels */
- OMX_U32 nBitRate; /**< Bit rate of the encoded data data. Use 0 for variable
- rate or unknown bit rates. Encoding is set to the
- bitrate closest to specified value (in bps) */
- OMX_U32 nMinBitRate; /**< Sets minimum bitrate (in bps). */
- OMX_U32 nMaxBitRate; /**< Sets maximum bitrate (in bps). */
-
- OMX_U32 nSampleRate; /**< Sampling rate of the source data. Use 0 for
- variable or unknown sampling rate. */
- OMX_U32 nAudioBandWidth; /**< Audio band width (in Hz) to which an encoder should
- limit the audio signal. Use 0 to let encoder decide */
- OMX_S32 nQuality; /**< Sets encoding quality to n, between -1 (low) and 10 (high).
- In the default mode of operation, teh quality level is 3.
- Normal quality range is 0 - 10. */
- OMX_BOOL bManaged; /**< Set bitrate management mode. This turns off the
- normal VBR encoding, but allows hard or soft bitrate
- constraints to be enforced by the encoder. This mode can
- be slower, and may also be lower quality. It is
- primarily useful for streaming. */
- OMX_BOOL bDownmix; /**< Downmix input from stereo to mono (has no effect on
- non-stereo streams). Useful for lower-bitrate encoding. */
-} OMX_AUDIO_PARAM_VORBISTYPE;
-
-
-/** WMA Version */
-typedef enum OMX_AUDIO_WMAFORMATTYPE {
- OMX_AUDIO_WMAFormatUnused = 0, /**< format unused or unknown */
- OMX_AUDIO_WMAFormat7, /**< Windows Media Audio format 7 */
- OMX_AUDIO_WMAFormat8, /**< Windows Media Audio format 8 */
- OMX_AUDIO_WMAFormat9, /**< Windows Media Audio format 9 */
- OMX_AUDIO_WMAFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_AUDIO_WMAFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_AUDIO_WMAFormatMax = 0x7FFFFFFF
-} OMX_AUDIO_WMAFORMATTYPE;
-
-
-/** WMA Profile */
-typedef enum OMX_AUDIO_WMAPROFILETYPE {
- OMX_AUDIO_WMAProfileUnused = 0, /**< profile unused or unknown */
- OMX_AUDIO_WMAProfileL1, /**< Windows Media audio version 9 profile L1 */
- OMX_AUDIO_WMAProfileL2, /**< Windows Media audio version 9 profile L2 */
- OMX_AUDIO_WMAProfileL3, /**< Windows Media audio version 9 profile L3 */
- OMX_AUDIO_WMAProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_AUDIO_WMAProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_AUDIO_WMAProfileMax = 0x7FFFFFFF
-} OMX_AUDIO_WMAPROFILETYPE;
-
-
-/** WMA params */
-typedef struct OMX_AUDIO_PARAM_WMATYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_U16 nChannels; /**< Number of channels */
- OMX_U32 nBitRate; /**< Bit rate of the input data. Use 0 for variable
- rate or unknown bit rates */
- OMX_AUDIO_WMAFORMATTYPE eFormat; /**< Version of WMA stream / data */
- OMX_AUDIO_WMAPROFILETYPE eProfile; /**< Profile of WMA stream / data */
- OMX_U32 nSamplingRate; /**< Sampling rate of the source data */
- OMX_U16 nBlockAlign; /**< is the block alignment, or block size, in bytes of the audio codec */
- OMX_U16 nEncodeOptions; /**< WMA Type-specific data */
- OMX_U32 nSuperBlockAlign; /**< WMA Type-specific data */
-} OMX_AUDIO_PARAM_WMATYPE;
-
-/**
- * RealAudio format
- */
-typedef enum OMX_AUDIO_RAFORMATTYPE {
- OMX_AUDIO_RAFormatUnused = 0, /**< Format unused or unknown */
- OMX_AUDIO_RA8, /**< RealAudio 8 codec */
- OMX_AUDIO_RA9, /**< RealAudio 9 codec */
- OMX_AUDIO_RA10_AAC, /**< MPEG-4 AAC codec for bitrates of more than 128kbps */
- OMX_AUDIO_RA10_CODEC, /**< RealAudio codec for bitrates less than 128 kbps */
- OMX_AUDIO_RA10_LOSSLESS, /**< RealAudio Lossless */
- OMX_AUDIO_RA10_MULTICHANNEL, /**< RealAudio Multichannel */
- OMX_AUDIO_RA10_VOICE, /**< RealAudio Voice for bitrates below 15 kbps */
- OMX_AUDIO_RAFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_AUDIO_RAFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_VIDEO_RAFormatMax = 0x7FFFFFFF
-} OMX_AUDIO_RAFORMATTYPE;
-
-/** RA (Real Audio) params */
-typedef struct OMX_AUDIO_PARAM_RATYPE {
- OMX_U32 nSize; /**< Size of this structure, in Bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< Port that this structure applies to */
- OMX_U32 nChannels; /**< Number of channels */
- OMX_U32 nSamplingRate; /**< is the sampling rate of the source data */
- OMX_U32 nBitsPerFrame; /**< is the value for bits per frame */
- OMX_U32 nSamplePerFrame; /**< is the value for samples per frame */
- OMX_U32 nCouplingQuantBits; /**< is the number of coupling quantization bits in the stream */
- OMX_U32 nCouplingStartRegion; /**< is the coupling start region in the stream */
- OMX_U32 nNumRegions; /**< is the number of regions value */
- OMX_AUDIO_RAFORMATTYPE eFormat; /**< is the RealAudio audio format */
-} OMX_AUDIO_PARAM_RATYPE;
-
-
-/** SBC Allocation Method Type */
-typedef enum OMX_AUDIO_SBCALLOCMETHODTYPE {
- OMX_AUDIO_SBCAllocMethodLoudness, /**< Loudness allocation method */
- OMX_AUDIO_SBCAllocMethodSNR, /**< SNR allocation method */
- OMX_AUDIO_SBCAllocMethodKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_AUDIO_SBCAllocMethodVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_AUDIO_SBCAllocMethodMax = 0x7FFFFFFF
-} OMX_AUDIO_SBCALLOCMETHODTYPE;
-
-
-/** SBC params */
-typedef struct OMX_AUDIO_PARAM_SBCTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_U32 nChannels; /**< Number of channels */
- OMX_U32 nBitRate; /**< Bit rate of the input data. Use 0 for variable
- rate or unknown bit rates */
- OMX_U32 nSampleRate; /**< Sampling rate of the source data. Use 0 for
- variable or unknown sampling rate. */
- OMX_U32 nBlocks; /**< Number of blocks */
- OMX_U32 nSubbands; /**< Number of subbands */
- OMX_U32 nBitPool; /**< Bitpool value */
- OMX_BOOL bEnableBitrate; /**< Use bitrate value instead of bitpool */
- OMX_AUDIO_CHANNELMODETYPE eChannelMode; /**< Channel mode enumeration */
- OMX_AUDIO_SBCALLOCMETHODTYPE eSBCAllocType; /**< SBC Allocation method type */
-} OMX_AUDIO_PARAM_SBCTYPE;
-
-
-/** ADPCM stream format parameters */
-typedef struct OMX_AUDIO_PARAM_ADPCMTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_U32 nChannels; /**< Number of channels in the data stream (not
- necessarily the same as the number of channels
- to be rendered. */
- OMX_U32 nBitsPerSample; /**< Number of bits in each sample */
- OMX_U32 nSampleRate; /**< Sampling rate of the source data. Use 0 for
- variable or unknown sampling rate. */
-} OMX_AUDIO_PARAM_ADPCMTYPE;
-
-
-/** G723 rate */
-typedef enum OMX_AUDIO_G723RATE {
- OMX_AUDIO_G723ModeUnused = 0, /**< AMRNB Mode unused / unknown */
- OMX_AUDIO_G723ModeLow, /**< 5300 bps */
- OMX_AUDIO_G723ModeHigh, /**< 6300 bps */
- OMX_AUDIO_G723ModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_AUDIO_G723ModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_AUDIO_G723ModeMax = 0x7FFFFFFF
-} OMX_AUDIO_G723RATE;
-
-
-/** G723 - Sample rate must be 8 KHz */
-typedef struct OMX_AUDIO_PARAM_G723TYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_U32 nChannels; /**< Number of channels in the data stream (not
- necessarily the same as the number of channels
- to be rendered. */
- OMX_BOOL bDTX; /**< Enable Discontinuous Transmisssion */
- OMX_AUDIO_G723RATE eBitRate; /**< todo: Should this be moved to a config? */
- OMX_BOOL bHiPassFilter; /**< Enable High Pass Filter */
- OMX_BOOL bPostFilter; /**< Enable Post Filter */
-} OMX_AUDIO_PARAM_G723TYPE;
-
-
-/** ITU G726 (ADPCM) rate */
-typedef enum OMX_AUDIO_G726MODE {
- OMX_AUDIO_G726ModeUnused = 0, /**< G726 Mode unused / unknown */
- OMX_AUDIO_G726Mode16, /**< 16 kbps */
- OMX_AUDIO_G726Mode24, /**< 24 kbps */
- OMX_AUDIO_G726Mode32, /**< 32 kbps, most common rate, also G721 */
- OMX_AUDIO_G726Mode40, /**< 40 kbps */
- OMX_AUDIO_G726ModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_AUDIO_G726ModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_AUDIO_G726ModeMax = 0x7FFFFFFF
-} OMX_AUDIO_G726MODE;
-
-
-/** G.726 stream format parameters - must be at 8KHz */
-typedef struct OMX_AUDIO_PARAM_G726TYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_U32 nChannels; /**< Number of channels in the data stream (not
- necessarily the same as the number of channels
- to be rendered. */
- OMX_AUDIO_G726MODE eG726Mode;
-} OMX_AUDIO_PARAM_G726TYPE;
-
-
-/** G729 coder type */
-typedef enum OMX_AUDIO_G729TYPE {
- OMX_AUDIO_G729 = 0, /**< ITU G.729 encoded data */
- OMX_AUDIO_G729A, /**< ITU G.729 annex A encoded data */
- OMX_AUDIO_G729B, /**< ITU G.729 with annex B encoded data */
- OMX_AUDIO_G729AB, /**< ITU G.729 annexes A and B encoded data */
- OMX_AUDIO_G729KhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_AUDIO_G729VendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_AUDIO_G729Max = 0x7FFFFFFF
-} OMX_AUDIO_G729TYPE;
-
-
-/** G729 stream format parameters - fixed 6KHz sample rate */
-typedef struct OMX_AUDIO_PARAM_G729TYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_U32 nChannels; /**< Number of channels in the data stream (not
- necessarily the same as the number of channels
- to be rendered. */
- OMX_BOOL bDTX; /**< Enable Discontinuous Transmisssion */
- OMX_AUDIO_G729TYPE eBitType;
-} OMX_AUDIO_PARAM_G729TYPE;
-
-
-/** AMR Frame format */
-typedef enum OMX_AUDIO_AMRFRAMEFORMATTYPE {
- OMX_AUDIO_AMRFrameFormatConformance = 0, /**< Frame Format is AMR Conformance
- (Standard) Format */
- OMX_AUDIO_AMRFrameFormatIF1, /**< Frame Format is AMR Interface
- Format 1 */
- OMX_AUDIO_AMRFrameFormatIF2, /**< Frame Format is AMR Interface
- Format 2*/
- OMX_AUDIO_AMRFrameFormatFSF, /**< Frame Format is AMR File Storage
- Format */
- OMX_AUDIO_AMRFrameFormatRTPPayload, /**< Frame Format is AMR Real-Time
- Transport Protocol Payload Format */
- OMX_AUDIO_AMRFrameFormatITU, /**< Frame Format is ITU Format (added at Motorola request) */
- OMX_AUDIO_AMRFrameFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_AUDIO_AMRFrameFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_AUDIO_AMRFrameFormatMax = 0x7FFFFFFF
-} OMX_AUDIO_AMRFRAMEFORMATTYPE;
-
-
-/** AMR band mode */
-typedef enum OMX_AUDIO_AMRBANDMODETYPE {
- OMX_AUDIO_AMRBandModeUnused = 0, /**< AMRNB Mode unused / unknown */
- OMX_AUDIO_AMRBandModeNB0, /**< AMRNB Mode 0 = 4750 bps */
- OMX_AUDIO_AMRBandModeNB1, /**< AMRNB Mode 1 = 5150 bps */
- OMX_AUDIO_AMRBandModeNB2, /**< AMRNB Mode 2 = 5900 bps */
- OMX_AUDIO_AMRBandModeNB3, /**< AMRNB Mode 3 = 6700 bps */
- OMX_AUDIO_AMRBandModeNB4, /**< AMRNB Mode 4 = 7400 bps */
- OMX_AUDIO_AMRBandModeNB5, /**< AMRNB Mode 5 = 7950 bps */
- OMX_AUDIO_AMRBandModeNB6, /**< AMRNB Mode 6 = 10200 bps */
- OMX_AUDIO_AMRBandModeNB7, /**< AMRNB Mode 7 = 12200 bps */
- OMX_AUDIO_AMRBandModeWB0, /**< AMRWB Mode 0 = 6600 bps */
- OMX_AUDIO_AMRBandModeWB1, /**< AMRWB Mode 1 = 8850 bps */
- OMX_AUDIO_AMRBandModeWB2, /**< AMRWB Mode 2 = 12650 bps */
- OMX_AUDIO_AMRBandModeWB3, /**< AMRWB Mode 3 = 14250 bps */
- OMX_AUDIO_AMRBandModeWB4, /**< AMRWB Mode 4 = 15850 bps */
- OMX_AUDIO_AMRBandModeWB5, /**< AMRWB Mode 5 = 18250 bps */
- OMX_AUDIO_AMRBandModeWB6, /**< AMRWB Mode 6 = 19850 bps */
- OMX_AUDIO_AMRBandModeWB7, /**< AMRWB Mode 7 = 23050 bps */
- OMX_AUDIO_AMRBandModeWB8, /**< AMRWB Mode 8 = 23850 bps */
- OMX_AUDIO_AMRBandModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_AUDIO_AMRBandModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_AUDIO_AMRBandModeMax = 0x7FFFFFFF
-} OMX_AUDIO_AMRBANDMODETYPE;
-
-
-/** AMR Discontinuous Transmission mode */
-typedef enum OMX_AUDIO_AMRDTXMODETYPE {
- OMX_AUDIO_AMRDTXModeOff = 0, /**< AMR Discontinuous Transmission Mode is disabled */
- OMX_AUDIO_AMRDTXModeOnVAD1, /**< AMR Discontinuous Transmission Mode using
- Voice Activity Detector 1 (VAD1) is enabled */
- OMX_AUDIO_AMRDTXModeOnVAD2, /**< AMR Discontinuous Transmission Mode using
- Voice Activity Detector 2 (VAD2) is enabled */
- OMX_AUDIO_AMRDTXModeOnAuto, /**< The codec will automatically select between
- Off, VAD1 or VAD2 modes */
-
- OMX_AUDIO_AMRDTXasEFR, /**< DTX as EFR instead of AMR standard (3GPP 26.101, frame type =8,9,10) */
-
- OMX_AUDIO_AMRDTXModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_AUDIO_AMRDTXModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_AUDIO_AMRDTXModeMax = 0x7FFFFFFF
-} OMX_AUDIO_AMRDTXMODETYPE;
-
-
-/** AMR params */
-typedef struct OMX_AUDIO_PARAM_AMRTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_U32 nChannels; /**< Number of channels */
- OMX_U32 nBitRate; /**< Bit rate read only field */
- OMX_AUDIO_AMRBANDMODETYPE eAMRBandMode; /**< AMR Band Mode enumeration */
- OMX_AUDIO_AMRDTXMODETYPE eAMRDTXMode; /**< AMR DTX Mode enumeration */
- OMX_AUDIO_AMRFRAMEFORMATTYPE eAMRFrameFormat; /**< AMR frame format enumeration */
-} OMX_AUDIO_PARAM_AMRTYPE;
-
-
-/** GSM_FR (ETSI 06.10, 3GPP 46.010) stream format parameters */
-typedef struct OMX_AUDIO_PARAM_GSMFRTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_BOOL bDTX; /**< Enable Discontinuous Transmisssion */
- OMX_BOOL bHiPassFilter; /**< Enable High Pass Filter */
-} OMX_AUDIO_PARAM_GSMFRTYPE;
-
-
-/** GSM-HR (ETSI 06.20, 3GPP 46.020) stream format parameters */
-typedef struct OMX_AUDIO_PARAM_GSMHRTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_BOOL bDTX; /**< Enable Discontinuous Transmisssion */
- OMX_BOOL bHiPassFilter; /**< Enable High Pass Filter */
-} OMX_AUDIO_PARAM_GSMHRTYPE;
-
-
-/** GSM-EFR (ETSI 06.60, 3GPP 46.060) stream format parameters */
-typedef struct OMX_AUDIO_PARAM_GSMEFRTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_BOOL bDTX; /**< Enable Discontinuous Transmisssion */
- OMX_BOOL bHiPassFilter; /**< Enable High Pass Filter */
-} OMX_AUDIO_PARAM_GSMEFRTYPE;
-
-
-/** TDMA FR (TIA/EIA-136-420, VSELP 7.95kbps coder) stream format parameters */
-typedef struct OMX_AUDIO_PARAM_TDMAFRTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_U32 nChannels; /**< Number of channels in the data stream (not
- necessarily the same as the number of channels
- to be rendered. */
- OMX_BOOL bDTX; /**< Enable Discontinuous Transmisssion */
- OMX_BOOL bHiPassFilter; /**< Enable High Pass Filter */
-} OMX_AUDIO_PARAM_TDMAFRTYPE;
-
-
-/** TDMA EFR (TIA/EIA-136-410, ACELP 7.4kbps coder) stream format parameters */
-typedef struct OMX_AUDIO_PARAM_TDMAEFRTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_U32 nChannels; /**< Number of channels in the data stream (not
- necessarily the same as the number of channels
- to be rendered. */
- OMX_BOOL bDTX; /**< Enable Discontinuous Transmisssion */
- OMX_BOOL bHiPassFilter; /**< Enable High Pass Filter */
-} OMX_AUDIO_PARAM_TDMAEFRTYPE;
-
-
-/** PDC FR ( RCR-27, VSELP 6.7kbps coder) stream format parameters */
-typedef struct OMX_AUDIO_PARAM_PDCFRTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_U32 nChannels; /**< Number of channels in the data stream (not
- necessarily the same as the number of channels
- to be rendered. */
- OMX_BOOL bDTX; /**< Enable Discontinuous Transmisssion */
- OMX_BOOL bHiPassFilter; /**< Enable High Pass Filter */
-} OMX_AUDIO_PARAM_PDCFRTYPE;
-
-
-/** PDC EFR ( RCR-27, ACELP 6.7kbps coder) stream format parameters */
-typedef struct OMX_AUDIO_PARAM_PDCEFRTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_U32 nChannels; /**< Number of channels in the data stream (not
- necessarily the same as the number of channels
- to be rendered. */
- OMX_BOOL bDTX; /**< Enable Discontinuous Transmisssion */
- OMX_BOOL bHiPassFilter; /**< Enable High Pass Filter */
-} OMX_AUDIO_PARAM_PDCEFRTYPE;
-
-/** PDC HR ( RCR-27, PSI-CELP 3.45kbps coder) stream format parameters */
-typedef struct OMX_AUDIO_PARAM_PDCHRTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_U32 nChannels; /**< Number of channels in the data stream (not
- necessarily the same as the number of channels
- to be rendered. */
- OMX_BOOL bDTX; /**< Enable Discontinuous Transmisssion */
- OMX_BOOL bHiPassFilter; /**< Enable High Pass Filter */
-} OMX_AUDIO_PARAM_PDCHRTYPE;
-
-
-/** CDMA Rate types */
-typedef enum OMX_AUDIO_CDMARATETYPE {
- OMX_AUDIO_CDMARateBlank = 0, /**< CDMA encoded frame is blank */
- OMX_AUDIO_CDMARateFull, /**< CDMA encoded frame in full rate */
- OMX_AUDIO_CDMARateHalf, /**< CDMA encoded frame in half rate */
- OMX_AUDIO_CDMARateQuarter, /**< CDMA encoded frame in quarter rate */
- OMX_AUDIO_CDMARateEighth, /**< CDMA encoded frame in eighth rate (DTX)*/
- OMX_AUDIO_CDMARateErasure, /**< CDMA erasure frame */
- OMX_AUDIO_CDMARateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_AUDIO_CDMARateVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_AUDIO_CDMARateMax = 0x7FFFFFFF
-} OMX_AUDIO_CDMARATETYPE;
-
-
-/** QCELP8 (TIA/EIA-96, up to 8kbps coder) stream format parameters */
-typedef struct OMX_AUDIO_PARAM_QCELP8TYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_U32 nChannels; /**< Number of channels in the data stream (not
- necessarily the same as the number of channels
- to be rendered. */
- OMX_U32 nBitRate; /**< Bit rate of the input data. Use 0 for variable
- rate or unknown bit rates */
- OMX_AUDIO_CDMARATETYPE eCDMARate; /**< Frame rate */
- OMX_U32 nMinBitRate; /**< minmal rate for the encoder = 1,2,3,4, default = 1 */
- OMX_U32 nMaxBitRate; /**< maximal rate for the encoder = 1,2,3,4, default = 4 */
-} OMX_AUDIO_PARAM_QCELP8TYPE;
-
-
-/** QCELP13 ( CDMA, EIA/TIA-733, 13.3kbps coder) stream format parameters */
-typedef struct OMX_AUDIO_PARAM_QCELP13TYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_U32 nChannels; /**< Number of channels in the data stream (not
- necessarily the same as the number of channels
- to be rendered. */
- OMX_AUDIO_CDMARATETYPE eCDMARate; /**< Frame rate */
- OMX_U32 nMinBitRate; /**< minmal rate for the encoder = 1,2,3,4, default = 1 */
- OMX_U32 nMaxBitRate; /**< maximal rate for the encoder = 1,2,3,4, default = 4 */
-} OMX_AUDIO_PARAM_QCELP13TYPE;
-
-
-/** EVRC ( CDMA, EIA/TIA-127, RCELP up to 8.55kbps coder) stream format parameters */
-typedef struct OMX_AUDIO_PARAM_EVRCTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_U32 nChannels; /**< Number of channels in the data stream (not
- necessarily the same as the number of channels
- to be rendered. */
- OMX_AUDIO_CDMARATETYPE eCDMARate; /**< actual Frame rate */
- OMX_BOOL bRATE_REDUCon; /**< RATE_REDUCtion is requested for this frame */
- OMX_U32 nMinBitRate; /**< minmal rate for the encoder = 1,2,3,4, default = 1 */
- OMX_U32 nMaxBitRate; /**< maximal rate for the encoder = 1,2,3,4, default = 4 */
- OMX_BOOL bHiPassFilter; /**< Enable encoder's High Pass Filter */
- OMX_BOOL bNoiseSuppressor; /**< Enable encoder's noise suppressor pre-processing */
- OMX_BOOL bPostFilter; /**< Enable decoder's post Filter */
-} OMX_AUDIO_PARAM_EVRCTYPE;
-
-
-/** SMV ( up to 8.55kbps coder) stream format parameters */
-typedef struct OMX_AUDIO_PARAM_SMVTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_U32 nChannels; /**< Number of channels in the data stream (not
- necessarily the same as the number of channels
- to be rendered. */
- OMX_AUDIO_CDMARATETYPE eCDMARate; /**< Frame rate */
- OMX_BOOL bRATE_REDUCon; /**< RATE_REDUCtion is requested for this frame */
- OMX_U32 nMinBitRate; /**< minmal rate for the encoder = 1,2,3,4, default = 1 ??*/
- OMX_U32 nMaxBitRate; /**< maximal rate for the encoder = 1,2,3,4, default = 4 ??*/
- OMX_BOOL bHiPassFilter; /**< Enable encoder's High Pass Filter ??*/
- OMX_BOOL bNoiseSuppressor; /**< Enable encoder's noise suppressor pre-processing */
- OMX_BOOL bPostFilter; /**< Enable decoder's post Filter ??*/
-} OMX_AUDIO_PARAM_SMVTYPE;
-
-
-/** MIDI Format
- * @ingroup midi
- */
-typedef enum OMX_AUDIO_MIDIFORMATTYPE
-{
- OMX_AUDIO_MIDIFormatUnknown = 0, /**< MIDI Format unknown or don't care */
- OMX_AUDIO_MIDIFormatSMF0, /**< Standard MIDI File Type 0 */
- OMX_AUDIO_MIDIFormatSMF1, /**< Standard MIDI File Type 1 */
- OMX_AUDIO_MIDIFormatSMF2, /**< Standard MIDI File Type 2 */
- OMX_AUDIO_MIDIFormatSPMIDI, /**< SP-MIDI */
- OMX_AUDIO_MIDIFormatXMF0, /**< eXtensible Music Format type 0 */
- OMX_AUDIO_MIDIFormatXMF1, /**< eXtensible Music Format type 1 */
- OMX_AUDIO_MIDIFormatMobileXMF, /**< Mobile XMF (eXtensible Music Format type 2) */
- OMX_AUDIO_MIDIFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_AUDIO_MIDIFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_AUDIO_MIDIFormatMax = 0x7FFFFFFF
-} OMX_AUDIO_MIDIFORMATTYPE;
-
-
-/** MIDI params
- * @ingroup midi
- */
-typedef struct OMX_AUDIO_PARAM_MIDITYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_U32 nFileSize; /**< size of the MIDI file in bytes, where the entire
- MIDI file passed in, otherwise if 0x0, the MIDI data
- is merged and streamed (instead of passed as an
- entire MIDI file) */
- OMX_BU32 sMaxPolyphony; /**< Specifies the maximum simultaneous polyphonic
- voices. A value of zero indicates that the default
- polyphony of the device is used */
- OMX_BOOL bLoadDefaultSound; /**< Whether to load default sound
- bank at initialization */
- OMX_AUDIO_MIDIFORMATTYPE eMidiFormat; /**< Version of the MIDI file */
-} OMX_AUDIO_PARAM_MIDITYPE;
-
-
-/** Type of the MIDI sound bank
- * @ingroup midi
- */
-typedef enum OMX_AUDIO_MIDISOUNDBANKTYPE {
- OMX_AUDIO_MIDISoundBankUnused = 0, /**< unused/unknown soundbank type */
- OMX_AUDIO_MIDISoundBankDLS1, /**< DLS version 1 */
- OMX_AUDIO_MIDISoundBankDLS2, /**< DLS version 2 */
- OMX_AUDIO_MIDISoundBankMobileDLSBase, /**< Mobile DLS, using the base functionality */
- OMX_AUDIO_MIDISoundBankMobileDLSPlusOptions, /**< Mobile DLS, using the specification-defined optional feature set */
- OMX_AUDIO_MIDISoundBankKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_AUDIO_MIDISoundBankVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_AUDIO_MIDISoundBankMax = 0x7FFFFFFF
-} OMX_AUDIO_MIDISOUNDBANKTYPE;
-
-
-/** Bank Layout describes how bank MSB & LSB are used in the DLS instrument definitions sound bank
- * @ingroup midi
- */
-typedef enum OMX_AUDIO_MIDISOUNDBANKLAYOUTTYPE {
- OMX_AUDIO_MIDISoundBankLayoutUnused = 0, /**< unused/unknown soundbank type */
- OMX_AUDIO_MIDISoundBankLayoutGM, /**< GS layout (based on bank MSB 0x00) */
- OMX_AUDIO_MIDISoundBankLayoutGM2, /**< General MIDI 2 layout (using MSB 0x78/0x79, LSB 0x00) */
- OMX_AUDIO_MIDISoundBankLayoutUser, /**< Does not conform to any bank numbering standards */
- OMX_AUDIO_MIDISoundBankLayoutKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_AUDIO_MIDISoundBankLayoutVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_AUDIO_MIDISoundBankLayoutMax = 0x7FFFFFFF
-} OMX_AUDIO_MIDISOUNDBANKLAYOUTTYPE;
-
-
-/** MIDI params to load/unload user soundbank
- * @ingroup midi
- */
-typedef struct OMX_AUDIO_PARAM_MIDILOADUSERSOUNDTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_U32 nDLSIndex; /**< DLS file index to be loaded */
- OMX_U32 nDLSSize; /**< Size in bytes */
- OMX_PTR pDLSData; /**< Pointer to DLS file data */
- OMX_AUDIO_MIDISOUNDBANKTYPE eMidiSoundBank; /**< Midi sound bank type enumeration */
- OMX_AUDIO_MIDISOUNDBANKLAYOUTTYPE eMidiSoundBankLayout; /**< Midi sound bank layout enumeration */
-} OMX_AUDIO_PARAM_MIDILOADUSERSOUNDTYPE;
-
-
-/** Structure for Live MIDI events and MIP messages.
- * (MIP = Maximum Instantaneous Polyphony; part of the SP-MIDI standard.)
- * @ingroup midi
- */
-typedef struct OMX_AUDIO_CONFIG_MIDIIMMEDIATEEVENTTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< Port that this structure applies to */
- OMX_U32 nMidiEventSize; /**< Size of immediate MIDI events or MIP message in bytes */
- OMX_U8 nMidiEvents[1]; /**< MIDI event array to be rendered immediately, or an
- array for the MIP message buffer, where the size is
- indicated by nMidiEventSize */
-} OMX_AUDIO_CONFIG_MIDIIMMEDIATEEVENTTYPE;
-
-
-/** MIDI sound bank/ program pair in a given channel
- * @ingroup midi
- */
-typedef struct OMX_AUDIO_CONFIG_MIDISOUNDBANKPROGRAMTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< Port that this structure applies to */
- OMX_U32 nChannel; /**< Valid channel values range from 1 to 16 */
- OMX_U16 nIDProgram; /**< Valid program ID range is 1 to 128 */
- OMX_U16 nIDSoundBank; /**< Sound bank ID */
- OMX_U32 nUserSoundBankIndex;/**< User soundbank index, easier to access soundbanks
- by index if multiple banks are present */
-} OMX_AUDIO_CONFIG_MIDISOUNDBANKPROGRAMTYPE;
-
-
-/** MIDI control
- * @ingroup midi
- */
-typedef struct OMX_AUDIO_CONFIG_MIDICONTROLTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_BS32 sPitchTransposition; /**< Pitch transposition in semitones, stored as Q22.10
- format based on JAVA MMAPI (JSR-135) requirement */
- OMX_BU32 sPlayBackRate; /**< Relative playback rate, stored as Q14.17 fixed-point
- number based on JSR-135 requirement */
- OMX_BU32 sTempo ; /**< Tempo in beats per minute (BPM), stored as Q22.10
- fixed-point number based on JSR-135 requirement */
- OMX_U32 nMaxPolyphony; /**< Specifies the maximum simultaneous polyphonic
- voices. A value of zero indicates that the default
- polyphony of the device is used */
- OMX_U32 nNumRepeat; /**< Number of times to repeat playback */
- OMX_U32 nStopTime; /**< Time in milliseconds to indicate when playback
- will stop automatically. Set to zero if not used */
- OMX_U16 nChannelMuteMask; /**< 16 bit mask for channel mute status */
- OMX_U16 nChannelSoloMask; /**< 16 bit mask for channel solo status */
- OMX_U32 nTrack0031MuteMask; /**< 32 bit mask for track mute status. Note: This is for tracks 0-31 */
- OMX_U32 nTrack3263MuteMask; /**< 32 bit mask for track mute status. Note: This is for tracks 32-63 */
- OMX_U32 nTrack0031SoloMask; /**< 32 bit mask for track solo status. Note: This is for tracks 0-31 */
- OMX_U32 nTrack3263SoloMask; /**< 32 bit mask for track solo status. Note: This is for tracks 32-63 */
-
-} OMX_AUDIO_CONFIG_MIDICONTROLTYPE;
-
-
-/** MIDI Playback States
- * @ingroup midi
- */
-typedef enum OMX_AUDIO_MIDIPLAYBACKSTATETYPE {
- OMX_AUDIO_MIDIPlayBackStateUnknown = 0, /**< Unknown state or state does not map to
- other defined states */
- OMX_AUDIO_MIDIPlayBackStateClosedEngaged, /**< No MIDI resource is currently open.
- The MIDI engine is currently processing
- MIDI events. */
- OMX_AUDIO_MIDIPlayBackStateParsing, /**< A MIDI resource is open and is being
- primed. The MIDI engine is currently
- processing MIDI events. */
- OMX_AUDIO_MIDIPlayBackStateOpenEngaged, /**< A MIDI resource is open and primed but
- not playing. The MIDI engine is currently
- processing MIDI events. The transition to
- this state is only possible from the
- OMX_AUDIO_MIDIPlayBackStatePlaying state,
- when the 'playback head' reaches the end
- of media data or the playback stops due
- to stop time set.*/
- OMX_AUDIO_MIDIPlayBackStatePlaying, /**< A MIDI resource is open and currently
- playing. The MIDI engine is currently
- processing MIDI events.*/
- OMX_AUDIO_MIDIPlayBackStatePlayingPartially, /**< Best-effort playback due to SP-MIDI/DLS
- resource constraints */
- OMX_AUDIO_MIDIPlayBackStatePlayingSilently, /**< Due to system resource constraints and
- SP-MIDI content constraints, there is
- no audible MIDI content during playback
- currently. The situation may change if
- resources are freed later.*/
- OMX_AUDIO_MIDIPlayBackStateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_AUDIO_MIDIPlayBackStateVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_AUDIO_MIDIPlayBackStateMax = 0x7FFFFFFF
-} OMX_AUDIO_MIDIPLAYBACKSTATETYPE;
-
-
-/** MIDI status
- * @ingroup midi
- */
-typedef struct OMX_AUDIO_CONFIG_MIDISTATUSTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_U16 nNumTracks; /**< Number of MIDI tracks in the file, read only field.
- NOTE: May not return a meaningful value until the entire
- file is parsed and buffered. */
- OMX_U32 nDuration; /**< The length of the currently open MIDI resource
- in milliseconds. NOTE: May not return a meaningful value
- until the entire file is parsed and buffered. */
- OMX_U32 nPosition; /**< Current Position of the MIDI resource being played
- in milliseconds */
- OMX_BOOL bVibra; /**< Does Vibra track exist? NOTE: May not return a meaningful
- value until the entire file is parsed and buffered. */
- OMX_U32 nNumMetaEvents; /**< Total number of MIDI Meta Events in the currently
- open MIDI resource. NOTE: May not return a meaningful value
- until the entire file is parsed and buffered. */
- OMX_U32 nNumActiveVoices; /**< Number of active voices in the currently playing
- MIDI resource. NOTE: May not return a meaningful value until
- the entire file is parsed and buffered. */
- OMX_AUDIO_MIDIPLAYBACKSTATETYPE eMIDIPlayBackState; /**< MIDI playback state enumeration, read only field */
-} OMX_AUDIO_CONFIG_MIDISTATUSTYPE;
-
-
-/** MIDI Meta Event structure one per Meta Event.
- * MIDI Meta Events are like audio metadata, except that they are interspersed
- * with the MIDI content throughout the file and are not localized in the header.
- * As such, it is necessary to retrieve information about these Meta Events from
- * the engine, as it encounters these Meta Events within the MIDI content.
- * For example, SMF files can have up to 14 types of MIDI Meta Events (copyright,
- * author, default tempo, etc.) scattered throughout the file.
- * @ingroup midi
- */
-typedef struct OMX_AUDIO_CONFIG_MIDIMETAEVENTTYPE{
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_U32 nIndex; /**< Index of Meta Event */
- OMX_U8 nMetaEventType; /**< Meta Event Type, 7bits (i.e. 0 - 127) */
- OMX_U32 nMetaEventSize; /**< size of the Meta Event in bytes */
- OMX_U32 nTrack; /**< track number for the meta event */
- OMX_U32 nPosition; /**< Position of the meta-event in milliseconds */
-} OMX_AUDIO_CONFIG_MIDIMETAEVENTTYPE;
-
-
-/** MIDI Meta Event Data structure - one per Meta Event.
- * @ingroup midi
- */
-typedef struct OMX_AUDIO_CONFIG_MIDIMETAEVENTDATATYPE{
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_U32 nIndex; /**< Index of Meta Event */
- OMX_U32 nMetaEventSize; /**< size of the Meta Event in bytes */
- OMX_U8 nData[1]; /**< array of one or more bytes of meta data
- as indicated by the nMetaEventSize field */
-} OMX_AUDIO_CONFIG__MIDIMETAEVENTDATATYPE;
-
-
-/** Audio Volume adjustment for a port */
-typedef struct OMX_AUDIO_CONFIG_VOLUMETYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< Port index indicating which port to
- set. Select the input port to set
- just that port's volume. Select the
- output port to adjust the master
- volume. */
- OMX_BOOL bLinear; /**< Is the volume to be set in linear (0.100)
- or logarithmic scale (mB) */
- OMX_BS32 sVolume; /**< Volume linear setting in the 0..100 range, OR
- Volume logarithmic setting for this port. The values
- for volume are in mB (millibels = 1/100 dB) relative
- to a gain of 1 (e.g. the output is the same as the
- input level). Values are in mB from nMax
- (maximum volume) to nMin mB (typically negative).
- Since the volume is "voltage"
- and not a "power", it takes a setting of
- -600 mB to decrease the volume by 1/2. If
- a component cannot accurately set the
- volume to the requested value, it must
- set the volume to the closest value BELOW
- the requested value. When getting the
- volume setting, the current actual volume
- must be returned. */
-} OMX_AUDIO_CONFIG_VOLUMETYPE;
-
-
-/** Audio Volume adjustment for a channel */
-typedef struct OMX_AUDIO_CONFIG_CHANNELVOLUMETYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< Port index indicating which port to
- set. Select the input port to set
- just that port's volume. Select the
- output port to adjust the master
- volume. */
- OMX_U32 nChannel; /**< channel to select from 0 to N-1,
- using OMX_ALL to apply volume settings
- to all channels */
- OMX_BOOL bLinear; /**< Is the volume to be set in linear (0.100) or
- logarithmic scale (mB) */
- OMX_BS32 sVolume; /**< Volume linear setting in the 0..100 range, OR
- Volume logarithmic setting for this port.
- The values for volume are in mB
- (millibels = 1/100 dB) relative to a gain
- of 1 (e.g. the output is the same as the
- input level). Values are in mB from nMax
- (maximum volume) to nMin mB (typically negative).
- Since the volume is "voltage"
- and not a "power", it takes a setting of
- -600 mB to decrease the volume by 1/2. If
- a component cannot accurately set the
- volume to the requested value, it must
- set the volume to the closest value BELOW
- the requested value. When getting the
- volume setting, the current actual volume
- must be returned. */
- OMX_BOOL bIsMIDI; /**< TRUE if nChannel refers to a MIDI channel,
- FALSE otherwise */
-} OMX_AUDIO_CONFIG_CHANNELVOLUMETYPE;
-
-
-/** Audio balance setting */
-typedef struct OMX_AUDIO_CONFIG_BALANCETYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< Port index indicating which port to
- set. Select the input port to set
- just that port's balance. Select the
- output port to adjust the master
- balance. */
- OMX_S32 nBalance; /**< balance setting for this port
- (-100 to 100, where -100 indicates
- all left, and no right */
-} OMX_AUDIO_CONFIG_BALANCETYPE;
-
-
-/** Audio Port mute */
-typedef struct OMX_AUDIO_CONFIG_MUTETYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< Port index indicating which port to
- set. Select the input port to set
- just that port's mute. Select the
- output port to adjust the master
- mute. */
- OMX_BOOL bMute; /**< Mute setting for this port */
-} OMX_AUDIO_CONFIG_MUTETYPE;
-
-
-/** Audio Channel mute */
-typedef struct OMX_AUDIO_CONFIG_CHANNELMUTETYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_U32 nChannel; /**< channel to select from 0 to N-1,
- using OMX_ALL to apply mute settings
- to all channels */
- OMX_BOOL bMute; /**< Mute setting for this channel */
- OMX_BOOL bIsMIDI; /**< TRUE if nChannel refers to a MIDI channel,
- FALSE otherwise */
-} OMX_AUDIO_CONFIG_CHANNELMUTETYPE;
-
-
-
-/** Enable / Disable for loudness control, which boosts bass and to a
- * smaller extent high end frequencies to compensate for hearing
- * ability at the extreme ends of the audio spectrum
- */
-typedef struct OMX_AUDIO_CONFIG_LOUDNESSTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_BOOL bLoudness; /**< Enable/disable for loudness */
-} OMX_AUDIO_CONFIG_LOUDNESSTYPE;
-
-
-/** Enable / Disable for bass, which controls low frequencies
- */
-typedef struct OMX_AUDIO_CONFIG_BASSTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_BOOL bEnable; /**< Enable/disable for bass control */
- OMX_S32 nBass; /**< bass setting for the port, as a
- continuous value from -100 to 100
- (0 means no change in bass level)*/
-} OMX_AUDIO_CONFIG_BASSTYPE;
-
-
-/** Enable / Disable for treble, which controls high frequencies tones
- */
-typedef struct OMX_AUDIO_CONFIG_TREBLETYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_BOOL bEnable; /**< Enable/disable for treble control */
- OMX_S32 nTreble; /**< treble setting for the port, as a
- continuous value from -100 to 100
- (0 means no change in treble level) */
-} OMX_AUDIO_CONFIG_TREBLETYPE;
-
-
-/** An equalizer is typically used for two reasons: to compensate for an
- * sub-optimal frequency response of a system to make it sound more natural
- * or to create intentionally some unnatural coloring to the sound to create
- * an effect.
- * @ingroup effects
- */
-typedef struct OMX_AUDIO_CONFIG_EQUALIZERTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_BOOL bEnable; /**< Enable/disable for equalizer */
- OMX_BU32 sBandIndex; /**< Band number to be set. Upper Limit is
- N-1, where N is the number of bands, lower limit is 0 */
- OMX_BU32 sCenterFreq; /**< Center frequecies in Hz. This is a
- read only element and is used to determine
- the lower, center and upper frequency of
- this band. */
- OMX_BS32 sBandLevel; /**< band level in millibels */
-} OMX_AUDIO_CONFIG_EQUALIZERTYPE;
-
-
-/** Stereo widening mode type
- * @ingroup effects
- */
-typedef enum OMX_AUDIO_STEREOWIDENINGTYPE {
- OMX_AUDIO_StereoWideningHeadphones, /**< Stereo widening for loudspeakers */
- OMX_AUDIO_StereoWideningLoudspeakers, /**< Stereo widening for closely spaced loudspeakers */
- OMX_AUDIO_StereoWideningKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_AUDIO_StereoWideningVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_AUDIO_StereoWideningMax = 0x7FFFFFFF
-} OMX_AUDIO_STEREOWIDENINGTYPE;
-
-
-/** Control for stereo widening, which is a special 2-channel
- * case of the audio virtualizer effect. For example, for 5.1-channel
- * output, it translates to virtual surround sound.
- * @ingroup effects
- */
-typedef struct OMX_AUDIO_CONFIG_STEREOWIDENINGTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_BOOL bEnable; /**< Enable/disable for stereo widening control */
- OMX_AUDIO_STEREOWIDENINGTYPE eWideningType; /**< Stereo widening algorithm type */
- OMX_U32 nStereoWidening; /**< stereo widening setting for the port,
- as a continuous value from 0 to 100 */
-} OMX_AUDIO_CONFIG_STEREOWIDENINGTYPE;
-
-
-/** The chorus effect (or ``choralizer'') is any signal processor which makes
- * one sound source (such as a voice) sound like many such sources singing
- * (or playing) in unison. Since performance in unison is never exact, chorus
- * effects simulate this by making independently modified copies of the input
- * signal. Modifications may include (1) delay, (2) frequency shift, and
- * (3) amplitude modulation.
- * @ingroup effects
- */
-typedef struct OMX_AUDIO_CONFIG_CHORUSTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_BOOL bEnable; /**< Enable/disable for chorus */
- OMX_BU32 sDelay; /**< average delay in milliseconds */
- OMX_BU32 sModulationRate; /**< rate of modulation in millihertz */
- OMX_U32 nModulationDepth; /**< depth of modulation as a percentage of
- delay (i.e. 0 to 100) */
- OMX_BU32 nFeedback; /**< Feedback from chorus output to input in percentage */
-} OMX_AUDIO_CONFIG_CHORUSTYPE;
-
-
-/** Reverberation is part of the reflected sound that follows the early
- * reflections. In a typical room, this consists of a dense succession of
- * echoes whose energy decays exponentially. The reverberation effect structure
- * as defined here includes both (early) reflections as well as (late) reverberations.
- * @ingroup effects
- */
-typedef struct OMX_AUDIO_CONFIG_REVERBERATIONTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_BOOL bEnable; /**< Enable/disable for reverberation control */
- OMX_BS32 sRoomLevel; /**< Intensity level for the whole room effect
- (i.e. both early reflections and late
- reverberation) in millibels */
- OMX_BS32 sRoomHighFreqLevel; /**< Attenuation at high frequencies
- relative to the intensity at low
- frequencies in millibels */
- OMX_BS32 sReflectionsLevel; /**< Intensity level of early reflections
- (relative to room value), in millibels */
- OMX_BU32 sReflectionsDelay; /**< Delay time of the first reflection relative
- to the direct path, in milliseconds */
- OMX_BS32 sReverbLevel; /**< Intensity level of late reverberation
- relative to room level, in millibels */
- OMX_BU32 sReverbDelay; /**< Time delay from the first early reflection
- to the beginning of the late reverberation
- section, in milliseconds */
- OMX_BU32 sDecayTime; /**< Late reverberation decay time at low
- frequencies, in milliseconds */
- OMX_BU32 nDecayHighFreqRatio; /**< Ratio of high frequency decay time relative
- to low frequency decay time in percent */
- OMX_U32 nDensity; /**< Modal density in the late reverberation decay,
- in percent (i.e. 0 - 100) */
- OMX_U32 nDiffusion; /**< Echo density in the late reverberation decay,
- in percent (i.e. 0 - 100) */
- OMX_BU32 sReferenceHighFreq; /**< Reference high frequency in Hertz. This is
- the frequency used as the reference for all
- the high-frequency settings above */
-
-} OMX_AUDIO_CONFIG_REVERBERATIONTYPE;
-
-
-/** Possible settings for the Echo Cancelation structure to use
- * @ingroup effects
- */
-typedef enum OMX_AUDIO_ECHOCANTYPE {
- OMX_AUDIO_EchoCanOff = 0, /**< Echo Cancellation is disabled */
- OMX_AUDIO_EchoCanNormal, /**< Echo Cancellation normal operation -
- echo from plastics and face */
- OMX_AUDIO_EchoCanHFree, /**< Echo Cancellation optimized for
- Hands Free operation */
- OMX_AUDIO_EchoCanCarKit, /**< Echo Cancellation optimized for
- Car Kit (longer echo) */
- OMX_AUDIO_EchoCanKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_AUDIO_EchoCanVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_AUDIO_EchoCanMax = 0x7FFFFFFF
-} OMX_AUDIO_ECHOCANTYPE;
-
-
-/** Enable / Disable for echo cancelation, which removes undesired echo's
- * from the audio
- * @ingroup effects
- */
-typedef struct OMX_AUDIO_CONFIG_ECHOCANCELATIONTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_AUDIO_ECHOCANTYPE eEchoCancelation; /**< Echo cancelation settings */
-} OMX_AUDIO_CONFIG_ECHOCANCELATIONTYPE;
-
-
-/** Enable / Disable for noise reduction, which undesired noise from
- * the audio
- * @ingroup effects
- */
-typedef struct OMX_AUDIO_CONFIG_NOISEREDUCTIONTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_BOOL bNoiseReduction; /**< Enable/disable for noise reduction */
-} OMX_AUDIO_CONFIG_NOISEREDUCTIONTYPE;
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
-/* File EOF */
-
--- a/omxil/omxilapi/v1_x/OMX_Component.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,579 +0,0 @@
-/*
- * Copyright (c) 2008 The Khronos Group Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject
- * to the following conditions:
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- */
-
-/** OMX_Component.h - OpenMax IL version 1.1.2
- * The OMX_Component header file contains the definitions used to define
- * the public interface of a component. This header file is intended to
- * be used by both the application and the component.
- */
-
-#ifndef OMX_Component_h
-#define OMX_Component_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-
-/* Each OMX header must include all required header files to allow the
- * header to compile without errors. The includes below are required
- * for this header file to compile successfully
- */
-
-#include <openmax/il/khronos/v1_x/OMX_Audio.h>
-#include <openmax/il/khronos/v1_x/OMX_Video.h>
-#include <openmax/il/khronos/v1_x/OMX_Image.h>
-#include <openmax/il/khronos/v1_x/OMX_Other.h>
-
-/** @ingroup comp */
-typedef enum OMX_PORTDOMAINTYPE {
- OMX_PortDomainAudio,
- OMX_PortDomainVideo,
- OMX_PortDomainImage,
- OMX_PortDomainOther,
- OMX_PortDomainKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_PortDomainVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_PortDomainMax = 0x7ffffff
-} OMX_PORTDOMAINTYPE;
-
-/** @ingroup comp */
-typedef struct OMX_PARAM_PORTDEFINITIONTYPE {
- OMX_U32 nSize; /**< Size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< Port number the structure applies to */
- OMX_DIRTYPE eDir; /**< Direction (input or output) of this port */
- OMX_U32 nBufferCountActual; /**< The actual number of buffers allocated on this port */
- OMX_U32 nBufferCountMin; /**< The minimum number of buffers this port requires */
- OMX_U32 nBufferSize; /**< Size, in bytes, for buffers to be used for this channel */
- OMX_BOOL bEnabled; /**< Ports default to enabled and are enabled/disabled by
- OMX_CommandPortEnable/OMX_CommandPortDisable.
- When disabled a port is unpopulated. A disabled port
- is not populated with buffers on a transition to IDLE. */
- OMX_BOOL bPopulated; /**< Port is populated with all of its buffers as indicated by
- nBufferCountActual. A disabled port is always unpopulated.
- An enabled port is populated on a transition to OMX_StateIdle
- and unpopulated on a transition to loaded. */
- OMX_PORTDOMAINTYPE eDomain; /**< Domain of the port. Determines the contents of metadata below. */
- union {
- OMX_AUDIO_PORTDEFINITIONTYPE audio;
- OMX_VIDEO_PORTDEFINITIONTYPE video;
- OMX_IMAGE_PORTDEFINITIONTYPE image;
- OMX_OTHER_PORTDEFINITIONTYPE other;
- } format;
- OMX_BOOL bBuffersContiguous;
- OMX_U32 nBufferAlignment;
-} OMX_PARAM_PORTDEFINITIONTYPE;
-
-/** @ingroup comp */
-typedef struct OMX_PARAM_U32TYPE {
- OMX_U32 nSize; /**< Size of this structure, in Bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_U32 nU32; /**< U32 value */
-} OMX_PARAM_U32TYPE;
-
-/** @ingroup rpm */
-typedef enum OMX_SUSPENSIONPOLICYTYPE {
- OMX_SuspensionDisabled, /**< No suspension; v1.0 behavior */
- OMX_SuspensionEnabled, /**< Suspension allowed */
- OMX_SuspensionPolicyKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_SuspensionPolicyStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_SuspensionPolicyMax = 0x7fffffff
-} OMX_SUSPENSIONPOLICYTYPE;
-
-/** @ingroup rpm */
-typedef struct OMX_PARAM_SUSPENSIONPOLICYTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_SUSPENSIONPOLICYTYPE ePolicy;
-} OMX_PARAM_SUSPENSIONPOLICYTYPE;
-
-/** @ingroup rpm */
-typedef enum OMX_SUSPENSIONTYPE {
- OMX_NotSuspended, /**< component is not suspended */
- OMX_Suspended, /**< component is suspended */
- OMX_SuspensionKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_SuspensionVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_SuspendMax = 0x7FFFFFFF
-} OMX_SUSPENSIONTYPE;
-
-/** @ingroup rpm */
-typedef struct OMX_PARAM_SUSPENSIONTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_SUSPENSIONTYPE eType;
-} OMX_PARAM_SUSPENSIONTYPE ;
-
-typedef struct OMX_CONFIG_BOOLEANTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_BOOL bEnabled;
-} OMX_CONFIG_BOOLEANTYPE;
-
-/* Parameter specifying the content uri to use. */
-/** @ingroup cp */
-typedef struct OMX_PARAM_CONTENTURITYPE
-{
- OMX_U32 nSize; /**< size of the structure in bytes, including
- actual URI name */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U8 contentURI[1]; /**< The URI name */
-} OMX_PARAM_CONTENTURITYPE;
-
-/* Parameter specifying the pipe to use. */
-/** @ingroup cp */
-typedef struct OMX_PARAM_CONTENTPIPETYPE
-{
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_HANDLETYPE hPipe; /**< The pipe handle*/
-} OMX_PARAM_CONTENTPIPETYPE;
-
-/** @ingroup rpm */
-typedef struct OMX_RESOURCECONCEALMENTTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_BOOL bResourceConcealmentForbidden; /**< disallow the use of resource concealment
- methods (like degrading algorithm quality to
- lower resource consumption or functional bypass)
- on a component as a resolution to resource conflicts. */
-} OMX_RESOURCECONCEALMENTTYPE;
-
-
-/** @ingroup metadata */
-typedef enum OMX_METADATACHARSETTYPE {
- OMX_MetadataCharsetUnknown = 0,
- OMX_MetadataCharsetASCII,
- OMX_MetadataCharsetBinary,
- OMX_MetadataCharsetCodePage1252,
- OMX_MetadataCharsetUTF8,
- OMX_MetadataCharsetJavaConformantUTF8,
- OMX_MetadataCharsetUTF7,
- OMX_MetadataCharsetImapUTF7,
- OMX_MetadataCharsetUTF16LE,
- OMX_MetadataCharsetUTF16BE,
- OMX_MetadataCharsetGB12345,
- OMX_MetadataCharsetHZGB2312,
- OMX_MetadataCharsetGB2312,
- OMX_MetadataCharsetGB18030,
- OMX_MetadataCharsetGBK,
- OMX_MetadataCharsetBig5,
- OMX_MetadataCharsetISO88591,
- OMX_MetadataCharsetISO88592,
- OMX_MetadataCharsetISO88593,
- OMX_MetadataCharsetISO88594,
- OMX_MetadataCharsetISO88595,
- OMX_MetadataCharsetISO88596,
- OMX_MetadataCharsetISO88597,
- OMX_MetadataCharsetISO88598,
- OMX_MetadataCharsetISO88599,
- OMX_MetadataCharsetISO885910,
- OMX_MetadataCharsetISO885913,
- OMX_MetadataCharsetISO885914,
- OMX_MetadataCharsetISO885915,
- OMX_MetadataCharsetShiftJIS,
- OMX_MetadataCharsetISO2022JP,
- OMX_MetadataCharsetISO2022JP1,
- OMX_MetadataCharsetISOEUCJP,
- OMX_MetadataCharsetSMS7Bit,
- OMX_MetadataCharsetKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_MetadataCharsetVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_MetadataCharsetTypeMax= 0x7FFFFFFF
-} OMX_METADATACHARSETTYPE;
-
-/** @ingroup metadata */
-typedef enum OMX_METADATASCOPETYPE
-{
- OMX_MetadataScopeAllLevels,
- OMX_MetadataScopeTopLevel,
- OMX_MetadataScopePortLevel,
- OMX_MetadataScopeNodeLevel,
- OMX_MetadataScopeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_MetadataScopeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_MetadataScopeTypeMax = 0x7fffffff
-} OMX_METADATASCOPETYPE;
-
-/** @ingroup metadata */
-typedef enum OMX_METADATASEARCHMODETYPE
-{
- OMX_MetadataSearchValueSizeByIndex,
- OMX_MetadataSearchItemByIndex,
- OMX_MetadataSearchNextItemByKey,
- OMX_MetadataSearchKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_MetadataSearchVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_MetadataSearchTypeMax = 0x7fffffff
-} OMX_METADATASEARCHMODETYPE;
-/** @ingroup metadata */
-typedef struct OMX_CONFIG_METADATAITEMCOUNTTYPE
-{
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_METADATASCOPETYPE eScopeMode;
- OMX_U32 nScopeSpecifier;
- OMX_U32 nMetadataItemCount;
-} OMX_CONFIG_METADATAITEMCOUNTTYPE;
-
-/** @ingroup metadata */
-typedef struct OMX_CONFIG_METADATAITEMTYPE
-{
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_METADATASCOPETYPE eScopeMode;
- OMX_U32 nScopeSpecifier;
- OMX_U32 nMetadataItemIndex;
- OMX_METADATASEARCHMODETYPE eSearchMode;
- OMX_METADATACHARSETTYPE eKeyCharset;
- OMX_U8 nKeySizeUsed;
- OMX_U8 nKey[128];
- OMX_METADATACHARSETTYPE eValueCharset;
- OMX_STRING sLanguageCountry;
- OMX_U32 nValueMaxSize;
- OMX_U32 nValueSizeUsed;
- OMX_U8 nValue[1];
-} OMX_CONFIG_METADATAITEMTYPE;
-
-/* @ingroup metadata */
-typedef struct OMX_CONFIG_CONTAINERNODECOUNTTYPE
-{
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_BOOL bAllKeys;
- OMX_U32 nParentNodeID;
- OMX_U32 nNumNodes;
-} OMX_CONFIG_CONTAINERNODECOUNTTYPE;
-
-/** @ingroup metadata */
-typedef struct OMX_CONFIG_CONTAINERNODEIDTYPE
-{
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_BOOL bAllKeys;
- OMX_U32 nParentNodeID;
- OMX_U32 nNodeIndex;
- OMX_U32 nNodeID;
- OMX_STRING cNodeName;
- OMX_BOOL bIsLeafType;
-} OMX_CONFIG_CONTAINERNODEIDTYPE;
-
-/** @ingroup metadata */
-typedef struct OMX_PARAM_METADATAFILTERTYPE
-{
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_BOOL bAllKeys; /* if true then this structure refers to all keys and
- * the three key fields below are ignored */
- OMX_METADATACHARSETTYPE eKeyCharset;
- OMX_U32 nKeySizeUsed;
- OMX_U8 nKey [128];
- OMX_U32 nLanguageCountrySizeUsed;
- OMX_U8 nLanguageCountry[128];
- OMX_BOOL bEnabled; /* if true then key is part of filter (e.g.
- * retained for query later). If false then
- * key is not part of filter */
-} OMX_PARAM_METADATAFILTERTYPE;
-
-/** The OMX_HANDLETYPE structure defines the component handle. The component
- * handle is used to access all of the component's public methods and also
- * contains pointers to the component's private data area. The component
- * handle is initialized by the OMX core (with help from the component)
- * during the process of loading the component. After the component is
- * successfully loaded, the application can safely access any of the
- * component's public functions (although some may return an error because
- * the state is inappropriate for the access).
- *
- * @ingroup comp
- */
-typedef struct OMX_COMPONENTTYPE
-{
- /** The size of this structure, in bytes. It is the responsibility
- of the allocator of this structure to fill in this value. Since
- this structure is allocated by the GetHandle function, this
- function will fill in this value. */
- OMX_U32 nSize;
-
- /** nVersion is the version of the OMX specification that the structure
- is built against. It is the responsibility of the creator of this
- structure to initialize this value and every user of this structure
- should verify that it knows how to use the exact version of
- this structure found herein. */
- OMX_VERSIONTYPE nVersion;
-
- /** pComponentPrivate is a pointer to the component private data area.
- This member is allocated and initialized by the component when the
- component is first loaded. The application should not access this
- data area. */
- OMX_PTR pComponentPrivate;
-
- /** pApplicationPrivate is a pointer that is a parameter to the
- OMX_GetHandle method, and contains an application private value
- provided by the IL client. This application private data is
- returned to the IL Client by OMX in all callbacks */
- OMX_PTR pApplicationPrivate;
-
- /** refer to OMX_GetComponentVersion in OMX_core.h or the OMX IL
- specification for details on the GetComponentVersion method.
- */
- OMX_ERRORTYPE (*GetComponentVersion)(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_OUT OMX_STRING pComponentName,
- OMX_OUT OMX_VERSIONTYPE* pComponentVersion,
- OMX_OUT OMX_VERSIONTYPE* pSpecVersion,
- OMX_OUT OMX_UUIDTYPE* pComponentUUID);
-
- /** refer to OMX_SendCommand in OMX_core.h or the OMX IL
- specification for details on the SendCommand method.
- */
- OMX_ERRORTYPE (*SendCommand)(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_COMMANDTYPE Cmd,
- OMX_IN OMX_U32 nParam1,
- OMX_IN OMX_PTR pCmdData);
-
- /** refer to OMX_GetParameter in OMX_core.h or the OMX IL
- specification for details on the GetParameter method.
- */
- OMX_ERRORTYPE (*GetParameter)(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_INDEXTYPE nParamIndex,
- OMX_INOUT OMX_PTR pComponentParameterStructure);
-
-
- /** refer to OMX_SetParameter in OMX_core.h or the OMX IL
- specification for details on the SetParameter method.
- */
- OMX_ERRORTYPE (*SetParameter)(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_INDEXTYPE nIndex,
- OMX_IN OMX_PTR pComponentParameterStructure);
-
-
- /** refer to OMX_GetConfig in OMX_core.h or the OMX IL
- specification for details on the GetConfig method.
- */
- OMX_ERRORTYPE (*GetConfig)(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_INDEXTYPE nIndex,
- OMX_INOUT OMX_PTR pComponentConfigStructure);
-
-
- /** refer to OMX_SetConfig in OMX_core.h or the OMX IL
- specification for details on the SetConfig method.
- */
- OMX_ERRORTYPE (*SetConfig)(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_INDEXTYPE nIndex,
- OMX_IN OMX_PTR pComponentConfigStructure);
-
-
- /** refer to OMX_GetExtensionIndex in OMX_core.h or the OMX IL
- specification for details on the GetExtensionIndex method.
- */
- OMX_ERRORTYPE (*GetExtensionIndex)(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_STRING cParameterName,
- OMX_OUT OMX_INDEXTYPE* pIndexType);
-
-
- /** refer to OMX_GetState in OMX_core.h or the OMX IL
- specification for details on the GetState method.
- */
- OMX_ERRORTYPE (*GetState)(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_OUT OMX_STATETYPE* pState);
-
-
- /** The ComponentTunnelRequest method will interact with another OMX
- component to determine if tunneling is possible and to setup the
- tunneling. The return codes for this method can be used to
- determine if tunneling is not possible, or if tunneling is not
- supported.
-
- Base profile components (i.e. non-interop) do not support this
- method and should return OMX_ErrorNotImplemented
-
- The interop profile component MUST support tunneling to another
- interop profile component with a compatible port parameters.
- A component may also support proprietary communication.
-
- If proprietary communication is supported the negotiation of
- proprietary communication is done outside of OMX in a vendor
- specific way. It is only required that the proper result be
- returned and the details of how the setup is done is left
- to the component implementation.
-
- When this method is invoked when nPort in an output port, the
- component will:
- 1. Populate the pTunnelSetup structure with the output port's
- requirements and constraints for the tunnel.
-
- When this method is invoked when nPort in an input port, the
- component will:
- 1. Query the necessary parameters from the output port to
- determine if the ports are compatible for tunneling
- 2. If the ports are compatible, the component should store
- the tunnel step provided by the output port
- 3. Determine which port (either input or output) is the buffer
- supplier, and call OMX_SetParameter on the output port to
- indicate this selection.
-
- The component will return from this call within 5 msec.
-
- @param [in] hComp
- Handle of the component to be accessed. This is the component
- handle returned by the call to the OMX_GetHandle method.
- @param [in] nPort
- nPort is used to select the port on the component to be used
- for tunneling.
- @param [in] hTunneledComp
- Handle of the component to tunnel with. This is the component
- handle returned by the call to the OMX_GetHandle method. When
- this parameter is 0x0 the component should setup the port for
- communication with the application / IL Client.
- @param [in] nPortOutput
- nPortOutput is used indicate the port the component should
- tunnel with.
- @param [in] pTunnelSetup
- Pointer to the tunnel setup structure. When nPort is an output port
- the component should populate the fields of this structure. When
- When nPort is an input port the component should review the setup
- provided by the component with the output port.
- @return OMX_ERRORTYPE
- If the command successfully executes, the return code will be
- OMX_ErrorNone. Otherwise the appropriate OMX error will be returned.
- @ingroup tun
- */
-
- OMX_ERRORTYPE (*ComponentTunnelRequest)(
- OMX_IN OMX_HANDLETYPE hComp,
- OMX_IN OMX_U32 nPort,
- OMX_IN OMX_HANDLETYPE hTunneledComp,
- OMX_IN OMX_U32 nTunneledPort,
- OMX_INOUT OMX_TUNNELSETUPTYPE* pTunnelSetup);
-
- /** refer to OMX_UseBuffer in OMX_core.h or the OMX IL
- specification for details on the UseBuffer method.
- @ingroup buf
- */
- OMX_ERRORTYPE (*UseBuffer)(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_INOUT OMX_BUFFERHEADERTYPE** ppBufferHdr,
- OMX_IN OMX_U32 nPortIndex,
- OMX_IN OMX_PTR pAppPrivate,
- OMX_IN OMX_U32 nSizeBytes,
- OMX_IN OMX_U8* pBuffer);
-
- /** refer to OMX_AllocateBuffer in OMX_core.h or the OMX IL
- specification for details on the AllocateBuffer method.
- @ingroup buf
- */
- OMX_ERRORTYPE (*AllocateBuffer)(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_INOUT OMX_BUFFERHEADERTYPE** ppBuffer,
- OMX_IN OMX_U32 nPortIndex,
- OMX_IN OMX_PTR pAppPrivate,
- OMX_IN OMX_U32 nSizeBytes);
-
- /** refer to OMX_FreeBuffer in OMX_core.h or the OMX IL
- specification for details on the FreeBuffer method.
- @ingroup buf
- */
- OMX_ERRORTYPE (*FreeBuffer)(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_U32 nPortIndex,
- OMX_IN OMX_BUFFERHEADERTYPE* pBuffer);
-
- /** refer to OMX_EmptyThisBuffer in OMX_core.h or the OMX IL
- specification for details on the EmptyThisBuffer method.
- @ingroup buf
- */
- OMX_ERRORTYPE (*EmptyThisBuffer)(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_BUFFERHEADERTYPE* pBuffer);
-
- /** refer to OMX_FillThisBuffer in OMX_core.h or the OMX IL
- specification for details on the FillThisBuffer method.
- @ingroup buf
- */
- OMX_ERRORTYPE (*FillThisBuffer)(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_BUFFERHEADERTYPE* pBuffer);
-
- /** The SetCallbacks method is used by the core to specify the callback
- structure from the application to the component. This is a blocking
- call. The component will return from this call within 5 msec.
- @param [in] hComponent
- Handle of the component to be accessed. This is the component
- handle returned by the call to the GetHandle function.
- @param [in] pCallbacks
- pointer to an OMX_CALLBACKTYPE structure used to provide the
- callback information to the component
- @param [in] pAppData
- pointer to an application defined value. It is anticipated that
- the application will pass a pointer to a data structure or a "this
- pointer" in this area to allow the callback (in the application)
- to determine the context of the call
- @return OMX_ERRORTYPE
- If the command successfully executes, the return code will be
- OMX_ErrorNone. Otherwise the appropriate OMX error will be returned.
- */
- OMX_ERRORTYPE (*SetCallbacks)(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_CALLBACKTYPE* pCallbacks,
- OMX_IN OMX_PTR pAppData);
-
- /** ComponentDeInit method is used to deinitialize the component
- providing a means to free any resources allocated at component
- initialization. NOTE: After this call the component handle is
- not valid for further use.
- @param [in] hComponent
- Handle of the component to be accessed. This is the component
- handle returned by the call to the GetHandle function.
- @return OMX_ERRORTYPE
- If the command successfully executes, the return code will be
- OMX_ErrorNone. Otherwise the appropriate OMX error will be returned.
- */
- OMX_ERRORTYPE (*ComponentDeInit)(
- OMX_IN OMX_HANDLETYPE hComponent);
-
- /** @ingroup buf */
- OMX_ERRORTYPE (*UseEGLImage)(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_INOUT OMX_BUFFERHEADERTYPE** ppBufferHdr,
- OMX_IN OMX_U32 nPortIndex,
- OMX_IN OMX_PTR pAppPrivate,
- OMX_IN void* eglImage);
-
- OMX_ERRORTYPE (*ComponentRoleEnum)(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_OUT OMX_U8 *cRole,
- OMX_IN OMX_U32 nIndex);
-
-} OMX_COMPONENTTYPE;
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
-/* File EOF */
--- a/omxil/omxilapi/v1_x/OMX_ContentPipe.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,195 +0,0 @@
-/*
- * Copyright (c) 2008 The Khronos Group Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject
- * to the following conditions:
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- */
-
-/** OMX_ContentPipe.h - OpenMax IL version 1.1.2
- * The OMX_ContentPipe header file contains the definitions used to define
- * the public interface for content piples. This header file is intended to
- * be used by the component.
- */
-
-#ifndef OMX_CONTENTPIPE_H
-#define OMX_CONTENTPIPE_H
-
-#ifndef KD_EACCES
-/* OpenKODE error codes. CPResult values may be zero (indicating success
- or one of the following values) */
-#define KD_EACCES (1)
-#define KD_EADDRINUSE (2)
-#define KD_EAGAIN (5)
-#define KD_EBADF (7)
-#define KD_EBUSY (8)
-#define KD_ECONNREFUSED (9)
-#define KD_ECONNRESET (10)
-#define KD_EDEADLK (11)
-#define KD_EDESTADDRREQ (12)
-#define KD_ERANGE (35)
-#define KD_EEXIST (13)
-#define KD_EFBIG (14)
-#define KD_EHOSTUNREACH (15)
-#define KD_EINVAL (17)
-#define KD_EIO (18)
-#define KD_EISCONN (20)
-#define KD_EISDIR (21)
-#define KD_EMFILE (22)
-#define KD_ENAMETOOLONG (23)
-#define KD_ENOENT (24)
-#define KD_ENOMEM (25)
-#define KD_ENOSPC (26)
-#define KD_ENOSYS (27)
-#define KD_ENOTCONN (28)
-#define KD_EPERM (33)
-#define KD_ETIMEDOUT (36)
-#define KD_EILSEQ (19)
-#endif
-
-/** Map types from OMX standard types only here so interface is as generic as possible. */
-typedef OMX_U32 CPresult;
-typedef char * CPstring;
-typedef void * CPhandle;
-typedef OMX_U32 CPuint;
-typedef OMX_S32 CPint;
-typedef char CPbyte;
-typedef OMX_BOOL CPbool;
-
-/** enumeration of origin types used in the CP_PIPETYPE's Seek function
- * @ingroup cp
- */
-typedef enum CP_ORIGINTYPE {
- CP_OriginBegin,
- CP_OriginCur,
- CP_OriginEnd,
- CP_OriginKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- CP_OriginVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- CP_OriginMax = 0X7FFFFFFF
-} CP_ORIGINTYPE;
-
-/** enumeration of contact access types used in the CP_PIPETYPE's Open function
- * @ingroup cp
- */
-typedef enum CP_ACCESSTYPE {
- CP_AccessRead,
- CP_AccessWrite,
- CP_AccessReadWrite ,
- CP_AccessKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- CP_AccessVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- CP_AccessMax = 0X7FFFFFFF
-} CP_ACCESSTYPE;
-
-/** enumeration of results returned by the CP_PIPETYPE's CheckAvailableBytes function
- * @ingroup cp
- */
-typedef enum CP_CHECKBYTESRESULTTYPE
-{
- CP_CheckBytesOk, /**< There are at least the request number
- of bytes available */
- CP_CheckBytesNotReady, /**< The pipe is still retrieving bytes
- and presently lacks sufficient bytes.
- Client will be called when they are
- sufficient bytes are available. */
- CP_CheckBytesInsufficientBytes , /**< The pipe has retrieved all bytes
- but those available are less than those
- requested */
- CP_CheckBytesAtEndOfStream, /**< The pipe has reached the end of stream
- and no more bytes are available. */
- CP_CheckBytesOutOfBuffers, /**< All read/write buffers are currently in use. */
- CP_CheckBytesKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- CP_CheckBytesVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- CP_CheckBytesMax = 0X7FFFFFFF
-} CP_CHECKBYTESRESULTTYPE;
-
-/** enumeration of content pipe events sent to the client callback.
- * @ingroup cp
- */
-typedef enum CP_EVENTTYPE{
- CP_BytesAvailable, /** bytes requested in a CheckAvailableBytes call are now available*/
- CP_Overflow, /** enumeration of content pipe events sent to the client callback*/
- CP_PipeDisconnected , /** enumeration of content pipe events sent to the client callback*/
- CP_EventKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- CP_EventVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- CP_EventMax = 0X7FFFFFFF
-} CP_EVENTTYPE;
-
-/** content pipe definition
- * @ingroup cp
- */
-typedef struct CP_PIPETYPE
-{
- /** Open a content stream for reading or writing. */
- CPresult (*Open)( CPhandle* hContent, CPstring szURI, CP_ACCESSTYPE eAccess );
-
- /** Close a content stream. */
- CPresult (*Close)( CPhandle hContent );
-
- /** Create a content source and open it for writing. */
- CPresult (*Create)( CPhandle *hContent, CPstring szURI );
-
- /** Check the that specified number of bytes are available for reading or writing (depending on access type).*/
- CPresult (*CheckAvailableBytes)( CPhandle hContent, CPuint nBytesRequested, CP_CHECKBYTESRESULTTYPE *eResult );
-
- /** Seek to certain position in the content relative to the specified origin. */
- CPresult (*SetPosition)( CPhandle hContent, CPint nOffset, CP_ORIGINTYPE eOrigin);
-
- /** Retrieve the current position relative to the start of the content. */
- CPresult (*GetPosition)( CPhandle hContent, CPuint *pPosition);
-
- /** Retrieve data of the specified size from the content stream (advance content pointer by size of data).
- Note: pipe client provides pointer. This function is appropriate for small high frequency reads. */
- CPresult (*Read)( CPhandle hContent, CPbyte *pData, CPuint nSize);
-
- /** Retrieve a buffer allocated by the pipe that contains the requested number of bytes.
- Buffer contains the next block of bytes, as specified by nSize, of the content. nSize also
- returns the size of the block actually read. Content pointer advances the by the returned size.
- Note: pipe provides pointer. This function is appropriate for large reads. The client must call
- ReleaseReadBuffer when done with buffer.
-
- In some cases the requested block may not reside in contiguous memory within the
- pipe implementation. For instance if the pipe leverages a circular buffer then the requested
- block may straddle the boundary of the circular buffer. By default a pipe implementation
- performs a copy in this case to provide the block to the pipe client in one contiguous buffer.
- If, however, the client sets bForbidCopy, then the pipe returns only those bytes preceding the memory
- boundary. Here the client may retrieve the data in segments over successive calls. */
- CPresult (*ReadBuffer)( CPhandle hContent, CPbyte **ppBuffer, CPuint *nSize, CPbool bForbidCopy);
-
- /** Release a buffer obtained by ReadBuffer back to the pipe. */
- CPresult (*ReleaseReadBuffer)(CPhandle hContent, CPbyte *pBuffer);
-
- /** Write data of the specified size to the content (advance content pointer by size of data).
- Note: pipe client provides pointer. This function is appropriate for small high frequency writes. */
- CPresult (*Write)( CPhandle hContent, CPbyte *data, CPuint nSize);
-
- /** Retrieve a buffer allocated by the pipe used to write data to the content.
- Client will fill buffer with output data. Note: pipe provides pointer. This function is appropriate
- for large writes. The client must call WriteBuffer when done it has filled the buffer with data.*/
- CPresult (*GetWriteBuffer)( CPhandle hContent, CPbyte **ppBuffer, CPuint nSize);
-
- /** Deliver a buffer obtained via GetWriteBuffer to the pipe. Pipe will write the
- the contents of the buffer to content and advance content pointer by the size of the buffer */
- CPresult (*WriteBuffer)( CPhandle hContent, CPbyte *pBuffer, CPuint nFilledSize);
-
- /** Register a per-handle client callback with the content pipe. */
- CPresult (*RegisterCallback)( CPhandle hContent, CPresult (*ClientCallback)(CP_EVENTTYPE eEvent, CPuint iParam));
-
-} CP_PIPETYPE;
-
-#endif
-
--- a/omxil/omxilapi/v1_x/OMX_Core.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1431 +0,0 @@
-/*
- * Copyright (c) 2008 The Khronos Group Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject
- * to the following conditions:
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- */
-
-/** OMX_Core.h - OpenMax IL version 1.1.2
- * The OMX_Core header file contains the definitions used by both the
- * application and the component to access common items.
- */
-
-#ifndef OMX_Core_h
-#define OMX_Core_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-/* Each OMX header shall include all required header files to allow the
- * header to compile without errors. The includes below are required
- * for this header file to compile successfully
- */
-
-#include <openmax/il/khronos/v1_x/OMX_Index.h>
-
-
-/** The OMX_COMMANDTYPE enumeration is used to specify the action in the
- * OMX_SendCommand macro.
- * @ingroup core
- */
-typedef enum OMX_COMMANDTYPE
-{
- OMX_CommandStateSet, /**< Change the component state */
- OMX_CommandFlush, /**< Flush the data queue(s) of a component */
- OMX_CommandPortDisable, /**< Disable a port on a component. */
- OMX_CommandPortEnable, /**< Enable a port on a component. */
- OMX_CommandMarkBuffer, /**< Mark a component/buffer for observation */
- OMX_CommandKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_CommandVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_CommandMax = 0X7FFFFFFF
-} OMX_COMMANDTYPE;
-
-
-
-/** The OMX_STATETYPE enumeration is used to indicate or change the component
- * state. This enumeration reflects the current state of the component when
- * used with the OMX_GetState macro or becomes the parameter in a state change
- * command when used with the OMX_SendCommand macro.
- *
- * The component will be in the Loaded state after the component is initially
- * loaded into memory. In the Loaded state, the component is not allowed to
- * allocate or hold resources other than to build it's internal parameter
- * and configuration tables. The application will send one or more
- * SetParameters/GetParameters and SetConfig/GetConfig commands to the
- * component and the component will record each of these parameter and
- * configuration changes for use later. When the application sends the
- * Idle command, the component will acquire the resources needed for the
- * specified configuration and will transition to the idle state if the
- * allocation is successful. If the component cannot successfully
- * transition to the idle state for any reason, the state of the component
- * shall be fully rolled back to the Loaded state (e.g. all allocated
- * resources shall be released). When the component receives the command
- * to go to the Executing state, it shall begin processing buffers by
- * sending all input buffers it holds to the application. While
- * the component is in the Idle state, the application may also send the
- * Pause command. If the component receives the pause command while in the
- * Idle state, the component shall send all input buffers it holds to the
- * application, but shall not begin processing buffers. This will allow the
- * application to prefill buffers.
- *
- * @ingroup comp
- */
-
-typedef enum OMX_STATETYPE
-{
- OMX_StateInvalid, /**< component has detected that it's internal data
- structures are corrupted to the point that
- it cannot determine it's state properly */
- OMX_StateLoaded, /**< component has been loaded but has not completed
- initialization. The OMX_SetParameter macro
- and the OMX_GetParameter macro are the only
- valid macros allowed to be sent to the
- component in this state. */
- OMX_StateIdle, /**< component initialization has been completed
- successfully and the component is ready to
- to start. */
- OMX_StateExecuting, /**< component has accepted the start command and
- is processing data (if data is available) */
- OMX_StatePause, /**< component has received pause command */
- OMX_StateWaitForResources, /**< component is waiting for resources, either after
- preemption or before it gets the resources requested.
- See specification for complete details. */
- OMX_StateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_StateVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_StateMax = 0X7FFFFFFF
-} OMX_STATETYPE;
-
-/** The OMX_ERRORTYPE enumeration defines the standard OMX Errors. These
- * errors should cover most of the common failure cases. However,
- * vendors are free to add additional error messages of their own as
- * long as they follow these rules:
- * 1. Vendor error messages shall be in the range of 0x90000000 to
- * 0x9000FFFF.
- * 2. Vendor error messages shall be defined in a header file provided
- * with the component. No error messages are allowed that are
- * not defined.
- */
-typedef enum OMX_ERRORTYPE
-{
- OMX_ErrorNone = 0,
-
- /** There were insufficient resources to perform the requested operation */
- OMX_ErrorInsufficientResources = (OMX_S32) 0x80001000,
-
- /** There was an error, but the cause of the error could not be determined */
- OMX_ErrorUndefined = (OMX_S32) 0x80001001,
-
- /** The component name string was not valid */
- OMX_ErrorInvalidComponentName = (OMX_S32) 0x80001002,
-
- /** No component with the specified name string was found */
- OMX_ErrorComponentNotFound = (OMX_S32) 0x80001003,
-
- /** The component specified did not have a "OMX_ComponentInit" or
- "OMX_ComponentDeInit entry point */
- OMX_ErrorInvalidComponent = (OMX_S32) 0x80001004,
-
- /** One or more parameters were not valid */
- OMX_ErrorBadParameter = (OMX_S32) 0x80001005,
-
- /** The requested function is not implemented */
- OMX_ErrorNotImplemented = (OMX_S32) 0x80001006,
-
- /** The buffer was emptied before the next buffer was ready */
- OMX_ErrorUnderflow = (OMX_S32) 0x80001007,
-
- /** The buffer was not available when it was needed */
- OMX_ErrorOverflow = (OMX_S32) 0x80001008,
-
- /** The hardware failed to respond as expected */
- OMX_ErrorHardware = (OMX_S32) 0x80001009,
-
- /** The component is in the state OMX_StateInvalid */
- OMX_ErrorInvalidState = (OMX_S32) 0x8000100A,
-
- /** Stream is found to be corrupt */
- OMX_ErrorStreamCorrupt = (OMX_S32) 0x8000100B,
-
- /** Ports being connected are not compatible */
- OMX_ErrorPortsNotCompatible = (OMX_S32) 0x8000100C,
-
- /** Resources allocated to an idle component have been
- lost resulting in the component returning to the loaded state */
- OMX_ErrorResourcesLost = (OMX_S32) 0x8000100D,
-
- /** No more indicies can be enumerated */
- OMX_ErrorNoMore = (OMX_S32) 0x8000100E,
-
- /** The component detected a version mismatch */
- OMX_ErrorVersionMismatch = (OMX_S32) 0x8000100F,
-
- /** The component is not ready to return data at this time */
- OMX_ErrorNotReady = (OMX_S32) 0x80001010,
-
- /** There was a timeout that occurred */
- OMX_ErrorTimeout = (OMX_S32) 0x80001011,
-
- /** This error occurs when trying to transition into the state you are already in */
- OMX_ErrorSameState = (OMX_S32) 0x80001012,
-
- /** Resources allocated to an executing or paused component have been
- preempted, causing the component to return to the idle state */
- OMX_ErrorResourcesPreempted = (OMX_S32) 0x80001013,
-
- /** A non-supplier port sends this error to the IL client (via the EventHandler callback)
- during the allocation of buffers (on a transition from the LOADED to the IDLE state or
- on a port restart) when it deems that it has waited an unusually long time for the supplier
- to send it an allocated buffer via a UseBuffer call. */
- OMX_ErrorPortUnresponsiveDuringAllocation = (OMX_S32) 0x80001014,
-
- /** A non-supplier port sends this error to the IL client (via the EventHandler callback)
- during the deallocation of buffers (on a transition from the IDLE to LOADED state or
- on a port stop) when it deems that it has waited an unusually long time for the supplier
- to request the deallocation of a buffer header via a FreeBuffer call. */
- OMX_ErrorPortUnresponsiveDuringDeallocation = (OMX_S32) 0x80001015,
-
- /** A supplier port sends this error to the IL client (via the EventHandler callback)
- during the stopping of a port (either on a transition from the IDLE to LOADED
- state or a port stop) when it deems that it has waited an unusually long time for
- the non-supplier to return a buffer via an EmptyThisBuffer or FillThisBuffer call. */
- OMX_ErrorPortUnresponsiveDuringStop = (OMX_S32) 0x80001016,
-
- /** Attempting a state transtion that is not allowed */
- OMX_ErrorIncorrectStateTransition = (OMX_S32) 0x80001017,
-
- /* Attempting a command that is not allowed during the present state. */
- OMX_ErrorIncorrectStateOperation = (OMX_S32) 0x80001018,
-
- /** The values encapsulated in the parameter or config structure are not supported. */
- OMX_ErrorUnsupportedSetting = (OMX_S32) 0x80001019,
-
- /** The parameter or config indicated by the given index is not supported. */
- OMX_ErrorUnsupportedIndex = (OMX_S32) 0x8000101A,
-
- /** The port index supplied is incorrect. */
- OMX_ErrorBadPortIndex = (OMX_S32) 0x8000101B,
-
- /** The port has lost one or more of its buffers and it thus unpopulated. */
- OMX_ErrorPortUnpopulated = (OMX_S32) 0x8000101C,
-
- /** Component suspended due to temporary loss of resources */
- OMX_ErrorComponentSuspended = (OMX_S32) 0x8000101D,
-
- /** Component suspended due to an inability to acquire dynamic resources */
- OMX_ErrorDynamicResourcesUnavailable = (OMX_S32) 0x8000101E,
-
- /** When the macroblock error reporting is enabled the component returns new error
- for every frame that has errors */
- OMX_ErrorMbErrorsInFrame = (OMX_S32) 0x8000101F,
-
- /** A component reports this error when it cannot parse or determine the format of an input stream. */
- OMX_ErrorFormatNotDetected = (OMX_S32) 0x80001020,
-
- /** The content open operation failed. */
- OMX_ErrorContentPipeOpenFailed = (OMX_S32) 0x80001021,
-
- /** The content creation operation failed. */
- OMX_ErrorContentPipeCreationFailed = (OMX_S32) 0x80001022,
-
- /** Separate table information is being used */
- OMX_ErrorSeperateTablesUsed = (OMX_S32) 0x80001023,
-
- /** Tunneling is unsupported by the component*/
- OMX_ErrorTunnelingUnsupported = (OMX_S32) 0x80001024,
-
- OMX_ErrorKhronosExtensions = (OMX_S32)0x8F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_ErrorVendorStartUnused = (OMX_S32)0x90000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_ErrorMax = 0x7FFFFFFF
-} OMX_ERRORTYPE;
-
-/** @ingroup core */
-typedef OMX_ERRORTYPE (* OMX_COMPONENTINITTYPE)(OMX_IN OMX_HANDLETYPE hComponent);
-
-/** @ingroup core */
-typedef struct OMX_COMPONENTREGISTERTYPE
-{
- const char * pName; /* Component name, 128 byte limit (including '\0') applies */
- OMX_COMPONENTINITTYPE pInitialize; /* Component instance initialization function */
-} OMX_COMPONENTREGISTERTYPE;
-
-/** @ingroup core */
-extern OMX_COMPONENTREGISTERTYPE OMX_ComponentRegistered[];
-
-/** @ingroup rpm */
-typedef struct OMX_PRIORITYMGMTTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nGroupPriority; /**< Priority of the component group */
- OMX_U32 nGroupID; /**< ID of the component group */
-} OMX_PRIORITYMGMTTYPE;
-
-/* Component name and Role names are limited to 128 characters including the terminating '\0'. */
-#define OMX_MAX_STRINGNAME_SIZE 128
-
-/** @ingroup comp */
-typedef struct OMX_PARAM_COMPONENTROLETYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U8 cRole[OMX_MAX_STRINGNAME_SIZE]; /**< name of standard component which defines component role */
-} OMX_PARAM_COMPONENTROLETYPE;
-
-/** End of Stream Buffer Flag:
- *
- * A component sets EOS when it has no more data to emit on a particular
- * output port. Thus an output port shall set EOS on the last buffer it
- * emits. A component's determination of when an output port should
- * cease sending data is implemenation specific.
- * @ingroup buf
- */
-
-#define OMX_BUFFERFLAG_EOS 0x00000001
-
-/** Start Time Buffer Flag:
- *
- * The source of a stream (e.g. a demux component) sets the STARTTIME
- * flag on the buffer that contains the starting timestamp for the
- * stream. The starting timestamp corresponds to the first data that
- * should be displayed at startup or after a seek.
- * The first timestamp of the stream is not necessarily the start time.
- * For instance, in the case of a seek to a particular video frame,
- * the target frame may be an interframe. Thus the first buffer of
- * the stream will be the intra-frame preceding the target frame and
- * the starttime will occur with the target frame (with any other
- * required frames required to reconstruct the target intervening).
- *
- * The STARTTIME flag is directly associated with the buffer's
- * timestamp ' thus its association to buffer data and its
- * propagation is identical to the timestamp's.
- *
- * When a Sync Component client receives a buffer with the
- * STARTTIME flag it shall perform a SetConfig on its sync port
- * using OMX_ConfigTimeClientStartTime and passing the buffer's
- * timestamp.
- *
- * @ingroup buf
- */
-
-#define OMX_BUFFERFLAG_STARTTIME 0x00000002
-
-
-
-/** Decode Only Buffer Flag:
- *
- * The source of a stream (e.g. a demux component) sets the DECODEONLY
- * flag on any buffer that should shall be decoded but should not be
- * displayed. This flag is used, for instance, when a source seeks to
- * a target interframe that requires the decode of frames preceding the
- * target to facilitate the target's reconstruction. In this case the
- * source would emit the frames preceding the target downstream
- * but mark them as decode only.
- *
- * The DECODEONLY is associated with buffer data and propagated in a
- * manner identical to the buffer timestamp.
- *
- * A component that renders data should ignore all buffers with
- * the DECODEONLY flag set.
- *
- * @ingroup buf
- */
-
-#define OMX_BUFFERFLAG_DECODEONLY 0x00000004
-
-
-/* Data Corrupt Flag: This flag is set when the IL client believes the data in the associated buffer is corrupt
- * @ingroup buf
- */
-
-#define OMX_BUFFERFLAG_DATACORRUPT 0x00000008
-
-/* End of Frame: The buffer contains exactly one end of frame and no data
- * occurs after the end of frame. This flag is an optional hint. The absence
- * of this flag does not imply the absence of an end of frame within the buffer.
- * @ingroup buf
-*/
-#define OMX_BUFFERFLAG_ENDOFFRAME 0x00000010
-
-/* Sync Frame Flag: This flag is set when the buffer content contains a coded sync frame '
- * a frame that has no dependency on any other frame information
- * @ingroup buf
- */
-#define OMX_BUFFERFLAG_SYNCFRAME 0x00000020
-
-/* Extra data present flag: there is extra data appended to the data stream
- * residing in the buffer
- * @ingroup buf
- */
-#define OMX_BUFFERFLAG_EXTRADATA 0x00000040
-
-/** Codec Config Buffer Flag:
-* OMX_BUFFERFLAG_CODECCONFIG is an optional flag that is set by an
-* output port when all bytes in the buffer form part or all of a set of
-* codec specific configuration data. Examples include SPS/PPS nal units
-* for OMX_VIDEO_CodingAVC or AudioSpecificConfig data for
-* OMX_AUDIO_CodingAAC. Any component that for a given stream sets
-* OMX_BUFFERFLAG_CODECCONFIG shall not mix codec configuration bytes
-* with frame data in the same buffer, and shall send all buffers
-* containing codec configuration bytes before any buffers containing
-* frame data that those configurations bytes describe.
-* If the stream format for a particular codec has a frame specific
-* header at the start of each frame, for example OMX_AUDIO_CodingMP3 or
-* OMX_AUDIO_CodingAAC in ADTS mode, then these shall be presented as
-* normal without setting OMX_BUFFERFLAG_CODECCONFIG.
- * @ingroup buf
- */
-#define OMX_BUFFERFLAG_CODECCONFIG 0x00000080
-
-
-
-/** @ingroup buf */
-typedef struct OMX_BUFFERHEADERTYPE
-{
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U8* pBuffer; /**< Pointer to actual block of memory
- that is acting as the buffer */
- OMX_U32 nAllocLen; /**< size of the buffer allocated, in bytes */
- OMX_U32 nFilledLen; /**< number of bytes currently in the
- buffer */
- OMX_U32 nOffset; /**< start offset of valid data in bytes from
- the start of the buffer */
- OMX_PTR pAppPrivate; /**< pointer to any data the application
- wants to associate with this buffer */
- OMX_PTR pPlatformPrivate; /**< pointer to any data the platform
- wants to associate with this buffer */
- OMX_PTR pInputPortPrivate; /**< pointer to any data the input port
- wants to associate with this buffer */
- OMX_PTR pOutputPortPrivate; /**< pointer to any data the output port
- wants to associate with this buffer */
- OMX_HANDLETYPE hMarkTargetComponent; /**< The component that will generate a
- mark event upon processing this buffer. */
- OMX_PTR pMarkData; /**< Application specific data associated with
- the mark sent on a mark event to disambiguate
- this mark from others. */
- OMX_U32 nTickCount; /**< Optional entry that the component and
- application can update with a tick count
- when they access the component. This
- value should be in microseconds. Since
- this is a value relative to an arbitrary
- starting point, this value cannot be used
- to determine absolute time. This is an
- optional entry and not all components
- will update it.*/
- OMX_TICKS nTimeStamp; /**< Timestamp corresponding to the sample
- starting at the first logical sample
- boundary in the buffer. Timestamps of
- successive samples within the buffer may
- be inferred by adding the duration of the
- of the preceding buffer to the timestamp
- of the preceding buffer.*/
- OMX_U32 nFlags; /**< buffer specific flags */
- OMX_U32 nOutputPortIndex; /**< The index of the output port (if any) using
- this buffer */
- OMX_U32 nInputPortIndex; /**< The index of the input port (if any) using
- this buffer */
-} OMX_BUFFERHEADERTYPE;
-
-/** The OMX_EXTRADATATYPE enumeration is used to define the
- * possible extra data payload types.
- * NB: this enum is binary backwards compatible with the previous
- * OMX_EXTRADATA_QUANT define. This should be replaced with
- * OMX_ExtraDataQuantization.
- */
-typedef enum OMX_EXTRADATATYPE
-{
- OMX_ExtraDataNone = 0, /**< Indicates that no more extra data sections follow */
- OMX_ExtraDataQuantization, /**< The data payload contains quantization data */
- OMX_ExtraDataKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_ExtraDataVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_ExtraDataMax = 0x7FFFFFFF
-} OMX_EXTRADATATYPE;
-
-
-typedef struct OMX_OTHER_EXTRADATATYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_EXTRADATATYPE eType; /* Extra Data type */
- OMX_U32 nDataSize; /* Size of the supporting data to follow */
- OMX_U8 data[1]; /* Supporting data hint */
-} OMX_OTHER_EXTRADATATYPE;
-
-/** @ingroup comp */
-typedef struct OMX_PORT_PARAM_TYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPorts; /**< The number of ports for this component */
- OMX_U32 nStartPortNumber; /** first port number for this type of port */
-} OMX_PORT_PARAM_TYPE;
-
-/** @ingroup comp */
-typedef enum OMX_EVENTTYPE
-{
- OMX_EventCmdComplete, /**< component has sucessfully completed a command */
- OMX_EventError, /**< component has detected an error condition */
- OMX_EventMark, /**< component has detected a buffer mark */
- OMX_EventPortSettingsChanged, /**< component is reported a port settings change */
- OMX_EventBufferFlag, /**< component has detected an EOS */
- OMX_EventResourcesAcquired, /**< component has been granted resources and is
- automatically starting the state change from
- OMX_StateWaitForResources to OMX_StateIdle. */
- OMX_EventComponentResumed, /**< Component resumed due to reacquisition of resources */
- OMX_EventDynamicResourcesAvailable, /**< Component has acquired previously unavailable dynamic resources */
- OMX_EventPortFormatDetected, /**< Component has detected a supported format. */
- OMX_EventKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_EventVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_EventMax = 0x7FFFFFFF
-} OMX_EVENTTYPE;
-
-typedef struct OMX_CALLBACKTYPE
-{
- /** The EventHandler method is used to notify the application when an
- event of interest occurs. Events are defined in the OMX_EVENTTYPE
- enumeration. Please see that enumeration for details of what will
- be returned for each type of event. Callbacks should not return
- an error to the component, so if an error occurs, the application
- shall handle it internally. This is a blocking call.
-
- The application should return from this call within 5 msec to avoid
- blocking the component for an excessively long period of time.
-
- @param hComponent
- handle of the component to access. This is the component
- handle returned by the call to the GetHandle function.
- @param pAppData
- pointer to an application defined value that was provided in the
- pAppData parameter to the OMX_GetHandle method for the component.
- This application defined value is provided so that the application
- can have a component specific context when receiving the callback.
- @param eEvent
- Event that the component wants to notify the application about.
- @param nData1
- nData will be the OMX_ERRORTYPE for an error event and will be
- an OMX_COMMANDTYPE for a command complete event and OMX_INDEXTYPE for a OMX_PortSettingsChanged event.
- @param nData2
- nData2 will hold further information related to the event. Can be OMX_STATETYPE for
- a OMX_CommandStateSet command or port index for a OMX_PortSettingsChanged event.
- Default value is 0 if not used. )
- @param pEventData
- Pointer to additional event-specific data (see spec for meaning).
- */
-
- OMX_ERRORTYPE (*EventHandler)(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_PTR pAppData,
- OMX_IN OMX_EVENTTYPE eEvent,
- OMX_IN OMX_U32 nData1,
- OMX_IN OMX_U32 nData2,
- OMX_IN OMX_PTR pEventData);
-
- /** The EmptyBufferDone method is used to return emptied buffers from an
- input port back to the application for reuse. This is a blocking call
- so the application should not attempt to refill the buffers during this
- call, but should queue them and refill them in another thread. There
- is no error return, so the application shall handle any errors generated
- internally.
-
- The application should return from this call within 5 msec.
-
- @param hComponent
- handle of the component to access. This is the component
- handle returned by the call to the GetHandle function.
- @param pAppData
- pointer to an application defined value that was provided in the
- pAppData parameter to the OMX_GetHandle method for the component.
- This application defined value is provided so that the application
- can have a component specific context when receiving the callback.
- @param pBuffer
- pointer to an OMX_BUFFERHEADERTYPE structure allocated with UseBuffer
- or AllocateBuffer indicating the buffer that was emptied.
- @ingroup buf
- */
- OMX_ERRORTYPE (*EmptyBufferDone)(
- OMX_IN OMX_HANDLETYPE hComponent,
- OMX_IN OMX_PTR pAppData,
- OMX_IN OMX_BUFFERHEADERTYPE* pBuffer);
-
- /** The FillBufferDone method is used to return filled buffers from an
- output port back to the application for emptying and then reuse.
- This is a blocking call so the application should not attempt to
- empty the buffers during this call, but should queue the buffers
- and empty them in another thread. There is no error return, so
- the application shall handle any errors generated internally. The
- application shall also update the buffer header to indicate the
- number of bytes placed into the buffer.
-
- The application should return from this call within 5 msec.
-
- @param hComponent
- handle of the component to access. This is the component
- handle returned by the call to the GetHandle function.
- @param pAppData
- pointer to an application defined value that was provided in the
- pAppData parameter to the OMX_GetHandle method for the component.
- This application defined value is provided so that the application
- can have a component specific context when receiving the callback.
- @param pBuffer
- pointer to an OMX_BUFFERHEADERTYPE structure allocated with UseBuffer
- or AllocateBuffer indicating the buffer that was filled.
- @ingroup buf
- */
- OMX_ERRORTYPE (*FillBufferDone)(
- OMX_OUT OMX_HANDLETYPE hComponent,
- OMX_OUT OMX_PTR pAppData,
- OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
-
-} OMX_CALLBACKTYPE;
-
-/** The OMX_BUFFERSUPPLIERTYPE enumeration is used to dictate port supplier
- preference when tunneling between two ports.
- @ingroup tun buf
-*/
-typedef enum OMX_BUFFERSUPPLIERTYPE
-{
- OMX_BufferSupplyUnspecified = 0x0, /**< port supplying the buffers is unspecified,
- or don't care */
- OMX_BufferSupplyInput, /**< input port supplies the buffers */
- OMX_BufferSupplyOutput, /**< output port supplies the buffers */
- OMX_BufferSupplyKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_BufferSupplyVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_BufferSupplyMax = 0x7FFFFFFF
-} OMX_BUFFERSUPPLIERTYPE;
-
-
-/** buffer supplier parameter
- * @ingroup tun
- */
-typedef struct OMX_PARAM_BUFFERSUPPLIERTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_BUFFERSUPPLIERTYPE eBufferSupplier; /**< buffer supplier */
-} OMX_PARAM_BUFFERSUPPLIERTYPE;
-
-
-/**< indicates that buffers received by an input port of a tunnel
- may not modify the data in the buffers
- @ingroup tun
- */
-#define OMX_PORTTUNNELFLAG_READONLY 0x00000001
-
-
-/** The OMX_TUNNELSETUPTYPE structure is used to pass data from an output
- port to an input port as part the two ComponentTunnelRequest calls
- resulting from a OMX_SetupTunnel call from the IL Client.
- @ingroup tun
- */
-typedef struct OMX_TUNNELSETUPTYPE
-{
- OMX_U32 nTunnelFlags; /**< bit flags for tunneling */
- OMX_BUFFERSUPPLIERTYPE eSupplier; /**< supplier preference */
-} OMX_TUNNELSETUPTYPE;
-
-/* OMX Component headers is included to enable the core to use
- macros for functions into the component for OMX release 1.0.
- Developers should not access any structures or data from within
- the component header directly */
-/* TO BE REMOVED - #include <OMX_Component.h> */
-
-/** GetComponentVersion will return information about the component.
- This is a blocking call. This macro will go directly from the
- application to the component (via a core macro). The
- component will return from this call within 5 msec.
- @param [in] hComponent
- handle of component to execute the command
- @param [out] pComponentName
- pointer to an empty string of length 128 bytes. The component
- will write its name into this string. The name will be
- terminated by a single zero byte. The name of a component will
- be 127 bytes or less to leave room for the trailing zero byte.
- An example of a valid component name is "OMX.ABC.ChannelMixer\0".
- @param [out] pComponentVersion
- pointer to an OMX Version structure that the component will fill
- in. The component will fill in a value that indicates the
- component version. NOTE: the component version is NOT the same
- as the OMX Specification version (found in all structures). The
- component version is defined by the vendor of the component and
- its value is entirely up to the component vendor.
- @param [out] pSpecVersion
- pointer to an OMX Version structure that the component will fill
- in. The SpecVersion is the version of the specification that the
- component was built against. Please note that this value may or
- may not match the structure's version. For example, if the
- component was built against the 2.0 specification, but the
- application (which creates the structure is built against the
- 1.0 specification the versions would be different.
- @param [out] pComponentUUID
- pointer to the UUID of the component which will be filled in by
- the component. The UUID is a unique identifier that is set at
- RUN time for the component and is unique to each instantion of
- the component.
- @return OMX_ERRORTYPE
- If the command successfully executes, the return code will be
- OMX_ErrorNone. Otherwise the appropriate OMX error will be returned.
- @ingroup comp
- */
-#define OMX_GetComponentVersion( \
- hComponent, \
- pComponentName, \
- pComponentVersion, \
- pSpecVersion, \
- pComponentUUID) \
- ((OMX_COMPONENTTYPE*)hComponent)->GetComponentVersion( \
- hComponent, \
- pComponentName, \
- pComponentVersion, \
- pSpecVersion, \
- pComponentUUID) /* Macro End */
-
-
-/** Send a command to the component. This call is a non-blocking call.
- The component should check the parameters and then queue the command
- to the component thread to be executed. The component thread shall
- send the EventHandler() callback at the conclusion of the command.
- This macro will go directly from the application to the component (via
- a core macro). The component will return from this call within 5 msec.
-
- When the command is "OMX_CommandStateSet" the component will queue a
- state transition to the new state idenfied in nParam.
-
- When the command is "OMX_CommandFlush", to flush a port's buffer queues,
- the command will force the component to return all buffers NOT CURRENTLY
- BEING PROCESSED to the application, in the order in which the buffers
- were received.
-
- When the command is "OMX_CommandPortDisable" or
- "OMX_CommandPortEnable", the component's port (given by the value of
- nParam) will be stopped or restarted.
-
- When the command "OMX_CommandMarkBuffer" is used to mark a buffer, the
- pCmdData will point to a OMX_MARKTYPE structure containing the component
- handle of the component to examine the buffer chain for the mark. nParam1
- contains the index of the port on which the buffer mark is applied.
-
- Specification text for more details.
-
- @param [in] hComponent
- handle of component to execute the command
- @param [in] Cmd
- Command for the component to execute
- @param [in] nParam
- Parameter for the command to be executed. When Cmd has the value
- OMX_CommandStateSet, value is a member of OMX_STATETYPE. When Cmd has
- the value OMX_CommandFlush, value of nParam indicates which port(s)
- to flush. -1 is used to flush all ports a single port index will
- only flush that port. When Cmd has the value "OMX_CommandPortDisable"
- or "OMX_CommandPortEnable", the component's port is given by
- the value of nParam. When Cmd has the value "OMX_CommandMarkBuffer"
- the components pot is given by the value of nParam.
- @param [in] pCmdData
- Parameter pointing to the OMX_MARKTYPE structure when Cmd has the value
- "OMX_CommandMarkBuffer".
- @return OMX_ERRORTYPE
- If the command successfully executes, the return code will be
- OMX_ErrorNone. Otherwise the appropriate OMX error will be returned.
- @ingroup comp
- */
-#define OMX_SendCommand( \
- hComponent, \
- Cmd, \
- nParam, \
- pCmdData) \
- ((OMX_COMPONENTTYPE*)hComponent)->SendCommand( \
- hComponent, \
- Cmd, \
- nParam, \
- pCmdData) /* Macro End */
-
-
-/** The OMX_GetParameter macro will get one of the current parameter
- settings from the component. This macro cannot only be invoked when
- the component is in the OMX_StateInvalid state. The nParamIndex
- parameter is used to indicate which structure is being requested from
- the component. The application shall allocate the correct structure
- and shall fill in the structure size and version information before
- invoking this macro. When the parameter applies to a port, the
- caller shall fill in the appropriate nPortIndex value indicating the
- port on which the parameter applies. If the component has not had
- any settings changed, then the component should return a set of
- valid DEFAULT parameters for the component. This is a blocking
- call.
-
- The component should return from this call within 20 msec.
-
- @param [in] hComponent
- Handle of the component to be accessed. This is the component
- handle returned by the call to the OMX_GetHandle function.
- @param [in] nParamIndex
- Index of the structure to be filled. This value is from the
- OMX_INDEXTYPE enumeration.
- @param [in,out] pComponentParameterStructure
- Pointer to application allocated structure to be filled by the
- component.
- @return OMX_ERRORTYPE
- If the command successfully executes, the return code will be
- OMX_ErrorNone. Otherwise the appropriate OMX error will be returned.
- @ingroup comp
- */
-#define OMX_GetParameter( \
- hComponent, \
- nParamIndex, \
- pComponentParameterStructure) \
- ((OMX_COMPONENTTYPE*)hComponent)->GetParameter( \
- hComponent, \
- nParamIndex, \
- pComponentParameterStructure) /* Macro End */
-
-
-/** The OMX_SetParameter macro will send an initialization parameter
- structure to a component. Each structure shall be sent one at a time,
- in a separate invocation of the macro. This macro can only be
- invoked when the component is in the OMX_StateLoaded state, or the
- port is disabled (when the parameter applies to a port). The
- nParamIndex parameter is used to indicate which structure is being
- passed to the component. The application shall allocate the
- correct structure and shall fill in the structure size and version
- information (as well as the actual data) before invoking this macro.
- The application is free to dispose of this structure after the call
- as the component is required to copy any data it shall retain. This
- is a blocking call.
-
- The component should return from this call within 20 msec.
-
- @param [in] hComponent
- Handle of the component to be accessed. This is the component
- handle returned by the call to the OMX_GetHandle function.
- @param [in] nIndex
- Index of the structure to be sent. This value is from the
- OMX_INDEXTYPE enumeration.
- @param [in] pComponentParameterStructure
- pointer to application allocated structure to be used for
- initialization by the component.
- @return OMX_ERRORTYPE
- If the command successfully executes, the return code will be
- OMX_ErrorNone. Otherwise the appropriate OMX error will be returned.
- @ingroup comp
- */
-#define OMX_SetParameter( \
- hComponent, \
- nParamIndex, \
- pComponentParameterStructure) \
- ((OMX_COMPONENTTYPE*)hComponent)->SetParameter( \
- hComponent, \
- nParamIndex, \
- pComponentParameterStructure) /* Macro End */
-
-
-/** The OMX_GetConfig macro will get one of the configuration structures
- from a component. This macro can be invoked anytime after the
- component has been loaded. The nParamIndex call parameter is used to
- indicate which structure is being requested from the component. The
- application shall allocate the correct structure and shall fill in the
- structure size and version information before invoking this macro.
- If the component has not had this configuration parameter sent before,
- then the component should return a set of valid DEFAULT values for the
- component. This is a blocking call.
-
- The component should return from this call within 5 msec.
-
- @param [in] hComponent
- Handle of the component to be accessed. This is the component
- handle returned by the call to the OMX_GetHandle function.
- @param [in] nIndex
- Index of the structure to be filled. This value is from the
- OMX_INDEXTYPE enumeration.
- @param [in,out] pComponentConfigStructure
- pointer to application allocated structure to be filled by the
- component.
- @return OMX_ERRORTYPE
- If the command successfully executes, the return code will be
- OMX_ErrorNone. Otherwise the appropriate OMX error will be returned.
- @ingroup comp
-*/
-#define OMX_GetConfig( \
- hComponent, \
- nConfigIndex, \
- pComponentConfigStructure) \
- ((OMX_COMPONENTTYPE*)hComponent)->GetConfig( \
- hComponent, \
- nConfigIndex, \
- pComponentConfigStructure) /* Macro End */
-
-
-/** The OMX_SetConfig macro will send one of the configuration
- structures to a component. Each structure shall be sent one at a time,
- each in a separate invocation of the macro. This macro can be invoked
- anytime after the component has been loaded. The application shall
- allocate the correct structure and shall fill in the structure size
- and version information (as well as the actual data) before invoking
- this macro. The application is free to dispose of this structure after
- the call as the component is required to copy any data it shall retain.
- This is a blocking call.
-
- The component should return from this call within 5 msec.
-
- @param [in] hComponent
- Handle of the component to be accessed. This is the component
- handle returned by the call to the OMX_GetHandle function.
- @param [in] nConfigIndex
- Index of the structure to be sent. This value is from the
- OMX_INDEXTYPE enumeration above.
- @param [in] pComponentConfigStructure
- pointer to application allocated structure to be used for
- initialization by the component.
- @return OMX_ERRORTYPE
- If the command successfully executes, the return code will be
- OMX_ErrorNone. Otherwise the appropriate OMX error will be returned.
- @ingroup comp
- */
-#define OMX_SetConfig( \
- hComponent, \
- nConfigIndex, \
- pComponentConfigStructure) \
- ((OMX_COMPONENTTYPE*)hComponent)->SetConfig( \
- hComponent, \
- nConfigIndex, \
- pComponentConfigStructure) /* Macro End */
-
-
-/** The OMX_GetExtensionIndex macro will invoke a component to translate
- a vendor specific configuration or parameter string into an OMX
- structure index. There is no requirement for the vendor to support
- this command for the indexes already found in the OMX_INDEXTYPE
- enumeration (this is done to save space in small components). The
- component shall support all vendor supplied extension indexes not found
- in the master OMX_INDEXTYPE enumeration. This is a blocking call.
-
- The component should return from this call within 5 msec.
-
- @param [in] hComponent
- Handle of the component to be accessed. This is the component
- handle returned by the call to the GetHandle function.
- @param [in] cParameterName
- OMX_STRING that shall be less than 128 characters long including
- the trailing null byte. This is the string that will get
- translated by the component into a configuration index.
- @param [out] pIndexType
- a pointer to a OMX_INDEXTYPE to receive the index value.
- @return OMX_ERRORTYPE
- If the command successfully executes, the return code will be
- OMX_ErrorNone. Otherwise the appropriate OMX error will be returned.
- @ingroup comp
- */
-#define OMX_GetExtensionIndex( \
- hComponent, \
- cParameterName, \
- pIndexType) \
- ((OMX_COMPONENTTYPE*)hComponent)->GetExtensionIndex( \
- hComponent, \
- cParameterName, \
- pIndexType) /* Macro End */
-
-
-/** The OMX_GetState macro will invoke the component to get the current
- state of the component and place the state value into the location
- pointed to by pState.
-
- The component should return from this call within 5 msec.
-
- @param [in] hComponent
- Handle of the component to be accessed. This is the component
- handle returned by the call to the OMX_GetHandle function.
- @param [out] pState
- pointer to the location to receive the state. The value returned
- is one of the OMX_STATETYPE members
- @return OMX_ERRORTYPE
- If the command successfully executes, the return code will be
- OMX_ErrorNone. Otherwise the appropriate OMX error will be returned.
- @ingroup comp
- */
-#define OMX_GetState( \
- hComponent, \
- pState) \
- ((OMX_COMPONENTTYPE*)hComponent)->GetState( \
- hComponent, \
- pState) /* Macro End */
-
-
-/** The OMX_UseBuffer macro will request that the component use
- a buffer (and allocate its own buffer header) already allocated
- by another component, or by the IL Client. This is a blocking
- call.
-
- The component should return from this call within 20 msec.
-
- @param [in] hComponent
- Handle of the component to be accessed. This is the component
- handle returned by the call to the OMX_GetHandle function.
- @param [out] ppBuffer
- pointer to an OMX_BUFFERHEADERTYPE structure used to receive the
- pointer to the buffer header
- @return OMX_ERRORTYPE
- If the command successfully executes, the return code will be
- OMX_ErrorNone. Otherwise the appropriate OMX error will be returned.
- @ingroup comp buf
- */
-
-#define OMX_UseBuffer( \
- hComponent, \
- ppBufferHdr, \
- nPortIndex, \
- pAppPrivate, \
- nSizeBytes, \
- pBuffer) \
- ((OMX_COMPONENTTYPE*)hComponent)->UseBuffer( \
- hComponent, \
- ppBufferHdr, \
- nPortIndex, \
- pAppPrivate, \
- nSizeBytes, \
- pBuffer)
-
-
-/** The OMX_AllocateBuffer macro will request that the component allocate
- a new buffer and buffer header. The component will allocate the
- buffer and the buffer header and return a pointer to the buffer
- header. This is a blocking call.
-
- The component should return from this call within 5 msec.
-
- @param [in] hComponent
- Handle of the component to be accessed. This is the component
- handle returned by the call to the OMX_GetHandle function.
- @param [out] ppBuffer
- pointer to an OMX_BUFFERHEADERTYPE structure used to receive
- the pointer to the buffer header
- @param [in] nPortIndex
- nPortIndex is used to select the port on the component the buffer will
- be used with. The port can be found by using the nPortIndex
- value as an index into the Port Definition array of the component.
- @param [in] pAppPrivate
- pAppPrivate is used to initialize the pAppPrivate member of the
- buffer header structure.
- @param [in] nSizeBytes
- size of the buffer to allocate. Used when bAllocateNew is true.
- @return OMX_ERRORTYPE
- If the command successfully executes, the return code will be
- OMX_ErrorNone. Otherwise the appropriate OMX error will be returned.
- @ingroup comp buf
- */
-#define OMX_AllocateBuffer( \
- hComponent, \
- ppBuffer, \
- nPortIndex, \
- pAppPrivate, \
- nSizeBytes) \
- ((OMX_COMPONENTTYPE*)hComponent)->AllocateBuffer( \
- hComponent, \
- ppBuffer, \
- nPortIndex, \
- pAppPrivate, \
- nSizeBytes) /* Macro End */
-
-
-/** The OMX_FreeBuffer macro will release a buffer header from the component
- which was allocated using either OMX_AllocateBuffer or OMX_UseBuffer. If
- the component allocated the buffer (see the OMX_UseBuffer macro) then
- the component shall free the buffer and buffer header. This is a
- blocking call.
-
- The component should return from this call within 20 msec.
-
- @param [in] hComponent
- Handle of the component to be accessed. This is the component
- handle returned by the call to the OMX_GetHandle function.
- @param [in] nPortIndex
- nPortIndex is used to select the port on the component the buffer will
- be used with.
- @param [in] pBuffer
- pointer to an OMX_BUFFERHEADERTYPE structure allocated with UseBuffer
- or AllocateBuffer.
- @return OMX_ERRORTYPE
- If the command successfully executes, the return code will be
- OMX_ErrorNone. Otherwise the appropriate OMX error will be returned.
- @ingroup comp buf
- */
-#define OMX_FreeBuffer( \
- hComponent, \
- nPortIndex, \
- pBuffer) \
- ((OMX_COMPONENTTYPE*)hComponent)->FreeBuffer( \
- hComponent, \
- nPortIndex, \
- pBuffer) /* Macro End */
-
-
-/** The OMX_EmptyThisBuffer macro will send a buffer full of data to an
- input port of a component. The buffer will be emptied by the component
- and returned to the application via the EmptyBufferDone call back.
- This is a non-blocking call in that the component will record the buffer
- and return immediately and then empty the buffer, later, at the proper
- time. As expected, this macro may be invoked only while the component
- is in the OMX_StateExecuting. If nPortIndex does not specify an input
- port, the component shall return an error.
-
- The component should return from this call within 5 msec.
-
- @param [in] hComponent
- Handle of the component to be accessed. This is the component
- handle returned by the call to the OMX_GetHandle function.
- @param [in] pBuffer
- pointer to an OMX_BUFFERHEADERTYPE structure allocated with UseBuffer
- or AllocateBuffer.
- @return OMX_ERRORTYPE
- If the command successfully executes, the return code will be
- OMX_ErrorNone. Otherwise the appropriate OMX error will be returned.
- @ingroup comp buf
- */
-#define OMX_EmptyThisBuffer( \
- hComponent, \
- pBuffer) \
- ((OMX_COMPONENTTYPE*)hComponent)->EmptyThisBuffer( \
- hComponent, \
- pBuffer) /* Macro End */
-
-
-/** The OMX_FillThisBuffer macro will send an empty buffer to an
- output port of a component. The buffer will be filled by the component
- and returned to the application via the FillBufferDone call back.
- This is a non-blocking call in that the component will record the buffer
- and return immediately and then fill the buffer, later, at the proper
- time. As expected, this macro may be invoked only while the component
- is in the OMX_ExecutingState. If nPortIndex does not specify an output
- port, the component shall return an error.
-
- The component should return from this call within 5 msec.
-
- @param [in] hComponent
- Handle of the component to be accessed. This is the component
- handle returned by the call to the OMX_GetHandle function.
- @param [in] pBuffer
- pointer to an OMX_BUFFERHEADERTYPE structure allocated with UseBuffer
- or AllocateBuffer.
- @return OMX_ERRORTYPE
- If the command successfully executes, the return code will be
- OMX_ErrorNone. Otherwise the appropriate OMX error will be returned.
- @ingroup comp buf
- */
-#define OMX_FillThisBuffer( \
- hComponent, \
- pBuffer) \
- ((OMX_COMPONENTTYPE*)hComponent)->FillThisBuffer( \
- hComponent, \
- pBuffer) /* Macro End */
-
-
-
-/** The OMX_UseEGLImage macro will request that the component use
- a EGLImage provided by EGL (and allocate its own buffer header)
- This is a blocking call.
-
- The component should return from this call within 20 msec.
-
- @param [in] hComponent
- Handle of the component to be accessed. This is the component
- handle returned by the call to the OMX_GetHandle function.
- @param [out] ppBuffer
- pointer to an OMX_BUFFERHEADERTYPE structure used to receive the
- pointer to the buffer header. Note that the memory location used
- for this buffer is NOT visible to the IL Client.
- @param [in] nPortIndex
- nPortIndex is used to select the port on the component the buffer will
- be used with. The port can be found by using the nPortIndex
- value as an index into the Port Definition array of the component.
- @param [in] pAppPrivate
- pAppPrivate is used to initialize the pAppPrivate member of the
- buffer header structure.
- @param [in] eglImage
- eglImage contains the handle of the EGLImage to use as a buffer on the
- specified port. The component is expected to validate properties of
- the EGLImage against the configuration of the port to ensure the component
- can use the EGLImage as a buffer.
- @return OMX_ERRORTYPE
- If the command successfully executes, the return code will be
- OMX_ErrorNone. Otherwise the appropriate OMX error will be returned.
- @ingroup comp buf
- */
-#define OMX_UseEGLImage( \
- hComponent, \
- ppBufferHdr, \
- nPortIndex, \
- pAppPrivate, \
- eglImage) \
- ((OMX_COMPONENTTYPE*)hComponent)->UseEGLImage( \
- hComponent, \
- ppBufferHdr, \
- nPortIndex, \
- pAppPrivate, \
- eglImage)
-
-/** The OMX_Init method is used to initialize the OMX core. It shall be the
- first call made into OMX and it should only be executed one time without
- an interviening OMX_Deinit call.
-
- The core should return from this call within 20 msec.
-
- @return OMX_ERRORTYPE
- If the command successfully executes, the return code will be
- OMX_ErrorNone. Otherwise the appropriate OMX error will be returned.
- @ingroup core
- */
-OMX_API OMX_ERRORTYPE OMX_APIENTRY OMX_Init(void);
-
-
-/** The OMX_Deinit method is used to deinitialize the OMX core. It shall be
- the last call made into OMX. In the event that the core determines that
- thare are components loaded when this call is made, the core may return
- with an error rather than try to unload the components.
-
- The core should return from this call within 20 msec.
-
- @return OMX_ERRORTYPE
- If the command successfully executes, the return code will be
- OMX_ErrorNone. Otherwise the appropriate OMX error will be returned.
- @ingroup core
- */
-OMX_API OMX_ERRORTYPE OMX_APIENTRY OMX_Deinit(void);
-
-
-/** The OMX_ComponentNameEnum method will enumerate through all the names of
- recognised valid components in the system. This function is provided
- as a means to detect all the components in the system run-time. There is
- no strict ordering to the enumeration order of component names, although
- each name will only be enumerated once. If the OMX core supports run-time
- installation of new components, it is only requried to detect newly
- installed components when the first call to enumerate component names
- is made (i.e. when nIndex is 0x0).
-
- The core should return from this call in 20 msec.
-
- @param [out] cComponentName
- pointer to a null terminated string with the component name. The
- names of the components are strings less than 127 bytes in length
- plus the trailing null for a maximum size of 128 bytes. An example
- of a valid component name is "OMX.TI.AUDIO.DSP.MIXER\0". Names are
- assigned by the vendor, but shall start with "OMX." and then have
- the Vendor designation next.
- @param [in] nNameLength
- number of characters in the cComponentName string. With all
- component name strings restricted to less than 128 characters
- (including the trailing null) it is recomended that the caller
- provide a input string for the cComponentName of 128 characters.
- @param [in] nIndex
- number containing the enumeration index for the component.
- Multiple calls to OMX_ComponentNameEnum with increasing values
- of nIndex will enumerate through the component names in the
- system until OMX_ErrorNoMore is returned. The value of nIndex
- is 0 to (N-1), where N is the number of valid installed components
- in the system.
- @return OMX_ERRORTYPE
- If the command successfully executes, the return code will be
- OMX_ErrorNone. When the value of nIndex exceeds the number of
- components in the system minus 1, OMX_ErrorNoMore will be
- returned. Otherwise the appropriate OMX error will be returned.
- @ingroup core
- */
-OMX_API OMX_ERRORTYPE OMX_APIENTRY OMX_ComponentNameEnum(
- OMX_OUT OMX_STRING cComponentName,
- OMX_IN OMX_U32 nNameLength,
- OMX_IN OMX_U32 nIndex);
-
-
-/** The OMX_GetHandle method will locate the component specified by the
- component name given, load that component into memory and then invoke
- the component's methods to create an instance of the component.
-
- The core should return from this call within 20 msec.
-
- @param [out] pHandle
- pointer to an OMX_HANDLETYPE pointer to be filled in by this method.
- @param [in] cComponentName
- pointer to a null terminated string with the component name. The
- names of the components are strings less than 127 bytes in length
- plus the trailing null for a maximum size of 128 bytes. An example
- of a valid component name is "OMX.TI.AUDIO.DSP.MIXER\0". Names are
- assigned by the vendor, but shall start with "OMX." and then have
- the Vendor designation next.
- @param [in] pAppData
- pointer to an application defined value that will be returned
- during callbacks so that the application can identify the source
- of the callback.
- @param [in] pCallBacks
- pointer to a OMX_CALLBACKTYPE structure that will be passed to the
- component to initialize it with.
- @return OMX_ERRORTYPE
- If the command successfully executes, the return code will be
- OMX_ErrorNone. Otherwise the appropriate OMX error will be returned.
- @ingroup core
- */
-OMX_API OMX_ERRORTYPE OMX_APIENTRY OMX_GetHandle(
- OMX_OUT OMX_HANDLETYPE* pHandle,
- OMX_IN OMX_STRING cComponentName,
- OMX_IN OMX_PTR pAppData,
- OMX_IN OMX_CALLBACKTYPE* pCallBacks);
-
-
-/** The OMX_FreeHandle method will free a handle allocated by the OMX_GetHandle
- method. If the component reference count goes to zero, the component will
- be unloaded from memory.
-
- The core should return from this call within 20 msec when the component is
- in the OMX_StateLoaded state.
-
- @param [in] hComponent
- Handle of the component to be accessed. This is the component
- handle returned by the call to the GetHandle function.
- @return OMX_ERRORTYPE
- If the command successfully executes, the return code will be
- OMX_ErrorNone. Otherwise the appropriate OMX error will be returned.
- @ingroup core
- */
-OMX_API OMX_ERRORTYPE OMX_APIENTRY OMX_FreeHandle(
- OMX_IN OMX_HANDLETYPE hComponent);
-
-
-
-/** The OMX_SetupTunnel method will handle the necessary calls to the components
- to setup the specified tunnel the two components. NOTE: This is
- an actual method (not a #define macro). This method will make calls into
- the component ComponentTunnelRequest method to do the actual tunnel
- connection.
-
- The ComponentTunnelRequest method on both components will be called.
- This method shall not be called unless the component is in the
- OMX_StateLoaded state except when the ports used for the tunnel are
- disabled. In this case, the component may be in the OMX_StateExecuting,
- OMX_StatePause, or OMX_StateIdle states.
-
- The core should return from this call within 20 msec.
-
- @param [in] hOutput
- Handle of the component to be accessed. Also this is the handle
- of the component whose port, specified in the nPortOutput parameter
- will be used the source for the tunnel. This is the component handle
- returned by the call to the OMX_GetHandle function. There is a
- requirement that hOutput be the source for the data when
- tunelling (i.e. nPortOutput is an output port). If 0x0, the component
- specified in hInput will have it's port specified in nPortInput
- setup for communication with the application / IL client.
- @param [in] nPortOutput
- nPortOutput is used to select the source port on component to be
- used in the tunnel.
- @param [in] hInput
- This is the component to setup the tunnel with. This is the handle
- of the component whose port, specified in the nPortInput parameter
- will be used the destination for the tunnel. This is the component handle
- returned by the call to the OMX_GetHandle function. There is a
- requirement that hInput be the destination for the data when
- tunelling (i.e. nPortInut is an input port). If 0x0, the component
- specified in hOutput will have it's port specified in nPortPOutput
- setup for communication with the application / IL client.
- @param [in] nPortInput
- nPortInput is used to select the destination port on component to be
- used in the tunnel.
- @return OMX_ERRORTYPE
- If the command successfully executes, the return code will be
- OMX_ErrorNone. Otherwise the appropriate OMX error will be returned.
- When OMX_ErrorNotImplemented is returned, one or both components is
- a non-interop component and does not support tunneling.
-
- On failure, the ports of both components are setup for communication
- with the application / IL Client.
- @ingroup core tun
- */
-OMX_API OMX_ERRORTYPE OMX_APIENTRY OMX_SetupTunnel(
- OMX_IN OMX_HANDLETYPE hOutput,
- OMX_IN OMX_U32 nPortOutput,
- OMX_IN OMX_HANDLETYPE hInput,
- OMX_IN OMX_U32 nPortInput);
-
-/** @ingroup cp */
-OMX_API OMX_ERRORTYPE OMX_GetContentPipe(
- OMX_OUT OMX_HANDLETYPE *hPipe,
- OMX_IN OMX_STRING szURI);
-
-/** The OMX_GetComponentsOfRole method will return the number of components that support the given
- role and (if the compNames field is non-NULL) the names of those components. The call will fail if
- an insufficiently sized array of names is supplied. To ensure the array is sufficiently sized the
- client should:
- * first call this function with the compNames field NULL to determine the number of component names
- * second call this function with the compNames field pointing to an array of names allocated
- according to the number returned by the first call.
-
- The core should return from this call within 5 msec.
-
- @param [in] role
- This is generic standard component name consisting only of component class
- name and the type within that class (e.g. 'audio_decoder.aac').
- @param [inout] pNumComps
- This is used both as input and output.
-
- If compNames is NULL, the input is ignored and the output specifies how many components support
- the given role.
-
- If compNames is not NULL, on input it bounds the size of the input structure and
- on output, it specifies the number of components string names listed within the compNames parameter.
- @param [inout] compNames
- If NULL this field is ignored. If non-NULL this points to an array of 128-byte strings which accepts
- a list of the names of all physical components that implement the specified standard component name.
- Each name is NULL terminated. numComps indicates the number of names.
- @ingroup core
- */
-OMX_API OMX_ERRORTYPE OMX_GetComponentsOfRole (
- OMX_IN OMX_STRING role,
- OMX_INOUT OMX_U32 *pNumComps,
- OMX_INOUT OMX_U8 **compNames);
-
-/** The OMX_GetRolesOfComponent method will return the number of roles supported by the given
- component and (if the roles field is non-NULL) the names of those roles. The call will fail if
- an insufficiently sized array of names is supplied. To ensure the array is sufficiently sized the
- client should:
- * first call this function with the roles field NULL to determine the number of role names
- * second call this function with the roles field pointing to an array of names allocated
- according to the number returned by the first call.
-
- The core should return from this call within 5 msec.
-
- @param [in] compName
- This is the name of the component being queried about.
- @param [inout] pNumRoles
- This is used both as input and output.
-
- If roles is NULL, the input is ignored and the output specifies how many roles the component supports.
-
- If compNames is not NULL, on input it bounds the size of the input structure and
- on output, it specifies the number of roles string names listed within the roles parameter.
- @param [out] roles
- If NULL this field is ignored. If non-NULL this points to an array of 128-byte strings
- which accepts a list of the names of all standard components roles implemented on the
- specified component name. numComps indicates the number of names.
- @ingroup core
- */
-OMX_API OMX_ERRORTYPE OMX_GetRolesOfComponent (
- OMX_IN OMX_STRING compName,
- OMX_INOUT OMX_U32 *pNumRoles,
- OMX_OUT OMX_U8 **roles);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
-/* File EOF */
-
--- a/omxil/omxilapi/v1_x/OMX_IVCommon.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,921 +0,0 @@
-/**
- * Copyright (c) 2008 The Khronos Group Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject
- * to the following conditions:
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- */
-
-/**
- * @file
- * OpenMax IL version 1.1.2
- * The structures needed by Video and Image components to exchange
- * parameters and configuration data with the components.
- */
-#ifndef OMX_IVCommon_h
-#define OMX_IVCommon_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/**
- * Each OMX header must include all required header files to allow the header
- * to compile without errors. The includes below are required for this header
- * file to compile successfully
- */
-
-#include <openmax/il/khronos/v1_x/OMX_Core.h>
-
-/** @defgroup iv OpenMAX IL Imaging and Video Domain
- * Common structures for OpenMAX IL Imaging and Video domains
- * @{
- */
-
-
-/**
- * Enumeration defining possible uncompressed image/video formats.
- *
- * ENUMS:
- * Unused : Placeholder value when format is N/A
- * Monochrome : black and white
- * 8bitRGB332 : Red 7:5, Green 4:2, Blue 1:0
- * 12bitRGB444 : Red 11:8, Green 7:4, Blue 3:0
- * 16bitARGB4444 : Alpha 15:12, Red 11:8, Green 7:4, Blue 3:0
- * 16bitARGB1555 : Alpha 15, Red 14:10, Green 9:5, Blue 4:0
- * 16bitRGB565 : Red 15:11, Green 10:5, Blue 4:0
- * 16bitBGR565 : Blue 15:11, Green 10:5, Red 4:0
- * 18bitRGB666 : Red 17:12, Green 11:6, Blue 5:0
- * 18bitARGB1665 : Alpha 17, Red 16:11, Green 10:5, Blue 4:0
- * 19bitARGB1666 : Alpha 18, Red 17:12, Green 11:6, Blue 5:0
- * 24bitRGB888 : Red 24:16, Green 15:8, Blue 7:0
- * 24bitBGR888 : Blue 24:16, Green 15:8, Red 7:0
- * 24bitARGB1887 : Alpha 23, Red 22:15, Green 14:7, Blue 6:0
- * 25bitARGB1888 : Alpha 24, Red 23:16, Green 15:8, Blue 7:0
- * 32bitBGRA8888 : Blue 31:24, Green 23:16, Red 15:8, Alpha 7:0
- * 32bitARGB8888 : Alpha 31:24, Red 23:16, Green 15:8, Blue 7:0
- * YUV411Planar : U,Y are subsampled by a factor of 4 horizontally
- * YUV411PackedPlanar : packed per payload in planar slices
- * YUV420Planar : Three arrays Y,U,V.
- * YUV420PackedPlanar : packed per payload in planar slices
- * YUV420SemiPlanar : Two arrays, one is all Y, the other is U and V
- * YUV422Planar : Three arrays Y,U,V.
- * YUV422PackedPlanar : packed per payload in planar slices
- * YUV422SemiPlanar : Two arrays, one is all Y, the other is U and V
- * YCbYCr : Organized as 16bit YUYV (i.e. YCbYCr)
- * YCrYCb : Organized as 16bit YVYU (i.e. YCrYCb)
- * CbYCrY : Organized as 16bit UYVY (i.e. CbYCrY)
- * CrYCbY : Organized as 16bit VYUY (i.e. CrYCbY)
- * YUV444Interleaved : Each pixel contains equal parts YUV
- * RawBayer8bit : SMIA camera output format
- * RawBayer10bit : SMIA camera output format
- * RawBayer8bitcompressed : SMIA camera output format
- */
-typedef enum OMX_COLOR_FORMATTYPE {
- OMX_COLOR_FormatUnused,
- OMX_COLOR_FormatMonochrome,
- OMX_COLOR_Format8bitRGB332,
- OMX_COLOR_Format12bitRGB444,
- OMX_COLOR_Format16bitARGB4444,
- OMX_COLOR_Format16bitARGB1555,
- OMX_COLOR_Format16bitRGB565,
- OMX_COLOR_Format16bitBGR565,
- OMX_COLOR_Format18bitRGB666,
- OMX_COLOR_Format18bitARGB1665,
- OMX_COLOR_Format19bitARGB1666,
- OMX_COLOR_Format24bitRGB888,
- OMX_COLOR_Format24bitBGR888,
- OMX_COLOR_Format24bitARGB1887,
- OMX_COLOR_Format25bitARGB1888,
- OMX_COLOR_Format32bitBGRA8888,
- OMX_COLOR_Format32bitARGB8888,
- OMX_COLOR_FormatYUV411Planar,
- OMX_COLOR_FormatYUV411PackedPlanar,
- OMX_COLOR_FormatYUV420Planar,
- OMX_COLOR_FormatYUV420PackedPlanar,
- OMX_COLOR_FormatYUV420SemiPlanar,
- OMX_COLOR_FormatYUV422Planar,
- OMX_COLOR_FormatYUV422PackedPlanar,
- OMX_COLOR_FormatYUV422SemiPlanar,
- OMX_COLOR_FormatYCbYCr,
- OMX_COLOR_FormatYCrYCb,
- OMX_COLOR_FormatCbYCrY,
- OMX_COLOR_FormatCrYCbY,
- OMX_COLOR_FormatYUV444Interleaved,
- OMX_COLOR_FormatRawBayer8bit,
- OMX_COLOR_FormatRawBayer10bit,
- OMX_COLOR_FormatRawBayer8bitcompressed,
- OMX_COLOR_FormatL2,
- OMX_COLOR_FormatL4,
- OMX_COLOR_FormatL8,
- OMX_COLOR_FormatL16,
- OMX_COLOR_FormatL24,
- OMX_COLOR_FormatL32,
- OMX_COLOR_FormatYUV420PackedSemiPlanar,
- OMX_COLOR_FormatYUV422PackedSemiPlanar,
- OMX_COLOR_Format18BitBGR666,
- OMX_COLOR_Format24BitARGB6666,
- OMX_COLOR_Format24BitABGR6666,
- OMX_COLOR_FormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_COLOR_FormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_COLOR_FormatMax = 0x7FFFFFFF
-} OMX_COLOR_FORMATTYPE;
-
-
-/**
- * Defines the matrix for conversion from RGB to YUV or vice versa.
- * iColorMatrix should be initialized with the fixed point values
- * used in converting between formats.
- */
-typedef struct OMX_CONFIG_COLORCONVERSIONTYPE {
- OMX_U32 nSize; /**< Size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version info */
- OMX_U32 nPortIndex; /**< Port that this struct applies to */
- OMX_S32 xColorMatrix[3][3]; /**< Stored in signed Q16 format */
- OMX_S32 xColorOffset[4]; /**< Stored in signed Q16 format */
-}OMX_CONFIG_COLORCONVERSIONTYPE;
-
-
-/**
- * Structure defining percent to scale each frame dimension. For example:
- * To make the width 50% larger, use fWidth = 1.5 and to make the width
- * 1/2 the original size, use fWidth = 0.5
- */
-typedef struct OMX_CONFIG_SCALEFACTORTYPE {
- OMX_U32 nSize; /**< Size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version info */
- OMX_U32 nPortIndex; /**< Port that this struct applies to */
- OMX_S32 xWidth; /**< Fixed point value stored as Q16 */
- OMX_S32 xHeight; /**< Fixed point value stored as Q16 */
-}OMX_CONFIG_SCALEFACTORTYPE;
-
-
-/**
- * Enumeration of possible image filter types
- */
-typedef enum OMX_IMAGEFILTERTYPE {
- OMX_ImageFilterNone,
- OMX_ImageFilterNoise,
- OMX_ImageFilterEmboss,
- OMX_ImageFilterNegative,
- OMX_ImageFilterSketch,
- OMX_ImageFilterOilPaint,
- OMX_ImageFilterHatch,
- OMX_ImageFilterGpen,
- OMX_ImageFilterAntialias,
- OMX_ImageFilterDeRing,
- OMX_ImageFilterSolarize,
- OMX_ImageFilterKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_ImageFilterVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_ImageFilterMax = 0x7FFFFFFF
-} OMX_IMAGEFILTERTYPE;
-
-
-/**
- * Image filter configuration
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * eImageFilter : Image filter type enumeration
- */
-typedef struct OMX_CONFIG_IMAGEFILTERTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_IMAGEFILTERTYPE eImageFilter;
-} OMX_CONFIG_IMAGEFILTERTYPE;
-
-
-/**
- * Customized U and V for color enhancement
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * bColorEnhancement : Enable/disable color enhancement
- * nCustomizedU : Practical values: 16-240, range: 0-255, value set for
- * U component
- * nCustomizedV : Practical values: 16-240, range: 0-255, value set for
- * V component
- */
-typedef struct OMX_CONFIG_COLORENHANCEMENTTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_BOOL bColorEnhancement;
- OMX_U8 nCustomizedU;
- OMX_U8 nCustomizedV;
-} OMX_CONFIG_COLORENHANCEMENTTYPE;
-
-
-/**
- * Define color key and color key mask
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nARGBColor : 32bit Alpha, Red, Green, Blue Color
- * nARGBMask : 32bit Mask for Alpha, Red, Green, Blue channels
- */
-typedef struct OMX_CONFIG_COLORKEYTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nARGBColor;
- OMX_U32 nARGBMask;
-} OMX_CONFIG_COLORKEYTYPE;
-
-
-/**
- * List of color blend types for pre/post processing
- *
- * ENUMS:
- * None : No color blending present
- * AlphaConstant : Function is (alpha_constant * src) +
- * (1 - alpha_constant) * dst)
- * AlphaPerPixel : Function is (alpha * src) + (1 - alpha) * dst)
- * Alternate : Function is alternating pixels from src and dst
- * And : Function is (src & dst)
- * Or : Function is (src | dst)
- * Invert : Function is ~src
- */
-typedef enum OMX_COLORBLENDTYPE {
- OMX_ColorBlendNone,
- OMX_ColorBlendAlphaConstant,
- OMX_ColorBlendAlphaPerPixel,
- OMX_ColorBlendAlternate,
- OMX_ColorBlendAnd,
- OMX_ColorBlendOr,
- OMX_ColorBlendInvert,
- OMX_ColorBlendKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_ColorBlendVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_ColorBlendMax = 0x7FFFFFFF
-} OMX_COLORBLENDTYPE;
-
-
-/**
- * Color blend configuration
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nRGBAlphaConstant : Constant global alpha values when global alpha is used
- * eColorBlend : Color blend type enumeration
- */
-typedef struct OMX_CONFIG_COLORBLENDTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nRGBAlphaConstant;
- OMX_COLORBLENDTYPE eColorBlend;
-} OMX_CONFIG_COLORBLENDTYPE;
-
-
-/**
- * Hold frame dimension
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nWidth : Frame width in pixels
- * nHeight : Frame height in pixels
- */
-typedef struct OMX_FRAMESIZETYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nWidth;
- OMX_U32 nHeight;
-} OMX_FRAMESIZETYPE;
-
-
-/**
- * Rotation configuration
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nRotation : +/- integer rotation value
- */
-typedef struct OMX_CONFIG_ROTATIONTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_S32 nRotation;
-} OMX_CONFIG_ROTATIONTYPE;
-
-
-/**
- * Possible mirroring directions for pre/post processing
- *
- * ENUMS:
- * None : No mirroring
- * Vertical : Vertical mirroring, flip on X axis
- * Horizontal : Horizontal mirroring, flip on Y axis
- * Both : Both vertical and horizontal mirroring
- */
-typedef enum OMX_MIRRORTYPE {
- OMX_MirrorNone = 0,
- OMX_MirrorVertical,
- OMX_MirrorHorizontal,
- OMX_MirrorBoth,
- OMX_MirrorKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_MirrorVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_MirrorMax = 0x7FFFFFFF
-} OMX_MIRRORTYPE;
-
-
-/**
- * Mirroring configuration
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * eMirror : Mirror type enumeration
- */
-typedef struct OMX_CONFIG_MIRRORTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_MIRRORTYPE eMirror;
-} OMX_CONFIG_MIRRORTYPE;
-
-
-/**
- * Position information only
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nX : X coordinate for the point
- * nY : Y coordinate for the point
- */
-typedef struct OMX_CONFIG_POINTTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_S32 nX;
- OMX_S32 nY;
-} OMX_CONFIG_POINTTYPE;
-
-
-/**
- * Frame size plus position
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nLeft : X Coordinate of the top left corner of the rectangle
- * nTop : Y Coordinate of the top left corner of the rectangle
- * nWidth : Width of the rectangle
- * nHeight : Height of the rectangle
- */
-typedef struct OMX_CONFIG_RECTTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_S32 nLeft;
- OMX_S32 nTop;
- OMX_U32 nWidth;
- OMX_U32 nHeight;
-} OMX_CONFIG_RECTTYPE;
-
-
-/**
- * Deblocking state; it is required to be set up before starting the codec
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * bDeblocking : Enable/disable deblocking mode
- */
-typedef struct OMX_PARAM_DEBLOCKINGTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_BOOL bDeblocking;
-} OMX_PARAM_DEBLOCKINGTYPE;
-
-
-/**
- * Stabilization state
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * bStab : Enable/disable frame stabilization state
- */
-typedef struct OMX_CONFIG_FRAMESTABTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_BOOL bStab;
-} OMX_CONFIG_FRAMESTABTYPE;
-
-
-/**
- * White Balance control type
- *
- * STRUCT MEMBERS:
- * SunLight : Referenced in JSR-234
- * Flash : Optimal for device's integrated flash
- */
-typedef enum OMX_WHITEBALCONTROLTYPE {
- OMX_WhiteBalControlOff = 0,
- OMX_WhiteBalControlAuto,
- OMX_WhiteBalControlSunLight,
- OMX_WhiteBalControlCloudy,
- OMX_WhiteBalControlShade,
- OMX_WhiteBalControlTungsten,
- OMX_WhiteBalControlFluorescent,
- OMX_WhiteBalControlIncandescent,
- OMX_WhiteBalControlFlash,
- OMX_WhiteBalControlHorizon,
- OMX_WhiteBalControlKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_WhiteBalControlVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_WhiteBalControlMax = 0x7FFFFFFF
-} OMX_WHITEBALCONTROLTYPE;
-
-
-/**
- * White Balance control configuration
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * eWhiteBalControl : White balance enumeration
- */
-typedef struct OMX_CONFIG_WHITEBALCONTROLTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_WHITEBALCONTROLTYPE eWhiteBalControl;
-} OMX_CONFIG_WHITEBALCONTROLTYPE;
-
-
-/**
- * Exposure control type
- */
-typedef enum OMX_EXPOSURECONTROLTYPE {
- OMX_ExposureControlOff = 0,
- OMX_ExposureControlAuto,
- OMX_ExposureControlNight,
- OMX_ExposureControlBackLight,
- OMX_ExposureControlSpotLight,
- OMX_ExposureControlSports,
- OMX_ExposureControlSnow,
- OMX_ExposureControlBeach,
- OMX_ExposureControlLargeAperture,
- OMX_ExposureControlSmallApperture,
- OMX_ExposureControlKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_ExposureControlVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_ExposureControlMax = 0x7FFFFFFF
-} OMX_EXPOSURECONTROLTYPE;
-
-
-/**
- * White Balance control configuration
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * eExposureControl : Exposure control enumeration
- */
-typedef struct OMX_CONFIG_EXPOSURECONTROLTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_EXPOSURECONTROLTYPE eExposureControl;
-} OMX_CONFIG_EXPOSURECONTROLTYPE;
-
-
-/**
- * Defines sensor supported mode.
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nFrameRate : Single shot mode is indicated by a 0
- * bOneShot : Enable for single shot, disable for streaming
- * sFrameSize : Framesize
- */
-typedef struct OMX_PARAM_SENSORMODETYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nFrameRate;
- OMX_BOOL bOneShot;
- OMX_FRAMESIZETYPE sFrameSize;
-} OMX_PARAM_SENSORMODETYPE;
-
-
-/**
- * Defines contrast level
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nContrast : Values allowed for contrast -100 to 100, zero means no change
- */
-typedef struct OMX_CONFIG_CONTRASTTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_S32 nContrast;
-} OMX_CONFIG_CONTRASTTYPE;
-
-
-/**
- * Defines brightness level
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nBrightness : 0-100%
- */
-typedef struct OMX_CONFIG_BRIGHTNESSTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nBrightness;
-} OMX_CONFIG_BRIGHTNESSTYPE;
-
-
-/**
- * Defines backlight level configuration for a video sink, e.g. LCD panel
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nBacklight : Values allowed for backlight 0-100%
- * nTimeout : Number of milliseconds before backlight automatically turns
- * off. A value of 0x0 disables backight timeout
- */
-typedef struct OMX_CONFIG_BACKLIGHTTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nBacklight;
- OMX_U32 nTimeout;
-} OMX_CONFIG_BACKLIGHTTYPE;
-
-
-/**
- * Defines setting for Gamma
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nGamma : Values allowed for gamma -100 to 100, zero means no change
- */
-typedef struct OMX_CONFIG_GAMMATYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_S32 nGamma;
-} OMX_CONFIG_GAMMATYPE;
-
-
-/**
- * Define for setting saturation
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nSaturation : Values allowed for saturation -100 to 100, zero means
- * no change
- */
-typedef struct OMX_CONFIG_SATURATIONTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_S32 nSaturation;
-} OMX_CONFIG_SATURATIONTYPE;
-
-
-/**
- * Define for setting Lightness
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nLightness : Values allowed for lightness -100 to 100, zero means no
- * change
- */
-typedef struct OMX_CONFIG_LIGHTNESSTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_S32 nLightness;
-} OMX_CONFIG_LIGHTNESSTYPE;
-
-
-/**
- * Plane blend configuration
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Index of input port associated with the plane.
- * nDepth : Depth of the plane in relation to the screen. Higher
- * numbered depths are "behind" lower number depths.
- * This number defaults to the Port Index number.
- * nAlpha : Transparency blending component for the entire plane.
- * See blending modes for more detail.
- */
-typedef struct OMX_CONFIG_PLANEBLENDTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nDepth;
- OMX_U32 nAlpha;
-} OMX_CONFIG_PLANEBLENDTYPE;
-
-
-/**
- * Define interlace type
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * bEnable : Enable control variable for this functionality
- * (see below)
- * nInterleavePortIndex : Index of input or output port associated with
- * the interleaved plane.
- * pPlanarPortIndexes[4] : Index of input or output planar ports.
- */
-typedef struct OMX_PARAM_INTERLEAVETYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_BOOL bEnable;
- OMX_U32 nInterleavePortIndex;
-} OMX_PARAM_INTERLEAVETYPE;
-
-
-/**
- * Defines the picture effect used for an input picture
- */
-typedef enum OMX_TRANSITIONEFFECTTYPE {
- OMX_EffectNone,
- OMX_EffectFadeFromBlack,
- OMX_EffectFadeToBlack,
- OMX_EffectUnspecifiedThroughConstantColor,
- OMX_EffectDissolve,
- OMX_EffectWipe,
- OMX_EffectUnspecifiedMixOfTwoScenes,
- OMX_EffectKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_EffectVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_EffectMax = 0x7FFFFFFF
-} OMX_TRANSITIONEFFECTTYPE;
-
-
-/**
- * Structure used to configure current transition effect
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * eEffect : Effect to enable
- */
-typedef struct OMX_CONFIG_TRANSITIONEFFECTTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_TRANSITIONEFFECTTYPE eEffect;
-} OMX_CONFIG_TRANSITIONEFFECTTYPE;
-
-
-/**
- * Defines possible data unit types for encoded video data. The data unit
- * types are used both for encoded video input for playback as well as
- * encoded video output from recording.
- */
-typedef enum OMX_DATAUNITTYPE {
- OMX_DataUnitCodedPicture,
- OMX_DataUnitVideoSegment,
- OMX_DataUnitSeveralSegments,
- OMX_DataUnitArbitraryStreamSection,
- OMX_DataUnitKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_DataUnitVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_DataUnitMax = 0x7FFFFFFF
-} OMX_DATAUNITTYPE;
-
-
-/**
- * Defines possible encapsulation types for coded video data unit. The
- * encapsulation information is used both for encoded video input for
- * playback as well as encoded video output from recording.
- */
-typedef enum OMX_DATAUNITENCAPSULATIONTYPE {
- OMX_DataEncapsulationElementaryStream,
- OMX_DataEncapsulationGenericPayload,
- OMX_DataEncapsulationRtpPayload,
- OMX_DataEncapsulationKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_DataEncapsulationVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_DataEncapsulationMax = 0x7FFFFFFF
-} OMX_DATAUNITENCAPSULATIONTYPE;
-
-
-/**
- * Structure used to configure the type of being decoded/encoded
- */
-typedef struct OMX_PARAM_DATAUNITTYPE {
- OMX_U32 nSize; /**< Size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< Port that this structure applies to */
- OMX_DATAUNITTYPE eUnitType;
- OMX_DATAUNITENCAPSULATIONTYPE eEncapsulationType;
-} OMX_PARAM_DATAUNITTYPE;
-
-
-/**
- * Defines dither types
- */
-typedef enum OMX_DITHERTYPE {
- OMX_DitherNone,
- OMX_DitherOrdered,
- OMX_DitherErrorDiffusion,
- OMX_DitherOther,
- OMX_DitherKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_DitherVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_DitherMax = 0x7FFFFFFF
-} OMX_DITHERTYPE;
-
-
-/**
- * Structure used to configure current type of dithering
- */
-typedef struct OMX_CONFIG_DITHERTYPE {
- OMX_U32 nSize; /**< Size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< Port that this structure applies to */
- OMX_DITHERTYPE eDither; /**< Type of dithering to use */
-} OMX_CONFIG_DITHERTYPE;
-
-typedef struct OMX_CONFIG_CAPTUREMODETYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex; /**< Port that this structure applies to */
- OMX_BOOL bContinuous; /**< If true then ignore frame rate and emit capture
- * data as fast as possible (otherwise obey port's frame rate). */
- OMX_BOOL bFrameLimited; /**< If true then terminate capture after the port emits the
- * specified number of frames (otherwise the port does not
- * terminate the capture until instructed to do so by the client).
- * Even if set, the client may manually terminate the capture prior
- * to reaching the limit. */
- OMX_U32 nFrameLimit; /**< Limit on number of frames emitted during a capture (only
- * valid if bFrameLimited is set). */
-} OMX_CONFIG_CAPTUREMODETYPE;
-
-typedef enum OMX_METERINGTYPE {
-
- OMX_MeteringModeAverage, /**< Center-weighted average metering. */
- OMX_MeteringModeSpot, /**< Spot (partial) metering. */
- OMX_MeteringModeMatrix, /**< Matrix or evaluative metering. */
-
- OMX_MeteringKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_MeteringVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_EVModeMax = 0x7fffffff
-} OMX_METERINGTYPE;
-
-typedef struct OMX_CONFIG_EXPOSUREVALUETYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_METERINGTYPE eMetering;
- OMX_S32 xEVCompensation; /**< Fixed point value stored as Q16 */
- OMX_U32 nApertureFNumber; /**< e.g. nApertureFNumber = 2 implies "f/2" - Q16 format */
- OMX_BOOL bAutoAperture; /**< Whether aperture number is defined automatically */
- OMX_U32 nShutterSpeedMsec; /**< Shutterspeed in milliseconds */
- OMX_BOOL bAutoShutterSpeed; /**< Whether shutter speed is defined automatically */
- OMX_U32 nSensitivity; /**< e.g. nSensitivity = 100 implies "ISO 100" */
- OMX_BOOL bAutoSensitivity; /**< Whether sensitivity is defined automatically */
-} OMX_CONFIG_EXPOSUREVALUETYPE;
-
-/**
- * Focus region configuration
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * bCenter : Use center region as focus region of interest
- * bLeft : Use left region as focus region of interest
- * bRight : Use right region as focus region of interest
- * bTop : Use top region as focus region of interest
- * bBottom : Use bottom region as focus region of interest
- * bTopLeft : Use top left region as focus region of interest
- * bTopRight : Use top right region as focus region of interest
- * bBottomLeft : Use bottom left region as focus region of interest
- * bBottomRight : Use bottom right region as focus region of interest
- */
-typedef struct OMX_CONFIG_FOCUSREGIONTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_BOOL bCenter;
- OMX_BOOL bLeft;
- OMX_BOOL bRight;
- OMX_BOOL bTop;
- OMX_BOOL bBottom;
- OMX_BOOL bTopLeft;
- OMX_BOOL bTopRight;
- OMX_BOOL bBottomLeft;
- OMX_BOOL bBottomRight;
-} OMX_CONFIG_FOCUSREGIONTYPE;
-
-/**
- * Focus Status type
- */
-typedef enum OMX_FOCUSSTATUSTYPE {
- OMX_FocusStatusOff = 0,
- OMX_FocusStatusRequest,
- OMX_FocusStatusReached,
- OMX_FocusStatusUnableToReach,
- OMX_FocusStatusLost,
- OMX_FocusStatusKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_FocusStatusVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_FocusStatusMax = 0x7FFFFFFF
-} OMX_FOCUSSTATUSTYPE;
-
-/**
- * Focus status configuration
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * eFocusStatus : Specifies the focus status
- * bCenterStatus : Use center region as focus region of interest
- * bLeftStatus : Use left region as focus region of interest
- * bRightStatus : Use right region as focus region of interest
- * bTopStatus : Use top region as focus region of interest
- * bBottomStatus : Use bottom region as focus region of interest
- * bTopLeftStatus : Use top left region as focus region of interest
- * bTopRightStatus : Use top right region as focus region of interest
- * bBottomLeftStatus : Use bottom left region as focus region of interest
- * bBottomRightStatus : Use bottom right region as focus region of interest
- */
-typedef struct OMX_PARAM_FOCUSSTATUSTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_FOCUSSTATUSTYPE eFocusStatus;
- OMX_BOOL bCenterStatus;
- OMX_BOOL bLeftStatus;
- OMX_BOOL bRightStatus;
- OMX_BOOL bTopStatus;
- OMX_BOOL bBottomStatus;
- OMX_BOOL bTopLeftStatus;
- OMX_BOOL bTopRightStatus;
- OMX_BOOL bBottomLeftStatus;
- OMX_BOOL bBottomRightStatus;
-} OMX_PARAM_FOCUSSTATUSTYPE;
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
-/* File EOF */
--- a/omxil/omxilapi/v1_x/OMX_Image.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,329 +0,0 @@
-/**
- * Copyright (c) 2008 The Khronos Group Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject
- * to the following conditions:
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/**
- * @file
- * OpenMax IL version 1.1.2
- * The structures needed by Image components to exchange parameters and
- * configuration data with the components.
- */
-#ifndef OMX_Image_h
-#define OMX_Image_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-/**
- * Each OMX header must include all required header files to allow the
- * header to compile without errors. The includes below are required
- * for this header file to compile successfully
- */
-
-#include <openmax/il/khronos/v1_x/OMX_IVCommon.h>
-
-/** @defgroup imaging OpenMAX IL Imaging Domain
- * @ingroup iv
- * Structures for OpenMAX IL Imaging domain
- * @{
- */
-
-/**
- * Enumeration used to define the possible image compression coding.
- */
-typedef enum OMX_IMAGE_CODINGTYPE {
- OMX_IMAGE_CodingUnused, /**< Value when format is N/A */
- OMX_IMAGE_CodingAutoDetect, /**< Auto detection of image format */
- OMX_IMAGE_CodingJPEG, /**< JPEG/JFIF image format */
- OMX_IMAGE_CodingJPEG2K, /**< JPEG 2000 image format */
- OMX_IMAGE_CodingEXIF, /**< EXIF image format */
- OMX_IMAGE_CodingTIFF, /**< TIFF image format */
- OMX_IMAGE_CodingGIF, /**< Graphics image format */
- OMX_IMAGE_CodingPNG, /**< PNG image format */
- OMX_IMAGE_CodingLZW, /**< LZW image format */
- OMX_IMAGE_CodingBMP, /**< Windows Bitmap format */
- OMX_IMAGE_CodingKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_IMAGE_CodingVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_IMAGE_CodingMax = 0x7FFFFFFF
-} OMX_IMAGE_CODINGTYPE;
-
-
-/**
- * Data structure used to define an image path. The number of image paths
- * for input and output will vary by type of the image component.
- *
- * Input (aka Source) : Zero Inputs, one Output,
- * Splitter : One Input, 2 or more Outputs,
- * Processing Element : One Input, one output,
- * Mixer : 2 or more inputs, one output,
- * Output (aka Sink) : One Input, zero outputs.
- *
- * The PortDefinition structure is used to define all of the parameters
- * necessary for the compliant component to setup an input or an output
- * image path. If additional vendor specific data is required, it should
- * be transmitted to the component using the CustomCommand function.
- * Compliant components will prepopulate this structure with optimal
- * values during the OMX_GetParameter() command.
- *
- * STRUCT MEMBERS:
- * cMIMEType : MIME type of data for the port
- * pNativeRender : Platform specific reference for a display if a
- * sync, otherwise this field is 0
- * nFrameWidth : Width of frame to be used on port if
- * uncompressed format is used. Use 0 for
- * unknown, don't care or variable
- * nFrameHeight : Height of frame to be used on port if
- * uncompressed format is used. Use 0 for
- * unknown, don't care or variable
- * nStride : Number of bytes per span of an image (i.e.
- * indicates the number of bytes to get from
- * span N to span N+1, where negative stride
- * indicates the image is bottom up
- * nSliceHeight : Height used when encoding in slices
- * bFlagErrorConcealment : Turns on error concealment if it is supported by
- * the OMX component
- * eCompressionFormat : Compression format used in this instance of
- * the component. When OMX_IMAGE_CodingUnused is
- * specified, eColorFormat is valid
- * eColorFormat : Decompressed format used by this component
- * pNativeWindow : Platform specific reference for a window object if a
- * display sink , otherwise this field is 0x0.
- */
-typedef struct OMX_IMAGE_PORTDEFINITIONTYPE {
- OMX_STRING cMIMEType;
- OMX_NATIVE_DEVICETYPE pNativeRender;
- OMX_U32 nFrameWidth;
- OMX_U32 nFrameHeight;
- OMX_S32 nStride;
- OMX_U32 nSliceHeight;
- OMX_BOOL bFlagErrorConcealment;
- OMX_IMAGE_CODINGTYPE eCompressionFormat;
- OMX_COLOR_FORMATTYPE eColorFormat;
- OMX_NATIVE_WINDOWTYPE pNativeWindow;
-} OMX_IMAGE_PORTDEFINITIONTYPE;
-
-
-/**
- * Port format parameter. This structure is used to enumerate the various
- * data input/output format supported by the port.
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Indicates which port to set
- * nIndex : Indicates the enumeration index for the format from
- * 0x0 to N-1
- * eCompressionFormat : Compression format used in this instance of the
- * component. When OMX_IMAGE_CodingUnused is specified,
- * eColorFormat is valid
- * eColorFormat : Decompressed format used by this component
- */
-typedef struct OMX_IMAGE_PARAM_PORTFORMATTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nIndex;
- OMX_IMAGE_CODINGTYPE eCompressionFormat;
- OMX_COLOR_FORMATTYPE eColorFormat;
-} OMX_IMAGE_PARAM_PORTFORMATTYPE;
-
-
-/**
- * Flash control type
- *
- * ENUMS
- * Torch : Flash forced constantly on
- */
-typedef enum OMX_IMAGE_FLASHCONTROLTYPE {
- OMX_IMAGE_FlashControlOn = 0,
- OMX_IMAGE_FlashControlOff,
- OMX_IMAGE_FlashControlAuto,
- OMX_IMAGE_FlashControlRedEyeReduction,
- OMX_IMAGE_FlashControlFillin,
- OMX_IMAGE_FlashControlTorch,
- OMX_IMAGE_FlashControlKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_IMAGE_FlashControlVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_IMAGE_FlashControlMax = 0x7FFFFFFF
-} OMX_IMAGE_FLASHCONTROLTYPE;
-
-
-/**
- * Flash control configuration
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * eFlashControl : Flash control type
- */
-typedef struct OMX_IMAGE_PARAM_FLASHCONTROLTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_IMAGE_FLASHCONTROLTYPE eFlashControl;
-} OMX_IMAGE_PARAM_FLASHCONTROLTYPE;
-
-
-/**
- * Focus control type
- */
-typedef enum OMX_IMAGE_FOCUSCONTROLTYPE {
- OMX_IMAGE_FocusControlOn = 0,
- OMX_IMAGE_FocusControlOff,
- OMX_IMAGE_FocusControlAuto,
- OMX_IMAGE_FocusControlAutoLock,
- OMX_IMAGE_FocusControlKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_IMAGE_FocusControlVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_IMAGE_FocusControlMax = 0x7FFFFFFF
-} OMX_IMAGE_FOCUSCONTROLTYPE;
-
-
-/**
- * Focus control configuration
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * eFocusControl : Focus control
- * nFocusSteps : Focus can take on values from 0 mm to infinity.
- * Interest is only in number of steps over this range.
- * nFocusStepIndex : Current focus step index
- */
-typedef struct OMX_IMAGE_CONFIG_FOCUSCONTROLTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_IMAGE_FOCUSCONTROLTYPE eFocusControl;
- OMX_U32 nFocusSteps;
- OMX_U32 nFocusStepIndex;
-} OMX_IMAGE_CONFIG_FOCUSCONTROLTYPE;
-
-
-/**
- * Q Factor for JPEG compression, which controls the tradeoff between image
- * quality and size. Q Factor provides a more simple means of controlling
- * JPEG compression quality, without directly programming Quantization
- * tables for chroma and luma
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nQFactor : JPEG Q factor value in the range of 1-100. A factor of 1
- * produces the smallest, worst quality images, and a factor
- * of 100 produces the largest, best quality images. A
- * typical default is 75 for small good quality images
- */
-typedef struct OMX_IMAGE_PARAM_QFACTORTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nQFactor;
-} OMX_IMAGE_PARAM_QFACTORTYPE;
-
-/**
- * Quantization table type
- */
-
-typedef enum OMX_IMAGE_QUANTIZATIONTABLETYPE {
- OMX_IMAGE_QuantizationTableLuma = 0,
- OMX_IMAGE_QuantizationTableChroma,
- OMX_IMAGE_QuantizationTableChromaCb,
- OMX_IMAGE_QuantizationTableChromaCr,
- OMX_IMAGE_QuantizationTableKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_IMAGE_QuantizationTableVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_IMAGE_QuantizationTableMax = 0x7FFFFFFF
-} OMX_IMAGE_QUANTIZATIONTABLETYPE;
-
-/**
- * JPEG quantization tables are used to determine DCT compression for
- * YUV data, as an alternative to specifying Q factor, providing exact
- * control of compression
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * eQuantizationTable : Quantization table type
- * nQuantizationMatrix[64] : JPEG quantization table of coefficients stored
- * in increasing columns then by rows of data (i.e.
- * row 1, ... row 8). Quantization values are in
- * the range 0-255 and stored in linear order
- * (i.e. the component will zig-zag the
- * quantization table data if required internally)
- */
-typedef struct OMX_IMAGE_PARAM_QUANTIZATIONTABLETYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_IMAGE_QUANTIZATIONTABLETYPE eQuantizationTable;
- OMX_U8 nQuantizationMatrix[64];
-} OMX_IMAGE_PARAM_QUANTIZATIONTABLETYPE;
-
-
-/**
- * Huffman table type, the same Huffman table is applied for chroma and
- * luma component
- */
-typedef enum OMX_IMAGE_HUFFMANTABLETYPE {
- OMX_IMAGE_HuffmanTableAC = 0,
- OMX_IMAGE_HuffmanTableDC,
- OMX_IMAGE_HuffmanTableACLuma,
- OMX_IMAGE_HuffmanTableACChroma,
- OMX_IMAGE_HuffmanTableDCLuma,
- OMX_IMAGE_HuffmanTableDCChroma,
- OMX_IMAGE_HuffmanTableKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_IMAGE_HuffmanTableVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_IMAGE_HuffmanTableMax = 0x7FFFFFFF
-} OMX_IMAGE_HUFFMANTABLETYPE;
-
-/**
- * JPEG Huffman table
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * eHuffmanTable : Huffman table type
- * nNumberOfHuffmanCodeOfLength[16] : 0-16, number of Huffman codes of each
- * possible length
- * nHuffmanTable[256] : 0-255, the size used for AC and DC
- * HuffmanTable are 16 and 162
- */
-typedef struct OMX_IMAGE_PARAM_HUFFMANTTABLETYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_IMAGE_HUFFMANTABLETYPE eHuffmanTable;
- OMX_U8 nNumberOfHuffmanCodeOfLength[16];
- OMX_U8 nHuffmanTable[256];
-}OMX_IMAGE_PARAM_HUFFMANTTABLETYPE;
-
-/** @} */
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
-/* File EOF */
--- a/omxil/omxilapi/v1_x/OMX_Index.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,259 +0,0 @@
-/*
- * Copyright (c) 2008 The Khronos Group Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject
- * to the following conditions:
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- */
-
-/** @file
- * OpenMax IL version 1.1.2
- * The OMX_Index header file contains the definitions for both applications
- * and components .
- */
-
-
-#ifndef OMX_Index_h
-#define OMX_Index_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-/* Each OMX header must include all required header files to allow the
- * header to compile without errors. The includes below are required
- * for this header file to compile successfully
- */
-#include <openmax/il/khronos/v1_x/OMX_Types.h>
-
-
-/** The OMX_INDEXTYPE enumeration is used to select a structure when either
- * getting or setting parameters and/or configuration data. Each entry in
- * this enumeration maps to an OMX specified structure. When the
- * OMX_GetParameter, OMX_SetParameter, OMX_GetConfig or OMX_SetConfig methods
- * are used, the second parameter will always be an entry from this enumeration
- * and the third entry will be the structure shown in the comments for the entry.
- * For example, if the application is initializing a cropping function, the
- * OMX_SetConfig command would have OMX_IndexConfigCommonInputCrop as the second parameter
- * and would send a pointer to an initialized OMX_RECTTYPE structure as the
- * third parameter.
- *
- * The enumeration entries named with the OMX_Config prefix are sent using
- * the OMX_SetConfig command and the enumeration entries named with the
- * OMX_PARAM_ prefix are sent using the OMX_SetParameter command.
- */
-typedef enum OMX_INDEXTYPE {
-
- OMX_IndexComponentStartUnused = 0x01000000,
- OMX_IndexParamPriorityMgmt, /**< reference: OMX_PRIORITYMGMTTYPE */
- OMX_IndexParamAudioInit, /**< reference: OMX_PORT_PARAM_TYPE */
- OMX_IndexParamImageInit, /**< reference: OMX_PORT_PARAM_TYPE */
- OMX_IndexParamVideoInit, /**< reference: OMX_PORT_PARAM_TYPE */
- OMX_IndexParamOtherInit, /**< reference: OMX_PORT_PARAM_TYPE */
- OMX_IndexParamNumAvailableStreams, /**< reference: OMX_PARAM_U32TYPE */
- OMX_IndexParamActiveStream, /**< reference: OMX_PARAM_U32TYPE */
- OMX_IndexParamSuspensionPolicy, /**< reference: OMX_PARAM_SUSPENSIONPOLICYTYPE */
- OMX_IndexParamComponentSuspended, /**< reference: OMX_PARAM_SUSPENSIONTYPE */
- OMX_IndexConfigCapturing, /**< reference: OMX_CONFIG_BOOLEANTYPE */
- OMX_IndexConfigCaptureMode, /**< reference: OMX_CONFIG_CAPTUREMODETYPE */
- OMX_IndexAutoPauseAfterCapture, /**< reference: OMX_CONFIG_BOOLEANTYPE */
- OMX_IndexParamContentURI, /**< reference: OMX_PARAM_CONTENTURITYPE */
- OMX_IndexParamCustomContentPipe, /**< reference: OMX_PARAM_CONTENTPIPETYPE */
- OMX_IndexParamDisableResourceConcealment, /**< reference: OMX_RESOURCECONCEALMENTTYPE */
- OMX_IndexConfigMetadataItemCount, /**< reference: OMX_CONFIG_METADATAITEMCOUNTTYPE */
- OMX_IndexConfigContainerNodeCount, /**< reference: OMX_CONFIG_CONTAINERNODECOUNTTYPE */
- OMX_IndexConfigMetadataItem, /**< reference: OMX_CONFIG_METADATAITEMTYPE */
- OMX_IndexConfigCounterNodeID, /**< reference: OMX_CONFIG_CONTAINERNODEIDTYPE */
- OMX_IndexParamMetadataFilterType, /**< reference: OMX_PARAM_METADATAFILTERTYPE */
- OMX_IndexParamMetadataKeyFilter, /**< reference: OMX_PARAM_METADATAFILTERTYPE */
- OMX_IndexConfigPriorityMgmt, /**< reference: OMX_PRIORITYMGMTTYPE */
- OMX_IndexParamStandardComponentRole, /**< reference: OMX_PARAM_COMPONENTROLETYPE */
-
- OMX_IndexPortStartUnused = 0x02000000,
- OMX_IndexParamPortDefinition, /**< reference: OMX_PARAM_PORTDEFINITIONTYPE */
- OMX_IndexParamCompBufferSupplier, /**< reference: OMX_PARAM_BUFFERSUPPLIERTYPE */
- OMX_IndexReservedStartUnused = 0x03000000,
-
- /* Audio parameters and configurations */
- OMX_IndexAudioStartUnused = 0x04000000,
- OMX_IndexParamAudioPortFormat, /**< reference: OMX_AUDIO_PARAM_PORTFORMATTYPE */
- OMX_IndexParamAudioPcm, /**< reference: OMX_AUDIO_PARAM_PCMMODETYPE */
- OMX_IndexParamAudioAac, /**< reference: OMX_AUDIO_PARAM_AACPROFILETYPE */
- OMX_IndexParamAudioRa, /**< reference: OMX_AUDIO_PARAM_RATYPE */
- OMX_IndexParamAudioMp3, /**< reference: OMX_AUDIO_PARAM_MP3TYPE */
- OMX_IndexParamAudioAdpcm, /**< reference: OMX_AUDIO_PARAM_ADPCMTYPE */
- OMX_IndexParamAudioG723, /**< reference: OMX_AUDIO_PARAM_G723TYPE */
- OMX_IndexParamAudioG729, /**< reference: OMX_AUDIO_PARAM_G729TYPE */
- OMX_IndexParamAudioAmr, /**< reference: OMX_AUDIO_PARAM_AMRTYPE */
- OMX_IndexParamAudioWma, /**< reference: OMX_AUDIO_PARAM_WMATYPE */
- OMX_IndexParamAudioSbc, /**< reference: OMX_AUDIO_PARAM_SBCTYPE */
- OMX_IndexParamAudioMidi, /**< reference: OMX_AUDIO_PARAM_MIDITYPE */
- OMX_IndexParamAudioGsm_FR, /**< reference: OMX_AUDIO_PARAM_GSMFRTYPE */
- OMX_IndexParamAudioMidiLoadUserSound, /**< reference: OMX_AUDIO_PARAM_MIDILOADUSERSOUNDTYPE */
- OMX_IndexParamAudioG726, /**< reference: OMX_AUDIO_PARAM_G726TYPE */
- OMX_IndexParamAudioGsm_EFR, /**< reference: OMX_AUDIO_PARAM_GSMEFRTYPE */
- OMX_IndexParamAudioGsm_HR, /**< reference: OMX_AUDIO_PARAM_GSMHRTYPE */
- OMX_IndexParamAudioPdc_FR, /**< reference: OMX_AUDIO_PARAM_PDCFRTYPE */
- OMX_IndexParamAudioPdc_EFR, /**< reference: OMX_AUDIO_PARAM_PDCEFRTYPE */
- OMX_IndexParamAudioPdc_HR, /**< reference: OMX_AUDIO_PARAM_PDCHRTYPE */
- OMX_IndexParamAudioTdma_FR, /**< reference: OMX_AUDIO_PARAM_TDMAFRTYPE */
- OMX_IndexParamAudioTdma_EFR, /**< reference: OMX_AUDIO_PARAM_TDMAEFRTYPE */
- OMX_IndexParamAudioQcelp8, /**< reference: OMX_AUDIO_PARAM_QCELP8TYPE */
- OMX_IndexParamAudioQcelp13, /**< reference: OMX_AUDIO_PARAM_QCELP13TYPE */
- OMX_IndexParamAudioEvrc, /**< reference: OMX_AUDIO_PARAM_EVRCTYPE */
- OMX_IndexParamAudioSmv, /**< reference: OMX_AUDIO_PARAM_SMVTYPE */
- OMX_IndexParamAudioVorbis, /**< reference: OMX_AUDIO_PARAM_VORBISTYPE */
-
- OMX_IndexConfigAudioMidiImmediateEvent, /**< reference: OMX_AUDIO_CONFIG_MIDIIMMEDIATEEVENTTYPE */
- OMX_IndexConfigAudioMidiControl, /**< reference: OMX_AUDIO_CONFIG_MIDICONTROLTYPE */
- OMX_IndexConfigAudioMidiSoundBankProgram, /**< reference: OMX_AUDIO_CONFIG_MIDISOUNDBANKPROGRAMTYPE */
- OMX_IndexConfigAudioMidiStatus, /**< reference: OMX_AUDIO_CONFIG_MIDISTATUSTYPE */
- OMX_IndexConfigAudioMidiMetaEvent, /**< reference: OMX_AUDIO_CONFIG_MIDIMETAEVENTTYPE */
- OMX_IndexConfigAudioMidiMetaEventData, /**< reference: OMX_AUDIO_CONFIG_MIDIMETAEVENTDATATYPE */
- OMX_IndexConfigAudioVolume, /**< reference: OMX_AUDIO_CONFIG_VOLUMETYPE */
- OMX_IndexConfigAudioBalance, /**< reference: OMX_AUDIO_CONFIG_BALANCETYPE */
- OMX_IndexConfigAudioChannelMute, /**< reference: OMX_AUDIO_CONFIG_CHANNELMUTETYPE */
- OMX_IndexConfigAudioMute, /**< reference: OMX_AUDIO_CONFIG_MUTETYPE */
- OMX_IndexConfigAudioLoudness, /**< reference: OMX_AUDIO_CONFIG_LOUDNESSTYPE */
- OMX_IndexConfigAudioEchoCancelation, /**< reference: OMX_AUDIO_CONFIG_ECHOCANCELATIONTYPE */
- OMX_IndexConfigAudioNoiseReduction, /**< reference: OMX_AUDIO_CONFIG_NOISEREDUCTIONTYPE */
- OMX_IndexConfigAudioBass, /**< reference: OMX_AUDIO_CONFIG_BASSTYPE */
- OMX_IndexConfigAudioTreble, /**< reference: OMX_AUDIO_CONFIG_TREBLETYPE */
- OMX_IndexConfigAudioStereoWidening, /**< reference: OMX_AUDIO_CONFIG_STEREOWIDENINGTYPE */
- OMX_IndexConfigAudioChorus, /**< reference: OMX_AUDIO_CONFIG_CHORUSTYPE */
- OMX_IndexConfigAudioEqualizer, /**< reference: OMX_AUDIO_CONFIG_EQUALIZERTYPE */
- OMX_IndexConfigAudioReverberation, /**< reference: OMX_AUDIO_CONFIG_REVERBERATIONTYPE */
- OMX_IndexConfigAudioChannelVolume, /**< reference: OMX_AUDIO_CONFIG_CHANNELVOLUMETYPE */
-
- /* Image specific parameters and configurations */
- OMX_IndexImageStartUnused = 0x05000000,
- OMX_IndexParamImagePortFormat, /**< reference: OMX_IMAGE_PARAM_PORTFORMATTYPE */
- OMX_IndexParamFlashControl, /**< reference: OMX_IMAGE_PARAM_FLASHCONTROLTYPE */
- OMX_IndexConfigFocusControl, /**< reference: OMX_IMAGE_CONFIG_FOCUSCONTROLTYPE */
- OMX_IndexParamQFactor, /**< reference: OMX_IMAGE_PARAM_QFACTORTYPE */
- OMX_IndexParamQuantizationTable, /**< reference: OMX_IMAGE_PARAM_QUANTIZATIONTABLETYPE */
- OMX_IndexParamHuffmanTable, /**< reference: OMX_IMAGE_PARAM_HUFFMANTTABLETYPE */
- OMX_IndexConfigFlashControl, /**< reference: OMX_IMAGE_PARAM_FLASHCONTROLTYPE */
-
- /* Video specific parameters and configurations */
- OMX_IndexVideoStartUnused = 0x06000000,
- OMX_IndexParamVideoPortFormat, /**< reference: OMX_VIDEO_PARAM_PORTFORMATTYPE */
- OMX_IndexParamVideoQuantization, /**< reference: OMX_VIDEO_PARAM_QUANTIZATIONTYPE */
- OMX_IndexParamVideoFastUpdate, /**< reference: OMX_VIDEO_PARAM_VIDEOFASTUPDATETYPE */
- OMX_IndexParamVideoBitrate, /**< reference: OMX_VIDEO_PARAM_BITRATETYPE */
- OMX_IndexParamVideoMotionVector, /**< reference: OMX_VIDEO_PARAM_MOTIONVECTORTYPE */
- OMX_IndexParamVideoIntraRefresh, /**< reference: OMX_VIDEO_PARAM_INTRAREFRESHTYPE */
- OMX_IndexParamVideoErrorCorrection, /**< reference: OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE */
- OMX_IndexParamVideoVBSMC, /**< reference: OMX_VIDEO_PARAM_VBSMCTYPE */
- OMX_IndexParamVideoMpeg2, /**< reference: OMX_VIDEO_PARAM_MPEG2TYPE */
- OMX_IndexParamVideoMpeg4, /**< reference: OMX_VIDEO_PARAM_MPEG4TYPE */
- OMX_IndexParamVideoWmv, /**< reference: OMX_VIDEO_PARAM_WMVTYPE */
- OMX_IndexParamVideoRv, /**< reference: OMX_VIDEO_PARAM_RVTYPE */
- OMX_IndexParamVideoAvc, /**< reference: OMX_VIDEO_PARAM_AVCTYPE */
- OMX_IndexParamVideoH263, /**< reference: OMX_VIDEO_PARAM_H263TYPE */
- OMX_IndexParamVideoProfileLevelQuerySupported, /**< reference: OMX_VIDEO_PARAM_PROFILELEVELTYPE */
- OMX_IndexParamVideoProfileLevelCurrent, /**< reference: OMX_VIDEO_PARAM_PROFILELEVELTYPE */
- OMX_IndexConfigVideoBitrate, /**< reference: OMX_VIDEO_CONFIG_BITRATETYPE */
- OMX_IndexConfigVideoFramerate, /**< reference: OMX_CONFIG_FRAMERATETYPE */
- OMX_IndexConfigVideoIntraVOPRefresh, /**< reference: OMX_CONFIG_INTRAREFRESHVOPTYPE */
- OMX_IndexConfigVideoIntraMBRefresh, /**< reference: OMX_CONFIG_MACROBLOCKERRORMAPTYPE */
- OMX_IndexConfigVideoMBErrorReporting, /**< reference: OMX_CONFIG_MBERRORREPORTINGTYPE */
- OMX_IndexParamVideoMacroblocksPerFrame, /**< reference: OMX_PARAM_MACROBLOCKSTYPE */
- OMX_IndexConfigVideoMacroBlockErrorMap, /**< reference: OMX_CONFIG_MACROBLOCKERRORMAPTYPE */
- OMX_IndexParamVideoSliceFMO, /**< reference: OMX_VIDEO_PARAM_AVCSLICEFMO */
- OMX_IndexConfigVideoAVCIntraPeriod, /**< reference: OMX_VIDEO_CONFIG_AVCINTRAPERIOD */
- OMX_IndexConfigVideoNalSize, /**< reference: OMX_VIDEO_CONFIG_NALSIZE */
-
- /* Image & Video common Configurations */
- OMX_IndexCommonStartUnused = 0x07000000,
- OMX_IndexParamCommonDeblocking, /**< reference: OMX_PARAM_DEBLOCKINGTYPE */
- OMX_IndexParamCommonSensorMode, /**< reference: OMX_PARAM_SENSORMODETYPE */
- OMX_IndexParamCommonInterleave, /**< reference: OMX_PARAM_INTERLEAVETYPE */
- OMX_IndexConfigCommonColorFormatConversion, /**< reference: OMX_CONFIG_COLORCONVERSIONTYPE */
- OMX_IndexConfigCommonScale, /**< reference: OMX_CONFIG_SCALEFACTORTYPE */
- OMX_IndexConfigCommonImageFilter, /**< reference: OMX_CONFIG_IMAGEFILTERTYPE */
- OMX_IndexConfigCommonColorEnhancement, /**< reference: OMX_CONFIG_COLORENHANCEMENTTYPE */
- OMX_IndexConfigCommonColorKey, /**< reference: OMX_CONFIG_COLORKEYTYPE */
- OMX_IndexConfigCommonColorBlend, /**< reference: OMX_CONFIG_COLORBLENDTYPE */
- OMX_IndexConfigCommonFrameStabilisation,/**< reference: OMX_CONFIG_FRAMESTABTYPE */
- OMX_IndexConfigCommonRotate, /**< reference: OMX_CONFIG_ROTATIONTYPE */
- OMX_IndexConfigCommonMirror, /**< reference: OMX_CONFIG_MIRRORTYPE */
- OMX_IndexConfigCommonOutputPosition, /**< reference: OMX_CONFIG_POINTTYPE */
- OMX_IndexConfigCommonInputCrop, /**< reference: OMX_CONFIG_RECTTYPE */
- OMX_IndexConfigCommonOutputCrop, /**< reference: OMX_CONFIG_RECTTYPE */
- OMX_IndexConfigCommonDigitalZoom, /**< reference: OMX_CONFIG_SCALEFACTORTYPE */
- OMX_IndexConfigCommonOpticalZoom, /**< reference: OMX_CONFIG_SCALEFACTORTYPE*/
- OMX_IndexConfigCommonWhiteBalance, /**< reference: OMX_CONFIG_WHITEBALCONTROLTYPE */
- OMX_IndexConfigCommonExposure, /**< reference: OMX_CONFIG_EXPOSURECONTROLTYPE */
- OMX_IndexConfigCommonContrast, /**< reference: OMX_CONFIG_CONTRASTTYPE */
- OMX_IndexConfigCommonBrightness, /**< reference: OMX_CONFIG_BRIGHTNESSTYPE */
- OMX_IndexConfigCommonBacklight, /**< reference: OMX_CONFIG_BACKLIGHTTYPE */
- OMX_IndexConfigCommonGamma, /**< reference: OMX_CONFIG_GAMMATYPE */
- OMX_IndexConfigCommonSaturation, /**< reference: OMX_CONFIG_SATURATIONTYPE */
- OMX_IndexConfigCommonLightness, /**< reference: OMX_CONFIG_LIGHTNESSTYPE */
- OMX_IndexConfigCommonExclusionRect, /**< reference: OMX_CONFIG_RECTTYPE */
- OMX_IndexConfigCommonDithering, /**< reference: OMX_CONFIG_DITHERTYPE */
- OMX_IndexConfigCommonPlaneBlend, /**< reference: OMX_CONFIG_PLANEBLENDTYPE */
- OMX_IndexConfigCommonExposureValue, /**< reference: OMX_CONFIG_EXPOSUREVALUETYPE */
- OMX_IndexConfigCommonOutputSize, /**< reference: OMX_FRAMESIZETYPE */
- OMX_IndexParamCommonExtraQuantData, /**< reference: OMX_OTHER_EXTRADATATYPE */
- OMX_IndexConfigCommonFocusRegion, /**< reference: OMX_CONFIG_FOCUSREGIONTYPE */
- OMX_IndexConfigCommonFocusStatus, /**< reference: OMX_PARAM_FOCUSSTATUSTYPE */
- OMX_IndexConfigCommonTransitionEffect, /**< reference: OMX_CONFIG_TRANSITIONEFFECTTYPE */
-
- /* Reserved Configuration range */
- OMX_IndexOtherStartUnused = 0x08000000,
- OMX_IndexParamOtherPortFormat, /**< reference: OMX_OTHER_PARAM_PORTFORMATTYPE */
- OMX_IndexConfigOtherPower, /**< reference: OMX_OTHER_CONFIG_POWERTYPE */
- OMX_IndexConfigOtherStats, /**< reference: OMX_OTHER_CONFIG_STATSTYPE */
-
-
- /* Reserved Time range */
- OMX_IndexTimeStartUnused = 0x09000000,
- OMX_IndexConfigTimeScale, /**< reference: OMX_TIME_CONFIG_SCALETYPE */
- OMX_IndexConfigTimeClockState, /**< reference: OMX_TIME_CONFIG_CLOCKSTATETYPE */
- OMX_IndexConfigTimeActiveRefClock, /**< reference: OMX_TIME_CONFIG_ACTIVEREFCLOCKTYPE */
- OMX_IndexConfigTimeCurrentMediaTime, /**< reference: OMX_TIME_CONFIG_TIMESTAMPTYPE (read only) */
- OMX_IndexConfigTimeCurrentWallTime, /**< reference: OMX_TIME_CONFIG_TIMESTAMPTYPE (read only) */
- OMX_IndexConfigTimeCurrentAudioReference, /**< reference: OMX_TIME_CONFIG_TIMESTAMPTYPE (write only) */
- OMX_IndexConfigTimeCurrentVideoReference, /**< reference: OMX_TIME_CONFIG_TIMESTAMPTYPE (write only) */
- OMX_IndexConfigTimeMediaTimeRequest, /**< reference: OMX_TIME_CONFIG_MEDIATIMEREQUESTTYPE (write only) */
- OMX_IndexConfigTimeClientStartTime, /**<reference: OMX_TIME_CONFIG_TIMESTAMPTYPE (write only) */
- OMX_IndexConfigTimePosition, /**< reference: OMX_TIME_CONFIG_TIMESTAMPTYPE */
- OMX_IndexConfigTimeSeekMode, /**< reference: OMX_TIME_CONFIG_SEEKMODETYPE */
-
-
- OMX_IndexKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- /* Vendor specific area */
- OMX_IndexVendorStartUnused = 0x7F000000,
- /* Vendor specific structures should be in the range of 0x7F000000
- to 0x7FFFFFFE. This range is not broken out by vendor, so
- private indexes are not guaranteed unique and therefore should
- only be sent to the appropriate component. */
-
- OMX_IndexMax = 0x7FFFFFFF
-
-} OMX_INDEXTYPE;
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
-/* File EOF */
--- a/omxil/omxilapi/v1_x/OMX_Other.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,338 +0,0 @@
-/*
- * Copyright (c) 2008 The Khronos Group Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject
- * to the following conditions:
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- */
-
-/** @file
- * OpenMax IL version 1.1.2
- * The structures needed by Other components to exchange
- * parameters and configuration data with the components.
- */
-
-#ifndef OMX_Other_h
-#define OMX_Other_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-/* Each OMX header must include all required header files to allow the
- * header to compile without errors. The includes below are required
- * for this header file to compile successfully
- */
-
-#include <openmax/il/khronos/v1_x/OMX_Core.h>
-
-
-/**
- * Enumeration of possible data types which match to multiple domains or no
- * domain at all. For types which are vendor specific, a value above
- * OMX_OTHER_VENDORTSTART should be used.
- */
-typedef enum OMX_OTHER_FORMATTYPE {
- OMX_OTHER_FormatTime = 0, /**< Transmission of various timestamps, elapsed time,
- time deltas, etc */
- OMX_OTHER_FormatPower, /**< Perhaps used for enabling/disabling power
- management, setting clocks? */
- OMX_OTHER_FormatStats, /**< Could be things such as frame rate, frames
- dropped, etc */
- OMX_OTHER_FormatBinary, /**< Arbitrary binary data */
- OMX_OTHER_FormatVendorReserved = 1000, /**< Starting value for vendor specific
- formats */
-
- OMX_OTHER_FormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_OTHER_FormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_OTHER_FormatMax = 0x7FFFFFFF
-} OMX_OTHER_FORMATTYPE;
-
-/**
- * Enumeration of seek modes.
- */
-typedef enum OMX_TIME_SEEKMODETYPE {
- OMX_TIME_SeekModeFast = 0, /**< Prefer seeking to an approximation
- * of the requested seek position over
- * the actual seek position if it
- * results in a faster seek. */
- OMX_TIME_SeekModeAccurate, /**< Prefer seeking to the actual seek
- * position over an approximation
- * of the requested seek position even
- * if it results in a slower seek. */
- OMX_TIME_SeekModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_TIME_SeekModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_TIME_SeekModeMax = 0x7FFFFFFF
-} OMX_TIME_SEEKMODETYPE;
-
-/* Structure representing the seekmode of the component */
-typedef struct OMX_TIME_CONFIG_SEEKMODETYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_TIME_SEEKMODETYPE eType; /**< The seek mode */
-} OMX_TIME_CONFIG_SEEKMODETYPE;
-
-/** Structure representing a time stamp used with the following configs
- * on the Clock Component (CC):
- *
- * OMX_IndexConfigTimeCurrentWallTime: query of the CC’s current wall
- * time
- * OMX_IndexConfigTimeCurrentMediaTime: query of the CC’s current media
- * time
- * OMX_IndexConfigTimeCurrentAudioReference and
- * OMX_IndexConfigTimeCurrentVideoReference: audio/video reference
- * clock sending SC its reference time
- * OMX_IndexConfigTimeClientStartTime: a Clock Component client sends
- * this structure to the Clock Component via a SetConfig on its
- * client port when it receives a buffer with
- * OMX_BUFFERFLAG_STARTTIME set. It must use the timestamp
- * specified by that buffer for nStartTimestamp.
- *
- * It’s also used with the following config on components in general:
- *
- * OMX_IndexConfigTimePosition: IL client querying component position
- * (GetConfig) or commanding a component to seek to the given location
- * (SetConfig)
- */
-typedef struct OMX_TIME_CONFIG_TIMESTAMPTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version
- * information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_TICKS nTimestamp; /**< timestamp .*/
-} OMX_TIME_CONFIG_TIMESTAMPTYPE;
-
-/** Enumeration of possible reference clocks to the media time. */
-typedef enum OMX_TIME_UPDATETYPE {
- OMX_TIME_UpdateRequestFulfillment, /**< Update is the fulfillment of a media time request. */
- OMX_TIME_UpdateScaleChanged, /**< Update was generated because the scale chagned. */
- OMX_TIME_UpdateClockStateChanged, /**< Update was generated because the clock state changed. */
- OMX_TIME_UpdateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_TIME_UpdateVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_TIME_UpdateMax = 0x7FFFFFFF
-} OMX_TIME_UPDATETYPE;
-
-/** Enumeration of possible reference clocks to the media time. */
-typedef enum OMX_TIME_REFCLOCKTYPE {
- OMX_TIME_RefClockNone, /**< Use no references. */
- OMX_TIME_RefClockAudio, /**< Use references sent through OMX_IndexConfigTimeCurrentAudioReference */
- OMX_TIME_RefClockVideo, /**< Use references sent through OMX_IndexConfigTimeCurrentVideoReference */
- OMX_TIME_RefClockKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_TIME_RefClockVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_TIME_RefClockMax = 0x7FFFFFFF
-} OMX_TIME_REFCLOCKTYPE;
-
-/** Enumeration of clock states. */
-typedef enum OMX_TIME_CLOCKSTATE {
- OMX_TIME_ClockStateRunning, /**< Clock running. */
- OMX_TIME_ClockStateWaitingForStartTime, /**< Clock waiting until the
- * prescribed clients emit their
- * start time. */
- OMX_TIME_ClockStateStopped, /**< Clock stopped. */
- OMX_TIME_ClockStateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_TIME_ClockStateVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_TIME_ClockStateMax = 0x7FFFFFFF
-} OMX_TIME_CLOCKSTATE;
-
-/** Structure representing a media time request to the clock component.
- *
- * A client component sends this structure to the Clock Component via a SetConfig
- * on its client port to specify a media timestamp the Clock Component
- * should emit. The Clock Component should fulfill the request by sending a
- * OMX_TIME_MEDIATIMETYPE when its media clock matches the requested
- * timestamp.
- *
- * The client may require a media time request be fulfilled slightly
- * earlier than the media time specified. In this case the client specifies
- * an offset which is equal to the difference between wall time corresponding
- * to the requested media time and the wall time when it will be
- * fulfilled.
- *
- * A client component may uses these requests and the OMX_TIME_MEDIATIMETYPE to
- * time events according to timestamps. If a client must perform an operation O at
- * a time T (e.g. deliver a video frame at its corresponding timestamp), it makes a
- * media time request at T (perhaps specifying an offset to ensure the request fulfillment
- * is a little early). When the clock component passes the resulting OMX_TIME_MEDIATIMETYPE
- * structure back to the client component, the client may perform operation O (perhaps having
- * to wait a slight amount more time itself as specified by the return values).
- */
-
-typedef struct OMX_TIME_CONFIG_MEDIATIMEREQUESTTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< port that this structure applies to */
- OMX_PTR pClientPrivate; /**< Client private data to disabiguate this media time
- * from others (e.g. the number of the frame to deliver).
- * Duplicated in the media time structure that fulfills
- * this request. A value of zero is reserved for time scale
- * updates. */
- OMX_TICKS nMediaTimestamp; /**< Media timestamp requested.*/
- OMX_TICKS nOffset; /**< Amount of wall clock time by which this
- * request should be fulfilled early */
-} OMX_TIME_CONFIG_MEDIATIMEREQUESTTYPE;
-
-/**< Structure sent from the clock component client either when fulfilling
- * a media time request or when the time scale has changed.
- *
- * In the former case the Clock Component fills this structure and times its emission
- * to a client component (via the client port) according to the corresponding media
- * time request sent by the client. The Clock Component should time the emission to occur
- * when the requested timestamp matches the Clock Component's media time but also the
- * prescribed offset early.
- *
- * Upon scale changes the clock component clears the nClientPrivate data, sends the current
- * media time and sets the nScale to the new scale via the client port. It emits a
- * OMX_TIME_MEDIATIMETYPE to all clients independent of any requests. This allows clients to
- * alter processing to accomodate scaling. For instance a video component might skip inter-frames
- * in the case of extreme fastforward. Likewise an audio component might add or remove samples
- * from an audio frame to scale audio data.
- *
- * It is expected that some clock components may not be able to fulfill requests
- * at exactly the prescribed time. This is acceptable so long as the request is
- * fulfilled at least as early as described and not later. This structure provides
- * fields the client may use to wait for the remaining time.
- *
- * The client may use either the nOffset or nWallTimeAtMedia fields to determine the
- * wall time until the nMediaTimestamp actually occurs. In the latter case the
- * client can get a more accurate value for offset by getting the current wall
- * from the cloc component and subtracting it from nWallTimeAtMedia.
- */
-
-typedef struct OMX_TIME_MEDIATIMETYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nClientPrivate; /**< Client private data to disabiguate this media time
- * from others. Copied from the media time request.
- * A value of zero is reserved for time scale updates. */
- OMX_TIME_UPDATETYPE eUpdateType; /**< Reason for the update */
- OMX_TICKS nMediaTimestamp; /**< Media time requested. If no media time was
- * requested then this is the current media time. */
- OMX_TICKS nOffset; /**< Amount of wall clock time by which this
- * request was actually fulfilled early */
-
- OMX_TICKS nWallTimeAtMediaTime; /**< Wall time corresponding to nMediaTimeStamp.
- * A client may compare this value to current
- * media time obtained from the Clock Component to determine
- * the wall time until the media timestamp is really
- * current. */
- OMX_S32 xScale; /**< Current media time scale in Q16 format. */
- OMX_TIME_CLOCKSTATE eState; /* Seeking Change. Added 7/12.*/
- /**< State of the media time. */
-} OMX_TIME_MEDIATIMETYPE;
-
-/** Structure representing the current media time scale factor. Applicable only to clock
- * component, other components see scale changes via OMX_TIME_MEDIATIMETYPE buffers sent via
- * the clock component client ports. Upon recieving this config the clock component changes
- * the rate by which the media time increases or decreases effectively implementing trick modes.
- */
-typedef struct OMX_TIME_CONFIG_SCALETYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_S32 xScale; /**< This is a value in Q16 format which is used for
- * scaling the media time */
-} OMX_TIME_CONFIG_SCALETYPE;
-
-/** Bits used to identify a clock port. Used in OMX_TIME_CONFIG_CLOCKSTATETYPE’s nWaitMask field */
-#define OMX_CLOCKPORT0 0x00000001
-#define OMX_CLOCKPORT1 0x00000002
-#define OMX_CLOCKPORT2 0x00000004
-#define OMX_CLOCKPORT3 0x00000008
-#define OMX_CLOCKPORT4 0x00000010
-#define OMX_CLOCKPORT5 0x00000020
-#define OMX_CLOCKPORT6 0x00000040
-#define OMX_CLOCKPORT7 0x00000080
-
-/** Structure representing the current mode of the media clock.
- * IL Client uses this config to change or query the mode of the
- * media clock of the clock component. Applicable only to clock
- * component.
- *
- * On a SetConfig if eState is OMX_TIME_ClockStateRunning media time
- * starts immediately at the prescribed start time. If
- * OMX_TIME_ClockStateWaitingForStartTime the Clock Component ignores
- * the given nStartTime and waits for all clients specified in the
- * nWaitMask to send starttimes (via
- * OMX_IndexConfigTimeClientStartTime). The Clock Component then starts
- * the media clock using the earliest start time supplied. */
-typedef struct OMX_TIME_CONFIG_CLOCKSTATETYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version
- * information */
- OMX_TIME_CLOCKSTATE eState; /**< State of the media time. */
- OMX_TICKS nStartTime; /**< Start time of the media time. */
- OMX_TICKS nOffset; /**< Time to offset the media time by
- * (e.g. preroll). Media time will be
- * reported to be nOffset ticks earlier.
- */
- OMX_U32 nWaitMask; /**< Mask of OMX_CLOCKPORT values. */
-} OMX_TIME_CONFIG_CLOCKSTATETYPE;
-
-/** Structure representing the reference clock currently being used to
- * compute media time. IL client uses this config to change or query the
- * clock component's active reference clock */
-typedef struct OMX_TIME_CONFIG_ACTIVEREFCLOCKTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_TIME_REFCLOCKTYPE eClock; /**< Reference clock used to compute media time */
-} OMX_TIME_CONFIG_ACTIVEREFCLOCKTYPE;
-
-/** Descriptor for setting specifics of power type.
- * Note: this structure is listed for backwards compatibility. */
-typedef struct OMX_OTHER_CONFIG_POWERTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_BOOL bEnablePM; /**< Flag to enable Power Management */
-} OMX_OTHER_CONFIG_POWERTYPE;
-
-
-/** Descriptor for setting specifics of stats type.
- * Note: this structure is listed for backwards compatibility. */
-typedef struct OMX_OTHER_CONFIG_STATSTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- /* what goes here */
-} OMX_OTHER_CONFIG_STATSTYPE;
-
-
-/**
- * The PortDefinition structure is used to define all of the parameters
- * necessary for the compliant component to setup an input or an output other
- * path.
- */
-typedef struct OMX_OTHER_PORTDEFINITIONTYPE {
- OMX_OTHER_FORMATTYPE eFormat; /**< Type of data expected for this channel */
-} OMX_OTHER_PORTDEFINITIONTYPE;
-
-/** Port format parameter. This structure is used to enumerate
- * the various data input/output format supported by the port.
- */
-typedef struct OMX_OTHER_PARAM_PORTFORMATTYPE {
- OMX_U32 nSize; /**< size of the structure in bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< Indicates which port to set */
- OMX_U32 nIndex; /**< Indicates the enumeration index for the format from 0x0 to N-1 */
- OMX_OTHER_FORMATTYPE eFormat; /**< Type of data expected for this channel */
-} OMX_OTHER_PARAM_PORTFORMATTYPE;
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
-/* File EOF */
--- a/omxil/omxilapi/v1_x/OMX_Types.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,359 +0,0 @@
-/*
- * Copyright (c) 2008 The Khronos Group Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject
- * to the following conditions:
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- */
-
-/** OMX_Types.h - OpenMax IL version 1.1.2
- * The OMX_Types header file contains the primitive type definitions used by
- * the core, the application and the component. This file may need to be
- * modified to be used on systems that do not have "char" set to 8 bits,
- * "short" set to 16 bits and "long" set to 32 bits.
- */
-
-#ifndef OMX_Types_h
-#define OMX_Types_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/** The OMX_API and OMX_APIENTRY are platform specific definitions used
- * to declare OMX function prototypes. They are modified to meet the
- * requirements for a particular platform */
-#ifdef __SYMBIAN32__
-# ifdef __OMX_EXPORTS
-# define OMX_API __declspec(dllexport)
-# else
-# ifdef _WIN32
-# define OMX_API __declspec(dllexport)
-# else
-# define OMX_API __declspec(dllimport)
-# endif
-# endif
-#else
-# ifdef _WIN32
-# ifdef __OMX_EXPORTS
-# define OMX_API __declspec(dllexport)
-# else
-# define OMX_API __declspec(dllimport)
-# endif
-# else
-# ifdef __OMX_EXPORTS
-# define OMX_API
-# else
-# define OMX_API extern
-# endif
-# endif
-#endif
-
-#ifndef OMX_APIENTRY
-#define OMX_APIENTRY
-#endif
-
-/** OMX_IN is used to identify inputs to an OMX function. This designation
- will also be used in the case of a pointer that points to a parameter
- that is used as an output. */
-#ifndef OMX_IN
-#define OMX_IN
-#endif
-
-/** OMX_OUT is used to identify outputs from an OMX function. This
- designation will also be used in the case of a pointer that points
- to a parameter that is used as an input. */
-#ifndef OMX_OUT
-#define OMX_OUT
-#endif
-
-
-/** OMX_INOUT is used to identify parameters that may be either inputs or
- outputs from an OMX function at the same time. This designation will
- also be used in the case of a pointer that points to a parameter that
- is used both as an input and an output. */
-#ifndef OMX_INOUT
-#define OMX_INOUT
-#endif
-
-/** OMX_ALL is used to as a wildcard to select all entities of the same type
- * when specifying the index, or referring to a object by an index. (i.e.
- * use OMX_ALL to indicate all N channels). When used as a port index
- * for a config or parameter this OMX_ALL denotes that the config or
- * parameter applies to the entire component not just one port. */
-#define OMX_ALL 0xFFFFFFFF
-
-/** In the following we define groups that help building doxygen documentation */
-
-/** @defgroup core OpenMAX IL core
- * Functions and structure related to the OMX IL core
- */
-
- /** @defgroup comp OpenMAX IL component
- * Functions and structure related to the OMX IL component
- */
-
-/** @defgroup rpm Resource and Policy Management
- * Structures for resource and policy management of components
- */
-
-/** @defgroup buf Buffer Management
- * Buffer handling functions and structures
- */
-
-/** @defgroup tun Tunneling
- * @ingroup core comp
- * Structures and functions to manage tunnels among component ports
- */
-
-/** @defgroup cp Content Pipes
- * @ingroup core
- */
-
- /** @defgroup metadata Metadata handling
- *
- */
-
-/** OMX_U8 is an 8 bit unsigned quantity that is byte aligned */
-typedef unsigned char OMX_U8;
-
-/** OMX_S8 is an 8 bit signed quantity that is byte aligned */
-typedef signed char OMX_S8;
-
-/** OMX_U16 is a 16 bit unsigned quantity that is 16 bit word aligned */
-typedef unsigned short OMX_U16;
-
-/** OMX_S16 is a 16 bit signed quantity that is 16 bit word aligned */
-typedef signed short OMX_S16;
-
-/** OMX_U32 is a 32 bit unsigned quantity that is 32 bit word aligned */
-typedef unsigned long OMX_U32;
-
-/** OMX_S32 is a 32 bit signed quantity that is 32 bit word aligned */
-typedef signed long OMX_S32;
-
-
-/* Users with compilers that cannot accept the "long long" designation should
- define the OMX_SKIP64BIT macro. It should be noted that this may cause
- some components to fail to compile if the component was written to require
- 64 bit integral types. However, these components would NOT compile anyway
- since the compiler does not support the way the component was written.
-*/
-#ifndef OMX_SKIP64BIT
-#ifdef __SYMBIAN32__
-/** OMX_U64 is a 64 bit unsigned quantity that is 64 bit word aligned */
-typedef unsigned long long OMX_U64;
-
-/** OMX_S64 is a 64 bit signed quantity that is 64 bit word aligned */
-typedef signed long long OMX_S64;
-
-#elif defined(WIN32)
-
-/** OMX_U64 is a 64 bit unsigned quantity that is 64 bit word aligned */
-typedef unsigned __int64 OMX_U64;
-
-/** OMX_S64 is a 64 bit signed quantity that is 64 bit word aligned */
-typedef signed __int64 OMX_S64;
-
-#else /* WIN32 */
-
-/** OMX_U64 is a 64 bit unsigned quantity that is 64 bit word aligned */
-typedef unsigned long long OMX_U64;
-
-/** OMX_S64 is a 64 bit signed quantity that is 64 bit word aligned */
-typedef signed long long OMX_S64;
-
-#endif /* WIN32 */
-#endif
-
-
-/** The OMX_BOOL type is intended to be used to represent a true or a false
- value when passing parameters to and from the OMX core and components. The
- OMX_BOOL is a 32 bit quantity and is aligned on a 32 bit word boundary.
- */
-typedef enum OMX_BOOL {
- OMX_FALSE = 0,
- OMX_TRUE = !OMX_FALSE,
- OMX_BOOL_MAX = 0x7FFFFFFF
-} OMX_BOOL;
-
-/** The OMX_PTR type is intended to be used to pass pointers between the OMX
- applications and the OMX Core and components. This is a 32 bit pointer and
- is aligned on a 32 bit boundary.
- */
-typedef void* OMX_PTR;
-
-/** The OMX_STRING type is intended to be used to pass "C" type strings between
- the application and the core and component. The OMX_STRING type is a 32
- bit pointer to a zero terminated string. The pointer is word aligned and
- the string is byte aligned.
- */
-typedef char* OMX_STRING;
-
-/** The OMX_BYTE type is intended to be used to pass arrays of bytes such as
- buffers between the application and the component and core. The OMX_BYTE
- type is a 32 bit pointer to a zero terminated string. The pointer is word
- aligned and the string is byte aligned.
- */
-typedef unsigned char* OMX_BYTE;
-
-/** OMX_UUIDTYPE is a very long unique identifier to uniquely identify
- at runtime. This identifier should be generated by a component in a way
- that guarantees that every instance of the identifier running on the system
- is unique. */
-typedef unsigned char OMX_UUIDTYPE[128];
-
-/** The OMX_DIRTYPE enumeration is used to indicate if a port is an input or
- an output port. This enumeration is common across all component types.
- */
-typedef enum OMX_DIRTYPE
-{
- OMX_DirInput, /**< Port is an input port */
- OMX_DirOutput, /**< Port is an output port */
- OMX_DirMax = 0x7FFFFFFF
-} OMX_DIRTYPE;
-
-/** The OMX_ENDIANTYPE enumeration is used to indicate the bit ordering
- for numerical data (i.e. big endian, or little endian).
- */
-typedef enum OMX_ENDIANTYPE
-{
- OMX_EndianBig, /**< big endian */
- OMX_EndianLittle, /**< little endian */
- OMX_EndianMax = 0x7FFFFFFF
-} OMX_ENDIANTYPE;
-
-
-/** The OMX_NUMERICALDATATYPE enumeration is used to indicate if data
- is signed or unsigned
- */
-typedef enum OMX_NUMERICALDATATYPE
-{
- OMX_NumericalDataSigned, /**< signed data */
- OMX_NumericalDataUnsigned, /**< unsigned data */
- OMX_NumercialDataMax = 0x7FFFFFFF
-} OMX_NUMERICALDATATYPE;
-
-
-/** Unsigned bounded value type */
-typedef struct OMX_BU32 {
- OMX_U32 nValue; /**< actual value */
- OMX_U32 nMin; /**< minimum for value (i.e. nValue >= nMin) */
- OMX_U32 nMax; /**< maximum for value (i.e. nValue <= nMax) */
-} OMX_BU32;
-
-
-/** Signed bounded value type */
-typedef struct OMX_BS32 {
- OMX_S32 nValue; /**< actual value */
- OMX_S32 nMin; /**< minimum for value (i.e. nValue >= nMin) */
- OMX_S32 nMax; /**< maximum for value (i.e. nValue <= nMax) */
-} OMX_BS32;
-
-
-/** Structure representing some time or duration in microseconds. This structure
- * must be interpreted as a signed 64 bit value. The quantity is signed to accommodate
- * negative deltas and preroll scenarios. The quantity is represented in microseconds
- * to accomodate high resolution timestamps (e.g. DVD presentation timestamps based
- * on a 90kHz clock) and to allow more accurate and synchronized delivery (e.g.
- * individual audio samples delivered at 192 kHz). The quantity is 64 bit to
- * accommodate a large dynamic range (signed 32 bit values would allow only for plus
- * or minus 35 minutes).
- *
- * Implementations with limited precision may convert the signed 64 bit value to
- * a signed 32 bit value internally but risk loss of precision.
- */
-#ifndef OMX_SKIP64BIT
-typedef OMX_S64 OMX_TICKS;
-#else
-typedef struct OMX_TICKS
-{
- OMX_U32 nLowPart; /** low bits of the signed 64 bit tick value */
- OMX_U32 nHighPart; /** high bits of the signed 64 bit tick value */
-} OMX_TICKS;
-#endif
-#define OMX_TICKS_PER_SECOND 1000000
-
-/** Define the public interface for the OMX Handle. The core will not use
- this value internally, but the application should only use this value.
- */
-typedef void* OMX_HANDLETYPE;
-
-typedef struct OMX_MARKTYPE
-{
- OMX_HANDLETYPE hMarkTargetComponent; /**< The component that will
- generate a mark event upon
- processing the mark. */
- OMX_PTR pMarkData; /**< Application specific data associated with
- the mark sent on a mark event to disambiguate
- this mark from others. */
-} OMX_MARKTYPE;
-
-
-/** OMX_NATIVE_DEVICETYPE is used to map a OMX video port to the
- * platform & operating specific object used to reference the display
- * or can be used by a audio port for native audio rendering */
-typedef void* OMX_NATIVE_DEVICETYPE;
-
-/** OMX_NATIVE_WINDOWTYPE is used to map a OMX video port to the
- * platform & operating specific object used to reference the window */
-typedef void* OMX_NATIVE_WINDOWTYPE;
-
-
-/** Define the OMX IL version that corresponds to this set of header files.
- * We also define a combined version that can be used to write or compare
- * values of the 32bit nVersion field, assuming a little endian architecture */
-#define OMX_VERSION_MAJOR 1
-#define OMX_VERSION_MINOR 1
-#define OMX_VERSION_REVISION 2
-#define OMX_VERSION_STEP 0
-
-#define OMX_VERSION ((OMX_VERSION_STEP<<24) | (OMX_VERSION_REVISION<<16) | (OMX_VERSION_MINOR<<8) | OMX_VERSION_MAJOR)
-
-
-/** The OMX_VERSIONTYPE union is used to specify the version for
- a structure or component. For a component, the version is entirely
- specified by the component vendor. Components doing the same function
- from different vendors may or may not have the same version. For
- structures, the version shall be set by the entity that allocates the
- structure. For structures specified in the OMX 1.1 specification, the
- value of the version shall be set to 1.1.0.0 in all cases. Access to the
- OMX_VERSIONTYPE can be by a single 32 bit access (e.g. by nVersion) or
- by accessing one of the structure elements to, for example, check only
- the Major revision.
- */
-typedef union OMX_VERSIONTYPE
-{
- struct
- {
- OMX_U8 nVersionMajor; /**< Major version accessor element */
- OMX_U8 nVersionMinor; /**< Minor version accessor element */
- OMX_U8 nRevision; /**< Revision version accessor element */
- OMX_U8 nStep; /**< Step version accessor element */
- } s;
- OMX_U32 nVersion; /**< 32 bit value to make accessing the
- version easily done in a single word
- size copy/compare operation */
-} OMX_VERSIONTYPE;
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
-/* File EOF */
--- a/omxil/omxilapi/v1_x/OMX_Video.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1060 +0,0 @@
-/**
- * Copyright (c) 2008 The Khronos Group Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject
- * to the following conditions:
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- */
-
-/**
- * @file OMX_Video.h - OpenMax IL version 1.1.2
- * The structures is needed by Video components to exchange parameters
- * and configuration data with OMX components.
- */
-#ifndef OMX_Video_h
-#define OMX_Video_h
-
-/** @defgroup video OpenMAX IL Video Domain
- * @ingroup iv
- * Structures for OpenMAX IL Video domain
- * @{
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-/**
- * Each OMX header must include all required header files to allow the
- * header to compile without errors. The includes below are required
- * for this header file to compile successfully
- */
-
-#include <openmax/il/khronos/v1_x/OMX_IVCommon.h>
-
-
-/**
- * Enumeration used to define the possible video compression codings.
- * NOTE: This essentially refers to file extensions. If the coding is
- * being used to specify the ENCODE type, then additional work
- * must be done to configure the exact flavor of the compression
- * to be used. For decode cases where the user application can
- * not differentiate between MPEG-4 and H.264 bit streams, it is
- * up to the codec to handle this.
- */
-typedef enum OMX_VIDEO_CODINGTYPE {
- OMX_VIDEO_CodingUnused, /**< Value when coding is N/A */
- OMX_VIDEO_CodingAutoDetect, /**< Autodetection of coding type */
- OMX_VIDEO_CodingMPEG2, /**< AKA: H.262 */
- OMX_VIDEO_CodingH263, /**< H.263 */
- OMX_VIDEO_CodingMPEG4, /**< MPEG-4 */
- OMX_VIDEO_CodingWMV, /**< all versions of Windows Media Video */
- OMX_VIDEO_CodingRV, /**< all versions of Real Video */
- OMX_VIDEO_CodingAVC, /**< H.264/AVC */
- OMX_VIDEO_CodingMJPEG, /**< Motion JPEG */
- OMX_VIDEO_CodingKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_VIDEO_CodingVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_VIDEO_CodingMax = 0x7FFFFFFF
-} OMX_VIDEO_CODINGTYPE;
-
-
-/**
- * Data structure used to define a video path. The number of Video paths for
- * input and output will vary by type of the Video component.
- *
- * Input (aka Source) : zero Inputs, one Output,
- * Splitter : one Input, 2 or more Outputs,
- * Processing Element : one Input, one output,
- * Mixer : 2 or more inputs, one output,
- * Output (aka Sink) : one Input, zero outputs.
- *
- * The PortDefinition structure is used to define all of the parameters
- * necessary for the compliant component to setup an input or an output video
- * path. If additional vendor specific data is required, it should be
- * transmitted to the component using the CustomCommand function. Compliant
- * components will prepopulate this structure with optimal values during the
- * GetDefaultInitParams command.
- *
- * STRUCT MEMBERS:
- * cMIMEType : MIME type of data for the port
- * pNativeRender : Platform specific reference for a display if a
- * sync, otherwise this field is 0
- * nFrameWidth : Width of frame to be used on channel if
- * uncompressed format is used. Use 0 for unknown,
- * don't care or variable
- * nFrameHeight : Height of frame to be used on channel if
- * uncompressed format is used. Use 0 for unknown,
- * don't care or variable
- * nStride : Number of bytes per span of an image
- * (i.e. indicates the number of bytes to get
- * from span N to span N+1, where negative stride
- * indicates the image is bottom up
- * nSliceHeight : Height used when encoding in slices
- * nBitrate : Bit rate of frame to be used on channel if
- * compressed format is used. Use 0 for unknown,
- * don't care or variable
- * xFramerate : Frame rate to be used on channel if uncompressed
- * format is used. Use 0 for unknown, don't care or
- * variable. Units are Q16 frames per second.
- * bFlagErrorConcealment : Turns on error concealment if it is supported by
- * the OMX component
- * eCompressionFormat : Compression format used in this instance of the
- * component. When OMX_VIDEO_CodingUnused is
- * specified, eColorFormat is used
- * eColorFormat : Decompressed format used by this component
- * pNativeWindow : Platform specific reference for a window object if a
- * display sink , otherwise this field is 0x0.
- */
-typedef struct OMX_VIDEO_PORTDEFINITIONTYPE {
- OMX_STRING cMIMEType;
- OMX_NATIVE_DEVICETYPE pNativeRender;
- OMX_U32 nFrameWidth;
- OMX_U32 nFrameHeight;
- OMX_S32 nStride;
- OMX_U32 nSliceHeight;
- OMX_U32 nBitrate;
- OMX_U32 xFramerate;
- OMX_BOOL bFlagErrorConcealment;
- OMX_VIDEO_CODINGTYPE eCompressionFormat;
- OMX_COLOR_FORMATTYPE eColorFormat;
- OMX_NATIVE_WINDOWTYPE pNativeWindow;
-} OMX_VIDEO_PORTDEFINITIONTYPE;
-
-/**
- * Port format parameter. This structure is used to enumerate the various
- * data input/output format supported by the port.
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Indicates which port to set
- * nIndex : Indicates the enumeration index for the format from
- * 0x0 to N-1
- * eCompressionFormat : Compression format used in this instance of the
- * component. When OMX_VIDEO_CodingUnused is specified,
- * eColorFormat is used
- * eColorFormat : Decompressed format used by this component
- * xFrameRate : Indicates the video frame rate in Q16 format
- */
-typedef struct OMX_VIDEO_PARAM_PORTFORMATTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nIndex;
- OMX_VIDEO_CODINGTYPE eCompressionFormat;
- OMX_COLOR_FORMATTYPE eColorFormat;
- OMX_U32 xFramerate;
-} OMX_VIDEO_PARAM_PORTFORMATTYPE;
-
-
-/**
- * This is a structure for configuring video compression quantization
- * parameter values. Codecs may support different QP values for different
- * frame types.
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version info
- * nPortIndex : Port that this structure applies to
- * nQpI : QP value to use for index frames
- * nQpP : QP value to use for P frames
- * nQpB : QP values to use for bidirectional frames
- */
-typedef struct OMX_VIDEO_PARAM_QUANTIZATIONTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nQpI;
- OMX_U32 nQpP;
- OMX_U32 nQpB;
-} OMX_VIDEO_PARAM_QUANTIZATIONTYPE;
-
-
-/**
- * Structure for configuration of video fast update parameters.
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version info
- * nPortIndex : Port that this structure applies to
- * bEnableVFU : Enable/Disable video fast update
- * nFirstGOB : Specifies the number of the first macroblock row
- * nFirstMB : specifies the first MB relative to the specified first GOB
- * nNumMBs : Specifies the number of MBs to be refreshed from nFirstGOB
- * and nFirstMB
- */
-typedef struct OMX_VIDEO_PARAM_VIDEOFASTUPDATETYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_BOOL bEnableVFU;
- OMX_U32 nFirstGOB;
- OMX_U32 nFirstMB;
- OMX_U32 nNumMBs;
-} OMX_VIDEO_PARAM_VIDEOFASTUPDATETYPE;
-
-
-/**
- * Enumeration of possible bitrate control types
- */
-typedef enum OMX_VIDEO_CONTROLRATETYPE {
- OMX_Video_ControlRateDisable,
- OMX_Video_ControlRateVariable,
- OMX_Video_ControlRateConstant,
- OMX_Video_ControlRateVariableSkipFrames,
- OMX_Video_ControlRateConstantSkipFrames,
- OMX_Video_ControlRateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_Video_ControlRateVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_Video_ControlRateMax = 0x7FFFFFFF
-} OMX_VIDEO_CONTROLRATETYPE;
-
-
-/**
- * Structure for configuring bitrate mode of a codec.
- *
- * STRUCT MEMBERS:
- * nSize : Size of the struct in bytes
- * nVersion : OMX spec version info
- * nPortIndex : Port that this struct applies to
- * eControlRate : Control rate type enum
- * nTargetBitrate : Target bitrate to encode with
- */
-typedef struct OMX_VIDEO_PARAM_BITRATETYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_VIDEO_CONTROLRATETYPE eControlRate;
- OMX_U32 nTargetBitrate;
-} OMX_VIDEO_PARAM_BITRATETYPE;
-
-
-/**
- * Enumeration of possible motion vector (MV) types
- */
-typedef enum OMX_VIDEO_MOTIONVECTORTYPE {
- OMX_Video_MotionVectorPixel,
- OMX_Video_MotionVectorHalfPel,
- OMX_Video_MotionVectorQuarterPel,
- OMX_Video_MotionVectorEighthPel,
- OMX_Video_MotionVectorKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_Video_MotionVectorVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_Video_MotionVectorMax = 0x7FFFFFFF
-} OMX_VIDEO_MOTIONVECTORTYPE;
-
-
-/**
- * Structure for configuring the number of motion vectors used as well
- * as their accuracy.
- *
- * STRUCT MEMBERS:
- * nSize : Size of the struct in bytes
- * nVersion : OMX spec version info
- * nPortIndex : port that this structure applies to
- * eAccuracy : Enumerated MV accuracy
- * bUnrestrictedMVs : Allow unrestricted MVs
- * bFourMV : Allow use of 4 MVs
- * sXSearchRange : Search range in horizontal direction for MVs
- * sYSearchRange : Search range in vertical direction for MVs
- */
-typedef struct OMX_VIDEO_PARAM_MOTIONVECTORTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_VIDEO_MOTIONVECTORTYPE eAccuracy;
- OMX_BOOL bUnrestrictedMVs;
- OMX_BOOL bFourMV;
- OMX_S32 sXSearchRange;
- OMX_S32 sYSearchRange;
-} OMX_VIDEO_PARAM_MOTIONVECTORTYPE;
-
-
-/**
- * Enumeration of possible methods to use for Intra Refresh
- */
-typedef enum OMX_VIDEO_INTRAREFRESHTYPE {
- OMX_VIDEO_IntraRefreshCyclic,
- OMX_VIDEO_IntraRefreshAdaptive,
- OMX_VIDEO_IntraRefreshBoth,
- OMX_VIDEO_IntraRefreshKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_VIDEO_IntraRefreshVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_VIDEO_IntraRefreshMax = 0x7FFFFFFF
-} OMX_VIDEO_INTRAREFRESHTYPE;
-
-
-/**
- * Structure for configuring intra refresh mode
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * eRefreshMode : Cyclic, Adaptive, or Both
- * nAirMBs : Number of intra macroblocks to refresh in a frame when
- * AIR is enabled
- * nAirRef : Number of times a motion marked macroblock has to be
- * intra coded
- * nCirMBs : Number of consecutive macroblocks to be coded as "intra"
- * when CIR is enabled
- */
-typedef struct OMX_VIDEO_PARAM_INTRAREFRESHTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_VIDEO_INTRAREFRESHTYPE eRefreshMode;
- OMX_U32 nAirMBs;
- OMX_U32 nAirRef;
- OMX_U32 nCirMBs;
-} OMX_VIDEO_PARAM_INTRAREFRESHTYPE;
-
-
-/**
- * Structure for enabling various error correction methods for video
- * compression.
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * bEnableHEC : Enable/disable header extension codes (HEC)
- * bEnableResync : Enable/disable resynchronization markers
- * nResynchMarkerSpacing : Resynch markers interval (in bits) to be
- * applied in the stream
- * bEnableDataPartitioning : Enable/disable data partitioning
- * bEnableRVLC : Enable/disable reversible variable length
- * coding
- */
-typedef struct OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_BOOL bEnableHEC;
- OMX_BOOL bEnableResync;
- OMX_U32 nResynchMarkerSpacing;
- OMX_BOOL bEnableDataPartitioning;
- OMX_BOOL bEnableRVLC;
-} OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE;
-
-
-/**
- * Configuration of variable block-size motion compensation (VBSMC)
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * b16x16 : Enable inter block search 16x16
- * b16x8 : Enable inter block search 16x8
- * b8x16 : Enable inter block search 8x16
- * b8x8 : Enable inter block search 8x8
- * b8x4 : Enable inter block search 8x4
- * b4x8 : Enable inter block search 4x8
- * b4x4 : Enable inter block search 4x4
- */
-typedef struct OMX_VIDEO_PARAM_VBSMCTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_BOOL b16x16;
- OMX_BOOL b16x8;
- OMX_BOOL b8x16;
- OMX_BOOL b8x8;
- OMX_BOOL b8x4;
- OMX_BOOL b4x8;
- OMX_BOOL b4x4;
-} OMX_VIDEO_PARAM_VBSMCTYPE;
-
-
-/**
- * H.263 profile types, each profile indicates support for various
- * performance bounds and different annexes.
- *
- * ENUMS:
- * Baseline : Baseline Profile: H.263 (V1), no optional modes
- * H320 Coding : H.320 Coding Efficiency Backward Compatibility
- * Profile: H.263+ (V2), includes annexes I, J, L.4
- * and T
- * BackwardCompatible : Backward Compatibility Profile: H.263 (V1),
- * includes annex F
- * ISWV2 : Interactive Streaming Wireless Profile: H.263+
- * (V2), includes annexes I, J, K and T
- * ISWV3 : Interactive Streaming Wireless Profile: H.263++
- * (V3), includes profile 3 and annexes V and W.6.3.8
- * HighCompression : Conversational High Compression Profile: H.263++
- * (V3), includes profiles 1 & 2 and annexes D and U
- * Internet : Conversational Internet Profile: H.263++ (V3),
- * includes profile 5 and annex K
- * Interlace : Conversational Interlace Profile: H.263++ (V3),
- * includes profile 5 and annex W.6.3.11
- * HighLatency : High Latency Profile: H.263++ (V3), includes
- * profile 6 and annexes O.1 and P.5
- */
-typedef enum OMX_VIDEO_H263PROFILETYPE {
- OMX_VIDEO_H263ProfileBaseline = 0x01,
- OMX_VIDEO_H263ProfileH320Coding = 0x02,
- OMX_VIDEO_H263ProfileBackwardCompatible = 0x04,
- OMX_VIDEO_H263ProfileISWV2 = 0x08,
- OMX_VIDEO_H263ProfileISWV3 = 0x10,
- OMX_VIDEO_H263ProfileHighCompression = 0x20,
- OMX_VIDEO_H263ProfileInternet = 0x40,
- OMX_VIDEO_H263ProfileInterlace = 0x80,
- OMX_VIDEO_H263ProfileHighLatency = 0x100,
- OMX_VIDEO_H263ProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_VIDEO_H263ProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_VIDEO_H263ProfileMax = 0x7FFFFFFF
-} OMX_VIDEO_H263PROFILETYPE;
-
-
-/**
- * H.263 level types, each level indicates support for various frame sizes,
- * bit rates, decoder frame rates.
- */
-typedef enum OMX_VIDEO_H263LEVELTYPE {
- OMX_VIDEO_H263Level10 = 0x01,
- OMX_VIDEO_H263Level20 = 0x02,
- OMX_VIDEO_H263Level30 = 0x04,
- OMX_VIDEO_H263Level40 = 0x08,
- OMX_VIDEO_H263Level45 = 0x10,
- OMX_VIDEO_H263Level50 = 0x20,
- OMX_VIDEO_H263Level60 = 0x40,
- OMX_VIDEO_H263Level70 = 0x80,
- OMX_VIDEO_H263LevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_VIDEO_H263LevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_VIDEO_H263LevelMax = 0x7FFFFFFF
-} OMX_VIDEO_H263LEVELTYPE;
-
-
-/**
- * Specifies the picture type. These values should be OR'd to signal all
- * pictures types which are allowed.
- *
- * ENUMS:
- * Generic Picture Types: I, P and B
- * H.263 Specific Picture Types: SI and SP
- * H.264 Specific Picture Types: EI and EP
- * MPEG-4 Specific Picture Types: S
- */
-typedef enum OMX_VIDEO_PICTURETYPE {
- OMX_VIDEO_PictureTypeI = 0x01,
- OMX_VIDEO_PictureTypeP = 0x02,
- OMX_VIDEO_PictureTypeB = 0x04,
- OMX_VIDEO_PictureTypeSI = 0x08,
- OMX_VIDEO_PictureTypeSP = 0x10,
- OMX_VIDEO_PictureTypeEI = 0x11,
- OMX_VIDEO_PictureTypeEP = 0x12,
- OMX_VIDEO_PictureTypeS = 0x14,
- OMX_VIDEO_PictureTypeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_VIDEO_PictureTypeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_VIDEO_PictureTypeMax = 0x7FFFFFFF
-} OMX_VIDEO_PICTURETYPE;
-
-
-/**
- * H.263 Params
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nPFrames : Number of P frames between each I frame
- * nBFrames : Number of B frames between each I frame
- * eProfile : H.263 profile(s) to use
- * eLevel : H.263 level(s) to use
- * bPLUSPTYPEAllowed : Indicating that it is allowed to use PLUSPTYPE
- * (specified in the 1998 version of H.263) to
- * indicate custom picture sizes or clock
- * frequencies
- * nAllowedPictureTypes : Specifies the picture types allowed in the
- * bitstream
- * bForceRoundingTypeToZero : value of the RTYPE bit (bit 6 of MPPTYPE) is
- * not constrained. It is recommended to change
- * the value of the RTYPE bit for each reference
- * picture in error-free communication
- * nPictureHeaderRepetition : Specifies the frequency of picture header
- * repetition
- * nGOBHeaderInterval : Specifies the interval of non-empty GOB
- * headers in units of GOBs
- */
-typedef struct OMX_VIDEO_PARAM_H263TYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nPFrames;
- OMX_U32 nBFrames;
- OMX_VIDEO_H263PROFILETYPE eProfile;
- OMX_VIDEO_H263LEVELTYPE eLevel;
- OMX_BOOL bPLUSPTYPEAllowed;
- OMX_U32 nAllowedPictureTypes;
- OMX_BOOL bForceRoundingTypeToZero;
- OMX_U32 nPictureHeaderRepetition;
- OMX_U32 nGOBHeaderInterval;
-} OMX_VIDEO_PARAM_H263TYPE;
-
-
-/**
- * MPEG-2 profile types, each profile indicates support for various
- * performance bounds and different annexes.
- */
-typedef enum OMX_VIDEO_MPEG2PROFILETYPE {
- OMX_VIDEO_MPEG2ProfileSimple = 0, /**< Simple Profile */
- OMX_VIDEO_MPEG2ProfileMain, /**< Main Profile */
- OMX_VIDEO_MPEG2Profile422, /**< 4:2:2 Profile */
- OMX_VIDEO_MPEG2ProfileSNR, /**< SNR Profile */
- OMX_VIDEO_MPEG2ProfileSpatial, /**< Spatial Profile */
- OMX_VIDEO_MPEG2ProfileHigh, /**< High Profile */
- OMX_VIDEO_MPEG2ProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_VIDEO_MPEG2ProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_VIDEO_MPEG2ProfileMax = 0x7FFFFFFF
-} OMX_VIDEO_MPEG2PROFILETYPE;
-
-
-/**
- * MPEG-2 level types, each level indicates support for various frame
- * sizes, bit rates, decoder frame rates. No need
- */
-typedef enum OMX_VIDEO_MPEG2LEVELTYPE {
- OMX_VIDEO_MPEG2LevelLL = 0, /**< Low Level */
- OMX_VIDEO_MPEG2LevelML, /**< Main Level */
- OMX_VIDEO_MPEG2LevelH14, /**< High 1440 */
- OMX_VIDEO_MPEG2LevelHL, /**< High Level */
- OMX_VIDEO_MPEG2LevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_VIDEO_MPEG2LevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_VIDEO_MPEG2LevelMax = 0x7FFFFFFF
-} OMX_VIDEO_MPEG2LEVELTYPE;
-
-
-/**
- * MPEG-2 params
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nPFrames : Number of P frames between each I frame
- * nBFrames : Number of B frames between each I frame
- * eProfile : MPEG-2 profile(s) to use
- * eLevel : MPEG-2 levels(s) to use
- */
-typedef struct OMX_VIDEO_PARAM_MPEG2TYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nPFrames;
- OMX_U32 nBFrames;
- OMX_VIDEO_MPEG2PROFILETYPE eProfile;
- OMX_VIDEO_MPEG2LEVELTYPE eLevel;
-} OMX_VIDEO_PARAM_MPEG2TYPE;
-
-
-/**
- * MPEG-4 profile types, each profile indicates support for various
- * performance bounds and different annexes.
- *
- * ENUMS:
- * - Simple Profile, Levels 1-3
- * - Simple Scalable Profile, Levels 1-2
- * - Core Profile, Levels 1-2
- * - Main Profile, Levels 2-4
- * - N-bit Profile, Level 2
- * - Scalable Texture Profile, Level 1
- * - Simple Face Animation Profile, Levels 1-2
- * - Simple Face and Body Animation (FBA) Profile, Levels 1-2
- * - Basic Animated Texture Profile, Levels 1-2
- * - Hybrid Profile, Levels 1-2
- * - Advanced Real Time Simple Profiles, Levels 1-4
- * - Core Scalable Profile, Levels 1-3
- * - Advanced Coding Efficiency Profile, Levels 1-4
- * - Advanced Core Profile, Levels 1-2
- * - Advanced Scalable Texture, Levels 2-3
- */
-typedef enum OMX_VIDEO_MPEG4PROFILETYPE {
- OMX_VIDEO_MPEG4ProfileSimple = 0x01,
- OMX_VIDEO_MPEG4ProfileSimpleScalable = 0x02,
- OMX_VIDEO_MPEG4ProfileCore = 0x04,
- OMX_VIDEO_MPEG4ProfileMain = 0x08,
- OMX_VIDEO_MPEG4ProfileNbit = 0x10,
- OMX_VIDEO_MPEG4ProfileScalableTexture = 0x20,
- OMX_VIDEO_MPEG4ProfileSimpleFace = 0x40,
- OMX_VIDEO_MPEG4ProfileSimpleFBA = 0x80,
- OMX_VIDEO_MPEG4ProfileBasicAnimated = 0x100,
- OMX_VIDEO_MPEG4ProfileHybrid = 0x200,
- OMX_VIDEO_MPEG4ProfileAdvancedRealTime = 0x400,
- OMX_VIDEO_MPEG4ProfileCoreScalable = 0x800,
- OMX_VIDEO_MPEG4ProfileAdvancedCoding = 0x1000,
- OMX_VIDEO_MPEG4ProfileAdvancedCore = 0x2000,
- OMX_VIDEO_MPEG4ProfileAdvancedScalable = 0x4000,
- OMX_VIDEO_MPEG4ProfileAdvancedSimple = 0x8000,
- OMX_VIDEO_MPEG4ProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_VIDEO_MPEG4ProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_VIDEO_MPEG4ProfileMax = 0x7FFFFFFF
-} OMX_VIDEO_MPEG4PROFILETYPE;
-
-
-/**
- * MPEG-4 level types, each level indicates support for various frame
- * sizes, bit rates, decoder frame rates. No need
- */
-typedef enum OMX_VIDEO_MPEG4LEVELTYPE {
- OMX_VIDEO_MPEG4Level0 = 0x01, /**< Level 0 */
- OMX_VIDEO_MPEG4Level0b = 0x02, /**< Level 0b */
- OMX_VIDEO_MPEG4Level1 = 0x04, /**< Level 1 */
- OMX_VIDEO_MPEG4Level2 = 0x08, /**< Level 2 */
- OMX_VIDEO_MPEG4Level3 = 0x10, /**< Level 3 */
- OMX_VIDEO_MPEG4Level4 = 0x20, /**< Level 4 */
- OMX_VIDEO_MPEG4Level4a = 0x40, /**< Level 4a */
- OMX_VIDEO_MPEG4Level5 = 0x80, /**< Level 5 */
- OMX_VIDEO_MPEG4LevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_VIDEO_MPEG4LevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_VIDEO_MPEG4LevelMax = 0x7FFFFFFF
-} OMX_VIDEO_MPEG4LEVELTYPE;
-
-
-/**
- * MPEG-4 configuration. This structure handles configuration options
- * which are specific to MPEG4 algorithms
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nSliceHeaderSpacing : Number of macroblocks between slice header (H263+
- * Annex K). Put zero if not used
- * bSVH : Enable Short Video Header mode
- * bGov : Flag to enable GOV
- * nPFrames : Number of P frames between each I frame (also called
- * GOV period)
- * nBFrames : Number of B frames between each I frame
- * nIDCVLCThreshold : Value of intra DC VLC threshold
- * bACPred : Flag to use ac prediction
- * nMaxPacketSize : Maximum size of packet in bytes.
- * nTimeIncRes : Used to pass VOP time increment resolution for MPEG4.
- * Interpreted as described in MPEG4 standard.
- * eProfile : MPEG-4 profile(s) to use.
- * eLevel : MPEG-4 level(s) to use.
- * nAllowedPictureTypes : Specifies the picture types allowed in the bitstream
- * nHeaderExtension : Specifies the number of consecutive video packet
- * headers within a VOP
- * bReversibleVLC : Specifies whether reversible variable length coding
- * is in use
- */
-typedef struct OMX_VIDEO_PARAM_MPEG4TYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nSliceHeaderSpacing;
- OMX_BOOL bSVH;
- OMX_BOOL bGov;
- OMX_U32 nPFrames;
- OMX_U32 nBFrames;
- OMX_U32 nIDCVLCThreshold;
- OMX_BOOL bACPred;
- OMX_U32 nMaxPacketSize;
- OMX_U32 nTimeIncRes;
- OMX_VIDEO_MPEG4PROFILETYPE eProfile;
- OMX_VIDEO_MPEG4LEVELTYPE eLevel;
- OMX_U32 nAllowedPictureTypes;
- OMX_U32 nHeaderExtension;
- OMX_BOOL bReversibleVLC;
-} OMX_VIDEO_PARAM_MPEG4TYPE;
-
-
-/**
- * WMV Versions
- */
-typedef enum OMX_VIDEO_WMVFORMATTYPE {
- OMX_VIDEO_WMVFormatUnused = 0x01, /**< Format unused or unknown */
- OMX_VIDEO_WMVFormat7 = 0x02, /**< Windows Media Video format 7 */
- OMX_VIDEO_WMVFormat8 = 0x04, /**< Windows Media Video format 8 */
- OMX_VIDEO_WMVFormat9 = 0x08, /**< Windows Media Video format 9 */
- OMX_VIDEO_WMFFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_VIDEO_WMFFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_VIDEO_WMVFormatMax = 0x7FFFFFFF
-} OMX_VIDEO_WMVFORMATTYPE;
-
-
-/**
- * WMV Params
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * eFormat : Version of WMV stream / data
- */
-typedef struct OMX_VIDEO_PARAM_WMVTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_VIDEO_WMVFORMATTYPE eFormat;
-} OMX_VIDEO_PARAM_WMVTYPE;
-
-
-/**
- * Real Video Version
- */
-typedef enum OMX_VIDEO_RVFORMATTYPE {
- OMX_VIDEO_RVFormatUnused = 0, /**< Format unused or unknown */
- OMX_VIDEO_RVFormat8, /**< Real Video format 8 */
- OMX_VIDEO_RVFormat9, /**< Real Video format 9 */
- OMX_VIDEO_RVFormatG2, /**< Real Video Format G2 */
- OMX_VIDEO_RVFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_VIDEO_RVFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_VIDEO_RVFormatMax = 0x7FFFFFFF
-} OMX_VIDEO_RVFORMATTYPE;
-
-
-/**
- * Real Video Params
- *
- * STUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * eFormat : Version of RV stream / data
- * nBitsPerPixel : Bits per pixel coded in the frame
- * nPaddedWidth : Padded width in pixel of a video frame
- * nPaddedHeight : Padded Height in pixels of a video frame
- * nFrameRate : Rate of video in frames per second
- * nBitstreamFlags : Flags which internal information about the bitstream
- * nBitstreamVersion : Bitstream version
- * nMaxEncodeFrameSize: Max encoded frame size
- * bEnablePostFilter : Turn on/off post filter
- * bEnableTemporalInterpolation : Turn on/off temporal interpolation
- * bEnableLatencyMode : When enabled, the decoder does not display a decoded
- * frame until it has detected that no enhancement layer
- * frames or dependent B frames will be coming. This
- * detection usually occurs when a subsequent non-B
- * frame is encountered
- */
-typedef struct OMX_VIDEO_PARAM_RVTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_VIDEO_RVFORMATTYPE eFormat;
- OMX_U16 nBitsPerPixel;
- OMX_U16 nPaddedWidth;
- OMX_U16 nPaddedHeight;
- OMX_U32 nFrameRate;
- OMX_U32 nBitstreamFlags;
- OMX_U32 nBitstreamVersion;
- OMX_U32 nMaxEncodeFrameSize;
- OMX_BOOL bEnablePostFilter;
- OMX_BOOL bEnableTemporalInterpolation;
- OMX_BOOL bEnableLatencyMode;
-} OMX_VIDEO_PARAM_RVTYPE;
-
-
-/**
- * AVC profile types, each profile indicates support for various
- * performance bounds and different annexes.
- */
-typedef enum OMX_VIDEO_AVCPROFILETYPE {
- OMX_VIDEO_AVCProfileBaseline = 0x01, /**< Baseline profile */
- OMX_VIDEO_AVCProfileMain = 0x02, /**< Main profile */
- OMX_VIDEO_AVCProfileExtended = 0x04, /**< Extended profile */
- OMX_VIDEO_AVCProfileHigh = 0x08, /**< High profile */
- OMX_VIDEO_AVCProfileHigh10 = 0x10, /**< High 10 profile */
- OMX_VIDEO_AVCProfileHigh422 = 0x20, /**< High 4:2:2 profile */
- OMX_VIDEO_AVCProfileHigh444 = 0x40, /**< High 4:4:4 profile */
- OMX_VIDEO_AVCProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_VIDEO_AVCProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_VIDEO_AVCProfileMax = 0x7FFFFFFF
-} OMX_VIDEO_AVCPROFILETYPE;
-
-
-/**
- * AVC level types, each level indicates support for various frame sizes,
- * bit rates, decoder frame rates. No need
- */
-typedef enum OMX_VIDEO_AVCLEVELTYPE {
- OMX_VIDEO_AVCLevel1 = 0x01, /**< Level 1 */
- OMX_VIDEO_AVCLevel1b = 0x02, /**< Level 1b */
- OMX_VIDEO_AVCLevel11 = 0x04, /**< Level 1.1 */
- OMX_VIDEO_AVCLevel12 = 0x08, /**< Level 1.2 */
- OMX_VIDEO_AVCLevel13 = 0x10, /**< Level 1.3 */
- OMX_VIDEO_AVCLevel2 = 0x20, /**< Level 2 */
- OMX_VIDEO_AVCLevel21 = 0x40, /**< Level 2.1 */
- OMX_VIDEO_AVCLevel22 = 0x80, /**< Level 2.2 */
- OMX_VIDEO_AVCLevel3 = 0x100, /**< Level 3 */
- OMX_VIDEO_AVCLevel31 = 0x200, /**< Level 3.1 */
- OMX_VIDEO_AVCLevel32 = 0x400, /**< Level 3.2 */
- OMX_VIDEO_AVCLevel4 = 0x800, /**< Level 4 */
- OMX_VIDEO_AVCLevel41 = 0x1000, /**< Level 4.1 */
- OMX_VIDEO_AVCLevel42 = 0x2000, /**< Level 4.2 */
- OMX_VIDEO_AVCLevel5 = 0x4000, /**< Level 5 */
- OMX_VIDEO_AVCLevel51 = 0x8000, /**< Level 5.1 */
- OMX_VIDEO_AVCLevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_VIDEO_AVCLevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_VIDEO_AVCLevelMax = 0x7FFFFFFF
-} OMX_VIDEO_AVCLEVELTYPE;
-
-
-/**
- * AVC loop filter modes
- *
- * OMX_VIDEO_AVCLoopFilterEnable : Enable
- * OMX_VIDEO_AVCLoopFilterDisable : Disable
- * OMX_VIDEO_AVCLoopFilterDisableSliceBoundary : Disabled on slice boundaries
- */
-typedef enum OMX_VIDEO_AVCLOOPFILTERTYPE {
- OMX_VIDEO_AVCLoopFilterEnable = 0,
- OMX_VIDEO_AVCLoopFilterDisable,
- OMX_VIDEO_AVCLoopFilterDisableSliceBoundary,
- OMX_VIDEO_AVCLoopFilterKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_VIDEO_AVCLoopFilterVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_VIDEO_AVCLoopFilterMax = 0x7FFFFFFF
-} OMX_VIDEO_AVCLOOPFILTERTYPE;
-
-
-/**
- * AVC params
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nSliceHeaderSpacing : Number of macroblocks between slice header, put
- * zero if not used
- * nPFrames : Number of P frames between each I frame
- * nBFrames : Number of B frames between each I frame
- * bUseHadamard : Enable/disable Hadamard transform
- * nRefFrames : Max number of reference frames to use for inter
- * motion search (1-16)
- * nRefIdxTrailing : Pic param set ref frame index (index into ref
- * frame buffer of trailing frames list), B frame
- * support
- * nRefIdxForward : Pic param set ref frame index (index into ref
- * frame buffer of forward frames list), B frame
- * support
- * bEnableUEP : Enable/disable unequal error protection. This
- * is only valid of data partitioning is enabled.
- * bEnableFMO : Enable/disable flexible macroblock ordering
- * bEnableASO : Enable/disable arbitrary slice ordering
- * bEnableRS : Enable/disable sending of redundant slices
- * eProfile : AVC profile(s) to use
- * eLevel : AVC level(s) to use
- * nAllowedPictureTypes : Specifies the picture types allowed in the
- * bitstream
- * bFrameMBsOnly : specifies that every coded picture of the
- * coded video sequence is a coded frame
- * containing only frame macroblocks
- * bMBAFF : Enable/disable switching between frame and
- * field macroblocks within a picture
- * bEntropyCodingCABAC : Entropy decoding method to be applied for the
- * syntax elements for which two descriptors appear
- * in the syntax tables
- * bWeightedPPrediction : Enable/disable weighted prediction shall not
- * be applied to P and SP slices
- * nWeightedBipredicitonMode : Default weighted prediction is applied to B
- * slices
- * bconstIpred : Enable/disable intra prediction
- * bDirect8x8Inference : Specifies the method used in the derivation
- * process for luma motion vectors for B_Skip,
- * B_Direct_16x16 and B_Direct_8x8 as specified
- * in subclause 8.4.1.2 of the AVC spec
- * bDirectSpatialTemporal : Flag indicating spatial or temporal direct
- * mode used in B slice coding (related to
- * bDirect8x8Inference) . Spatial direct mode is
- * more common and should be the default.
- * nCabacInitIdx : Index used to init CABAC contexts
- * eLoopFilterMode : Enable/disable loop filter
- */
-typedef struct OMX_VIDEO_PARAM_AVCTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nSliceHeaderSpacing;
- OMX_U32 nPFrames;
- OMX_U32 nBFrames;
- OMX_BOOL bUseHadamard;
- OMX_U32 nRefFrames;
- OMX_U32 nRefIdx10ActiveMinus1;
- OMX_U32 nRefIdx11ActiveMinus1;
- OMX_BOOL bEnableUEP;
- OMX_BOOL bEnableFMO;
- OMX_BOOL bEnableASO;
- OMX_BOOL bEnableRS;
- OMX_VIDEO_AVCPROFILETYPE eProfile;
- OMX_VIDEO_AVCLEVELTYPE eLevel;
- OMX_U32 nAllowedPictureTypes;
- OMX_BOOL bFrameMBsOnly;
- OMX_BOOL bMBAFF;
- OMX_BOOL bEntropyCodingCABAC;
- OMX_BOOL bWeightedPPrediction;
- OMX_U32 nWeightedBipredicitonMode;
- OMX_BOOL bconstIpred ;
- OMX_BOOL bDirect8x8Inference;
- OMX_BOOL bDirectSpatialTemporal;
- OMX_U32 nCabacInitIdc;
- OMX_VIDEO_AVCLOOPFILTERTYPE eLoopFilterMode;
-} OMX_VIDEO_PARAM_AVCTYPE;
-
-typedef struct OMX_VIDEO_PARAM_PROFILELEVELTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 eProfile; /**< type is OMX_VIDEO_AVCPROFILETYPE, OMX_VIDEO_H263PROFILETYPE,
- or OMX_VIDEO_MPEG4PROFILETYPE depending on context */
- OMX_U32 eLevel; /**< type is OMX_VIDEO_AVCLEVELTYPE, OMX_VIDEO_H263LEVELTYPE,
- or OMX_VIDEO_MPEG4PROFILETYPE depending on context */
- OMX_U32 nProfileIndex; /**< Used to query for individual profile support information,
- This parameter is valid only for
- OMX_IndexParamVideoProfileLevelQuerySupported index,
- For all other indices this parameter is to be ignored. */
-} OMX_VIDEO_PARAM_PROFILELEVELTYPE;
-
-/**
- * Structure for dynamically configuring bitrate mode of a codec.
- *
- * STRUCT MEMBERS:
- * nSize : Size of the struct in bytes
- * nVersion : OMX spec version info
- * nPortIndex : Port that this struct applies to
- * nEncodeBitrate : Target average bitrate to be generated in bps
- */
-typedef struct OMX_VIDEO_CONFIG_BITRATETYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nEncodeBitrate;
-} OMX_VIDEO_CONFIG_BITRATETYPE;
-
-/**
- * Defines Encoder Frame Rate setting
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * xEncodeFramerate : Encoding framerate represented in Q16 format
- */
-typedef struct OMX_CONFIG_FRAMERATETYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 xEncodeFramerate; /* Q16 format */
-} OMX_CONFIG_FRAMERATETYPE;
-
-typedef struct OMX_CONFIG_INTRAREFRESHVOPTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_BOOL IntraRefreshVOP;
-} OMX_CONFIG_INTRAREFRESHVOPTYPE;
-
-typedef struct OMX_CONFIG_MACROBLOCKERRORMAPTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nErrMapSize; /* Size of the Error Map in bytes */
- OMX_U8 ErrMap[1]; /* Error map hint */
-} OMX_CONFIG_MACROBLOCKERRORMAPTYPE;
-
-typedef struct OMX_CONFIG_MBERRORREPORTINGTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_BOOL bEnabled;
-} OMX_CONFIG_MBERRORREPORTINGTYPE;
-
-typedef struct OMX_PARAM_MACROBLOCKSTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nMacroblocks;
-} OMX_PARAM_MACROBLOCKSTYPE;
-
-/**
- * AVC Slice Mode modes
- *
- * OMX_VIDEO_SLICEMODE_AVCDefault : Normal frame encoding, one slice per frame
- * OMX_VIDEO_SLICEMODE_AVCMBSlice : NAL mode, number of MBs per frame
- * OMX_VIDEO_SLICEMODE_AVCByteSlice : NAL mode, number of bytes per frame
- */
-typedef enum OMX_VIDEO_AVCSLICEMODETYPE {
- OMX_VIDEO_SLICEMODE_AVCDefault = 0,
- OMX_VIDEO_SLICEMODE_AVCMBSlice,
- OMX_VIDEO_SLICEMODE_AVCByteSlice,
- OMX_VIDEO_SLICEMODE_AVCKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
- OMX_VIDEO_SLICEMODE_AVCVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- OMX_VIDEO_SLICEMODE_AVCLevelMax = 0x7FFFFFFF
-} OMX_VIDEO_AVCSLICEMODETYPE;
-
-/**
- * AVC FMO Slice Mode Params
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nNumSliceGroups : Specifies the number of slice groups
- * nSliceGroupMapType : Specifies the type of slice groups
- * eSliceMode : Specifies the type of slice
- */
-typedef struct OMX_VIDEO_PARAM_AVCSLICEFMO {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U8 nNumSliceGroups;
- OMX_U8 nSliceGroupMapType;
- OMX_VIDEO_AVCSLICEMODETYPE eSliceMode;
-} OMX_VIDEO_PARAM_AVCSLICEFMO;
-
-/**
- * AVC IDR Period Configs
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nIDRPeriod : Specifies periodicity of IDR frames
- * nPFrames : Specifies internal of coding Intra frames
- */
-typedef struct OMX_VIDEO_CONFIG_AVCINTRAPERIOD {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nIDRPeriod;
- OMX_U32 nPFrames;
-} OMX_VIDEO_CONFIG_AVCINTRAPERIOD;
-
-/**
- * AVC NAL Size Configs
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nNaluBytes : Specifies the NAL unit size
- */
-typedef struct OMX_VIDEO_CONFIG_NALSIZE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nNaluBytes;
-} OMX_VIDEO_CONFIG_NALSIZE;
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
-/* File EOF */
-
--- a/omxil/omxilcomponentcommon/bwins/omxilcomponentcommon.def Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-EXPORTS
- ?DoSetFsm@XOmxILCallbackManagerIfImpl@@MAEXAAVCOmxILFsm@@@Z @ 1 NONAME ; void XOmxILCallbackManagerIfImpl::DoSetFsm(class COmxILFsm &)
- ?SetPortManager@COmxILCallbackManager@@UAEXAAVCOmxILPortManager@@@Z @ 2 NONAME ; void COmxILCallbackManager::SetPortManager(class COmxILPortManager &)
- ?DoRegisterTunnelCallback@XOmxILCallbackManagerIfImpl@@MAE?AW4OMX_ERRORTYPE@@KW4OMX_DIRTYPE@@PAXK@Z @ 3 NONAME ; enum OMX_ERRORTYPE XOmxILCallbackManagerIfImpl::DoRegisterTunnelCallback(unsigned long, enum OMX_DIRTYPE, void *, unsigned long)
- ?SetConfig@COmxILConfigManager@@UAE?AW4OMX_ERRORTYPE@@W4OMX_INDEXTYPE@@PBX@Z @ 4 NONAME ; enum OMX_ERRORTYPE COmxILConfigManager::SetConfig(enum OMX_INDEXTYPE, void const *)
- ?NewL@COmxILFsm@@SAPAV1@AAVCOmxILComponent@@AAVCOmxILProcessingFunction@@AAVCOmxILPortManager@@AAVCOmxILConfigManager@@AAVMOmxILCallbackManagerIf@@@Z @ 5 NONAME ; class COmxILFsm * COmxILFsm::NewL(class COmxILComponent &, class COmxILProcessingFunction &, class COmxILPortManager &, class COmxILConfigManager &, class MOmxILCallbackManagerIf &)
- ?SetTransitionToDisabledCompleted@COmxILPort@@UAEXXZ @ 6 NONAME ; void COmxILPort::SetTransitionToDisabledCompleted(void)
- ??0COmxILConfigManager@@IAE@AAVCOmxILPortManager@@@Z @ 7 NONAME ; COmxILConfigManager::COmxILConfigManager(class COmxILPortManager &)
- ?GetParameter@COmxILOtherPort@@UBE?AW4OMX_ERRORTYPE@@W4OMX_INDEXTYPE@@PAX@Z @ 8 NONAME ; enum OMX_ERRORTYPE COmxILOtherPort::GetParameter(enum OMX_INDEXTYPE, void *) const
- ??1COmxILImagePort@@UAE@XZ @ 9 NONAME ; COmxILImagePort::~COmxILImagePort(void)
- ?StoreBufferMark@COmxILPort@@IAE?AW4OMX_ERRORTYPE@@AAPAX0@Z @ 10 NONAME ; enum OMX_ERRORTYPE COmxILPort::StoreBufferMark(void * &, void * &)
- ??1COmxILCallbackManager@@UAE@XZ @ 11 NONAME ; COmxILCallbackManager::~COmxILCallbackManager(void)
- ?ClockBufferDoneNotification@COmxILCallbackManager@@UAE?AW4OMX_ERRORTYPE@@PAUOMX_BUFFERHEADERTYPE@@KW4OMX_DIRTYPE@@@Z @ 12 NONAME ; enum OMX_ERRORTYPE COmxILCallbackManager::ClockBufferDoneNotification(struct OMX_BUFFERHEADERTYPE *, unsigned long, enum OMX_DIRTYPE)
- ?RegisterILClientCallbacks@COmxILInContextCallbackManager@@UAE?AW4OMX_ERRORTYPE@@PBUOMX_CALLBACKTYPE@@PAX@Z @ 13 NONAME ; enum OMX_ERRORTYPE COmxILInContextCallbackManager::RegisterILClientCallbacks(struct OMX_CALLBACKTYPE const *, void *)
- ?DoCommandCompleteNotification@XOmxILCallbackManagerIfImpl@@MAE?AW4OMX_ERRORTYPE@@W4OMX_COMMANDTYPE@@K@Z @ 14 NONAME ; enum OMX_ERRORTYPE XOmxILCallbackManagerIfImpl::DoCommandCompleteNotification(enum OMX_COMMANDTYPE, unsigned long)
- ?DoTransitionCompleteNotification@XOmxILCallbackManagerIfImpl@@MAE?AW4OMX_ERRORTYPE@@W4OMX_STATETYPE@@@Z @ 15 NONAME ; enum OMX_ERRORTYPE XOmxILCallbackManagerIfImpl::DoTransitionCompleteNotification(enum OMX_STATETYPE)
- ?SetTransitionToDisabled@COmxILPort@@UAEXXZ @ 16 NONAME ; void COmxILPort::SetTransitionToDisabled(void)
- ?IsClockComponentAvailable@COmxILClientClockPort@@UBE?AW4OMX_BOOL@@XZ @ 17 NONAME ; enum OMX_BOOL COmxILClientClockPort::IsClockComponentAvailable(void) const
- ?SymbianErrorToGetHandleError@COmxILComponent@@SA?AW4OMX_ERRORTYPE@@H@Z @ 18 NONAME ; enum OMX_ERRORTYPE COmxILComponent::SymbianErrorToGetHandleError(int)
- ?SetConfig@COmxILPort@@UAE?AW4OMX_ERRORTYPE@@W4OMX_INDEXTYPE@@PBXAAH@Z @ 19 NONAME ; enum OMX_ERRORTYPE COmxILPort::SetConfig(enum OMX_INDEXTYPE, void const *, int &)
- ?GetParameter@COmxILPort@@UBE?AW4OMX_ERRORTYPE@@W4OMX_INDEXTYPE@@PAX@Z @ 20 NONAME ; enum OMX_ERRORTYPE COmxILPort::GetParameter(enum OMX_INDEXTYPE, void *) const
- ?SetPortManager@COmxILInContextCallbackManager@@UAEXAAVCOmxILPortManager@@@Z @ 21 NONAME ; void COmxILInContextCallbackManager::SetPortManager(class COmxILPortManager &)
- ?GetLocalOmxConfigIndexes@COmxILPort@@UBE?AW4OMX_ERRORTYPE@@AAV?$RArray@I@@@Z @ 22 NONAME ; enum OMX_ERRORTYPE COmxILPort::GetLocalOmxConfigIndexes(class RArray<unsigned int> &) const
- ?GetWallTime@COmxILClientClockPort@@UBE?AW4OMX_ERRORTYPE@@AA_J@Z @ 23 NONAME ; enum OMX_ERRORTYPE COmxILClientClockPort::GetWallTime(long long &) const
- ?SetBufferSent@COmxILPort@@UAEHPAUOMX_BUFFERHEADERTYPE@@AAH@Z @ 24 NONAME ; int COmxILPort::SetBufferSent(struct OMX_BUFFERHEADERTYPE *, int &)
- ?ComponentRoleIndication@COmxILProcessingFunction@@UAE?AW4OMX_ERRORTYPE@@I@Z @ 25 NONAME ; enum OMX_ERRORTYPE COmxILProcessingFunction::ComponentRoleIndication(unsigned int)
- ??0TOmxILCommonPortData@@QAE@TOMX_VERSIONTYPE@@KW4OMX_DIRTYPE@@KKW4OMX_PORTDOMAINTYPE@@W4OMX_BOOL@@KW4OMX_BUFFERSUPPLIERTYPE@@K@Z @ 26 NONAME ; TOmxILCommonPortData::TOmxILCommonPortData(union OMX_VERSIONTYPE, unsigned long, enum OMX_DIRTYPE, unsigned long, unsigned long, enum OMX_PORTDOMAINTYPE, enum OMX_BOOL, unsigned long, enum OMX_BUFFERSUPPLIERTYPE, unsigned long)
- ?DoOmxUseBuffer@COmxILPort@@MAE?AW4OMX_ERRORTYPE@@PAXPAPAUOMX_BUFFERHEADERTYPE@@K00KPAE@Z @ 27 NONAME ; enum OMX_ERRORTYPE COmxILPort::DoOmxUseBuffer(void *, struct OMX_BUFFERHEADERTYPE * *, unsigned long, void *, void *, unsigned long, unsigned char *)
- ?EventNotification@COmxILCallbackManager@@UAE?AW4OMX_ERRORTYPE@@W4OMX_EVENTTYPE@@KKPAD@Z @ 28 NONAME ; enum OMX_ERRORTYPE COmxILCallbackManager::EventNotification(enum OMX_EVENTTYPE, unsigned long, unsigned long, char *)
- ?SetTransitionToEnabledCompleted@COmxILPort@@UAEXXZ @ 29 NONAME ; void COmxILPort::SetTransitionToEnabledCompleted(void)
- ?GetConfig@COmxILConfigManager@@UBE?AW4OMX_ERRORTYPE@@W4OMX_INDEXTYPE@@PAX@Z @ 30 NONAME ; enum OMX_ERRORTYPE COmxILConfigManager::GetConfig(enum OMX_INDEXTYPE, void *) const
- ?SetParameter@COmxILConfigManager@@UAE?AW4OMX_ERRORTYPE@@W4OMX_INDEXTYPE@@PBXW4OMX_BOOL@@@Z @ 31 NONAME ; enum OMX_ERRORTYPE COmxILConfigManager::SetParameter(enum OMX_INDEXTYPE, void const *, enum OMX_BOOL)
- ?RegisterTunnelCallback@COmxILInContextCallbackManager@@UAE?AW4OMX_ERRORTYPE@@KW4OMX_DIRTYPE@@PAXK@Z @ 32 NONAME ; enum OMX_ERRORTYPE COmxILInContextCallbackManager::RegisterTunnelCallback(unsigned long, enum OMX_DIRTYPE, void *, unsigned long)
- ?InitComponentL@COmxILComponent@@IAEXXZ @ 33 NONAME ; void COmxILComponent::InitComponentL(void)
- ?RegisterComponentHandle@COmxILCallbackManager@@UAE?AW4OMX_ERRORTYPE@@PAX@Z @ 34 NONAME ; enum OMX_ERRORTYPE COmxILCallbackManager::RegisterComponentHandle(void *)
- ?HandleInsufficientResources@XOmxILCallbackManagerIfImpl@@MAEXXZ @ 35 NONAME ; void XOmxILCallbackManagerIfImpl::HandleInsufficientResources(void)
- ?DoRegisterILClientCallbacks@XOmxILCallbackManagerIfImpl@@MAE?AW4OMX_ERRORTYPE@@PBUOMX_CALLBACKTYPE@@PAX@Z @ 36 NONAME ; enum OMX_ERRORTYPE XOmxILCallbackManagerIfImpl::DoRegisterILClientCallbacks(struct OMX_CALLBACKTYPE const *, void *)
- ?Compare@TBufferInfo@COmxILPort@@SAHABV12@0@Z @ 37 NONAME ; int COmxILPort::TBufferInfo::Compare(class COmxILPort::TBufferInfo const &, class COmxILPort::TBufferInfo const &)
- ?RunL@COmxILCallbackManager@@UAEXXZ @ 38 NONAME ABSENT ; void COmxILCallbackManager::RunL(void)
- ?SetParameter@COmxILVideoPort@@UAE?AW4OMX_ERRORTYPE@@W4OMX_INDEXTYPE@@PBXAAH@Z @ 39 NONAME ; enum OMX_ERRORTYPE COmxILVideoPort::SetParameter(enum OMX_INDEXTYPE, void const *, int &)
- ?RegisterBufferMarkPropagationPort@COmxILInContextCallbackManager@@UAE?AW4OMX_ERRORTYPE@@KK@Z @ 40 NONAME ; enum OMX_ERRORTYPE COmxILInContextCallbackManager::RegisterBufferMarkPropagationPort(unsigned long, unsigned long)
- ?MediaTimeIndication@COmxILProcessingFunction@@UAE?AW4OMX_ERRORTYPE@@ABUOMX_TIME_MEDIATIMETYPE@@@Z @ 41 NONAME ; enum OMX_ERRORTYPE COmxILProcessingFunction::MediaTimeIndication(struct OMX_TIME_MEDIATIMETYPE const &)
- ?StoreBufferMark@COmxILPort@@UAE?AW4OMX_ERRORTYPE@@PBUOMX_MARKTYPE@@@Z @ 42 NONAME ; enum OMX_ERRORTYPE COmxILPort::StoreBufferMark(struct OMX_MARKTYPE const *)
- ?GetLocalOmxParamIndexes@COmxILAudioPort@@UBE?AW4OMX_ERRORTYPE@@AAV?$RArray@I@@@Z @ 43 NONAME ; enum OMX_ERRORTYPE COmxILAudioPort::GetLocalOmxParamIndexes(class RArray<unsigned int> &) const
- ??0COmxILPort@@IAE@ABVTOmxILCommonPortData@@@Z @ 44 NONAME ; COmxILPort::COmxILPort(class TOmxILCommonPortData const &)
- ??1XOmxILCallbackManagerIfImpl@@MAE@XZ @ 45 NONAME ; XOmxILCallbackManagerIfImpl::~XOmxILCallbackManagerIfImpl(void)
- ?RegisterBufferMarkPropagationPort@COmxILCallbackManager@@UAE?AW4OMX_ERRORTYPE@@KK@Z @ 46 NONAME ; enum OMX_ERRORTYPE COmxILCallbackManager::RegisterBufferMarkPropagationPort(unsigned long, unsigned long)
- ??0COmxILImagePort@@IAE@ABVTOmxILCommonPortData@@ABV?$RArray@W4OMX_IMAGE_CODINGTYPE@@@@ABV?$RArray@W4OMX_COLOR_FORMATTYPE@@@@@Z @ 47 NONAME ; COmxILImagePort::COmxILImagePort(class TOmxILCommonPortData const &, class RArray<enum OMX_IMAGE_CODINGTYPE> const &, class RArray<enum OMX_COLOR_FORMATTYPE> const &)
- ?GetExtensionIndex@COmxILPort@@UBE?AW4OMX_ERRORTYPE@@PADPAW4OMX_INDEXTYPE@@@Z @ 48 NONAME ; enum OMX_ERRORTYPE COmxILPort::GetExtensionIndex(char *, enum OMX_INDEXTYPE *) const
- ?NewL@COmxILCallbackManager@@SAPAV1@PAX0PAUOMX_CALLBACKTYPE@@@Z @ 49 NONAME ; class COmxILCallbackManager * COmxILCallbackManager::NewL(void *, void *, struct OMX_CALLBACKTYPE *)
- ??1COmxILPort@@UAE@XZ @ 50 NONAME ; COmxILPort::~COmxILPort(void)
- ?PortSettingsChangeNotification@COmxILCallbackManager@@UAE?AW4OMX_ERRORTYPE@@KIABVTDesC8@@@Z @ 51 NONAME ; enum OMX_ERRORTYPE COmxILCallbackManager::PortSettingsChangeNotification(unsigned long, unsigned int, class TDesC8 const &)
- ??1COmxILVideoPort@@UAE@XZ @ 52 NONAME ; COmxILVideoPort::~COmxILVideoPort(void)
- ?SetFsm@COmxILCallbackManager@@UAEXAAVCOmxILFsm@@@Z @ 53 NONAME ; void COmxILCallbackManager::SetFsm(class COmxILFsm &)
- ?ErrorEventNotification@COmxILInContextCallbackManager@@UAE?AW4OMX_ERRORTYPE@@W42@@Z @ 54 NONAME ; enum OMX_ERRORTYPE COmxILInContextCallbackManager::ErrorEventNotification(enum OMX_ERRORTYPE)
- ?SetStartTime@COmxILClientClockPort@@UBE?AW4OMX_ERRORTYPE@@_J@Z @ 55 NONAME ; enum OMX_ERRORTYPE COmxILClientClockPort::SetStartTime(long long) const
- ?GetParameter@COmxILVideoPort@@UBE?AW4OMX_ERRORTYPE@@W4OMX_INDEXTYPE@@PAX@Z @ 56 NONAME ; enum OMX_ERRORTYPE COmxILVideoPort::GetParameter(enum OMX_INDEXTYPE, void *) const
- ?BufferDoneNotification@COmxILInContextCallbackManager@@UAE?AW4OMX_ERRORTYPE@@PAUOMX_BUFFERHEADERTYPE@@KW4OMX_DIRTYPE@@@Z @ 57 NONAME ; enum OMX_ERRORTYPE COmxILInContextCallbackManager::BufferDoneNotification(struct OMX_BUFFERHEADERTYPE *, unsigned long, enum OMX_DIRTYPE)
- ?GetComponentVersion@COmxILConfigManager@@UBE?AW4OMX_ERRORTYPE@@PADPATOMX_VERSIONTYPE@@1PAY0IA@E@Z @ 58 NONAME ; enum OMX_ERRORTYPE COmxILConfigManager::GetComponentVersion(char *, union OMX_VERSIONTYPE *, union OMX_VERSIONTYPE *, unsigned char [128] *) const
- ?DoEventNotification@XOmxILCallbackManagerIfImpl@@MAE?AW4OMX_ERRORTYPE@@W4OMX_EVENTTYPE@@KKPAD@Z @ 59 NONAME ; enum OMX_ERRORTYPE XOmxILCallbackManagerIfImpl::DoEventNotification(enum OMX_EVENTTYPE, unsigned long, unsigned long, char *)
- ?DoCancel@COmxILCallbackManager@@UAEXXZ @ 60 NONAME ABSENT ; void COmxILCallbackManager::DoCancel(void)
- ?SetParameter@COmxILOtherPort@@UAE?AW4OMX_ERRORTYPE@@W4OMX_INDEXTYPE@@PBXAAH@Z @ 61 NONAME ; enum OMX_ERRORTYPE COmxILOtherPort::SetParameter(enum OMX_INDEXTYPE, void const *, int &)
- ??1COmxILAudioPort@@UAE@XZ @ 62 NONAME ; COmxILAudioPort::~COmxILAudioPort(void)
- ?RegisterComponentHandle@COmxILInContextCallbackManager@@UAE?AW4OMX_ERRORTYPE@@PAX@Z @ 63 NONAME ; enum OMX_ERRORTYPE COmxILInContextCallbackManager::RegisterComponentHandle(void *)
- ?SetParameter@COmxILAudioPort@@UAE?AW4OMX_ERRORTYPE@@W4OMX_INDEXTYPE@@PBXAAH@Z @ 64 NONAME ; enum OMX_ERRORTYPE COmxILAudioPort::SetParameter(enum OMX_INDEXTYPE, void const *, int &)
- ?DoRegisterComponentHandle@XOmxILCallbackManagerIfImpl@@MAE?AW4OMX_ERRORTYPE@@PAX@Z @ 65 NONAME ; enum OMX_ERRORTYPE XOmxILCallbackManagerIfImpl::DoRegisterComponentHandle(void *)
- ?PortSettingsChangeNotification@COmxILInContextCallbackManager@@UAE?AW4OMX_ERRORTYPE@@KIABVTDesC8@@@Z @ 66 NONAME ; enum OMX_ERRORTYPE COmxILInContextCallbackManager::PortSettingsChangeNotification(unsigned long, unsigned int, class TDesC8 const &)
- ?SetVideoReference@COmxILClientClockPort@@UBE?AW4OMX_ERRORTYPE@@_J@Z @ 67 NONAME ; enum OMX_ERRORTYPE COmxILClientClockPort::SetVideoReference(long long) const
- ?GetLocalOmxConfigIndexes@COmxILAudioPort@@UBE?AW4OMX_ERRORTYPE@@AAV?$RArray@I@@@Z @ 68 NONAME ; enum OMX_ERRORTYPE COmxILAudioPort::GetLocalOmxConfigIndexes(class RArray<unsigned int> &) const
- ??1COmxILConfigManager@@UAE@XZ @ 69 NONAME ; COmxILConfigManager::~COmxILConfigManager(void)
- ?ConstructL@COmxILConfigManager@@IAEXABVTDesC8@@ABTOMX_VERSIONTYPE@@ABV?$RPointerArray@VTDesC8@@@@@Z @ 70 NONAME ; void COmxILConfigManager::ConstructL(class TDesC8 const &, union OMX_VERSIONTYPE const &, class RPointerArray<class TDesC8> const &)
- ?RegisterILClientCallbacks@COmxILCallbackManager@@UAE?AW4OMX_ERRORTYPE@@PBUOMX_CALLBACKTYPE@@PAX@Z @ 71 NONAME ; enum OMX_ERRORTYPE COmxILCallbackManager::RegisterILClientCallbacks(struct OMX_CALLBACKTYPE const *, void *)
- ?NewL@COmxILClientClockPort@@SAPAV1@ABVTOmxILCommonPortData@@ABV?$RArray@W4OMX_OTHER_FORMATTYPE@@@@@Z @ 72 NONAME ; class COmxILClientClockPort * COmxILClientClockPort::NewL(class TOmxILCommonPortData const &, class RArray<enum OMX_OTHER_FORMATTYPE> const &)
- ?GetExtensionIndex@COmxILConfigManager@@UBE?AW4OMX_ERRORTYPE@@PADPAW4OMX_INDEXTYPE@@@Z @ 73 NONAME ; enum OMX_ERRORTYPE COmxILConfigManager::GetExtensionIndex(char *, enum OMX_INDEXTYPE *) const
- ?GetLocalOmxParamIndexes@COmxILVideoPort@@UBE?AW4OMX_ERRORTYPE@@AAV?$RArray@I@@@Z @ 74 NONAME ; enum OMX_ERRORTYPE COmxILVideoPort::GetLocalOmxParamIndexes(class RArray<unsigned int> &) const
- ?DoBufferAllocation@COmxILPort@@MAE?AW4OMX_ERRORTYPE@@KAAPAEAAPAX1PAX@Z @ 75 NONAME ; enum OMX_ERRORTYPE COmxILPort::DoBufferAllocation(unsigned long, unsigned char * &, void * &, void * &, void *)
- ?EventNotification@COmxILInContextCallbackManager@@UAE?AW4OMX_ERRORTYPE@@W4OMX_EVENTTYPE@@KKPAD@Z @ 76 NONAME ; enum OMX_ERRORTYPE COmxILInContextCallbackManager::EventNotification(enum OMX_EVENTTYPE, unsigned long, unsigned long, char *)
- ?GetClockState@COmxILClientClockPort@@UBE?AW4OMX_ERRORTYPE@@AAUOMX_TIME_CONFIG_CLOCKSTATETYPE@@@Z @ 77 NONAME ; enum OMX_ERRORTYPE COmxILClientClockPort::GetClockState(struct OMX_TIME_CONFIG_CLOCKSTATETYPE &) const
- ??0COmxILComponent@@IAE@XZ @ 78 NONAME ; COmxILComponent::COmxILComponent(void)
- ?DoSetPortManager@XOmxILCallbackManagerIfImpl@@MAEXAAVCOmxILPortManager@@@Z @ 79 NONAME ; void XOmxILCallbackManagerIfImpl::DoSetPortManager(class COmxILPortManager &)
- ?FreeTunnel@COmxILPort@@UAE?AW4OMX_ERRORTYPE@@AAH@Z @ 80 NONAME ; enum OMX_ERRORTYPE COmxILPort::FreeTunnel(int &)
- ?RegisterTunnelCallback@COmxILCallbackManager@@UAE?AW4OMX_ERRORTYPE@@KW4OMX_DIRTYPE@@PAXK@Z @ 81 NONAME ; enum OMX_ERRORTYPE COmxILCallbackManager::RegisterTunnelCallback(unsigned long, enum OMX_DIRTYPE, void *, unsigned long)
- ?HasAllBuffersAtHome@COmxILPort@@UBEHXZ @ 82 NONAME ; int COmxILPort::HasAllBuffersAtHome(void) const
- ?SetComponentRoleDefaults@COmxILPort@@UAE?AW4OMX_ERRORTYPE@@I@Z @ 83 NONAME ; enum OMX_ERRORTYPE COmxILPort::SetComponentRoleDefaults(unsigned int)
- ?BufferDoneNotification@COmxILCallbackManager@@UAE?AW4OMX_ERRORTYPE@@PAUOMX_BUFFERHEADERTYPE@@KW4OMX_DIRTYPE@@@Z @ 84 NONAME ; enum OMX_ERRORTYPE COmxILCallbackManager::BufferDoneNotification(struct OMX_BUFFERHEADERTYPE *, unsigned long, enum OMX_DIRTYPE)
- ?GetParameter@COmxILAudioPort@@UBE?AW4OMX_ERRORTYPE@@W4OMX_INDEXTYPE@@PAX@Z @ 85 NONAME ; enum OMX_ERRORTYPE COmxILAudioPort::GetParameter(enum OMX_INDEXTYPE, void *) const
- ?GetParameter@COmxILImagePort@@UBE?AW4OMX_ERRORTYPE@@W4OMX_INDEXTYPE@@PAX@Z @ 86 NONAME ; enum OMX_ERRORTYPE COmxILImagePort::GetParameter(enum OMX_INDEXTYPE, void *) const
- ?NewL@COmxILPortManager@@SAPAV1@AAVCOmxILProcessingFunction@@AAVMOmxILCallbackManagerIf@@ABTOMX_VERSIONTYPE@@KKKKKKKKW4OMX_BOOL@@@Z @ 87 NONAME ; class COmxILPortManager * COmxILPortManager::NewL(class COmxILProcessingFunction &, class MOmxILCallbackManagerIf &, union OMX_VERSIONTYPE const &, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, enum OMX_BOOL)
- ?GetMediaTime@COmxILClientClockPort@@UBE?AW4OMX_ERRORTYPE@@AA_J@Z @ 88 NONAME ; enum OMX_ERRORTYPE COmxILClientClockPort::GetMediaTime(long long &) const
- ?PopulateTunnel@COmxILPort@@UAE?AW4OMX_ERRORTYPE@@AAH@Z @ 89 NONAME ; enum OMX_ERRORTYPE COmxILPort::PopulateTunnel(int &)
- ?AddPort@COmxILPortManager@@QAEHPBVCOmxILPort@@W4OMX_DIRTYPE@@@Z @ 90 NONAME ; int COmxILPortManager::AddPort(class COmxILPort const *, enum OMX_DIRTYPE)
- ?GetLocalOmxParamIndexes@COmxILImagePort@@UBE?AW4OMX_ERRORTYPE@@AAV?$RArray@I@@@Z @ 91 NONAME ; enum OMX_ERRORTYPE COmxILImagePort::GetLocalOmxParamIndexes(class RArray<unsigned int> &) const
- ?SetAudioReference@COmxILClientClockPort@@UBE?AW4OMX_ERRORTYPE@@_J@Z @ 92 NONAME ; enum OMX_ERRORTYPE COmxILClientClockPort::SetAudioReference(long long) const
- ?TransitionCompleteNotification@COmxILInContextCallbackManager@@UAE?AW4OMX_ERRORTYPE@@W4OMX_STATETYPE@@@Z @ 93 NONAME ; enum OMX_ERRORTYPE COmxILInContextCallbackManager::TransitionCompleteNotification(enum OMX_STATETYPE)
- ?CommandCompleteNotification@COmxILInContextCallbackManager@@UAE?AW4OMX_ERRORTYPE@@W4OMX_COMMANDTYPE@@K@Z @ 94 NONAME ; enum OMX_ERRORTYPE COmxILInContextCallbackManager::CommandCompleteNotification(enum OMX_COMMANDTYPE, unsigned long)
- ?CommandCompleteNotification@COmxILCallbackManager@@UAE?AW4OMX_ERRORTYPE@@W4OMX_COMMANDTYPE@@K@Z @ 95 NONAME ; enum OMX_ERRORTYPE COmxILCallbackManager::CommandCompleteNotification(enum OMX_COMMANDTYPE, unsigned long)
- ?CheckOmxStructSizeAndVersion@TOmxILUtil@@SA?AW4OMX_ERRORTYPE@@PAXK@Z @ 96 NONAME ; enum OMX_ERRORTYPE TOmxILUtil::CheckOmxStructSizeAndVersion(void *, unsigned long)
- ?IsBufferAtHome@COmxILPort@@UBEHPAUOMX_BUFFERHEADERTYPE@@@Z @ 97 NONAME ; int COmxILPort::IsBufferAtHome(struct OMX_BUFFERHEADERTYPE *) const
- ?ConstructL@COmxILAudioPort@@MAEXABV?$RArray@W4OMX_AUDIO_CODINGTYPE@@@@@Z @ 98 NONAME ; void COmxILAudioPort::ConstructL(class RArray<enum OMX_AUDIO_CODINGTYPE> const &)
- ?GetLocalOmxConfigIndexes@COmxILVideoPort@@UBE?AW4OMX_ERRORTYPE@@AAV?$RArray@I@@@Z @ 99 NONAME ; enum OMX_ERRORTYPE COmxILVideoPort::GetLocalOmxConfigIndexes(class RArray<unsigned int> &) const
- ?ClockBufferDoneNotification@COmxILInContextCallbackManager@@UAE?AW4OMX_ERRORTYPE@@PAUOMX_BUFFERHEADERTYPE@@KW4OMX_DIRTYPE@@@Z @ 100 NONAME ; enum OMX_ERRORTYPE COmxILInContextCallbackManager::ClockBufferDoneNotification(struct OMX_BUFFERHEADERTYPE *, unsigned long, enum OMX_DIRTYPE)
- ??0COmxILProcessingFunction@@IAE@AAVMOmxILCallbackNotificationIf@@@Z @ 101 NONAME ; COmxILProcessingFunction::COmxILProcessingFunction(class MOmxILCallbackNotificationIf &)
- ?DoPortReconfiguration@COmxILPort@@UAE?AW4OMX_ERRORTYPE@@IABVTDesC8@@AAW4OMX_EVENTTYPE@@@Z @ 102 NONAME ; enum OMX_ERRORTYPE COmxILPort::DoPortReconfiguration(unsigned int, class TDesC8 const &, enum OMX_EVENTTYPE &)
- ?DoPortSettingsChangeNotification@XOmxILCallbackManagerIfImpl@@MAE?AW4OMX_ERRORTYPE@@KIABVTDesC8@@@Z @ 103 NONAME ; enum OMX_ERRORTYPE XOmxILCallbackManagerIfImpl::DoPortSettingsChangeNotification(unsigned long, unsigned int, class TDesC8 const &)
- ?PopulateBuffer@COmxILPort@@UAE?AW4OMX_ERRORTYPE@@PAPAUOMX_BUFFERHEADERTYPE@@PAXKPAEAAH@Z @ 104 NONAME ; enum OMX_ERRORTYPE COmxILPort::PopulateBuffer(struct OMX_BUFFERHEADERTYPE * *, void *, unsigned long, unsigned char *, int &)
- ??0COmxILVideoPort@@IAE@ABVTOmxILCommonPortData@@ABV?$RArray@W4OMX_VIDEO_CODINGTYPE@@@@ABV?$RArray@W4OMX_COLOR_FORMATTYPE@@@@@Z @ 105 NONAME ; COmxILVideoPort::COmxILVideoPort(class TOmxILCommonPortData const &, class RArray<enum OMX_VIDEO_CODINGTYPE> const &, class RArray<enum OMX_COLOR_FORMATTYPE> const &)
- ??1COmxILOtherPort@@UAE@XZ @ 106 NONAME ; COmxILOtherPort::~COmxILOtherPort(void)
- ??1COmxILInContextCallbackManager@@UAE@XZ @ 107 NONAME ; COmxILInContextCallbackManager::~COmxILInContextCallbackManager(void)
- ?GetLocalOmxParamIndexes@COmxILPort@@UBE?AW4OMX_ERRORTYPE@@AAV?$RArray@I@@@Z @ 108 NONAME ; enum OMX_ERRORTYPE COmxILPort::GetLocalOmxParamIndexes(class RArray<unsigned int> &) const
- ?CleanUpPort@COmxILPort@@IAEXXZ @ 109 NONAME ; void COmxILPort::CleanUpPort(void)
- ?FreeBuffer@COmxILPort@@UAE?AW4OMX_ERRORTYPE@@PAUOMX_BUFFERHEADERTYPE@@AAH@Z @ 110 NONAME ; enum OMX_ERRORTYPE COmxILPort::FreeBuffer(struct OMX_BUFFERHEADERTYPE *, int &)
- ?TunnelRequest@COmxILPort@@UAE?AW4OMX_ERRORTYPE@@PAXKPAUOMX_TUNNELSETUPTYPE@@@Z @ 111 NONAME ; enum OMX_ERRORTYPE COmxILPort::TunnelRequest(void *, unsigned long, struct OMX_TUNNELSETUPTYPE *)
- ?GetParameter@COmxILConfigManager@@UBE?AW4OMX_ERRORTYPE@@W4OMX_INDEXTYPE@@PAX@Z @ 112 NONAME ; enum OMX_ERRORTYPE COmxILConfigManager::GetParameter(enum OMX_INDEXTYPE, void *) const
- ?SetFsm@COmxILInContextCallbackManager@@UAEXAAVCOmxILFsm@@@Z @ 113 NONAME ; void COmxILInContextCallbackManager::SetFsm(class COmxILFsm &)
- ?ConstructL@COmxILOtherPort@@MAEXABV?$RArray@W4OMX_OTHER_FORMATTYPE@@@@@Z @ 114 NONAME ; void COmxILOtherPort::ConstructL(class RArray<enum OMX_OTHER_FORMATTYPE> const &)
- ?GetLocalOmxConfigIndexes@COmxILImagePort@@UBE?AW4OMX_ERRORTYPE@@AAV?$RArray@I@@@Z @ 115 NONAME ; enum OMX_ERRORTYPE COmxILImagePort::GetLocalOmxConfigIndexes(class RArray<unsigned int> &) const
- ?ClearBufferContents@TOmxILUtil@@SAXPAUOMX_BUFFERHEADERTYPE@@@Z @ 116 NONAME ; void TOmxILUtil::ClearBufferContents(struct OMX_BUFFERHEADERTYPE *)
- ?SetParameter@COmxILImagePort@@UAE?AW4OMX_ERRORTYPE@@W4OMX_INDEXTYPE@@PBXAAH@Z @ 117 NONAME ; enum OMX_ERRORTYPE COmxILImagePort::SetParameter(enum OMX_INDEXTYPE, void const *, int &)
- ?DoBufferDoneNotification@XOmxILCallbackManagerIfImpl@@MAE?AW4OMX_ERRORTYPE@@PAUOMX_BUFFERHEADERTYPE@@KW4OMX_DIRTYPE@@@Z @ 118 NONAME ; enum OMX_ERRORTYPE XOmxILCallbackManagerIfImpl::DoBufferDoneNotification(struct OMX_BUFFERHEADERTYPE *, unsigned long, enum OMX_DIRTYPE)
- ?GetLocalOmxParamIndexes@COmxILOtherPort@@UBE?AW4OMX_ERRORTYPE@@AAV?$RArray@I@@@Z @ 119 NONAME ; enum OMX_ERRORTYPE COmxILOtherPort::GetLocalOmxParamIndexes(class RArray<unsigned int> &) const
- ?TransitionCompleteNotification@COmxILCallbackManager@@UAE?AW4OMX_ERRORTYPE@@W4OMX_STATETYPE@@@Z @ 120 NONAME ; enum OMX_ERRORTYPE COmxILCallbackManager::TransitionCompleteNotification(enum OMX_STATETYPE)
- ?BufferRemovalIndication@COmxILInContextCallbackManager@@UAEHPAUOMX_BUFFERHEADERTYPE@@W4OMX_DIRTYPE@@@Z @ 121 NONAME ; int COmxILInContextCallbackManager::BufferRemovalIndication(struct OMX_BUFFERHEADERTYPE *, enum OMX_DIRTYPE)
- ?SignalOrPropagateBufferMarks@XOmxILCallbackManagerIfImpl@@MAEXPAUOMX_BUFFERHEADERTYPE@@K@Z @ 122 NONAME ; void XOmxILCallbackManagerIfImpl::SignalOrPropagateBufferMarks(struct OMX_BUFFERHEADERTYPE *, unsigned long)
- ?DeregisterTunnelCallback@COmxILInContextCallbackManager@@UAE?AW4OMX_ERRORTYPE@@K@Z @ 123 NONAME ; enum OMX_ERRORTYPE COmxILInContextCallbackManager::DeregisterTunnelCallback(unsigned long)
- ?DoBufferUnwrapping@COmxILPort@@MAEXPAX000@Z @ 124 NONAME ; void COmxILPort::DoBufferUnwrapping(void *, void *, void *, void *)
- ?ComponentRoleEnum@COmxILConfigManager@@QBE?AW4OMX_ERRORTYPE@@PAEK@Z @ 125 NONAME ; enum OMX_ERRORTYPE COmxILConfigManager::ComponentRoleEnum(unsigned char *, unsigned long) const
- ?DoRegisterBufferMarkPropagationPort@XOmxILCallbackManagerIfImpl@@MAE?AW4OMX_ERRORTYPE@@KK@Z @ 126 NONAME ; enum OMX_ERRORTYPE XOmxILCallbackManagerIfImpl::DoRegisterBufferMarkPropagationPort(unsigned long, unsigned long)
- ??0COmxILOtherPort@@IAE@ABVTOmxILCommonPortData@@@Z @ 127 NONAME ; COmxILOtherPort::COmxILOtherPort(class TOmxILCommonPortData const &)
- ?MediaTimeRequest@COmxILClientClockPort@@UBE?AW4OMX_ERRORTYPE@@PAX_J1@Z @ 128 NONAME ; enum OMX_ERRORTYPE COmxILClientClockPort::MediaTimeRequest(void *, long long, long long) const
- ?GetConfig@COmxILPort@@UBE?AW4OMX_ERRORTYPE@@W4OMX_INDEXTYPE@@PAX@Z @ 129 NONAME ; enum OMX_ERRORTYPE COmxILPort::GetConfig(enum OMX_INDEXTYPE, void *) const
- ??0XOmxILCallbackManagerIfImpl@@IAE@PAX0PAUOMX_CALLBACKTYPE@@@Z @ 130 NONAME ; XOmxILCallbackManagerIfImpl::XOmxILCallbackManagerIfImpl(void *, void *, struct OMX_CALLBACKTYPE *)
- ??0COmxILAudioPort@@IAE@ABVTOmxILCommonPortData@@@Z @ 131 NONAME ; COmxILAudioPort::COmxILAudioPort(class TOmxILCommonPortData const &)
- ?DoErrorEventNotification@XOmxILCallbackManagerIfImpl@@MAE?AW4OMX_ERRORTYPE@@W42@@Z @ 132 NONAME ; enum OMX_ERRORTYPE XOmxILCallbackManagerIfImpl::DoErrorEventNotification(enum OMX_ERRORTYPE)
- ?DeregisterTunnelCallback@COmxILCallbackManager@@UAE?AW4OMX_ERRORTYPE@@K@Z @ 133 NONAME ; enum OMX_ERRORTYPE COmxILCallbackManager::DeregisterTunnelCallback(unsigned long)
- ??1COmxILProcessingFunction@@UAE@XZ @ 134 NONAME ; COmxILProcessingFunction::~COmxILProcessingFunction(void)
- ?NewL@COmxILConfigManager@@SAPAV1@AAVCOmxILPortManager@@ABVTDesC8@@ABTOMX_VERSIONTYPE@@ABV?$RPointerArray@VTDesC8@@@@@Z @ 135 NONAME ; class COmxILConfigManager * COmxILConfigManager::NewL(class COmxILPortManager &, class TDesC8 const &, union OMX_VERSIONTYPE const &, class RPointerArray<class TDesC8> const &)
- ?NewL@COmxILInContextCallbackManager@@SAPAV1@PAX0PAUOMX_CALLBACKTYPE@@@Z @ 136 NONAME ; class COmxILInContextCallbackManager * COmxILInContextCallbackManager::NewL(void *, void *, struct OMX_CALLBACKTYPE *)
- ?SetParameter@COmxILPort@@UAE?AW4OMX_ERRORTYPE@@W4OMX_INDEXTYPE@@PBXAAH@Z @ 137 NONAME ; enum OMX_ERRORTYPE COmxILPort::SetParameter(enum OMX_INDEXTYPE, void const *, int &)
- ?SetTransitionToEnabled@COmxILPort@@UAEXXZ @ 138 NONAME ; void COmxILPort::SetTransitionToEnabled(void)
- ??1COmxILComponent@@UAE@XZ @ 139 NONAME ; COmxILComponent::~COmxILComponent(void)
- ?DoBufferWrapping@COmxILPort@@MAE?AW4OMX_ERRORTYPE@@KPAEAAPAX1PAX@Z @ 140 NONAME ; enum OMX_ERRORTYPE COmxILPort::DoBufferWrapping(unsigned long, unsigned char *, void * &, void * &, void *)
- ?BufferRemovalIndication@COmxILCallbackManager@@UAEHPAUOMX_BUFFERHEADERTYPE@@W4OMX_DIRTYPE@@@Z @ 141 NONAME ; int COmxILCallbackManager::BufferRemovalIndication(struct OMX_BUFFERHEADERTYPE *, enum OMX_DIRTYPE)
- ?ErrorEventNotification@COmxILCallbackManager@@UAE?AW4OMX_ERRORTYPE@@W42@@Z @ 142 NONAME ; enum OMX_ERRORTYPE COmxILCallbackManager::ErrorEventNotification(enum OMX_ERRORTYPE)
- ?SetBufferReturned@COmxILPort@@UAEHPAUOMX_BUFFERHEADERTYPE@@@Z @ 143 NONAME ; int COmxILPort::SetBufferReturned(struct OMX_BUFFERHEADERTYPE *)
- ?DoBufferDeallocation@COmxILPort@@MAEXPAX000@Z @ 144 NONAME ; void COmxILPort::DoBufferDeallocation(void *, void *, void *, void *)
- ?GetLocalOmxConfigIndexes@COmxILOtherPort@@UBE?AW4OMX_ERRORTYPE@@AAV?$RArray@I@@@Z @ 145 NONAME ; enum OMX_ERRORTYPE COmxILOtherPort::GetLocalOmxConfigIndexes(class RArray<unsigned int> &) const
-
--- a/omxil/omxilcomponentcommon/eabi/omxilcomponentcommon.def Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,274 +0,0 @@
-EXPORTS
- _ZN10COmxILPort10FreeBufferEP20OMX_BUFFERHEADERTYPERi @ 1 NONAME
- _ZN10COmxILPort10FreeTunnelERi @ 2 NONAME
- _ZN10COmxILPort11CleanUpPortEv @ 3 NONAME
- _ZN10COmxILPort11TBufferInfo7CompareERKS0_S2_ @ 4 NONAME
- _ZN10COmxILPort12SetParameterE13OMX_INDEXTYPEPKvRi @ 5 NONAME
- _ZN10COmxILPort13SetBufferSentEP20OMX_BUFFERHEADERTYPERi @ 6 NONAME
- _ZN10COmxILPort13TunnelRequestEPvmP19OMX_TUNNELSETUPTYPE @ 7 NONAME
- _ZN10COmxILPort14DoOmxUseBufferEPvPP20OMX_BUFFERHEADERTYPEmS0_S0_mPh @ 8 NONAME
- _ZN10COmxILPort14PopulateBufferEPP20OMX_BUFFERHEADERTYPEPvmPhRi @ 9 NONAME
- _ZN10COmxILPort14PopulateTunnelERi @ 10 NONAME
- _ZN10COmxILPort15StoreBufferMarkEPK12OMX_MARKTYPE @ 11 NONAME
- _ZN10COmxILPort15StoreBufferMarkERPvS1_ @ 12 NONAME
- _ZN10COmxILPort16DoBufferWrappingEmPhRPvS2_S1_ @ 13 NONAME
- _ZN10COmxILPort17SetBufferReturnedEP20OMX_BUFFERHEADERTYPE @ 14 NONAME
- _ZN10COmxILPort18DoBufferAllocationEmRPhRPvS3_S2_ @ 15 NONAME
- _ZN10COmxILPort18DoBufferUnwrappingEPvS0_S0_S0_ @ 16 NONAME
- _ZN10COmxILPort20DoBufferDeallocationEPvS0_S0_S0_ @ 17 NONAME
- _ZN10COmxILPort21DoPortReconfigurationEjRK6TDesC8R13OMX_EVENTTYPE @ 18 NONAME
- _ZN10COmxILPort22SetTransitionToEnabledEv @ 19 NONAME
- _ZN10COmxILPort23SetTransitionToDisabledEv @ 20 NONAME
- _ZN10COmxILPort24SetComponentRoleDefaultsEj @ 21 NONAME
- _ZN10COmxILPort31SetTransitionToEnabledCompletedEv @ 22 NONAME
- _ZN10COmxILPort32SetTransitionToDisabledCompletedEv @ 23 NONAME
- _ZN10COmxILPort9SetConfigE13OMX_INDEXTYPEPKvRi @ 24 NONAME
- _ZN10COmxILPortC2ERK20TOmxILCommonPortData @ 25 NONAME
- _ZN10COmxILPortD0Ev @ 26 NONAME
- _ZN10COmxILPortD1Ev @ 27 NONAME
- _ZN10COmxILPortD2Ev @ 28 NONAME
- _ZN10TOmxILUtil19ClearBufferContentsEP20OMX_BUFFERHEADERTYPE @ 29 NONAME
- _ZN10TOmxILUtil28CheckOmxStructSizeAndVersionEPvm @ 30 NONAME
- _ZN15COmxILAudioPort10ConstructLERK6RArrayI20OMX_AUDIO_CODINGTYPEE @ 31 NONAME
- _ZN15COmxILAudioPort12SetParameterE13OMX_INDEXTYPEPKvRi @ 32 NONAME
- _ZN15COmxILAudioPortC2ERK20TOmxILCommonPortData @ 33 NONAME
- _ZN15COmxILAudioPortD0Ev @ 34 NONAME
- _ZN15COmxILAudioPortD1Ev @ 35 NONAME
- _ZN15COmxILAudioPortD2Ev @ 36 NONAME
- _ZN15COmxILComponent14InitComponentLEv @ 37 NONAME
- _ZN15COmxILComponent28SymbianErrorToGetHandleErrorEi @ 38 NONAME
- _ZN15COmxILComponentC1Ev @ 39 NONAME
- _ZN15COmxILComponentC2Ev @ 40 NONAME
- _ZN15COmxILComponentD0Ev @ 41 NONAME
- _ZN15COmxILComponentD1Ev @ 42 NONAME
- _ZN15COmxILComponentD2Ev @ 43 NONAME
- _ZN15COmxILImagePort12SetParameterE13OMX_INDEXTYPEPKvRi @ 44 NONAME
- _ZN15COmxILImagePortC2ERK20TOmxILCommonPortDataRK6RArrayI20OMX_IMAGE_CODINGTYPEERKS3_I20OMX_COLOR_FORMATTYPEE @ 45 NONAME
- _ZN15COmxILImagePortD0Ev @ 46 NONAME
- _ZN15COmxILImagePortD1Ev @ 47 NONAME
- _ZN15COmxILImagePortD2Ev @ 48 NONAME
- _ZN15COmxILOtherPort10ConstructLERK6RArrayI20OMX_OTHER_FORMATTYPEE @ 49 NONAME
- _ZN15COmxILOtherPort12SetParameterE13OMX_INDEXTYPEPKvRi @ 50 NONAME
- _ZN15COmxILOtherPortC2ERK20TOmxILCommonPortData @ 51 NONAME
- _ZN15COmxILOtherPortD0Ev @ 52 NONAME
- _ZN15COmxILOtherPortD1Ev @ 53 NONAME
- _ZN15COmxILOtherPortD2Ev @ 54 NONAME
- _ZN15COmxILVideoPort12SetParameterE13OMX_INDEXTYPEPKvRi @ 55 NONAME
- _ZN15COmxILVideoPortC2ERK20TOmxILCommonPortDataRK6RArrayI20OMX_VIDEO_CODINGTYPEERKS3_I20OMX_COLOR_FORMATTYPEE @ 56 NONAME
- _ZN15COmxILVideoPortD0Ev @ 57 NONAME
- _ZN15COmxILVideoPortD1Ev @ 58 NONAME
- _ZN15COmxILVideoPortD2Ev @ 59 NONAME
- _ZN17COmxILPortManager4NewLER24COmxILProcessingFunctionR23MOmxILCallbackManagerIfRK15OMX_VERSIONTYPEmmmmmmmm8OMX_BOOL @ 60 NONAME
- _ZN17COmxILPortManager7AddPortEPK10COmxILPort11OMX_DIRTYPE @ 61 NONAME
- _ZN19COmxILConfigManager10ConstructLERK6TDesC8RK15OMX_VERSIONTYPERK13RPointerArrayIS0_E @ 62 NONAME
- _ZN19COmxILConfigManager12SetParameterE13OMX_INDEXTYPEPKv8OMX_BOOL @ 63 NONAME
- _ZN19COmxILConfigManager4NewLER17COmxILPortManagerRK6TDesC8RK15OMX_VERSIONTYPERK13RPointerArrayIS2_E @ 64 NONAME
- _ZN19COmxILConfigManager9SetConfigE13OMX_INDEXTYPEPKv @ 65 NONAME
- _ZN19COmxILConfigManagerC1ER17COmxILPortManager @ 66 NONAME
- _ZN19COmxILConfigManagerC2ER17COmxILPortManager @ 67 NONAME
- _ZN19COmxILConfigManagerD0Ev @ 68 NONAME
- _ZN19COmxILConfigManagerD1Ev @ 69 NONAME
- _ZN19COmxILConfigManagerD2Ev @ 70 NONAME
- _ZN20TOmxILCommonPortDataC1E15OMX_VERSIONTYPEm11OMX_DIRTYPEmm18OMX_PORTDOMAINTYPE8OMX_BOOLm22OMX_BUFFERSUPPLIERTYPEm @ 71 NONAME
- _ZN20TOmxILCommonPortDataC2E15OMX_VERSIONTYPEm11OMX_DIRTYPEmm18OMX_PORTDOMAINTYPE8OMX_BOOLm22OMX_BUFFERSUPPLIERTYPEm @ 72 NONAME
- _ZN21COmxILCallbackManager14SetPortManagerER17COmxILPortManager @ 73 NONAME
- _ZN21COmxILCallbackManager17EventNotificationE13OMX_EVENTTYPEmmPc @ 74 NONAME
- _ZN21COmxILCallbackManager22BufferDoneNotificationEP20OMX_BUFFERHEADERTYPEm11OMX_DIRTYPE @ 75 NONAME
- _ZN21COmxILCallbackManager22ErrorEventNotificationE13OMX_ERRORTYPE @ 76 NONAME
- _ZN21COmxILCallbackManager22RegisterTunnelCallbackEm11OMX_DIRTYPEPvm @ 77 NONAME
- _ZN21COmxILCallbackManager23BufferRemovalIndicationEP20OMX_BUFFERHEADERTYPE11OMX_DIRTYPE @ 78 NONAME
- _ZN21COmxILCallbackManager23RegisterComponentHandleEPv @ 79 NONAME
- _ZN21COmxILCallbackManager24DeregisterTunnelCallbackEm @ 80 NONAME
- _ZN21COmxILCallbackManager25RegisterILClientCallbacksEPK16OMX_CALLBACKTYPEPv @ 81 NONAME
- _ZN21COmxILCallbackManager27ClockBufferDoneNotificationEP20OMX_BUFFERHEADERTYPEm11OMX_DIRTYPE @ 82 NONAME
- _ZN21COmxILCallbackManager27CommandCompleteNotificationE15OMX_COMMANDTYPEm @ 83 NONAME
- _ZN21COmxILCallbackManager30PortSettingsChangeNotificationEmjRK6TDesC8 @ 84 NONAME
- _ZN21COmxILCallbackManager30TransitionCompleteNotificationE13OMX_STATETYPE @ 85 NONAME
- _ZN21COmxILCallbackManager33RegisterBufferMarkPropagationPortEmm @ 86 NONAME
- _ZN21COmxILCallbackManager4NewLEPvS0_P16OMX_CALLBACKTYPE @ 87 NONAME
- _ZN21COmxILCallbackManager6SetFsmER9COmxILFsm @ 88 NONAME
- _ZN21COmxILCallbackManagerD0Ev @ 89 NONAME
- _ZN21COmxILCallbackManagerD1Ev @ 90 NONAME
- _ZN21COmxILCallbackManagerD2Ev @ 91 NONAME
- _ZN21COmxILClientClockPort4NewLERK20TOmxILCommonPortDataRK6RArrayI20OMX_OTHER_FORMATTYPEE @ 92 NONAME
- _ZN24COmxILProcessingFunction19MediaTimeIndicationERK22OMX_TIME_MEDIATIMETYPE @ 93 NONAME
- _ZN24COmxILProcessingFunction23ComponentRoleIndicationEj @ 94 NONAME
- _ZN24COmxILProcessingFunctionC2ER28MOmxILCallbackNotificationIf @ 95 NONAME
- _ZN24COmxILProcessingFunctionD0Ev @ 96 NONAME
- _ZN24COmxILProcessingFunctionD1Ev @ 97 NONAME
- _ZN24COmxILProcessingFunctionD2Ev @ 98 NONAME
- _ZN27XOmxILCallbackManagerIfImpl16DoSetPortManagerER17COmxILPortManager @ 99 NONAME
- _ZN27XOmxILCallbackManagerIfImpl19DoEventNotificationE13OMX_EVENTTYPEmmPc @ 100 NONAME
- _ZN27XOmxILCallbackManagerIfImpl24DoBufferDoneNotificationEP20OMX_BUFFERHEADERTYPEm11OMX_DIRTYPE @ 101 NONAME
- _ZN27XOmxILCallbackManagerIfImpl24DoErrorEventNotificationE13OMX_ERRORTYPE @ 102 NONAME
- _ZN27XOmxILCallbackManagerIfImpl24DoRegisterTunnelCallbackEm11OMX_DIRTYPEPvm @ 103 NONAME
- _ZN27XOmxILCallbackManagerIfImpl25DoRegisterComponentHandleEPv @ 104 NONAME
- _ZN27XOmxILCallbackManagerIfImpl27DoRegisterILClientCallbacksEPK16OMX_CALLBACKTYPEPv @ 105 NONAME
- _ZN27XOmxILCallbackManagerIfImpl27HandleInsufficientResourcesEv @ 106 NONAME
- _ZN27XOmxILCallbackManagerIfImpl28SignalOrPropagateBufferMarksEP20OMX_BUFFERHEADERTYPEm @ 107 NONAME
- _ZN27XOmxILCallbackManagerIfImpl29DoCommandCompleteNotificationE15OMX_COMMANDTYPEm @ 108 NONAME
- _ZN27XOmxILCallbackManagerIfImpl32DoPortSettingsChangeNotificationEmjRK6TDesC8 @ 109 NONAME
- _ZN27XOmxILCallbackManagerIfImpl32DoTransitionCompleteNotificationE13OMX_STATETYPE @ 110 NONAME
- _ZN27XOmxILCallbackManagerIfImpl35DoRegisterBufferMarkPropagationPortEmm @ 111 NONAME
- _ZN27XOmxILCallbackManagerIfImpl8DoSetFsmER9COmxILFsm @ 112 NONAME
- _ZN27XOmxILCallbackManagerIfImplC1EPvS0_P16OMX_CALLBACKTYPE @ 113 NONAME
- _ZN27XOmxILCallbackManagerIfImplC2EPvS0_P16OMX_CALLBACKTYPE @ 114 NONAME
- _ZN27XOmxILCallbackManagerIfImplD0Ev @ 115 NONAME
- _ZN27XOmxILCallbackManagerIfImplD1Ev @ 116 NONAME
- _ZN27XOmxILCallbackManagerIfImplD2Ev @ 117 NONAME
- _ZN30COmxILInContextCallbackManager14SetPortManagerER17COmxILPortManager @ 118 NONAME
- _ZN30COmxILInContextCallbackManager17EventNotificationE13OMX_EVENTTYPEmmPc @ 119 NONAME
- _ZN30COmxILInContextCallbackManager22BufferDoneNotificationEP20OMX_BUFFERHEADERTYPEm11OMX_DIRTYPE @ 120 NONAME
- _ZN30COmxILInContextCallbackManager22ErrorEventNotificationE13OMX_ERRORTYPE @ 121 NONAME
- _ZN30COmxILInContextCallbackManager22RegisterTunnelCallbackEm11OMX_DIRTYPEPvm @ 122 NONAME
- _ZN30COmxILInContextCallbackManager23BufferRemovalIndicationEP20OMX_BUFFERHEADERTYPE11OMX_DIRTYPE @ 123 NONAME
- _ZN30COmxILInContextCallbackManager23RegisterComponentHandleEPv @ 124 NONAME
- _ZN30COmxILInContextCallbackManager24DeregisterTunnelCallbackEm @ 125 NONAME
- _ZN30COmxILInContextCallbackManager25RegisterILClientCallbacksEPK16OMX_CALLBACKTYPEPv @ 126 NONAME
- _ZN30COmxILInContextCallbackManager27ClockBufferDoneNotificationEP20OMX_BUFFERHEADERTYPEm11OMX_DIRTYPE @ 127 NONAME
- _ZN30COmxILInContextCallbackManager27CommandCompleteNotificationE15OMX_COMMANDTYPEm @ 128 NONAME
- _ZN30COmxILInContextCallbackManager30PortSettingsChangeNotificationEmjRK6TDesC8 @ 129 NONAME
- _ZN30COmxILInContextCallbackManager30TransitionCompleteNotificationE13OMX_STATETYPE @ 130 NONAME
- _ZN30COmxILInContextCallbackManager33RegisterBufferMarkPropagationPortEmm @ 131 NONAME
- _ZN30COmxILInContextCallbackManager4NewLEPvS0_P16OMX_CALLBACKTYPE @ 132 NONAME
- _ZN30COmxILInContextCallbackManager6SetFsmER9COmxILFsm @ 133 NONAME
- _ZN30COmxILInContextCallbackManagerD0Ev @ 134 NONAME
- _ZN30COmxILInContextCallbackManagerD1Ev @ 135 NONAME
- _ZN30COmxILInContextCallbackManagerD2Ev @ 136 NONAME
- _ZN9COmxILFsm4NewLER15COmxILComponentR24COmxILProcessingFunctionR17COmxILPortManagerR19COmxILConfigManagerR23MOmxILCallbackManagerIf @ 137 NONAME
- _ZNK10COmxILPort12GetParameterE13OMX_INDEXTYPEPv @ 138 NONAME
- _ZNK10COmxILPort14IsBufferAtHomeEP20OMX_BUFFERHEADERTYPE @ 139 NONAME
- _ZNK10COmxILPort17GetExtensionIndexEPcP13OMX_INDEXTYPE @ 140 NONAME
- _ZNK10COmxILPort19HasAllBuffersAtHomeEv @ 141 NONAME
- _ZNK10COmxILPort23GetLocalOmxParamIndexesER6RArrayIjE @ 142 NONAME
- _ZNK10COmxILPort24GetLocalOmxConfigIndexesER6RArrayIjE @ 143 NONAME
- _ZNK10COmxILPort9GetConfigE13OMX_INDEXTYPEPv @ 144 NONAME
- _ZNK15COmxILAudioPort12GetParameterE13OMX_INDEXTYPEPv @ 145 NONAME
- _ZNK15COmxILAudioPort23GetLocalOmxParamIndexesER6RArrayIjE @ 146 NONAME
- _ZNK15COmxILAudioPort24GetLocalOmxConfigIndexesER6RArrayIjE @ 147 NONAME
- _ZNK15COmxILImagePort12GetParameterE13OMX_INDEXTYPEPv @ 148 NONAME
- _ZNK15COmxILImagePort23GetLocalOmxParamIndexesER6RArrayIjE @ 149 NONAME
- _ZNK15COmxILImagePort24GetLocalOmxConfigIndexesER6RArrayIjE @ 150 NONAME
- _ZNK15COmxILOtherPort12GetParameterE13OMX_INDEXTYPEPv @ 151 NONAME
- _ZNK15COmxILOtherPort23GetLocalOmxParamIndexesER6RArrayIjE @ 152 NONAME
- _ZNK15COmxILOtherPort24GetLocalOmxConfigIndexesER6RArrayIjE @ 153 NONAME
- _ZNK15COmxILVideoPort12GetParameterE13OMX_INDEXTYPEPv @ 154 NONAME
- _ZNK15COmxILVideoPort23GetLocalOmxParamIndexesER6RArrayIjE @ 155 NONAME
- _ZNK15COmxILVideoPort24GetLocalOmxConfigIndexesER6RArrayIjE @ 156 NONAME
- _ZNK19COmxILConfigManager12GetParameterE13OMX_INDEXTYPEPv @ 157 NONAME
- _ZNK19COmxILConfigManager17ComponentRoleEnumEPhm @ 158 NONAME
- _ZNK19COmxILConfigManager17GetExtensionIndexEPcP13OMX_INDEXTYPE @ 159 NONAME
- _ZNK19COmxILConfigManager19GetComponentVersionEPcP15OMX_VERSIONTYPES2_PA128_h @ 160 NONAME
- _ZNK19COmxILConfigManager9GetConfigE13OMX_INDEXTYPEPv @ 161 NONAME
- _ZNK21COmxILClientClockPort11GetWallTimeERx @ 162 NONAME
- _ZNK21COmxILClientClockPort12GetMediaTimeERx @ 163 NONAME
- _ZNK21COmxILClientClockPort12SetStartTimeEx @ 164 NONAME
- _ZNK21COmxILClientClockPort13GetClockStateER30OMX_TIME_CONFIG_CLOCKSTATETYPE @ 165 NONAME
- _ZNK21COmxILClientClockPort16MediaTimeRequestEPvxx @ 166 NONAME
- _ZNK21COmxILClientClockPort17SetAudioReferenceEx @ 167 NONAME
- _ZNK21COmxILClientClockPort17SetVideoReferenceEx @ 168 NONAME
- _ZNK21COmxILClientClockPort25IsClockComponentAvailableEv @ 169 NONAME
- _ZTI10COmxILPort @ 170 NONAME
- _ZTI15COmxILAudioPort @ 171 NONAME
- _ZTI15COmxILComponent @ 172 NONAME
- _ZTI15COmxILImagePort @ 173 NONAME
- _ZTI15COmxILOtherPort @ 174 NONAME
- _ZTI15COmxILVideoPort @ 175 NONAME
- _ZTI19COmxILConfigManager @ 176 NONAME
- _ZTI24COmxILProcessingFunction @ 177 NONAME
- _ZTI27XOmxILCallbackManagerIfImpl @ 178 NONAME
- _ZTIN21COmxILCallbackManager16CCallbackCommandE @ 179 NONAME
- _ZTIN21COmxILCallbackManager21CBufferRemovalCommandE @ 180 NONAME
- _ZTIN21COmxILCallbackManager21CEventCallbackCommandE @ 181 NONAME
- _ZTIN21COmxILCallbackManager26CBufferDoneCallbackCommandE @ 182 NONAME
- _ZTIN21COmxILCallbackManager26CPortSettingsChangeCommandE @ 183 NONAME
- _ZTIN21COmxILCallbackManager30CCompHandleRegistrationCommandE @ 184 NONAME
- _ZTIN21COmxILCallbackManager34CTunnelCallbackRegistrationCommandE @ 185 NONAME
- _ZTIN21COmxILCallbackManager35CClientCallbacksRegistrationCommandE @ 186 NONAME
- _ZTIN21COmxILCallbackManager41CBufferMarkPropagationRegistrationCommandE @ 187 NONAME
- _ZTIN9COmxILFsm11COmxILStateE @ 188 NONAME
- _ZTIN9COmxILFsm15COmxILStateIdleE @ 189 NONAME
- _ZTIN9COmxILFsm16COmxILStatePauseE @ 190 NONAME
- _ZTIN9COmxILFsm17COmxILStateLoadedE @ 191 NONAME
- _ZTIN9COmxILFsm18COmxILStateInvalidE @ 192 NONAME
- _ZTIN9COmxILFsm20COmxILStateExecutingE @ 193 NONAME
- _ZTIN9COmxILFsm22COmxILStatePauseToIdleE @ 194 NONAME
- _ZTIN9COmxILFsm23COmxILStateIdleToLoadedE @ 195 NONAME
- _ZTIN9COmxILFsm23COmxILStateLoadedToIdleE @ 196 NONAME
- _ZTIN9COmxILFsm26COmxILStateExecutingToIdleE @ 197 NONAME
- _ZTIN9COmxILFsm27COmxILStateWaitForResourcesE @ 198 NONAME
- _ZTV10COmxILPort @ 199 NONAME
- _ZTV15COmxILAudioPort @ 200 NONAME
- _ZTV15COmxILComponent @ 201 NONAME
- _ZTV15COmxILImagePort @ 202 NONAME
- _ZTV15COmxILOtherPort @ 203 NONAME
- _ZTV15COmxILVideoPort @ 204 NONAME
- _ZTV19COmxILConfigManager @ 205 NONAME
- _ZTV24COmxILProcessingFunction @ 206 NONAME
- _ZTV27XOmxILCallbackManagerIfImpl @ 207 NONAME
- _ZTVN21COmxILCallbackManager16CCallbackCommandE @ 208 NONAME
- _ZTVN21COmxILCallbackManager21CBufferRemovalCommandE @ 209 NONAME
- _ZTVN21COmxILCallbackManager21CEventCallbackCommandE @ 210 NONAME
- _ZTVN21COmxILCallbackManager26CBufferDoneCallbackCommandE @ 211 NONAME
- _ZTVN21COmxILCallbackManager26CPortSettingsChangeCommandE @ 212 NONAME
- _ZTVN21COmxILCallbackManager30CCompHandleRegistrationCommandE @ 213 NONAME
- _ZTVN21COmxILCallbackManager34CTunnelCallbackRegistrationCommandE @ 214 NONAME
- _ZTVN21COmxILCallbackManager35CClientCallbacksRegistrationCommandE @ 215 NONAME
- _ZTVN21COmxILCallbackManager41CBufferMarkPropagationRegistrationCommandE @ 216 NONAME
- _ZTVN9COmxILFsm11COmxILStateE @ 217 NONAME
- _ZTVN9COmxILFsm15COmxILStateIdleE @ 218 NONAME
- _ZTVN9COmxILFsm16COmxILStatePauseE @ 219 NONAME
- _ZTVN9COmxILFsm17COmxILStateLoadedE @ 220 NONAME
- _ZTVN9COmxILFsm18COmxILStateInvalidE @ 221 NONAME
- _ZTVN9COmxILFsm20COmxILStateExecutingE @ 222 NONAME
- _ZTVN9COmxILFsm22COmxILStatePauseToIdleE @ 223 NONAME
- _ZTVN9COmxILFsm23COmxILStateIdleToLoadedE @ 224 NONAME
- _ZTVN9COmxILFsm23COmxILStateLoadedToIdleE @ 225 NONAME
- _ZTVN9COmxILFsm26COmxILStateExecutingToIdleE @ 226 NONAME
- _ZTVN9COmxILFsm27COmxILStateWaitForResourcesE @ 227 NONAME
- _ZThn232_NK21COmxILClientClockPort11GetWallTimeERx @ 228 NONAME
- _ZThn232_NK21COmxILClientClockPort12GetMediaTimeERx @ 229 NONAME
- _ZThn232_NK21COmxILClientClockPort12SetStartTimeEx @ 230 NONAME
- _ZThn232_NK21COmxILClientClockPort13GetClockStateER30OMX_TIME_CONFIG_CLOCKSTATETYPE @ 231 NONAME
- _ZThn232_NK21COmxILClientClockPort16MediaTimeRequestEPvxx @ 232 NONAME
- _ZThn232_NK21COmxILClientClockPort17SetAudioReferenceEx @ 233 NONAME
- _ZThn232_NK21COmxILClientClockPort17SetVideoReferenceEx @ 234 NONAME
- _ZThn232_NK21COmxILClientClockPort25IsClockComponentAvailableEv @ 235 NONAME
- _ZThn28_N21COmxILCallbackManager14SetPortManagerER17COmxILPortManager @ 236 NONAME
- _ZThn28_N21COmxILCallbackManager17EventNotificationE13OMX_EVENTTYPEmmPc @ 237 NONAME
- _ZThn28_N21COmxILCallbackManager22BufferDoneNotificationEP20OMX_BUFFERHEADERTYPEm11OMX_DIRTYPE @ 238 NONAME
- _ZThn28_N21COmxILCallbackManager22ErrorEventNotificationE13OMX_ERRORTYPE @ 239 NONAME
- _ZThn28_N21COmxILCallbackManager22RegisterTunnelCallbackEm11OMX_DIRTYPEPvm @ 240 NONAME
- _ZThn28_N21COmxILCallbackManager23BufferRemovalIndicationEP20OMX_BUFFERHEADERTYPE11OMX_DIRTYPE @ 241 NONAME
- _ZThn28_N21COmxILCallbackManager23RegisterComponentHandleEPv @ 242 NONAME
- _ZThn28_N21COmxILCallbackManager24DeregisterTunnelCallbackEm @ 243 NONAME
- _ZThn28_N21COmxILCallbackManager25RegisterILClientCallbacksEPK16OMX_CALLBACKTYPEPv @ 244 NONAME
- _ZThn28_N21COmxILCallbackManager27ClockBufferDoneNotificationEP20OMX_BUFFERHEADERTYPEm11OMX_DIRTYPE @ 245 NONAME
- _ZThn28_N21COmxILCallbackManager27CommandCompleteNotificationE15OMX_COMMANDTYPEm @ 246 NONAME
- _ZThn28_N21COmxILCallbackManager30PortSettingsChangeNotificationEmjRK6TDesC8 @ 247 NONAME
- _ZThn28_N21COmxILCallbackManager30TransitionCompleteNotificationE13OMX_STATETYPE @ 248 NONAME
- _ZThn28_N21COmxILCallbackManager33RegisterBufferMarkPropagationPortEmm @ 249 NONAME
- _ZThn28_N21COmxILCallbackManager6SetFsmER9COmxILFsm @ 250 NONAME
- _ZThn28_N21COmxILCallbackManagerD0Ev @ 251 NONAME
- _ZThn28_N21COmxILCallbackManagerD1Ev @ 252 NONAME
- _ZThn32_N21COmxILCallbackManagerD0Ev @ 253 NONAME
- _ZThn32_N21COmxILCallbackManagerD1Ev @ 254 NONAME
- _ZThn4_N30COmxILInContextCallbackManager14SetPortManagerER17COmxILPortManager @ 255 NONAME
- _ZThn4_N30COmxILInContextCallbackManager17EventNotificationE13OMX_EVENTTYPEmmPc @ 256 NONAME
- _ZThn4_N30COmxILInContextCallbackManager22BufferDoneNotificationEP20OMX_BUFFERHEADERTYPEm11OMX_DIRTYPE @ 257 NONAME
- _ZThn4_N30COmxILInContextCallbackManager22ErrorEventNotificationE13OMX_ERRORTYPE @ 258 NONAME
- _ZThn4_N30COmxILInContextCallbackManager22RegisterTunnelCallbackEm11OMX_DIRTYPEPvm @ 259 NONAME
- _ZThn4_N30COmxILInContextCallbackManager23BufferRemovalIndicationEP20OMX_BUFFERHEADERTYPE11OMX_DIRTYPE @ 260 NONAME
- _ZThn4_N30COmxILInContextCallbackManager23RegisterComponentHandleEPv @ 261 NONAME
- _ZThn4_N30COmxILInContextCallbackManager24DeregisterTunnelCallbackEm @ 262 NONAME
- _ZThn4_N30COmxILInContextCallbackManager25RegisterILClientCallbacksEPK16OMX_CALLBACKTYPEPv @ 263 NONAME
- _ZThn4_N30COmxILInContextCallbackManager27ClockBufferDoneNotificationEP20OMX_BUFFERHEADERTYPEm11OMX_DIRTYPE @ 264 NONAME
- _ZThn4_N30COmxILInContextCallbackManager27CommandCompleteNotificationE15OMX_COMMANDTYPEm @ 265 NONAME
- _ZThn4_N30COmxILInContextCallbackManager30PortSettingsChangeNotificationEmjRK6TDesC8 @ 266 NONAME
- _ZThn4_N30COmxILInContextCallbackManager30TransitionCompleteNotificationE13OMX_STATETYPE @ 267 NONAME
- _ZThn4_N30COmxILInContextCallbackManager33RegisterBufferMarkPropagationPortEmm @ 268 NONAME
- _ZThn4_N30COmxILInContextCallbackManager6SetFsmER9COmxILFsm @ 269 NONAME
- _ZThn4_N30COmxILInContextCallbackManagerD0Ev @ 270 NONAME
- _ZThn4_N30COmxILInContextCallbackManagerD1Ev @ 271 NONAME
- _ZThn8_N30COmxILInContextCallbackManagerD0Ev @ 272 NONAME
- _ZThn8_N30COmxILInContextCallbackManagerD1Ev @ 273 NONAME
\ No newline at end of file
--- a/omxil/omxilcomponentcommon/group/bld.inf Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-PRJ_EXPORTS
-// OMX IL Component Extensions
-omxilcomp.iby /epoc32/rom/include/omxilcomp.iby
-
-PRJ_MMPFILES
-// Component common framework
-../mmpfiles/omxilcomponentcommon.mmp
-
-
--- a/omxil/omxilcomponentcommon/group/multimedia_omx_il_comp.mrp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +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:
-#
-
-
-component multimedia_omx_il_comp
-
-source \sf\os\mm\omxil\omxilcomponentcommon
-
-binary \sf\os\mm\omxil\omxilcomponentcommon\group all
-
-exports \sf\os\mm\omxil\omxilcomponentcommon\group
-
-notes_source \component_defs\release.src
-
-ipr E
--- a/omxil/omxilcomponentcommon/group/omxilcomp.iby Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalTechnology
-*/
-
-#ifndef OMXILCOMP_IBY
-#define OMXILCOMP_IBY
-
-// OMX IL component common
-file=ABI_DIR\BUILD_DIR\omxilcomponentcommon.dll System\Libs\omxilcomponentcommon.dll
-
-#endif // OMXILCOMP_IBY
--- a/omxil/omxilcomponentcommon/mmpfiles/omxilcomponentcommon.mmp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-// Copyright (c) 2008-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:
-//
-#include <mmf/common/mmfbase.hrh>
-#include "../src/common/omxilcomponent.hrh" // get UIDs
-
-TARGET omxilcomponentcommon.dll
-CAPABILITY ALL -TCB
-TARGETTYPE dll
-UID KSharedLibraryUidDefine KUidSymbianOmxILComponentCommonDll
-VENDORID 0x70000001
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-
-USERINCLUDE ../src/common/
-
-SOURCEPATH ../src/common/
-SOURCE omxilcomponent.cpp
-SOURCE omxilcallbackmanagerifimpl.cpp
-SOURCE omxilcallbackmanager.cpp
-SOURCE omxilconfigmanager.cpp
-SOURCE omxilincontextcallbackmanager.cpp
-SOURCE omxilfsm.cpp
-SOURCE omxilport.cpp
-SOURCE omxilaudioport.cpp
-SOURCE omxilportmanager.cpp
-SOURCE omxilprocessingfunction.cpp
-SOURCE omxilstate.cpp
-SOURCE omxilspecversion.cpp
-SOURCE omxilutil.cpp
-SOURCE omxilimageport.cpp
-SOURCE omxilvideoport.cpp
-SOURCE omxilotherport.cpp
-SOURCE omxilclientclockport.cpp
-
-LIBRARY euser.lib
-LIBRARY mmfserverbaseclasses.lib
-
-// Uncomment to activate debug tracing in this module
-//MACRO _OMXIL_COMMON_DEBUG_TRACING_ON
-
-
-// Uncomment to activate tracing of FillThisBuffer and EmptyThisBuffer
-// This produces a *lot* of output
-//MACRO _OMXIL_COMMON_BUFFER_TRACING_ON
-
-// Uncomment to activate spec version checks in OMX IL structs
-//MACRO _OMXIL_COMMON_SPEC_VERSION_CHECKS_ON
-
-NOSTRICTDEF
-
-SMPSAFE
--- a/omxil/omxilcomponentcommon/src/common/log.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,149 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-#ifndef __SWI_LOG_H__
-#define __SWI_LOG_H__
-
-#include <e32debug.h>
-namespace DSD
-{
-
-#ifdef _DEBUG
-
-//#define _OMXIL_COMMON_DEBUG_TRACING_ON
-#ifdef _OMXIL_COMMON_DEBUG_TRACING_ON
-
-
-
-class TTruncateOverflowHandler16 : public TDes16Overflow
- {
- public:
- virtual void Overflow( TDes16& aDes );
- };
-
-inline void TTruncateOverflowHandler16::Overflow( TDes16& aDes)
- {
- _LIT(KErrOverflowMsg,"Descriptor Overflow, hence value truncated");
- if( aDes.MaxLength() >= KErrOverflowMsg().Length() + aDes.Length() )
- aDes.Append(KErrOverflowMsg);
- }
-
-class TTruncateOverflowHandler8 : public TDes8Overflow
- {
- public:
- virtual void Overflow( TDes8& aDes );
- };
-
-inline void TTruncateOverflowHandler8::Overflow( TDes8& aDes)
- {
- _LIT(KErrOverflowMsg,"Descriptor Overflow, hence value truncated");
- if( aDes.MaxLength() >= KErrOverflowMsg().Length() + aDes.Length() )
- aDes.Append(KErrOverflowMsg);
- }
-
-#define DEBUG_PRINTF(a) {DSD::DebugPrintf(__LINE__, __FILE__, a);}
-#define DEBUG_PRINTF2(a, b) {DSD::DebugPrintf(__LINE__, __FILE__, a, b);}
-#define DEBUG_PRINTF3(a, b, c) {DSD::DebugPrintf(__LINE__, __FILE__, a, b, c);}
-#define DEBUG_PRINTF4(a, b, c, d) {DSD::DebugPrintf(__LINE__, __FILE__, a, b, c, d);}
-#define DEBUG_PRINTF5(a, b, c, d, e) {DSD::DebugPrintf(__LINE__, __FILE__, a, b, c, d, e);}
-
-#define DEBUG_CODE_SECTION(a) TRAP_IGNORE({ a; })
-
-// UTF-8 overload of the DebufPrintf method. Should be used by default,
-// since it's cheaper both in CPU cycles and stack space.
-
-inline void DebugPrintf(TInt aLine, char* aFile, TRefByValue<const TDesC8> aFormat, ...)
- {
- TTruncateOverflowHandler8 overflowHandler8;
- VA_LIST list;
- VA_START(list, aFormat);
-
- TTime now;
- now.HomeTime();
-
- TBuf8<1024> buffer;
- _LIT8(KSwiLogPrefix, "[ccommon] ");
- _LIT8(KSwiLineFileFormat, "TID[%d] : [%s:%d] -- ");
- buffer.Append(KSwiLogPrefix);
- RThread thread;
- TUint threadId = thread.Id();
- thread.Close();
- RProcess proc;
- TFileName fName = proc.FileName();
- proc.Close();
- buffer.AppendFormat(KSwiLineFileFormat, threadId, aFile, aLine);
- buffer.AppendFormatList(aFormat, list ,&overflowHandler8 );
- buffer.Append(_L8("\r\n"));
-
- RDebug::RawPrint(buffer);
-
- VA_END(list);
- }
-
-// Unicode DebufPrintf overload
-
-inline void DebugPrintf(TInt aLine, char* aFile, TRefByValue<const TDesC16> aFormat, ...)
- {
- TTruncateOverflowHandler16 overflowHandler16;
- VA_LIST list;
- VA_START(list, aFormat);
-
- TTime now;
- now.HomeTime();
-
- TBuf8<256> header;
- _LIT8(KSwiLogPrefix, "[common] ");
- _LIT8(KSwiLineFileFormat, "%Ld Line: % 5d, File: %s -- ");
- header.Append(KSwiLogPrefix);
- header.AppendFormat(KSwiLineFileFormat, now.Int64(), aLine, aFile);
-
- TBuf<1024> buffer;
- buffer.Copy(header);
- buffer.AppendFormatList(aFormat, list ,&overflowHandler16);
- buffer.Append(_L("\r\n"));
-
- RDebug::RawPrint(buffer);
-
- VA_END(list);
- }
-#else
-
-#define DEBUG_PRINTF(a)
-#define DEBUG_PRINTF2(a, b)
-#define DEBUG_PRINTF3(a, b, c)
-#define DEBUG_PRINTF4(a, b, c, d)
-#define DEBUG_PRINTF5(a, b, c, d, e)
-
-#define DEBUG_CODE_SECTION(a)
-
-#endif
-
-#else
-
-#define DEBUG_PRINTF(a)
-#define DEBUG_PRINTF2(a, b)
-#define DEBUG_PRINTF3(a, b, c)
-#define DEBUG_PRINTF4(a, b, c, d)
-#define DEBUG_PRINTF5(a, b, c, d, e)
-
-#define DEBUG_CODE_SECTION(a)
-
-#endif
-
-
-} // namespace DSD
-
-#endif // __SWI_LOG_H__
--- a/omxil/omxilcomponentcommon/src/common/omxilaudioport.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,205 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-#include "log.h"
-#include "omxilaudioport.h"
-#include "omxilutil.h"
-
-EXPORT_C
-COmxILAudioPort::~COmxILAudioPort()
- {
- DEBUG_PRINTF(_L8("COmxILAudioPort::~COmxILAudioPort"));
-
- iSupportedAudioFormats.Close();
- }
-
-
-EXPORT_C
-COmxILAudioPort::COmxILAudioPort(const TOmxILCommonPortData& aCommonPortData)
-: COmxILPort(aCommonPortData)
- {
- DEBUG_PRINTF(_L8("COmxILAudioPort::COmxILAudioPort"));
- iParamAudioPortFormat.nSize = sizeof(OMX_AUDIO_PARAM_PORTFORMATTYPE);
- iParamAudioPortFormat.nVersion = aCommonPortData.iOmxVersion;
- iParamAudioPortFormat.nPortIndex = aCommonPortData.iPortIndex;
- iParamAudioPortFormat.nIndex = 0;
- }
-
-
-// [YYC]: proposal for deep copy, virtual & called from derived CostructL
-EXPORT_C void COmxILAudioPort::ConstructL(const RArray<OMX_AUDIO_CODINGTYPE>& aSupportedAudioFormats)
- {
- TUint count = aSupportedAudioFormats.Count();
- for (TInt i = 0; i < count; i++)
- {
- iSupportedAudioFormats.AppendL(aSupportedAudioFormats[i]);
- }
- iParamAudioPortFormat.eEncoding = count ? iSupportedAudioFormats[0] : OMX_AUDIO_CodingUnused;
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILAudioPort::GetLocalOmxParamIndexes(RArray<TUint>& aIndexArray) const
- {
- DEBUG_PRINTF(_L8("COmxILAudioPort::GetLocalOmxParamIndexes"));
-
- // Always collect local indexes from parent
- OMX_ERRORTYPE omxRetValue =
- COmxILPort::GetLocalOmxParamIndexes(aIndexArray);
-
- if (OMX_ErrorNone != omxRetValue)
- {
- return omxRetValue;
- }
-
- TInt err = aIndexArray.InsertInOrder(OMX_IndexParamAudioPortFormat);
-
- // Note that index duplication is OK.
- if (KErrNone != err && KErrAlreadyExists != err)
- {
- return OMX_ErrorInsufficientResources;
- }
-
- return OMX_ErrorNone;
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILAudioPort::GetLocalOmxConfigIndexes(RArray<TUint>& aIndexArray) const
- {
- DEBUG_PRINTF(_L8("COmxILAudioPort::GetLocalOmxConfigIndexes"));
-
- // Always collect local indexes from parent
- return COmxILPort::GetLocalOmxConfigIndexes(aIndexArray);
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILAudioPort::GetParameter(OMX_INDEXTYPE aParamIndex,
- TAny* apComponentParameterStructure) const
- {
- DEBUG_PRINTF(_L8("COmxILAudioPort::GetParameter"));
-
- OMX_ERRORTYPE omxRetValue = OMX_ErrorNone;
- switch(aParamIndex)
- {
- case OMX_IndexParamAudioPortFormat:
- {
- if (OMX_ErrorNone != (omxRetValue =
- TOmxILUtil::CheckOmxStructSizeAndVersion(
- apComponentParameterStructure,
- sizeof(OMX_AUDIO_PARAM_PORTFORMATTYPE))))
- {
- return omxRetValue;
- }
-
- OMX_AUDIO_PARAM_PORTFORMATTYPE* pParamAudioPortFormat
- = static_cast<OMX_AUDIO_PARAM_PORTFORMATTYPE*>(apComponentParameterStructure);
-
- if (pParamAudioPortFormat->nIndex >=
- iSupportedAudioFormats.Count())
- {
- return OMX_ErrorNoMore;
- }
-
- pParamAudioPortFormat->eEncoding =
- iSupportedAudioFormats[pParamAudioPortFormat->nIndex];
- }
- break;
-
- default:
- {
- // Try the parent's indexes
- return COmxILPort::GetParameter(aParamIndex, apComponentParameterStructure);
- }
- };
-
- return OMX_ErrorNone;
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILAudioPort::SetParameter(OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure,
- TBool& aUpdateProcessingFunction)
- {
- DEBUG_PRINTF(_L8("COmxILAudioPort::SetParameter"));
-
- aUpdateProcessingFunction = EFalse;
-
- OMX_ERRORTYPE omxRetValue = OMX_ErrorNone;
- switch(aParamIndex)
- {
- case OMX_IndexParamAudioPortFormat:
- {
- if (OMX_ErrorNone != (omxRetValue =
- TOmxILUtil::CheckOmxStructSizeAndVersion(
- const_cast<OMX_PTR>(apComponentParameterStructure),
- sizeof(OMX_AUDIO_PARAM_PORTFORMATTYPE))))
- {
- return omxRetValue;
- }
-
- const OMX_AUDIO_PARAM_PORTFORMATTYPE* pParamAudioPortFormat
- = static_cast<const OMX_AUDIO_PARAM_PORTFORMATTYPE*>(
- apComponentParameterStructure);
-
- // Check in case the specified format is not actually supported by this
- // port
- OMX_AUDIO_CODINGTYPE newDefaultCodingType =
- pParamAudioPortFormat->eEncoding;
-
- // OMX_AUDIO_CodingMIDI is the last of the supported values as of
- // v1.1.1
- if (newDefaultCodingType > OMX_AUDIO_CodingMIDI)
- {
- return OMX_ErrorBadParameter;
- }
-
- if (KErrNotFound == iSupportedAudioFormats.Find(newDefaultCodingType))
- {
- return OMX_ErrorUnsupportedSetting;
- }
-
- // Set the new default format, but check first that we are actually
- // changing something...
- if (iParamAudioPortFormat.eEncoding != newDefaultCodingType)
- {
- iParamAudioPortFormat.eEncoding = newDefaultCodingType;
- // This is an indication to the PortManager that the processing
- // function needs to get updated
- //
- aUpdateProcessingFunction = ETrue;
- }
- }
- break;
-
- default:
- {
- // Try the parent's indexes
- return COmxILPort::SetParameter(aParamIndex,
- apComponentParameterStructure,
- aUpdateProcessingFunction);
- }
- };
-
- return OMX_ErrorNone;
-
- }
--- a/omxil/omxilcomponentcommon/src/common/omxilaudioport.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-#ifndef OMXILAUDIOPORT_H
-#define OMXILAUDIOPORT_H
-
-#include <e32base.h>
-
-#include <openmax/il/khronos/v1_x/OMX_Types.h>
-#include <openmax/il/khronos/v1_x/OMX_Core.h>
-#include <openmax/il/khronos/v1_x/OMX_Component.h>
-
-#include "omxilport.h"
-
-class COmxILAudioPort : public COmxILPort
- {
-
-public:
-
- IMPORT_C ~COmxILAudioPort();
-
- // From COmxILPort
- IMPORT_C OMX_ERRORTYPE GetLocalOmxParamIndexes(RArray<TUint>& aIndexArray) const = 0;
-
- // From COmxILPort
- IMPORT_C OMX_ERRORTYPE GetLocalOmxConfigIndexes(RArray<TUint>& aIndexArray) const = 0;
-
- // From COmxILPort
- IMPORT_C OMX_ERRORTYPE GetParameter(OMX_INDEXTYPE aParamIndex,
- TAny* apComponentParameterStructure) const = 0;
- // From COmxILPort
- IMPORT_C OMX_ERRORTYPE SetParameter(OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure,
- TBool& aUpdateProcessingFunction) = 0;
-
-protected:
-
- IMPORT_C COmxILAudioPort(const TOmxILCommonPortData& aCommonPortData);
- IMPORT_C virtual void ConstructL(const RArray<OMX_AUDIO_CODINGTYPE>& aSupportedAudioFormats);
-
-
- // From COmxILPort
- IMPORT_C OMX_ERRORTYPE SetFormatInPortDefinition(
- const OMX_PARAM_PORTDEFINITIONTYPE& aPortDefinition,
- TBool& aUpdateProcessingFunction) = 0;
-
- // From COmxILPort
- IMPORT_C TBool IsTunnelledPortCompatible(
- const OMX_PARAM_PORTDEFINITIONTYPE& aPortDefinition) const = 0;
-
-protected:
-
- RArray<OMX_AUDIO_CODINGTYPE> iSupportedAudioFormats;
- OMX_AUDIO_PARAM_PORTFORMATTYPE iParamAudioPortFormat;
-
- };
-
-#endif // OMXILAUDIOPORT_H
-
--- a/omxil/omxilcomponentcommon/src/common/omxilcallbackmanager.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1046 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-#include "log.h"
-#include "omxilcallbackmanager.h"
-#include "omxilportmanager.h"
-#include "omxilfsm.h"
-#include "omxilutil.h"
-
-const TInt COmxILCallbackManager::KMaxMsgQueueEntries;
-
-
-EXPORT_C COmxILCallbackManager*
-COmxILCallbackManager::NewL(
- OMX_HANDLETYPE apComponentHandle,
- OMX_PTR apAppData,
- OMX_CALLBACKTYPE* apCallbacks)
- {
- DEBUG_PRINTF(_L8("COmxILCallbackManager::NewL"));
- COmxILCallbackManager* self = new (ELeave)COmxILCallbackManager(
- apComponentHandle,
- apAppData,
- apCallbacks);
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-void
-COmxILCallbackManager::ConstructL()
- {
- DEBUG_PRINTF(_L8("COmxILCallbackManager::ConstructL"));
-
- CActiveScheduler::Add(this);
- User::LeaveIfError(iCommandQueue.CreateLocal(KMaxMsgQueueEntries));
- iCommandQueue.NotifyDataAvailable(iStatus);
-
- User::LeaveIfError(iPendingQueue.CreateLocal(KMaxMsgQueueEntries));
-
- SetActive();
-
- }
-
-COmxILCallbackManager::COmxILCallbackManager(OMX_HANDLETYPE apComponentHandle,
- OMX_PTR apAppData,
- OMX_CALLBACKTYPE* apCallbacks)
- :
- CActive(CActive::EPriorityStandard),
- XOmxILCallbackManagerIfImpl(
- static_cast<OMX_COMPONENTTYPE*>(apComponentHandle),
- apAppData,
- apCallbacks),
- iCommandQueue(),
- iPendingQueue(),
- iFlushPendingQueue(EFalse),
- iCurrentState(OMX_StateLoaded),
- iPreviousState(OMX_StateLoaded)
- {
- DEBUG_PRINTF(_L8("COmxILCallbackManager::COmxILCallbackManager"));
- }
-
-EXPORT_C
-COmxILCallbackManager::~COmxILCallbackManager()
- {
- DEBUG_PRINTF(_L8("COmxILCallbackManager::~COmxILCallbackManager"));
-
- Cancel();
-
- CleanUpQueue(iPendingQueue);
-
- CleanUpQueue(iCommandQueue);
-
- }
-
-
-void
-COmxILCallbackManager::CleanUpQueue(RCallbackManagerQueue& aQueue)
- {
- DEBUG_PRINTF(_L8("COmxILCallbackManager::CleanUpQueue"));
-
- if (aQueue.Handle() != 0)
- {
- CCallbackCommand* pCommand = 0;
- TInt err = KErrNone;
- while ((err = aQueue.Receive(pCommand)) == KErrNone)
- {
- DEBUG_PRINTF2(_L8("COmxILCallbackManager::CleanUpQueue : aQueue.Receive [%X]"), pCommand);
- delete pCommand;
- pCommand = 0;
- }
-
- if (KErrNone != err)
- {
- DEBUG_PRINTF2(_L8("COmxILCallbackManager::CleanUpQueue : aQueue.Receive returned error [%d]"), err);
- if (KErrNoMemory == err)
- {
- HandleInsufficientResources();
- }
- }
-
- }
-
- aQueue.Close();
-
- }
-
-
-EXPORT_C void
-COmxILCallbackManager::SetPortManager(COmxILPortManager& apPortManager)
- {
- DoSetPortManager(apPortManager);
- }
-
-EXPORT_C void
-COmxILCallbackManager::SetFsm(COmxILFsm& apFsm)
- {
- DoSetFsm(apFsm);
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILCallbackManager::RegisterComponentHandle(OMX_HANDLETYPE aComponentHandle)
- {
- DEBUG_PRINTF(_L8("COmxILCallbackManager::RegisterComponentHandle"));
-
- __ASSERT_DEBUG(aComponentHandle,
- User::Panic(KOmxILCallbackManagerPanicCategory, 1));
-
- CCompHandleRegistrationCommand* pHandleReg =
- new CCompHandleRegistrationCommand(aComponentHandle);
- if (!pHandleReg || (iCommandQueue.Send(pHandleReg) != KErrNone))
- {
- delete pHandleReg;
- DoRegisterComponentHandle(aComponentHandle);
- return OMX_ErrorInsufficientResources;
- }
-
- return OMX_ErrorNone;
-
- }
-
-/**
- The IL Client callback registration is handled in this implementation
- asynchronously. Note that this implementation assumes that the IL Client
- will update the callbacks information once all expected callbacks from this
- component have already been received and therefore, the callback change will
- be safe leading to no race condition at the IL Client side.
-
- @param apCallbacks The IL Client callback structure.
-
- @param apAppData Pointer to an application provided value so that the
- application can have a component specific context when receiving
- the callback.
-
- @return OMX_ERRORTYPE
- */
-EXPORT_C OMX_ERRORTYPE
-COmxILCallbackManager::RegisterILClientCallbacks(
- const OMX_CALLBACKTYPE* apCallbacks,
- const OMX_PTR apAppData)
- {
- DEBUG_PRINTF(_L8("COmxILCallbackManager::RegisterILClientCallbacks"));
-
- CClientCallbacksRegistrationCommand* pClientCBacksReg =
- new CClientCallbacksRegistrationCommand(
- apCallbacks,
- apAppData);
- if (!pClientCBacksReg || (iCommandQueue.Send(pClientCBacksReg) != KErrNone))
- {
- delete pClientCBacksReg;
- DoRegisterILClientCallbacks(apCallbacks, apAppData);
- return OMX_ErrorInsufficientResources;
- }
-
- return OMX_ErrorNone;
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILCallbackManager::RegisterTunnelCallback(
- OMX_U32 aLocalPortIndex,
- OMX_DIRTYPE aLocalPortDirection,
- OMX_HANDLETYPE aTunnelledComponentHandle,
- OMX_U32 aTunnelledPortIndex)
- {
- DEBUG_PRINTF2(_L8("COmxILCallbackManager::RegisterTunnelCallback : aTunnelledComponentHandle [%x]"), aTunnelledComponentHandle);
-
- CTunnelCallbackRegistrationCommand* pTunnelCBacksReg =
- new CTunnelCallbackRegistrationCommand(aLocalPortIndex,
- aLocalPortDirection,
- aTunnelledComponentHandle,
- aTunnelledPortIndex);
-
- if (!pTunnelCBacksReg || (iCommandQueue.Send(pTunnelCBacksReg) != KErrNone))
- {
- delete pTunnelCBacksReg;
- return OMX_ErrorInsufficientResources;
- }
-
- return OMX_ErrorNone;
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILCallbackManager::DeregisterTunnelCallback(
- OMX_U32 aLocalPortIndex)
- {
-
- DEBUG_PRINTF(_L8("COmxILCallbackManager::DeregisterTunnelCallback"));
-
- return RegisterTunnelCallback(aLocalPortIndex,
- OMX_DirMax,
- 0,
- 0);
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILCallbackManager::RegisterBufferMarkPropagationPort(
- OMX_U32 aPortIndex,
- OMX_U32 aPropagationPortIndex)
- {
- DEBUG_PRINTF(_L8("COmxILCallbackManager::RegisterBufferMarkPropagationPort"));
-
- CBufferMarkPropagationRegistrationCommand* pBufferMarkPropReg =
- new CBufferMarkPropagationRegistrationCommand(aPortIndex,
- aPropagationPortIndex);
- if (!pBufferMarkPropReg || (iCommandQueue.Send(pBufferMarkPropReg) != KErrNone))
- {
- delete pBufferMarkPropReg;
- HandleInsufficientResources();
- }
-
- return OMX_ErrorNone;
-
- }
-
-EXPORT_C TBool
-COmxILCallbackManager::BufferRemovalIndication(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_DIRTYPE aDirection)
- {
- DEBUG_PRINTF(_L8("COmxILCallbackManager::BufferRemovalIndication"));
-
- CBufferRemovalCommand* pBufferRemovalCmd =
- new CBufferRemovalCommand(apBufferHeader, aDirection);
-
- if (!pBufferRemovalCmd ||
- (iCommandQueue.Send(pBufferRemovalCmd) != KErrNone))
- {
- delete pBufferRemovalCmd;
- HandleInsufficientResources();
- }
-
- // Always return false now as the buffer would be removed asynchronously
- return EFalse;
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILCallbackManager::TransitionCompleteNotification(OMX_STATETYPE aOmxState)
- {
- DEBUG_PRINTF(_L8("COmxILCallbackManager::TransitionCompleteNotification"));
-
- return EventNotificationImpl(OMX_EventCmdComplete,
- OMX_CommandStateSet,
- aOmxState,
- 0);
-
- }
-
-
-EXPORT_C OMX_ERRORTYPE
-COmxILCallbackManager::CommandCompleteNotification(OMX_COMMANDTYPE aOmxCommand,
- OMX_U32 aOmxPortIndex)
- {
- DEBUG_PRINTF(_L8("COmxILCallbackManager::CommandCompleteNotification"));
-
- return EventNotification(OMX_EventCmdComplete,
- aOmxCommand,
- aOmxPortIndex,
- 0);
-
- }
-
-
-EXPORT_C OMX_ERRORTYPE
-COmxILCallbackManager::ErrorEventNotification(OMX_ERRORTYPE aOmxError)
- {
- DEBUG_PRINTF2(_L8("COmxILCallbackManager::ErrorEventNotification : aOmxError[%X] "), aOmxError);
-
- return EventNotification(OMX_EventError,
- aOmxError,
- 0,
- 0);
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILCallbackManager::EventNotification(OMX_EVENTTYPE aEvent,
- TUint32 aData1,
- TUint32 aData2,
- OMX_STRING aExtraInfo)
- {
- // The error code is ignored intentionally, as errors from this function cannot be handled by clients, since they don't have
- // another mechanism for reporting an error
- (void)EventNotificationImpl(aEvent, aData1, aData2, aExtraInfo);
- return OMX_ErrorNone;
- }
-
-
-OMX_ERRORTYPE COmxILCallbackManager::EventNotificationImpl(OMX_EVENTTYPE aEvent,
- TUint32 aData1,
- TUint32 aData2,
- OMX_STRING aExtraInfo)
- {
- DEBUG_PRINTF4(_L8("COmxILCallbackManager::EventNotificationImpl : aEvent[%X] aData1[%X] aData2[%u]"), aEvent, aData1, aData2);
-
- CEventCallbackCommand* pEventCBack =
- new CEventCallbackCommand(aEvent,
- aData1,
- aData2,
- aExtraInfo);
- if (!pEventCBack || (iCommandQueue.Send(pEventCBack) != KErrNone))
- {
- delete pEventCBack;
- HandleInsufficientResources();
- return OMX_ErrorInsufficientResources;
- }
-
- return OMX_ErrorNone;
-
- }
-
-
-EXPORT_C OMX_ERRORTYPE
-COmxILCallbackManager::BufferDoneNotification(OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_U32 aLocalPortIndex,
- OMX_DIRTYPE aLocalPortDirection)
- {
- DEBUG_PRINTF(_L8("COmxILCallbackManager::BufferDoneNotificaton"));
-
- return SendBufferDoneNotification(apBufferHeader,
- aLocalPortIndex,
- aLocalPortDirection,
- CCallbackCommand::EPriorityNormal);
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILCallbackManager::ClockBufferDoneNotification(OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_U32 aLocalPortIndex,
- OMX_DIRTYPE aLocalPortDirection)
- {
- DEBUG_PRINTF(_L8("COmxILCallbackManager::ClockBufferDoneNotification"));
-
- return SendBufferDoneNotification(apBufferHeader,
- aLocalPortIndex,
- aLocalPortDirection,
- CCallbackCommand::EPriorityHigh);
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILCallbackManager::PortSettingsChangeNotification(
- OMX_U32 aLocalPortIndex,
- TUint aPortSettingsIndex,
- const TDesC8& aPortSettings)
- {
- DEBUG_PRINTF2(_L8("COmxILCallbackManager::PortSettingsChangeNotification : aLocalPortIndex[%d]"), aLocalPortIndex);
-
- HBufC8* pPortSettings = aPortSettings.Alloc();
- if (!pPortSettings)
- {
- HandleInsufficientResources();
- return OMX_ErrorNone;
- }
-
- CPortSettingsChangeCommand* pPortSettingsCmd =
- new CPortSettingsChangeCommand(aLocalPortIndex,
- aPortSettingsIndex,
- pPortSettings);
- if (!pPortSettingsCmd)
- {
- delete pPortSettings;
- HandleInsufficientResources();
- return OMX_ErrorNone;
- }
-
- if (iCommandQueue.Send(pPortSettingsCmd) != KErrNone)
- {
- delete pPortSettingsCmd; // Destructor will delete pPortSettings
- HandleInsufficientResources();
- }
-
- return OMX_ErrorNone;
-
- }
-
-OMX_ERRORTYPE
-COmxILCallbackManager::SendBufferDoneNotification(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_U32 aLocalPortIndex,
- OMX_DIRTYPE aLocalPortDirection,
- TInt aPriority)
- {
- DEBUG_PRINTF(_L8("COmxILCallbackManager::SendBufferDoneNotification"));
-
- __ASSERT_ALWAYS(apBufferHeader &&
- (OMX_DirInput == aLocalPortDirection ||
- OMX_DirOutput == aLocalPortDirection),
- User::Panic(KOmxILCallbackManagerPanicCategory, 1));
-
- __ASSERT_ALWAYS(apBufferHeader->nOffset + apBufferHeader->nFilledLen
- <= apBufferHeader->nAllocLen,
- User::Panic(KOmxILCallbackManagerPanicCategory, 1));
-
- CBufferDoneCallbackCommand* pEventCBack =
- new CBufferDoneCallbackCommand(apBufferHeader,
- aLocalPortIndex,
- aLocalPortDirection,
- aPriority);
-
- if (!pEventCBack || (iCommandQueue.Send(pEventCBack) != KErrNone))
- {
- delete pEventCBack;
- HandleInsufficientResources();
- }
-
- return OMX_ErrorNone;
-
- }
-
-
-void
-COmxILCallbackManager::RunL()
- {
- DEBUG_PRINTF2(_L8("COmxILCallbackManager::RunL : Handle[%X]"), ipHandle);
-
- ProcessQueue(iCommandQueue);
-
- // Setup for next callbacks
- iCommandQueue.NotifyDataAvailable(iStatus);
- SetActive();
-
- }
-
-
-void
-COmxILCallbackManager::ProcessQueue(RCallbackManagerQueue& aQueue)
- {
- DEBUG_PRINTF2(_L8("COmxILCallbackManager::ProcessQueue : Handle[%X]"), ipHandle);
-
- CCallbackCommand* pCommand = 0;
-
- TInt receiveRes = 0;
- TBool hasBeenDeferred = EFalse;
- while ((receiveRes = aQueue.Receive(pCommand)) == KErrNone)
- {
- if (pCommand)
- {
- DEBUG_PRINTF2(_L8("COmxILCallbackManager::ProcessQueue : aQueue.Receive [%X]"),
- pCommand);
- hasBeenDeferred = EFalse;
- (*pCommand)(*this, hasBeenDeferred);
- if (hasBeenDeferred)
- {
- // Move the current command to the pending queue
- if (iPendingQueue.Send(pCommand) != KErrNone)
- {
- delete pCommand;
- pCommand = 0;
- HandleInsufficientResources();
- }
- }
- else
- {
- delete pCommand;
- pCommand = 0;
- }
- }
-
- }
-
- if (KErrNoMemory == receiveRes)
- {
- HandleInsufficientResources();
- }
-
- }
-
-void
-COmxILCallbackManager::DoCancel()
- {
- DEBUG_PRINTF2(_L8("COmxILCallbackManager::DoCancel : Handle[%X]"), ipHandle);
-
- iCommandQueue.CancelDataAvailable();
-
- }
-
-
-//
-// COmxILCallbackManager::RCallbackManagerQueue
-//
-TBool
-COmxILCallbackManager::RCallbackManagerQueue::RemoveBufferDoneCbCommandsByBufferHeader(
- COmxILCallbackManager& aCbMgr,
- const OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_DIRTYPE aDirection)
- {
- DEBUG_PRINTF2(_L8("RCallbackManagerQueue::RemoveBufferDoneCbCommandsByBufferHeader : Handle[%X]"), aCbMgr.ipHandle);
-
- if (KErrNone != DrainBackQueue())
- {
- aCbMgr.HandleInsufficientResources();
- return EFalse;
- }
-
- if(!iFrontQueue.IsEmpty())
- {
- TBool removed = EFalse;
- TDblQueIter<TFrontQueueElement> frontQueueIter(iFrontQueue);
- TFrontQueueElement* pLastElement = iFrontQueue.Last();
- TFrontQueueElement* pCurrentElement = 0;
-
- do
- {
- pCurrentElement = frontQueueIter++;
- __ASSERT_DEBUG(pCurrentElement && pCurrentElement->ipInfo,
- User::Panic(KOmxILCallbackManagerPanicCategory, 1));
- removed = reinterpret_cast<CCallbackCommand*>(
- const_cast<TAny*>(pCurrentElement->ipInfo))->
- DoRemoveBufferDoneCbCommandByBufferHeader(aCbMgr,
- apBufferHeader,
- aDirection);
- if (removed)
- {
- pCurrentElement->iLink.Deque();
- delete reinterpret_cast<CCallbackCommand*>(
- const_cast<TAny*>(pCurrentElement->ipInfo));
- delete pCurrentElement;
- DEBUG_PRINTF2(_L8("RCallbackManagerQueue::RemoveBufferDoneCbCommandsByBufferHeader : Removed Buffer Done @ Header [%X]"), apBufferHeader);
- return ETrue;
- }
- }
- while (pCurrentElement != pLastElement);
- }
-
- return EFalse;
-
- }
-
-TBool
-COmxILCallbackManager::RCallbackManagerQueue::RemoveBufferDoneCbCommandsByPortIndex(
- COmxILCallbackManager& aCbMgr,
- OMX_U32 aLocalPortIndex)
- {
- DEBUG_PRINTF2(_L8("RCallbackManagerQueue::RemoveBufferDoneCbCommandsByPortIndex : Handle[%X]"), aCbMgr.ipHandle);
-
- TBool somethingRemoved = EFalse;
-
- if (KErrNone != DrainBackQueue())
- {
- aCbMgr.HandleInsufficientResources();
- return EFalse;
- }
-
- if(!iFrontQueue.IsEmpty())
- {
- TBool removed = EFalse;
- TDblQueIter<TFrontQueueElement> frontQueueIter(iFrontQueue);
- TFrontQueueElement* pLastElement = iFrontQueue.Last();
- TFrontQueueElement* pCurrentElement = 0;
-
- do
- {
- pCurrentElement = frontQueueIter++;
- __ASSERT_DEBUG(pCurrentElement && pCurrentElement->ipInfo,
- User::Panic(KOmxILCallbackManagerPanicCategory, 1));
- removed = reinterpret_cast<CCallbackCommand*>(
- const_cast<TAny*>(pCurrentElement->ipInfo))->
- DoRemoveBufferDoneCbCommandByPortIndex(aCbMgr,
- aLocalPortIndex);
- if (removed)
- {
- somethingRemoved = ETrue;
- pCurrentElement->iLink.Deque();
- delete reinterpret_cast<CCallbackCommand*>(
- const_cast<TAny*>(pCurrentElement->ipInfo));
- delete pCurrentElement;
- DEBUG_PRINTF2(_L8("RCallbackManagerQueue::RemoveBufferDoneCbCommandsByPortIndex : Removed Buffer Done @ Port Index [%d]"), aLocalPortIndex);
- }
- }
- while (pCurrentElement != pLastElement);
- }
-
- return somethingRemoved;
-
- }
-
-
-TBool
-COmxILCallbackManager::RCallbackManagerQueue::ExecuteBufferDoneCbCommandsByPortIndex(
- COmxILCallbackManager& aCbMgr,
- OMX_U32 aLocalPortIndex)
- {
- DEBUG_PRINTF2(_L8("RCallbackManagerQueue::ExecuteBufferDoneCbCommandsByPortIndex : Handle[%X]"), aCbMgr.ipHandle);
-
- TBool somethingExecuted = EFalse;
-
- if (KErrNone != DrainBackQueue())
- {
- aCbMgr.HandleInsufficientResources();
- return EFalse;
- }
-
- if(!iFrontQueue.IsEmpty())
- {
- TBool executed = EFalse;
- TDblQueIter<TFrontQueueElement> frontQueueIter(iFrontQueue);
- TFrontQueueElement* pLastElement = iFrontQueue.Last();
- TFrontQueueElement* pCurrentElement = 0;
-
- do
- {
- pCurrentElement = frontQueueIter++;
- __ASSERT_DEBUG(pCurrentElement && pCurrentElement->ipInfo,
- User::Panic(KOmxILCallbackManagerPanicCategory, 1));
- executed = reinterpret_cast<CCallbackCommand*>(
- const_cast<TAny*>(pCurrentElement->ipInfo))->
- DoExecuteBufferDoneCbCommandByPortIndex(aCbMgr,
- aLocalPortIndex);
- if (executed)
- {
- somethingExecuted = ETrue;
- pCurrentElement->iLink.Deque();
- delete reinterpret_cast<CCallbackCommand*>(
- const_cast<TAny*>(pCurrentElement->ipInfo));
- delete pCurrentElement;
- DEBUG_PRINTF2(_L8("RCallbackManagerQueue::ExecuteBufferDoneCbCommandsByPortIndex : Executed Buffer Done @ Port Index [%d]"), aLocalPortIndex);
- }
- }
- while (pCurrentElement != pLastElement);
- }
-
- return somethingExecuted;
-
- }
-
-
-//
-// COmxILCallbackManager commands
-//
-
-TBool
-COmxILCallbackManager::CCallbackCommand::DoRemoveBufferDoneCbCommandByBufferHeader(
- COmxILCallbackManager& /*aCbMgr*/,
- const OMX_BUFFERHEADERTYPE* /*apBufferHeader*/,
- OMX_DIRTYPE /*aDirection*/)
- {
- return EFalse;
- }
-
-TBool
-COmxILCallbackManager::CCallbackCommand::DoRemoveBufferDoneCbCommandByPortIndex(
- COmxILCallbackManager& /*aCbMgr*/,
- OMX_U32 /* aLocalPortIndex */)
- {
- return EFalse;
- }
-
-TBool
-COmxILCallbackManager::CCallbackCommand::DoExecuteBufferDoneCbCommandByPortIndex(
- COmxILCallbackManager& /*aCbMgr*/,
- OMX_U32 /* aLocalPortIndex */)
- {
- return EFalse;
- }
-
-void
-COmxILCallbackManager::CCompHandleRegistrationCommand::operator()(
- COmxILCallbackManager& aCbMgr, TBool& /* aHasBeenDeferred */)
- {
- DEBUG_PRINTF2(_L8("CCompHandleRegistrationCommand::operator() : Handle[%X]"), aCbMgr.ipHandle);
- aCbMgr.DoRegisterComponentHandle(ipHandle);
- }
-
-void
-COmxILCallbackManager::CClientCallbacksRegistrationCommand::operator()(
- COmxILCallbackManager& aCbMgr, TBool& /* aHasBeenDeferred */)
- {
- DEBUG_PRINTF2(_L8("CClientCallbacksRegistrationCommand::operator() : Handle[%X]"), aCbMgr.ipHandle);
- aCbMgr.DoRegisterILClientCallbacks(ipCallbacks, ipAppData);
- }
-
-void
-COmxILCallbackManager::CBufferMarkPropagationRegistrationCommand::operator()(
- COmxILCallbackManager& aCbMgr, TBool& /* aHasBeenDeferred */)
- {
- DEBUG_PRINTF2(_L8("CBufferMarkPropagationRegistrationCommand::operator() : Handle[%X]"), aCbMgr.ipHandle);
-
- OMX_ERRORTYPE omxError =
- aCbMgr.DoRegisterBufferMarkPropagationPort(
- iMarkPropagationInfo.iPortIndex,
- iMarkPropagationInfo.iPropagationPortIndex);
-
- if (OMX_ErrorInsufficientResources == omxError)
- {
- aCbMgr.HandleInsufficientResources();
- }
- }
-
-void
-COmxILCallbackManager::CBufferRemovalCommand::operator()(
- COmxILCallbackManager& aCbMgr, TBool& /* aHasBeenDeferred */)
- {
- DEBUG_PRINTF2(_L8("CBufferRemovalCommand::operator() : Handle[%X]"), aCbMgr.ipHandle);
-
- // Returned value not relevant
- aCbMgr.iPendingQueue.RemoveBufferDoneCbCommandsByBufferHeader(
- aCbMgr,
- ipBufferHeader,
- iDirection);
-
- // Returned value not relevant
- aCbMgr.iCommandQueue.RemoveBufferDoneCbCommandsByBufferHeader(
- aCbMgr,
- ipBufferHeader,
- iDirection);
-
-
- }
-
-void
-COmxILCallbackManager::CTunnelCallbackRegistrationCommand::operator()(
- COmxILCallbackManager& aCbMgr, TBool& /* aHasBeenDeferred */)
- {
- DEBUG_PRINTF2(_L8("CTunnelCallbackRegistrationCommand::operator() : Handle[%X]"), aCbMgr.ipHandle);
-
- if (!iTunnelInfo.iTunnelledComponentHandle)
- {
- // This is a tunnel deregistration command, then remove any pending
- // callbacks on that tunnel...
- aCbMgr.iCommandQueue.RemoveBufferDoneCbCommandsByPortIndex(
- aCbMgr,
- iTunnelInfo.iLocalPortIndex);
- }
-
- OMX_ERRORTYPE omxError =
- aCbMgr.DoRegisterTunnelCallback(iTunnelInfo.iLocalPortIndex,
- iTunnelInfo.iLocalPortDirection,
- iTunnelInfo.iTunnelledComponentHandle,
- iTunnelInfo.iTunnelledPortIndex);
-
- if (OMX_ErrorInsufficientResources == omxError)
- {
- aCbMgr.HandleInsufficientResources();
- }
-
- }
-
-
-void
-COmxILCallbackManager::CEventCallbackCommand::operator()(
- COmxILCallbackManager& aCbMgr, TBool& /* aHasBeenDeferred */)
- {
- DEBUG_PRINTF2(_L8("CEventCallbackCommand::operator() : Handle[%X]"), aCbMgr.ipHandle);
-
- OMX_ERRORTYPE omxError = OMX_ErrorNone;
- switch(iData1)
- {
- case OMX_CommandStateSet:
- {
- aCbMgr.iPreviousState = aCbMgr.iCurrentState;
- aCbMgr.iCurrentState = static_cast<OMX_STATETYPE>(iData2);
-
- DEBUG_PRINTF4(_L8("CEventCallbackCommand::operator() : Handle[%X] iPreviousState[%d] -> iCurrentState[%d]"), aCbMgr.ipHandle, aCbMgr.iPreviousState, aCbMgr.iCurrentState);
-
- if (OMX_StatePause == aCbMgr.iPreviousState &&
- OMX_StateIdle == aCbMgr.iCurrentState)
- {
- // Flush pending queue first...
- aCbMgr.ProcessQueue(aCbMgr.iPendingQueue);
-
- // ... and now signal command completion...
- omxError =
- aCbMgr.DoEventNotification(iEvent,
- iData1,
- iData2,
- iExtraInfo);
-
- }
- else if (OMX_StatePause == aCbMgr.iPreviousState &&
- OMX_StateExecuting == aCbMgr.iCurrentState)
- {
- // Signal command completion first...
- omxError =
- aCbMgr.DoEventNotification(iEvent,
- iData1,
- iData2,
- iExtraInfo);
-
- // ... and now flush...
- aCbMgr.ProcessQueue(aCbMgr.iPendingQueue);
-
- }
- else
- {
- // Signal command completion...
- omxError =
- aCbMgr.DoEventNotification(iEvent,
- iData1,
- iData2,
- iExtraInfo);
-
- }
-
- }
- break;
-
- case OMX_CommandPortDisable:
- case OMX_CommandFlush:
- {
- // Process pending queue unconditionally...
- aCbMgr.iFlushPendingQueue = ETrue;
-
- // Flush first...
- if (OMX_ALL == iData2)
- {
- aCbMgr.ProcessQueue(aCbMgr.iPendingQueue);
- }
- else
- {
- aCbMgr.iPendingQueue.
- ExecuteBufferDoneCbCommandsByPortIndex(aCbMgr,
- iData2);
-
- }
-
- aCbMgr.iFlushPendingQueue = EFalse;
-
- // ... and now signal command completion...
- omxError =
- aCbMgr.DoEventNotification(iEvent,
- iData1,
- iData2,
- iExtraInfo);
-
- }
- break;
-
- default:
- {
- // Signal command completion...
- omxError =
- aCbMgr.DoEventNotification(iEvent,
- iData1,
- iData2,
- iExtraInfo);
-
- }
-
- };
-
- if (OMX_ErrorInsufficientResources == omxError)
- {
- aCbMgr.HandleInsufficientResources();
- }
-
- }
-
-
-void
-COmxILCallbackManager::CBufferDoneCallbackCommand::operator()(
- COmxILCallbackManager& aCbMgr, TBool& aHasBeenDeferred)
- {
- DEBUG_PRINTF2(_L8("CBufferDoneCallbackCommand::operator() : Handle[%X]"), aCbMgr.ipHandle);
-
- // Only send the buffer done callback if is not in Pause stae or if there
- // is a buffer flushing situation...
-
- if ((OMX_StatePause == aCbMgr.iCurrentState) &&
- (!aCbMgr.iFlushPendingQueue))
- {
- aHasBeenDeferred = ETrue;
- return;
- }
-
- OMX_ERRORTYPE omxError =
- aCbMgr.DoBufferDoneNotification(ipBufferHeader,
- iLocalPortIndex,
- iLocalPortDirection);
-
- if (OMX_ErrorInsufficientResources == omxError)
- {
- aCbMgr.HandleInsufficientResources();
- }
-
- }
-
-TBool
-COmxILCallbackManager::CBufferDoneCallbackCommand::DoRemoveBufferDoneCbCommandByBufferHeader(
- COmxILCallbackManager& aCbMgr,
- const OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_DIRTYPE aDirection)
- {
-
- if (apBufferHeader == ipBufferHeader)
- {
- __ASSERT_DEBUG(aCbMgr.ipFsm,
- User::Panic(KOmxILCallbackManagerPanicCategory, 1));
- __ASSERT_DEBUG(aDirection == OMX_DirInput ||
- aDirection == OMX_DirOutput,
- User::Panic(KOmxILCallbackManagerPanicCategory, 1));
-
- DEBUG_PRINTF4(_L8("DoRemoveBufferDoneCbCommandByBufferHeader() : Nofiying FSM : Handle[%X] aDirection[%X] apBufferHeader[%X]"), aCbMgr.ipHandle, aDirection, apBufferHeader);
-
- // Make sure the buffer contents are cleared...
- TOmxILUtil::ClearBufferContents(
- const_cast<OMX_BUFFERHEADERTYPE*>(apBufferHeader));
-
- if (aDirection == OMX_DirInput)
- {
- aCbMgr.ipFsm->EmptyThisBuffer(
- const_cast<OMX_BUFFERHEADERTYPE*>(apBufferHeader));
- }
- else
- {
- aCbMgr.ipFsm->FillThisBuffer(
- const_cast<OMX_BUFFERHEADERTYPE*>(apBufferHeader));
- }
- return ETrue;
- }
-
- return EFalse;
-
- }
-
-//
-// This method only prints some logging information for debugging purposes. For
-// now, there's no other action to be performed as the deletion is done by the caller.
-//
-TBool
-COmxILCallbackManager::CBufferDoneCallbackCommand::DoRemoveBufferDoneCbCommandByPortIndex(
- COmxILCallbackManager& /* aCbMgr */,
- OMX_U32 aLocalPortIndex)
- {
-
- if (iLocalPortIndex == aLocalPortIndex)
- {
- DEBUG_PRINTF2(_L8("CBufferDoneCallbackCommand::DoRemoveBufferDoneCbCommandByPortIndex() : FOUND -> PortIndex[%d]"), aLocalPortIndex);
- return ETrue;
- }
-
- DEBUG_PRINTF2(_L8("CBufferDoneCallbackCommand::DoRemoveBufferDoneCbCommandByPortIndex() : NOT FOUND -> PortIndex[%d]"), aLocalPortIndex);
-
- return EFalse;
- }
-
-
-TBool
-COmxILCallbackManager::CBufferDoneCallbackCommand::DoExecuteBufferDoneCbCommandByPortIndex(
- COmxILCallbackManager& aCbMgr,
- OMX_U32 aLocalPortIndex)
- {
-
- TBool executed = EFalse;
-
- if (iLocalPortIndex == aLocalPortIndex)
- {
- TBool hasBeenDeferred = EFalse;
- // The only use case for this method is during unconditional flushing
- // of the pending queue...
- __ASSERT_DEBUG(aCbMgr.iFlushPendingQueue,
- User::Panic(KOmxILCallbackManagerPanicCategory, 1));
- this->operator()(aCbMgr, hasBeenDeferred);
- __ASSERT_DEBUG(!hasBeenDeferred,
- User::Panic(KOmxILCallbackManagerPanicCategory, 1));
- executed = ETrue;
- }
-
- DEBUG_PRINTF3(_L8("CBufferDoneCallbackCommand::DoExecuteBufferDoneCbCommandByPortIndex() : %s FOUND -> PortIndex[%d]"),
- (executed ? "" : "NOT"), aLocalPortIndex);
-
- return executed;
-
- }
-
-
-TBool
-XOmxILCallbackManagerIfImpl::TBufferMarkPropagationInfo::Compare(
- const TBufferMarkPropagationInfo& aBmpi1,
- const TBufferMarkPropagationInfo& aBmpi2)
- {
- return (aBmpi1.iPortIndex == aBmpi2.iPortIndex ? ETrue : EFalse);
- }
-
-TBool
-XOmxILCallbackManagerIfImpl::TOutputPortBufferMarkInfo::Compare(
- const TOutputPortBufferMarkInfo& aOpbmi1,
- const TOutputPortBufferMarkInfo& aOpbmi2)
- {
- return (aOpbmi1.iPortIndex == aOpbmi2.iPortIndex ? ETrue : EFalse);
- }
-
-COmxILCallbackManager::CPortSettingsChangeCommand::~CPortSettingsChangeCommand()
- {
- delete ipPortSettings;
- }
-
-void
-COmxILCallbackManager::CPortSettingsChangeCommand::operator()(
- COmxILCallbackManager& aCbMgr, TBool& /* aHasBeenDeferred */)
- {
- DEBUG_PRINTF3(_L8("CPortSettingsChangeCommand::operator() : Handle[%X], iLocalPortIndex=[%d]"),
- aCbMgr.ipHandle, iLocalPortIndex);
-
- OMX_ERRORTYPE omxError =
- aCbMgr.DoPortSettingsChangeNotification(iLocalPortIndex,
- iPortSettingsIndex,
- *ipPortSettings);
-
- if (OMX_ErrorInsufficientResources == omxError)
- {
- aCbMgr.HandleInsufficientResources();
- }
-
- }
--- a/omxil/omxilcomponentcommon/src/common/omxilcallbackmanager.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,495 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-#ifndef OMXILCALLBACKMANAGER_H
-#define OMXILCALLBACKMANAGER_H
-
-#include <e32base.h>
-
-#include "omxilcallbackmanagerif.h"
-#include "omxilcallbackmanagerifimpl.h"
-#include "primsgqueue.h"
-
-
-/**
- Call Back Manager Panic category
-*/
-_LIT(KOmxILCallbackManagerPanicCategory, "OmxILCallbackManager");
-
-
-/**
- OpenMAX IL call backs and buffer marks manager. This is an asynchronous
- implementation of MOmxILCallbackManagerIf. It keeps and manages the IL
- Client callback information as well as the buffer mark propagation info.
-
- */
-NONSHARABLE_CLASS(COmxILCallbackManager) :
- public CActive,
- public MOmxILCallbackManagerIf,
- private XOmxILCallbackManagerIfImpl
- {
-
- // Declaration of nested private command classes
- class CCallbackCommand;
- class CCompHandleRegistrationCommand;
- class CClientCallbacksRegistrationCommand;
- class CTunnelCallbackRegistrationCommand;
- class CBufferMarkPropagationRegistrationCommand;
- class CBufferRemovalCommand;
- class CEventCallbackCommand;
- class CBufferDoneCallbackCommand;
- class CPortSettingsChangeCommand;
-
- // Note that the following friends don't break COmxILCallbackManager's
- // interface as all friends below are COmxILCallbackManager's private
- // nested classes and therefore they are logically part of
- // COmxILCallbackManager implementation
- friend class CCompHandleRegistrationCommand;
- friend class CClientCallbacksRegistrationCommand;
- friend class CTunnelCallbackRegistrationCommand;
- friend class CBufferMarkPropagationRegistrationCommand;
- friend class CBufferRemovalCommand;
- friend class CEventCallbackCommand;
- friend class CBufferDoneCallbackCommand;
- friend class CPortSettingsChangeCommand;
-
-public:
-
- IMPORT_C static COmxILCallbackManager* NewL(
- OMX_HANDLETYPE apComponentHandle,
- OMX_PTR apAppData,
- OMX_CALLBACKTYPE* apCallbacks);
-
- IMPORT_C ~COmxILCallbackManager();
-
- IMPORT_C void SetPortManager(COmxILPortManager& apPortManager);
-
- IMPORT_C void SetFsm(COmxILFsm& apFsm);
-
-
- //
- // Methods for Callback Registration (from MOmxILCallbackManagerIf)
- //
-
- IMPORT_C OMX_ERRORTYPE RegisterComponentHandle(
- OMX_HANDLETYPE aComponentHandle);
-
- IMPORT_C OMX_ERRORTYPE RegisterILClientCallbacks(
- const OMX_CALLBACKTYPE* apCallbacks,
- const OMX_PTR apAppData);
-
- IMPORT_C OMX_ERRORTYPE RegisterTunnelCallback(
- OMX_U32 aLocalPortIndex,
- OMX_DIRTYPE aLocalPortDirection,
- OMX_HANDLETYPE aTunnelledComponentHandle,
- OMX_U32 aTunnelledPortIndex
- );
-
- IMPORT_C OMX_ERRORTYPE DeregisterTunnelCallback(
- OMX_U32 aLocalPortIndex);
-
- IMPORT_C OMX_ERRORTYPE RegisterBufferMarkPropagationPort(
- OMX_U32 aPortIndex,
- OMX_U32 aPropagationPortIndex);
-
- IMPORT_C TBool BufferRemovalIndication(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_DIRTYPE aDirection);
-
-
- //
- // Methods for Callback Notification (from MOmxILCallbackManagerIf)
- //
-
- IMPORT_C OMX_ERRORTYPE TransitionCompleteNotification(
- OMX_STATETYPE aOmxState);
-
- IMPORT_C OMX_ERRORTYPE CommandCompleteNotification(
- OMX_COMMANDTYPE aOmxCommand,
- OMX_U32 aOmxPortIndex);
-
- //
- // Methods for Callback Notification (from MOmxILCallbackManagerIf)
- //
-
- IMPORT_C OMX_ERRORTYPE ErrorEventNotification(
- OMX_ERRORTYPE aOmxError);
-
- IMPORT_C OMX_ERRORTYPE EventNotification(
- OMX_EVENTTYPE aEvent,
- TUint32 aData1,
- TUint32 aData2,
- OMX_STRING aExtraInfo);
-
- IMPORT_C OMX_ERRORTYPE BufferDoneNotification(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_U32 aLocalPortIndex,
- OMX_DIRTYPE aLocalPortDirection);
-
- IMPORT_C OMX_ERRORTYPE ClockBufferDoneNotification(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_U32 aLocalPortIndex,
- OMX_DIRTYPE aLocalPortDirection);
-
- IMPORT_C OMX_ERRORTYPE PortSettingsChangeNotification(
- OMX_U32 aLocalPortIndex,
- TUint aPortSettingsIndex,
- const TDesC8& aPortSettings);
-
- //
- // From CActive
- //
-private:
- void RunL();
- void DoCancel();
-
-private:
-
- // Convenience typedef
- typedef RPriMsgQueue<CCallbackCommand*> RCbCmdPriQue;
-
- /**
- COmxILCallbackManager's priority-based command queue.
-
- This queue is based on RPriMsgQueue but it is specialized to support the
- search and deletion of Buffer Done Callback Commands using some specific
- search criteria like buffer headers or port indexes.
- */
- class RCallbackManagerQueue : public RCbCmdPriQue
- {
-
- public:
-
- TBool RemoveBufferDoneCbCommandsByBufferHeader(
- COmxILCallbackManager& aCbMgr,
- const OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_DIRTYPE aDirection);
-
- TBool RemoveBufferDoneCbCommandsByPortIndex(
- COmxILCallbackManager& aCbMgr,
- OMX_U32 aLocalPortIndex);
-
- TBool ExecuteBufferDoneCbCommandsByPortIndex(
- COmxILCallbackManager& aCbMgr,
- OMX_U32 aLocalPortIndex);
-
-
- };
-
-private:
-
- static const TInt KMaxMsgQueueEntries = 30;
-
-private:
-
- COmxILCallbackManager(OMX_HANDLETYPE apComponentHandle,
- OMX_PTR apAppData,
- OMX_CALLBACKTYPE* apCallbacks);
- void ConstructL();
-
-
- OMX_ERRORTYPE SendBufferDoneNotification(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_U32 aLocalPortIndex,
- OMX_DIRTYPE aLocalPortDirection,
- TInt aPriority);
-
- void ProcessQueue(RCallbackManagerQueue& aQueue);
-
- void CleanUpQueue(RCallbackManagerQueue& aQueue);
-
- OMX_ERRORTYPE EventNotificationImpl(
- OMX_EVENTTYPE aEvent,
- TUint32 aData1,
- TUint32 aData2,
- OMX_STRING aExtraInfo);
-
-private:
-
- // COmxILCallbackManager priority queue.
- RCallbackManagerQueue iCommandQueue;
-
- // Queue of buffer done notifications that need to be queued during
- // OMX_StatePaused state
- RCallbackManagerQueue iPendingQueue;
-
- // Flag to enable unconditional flushing of buffer done notifications
- TBool iFlushPendingQueue;
-
- OMX_STATETYPE iCurrentState;
- OMX_STATETYPE iPreviousState;
-
- };
-
-
-//
-// COmxILCallbackManager nested classes
-//
-
-/**
- Abstract Callback Manager's command class.
- */
-class COmxILCallbackManager::CCallbackCommand : public CBase
- {
-
-public:
-
- enum TCommandPriority
- {
- EPriorityLow,
- EPriorityNormal,
- EPriorityHigh,
- EPriorityVeryHigh
- };
-
-public:
-
- inline CCallbackCommand(TInt aPriority);
-
- /**
- Operator() method that must be implemented to perform the specific
- command logic.
-
- @param [in] aCbMgr The Callback Manager object used as context to the
- command operation
- */
- virtual void operator()(COmxILCallbackManager& aCbMgr, TBool& aHasBeenDeferred) = 0;
-
- virtual TBool DoRemoveBufferDoneCbCommandByBufferHeader(
- COmxILCallbackManager& aCbMgr,
- const OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_DIRTYPE aDirection);
-
- virtual TBool DoRemoveBufferDoneCbCommandByPortIndex(
- COmxILCallbackManager& aCbMgr,
- OMX_U32 aLocalPortIndex);
-
- virtual TBool DoExecuteBufferDoneCbCommandByPortIndex(
- COmxILCallbackManager& aCbMgr,
- OMX_U32 aLocalPortIndex);
-
- inline TInt Priority();
-
-public:
-
- TInt iPriority;
-
- };
-
-/**
- Callback Manager's command class for registering component handles.
- */
-class COmxILCallbackManager::CCompHandleRegistrationCommand :
- public COmxILCallbackManager::CCallbackCommand
- {
-
-public:
-
- inline CCompHandleRegistrationCommand(OMX_HANDLETYPE aComponentHandle);
-
- void operator()(COmxILCallbackManager& aCbMgr, TBool& aHasBeenDeferred);
-
-private:
-
- OMX_COMPONENTTYPE* ipHandle; // Not owned
-
- };
-
-/**
- Callback Manager's command class for registering IL Client callbacks .
- */
-class COmxILCallbackManager::CClientCallbacksRegistrationCommand :
- public COmxILCallbackManager::CCallbackCommand
- {
-
-public:
-
- inline CClientCallbacksRegistrationCommand(
- const OMX_CALLBACKTYPE*& apCallbacks,
- const OMX_PTR& apAppData);
-
- void operator()(COmxILCallbackManager& aCbMgr, TBool& aHasBeenDeferred);
-
-private:
-
- const OMX_CALLBACKTYPE* ipCallbacks; // not owned
- const OMX_PTR ipAppData; // not owned
-
- };
-
-/**
- Callback Manager's command class for registering tunnel callbacks.
- */
-class COmxILCallbackManager::CTunnelCallbackRegistrationCommand :
- public COmxILCallbackManager::CCallbackCommand
- {
-
-public:
-
- inline CTunnelCallbackRegistrationCommand(
- OMX_U32 aLocalPortIndex,
- OMX_DIRTYPE aLocalPortDirection,
- OMX_HANDLETYPE aTunnelledComponentHandle,
- OMX_U32 aTunnelledPortIndex);
-
- void operator()(COmxILCallbackManager& aCbMgr, TBool& aHasBeenDeferred);
-
-
-public:
-
- TTunnelRegistrationInfo iTunnelInfo;
-
- };
-
-/**
- Callback Manager's command class for registering buffer marks info .
- */
-class COmxILCallbackManager::CBufferMarkPropagationRegistrationCommand :
- public COmxILCallbackManager::CCallbackCommand
- {
-
-public:
-
- inline CBufferMarkPropagationRegistrationCommand(
- OMX_U32 aPortIndex,
- OMX_U32 aPropagationPortIndex);
-
- void operator()(COmxILCallbackManager& aCbMgr, TBool& aHasBeenDeferred);
-
-public:
-
- TBufferMarkPropagationInfo iMarkPropagationInfo;
-
- };
-
-/**
- Callback Manager's command class for buffer header removal.
- */
-class COmxILCallbackManager::CBufferRemovalCommand :
- public COmxILCallbackManager::CCallbackCommand
- {
-
-public:
-
- inline CBufferRemovalCommand(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_DIRTYPE aDirection);
-
- void operator()(COmxILCallbackManager& aCbMgr, TBool& aHasBeenDeferred);
-
-public:
-
- OMX_BUFFERHEADERTYPE* ipBufferHeader;
- OMX_DIRTYPE iDirection;
-
- };
-
-/**
- Callback Manager's command class for notification of OpenMAX IL events .
- */
-class COmxILCallbackManager::CEventCallbackCommand :
- public COmxILCallbackManager::CCallbackCommand
- {
-
-public:
-
- inline CEventCallbackCommand(OMX_EVENTTYPE aEvent,
- TUint32 aData1,
- TUint32 aData2,
- OMX_STRING aExtraInfo);
-
- void operator()(COmxILCallbackManager& aCbMgr, TBool& aHasBeenDeferred);
-
-private:
-
- OMX_EVENTTYPE iEvent;
- TUint32 iData1;
- TUint32 iData2;
- OMX_STRING iExtraInfo;
-
- };
-
-/**
- Callback Manager's command class for notification of buffer done events .
- */
-class COmxILCallbackManager::CBufferDoneCallbackCommand :
- public COmxILCallbackManager::CCallbackCommand
- {
-
-public:
-
- inline CBufferDoneCallbackCommand(OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_U32 aLocalPortIndex,
- OMX_DIRTYPE aLocalPortDirection,
- TInt aPriority = CCallbackCommand::EPriorityNormal);
-
- void operator()(COmxILCallbackManager& aCbMgr, TBool& aHasBeenDeferred);
-
- TBool DoRemoveBufferDoneCbCommandByBufferHeader(
- COmxILCallbackManager& aCbMgr,
- const OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_DIRTYPE aDirection);
-
- TBool DoRemoveBufferDoneCbCommandByPortIndex(
- COmxILCallbackManager& aCbMgr,
- OMX_U32 aLocalPortIndex);
-
- TBool DoExecuteBufferDoneCbCommandByPortIndex(
- COmxILCallbackManager& aCbMgr,
- OMX_U32 aLocalPortIndex);
-
-private:
-
- OMX_BUFFERHEADERTYPE* ipBufferHeader; // not owned
- OMX_U32 iLocalPortIndex;
- OMX_DIRTYPE iLocalPortDirection;
-
- };
-
-/**
- Callback Manager's command class for notification of port settings change
- events .
- */
-class COmxILCallbackManager::CPortSettingsChangeCommand :
- public COmxILCallbackManager::CCallbackCommand
- {
-
-public:
-
- inline CPortSettingsChangeCommand(OMX_U32 aLocalPortIndex,
- TUint aPortSettingsIndex,
- HBufC8*& apPortSettings);
-
- ~CPortSettingsChangeCommand();
-
- void operator()(COmxILCallbackManager& aCbMgr, TBool& aHasBeenDeferred);
-
-private:
-
- OMX_U32 iLocalPortIndex;
- TUint iPortSettingsIndex;
- HBufC8* ipPortSettings; // This is owned by this class
-
- };
-
-#include "omxilcallbackmanager.inl"
-
-#endif // OMXILCALLBACKMANAGER_H
--- a/omxil/omxilcomponentcommon/src/common/omxilcallbackmanager.inl Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,135 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-inline
-COmxILCallbackManager::CCallbackCommand::CCallbackCommand(
- TInt aPriority)
- :
- iPriority(aPriority)
- {
- }
-
-inline TInt
-COmxILCallbackManager::CCallbackCommand::Priority()
- {
- return iPriority;
- }
-
-inline
-COmxILCallbackManager::CCompHandleRegistrationCommand::CCompHandleRegistrationCommand(
- OMX_HANDLETYPE aComponentHandle)
- :
- CCallbackCommand(CCallbackCommand::EPriorityVeryHigh),
- ipHandle(static_cast<OMX_COMPONENTTYPE*>(aComponentHandle))
- {
- }
-
-inline
-COmxILCallbackManager::CClientCallbacksRegistrationCommand::CClientCallbacksRegistrationCommand(
- const OMX_CALLBACKTYPE*& apCallbacks,
- const OMX_PTR& apAppData)
- :
- CCallbackCommand(CCallbackCommand::EPriorityVeryHigh),
- ipCallbacks(apCallbacks),
- ipAppData(apAppData)
- {
- }
-
-inline
-COmxILCallbackManager::CTunnelCallbackRegistrationCommand::CTunnelCallbackRegistrationCommand(
- OMX_U32 aLocalPortIndex,
- OMX_DIRTYPE aLocalPortDirection,
- OMX_HANDLETYPE aTunnelledComponentHandle,
- OMX_U32 aTunnelledPortIndex)
- :
- CCallbackCommand(CCallbackCommand::EPriorityVeryHigh),
- iTunnelInfo(aLocalPortIndex,
- aLocalPortDirection,
- aTunnelledComponentHandle,
- aTunnelledPortIndex)
- {
- }
-
-inline
-COmxILCallbackManager::CBufferMarkPropagationRegistrationCommand::
-CBufferMarkPropagationRegistrationCommand(
- OMX_U32 aPortIndex,
- OMX_U32 aPropagationPortIndex)
- :
- CCallbackCommand(CCallbackCommand::EPriorityVeryHigh),
- iMarkPropagationInfo(aPortIndex,
- aPropagationPortIndex)
- {
- }
-
-inline
-COmxILCallbackManager::CBufferRemovalCommand::CBufferRemovalCommand(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_DIRTYPE aDirection)
- :
- CCallbackCommand(CCallbackCommand::EPriorityVeryHigh),
- ipBufferHeader(apBufferHeader),
- iDirection(aDirection)
- {
- }
-
-inline
-COmxILCallbackManager::CEventCallbackCommand::CEventCallbackCommand(
- OMX_EVENTTYPE aEvent,
- TUint32 aData1,
- TUint32 aData2,
- OMX_STRING aExtraInfo)
- :
- CCallbackCommand(CCallbackCommand::EPriorityNormal),
- iEvent(aEvent),
- iData1(aData1),
- iData2(aData2),
- iExtraInfo(aExtraInfo)
- {
- }
-
-inline
-COmxILCallbackManager::CBufferDoneCallbackCommand::
-CBufferDoneCallbackCommand(OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_U32 aLocalPortIndex,
- OMX_DIRTYPE aLocalPortDirection,
- TInt aPriority)
- :
- CCallbackCommand(aPriority),
- ipBufferHeader(apBufferHeader),
- iLocalPortIndex(aLocalPortIndex),
- iLocalPortDirection(aLocalPortDirection)
- {
- }
-
-inline
-COmxILCallbackManager::CPortSettingsChangeCommand::
-CPortSettingsChangeCommand(OMX_U32 aLocalPortIndex,
- TUint aPortSettingsIndex,
- HBufC8*& apPortSettings)
- :
- CCallbackCommand(CCallbackCommand::EPriorityNormal),
- iLocalPortIndex(aLocalPortIndex),
- iPortSettingsIndex(aPortSettingsIndex),
- ipPortSettings(apPortSettings)
- {
- }
-
--- a/omxil/omxilcomponentcommon/src/common/omxilcallbackmanagerif.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,181 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
-@file
-@internalComponent
-*/
-
-#ifndef OMXILCALLBACKMANAGERIF_H
-#define OMXILCALLBACKMANAGERIF_H
-
-#include <openmax/il/khronos/v1_x/OMX_Component.h>
-
-#include "omxilcallbacknotificationif.h"
-
-// Forward declarations
-class COmxILPortManager;
-class COmxILFsm;
-
-/**
- CallBack Manager Interface used by Callback Manager implementations.
- */
-class MOmxILCallbackManagerIf : public MOmxILCallbackNotificationIf
- {
-
-public:
-
- virtual ~MOmxILCallbackManagerIf();
-
- /**
- Method to update the Port Manager reference
-
- @param [in] aPortManager The Port Manager
-
- @return OMX_ERRORTYPE
- */
- virtual void SetPortManager(COmxILPortManager& aPortManager) = 0;
-
- /**
- Method to update the FSM reference
-
- @param [in] aFsm The FSM
-
- @return OMX_ERRORTYPE
- */
- virtual void SetFsm(COmxILFsm& aFsm) = 0;
-
-
- //
- // Methods for Callback Registration/Un-registration
- //
-
- /**
- Method to register the component handle
-
- @param [in] aComponentHandle The component handle
-
- @return OMX_ERRORTYPE
- */
- virtual OMX_ERRORTYPE RegisterComponentHandle(
- OMX_HANDLETYPE aComponentHandle) = 0;
-
- /**
- Method to register the IL Client callbacks
-
- @param [in] apCallbacks The IL Client callback pointers
-
- @param [in] apAppData The IL Client data used to provide
- component-specific context
-
- @return OMX_ERRORTYPE
- */
- virtual OMX_ERRORTYPE RegisterILClientCallbacks(
- const OMX_CALLBACKTYPE* apCallbacks,
- const OMX_PTR apAppData) = 0;
-
- /**
- Method to register a tunnel callback
-
- @param [in] aLocalPortIndex The tunnel's local port index
-
- @param [in] aLocalPortDirection The direction of the tunnel's local port
-
- @param [in] aTunnelledComponentHandle Tunnelled component handle
-
- @param [in] aTunnelledPortIndex Index of the tunnelled port
-
- @return OMX_ERRORTYPE
- */
- virtual OMX_ERRORTYPE RegisterTunnelCallback(
- OMX_U32 aLocalPortIndex,
- OMX_DIRTYPE aLocalPortDirection,
- OMX_HANDLETYPE aTunnelledComponentHandle,
- OMX_U32 aTunnelledPortIndex) = 0;
-
- /**
- Method to un-register a tunnel callback
-
- @param [in] aLocalPortIndex The tunnel's local port index
-
- @return OMX_ERRORTYPE
- */
- virtual OMX_ERRORTYPE DeregisterTunnelCallback(
- OMX_U32 aLocalPortIndex) = 0;
-
- /**
- Method to register buffer mark propagation ports
-
- @param [in] aPortIndex The index of the input port that receives buffer
- marks
-
- @param [in] aPropagationPortIndex An index of the ouput port where buffer marks
- will be propagated
-
- @return OMX_ERRORTYPE
- */
- virtual OMX_ERRORTYPE RegisterBufferMarkPropagationPort(
- OMX_U32 aPortIndex,
- OMX_U32 aPropagationPortIndex) = 0;
-
- /**
- Method to remove a buffer done commands from the Callback Manager
- internal queues, if queueing is in use
-
- @param [in] apBufferHeader The buffer header contained in the buffer indication
-
- @param [in] aDirection The direction of the port that handles the buffer
-
- @return TBool
- */
- virtual TBool BufferRemovalIndication(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_DIRTYPE aDirection) = 0;
-
- //
- // Methods for Callback Notification
- //
-
- /**
- Method to notify the IL Client of the completion of an OpenMAX IL state
- transition
-
- @param [in] aOmxState The new state
-
- @return OMX_ERRORTYPE
- */
- virtual OMX_ERRORTYPE TransitionCompleteNotification(
- OMX_STATETYPE aOmxState) = 0;
-
- /**
- Method to notify the IL Client of the completion of a OpenMAX IL command
-
- @param [in] aOmxCommand The command that has been completed
-
- @param [in] aOmxPortIndex The index of the port where the command
- applies, if any
-
- @return OMX_ERRORTYPE
- */
- virtual OMX_ERRORTYPE CommandCompleteNotification(
- OMX_COMMANDTYPE aOmxCommand,
- OMX_U32 aOmxPortIndex) = 0;
-
- };
-
-#include "omxilcallbackmanagerif.inl"
-
-#endif // OMXILCALLBACKMANAGERIF_H
--- a/omxil/omxilcomponentcommon/src/common/omxilcallbackmanagerif.inl Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
-@file
-@internalComponent
-*/
-
-inline MOmxILCallbackManagerIf::~MOmxILCallbackManagerIf()
- {
- }
--- a/omxil/omxilcomponentcommon/src/common/omxilcallbackmanagerifimpl.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,502 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
-@file
-@internalComponent
-*/
-
-#include "log.h"
-#include "omxilcallbackmanagerifimpl.h"
-#include "omxilportmanager.h"
-#include "omxilfsm.h"
-
-
-EXPORT_C
-XOmxILCallbackManagerIfImpl::XOmxILCallbackManagerIfImpl(OMX_HANDLETYPE apComponentHandle,
- OMX_PTR apAppData,
- OMX_CALLBACKTYPE* apCallbacks)
- :
- ipHandle(static_cast<OMX_COMPONENTTYPE*>(apComponentHandle)),
- ipAppData(apAppData),
- ipCallbacks(apCallbacks),
- iRegisteredTunnels(),
- iBufferMarkPropagationPorts(),
- iBufferMarks(),
- ipPortManager(0),
- ipFsm(0)
- {
- DEBUG_PRINTF(_L8("XOmxILCallbackManagerIfImpl::XOmxILCallbackManagerIfImpl"));
- }
-
-EXPORT_C
-XOmxILCallbackManagerIfImpl::~XOmxILCallbackManagerIfImpl()
- {
- DEBUG_PRINTF(_L8("XOmxILCallbackManagerIfImpl::~XOmxILCallbackManagerIfImpl"));
- // These pointers are cleared to make sure that any further calls on this
- // object will fail (e.g., from a threaded PF)
- ipHandle = 0;
- ipAppData = 0;
- ipCallbacks = 0;
-
- iRegisteredTunnels.Close();
- iBufferMarkPropagationPorts.Close();
- iBufferMarks.Close();
-
- ipPortManager = 0;
-
- ipFsm = 0;
-
- }
-
-EXPORT_C void
-XOmxILCallbackManagerIfImpl::DoSetPortManager(COmxILPortManager& apPortManager)
- {
- ipPortManager = &apPortManager;
- }
-
-EXPORT_C void
-XOmxILCallbackManagerIfImpl::DoSetFsm(COmxILFsm& apFsm)
- {
- ipFsm = &apFsm;
- }
-
-EXPORT_C OMX_ERRORTYPE
-XOmxILCallbackManagerIfImpl::DoRegisterComponentHandle(OMX_HANDLETYPE aComponentHandle)
- {
- DEBUG_PRINTF(_L8("XOmxILCallbackManagerIfImpl::DoRegisterComponentHandle"));
-
- __ASSERT_DEBUG(aComponentHandle,
- User::Panic(KOmxILCallbackManagerIfImplPanicCategory, 1));
-
- ipHandle = static_cast<OMX_COMPONENTTYPE *>(aComponentHandle);
-
- return OMX_ErrorNone;
-
- }
-
-
-EXPORT_C OMX_ERRORTYPE
-XOmxILCallbackManagerIfImpl::DoRegisterILClientCallbacks(const OMX_CALLBACKTYPE* apCallbacks,
- const OMX_PTR apAppData)
- {
- DEBUG_PRINTF(_L8("XOmxILCallbackManagerIfImpl::DoRegisterILClientCallbacks"));
-
- ipAppData = const_cast<OMX_PTR>(apAppData);
- ipCallbacks = const_cast<OMX_CALLBACKTYPE*>(apCallbacks);
-
- return OMX_ErrorNone;
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-XOmxILCallbackManagerIfImpl::DoRegisterTunnelCallback(
- OMX_U32 aLocalPortIndex,
- OMX_DIRTYPE aLocalPortDirection,
- OMX_HANDLETYPE aTunnelledComponentHandle,
- OMX_U32 aTunnelledPortIndex)
- {
- DEBUG_PRINTF(_L8("XOmxILCallbackManagerIfImpl::DoRegisterTunnelCallback"));
-
- OMX_ERRORTYPE omxError = OMX_ErrorNone;
-
- if (aTunnelledComponentHandle)
- {
- // Register tunnelled port
- TInt err = iRegisteredTunnels.Append(
- TTunnelRegistrationInfo(aLocalPortIndex,
- aLocalPortDirection,
- aTunnelledComponentHandle,
- aTunnelledPortIndex));
- if (KErrNone != err)
- {
- switch (err)
- {
- case KErrNoMemory:
- {
- omxError = OMX_ErrorInsufficientResources;
- }
- break;
- default:
- {
- omxError = OMX_ErrorUndefined;
- }
- };
- }
-
- }
- else
- {
- // Deregister tunnelled port
- const TUint tunnelCount = iRegisteredTunnels.Count();
- for (TUint i=0; i<tunnelCount; ++i)
- {
- if (iRegisteredTunnels[i].iLocalPortIndex ==
- aLocalPortIndex)
- {
- iRegisteredTunnels.Remove(i);
- break;
- }
- }
- }
-
- return omxError;
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-XOmxILCallbackManagerIfImpl::DoRegisterBufferMarkPropagationPort(
- OMX_U32 aPortIndex,
- OMX_U32 aPropagationPortIndex)
- {
- DEBUG_PRINTF3(_L8("XOmxILCallbackManagerIfImpl::DoRegisterBufferMarkPropagationPort : aPortIndex[%d] aPropagationPortIndex[%d] "),aPortIndex, aPropagationPortIndex);
-
- TInt err = iBufferMarkPropagationPorts.Append(
- TBufferMarkPropagationInfo(aPortIndex,
- aPropagationPortIndex));
-
- OMX_ERRORTYPE omxError = OMX_ErrorNone;
- if (KErrNone != err)
- {
- switch (err)
- {
- case KErrNoMemory:
- {
- omxError = OMX_ErrorInsufficientResources;
- }
- break;
- default:
- {
- omxError = OMX_ErrorUndefined;
- }
- };
- }
-
- return omxError;
-
- }
-
-
-
-EXPORT_C OMX_ERRORTYPE
-XOmxILCallbackManagerIfImpl::DoTransitionCompleteNotification(OMX_STATETYPE aOmxState)
- {
- DEBUG_PRINTF(_L8("XOmxILCallbackManagerIfImpl::DoTransitionCompleteNotification"));
-
- return DoEventNotification(OMX_EventCmdComplete,
- OMX_CommandStateSet,
- aOmxState,
- 0);
-
- }
-
-
-EXPORT_C OMX_ERRORTYPE
-XOmxILCallbackManagerIfImpl::DoCommandCompleteNotification(OMX_COMMANDTYPE aOmxCommand,
- OMX_U32 aOmxPortIndex)
- {
- DEBUG_PRINTF(_L8("XOmxILCallbackManagerIfImpl::DoCommandCompleteNotification"));
-
- return DoEventNotification(OMX_EventCmdComplete,
- aOmxCommand,
- aOmxPortIndex,
- 0);
-
- }
-
-
-EXPORT_C OMX_ERRORTYPE
-XOmxILCallbackManagerIfImpl::DoErrorEventNotification(OMX_ERRORTYPE aOmxError)
- {
- DEBUG_PRINTF2(_L8("XOmxILCallbackManagerIfImpl::DoErrorEventNotification : aOmxError[%X] "), aOmxError);
-
- return DoEventNotification(OMX_EventError,
- aOmxError,
- 0,
- 0);
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-XOmxILCallbackManagerIfImpl::DoEventNotification(OMX_EVENTTYPE aEvent,
- TUint32 aData1,
- TUint32 aData2,
- OMX_STRING aExtraInfo)
- {
- DEBUG_PRINTF4(_L8("XOmxILCallbackManagerIfImpl::DoEventNotification : aEvent[%u] aData1[%u] aData2[%u]"), aEvent, aData1, aData2);
-
- __ASSERT_DEBUG(ipHandle && ipCallbacks, User::Panic(KOmxILCallbackManagerIfImplPanicCategory, 1));
-
- ipCallbacks->EventHandler(ipHandle,
- ipAppData,
- aEvent,
- aData1,
- aData2,
- aExtraInfo);
- return OMX_ErrorNone;
-
- }
-
-
-EXPORT_C OMX_ERRORTYPE
-XOmxILCallbackManagerIfImpl::DoBufferDoneNotification(OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_U32 aLocalPortIndex,
- OMX_DIRTYPE aLocalPortDirection)
- {
- DEBUG_PRINTF5(_L8("XOmxILCallbackManagerIfImpl::DoBufferDoneNotification : HANDLE [%X] BUFFER [%X] PORT[%d] DIR[%d]"), ipHandle, apBufferHeader, aLocalPortIndex, aLocalPortDirection);
-
- __ASSERT_ALWAYS(apBufferHeader &&
- (OMX_DirInput == aLocalPortDirection ||
- OMX_DirOutput == aLocalPortDirection),
- User::Panic(KOmxILCallbackManagerIfImplPanicCategory, 1));
-
- __ASSERT_ALWAYS(apBufferHeader->nOffset + apBufferHeader->nFilledLen
- <= apBufferHeader->nAllocLen,
- User::Panic(KOmxILCallbackManagerIfImplPanicCategory, 1));
-
- __ASSERT_DEBUG(ipHandle && ipCallbacks, User::Panic(KOmxILCallbackManagerIfImplPanicCategory, 1));
-
- // Look for buffer marks to be signalled or propagated
- SignalOrPropagateBufferMarks(apBufferHeader,
- aLocalPortDirection);
-
- // find out whether the port is tunnelled or not
- TBool tunnelled = EFalse;
- TUint tunnelInfoArrayIndex = 0;
- const TUint tunnelCount = iRegisteredTunnels.Count();
- for (TUint i=0; i<tunnelCount; ++i)
- {
- if (iRegisteredTunnels[i].iLocalPortIndex ==
- aLocalPortIndex)
- {
- tunnelled = ETrue;
- tunnelInfoArrayIndex = i;
- break;
- }
- }
-
- if (tunnelled)
- {
- OMX_COMPONENTTYPE* ipTunnelledComponent =
- static_cast<OMX_COMPONENTTYPE*>(
- iRegisteredTunnels[tunnelInfoArrayIndex].
- iTunnelledComponentHandle);
-
- __ASSERT_DEBUG(ipTunnelledComponent,
- User::Panic(KOmxILCallbackManagerIfImplPanicCategory, 1));
-
- // From OMX_Core.h "Callbacks should not return an error to the
- // component, so if an error occurs, the application shall handle it
- // internally". Callback return error ignored here.
- if (OMX_DirInput == aLocalPortDirection)
- {
- OMX_FillThisBuffer(ipTunnelledComponent, apBufferHeader);
- }
- else
- {
- OMX_EmptyThisBuffer(ipTunnelledComponent, apBufferHeader);
- }
-
- }
- else
- {
- OMX_ERRORTYPE (*fp2CBackHandler)
- (OMX_HANDLETYPE, OMX_PTR, OMX_BUFFERHEADERTYPE*) =
- (aLocalPortDirection == OMX_DirInput ?
- ipCallbacks->EmptyBufferDone :
- ipCallbacks->FillBufferDone);
-
- // From OMX_Core.h "Callbacks should not return an error to the
- // component, so if an error occurs, the application shall handle it
- // internally". Callback return error ignored here.
- fp2CBackHandler(ipHandle,
- ipAppData,
- apBufferHeader);
- }
-
- return OMX_ErrorNone;
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-XOmxILCallbackManagerIfImpl::DoPortSettingsChangeNotification(
- OMX_U32 aLocalPortIndex,
- TUint aPortSettingsIndex,
- const TDesC8& aPortSettings)
- {
- DEBUG_PRINTF2(_L8("XOmxILCallbackManagerIfImpl::DoPortSettingsChangeNotification : aLocalPortIndex[%d]"), aLocalPortIndex);
-
- __ASSERT_DEBUG(ipHandle &&
- ipCallbacks &&
- ipPortManager,
- User::Panic(KOmxILCallbackManagerIfImplPanicCategory, 1));
-
- HBufC8* pPortSettings = HBufC8::New(aPortSettings.Length());
- if (!pPortSettings)
- {
- return OMX_ErrorInsufficientResources;
- }
- *pPortSettings = aPortSettings;
-
- // This is an event that the port may want to convey to the IL Client...
- OMX_EVENTTYPE eventForILClient = OMX_EventMax;
- OMX_ERRORTYPE omxRetError =
- ipPortManager->PortSettingsChangeIndication(aLocalPortIndex,
- aPortSettingsIndex,
- *pPortSettings,
- eventForILClient);
-
- delete pPortSettings;
- pPortSettings = NULL;
-
- // Inform the IL Client that some value in one of the ports' configuration
- // structures has changed...
- if (OMX_EventMax != eventForILClient)
- {
- // Only allow these two port events...
- __ASSERT_ALWAYS(eventForILClient == OMX_EventPortSettingsChanged ||
- eventForILClient == OMX_EventPortFormatDetected,
- User::Panic(KOmxILCallbackManagerIfImplPanicCategory, 1));
-
- // From OMX_Core.h "Callbacks should not return an error to the component,
- // so if an error occurs, the application shall handle it
- // internally". Callback return error ignored here.
- ipCallbacks->EventHandler(ipHandle,
- ipAppData,
- eventForILClient,
- aLocalPortIndex,
- 0,
- 0);
- }
-
- return OMX_ErrorNone;
-
- }
-
-EXPORT_C void
-XOmxILCallbackManagerIfImpl::SignalOrPropagateBufferMarks(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_U32 aLocalPortIndex)
- {
- DEBUG_PRINTF(_L8("XOmxILCallbackManagerIfImpl::SignalOrPropagateBufferMarks()"));
-
- // Look for buffer marks to be signalled or propagated
- if (apBufferHeader->hMarkTargetComponent)
- {
- // See if this component is the buffer mark target component...
- if (apBufferHeader->hMarkTargetComponent == ipHandle)
- {
- // Inform the IL Client that a marked buffer has been processed...
- ipCallbacks->EventHandler(ipHandle,
- ipAppData,
- OMX_EventMark,
- 0,
- 0,
- apBufferHeader->pMarkData);
-
- // At this point, the mark has been delivered to the IL
- // Client...Remove the mark from the processed header...
- apBufferHeader->hMarkTargetComponent = 0;
- apBufferHeader->pMarkData = 0;
-
- }
- else
- {
- // Propagate the mark...
-
- // First find the buffer mark propagation port...
- const TInt index = iBufferMarkPropagationPorts.Find(
- TBufferMarkPropagationInfo(aLocalPortIndex),
- TIdentityRelation<TBufferMarkPropagationInfo>(
- &TBufferMarkPropagationInfo::Compare));
-
- // Note that sink components don't propagate marks...
- if (index != KErrNotFound)
- {
- const TBufferMarkPropagationInfo& propInfo =
- iBufferMarkPropagationPorts[index];
-
- // Let's check for the special case: The case for a source
- // component where the output port is both the port that marks
- // the headers and the port that propagates them ... Therefore
- // no need to store the mark for later propagation...
- if (propInfo.iPropagationPortIndex != aLocalPortIndex)
- {
- // Now, store temporarily the mark so the next time we send
- // a buffer done callback in that propagation port, we mark
- // that header accordingly...
- // Unsuccessful insertion is ignored.
- iBufferMarks.Append(
- TOutputPortBufferMarkInfo(
- propInfo.iPropagationPortIndex,
- apBufferHeader->hMarkTargetComponent,
- apBufferHeader->pMarkData));
-
- // At this point the mark has been set for propagation to
- // an output port. Remove the mark from the processed
- // header...
- apBufferHeader->hMarkTargetComponent = 0;
- apBufferHeader->pMarkData = 0;
- }
- }
- }
- }
- else
- {
- if(iBufferMarks.Count() != 0)
- {
- // Let's see if we have a mark waiting to go out...This will find the
- // first mark in the local list of marks ...
- const TInt index = iBufferMarks.Find(
- TOutputPortBufferMarkInfo(aLocalPortIndex),
- TIdentityRelation<TOutputPortBufferMarkInfo>(
- &TOutputPortBufferMarkInfo::Compare));
- if (index != KErrNotFound)
- {
- const TOutputPortBufferMarkInfo& markInfo =
- iBufferMarks[index];
-
- // Mark the header...
- apBufferHeader->hMarkTargetComponent = markInfo.ipMarkTargetComponent;
- apBufferHeader->pMarkData = markInfo.ipMarkData;
-
- // Remove the mark info from the local store
- iBufferMarks.Remove(index);
- }
- }
-
- }
-
-
- }
-
-EXPORT_C void
-XOmxILCallbackManagerIfImpl::HandleInsufficientResources()
- {
- DEBUG_PRINTF3(_L8("XOmxILCallbackManagerIfImpl::HandleInsufficientResources : ipCallbacks[%X] ipHandle[%X]"), ipCallbacks, ipHandle);
-
- if (ipCallbacks && ipHandle)
- {
- // This is a best-effort action, let's try to inform the IL Client of
- // the lack of resources...
- ipCallbacks->EventHandler(ipHandle,
- ipAppData,
- OMX_EventError,
- (OMX_U32)OMX_ErrorInsufficientResources,
- 0,
- 0);
- }
- }
--- a/omxil/omxilcomponentcommon/src/common/omxilcallbackmanagerifimpl.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,231 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
-@file
-@internalComponent
-*/
-
-#ifndef OMXILCALLBACKMANAGERIFIMPL_H
-#define OMXILCALLBACKMANAGERIFIMPL_H
-
-#include <openmax/il/khronos/v1_x/OMX_Component.h>
-
-/**
- Call Back ManagerIf Impl Panic category
-*/
-_LIT(KOmxILCallbackManagerIfImplPanicCategory, "OmxILCallbackManagerIfImpl");
-
-// Forward declarations
-class COmxILPortManager;
-class COmxILFsm;
-
-/**
- This is a generic implementation of the Callback Manager functionality.
-
- This implementation is meant to be reused totally or partially by specilized
- implementations of a Callback Manager object.
- */
-class XOmxILCallbackManagerIfImpl
- {
-
-protected:
-
- IMPORT_C XOmxILCallbackManagerIfImpl(OMX_HANDLETYPE apComponentHandle,
- OMX_PTR apAppData,
- OMX_CALLBACKTYPE* apCallbacks);
-
- IMPORT_C virtual ~XOmxILCallbackManagerIfImpl();
-
- IMPORT_C virtual void DoSetPortManager(COmxILPortManager& apPortManager);
-
- IMPORT_C virtual void DoSetFsm(COmxILFsm& apFsm);
-
- //
- // Methods for Callback Registration
- //
- IMPORT_C virtual OMX_ERRORTYPE DoRegisterComponentHandle(
- OMX_HANDLETYPE aComponentHandle);
-
- IMPORT_C virtual OMX_ERRORTYPE DoRegisterILClientCallbacks(
- const OMX_CALLBACKTYPE* apCallbacks,
- const OMX_PTR apAppData);
-
- IMPORT_C virtual OMX_ERRORTYPE DoRegisterTunnelCallback(
- OMX_U32 aLocalPortIndex,
- OMX_DIRTYPE aLocalPortDirection,
- OMX_HANDLETYPE aTunnelledComponentHandle,
- OMX_U32 aTunnelledPortIndex);
-
- IMPORT_C virtual OMX_ERRORTYPE DoRegisterBufferMarkPropagationPort(
- OMX_U32 aPortIndex,
- OMX_U32 aPropagationPortIndex);
-
- //
- // Methods for Callback Notification
- //
-
- IMPORT_C virtual OMX_ERRORTYPE DoTransitionCompleteNotification(
- OMX_STATETYPE aOmxState);
-
- IMPORT_C virtual OMX_ERRORTYPE DoCommandCompleteNotification(
- OMX_COMMANDTYPE aOmxCommand,
- OMX_U32 aOmxPortIndex);
-
- //
- // Methods for Callback Notification
- //
-
- IMPORT_C virtual OMX_ERRORTYPE DoErrorEventNotification(
- OMX_ERRORTYPE aOmxError);
-
- IMPORT_C virtual OMX_ERRORTYPE DoEventNotification(
- OMX_EVENTTYPE aEvent,
- TUint32 aData1,
- TUint32 aData2,
- OMX_STRING aExtraInfo);
-
- IMPORT_C virtual OMX_ERRORTYPE DoBufferDoneNotification(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_U32 aLocalPortIndex,
- OMX_DIRTYPE aLocalPortDirection);
-
- IMPORT_C virtual OMX_ERRORTYPE DoPortSettingsChangeNotification(
- OMX_U32 aLocalPortIndex,
- TUint aPortSettingsIndex,
- const TDesC8& aPortSettings);
-
- IMPORT_C virtual void SignalOrPropagateBufferMarks(OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_U32 aLocalPortIndex);
-
- IMPORT_C virtual void HandleInsufficientResources();
-
-protected:
-
- // Declaration of nested protected classes
- class TTunnelRegistrationInfo;
- class TBufferMarkPropagationInfo;
- class TOutputPortBufferMarkInfo;
-
-protected:
-
- // \defgroup IL Client callbacks data
- //@{
- OMX_COMPONENTTYPE* ipHandle; // not owned
- OMX_PTR ipAppData; // not owned
- OMX_CALLBACKTYPE* ipCallbacks; // not owned
- //@}
-
- // Tunnelled ports callback data
- RArray<TTunnelRegistrationInfo> iRegisteredTunnels;
-
- // Associations between input and output ports to be used in buffer marks
- // propagation
- RArray<TBufferMarkPropagationInfo> iBufferMarkPropagationPorts;
-
- // Temporary store of buffer marks waiting to go out in the next output
- // buffer
- RArray<TOutputPortBufferMarkInfo> iBufferMarks;
-
- // Port manager
- COmxILPortManager* ipPortManager;
-
- // FSM
- COmxILFsm* ipFsm;
-
- };
-
-/**
- Structure used to hold the tunnel information needed for callback handling
- in tunnelled communication.
- */
-class XOmxILCallbackManagerIfImpl::TTunnelRegistrationInfo
- {
-
-public:
-
- inline TTunnelRegistrationInfo(
- OMX_U32 aLocalPortIndex,
- OMX_DIRTYPE aLocalPortDirection,
- OMX_HANDLETYPE aTunnelledComponentHandle,
- OMX_U32 aTunnelledPortIndex);
-
-public:
-
- OMX_U32 iLocalPortIndex;
- OMX_DIRTYPE iLocalPortDirection;
- OMX_HANDLETYPE iTunnelledComponentHandle;
- OMX_U32 iTunnelledPortIndex;
-
- };
-
-
-/**
- Structure used to hold the association of marked port and propagation port.
- */
-class XOmxILCallbackManagerIfImpl::TBufferMarkPropagationInfo
- {
-
-public:
-
- inline TBufferMarkPropagationInfo(
- OMX_U32 aPortIndex,
- OMX_U32 aPropagationPortIndex);
-
- // This constructor should only be used for array look-ups
- inline explicit TBufferMarkPropagationInfo(OMX_U32 aPortIndex);
-
- static TBool Compare(const TBufferMarkPropagationInfo& aBmpi1,
- const TBufferMarkPropagationInfo& aBmpi2);
-
-public:
-
- OMX_U32 iPortIndex;
- OMX_U32 iPropagationPortIndex;
-
- };
-
-/**
- Structure used to hold the buffer marking info needed to propagate buffer
- marks on output ports.
- */
-class XOmxILCallbackManagerIfImpl::TOutputPortBufferMarkInfo
- {
-
-public:
-
- inline TOutputPortBufferMarkInfo(
- OMX_U32 aPortIndex,
- OMX_HANDLETYPE apMarkTargetComponent,
- OMX_PTR apMarkData);
-
- // This constructor should only be used for array look-ups
- inline explicit TOutputPortBufferMarkInfo(OMX_U32 aPortIndex);
-
- static TBool Compare(const TOutputPortBufferMarkInfo& aOpbmi1,
- const TOutputPortBufferMarkInfo& aOpbmi2);
-
-public:
-
- OMX_U32 iPortIndex;
- OMX_HANDLETYPE ipMarkTargetComponent;
- OMX_PTR ipMarkData;
-
- };
-
-#include "omxilcallbackmanagerifimpl.inl"
-
-#endif // OMXILCALLBACKMANAGERIFIMPL_H
--- a/omxil/omxilcomponentcommon/src/common/omxilcallbackmanagerifimpl.inl Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
-@file
-@internalComponent
-*/
-
-
-inline
-XOmxILCallbackManagerIfImpl::TTunnelRegistrationInfo::TTunnelRegistrationInfo(
- OMX_U32 aLocalPortIndex,
- OMX_DIRTYPE aLocalPortDirection,
- OMX_HANDLETYPE aTunnelledComponentHandle,
- OMX_U32 aTunnelledPortIndex)
- :
- iLocalPortIndex(aLocalPortIndex),
- iLocalPortDirection(aLocalPortDirection),
- iTunnelledComponentHandle(aTunnelledComponentHandle),
- iTunnelledPortIndex(aTunnelledPortIndex)
- {
- }
-
-inline
-XOmxILCallbackManagerIfImpl::TBufferMarkPropagationInfo::TBufferMarkPropagationInfo(
- OMX_U32 aPortIndex,
- OMX_U32 aPropagationPortIndex)
- :
- iPortIndex(aPortIndex),
- iPropagationPortIndex(aPropagationPortIndex)
- {
- }
-
-// This constructor should only be used for array look-ups
-inline
-XOmxILCallbackManagerIfImpl::TBufferMarkPropagationInfo::TBufferMarkPropagationInfo(
- OMX_U32 aPortIndex)
- :
- iPortIndex(aPortIndex),
- iPropagationPortIndex(0)
- {
- }
-
-inline
-XOmxILCallbackManagerIfImpl::TOutputPortBufferMarkInfo::TOutputPortBufferMarkInfo(
- OMX_U32 aPortIndex,
- OMX_HANDLETYPE apMarkTargetComponent,
- OMX_PTR apMarkData)
- :
- iPortIndex(aPortIndex),
- ipMarkTargetComponent(apMarkTargetComponent),
- ipMarkData(apMarkData)
- {
- }
-
-// This constructor should only be used for array look-ups
-inline
-XOmxILCallbackManagerIfImpl::TOutputPortBufferMarkInfo::TOutputPortBufferMarkInfo(
- OMX_U32 aPortIndex)
- :
- iPortIndex(aPortIndex),
- ipMarkTargetComponent(0),
- ipMarkData(0)
- {
- }
--- a/omxil/omxilcomponentcommon/src/common/omxilcallbacknotificationif.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,130 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @internalComponent
-*/
-
-#ifndef OMXILCALLBACKNOTIFICATIONIF_H
-#define OMXILCALLBACKNOTIFICATIONIF_H
-
-#include <e32def.h>
-
-#include <openmax/il/khronos/v1_x/OMX_Core.h>
-
-
-/**
- Portion of CallBack Manager Interface used by Processing Function objects
- */
-class MOmxILCallbackNotificationIf
- {
-
-public:
-
- /**
- OpenMAX IL Error notification method that must be implemented by the
- Callback manager object.
-
- @param [in] aOmxError The error event.
-
- @return OMX_ERRORTYPE
- */
- virtual OMX_ERRORTYPE ErrorEventNotification(
- OMX_ERRORTYPE aOmxError) = 0;
-
- /**
- OpenMAX IL Buffer Done notification method that must be implemented by
- the Callback manager object.
-
- @param [in] apBufferHeader The header of the buffer processed.
-
- @param [in] aLocalPortIndex Index of the port that processed the buffer.
-
- @param [in] aLocalPortDirection The direction of the port.
-
- @return OMX_ERRORTYPE
- */
- virtual OMX_ERRORTYPE BufferDoneNotification(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_U32 aLocalPortIndex,
- OMX_DIRTYPE aLocalPortDirection) = 0;
-
- /**
- OpenMAX IL Clock Buffer Done notification method that must be
- implemented by the Callback manager object. If queueing is implemented,
- clock buffers will be returned with higher priority than normal buffers.
-
- @param [in] apBufferHeader The header of the clock buffer processed.
-
- @param [in] aLocalPortIndex Index of the port that processed the buffer.
-
- @param [in] aLocalPortDirection The direction of the port.
-
- @return OMX_ERRORTYPE
- */
- virtual OMX_ERRORTYPE ClockBufferDoneNotification(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_U32 aLocalPortIndex,
- OMX_DIRTYPE aLocalPortDirection) = 0;
-
- /**
- Generic OpenMAX IL Event method notification method that must be
- implemented by the Callback manager object.
-
- @param [in] aEvent The event to be notified.
-
- @param [in] aData1 An integer with additional event information.
-
- @param [in] aData2 An integer with additional event information.
-
- @param [in] aExtraInfo An optional text.
-
- @return OMX_ERRORTYPE
- */
- virtual OMX_ERRORTYPE EventNotification(
- OMX_EVENTTYPE aEvent,
- TUint32 aData1,
- TUint32 aData2,
- OMX_STRING aExtraInfo) = 0;
-
- /**
- Notification method that must be implemented by the Callback manager
- object. It is used by Processing Function objects to notify that some
- port setting has changed during the processing of a buffer.
-
- @param [in] aLocalPortIndex The index of the local port that needs to be
- notified of the change.
-
- @param [in] aPortSettingsIndex An implementation-specific identifier
- that the implementation associates to the setting(s) that need(s)
- updating in the port.
-
- @param [in] aPortSettings A buffer descriptor that contains an
- implementation-specific structure with the new setting(s) that need to
- be updated in the port.
-
- @return OMX_ERRORTYPE
- */
- virtual OMX_ERRORTYPE PortSettingsChangeNotification(
- OMX_U32 aLocalPortIndex,
- TUint aPortSettingsIndex,
- const TDesC8& aPortSettings) = 0;
-
- };
-
-#endif // OMXILCALLBACKNOTIFICATIONIF_H
-
-
--- a/omxil/omxilcomponentcommon/src/common/omxilclientclockport.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,225 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-#include "omxilclientclockport.h"
-#include "log.h"
-
-
-EXPORT_C COmxILClientClockPort* COmxILClientClockPort::NewL(const TOmxILCommonPortData& aCommonPortData,
- const RArray<OMX_OTHER_FORMATTYPE>& aSupportedOtherFormats)
- {
- COmxILClientClockPort* self = new(ELeave) COmxILClientClockPort(aCommonPortData);
- CleanupStack::PushL(self);
- self->COmxILOtherPort::ConstructL(aSupportedOtherFormats);
- CleanupStack::Pop();
- return self;
- }
-
-COmxILClientClockPort::COmxILClientClockPort(const TOmxILCommonPortData& aCommonPortData)
- : COmxILOtherPort(aCommonPortData),
- iSpecVersion(TOmxILSpecVersion())
- {
- DEBUG_PRINTF(_L8("COmxILClientClockPort::COmxILClientClockPort"));
- }
-
-OMX_ERRORTYPE COmxILClientClockPort::GetLocalOmxParamIndexes(RArray<TUint>& aIndexArray) const
- {
- DEBUG_PRINTF(_L8("COmxILClientClockPort::GetLocalOmxParamIndexes"));
- return COmxILOtherPort::GetLocalOmxParamIndexes(aIndexArray);
- }
-
-
-OMX_ERRORTYPE COmxILClientClockPort::GetLocalOmxConfigIndexes(RArray<TUint>& aIndexArray) const
- {
- DEBUG_PRINTF(_L8("COmxILClientClockPort::GetLocalOmxParamIndexes"));
- return COmxILOtherPort::GetLocalOmxConfigIndexes(aIndexArray);
- }
-
-
-OMX_ERRORTYPE COmxILClientClockPort::GetParameter(OMX_INDEXTYPE aParamIndex,
- TAny* apComponentParameterStructure) const
- {
- DEBUG_PRINTF(_L8("COmxILClientClockPort::GetParameter"));
- return COmxILOtherPort::GetParameter(aParamIndex, apComponentParameterStructure);
- }
-
-
-OMX_ERRORTYPE COmxILClientClockPort::SetParameter(OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure,
- TBool& aUpdateProcessingFunction)
- {
- DEBUG_PRINTF(_L8("COmxILClientClockPort::SetParameter"));
- return COmxILOtherPort::SetParameter(aParamIndex, apComponentParameterStructure, aUpdateProcessingFunction);
- }
-
-
-OMX_ERRORTYPE COmxILClientClockPort::SetFormatInPortDefinition(const OMX_PARAM_PORTDEFINITIONTYPE& /*aPortDefinition*/,
- TBool& /*aUpdateProcessingFunction*/)
- {
- DEBUG_PRINTF(_L8("COmxILClientClockPort::SetFormatInPortDefinition"));
- return OMX_ErrorNone;
- }
-
-
-TBool COmxILClientClockPort::IsTunnelledPortCompatible(const OMX_PARAM_PORTDEFINITIONTYPE& aPortDefinition) const
- {
- DEBUG_PRINTF(_L8("COmxILClientClockPort::IsTunnelledPortCompatible"));
- // Domain check
- if(aPortDefinition.eDomain != iParamPortDefinition.eDomain)
- {
- return EFalse;
- }
-
- // Format check
- if (aPortDefinition.format.other.eFormat != iParamPortDefinition.format.other.eFormat)
- {
- return EFalse;
- }
-
- return ETrue;
- }
-
-
-EXPORT_C OMX_ERRORTYPE COmxILClientClockPort::GetMediaTime(OMX_TICKS& aMediaTime) const
- {
- DEBUG_PRINTF(_L8("COmxILClientClockPort::GetMediaTime"));
- return GetTime(aMediaTime, OMX_IndexConfigTimeCurrentMediaTime);
- }
-
-
-EXPORT_C OMX_ERRORTYPE COmxILClientClockPort::GetWallTime(OMX_TICKS& aWallTime) const
- {
- DEBUG_PRINTF(_L8("COmxILClientClockPort::GetWallTime"));
- return GetTime(aWallTime, OMX_IndexConfigTimeCurrentWallTime);
- }
-
-
-EXPORT_C OMX_ERRORTYPE COmxILClientClockPort::GetClockState(OMX_TIME_CONFIG_CLOCKSTATETYPE& aClockState) const
- {
- DEBUG_PRINTF(_L8("COmxILClientClockPort::GetClockState"));
-
- if (IsClockComponentAvailable())
- {
- aClockState.nSize = sizeof(OMX_TIME_CONFIG_CLOCKSTATETYPE);
- aClockState.nVersion = iSpecVersion;
- aClockState.eState = OMX_TIME_ClockStateMax;
- aClockState.nStartTime = 0;
- aClockState.nOffset = 0;
- aClockState.nWaitMask = 0;
- return OMX_GetConfig(iTunnelledComponent, OMX_IndexConfigTimeClockState, &aClockState);
- }
-
- return OMX_ErrorIncorrectStateOperation;
-
- }
-
-EXPORT_C OMX_ERRORTYPE COmxILClientClockPort::MediaTimeRequest(const OMX_PTR apPrivate,
- const OMX_TICKS aMediaTime,
- const OMX_TICKS aOffset) const
- {
- DEBUG_PRINTF(_L8("COmxILClientClockPort::MediaTimeRequest"));
- OMX_TIME_CONFIG_MEDIATIMEREQUESTTYPE timeInfo;
- timeInfo.nSize = sizeof(timeInfo);
- timeInfo.nVersion = iSpecVersion;
- timeInfo.nPortIndex = iTunnelledPort;
- timeInfo.pClientPrivate = apPrivate;
- timeInfo.nMediaTimestamp = aMediaTime;
- timeInfo.nOffset = aOffset;
-
- if (IsClockComponentAvailable())
- {
- return OMX_SetConfig(iTunnelledComponent, OMX_IndexConfigTimeMediaTimeRequest, &timeInfo);
- }
-
- return OMX_ErrorIncorrectStateOperation;
- }
-
-
-EXPORT_C OMX_ERRORTYPE COmxILClientClockPort::SetStartTime(const OMX_TICKS aStartTime) const
- {
- DEBUG_PRINTF(_L8("COmxILClientClockPort::SetStartTime"));
- return SetTime(aStartTime, OMX_IndexConfigTimeClientStartTime);
- }
-
-
-EXPORT_C OMX_ERRORTYPE COmxILClientClockPort::SetVideoReference(const OMX_TICKS aVideoRef) const
- {
- DEBUG_PRINTF(_L8("COmxILClientClockPort::SetVideoReference"));
- return SetTime(aVideoRef, OMX_IndexConfigTimeCurrentVideoReference);
- }
-
-
-EXPORT_C OMX_ERRORTYPE COmxILClientClockPort::SetAudioReference(const OMX_TICKS aAudioRef) const
- {
- DEBUG_PRINTF(_L8("COmxILClientClockPort::SetAudioReference"));
- return SetTime(aAudioRef, OMX_IndexConfigTimeCurrentAudioReference);
- }
-
-EXPORT_C OMX_BOOL COmxILClientClockPort::IsClockComponentAvailable() const
-{
- if (iTunnelledComponent != NULL && iParamPortDefinition.bEnabled)
- {
- return OMX_TRUE;
- }
-
- return OMX_FALSE;
-}
-
-OMX_ERRORTYPE COmxILClientClockPort::GetTime(OMX_TICKS& aWallTime, const OMX_INDEXTYPE aTimeIndex) const
- {
- DEBUG_PRINTF(_L8("COmxILClientClockPort::GetTime"));
- OMX_TIME_CONFIG_TIMESTAMPTYPE timeInfo;
- timeInfo.nSize = sizeof(timeInfo);
- timeInfo.nVersion = iSpecVersion;
- timeInfo.nPortIndex = iTunnelledPort;
-
- if (!IsClockComponentAvailable())
- {
- return OMX_ErrorIncorrectStateOperation;
- }
-
- OMX_ERRORTYPE error = OMX_GetConfig(iTunnelledComponent, aTimeIndex, &timeInfo);
-
- if (error == OMX_ErrorNone)
- {
- aWallTime = timeInfo.nTimestamp;
- }
-
- return error;
- }
-
-
-OMX_ERRORTYPE COmxILClientClockPort::SetTime(const OMX_TICKS aStartTime, const OMX_INDEXTYPE aTimeIndex) const
- {
- DEBUG_PRINTF(_L8("COmxILClientClockPort::SetTime"));
- OMX_TIME_CONFIG_TIMESTAMPTYPE timeInfo;
- timeInfo.nSize = sizeof(timeInfo);
- timeInfo.nVersion = iSpecVersion;
- timeInfo.nPortIndex = iTunnelledPort;
- timeInfo.nTimestamp = aStartTime;
-
- if (IsClockComponentAvailable())
- {
- return OMX_SetConfig(iTunnelledComponent, aTimeIndex, &timeInfo);
- }
-
- return OMX_ErrorIncorrectStateOperation;
- }
--- a/omxil/omxilcomponentcommon/src/common/omxilclientclockport.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-#ifndef OMXILCLIENTCLOCKPORT_H
-#define OMXILCLIENTCLOCKPORT_H
-
-#include "omxilotherport.h"
-#include "omxilclockcomponentcmdsif.h"
-
-NONSHARABLE_CLASS(COmxILClientClockPort) : public COmxILOtherPort, public MOmxILClockComponentCmdsIf
- {
-public:
- IMPORT_C static COmxILClientClockPort* NewL(const TOmxILCommonPortData& aCommonPortData,
- const RArray<OMX_OTHER_FORMATTYPE>& aSupportedOtherFormats);
-
- // From MOmxILClockComponentCmdsIf
- IMPORT_C OMX_ERRORTYPE GetMediaTime(OMX_TICKS& aMediaTime) const;
-
- // From MOmxILClockComponentCmdsIf
- IMPORT_C OMX_ERRORTYPE GetWallTime(OMX_TICKS& aWallTime) const;
-
- // From MOmxILClockComponentCmdsIf
- IMPORT_C OMX_ERRORTYPE GetClockState(OMX_TIME_CONFIG_CLOCKSTATETYPE& aClockState) const;
-
- // From MOmxILClockComponentCmdsIf
- IMPORT_C OMX_ERRORTYPE MediaTimeRequest(const OMX_PTR apPrivate, const OMX_TICKS aMediaTime, const OMX_TICKS aOffset) const;
-
- // From MOmxILClockComponentCmdsIf
- IMPORT_C OMX_ERRORTYPE SetStartTime(const OMX_TICKS aStartTime) const;
-
- // From MOmxILClockComponentCmdsIf
- IMPORT_C OMX_ERRORTYPE SetVideoReference(const OMX_TICKS aVideRef) const;
-
- // From MOmxILClockComponentCmdsIf
- IMPORT_C OMX_ERRORTYPE SetAudioReference(const OMX_TICKS aAudioRef) const;
-
- // From MOmxILClockComponentCmdsIf
- IMPORT_C OMX_BOOL IsClockComponentAvailable() const;
-
- // From COmxILPort
- OMX_ERRORTYPE GetLocalOmxParamIndexes(RArray<TUint>& aIndexArray) const;
-
- // From COmxILPort
- OMX_ERRORTYPE GetLocalOmxConfigIndexes(RArray<TUint>& aIndexArray) const;
-
- // From COmxILPort
- OMX_ERRORTYPE GetParameter(OMX_INDEXTYPE aParamIndex,
- TAny* apComponentParameterStructure) const;
-
- // From COmxILPort
- OMX_ERRORTYPE SetParameter(OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure,
- TBool& aUpdateProcessingFunction);
-
-protected:
- // From COmxILPort
- OMX_ERRORTYPE SetFormatInPortDefinition(const OMX_PARAM_PORTDEFINITIONTYPE& aPortDefinition,
- TBool& aUpdateProcessingFunction);
-
- // From COmxILPort
- TBool IsTunnelledPortCompatible(const OMX_PARAM_PORTDEFINITIONTYPE& aPortDefinition) const;
-
-private:
-
- COmxILClientClockPort(const TOmxILCommonPortData& aCommonPortData);
-
- OMX_ERRORTYPE GetTime(OMX_TICKS& aTime, const OMX_INDEXTYPE aTimeIndex) const;
-
- OMX_ERRORTYPE SetTime(const OMX_TICKS aTime, const OMX_INDEXTYPE aTimeIndex) const;
-
- const OMX_VERSIONTYPE iSpecVersion;
- };
-
-#endif // COMXILCLIENTCLOCKPORT_H
--- a/omxil/omxilcomponentcommon/src/common/omxilclockcomponentcmdsif.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-#ifndef OMXILCLOCKCOMPONENTCMDSIF_H
-#define OMXILCLOCKCOMPONENTCMDSIF_H
-
-#include <openmax/il/khronos/v1_x/OMX_Component.h>
-
-class MOmxILClockComponentCmdsIf
- {
-public:
- /**
- This method is used to query for the current media clock time of the
- clock component.
-
- @param aMediaTime The clock component media time in OMX_TICKS.
- @return OMX_ERRORTYPE
- */
- virtual OMX_ERRORTYPE GetMediaTime(OMX_TICKS& aMediaTime) const = 0;
-
- /**
- This method is used to query for the current wall clock of the clock
- component.
-
- @param aWallTime The clock component wall clock in OMX_TICKS.
- @return OMX_ERRORTYPE
- */
- virtual OMX_ERRORTYPE GetWallTime(OMX_TICKS& aWallTime) const = 0;
-
-
- /**
- This method is used to query for the current state of the clock
- component.
-
- @param aClockState A OMX_TIME_CONFIG_CLOCKSTATETYPE structure.
-
- @return OMX_ERRORTYPE
- */
- virtual OMX_ERRORTYPE GetClockState(OMX_TIME_CONFIG_CLOCKSTATETYPE& aClockState) const = 0;
-
- /**
- This method allows a client to request a particular timestamp
-
- @param apPrivate A pointer to any private data that the client wants to
- associate with the request.
- @param aMediaTime A timestamp, which is associated with some
- operation (e.g., the presentation of a frame) that
- the client shall execute at the time requested.
- @param aOffset Specifies the desired difference between the wall time
- when the timestamp actually occurs and the wall time
- when the request is to be fulfilled.
- @return OMX_ERRORTYPE
- */
- virtual OMX_ERRORTYPE MediaTimeRequest(const OMX_PTR apPrivate, const OMX_TICKS aMediaTime, const OMX_TICKS aOffset) const = 0;
-
- /**
- This method sends the start time to the clock component
-
- @param aStartTime The starting timestamp of the stream
- @return OMX_ERRORTYPE
- */
- virtual OMX_ERRORTYPE SetStartTime(const OMX_TICKS aStartTime) const = 0;
-
- /**
- This method updates the clock component's video reference clock.
-
- @param aVideoRef The media time of the video component.
- @return OMX_ERRORTYPE
- */
- virtual OMX_ERRORTYPE SetVideoReference(const OMX_TICKS aVideoRef) const = 0;
-
- /**
- This method updates the clock component's audio reference clock.
-
- @param aAudioRef The media time of the audio component.
- @return OMX_ERRORTYPE
- */
- virtual OMX_ERRORTYPE SetAudioReference(const OMX_TICKS aAudioRef) const = 0;
-
- /**
- This method checks the clock component availability
-
- @return TBool
- */
- virtual OMX_BOOL IsClockComponentAvailable() const = 0;
- };
-
-#endif // OMXILCLOCKCOMPONENTCMDSIF_H
-
--- a/omxil/omxilcomponentcommon/src/common/omxilcommand.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-#ifndef OMXILCOMMAND_H
-#define OMXILCOMMAND_H
-
-
-#include <openmax/il/khronos/v1_x/OMX_Core.h>
-
-class TOmxILCommand
- {
-
-public:
-
- OMX_COMMANDTYPE iCommandType;
- OMX_U32 iParam1;
- OMX_PTR ipCommandData;
-
- // Constructor
- inline TOmxILCommand(
- OMX_COMMANDTYPE aCommandType,
- OMX_U32 aParam1,
- OMX_PTR apCommandData);
-
- };
-
-
-inline
-TOmxILCommand::TOmxILCommand(
- OMX_COMMANDTYPE aCommandType,
- OMX_U32 aParam1,
- OMX_PTR apCommandData
- )
- :
- iCommandType(aCommandType),
- iParam1(aParam1),
- ipCommandData(apCommandData)
- {
- }
-
-#endif // OMXILCOMMAND_H
--- a/omxil/omxilcomponentcommon/src/common/omxilcomponent.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,395 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @internalComponent
-*/
-
-#include "log.h"
-#include "omxilcomponent.h"
-#include "omxilfsm.h"
-#include "omxilcallbackmanager.h"
-#include "omxilconfigmanager.h"
-
-
-EXPORT_C
-COmxILComponent::COmxILComponent()
- {
- DEBUG_PRINTF(_L8("COmxILComponent::COmxILComponent"));
-
- }
-
-
-EXPORT_C
-COmxILComponent::~COmxILComponent()
- {
- DEBUG_PRINTF2(_L8("COmxILComponent::~COmxILComponent : Handle[%X]"), ipHandle);
- iComponentName.Close();
- }
-
-
-EXPORT_C void
-COmxILComponent::InitComponentL()
- {
- DEBUG_PRINTF2(_L8("COmxILComponent::InitComponent : Handle[%X]"), ipHandle);
-
- __ASSERT_ALWAYS(ipHandle && ipFsm && ipConfigManager, User::Invariant());
-
- char componentNamebuffer[OMX_MAX_STRINGNAME_SIZE];
- OMX_VERSIONTYPE componentVersion;
- OMX_VERSIONTYPE specVersion;
- OMX_UUIDTYPE componentUid;
-
- ipConfigManager->GetComponentVersion(componentNamebuffer,
- &componentVersion,
- &specVersion,
- &componentUid);
- TBuf8<128> componentNameBuf8;
- componentNameBuf8 = const_cast<const TUint8*>(reinterpret_cast<TUint8*>(componentNamebuffer));
- iComponentName.CreateL(componentNameBuf8, componentNameBuf8.Length() + 1);
- iComponentName.PtrZ();
- DEBUG_PRINTF2(_L8("COmxILComponent::InitComponent : [%S]"), &iComponentName);
-
- // Fill in the component handle
- ipHandle->nVersion = componentVersion;
- // The FSM will take care of all the API calls
- ipHandle->pComponentPrivate = ipFsm;
- ipHandle->GetComponentVersion = COmxILComponent::GetComponentVersion;
- ipHandle->SendCommand = COmxILComponent::SendCommand;
- ipHandle->GetParameter = COmxILComponent::GetParameter;
- ipHandle->SetParameter = COmxILComponent::SetParameter;
- ipHandle->GetConfig = COmxILComponent::GetConfig;
- ipHandle->SetConfig = COmxILComponent::SetConfig;
- ipHandle->GetExtensionIndex = COmxILComponent::GetExtensionIndex;
- ipHandle->GetState = COmxILComponent::GetState;
- ipHandle->ComponentTunnelRequest = COmxILComponent::ComponentTunnelRequest;
- ipHandle->UseBuffer = COmxILComponent::UseBuffer;
- ipHandle->AllocateBuffer = COmxILComponent::AllocateBuffer;
- ipHandle->FreeBuffer = COmxILComponent::FreeBuffer;
- ipHandle->EmptyThisBuffer = COmxILComponent::EmptyThisBuffer;
- ipHandle->FillThisBuffer = COmxILComponent::FillThisBuffer;
- ipHandle->SetCallbacks = COmxILComponent::SetCallbacks;
- ipHandle->ComponentDeInit = COmxILComponent::ComponentDeInit;
- ipHandle->UseEGLImage = COmxILComponent::UseEGLImage;
- ipHandle->ComponentRoleEnum = COmxILComponent::ComponentRoleEnum;
-
- OMX_ERRORTYPE omxRetValue =
- ipCallbackManager->RegisterComponentHandle(ipHandle);
- if (OMX_ErrorNone != omxRetValue)
- {
- if (OMX_ErrorInsufficientResources == omxRetValue)
- {
- User::Leave(KErrNoMemory);
- }
- User::Leave(KErrGeneral);
- }
-
- // Let's init the FSM...
- ipFsm->InitFsm();
-
- }
-
-OMX_ERRORTYPE
-COmxILComponent::GetComponentVersion(
- OMX_HANDLETYPE aComponent,
- OMX_STRING aComponentName,
- OMX_VERSIONTYPE* apComponentVersion,
- OMX_VERSIONTYPE* apSpecVersion,
- OMX_UUIDTYPE* apComponentUUID)
- {
- DEBUG_PRINTF2(_L8("COmxILComponent::GetComponentVersion : Handle[%X]"), aComponent);
- OMX_ERRORTYPE omxError;
- omxError = (static_cast<COmxILFsm*>
- ((static_cast<OMX_COMPONENTTYPE*>(aComponent))->pComponentPrivate))->
- GetComponentVersion(aComponentName, apComponentVersion,
- apSpecVersion, apComponentUUID);
- return omxError;
- }
-
-OMX_ERRORTYPE
-COmxILComponent::SendCommand(
- OMX_HANDLETYPE aComponent,
- OMX_COMMANDTYPE aCmd,
- OMX_U32 aParam1,
- OMX_PTR aCmdData)
- {
- DEBUG_PRINTF2(_L8("COmxILComponent::SendCommand : Handle[%X]"), aComponent);
- OMX_ERRORTYPE omxError;
- omxError = (static_cast<COmxILFsm*>
- ((static_cast<OMX_COMPONENTTYPE*>(aComponent))->pComponentPrivate))->
- SendCommand(aCmd ,aParam1, aCmdData);
-
- return omxError;
- }
-
-OMX_ERRORTYPE
-COmxILComponent::GetParameter(
- OMX_HANDLETYPE aComponent,
- OMX_INDEXTYPE aParamIndex,
- OMX_PTR aComponentParameterStructure)
- {
- DEBUG_PRINTF3(_L8("COmxILComponent::GetParameter : Handle[%X]; ParamIndex[0x%X]"), aComponent, aParamIndex);
-
- OMX_ERRORTYPE omxError;
- omxError = (static_cast<COmxILFsm*>
- ((static_cast<OMX_COMPONENTTYPE*>(aComponent))->pComponentPrivate))->
- GetParameter(aParamIndex, aComponentParameterStructure);
-
- return omxError;
- }
-
-OMX_ERRORTYPE
-COmxILComponent::SetParameter(
- OMX_HANDLETYPE aComponent,
- OMX_INDEXTYPE aIndex,
- OMX_PTR aComponentParameterStructure)
- {
- DEBUG_PRINTF3(_L8("COmxILComponent::SetParameter : Handle[%X]; ParamIndex[0x%X]"), aComponent, aIndex);
-
- OMX_ERRORTYPE omxError;
- omxError = (static_cast<COmxILFsm*>
- ((static_cast<OMX_COMPONENTTYPE*>(aComponent))->pComponentPrivate))->
- SetParameter(aIndex,
- const_cast<const TAny*>(aComponentParameterStructure));
-
- return omxError;
- }
-
-OMX_ERRORTYPE
-COmxILComponent::GetConfig(
- OMX_HANDLETYPE aComponent,
- OMX_INDEXTYPE aIndex,
- OMX_PTR aComponentParameterStructure)
- {
- DEBUG_PRINTF3(_L8("COmxILComponent::GetConfig : Handle[%X]; ConfigIndex[0x%X]"), aComponent, aIndex);
- OMX_ERRORTYPE omxError;
- omxError = (static_cast<COmxILFsm*>
- ((static_cast<OMX_COMPONENTTYPE*>(aComponent))->pComponentPrivate))->
- GetConfig(aIndex, aComponentParameterStructure);
- return omxError;
- }
-
-OMX_ERRORTYPE
-COmxILComponent::SetConfig(
- OMX_HANDLETYPE aComponent,
- OMX_INDEXTYPE aIndex,
- OMX_PTR aComponentConfigStructure)
- {
- DEBUG_PRINTF3(_L8("COmxILComponent::SetConfig : Handle[%X]; ConfigIndex[0x%X]"), aComponent, aIndex);
- OMX_ERRORTYPE omxError;
- omxError = (static_cast<COmxILFsm*>
- ((static_cast<OMX_COMPONENTTYPE*>(aComponent))->pComponentPrivate))->
- SetConfig(aIndex, const_cast<const TAny*>(aComponentConfigStructure));
- return omxError;
- }
-
-OMX_ERRORTYPE
-COmxILComponent::GetExtensionIndex(
- OMX_HANDLETYPE aComponent,
- OMX_STRING aParameterName,
- OMX_INDEXTYPE* aIndexType)
- {
- DEBUG_PRINTF2(_L8("COmxILComponent::GetExtensionIndex : Handle[%X]"), aComponent);
- OMX_ERRORTYPE omxError;
- omxError = (static_cast<COmxILFsm*>
- ((static_cast<OMX_COMPONENTTYPE*>(aComponent))->pComponentPrivate))->
- GetExtensionIndex(aParameterName, aIndexType);
- return omxError;
- }
-
-OMX_ERRORTYPE
-COmxILComponent::GetState(
- OMX_HANDLETYPE aComponent,
- OMX_STATETYPE* aState)
- {
- DEBUG_PRINTF2(_L8("COmxILComponent::GetState : Handle[%X]"), aComponent);
- OMX_ERRORTYPE omxError;
- omxError = (static_cast<COmxILFsm*>
- ((static_cast<OMX_COMPONENTTYPE*>(aComponent))->pComponentPrivate))->
- GetState(aState);
- return omxError;
- }
-
-OMX_ERRORTYPE
-COmxILComponent::ComponentTunnelRequest(
- OMX_HANDLETYPE aComponent,
- OMX_U32 aPort,
- OMX_HANDLETYPE aTunneledComp,
- OMX_U32 aTunneledPort,
- OMX_TUNNELSETUPTYPE* aTunnelSetup)
- {
- DEBUG_PRINTF2(_L8("COmxILComponent::ComponentTunnelRequest : Handle[%X]"), aComponent);
- OMX_ERRORTYPE omxError;
- omxError = (static_cast<COmxILFsm*>
- ((static_cast<OMX_COMPONENTTYPE*>(aComponent))->pComponentPrivate))->
- ComponentTunnelRequest(aPort, aTunneledComp,
- aTunneledPort, aTunnelSetup);
- return omxError;
- }
-
-OMX_ERRORTYPE
-COmxILComponent::UseBuffer(
- OMX_HANDLETYPE aComponent,
- OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aPortIndex,
- OMX_PTR apAppPrivate,
- OMX_U32 aSizeBytes,
- OMX_U8* aBuffer)
- {
- DEBUG_PRINTF2(_L8("COmxILComponent::UseBuffer : Handle[%X]"), aComponent);
- OMX_ERRORTYPE omxError;
- omxError = (static_cast<COmxILFsm*>
- ((static_cast<OMX_COMPONENTTYPE*>(aComponent))->pComponentPrivate))->
- UseBuffer(appBufferHdr, aPortIndex, apAppPrivate, aSizeBytes, aBuffer);
- return omxError;
- }
-
-OMX_ERRORTYPE
-COmxILComponent::AllocateBuffer(
- OMX_HANDLETYPE aComponent,
- OMX_BUFFERHEADERTYPE** apBuffer,
- OMX_U32 aPortIndex,
- OMX_PTR aAppData,
- OMX_U32 aSizeBytes)
- {
- DEBUG_PRINTF2(_L8("COmxILComponent::AllocateBuffer : Handle[%X]"), aComponent);
- OMX_ERRORTYPE omxError;
- omxError = (static_cast<COmxILFsm*>
- ((static_cast<OMX_COMPONENTTYPE*>(aComponent))->pComponentPrivate))->
- AllocateBuffer(apBuffer, aPortIndex, aAppData, aSizeBytes);
- return omxError;
- }
-
-OMX_ERRORTYPE
-COmxILComponent::FreeBuffer(
- OMX_HANDLETYPE aComponent,
- OMX_U32 aPortIndex,
- OMX_BUFFERHEADERTYPE* aBuffer)
- {
- DEBUG_PRINTF2(_L8("COmxILComponent::FreeBuffer : Handle[%X]"), aComponent);
- OMX_ERRORTYPE omxError;
- omxError = (static_cast<COmxILFsm*>
- ((static_cast<OMX_COMPONENTTYPE*>(aComponent))->pComponentPrivate))->
- FreeBuffer(aPortIndex, aBuffer);
- return omxError;
- }
-
-OMX_ERRORTYPE
-COmxILComponent::EmptyThisBuffer(
- OMX_HANDLETYPE aComponent,
- OMX_BUFFERHEADERTYPE* aBuffer)
- {
- DEBUG_PRINTF2(_L8("COmxILComponent::EmptyThisBuffer : Handle[%X]"), aComponent);
-#ifdef _OMXIL_COMMON_BUFFER_TRACING_ON
- RDebug::Print(_L("COmxILComponent::EmptyThisBuffer component=0x%08X header=0x%08X port=%d flags=0x%X filledLen=%d timeStamp=%Ld"),
- aComponent, aBuffer, aBuffer->nInputPortIndex, aBuffer->nFlags, aBuffer->nFilledLen, aBuffer->nTimeStamp);
-#endif
- OMX_ERRORTYPE omxError;
- omxError = (static_cast<COmxILFsm*>
- ((static_cast<OMX_COMPONENTTYPE*>(aComponent))->pComponentPrivate))->
- EmptyThisBuffer(aBuffer);
-
- return omxError;
- }
-
-OMX_ERRORTYPE
-COmxILComponent::FillThisBuffer(
- OMX_HANDLETYPE aComponent,
- OMX_BUFFERHEADERTYPE* aBuffer)
- {
- DEBUG_PRINTF2(_L8("COmxILComponent::FillThisBuffer : Handle[%X]"), aComponent);
-#ifdef _OMXIL_COMMON_BUFFER_TRACING_ON
- RDebug::Print(_L("COmxILComponent::FillThisBuffer component=0x%08X header=0x%08X port=%d"), aComponent, aBuffer, aBuffer->nOutputPortIndex);
-#endif
-
- OMX_ERRORTYPE omxError;
- omxError = (static_cast<COmxILFsm*>
- ((static_cast<OMX_COMPONENTTYPE*>(aComponent))->pComponentPrivate))->
- FillThisBuffer(aBuffer);
-
- return omxError;
- }
-
-OMX_ERRORTYPE
-COmxILComponent::SetCallbacks(
- OMX_HANDLETYPE aComponent,
- OMX_CALLBACKTYPE* aCallbacks,
- OMX_PTR aAppData)
- {
- DEBUG_PRINTF2(_L8("COmxILComponent::SetCallbacks : Handle[%X]"), aComponent);
- OMX_ERRORTYPE omxError;
- omxError = (static_cast<COmxILFsm*>
- ((static_cast<OMX_COMPONENTTYPE*>(aComponent))->pComponentPrivate))->
- SetCallbacks(const_cast<const OMX_CALLBACKTYPE*>(aCallbacks), aAppData);
- return omxError;
- }
-
-OMX_ERRORTYPE
-COmxILComponent::ComponentDeInit(
- OMX_HANDLETYPE aComponent)
- {
- DEBUG_PRINTF2(_L8("COmxILComponent::ComponentDeInit : Handle[%X]"), aComponent);
- delete (static_cast<COmxILComponent*>(
- (static_cast<COmxILFsm*>(
- (static_cast<OMX_COMPONENTTYPE*>(aComponent))->
- pComponentPrivate))->GetComponent()));
- return OMX_ErrorNone;
- }
-
-OMX_ERRORTYPE
-COmxILComponent::UseEGLImage(
- OMX_HANDLETYPE aComponent,
- OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aPortIndex,
- OMX_PTR aAppPrivate,
- void* eglImage)
- {
- DEBUG_PRINTF2(_L8("COmxILComponent::UseEGLImage : Handle[%X]"), aComponent);
- OMX_ERRORTYPE omxError;
- omxError = (static_cast<COmxILFsm*>
- ((static_cast<OMX_COMPONENTTYPE*>(aComponent))->pComponentPrivate))->
- UseEGLImage(appBufferHdr, aPortIndex, aAppPrivate, eglImage);
- return omxError;
- }
-
-OMX_ERRORTYPE
-COmxILComponent::ComponentRoleEnum(
- OMX_HANDLETYPE aComponent,
- OMX_U8* aRole,
- OMX_U32 aIndex)
- {
- DEBUG_PRINTF2(_L8("COmxILComponent::ComponentRoleEnum : Handle[%X]"), aComponent);
- OMX_ERRORTYPE omxError;
- omxError = (static_cast<COmxILFsm*>
- ((static_cast<OMX_COMPONENTTYPE*>(aComponent))->pComponentPrivate))->
- ComponentRoleEnum(aRole, aIndex);
- return omxError;
- }
-
-/*static*/ EXPORT_C OMX_ERRORTYPE COmxILComponent::SymbianErrorToGetHandleError(TInt aSymbianError)
- {
- switch(aSymbianError)
- {
- case KErrNone:
- return OMX_ErrorNone;
- case KErrNoMemory:
- return OMX_ErrorInsufficientResources;
- case KErrArgument:
- return OMX_ErrorBadParameter;
- };
-
- return OMX_ErrorUndefined;
- }
--- a/omxil/omxilcomponentcommon/src/common/omxilcomponent.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,165 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-#ifndef OMXILCOMPONENT_H
-#define OMXILCOMPONENT_H
-
-#include <e32base.h>
-#include <openmax/il/khronos/v1_x/OMX_Component.h>
-
-
-// forward declarations
-class COmxILFsm;
-class COmxILConfigManager;
-class MOmxILCallbackManagerIf;
-class COmxILPortManager;
-class COmxILProcessingFunction;
-
-
-class COmxILComponent : public CBase
- {
-
-public:
-
- IMPORT_C virtual ~COmxILComponent();
-
- static OMX_ERRORTYPE GetComponentVersion(
- OMX_HANDLETYPE aComponent,
- OMX_STRING aComponentName,
- OMX_VERSIONTYPE* apComponentVersion,
- OMX_VERSIONTYPE* apSpecVersion,
- OMX_UUIDTYPE* apComponentUUID);
-
- static OMX_ERRORTYPE SendCommand(
- OMX_HANDLETYPE aComponent,
- OMX_COMMANDTYPE aCmd,
- OMX_U32 aParam1,
- OMX_PTR aCmdData);
-
- static OMX_ERRORTYPE GetParameter(
- OMX_HANDLETYPE aComponent,
- OMX_INDEXTYPE aParamIndex,
- OMX_PTR aComponentParameterStructure);
-
- static OMX_ERRORTYPE SetParameter(
- OMX_HANDLETYPE aComponent,
- OMX_INDEXTYPE aIndex,
- OMX_PTR aComponentParameterStructure);
-
- static OMX_ERRORTYPE GetConfig(
- OMX_HANDLETYPE aComponent,
- OMX_INDEXTYPE aIndex,
- OMX_PTR aComponentConfigStructure);
-
- static OMX_ERRORTYPE SetConfig(
- OMX_HANDLETYPE aComponent,
- OMX_INDEXTYPE aIndex,
- OMX_PTR aComponentConfigStructure);
-
- static OMX_ERRORTYPE GetExtensionIndex(
- OMX_HANDLETYPE aComponent,
- OMX_STRING aParameterName,
- OMX_INDEXTYPE* aIndexType);
-
- static OMX_ERRORTYPE GetState(
- OMX_HANDLETYPE aComponent,
- OMX_STATETYPE* aState);
-
- static OMX_ERRORTYPE ComponentTunnelRequest(
- OMX_HANDLETYPE aComp,
- OMX_U32 aPort,
- OMX_HANDLETYPE aTunneledComp,
- OMX_U32 aTunneledPort,
- OMX_TUNNELSETUPTYPE* aTunnelSetup);
-
- static OMX_ERRORTYPE UseBuffer(
- OMX_HANDLETYPE aComponent,
- OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aPortIndex,
- OMX_PTR apAppPrivate,
- OMX_U32 aSizeBytes,
- OMX_U8* aBuffer);
-
- static OMX_ERRORTYPE AllocateBuffer(
- OMX_HANDLETYPE aComponent,
- OMX_BUFFERHEADERTYPE** apBuffer,
- OMX_U32 aPortIndex,
- OMX_PTR aAppData,
- OMX_U32 aSizeBytes);
-
- static OMX_ERRORTYPE FreeBuffer(
- OMX_HANDLETYPE aComponent,
- OMX_U32 aPortIndex,
- OMX_BUFFERHEADERTYPE* aBuffer);
-
- static OMX_ERRORTYPE EmptyThisBuffer(
- OMX_HANDLETYPE aComponent,
- OMX_BUFFERHEADERTYPE* aBuffer);
-
- static OMX_ERRORTYPE FillThisBuffer(
- OMX_HANDLETYPE aComponent,
- OMX_BUFFERHEADERTYPE* aBuffer);
-
- static OMX_ERRORTYPE SetCallbacks(
- OMX_HANDLETYPE aComponent,
- OMX_CALLBACKTYPE* aCallbacks,
- OMX_PTR aAppData);
-
- static OMX_ERRORTYPE ComponentDeInit(
- OMX_HANDLETYPE aComponent);
-
- static OMX_ERRORTYPE UseEGLImage(
- OMX_HANDLETYPE aComponent,
- OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aPortIndex,
- OMX_PTR aAppPrivate,
- void* eglImage);
-
- static OMX_ERRORTYPE ComponentRoleEnum(
- OMX_HANDLETYPE aComponent,
- OMX_U8* aRole,
- OMX_U32 aIndex);
-
- IMPORT_C static OMX_ERRORTYPE SymbianErrorToGetHandleError(TInt aSymbianError);
-
-protected:
-
- IMPORT_C COmxILComponent();
-
- IMPORT_C void InitComponentL();
-
-protected:
-
- RBuf8 iComponentName;
-
- OMX_COMPONENTTYPE* ipHandle;
- OMX_PTR ipAppData;
- OMX_CALLBACKTYPE* ipCallbacks;
-
- COmxILFsm* ipFsm;
- COmxILConfigManager* ipConfigManager;
- MOmxILCallbackManagerIf* ipCallbackManager;
- COmxILPortManager* ipPortManager;
- COmxILProcessingFunction* ipProcessingFunction;
-
- };
-
-#endif // OMXILCOMPONENT_H
--- a/omxil/omxilcomponentcommon/src/common/omxilcomponent.hrh Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-#ifndef OMXILCOMPONENT_HRH
-#define OMXILCOMPONENT_HRH
-
-#define KUidSymbianOmxILComponentCommonDll 0x10283498
-
-#endif // OMXILCOMPONENT_HRH
-
--- a/omxil/omxilcomponentcommon/src/common/omxilconfigmanager.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,553 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-#include <e32cmn.h>
-#include <openmax/il/khronos/v1_x/OMX_Core.h>
-
-#include "log.h"
-#include "omxilconfigmanager.h"
-#include "omxilportmanager.h"
-#include "omxilspecversion.h"
-#include "omxilutil.h"
-
-
-// NOTE: OMX_UUIDTYPE[128] is defined in OMX_Types.h
-#define KMAX_UUIDTYPE_SIZE 128
-
-EXPORT_C COmxILConfigManager*
-COmxILConfigManager::NewL(
- COmxILPortManager& aPortManager,
- const TDesC8& aComponentName,
- const OMX_VERSIONTYPE& aComponentVersion,
- const RPointerArray<TDesC8>& aComponentRoleList)
- {
- DEBUG_PRINTF(_L8("COmxILConfigManager::NewL"));
- __ASSERT_DEBUG(aComponentName.Length() && aComponentRoleList.Count(),
- User::Panic(KOmxILConfigManagerPanicCategory, 1));
-
- COmxILConfigManager* self = new (ELeave)COmxILConfigManager(aPortManager);
- CleanupStack::PushL(self);
- self->ConstructL(aComponentName,
- aComponentVersion,
- aComponentRoleList);
- CleanupStack::Pop(self);
- return self;
-
- }
-
-EXPORT_C void
-COmxILConfigManager::ConstructL(const TDesC8& aComponentName,
- const OMX_VERSIONTYPE& aComponentVersion,
- const RPointerArray<TDesC8>& aComponentRoleList)
- {
- DEBUG_PRINTF(_L8("COmxILConfigManager::ConstructL"));
-
- iComponentName.CreateL(aComponentName, OMX_MAX_STRINGNAME_SIZE);
- iComponentName.PtrZ();
- iComponentVersion.s = aComponentVersion.s;
-
- // Note that the first role in the list of roles becomes the default role
- // assumed by the component
-
- const TUint rolesCount = aComponentRoleList.Count();
- for (TUint i=0; i<rolesCount; ++i)
- {
- iComponentRoleList.AppendL(aComponentRoleList[i]->AllocLC());
- CleanupStack::Pop();
- }
-
-
- InsertParamIndexL(OMX_IndexParamDisableResourceConcealment);
- InsertParamIndexL(OMX_IndexParamSuspensionPolicy);
- InsertParamIndexL(OMX_IndexParamStandardComponentRole);
- InsertParamIndexL(OMX_IndexParamPriorityMgmt);
- InsertConfigIndexL(OMX_IndexConfigPriorityMgmt);
-
- }
-
-EXPORT_C
-COmxILConfigManager::COmxILConfigManager(COmxILPortManager& aPortManager)
- :
- iPortManager(aPortManager),
- iComponentName(),
- iComponentRoleList(),
- iCurrentRoleIndex(0)
-
- {
- DEBUG_PRINTF(_L8("COmxILConfigManager::COmxILConfigManager"));
-
- iParamDisableResourceConcealment.nSize = sizeof(OMX_RESOURCECONCEALMENTTYPE);
- iParamDisableResourceConcealment.nVersion = TOmxILSpecVersion();
- iParamDisableResourceConcealment.bResourceConcealmentForbidden = OMX_TRUE;
-
- iParamSuspensionPolicy.nSize = sizeof(OMX_PARAM_SUSPENSIONPOLICYTYPE);
- iParamSuspensionPolicy.nVersion = TOmxILSpecVersion();
- iParamSuspensionPolicy.ePolicy = OMX_SuspensionDisabled;
-
- iConfigPriorityMgmt.nSize = sizeof(OMX_PRIORITYMGMTTYPE);
- iConfigPriorityMgmt.nVersion = TOmxILSpecVersion();
- iConfigPriorityMgmt.nGroupPriority = 0;
- iConfigPriorityMgmt.nGroupID = 0;
-
- }
-
-EXPORT_C
-COmxILConfigManager::~COmxILConfigManager()
- {
- DEBUG_PRINTF(_L8("COmxILConfigManager::~COmxILConfigManager"));
-
- iComponentName.Close();
- iComponentRoleList.ResetAndDestroy();
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILConfigManager::GetComponentVersion(OMX_STRING aComponentName,
- OMX_VERSIONTYPE* apComponentVersion,
- OMX_VERSIONTYPE* apSpecVersion,
- OMX_UUIDTYPE* apComponentUUID) const
- {
- DEBUG_PRINTF(_L8("COmxILConfigManager::GetComponentVersion"));
-
- TPtr8 name(reinterpret_cast<TUint8*>(aComponentName),
- OMX_MAX_STRINGNAME_SIZE);
- name.Copy(iComponentName);
- name.PtrZ();
-
- (*apComponentVersion) = iComponentVersion;
- (*apSpecVersion) = TOmxILSpecVersion();
-
- // Generate a component uuid
- TUint32 uid = reinterpret_cast<TUint32>(this);
- TPtr8 uidPtr(reinterpret_cast<TUint8*>(*apComponentUUID),
- KMAX_UUIDTYPE_SIZE);
- uidPtr = TPtr8(reinterpret_cast<TUint8*>(uid), sizeof(uid));
-
- return OMX_ErrorNone;
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILConfigManager::GetParameter(OMX_INDEXTYPE aParamIndex,
- TAny* apComponentParameterStructure) const
- {
- DEBUG_PRINTF(_L8("COmxILConfigManager::GetParameter"));
-
- TInt index = FindParamIndex(aParamIndex);
- if (KErrNotFound == index)
- {
- return OMX_ErrorUnsupportedIndex;
- }
-
- OMX_ERRORTYPE omxRetValue = OMX_ErrorNone;
- switch(aParamIndex)
- {
- case OMX_IndexParamStandardComponentRole:
- {
- if (OMX_ErrorNone != (omxRetValue =
- TOmxILUtil::CheckOmxStructSizeAndVersion(
- apComponentParameterStructure,
- sizeof(OMX_PARAM_COMPONENTROLETYPE))))
- {
- return omxRetValue;
- }
-
- OMX_PARAM_COMPONENTROLETYPE* pComponentRole
- = static_cast<OMX_PARAM_COMPONENTROLETYPE*>(
- apComponentParameterStructure);
-
- // Here, the role returned must be the role that this component is
- // currently assuming
- TPtr8 role(reinterpret_cast<TUint8*>(pComponentRole->cRole),
- OMX_MAX_STRINGNAME_SIZE);
-
- role = *(iComponentRoleList[iCurrentRoleIndex]);
- role.PtrZ();
-
- }
- break;
-
- case OMX_IndexParamDisableResourceConcealment:
- {
- if (OMX_ErrorNone != (omxRetValue =
- TOmxILUtil::CheckOmxStructSizeAndVersion(
- apComponentParameterStructure,
- sizeof(OMX_RESOURCECONCEALMENTTYPE))))
- {
- return omxRetValue;
- }
-
- OMX_RESOURCECONCEALMENTTYPE* pResConceal
- = static_cast<OMX_RESOURCECONCEALMENTTYPE*>(
- apComponentParameterStructure);
-
- *pResConceal = iParamDisableResourceConcealment;
-
- }
- break;
- case OMX_IndexParamSuspensionPolicy:
- {
- if (OMX_ErrorNone != (omxRetValue =
- TOmxILUtil::CheckOmxStructSizeAndVersion(
- apComponentParameterStructure,
- sizeof(OMX_PARAM_SUSPENSIONPOLICYTYPE))))
- {
- return omxRetValue;
- }
-
- OMX_PARAM_SUSPENSIONPOLICYTYPE* pSuspensionPolicy
- = static_cast<OMX_PARAM_SUSPENSIONPOLICYTYPE*>(
- apComponentParameterStructure);
-
- *pSuspensionPolicy = iParamSuspensionPolicy;
-
- }
- break;
-
- case OMX_IndexParamPriorityMgmt:
- {
- if (OMX_ErrorNone != (omxRetValue =
- TOmxILUtil::CheckOmxStructSizeAndVersion(
- apComponentParameterStructure,
- sizeof(OMX_PRIORITYMGMTTYPE))))
- {
- return omxRetValue;
- }
-
- OMX_PRIORITYMGMTTYPE* pPriorityMgmt
- = static_cast<OMX_PRIORITYMGMTTYPE*>(
- apComponentParameterStructure);
-
- *pPriorityMgmt = iConfigPriorityMgmt;
-
- }
- break;
-
- default:
- {
- __ASSERT_ALWAYS(EFalse,
- User::Panic(KOmxILConfigManagerPanicCategory, 1));
- }
- };
-
- return OMX_ErrorNone;
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILConfigManager::SetParameter(OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure,
- OMX_BOOL aInitTime /* = OMX_TRUE */)
- {
- DEBUG_PRINTF(_L8("COmxILConfigManager::SetParameter"));
-
- TInt index = FindParamIndex(aParamIndex);
- if (KErrNotFound == index)
- {
- return OMX_ErrorUnsupportedIndex;
- }
-
- OMX_ERRORTYPE omxRetValue = OMX_ErrorNone;
- switch(aParamIndex)
- {
- case OMX_IndexParamStandardComponentRole:
- {
- if (!aInitTime)
- {
- return OMX_ErrorIncorrectStateOperation;
- }
-
- if (OMX_ErrorNone != (omxRetValue =
- TOmxILUtil::CheckOmxStructSizeAndVersion(
- const_cast<OMX_PTR>(apComponentParameterStructure),
- sizeof(OMX_PARAM_COMPONENTROLETYPE))))
- {
- return omxRetValue;
- }
-
- const OMX_PARAM_COMPONENTROLETYPE* pComponentRole
- = static_cast<const OMX_PARAM_COMPONENTROLETYPE*>(
- apComponentParameterStructure);
-
- TPtrC8 roleToFindPtr(
- static_cast<const TUint8*>(pComponentRole->cRole));
-
- HBufC8* pRoleToFind = HBufC8::New(OMX_MAX_STRINGNAME_SIZE);
- if (!pRoleToFind)
- {
- return OMX_ErrorInsufficientResources;
- }
- *pRoleToFind = roleToFindPtr;
-
- TInt newRoleIndex = 0;
- if (KErrNotFound ==
- (newRoleIndex =
- iComponentRoleList.Find(pRoleToFind,
- TIdentityRelation<HBufC8>(
- &COmxILConfigManager::CompareRoles))))
- {
- delete pRoleToFind;
- return OMX_ErrorBadParameter;
- }
-
- if (*pRoleToFind != *(iComponentRoleList[iCurrentRoleIndex]))
- {
- // At this point, it is mandated that the component populates all
- // defaults according to the new role that has just been set by the
- // IL Client
- if (OMX_ErrorNone !=
- (omxRetValue =
- iPortManager.ComponentRoleIndication(newRoleIndex)))
- {
- delete pRoleToFind;
- return omxRetValue;
- }
-
- iCurrentRoleIndex = newRoleIndex;
-
- }
-
- delete pRoleToFind;
-
- }
- break;
-
- case OMX_IndexParamDisableResourceConcealment:
- {
- if (!aInitTime)
- {
- return OMX_ErrorIncorrectStateOperation;
- }
-
- if (OMX_ErrorNone != (omxRetValue =
- TOmxILUtil::CheckOmxStructSizeAndVersion(
- const_cast<OMX_PTR>(apComponentParameterStructure),
- sizeof(OMX_RESOURCECONCEALMENTTYPE))))
- {
- return omxRetValue;
- }
-
- const OMX_RESOURCECONCEALMENTTYPE* pResConceal
- = static_cast<const OMX_RESOURCECONCEALMENTTYPE*>(
- apComponentParameterStructure);
-
- iParamDisableResourceConcealment = *pResConceal;
-
- }
- break;
-
- case OMX_IndexParamSuspensionPolicy:
- {
- if (!aInitTime)
- {
- return OMX_ErrorIncorrectStateOperation;
- }
-
- if (OMX_ErrorNone != (omxRetValue =
- TOmxILUtil::CheckOmxStructSizeAndVersion(
- const_cast<OMX_PTR>(apComponentParameterStructure),
- sizeof(OMX_PARAM_SUSPENSIONPOLICYTYPE))))
- {
- return omxRetValue;
- }
-
- const OMX_PARAM_SUSPENSIONPOLICYTYPE* pSuspensionPolicy
- = static_cast<const OMX_PARAM_SUSPENSIONPOLICYTYPE*>(
- apComponentParameterStructure);
-
- // OMX_SuspensionEnabled is the last of the supported values as of
- // v1.1.1
- if (pSuspensionPolicy->ePolicy > OMX_SuspensionEnabled)
- {
- return OMX_ErrorBadParameter;
- }
-
- iParamSuspensionPolicy = *pSuspensionPolicy;
-
- }
- break;
-
- case OMX_IndexParamPriorityMgmt:
- {
- if (!aInitTime)
- {
- return OMX_ErrorIncorrectStateOperation;
- }
-
- if (OMX_ErrorNone != (omxRetValue =
- TOmxILUtil::CheckOmxStructSizeAndVersion(
- const_cast<OMX_PTR>(apComponentParameterStructure),
- sizeof(OMX_PRIORITYMGMTTYPE))))
- {
- return omxRetValue;
- }
-
-
- const OMX_PRIORITYMGMTTYPE* pPriorityMgmt
- = static_cast<const OMX_PRIORITYMGMTTYPE*>(
- apComponentParameterStructure);
-
- iConfigPriorityMgmt = *pPriorityMgmt;
-
- }
- break;
-
- default:
- {
- __ASSERT_ALWAYS(EFalse,
- User::Panic(KOmxILConfigManagerPanicCategory, 1));
- }
- };
-
- return OMX_ErrorNone;
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILConfigManager::GetConfig(OMX_INDEXTYPE aConfigIndex,
- TAny* apComponentConfigStructure) const
- {
- DEBUG_PRINTF(_L8("COmxILConfigManager::GetConfig"));
-
- TInt index = FindConfigIndex(aConfigIndex);
- if (KErrNotFound == index)
- {
- return OMX_ErrorUnsupportedIndex;
- }
-
- OMX_ERRORTYPE omxRetValue = OMX_ErrorNone;
- switch(aConfigIndex)
- {
- case OMX_IndexConfigPriorityMgmt:
- {
- if (OMX_ErrorNone != (omxRetValue =
- TOmxILUtil::CheckOmxStructSizeAndVersion(
- apComponentConfigStructure,
- sizeof(OMX_PRIORITYMGMTTYPE))))
- {
- return omxRetValue;
- }
-
- OMX_PRIORITYMGMTTYPE* pPriorityMgmt
- = static_cast<OMX_PRIORITYMGMTTYPE*>(
- apComponentConfigStructure);
-
- *pPriorityMgmt = iConfigPriorityMgmt;
-
- }
- break;
- default:
- {
- __ASSERT_ALWAYS(EFalse,
- User::Panic(KOmxILConfigManagerPanicCategory, 1));
- }
- };
-
- return OMX_ErrorNone;
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILConfigManager::SetConfig(OMX_INDEXTYPE aConfigIndex,
- const TAny* apComponentConfigStructure)
-
- {
- DEBUG_PRINTF(_L8("COmxILConfigManager::SetConfig"));
-
- TInt index = FindConfigIndex(aConfigIndex);
- if (KErrNotFound == index)
- {
- return OMX_ErrorUnsupportedIndex;
- }
-
- OMX_ERRORTYPE omxRetValue = OMX_ErrorNone;
- switch(aConfigIndex)
- {
- case OMX_IndexConfigPriorityMgmt:
- {
- if (OMX_ErrorNone !=
- (omxRetValue =
- TOmxILUtil::CheckOmxStructSizeAndVersion(
- const_cast<OMX_PTR>(apComponentConfigStructure),
- sizeof(OMX_PRIORITYMGMTTYPE))))
- {
- return omxRetValue;
- }
-
- const OMX_PRIORITYMGMTTYPE* pPriorityMgmt
- = static_cast<const OMX_PRIORITYMGMTTYPE*>(
- apComponentConfigStructure);
-
- iConfigPriorityMgmt = *pPriorityMgmt;
-
- }
- break;
- default:
- {
- __ASSERT_ALWAYS(EFalse,
- User::Panic(KOmxILConfigManagerPanicCategory, 1));
- }
- };
-
- return OMX_ErrorNone;
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILConfigManager::GetExtensionIndex(
- OMX_STRING /*aParameterName*/,
- OMX_INDEXTYPE* /*apIndexType*/) const
- {
- DEBUG_PRINTF(_L8("COmxILConfigManager::GetExtensionIndex"));
-
- // No custom index here for now...
- return OMX_ErrorUnsupportedIndex;
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILConfigManager::ComponentRoleEnum(OMX_U8* aRole,
- OMX_U32 aIndex) const
- {
- DEBUG_PRINTF(_L8("COmxILConfigManager::ComponentRoleEnum"));
-
- // TWC:OpenmaxIL requires error code OMX_ErrorNoMore to be returned when no more roles
- if (aIndex >= iComponentRoleList.Count())
- {
- return OMX_ErrorNoMore;
- }
-
- HBufC8* pRole = iComponentRoleList[aIndex];
-
- TPtr8 role(reinterpret_cast<TUint8*>(aRole),
- OMX_MAX_STRINGNAME_SIZE);
- role = *pRole;
- role.PtrZ();
-
- return OMX_ErrorNone;
-
- }
-
-TBool
-COmxILConfigManager::CompareRoles(
- const HBufC8& aRole1, const HBufC8& aRole2)
- {
- return (aRole1 == aRole2);
- }
--- a/omxil/omxilcomponentcommon/src/common/omxilconfigmanager.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,138 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-#ifndef OMXILCONFIGMANAGER_H
-#define OMXILCONFIGMANAGER_H
-
-#include <e32base.h>
-#include <openmax/il/khronos/v1_x/OMX_Core.h>
-#include <openmax/il/khronos/v1_x/OMX_Component.h>
-#include <openmax/il/khronos/v1_x/OMX_Types.h>
-
-#include "omxilindexmanager.h"
-
-/**
- Config Manager Panic category
-*/
-_LIT(KOmxILConfigManagerPanicCategory, "OmxILConfigManager");
-
-
-// Forward declarations
-class COmxILPortManager;
-
-
-/**
- This class is a placeholder for those OpenMAX IL parameters and configs that
- apply to the component as a whole and not to an specific port in the
- component. The design of this class should be revisited as the OpenMAX IL
- resource management logic is added. For now resource management-related
- params/configs values can only be set or queried but the associated
- functionality is missing.
- */
-class COmxILConfigManager : public COmxILIndexManager
- {
-
-public:
-
- IMPORT_C static COmxILConfigManager* NewL(
- COmxILPortManager& aPortManager,
- const TDesC8& aComponentName,
- const OMX_VERSIONTYPE& aComponentVersion,
- const RPointerArray<TDesC8>& aComponentRoleList);
-
- IMPORT_C ~COmxILConfigManager();
-
- IMPORT_C virtual OMX_ERRORTYPE GetComponentVersion(
- OMX_STRING aComponentName,
- OMX_VERSIONTYPE* apComponentVersion,
- OMX_VERSIONTYPE* apSpecVersion,
- OMX_UUIDTYPE* apComponentUUID) const;
-
- IMPORT_C virtual OMX_ERRORTYPE GetParameter(
- OMX_INDEXTYPE aParamIndex,
- TAny* apComponentParameterStructure) const;
-
- IMPORT_C virtual OMX_ERRORTYPE SetParameter(
- OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure,
- OMX_BOOL aInitTime = OMX_TRUE);
-
- IMPORT_C virtual OMX_ERRORTYPE GetConfig(
- OMX_INDEXTYPE aConfigIndex,
- TAny* apComponentConfigStructure) const;
-
- IMPORT_C virtual OMX_ERRORTYPE SetConfig(
- OMX_INDEXTYPE aConfigIndex,
- const TAny* apComponentConfigStructure);
-
- IMPORT_C virtual OMX_ERRORTYPE GetExtensionIndex(
- OMX_STRING aParameterName,
- OMX_INDEXTYPE* apIndexType) const;
-
- IMPORT_C OMX_ERRORTYPE ComponentRoleEnum(
- OMX_U8* aRole,
- OMX_U32 aIndex) const;
-
-protected:
-
- IMPORT_C explicit COmxILConfigManager(COmxILPortManager& aPortManager);
-
- IMPORT_C void ConstructL(const TDesC8& aComponentName,
- const OMX_VERSIONTYPE& aComponentVersion,
- const RPointerArray<TDesC8>& aComponentRoleList);
-
-
- static TBool CompareRoles(const HBufC8& aRole1, const HBufC8& aRole2);
-
-
-protected:
-
- // Reference to the component's port manager
- COmxILPortManager& iPortManager;
-
- // Reference to the component's port manager
- RBuf8 iComponentName;
-
- // The list of OpenMAX IL roles supported by the component
- RPointerArray<HBufC8> iComponentRoleList;
-
- // The current OpenMAX IL role
- TUint iCurrentRoleIndex;
-
- // The current version of this component (this is different to the spec
- // version)
- OMX_VERSIONTYPE iComponentVersion;
-
- // OpenMAX IL resource concealment structure (only set/get, resource
- // concealment logic not implemented)
- OMX_RESOURCECONCEALMENTTYPE iParamDisableResourceConcealment;
-
- // OpenMAX IL component suspension policy structure (only set/get,
- // component suspension logic not implemented)
- OMX_PARAM_SUSPENSIONPOLICYTYPE iParamSuspensionPolicy;
-
- // OpenMAX IL component priority structure (only set/get, component
- // priority logic not implemented)
- OMX_PRIORITYMGMTTYPE iConfigPriorityMgmt;
-
- };
-
-#endif // OMXILCONFIGMANAGER_H
--- a/omxil/omxilcomponentcommon/src/common/omxilfsm.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,783 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-#include "log.h"
-#include "omxilfsm.h"
-#include "omxilstate.h"
-#include "omxilportmanager.h"
-#include "omxilconfigmanager.h"
-#include "omxilcallbackmanager.h"
-#include "omxilprocessingfunction.h"
-
-#define RETURN_OMX_ERROR_AND_EVENT_IF_NEEDED(_a) \
- { \
- const OMX_ERRORTYPE _err = _a; \
- if (OMX_ErrorNone == _err) return _err; \
- else return SendOmxErrorEventIfNeeded(_err); \
- }
-
-
-const TInt COmxILFsm::KMaxMsgQueueEntries;
-
-EXPORT_C COmxILFsm*
-COmxILFsm::NewL(COmxILComponent& aComponent,
- COmxILProcessingFunction& aProcFunction,
- COmxILPortManager& aPortManager,
- COmxILConfigManager& aConfigManager,
- MOmxILCallbackManagerIf& aCallbacks)
- {
- DEBUG_PRINTF(_L8("COmxILFsm::NewLC"));
-
- COmxILFsm* self = new (ELeave) COmxILFsm(aComponent,
- aProcFunction,
- aPortManager,
- aConfigManager,
- aCallbacks);
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return (self);
- }
-
-void
-COmxILFsm::ConstructL()
- {
- DEBUG_PRINTF(_L8("COmxILFsm::ConstructL"));
-
- // Create the FSM states
-
- // Init the array
- for (TUint i=0; i < EStateMax; ++i)
- {
- iStates.AppendL(NULL);
- }
-
- // Add the standard states...
- iStates[EStateInvalid] = new (ELeave)COmxILStateInvalid;
- iStates[EStateLoaded] = new (ELeave)COmxILStateLoaded;
- iStates[EStateIdle] = new (ELeave)COmxILStateIdle;
- iStates[EStateExecuting] = new (ELeave)COmxILStateExecuting;
- iStates[EStatePause] = new (ELeave)COmxILStatePause;
- iStates[EStateWaitForResources] = new (ELeave)COmxILStateWaitForResources;
-
- // Now add the substates
- iStates[ESubStateLoadedToIdle] = new (ELeave)COmxILStateLoadedToIdle;
- iStates[ESubStateIdleToLoaded] = new (ELeave)COmxILStateIdleToLoaded;
- iStates[ESubStateExecutingToIdle] = new (ELeave)COmxILStateExecutingToIdle;
- iStates[ESubStatePauseToIdle] = new (ELeave)COmxILStatePauseToIdle;
-
- iCallbacks.SetPortManager(iPortManager);
- iCallbacks.SetFsm(*this);
-
- }
-
-COmxILFsm::COmxILFsm(COmxILComponent& aComponent,
- COmxILProcessingFunction& aProcFunction,
- COmxILPortManager& aPortManager,
- COmxILConfigManager& aConfigManager,
- MOmxILCallbackManagerIf& aCallbacks)
- :
- iComponent(aComponent),
- iProcFunction(aProcFunction),
- iPortManager(aPortManager),
- iConfigManager(aConfigManager),
- iCallbacks(aCallbacks),
- iStates(),
- iCurrentStateIndex(EStateMax),
- ipCurrentState(0)
- {
- DEBUG_PRINTF(_L8("COmxILFsm::COmxILFsm"));
- }
-
-COmxILFsm::~COmxILFsm()
- {
- DEBUG_PRINTF(_L8("COmxILFsm::~COmxILFsm"));
-
- iCurrentStateIndex = EStateMax;
- ipCurrentState = 0;
- iStates.ResetAndDestroy();
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::InitFsm()
- {
- DEBUG_PRINTF(_L8("COmxILFsm::InitFsm"));
-
- // Let's get ready to handle API calls...
- iCurrentStateIndex = EStateLoaded;
- ipCurrentState = iStates[iCurrentStateIndex];
- return OMX_ErrorNone;
-
- }
-
-COmxILComponent*
-COmxILFsm::GetComponent() const
- {
- return &iComponent;
- }
-
-OMX_ERRORTYPE
-COmxILFsm::PopulateBuffer(OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aPortIndex,
- OMX_PTR apAppPrivate,
- OMX_U32 aSizeBytes,
- OMX_U8* apBuffer)
- {
- DEBUG_PRINTF(_L8("COmxILFsm::PopulateBuffer"));
-
- TBool portPopulationCompleted = EFalse;
- OMX_ERRORTYPE omxRetValue =
- ipCurrentState->PopulateBuffer(*this,
- appBufferHdr,
- aPortIndex,
- apAppPrivate,
- aSizeBytes,
- apBuffer,
- portPopulationCompleted);
-
- if (OMX_ErrorNone == omxRetValue)
- {
- if (portPopulationCompleted &&
- ESubStateLoadedToIdle == iCurrentStateIndex &&
- iPortManager.AllPortsPopulated())
- {
- // Complete here the transition to OMX_StateIdle
- omxRetValue = FsmTransition(EStateIdle);
- if (OMX_ErrorNone == omxRetValue)
- {
- // Notify the IL client that port population has
- // completed sucessfully
- omxRetValue = iCallbacks.TransitionCompleteNotification(
- OMX_StateIdle);
-
- }
- }
- }
-
- if (OMX_ErrorNone == omxRetValue ||
- OMX_ErrorInsufficientResources == omxRetValue)
- {
- // OMX_ErrorInsufficientResources is allowed in OMX_EmptyThisBuffer and
- // OMX_FillThisBuffer
- return omxRetValue;
- }
- else
- {
- return SendOmxErrorEventIfNeeded(omxRetValue);
- }
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::FsmTransition(TStateIndex aNewState)
- {
- DEBUG_PRINTF2(_L8("COmxILFsm::FsmTransition : %d"), aNewState);
-
- __ASSERT_ALWAYS(aNewState < EStateMax,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- if (aNewState != iCurrentStateIndex)
- {
- // We notify the processing function of all the state transitions, even
- // if they are not to a final OpenMAX IL state.
- OMX_ERRORTYPE omxRetValue;
- if (OMX_ErrorNone !=
- (omxRetValue =
- iProcFunction.StateTransitionIndication(aNewState)))
- {
- // No need of propagating further error codes if the component is
- // transitioning to OMX_StateInvalid or if the PF itself is
- // invalidating the component...
- if (EStateInvalid != aNewState &&
- OMX_ErrorInvalidState != omxRetValue)
- {
- return omxRetValue;
- }
- }
-
- iCurrentStateIndex = aNewState;
- ipCurrentState = iStates[iCurrentStateIndex];
-
- }
-
- return OMX_ErrorNone;
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::FsmTransition(TUint32 aNewState)
- {
-
- return FsmTransition(static_cast<TStateIndex>(aNewState));
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::GetComponentVersion(OMX_STRING aComponentName,
- OMX_VERSIONTYPE* apComponentVersion,
- OMX_VERSIONTYPE* apSpecVersion,
- OMX_UUIDTYPE* apComponentUUID) const
- {
- DEBUG_PRINTF(_L8("COmxILFsm::GetComponentVersion"));
-
- __ASSERT_DEBUG(iCurrentStateIndex != EStateMax,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- // This api should not be allowed in OMX_StateInvalid
- if (EStateInvalid == iCurrentStateIndex)
- {
- return SendOmxErrorEventIfNeeded(OMX_ErrorInvalidState);
- }
-
- if (!aComponentName ||
- !apComponentVersion ||
- !apSpecVersion ||
- !apComponentUUID)
- {
- return OMX_ErrorBadParameter;
- }
-
- // This API call is independent of the current state. Its handled by the
- // the config manager
-
- RETURN_OMX_ERROR_AND_EVENT_IF_NEEDED(
- iConfigManager.GetComponentVersion(
- aComponentName,
- apComponentVersion,
- apSpecVersion,
- apComponentUUID));
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::SendCommand(OMX_COMMANDTYPE aCommand,
- TUint32 anParam1,
- TAny* apCmdData)
- {
- DEBUG_PRINTF3(_L8("COmxILFsm::SendCommand : command [%d] Param1 [%d]"), aCommand, anParam1);
-
- __ASSERT_DEBUG(iCurrentStateIndex != EStateMax,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- // Do some very minor error checking here to try to save some time...
- if (OMX_CommandStateSet == aCommand &&
- anParam1 > OMX_StateWaitForResources)
- {
- return OMX_ErrorBadParameter;
- }
-
- TOmxILCommand command(aCommand, anParam1, apCmdData);
- OMX_ERRORTYPE sendCommandError;
- switch (aCommand)
- {
- case OMX_CommandStateSet:
- {
- sendCommandError = ipCurrentState->CommandStateSet(*this, command);
- }
- break;
- case OMX_CommandFlush:
- {
- sendCommandError = ipCurrentState->CommandFlush(*this, command);
- }
- break;
- case OMX_CommandPortDisable:
- {
- sendCommandError = ipCurrentState->CommandPortDisable(*this, command);
- }
- break;
- case OMX_CommandPortEnable:
- {
- sendCommandError = ipCurrentState->CommandPortEnable(*this, command);
- }
- break;
- case OMX_CommandMarkBuffer:
- {
- sendCommandError = ipCurrentState->CommandMarkBuffer(*this, command);
- }
- break;
- default:
- {
- // This is an invalid command type
- return OMX_ErrorBadParameter;
- }
- };
-
- if (OMX_ErrorNone == sendCommandError ||
- OMX_ErrorInsufficientResources == sendCommandError)
- {
- // OMX_ErrorInsufficientResources is allowed in OMX_SendCommand
- return sendCommandError;
- }
- else
- {
- return SendOmxErrorEventIfNeeded(sendCommandError);
- }
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::GetParameter(OMX_INDEXTYPE aParamIndex,
- TAny* apComponentParameterStructure) const
- {
- DEBUG_PRINTF(_L8("COmxILFsm::GetParameter"));
-
- __ASSERT_DEBUG(iCurrentStateIndex != EStateMax,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- if (!apComponentParameterStructure)
- {
- return OMX_ErrorBadParameter;
- }
-
- RETURN_OMX_ERROR_AND_EVENT_IF_NEEDED(
- ipCurrentState->GetParameter(*this, aParamIndex,
- apComponentParameterStructure));
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::SetParameter(OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure)
- {
- DEBUG_PRINTF(_L8("COmxILFsm::SetParameter"));
-
- __ASSERT_DEBUG(iCurrentStateIndex != EStateMax,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- if (!apComponentParameterStructure)
- {
- return OMX_ErrorBadParameter;
- }
-
- RETURN_OMX_ERROR_AND_EVENT_IF_NEEDED(
- ipCurrentState->SetParameter(*this, aParamIndex,
- apComponentParameterStructure));
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::GetConfig(OMX_INDEXTYPE aConfigIndex,
- TAny* apComponentConfigStructure) const
- {
- DEBUG_PRINTF(_L8("COmxILFsm::GetConfig"));
-
- __ASSERT_DEBUG(iCurrentStateIndex != EStateMax,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- if (!apComponentConfigStructure)
- {
- return OMX_ErrorBadParameter;
- }
-
- RETURN_OMX_ERROR_AND_EVENT_IF_NEEDED(
- ipCurrentState->GetConfig(*this,
- aConfigIndex,
- apComponentConfigStructure));
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::SetConfig(OMX_INDEXTYPE aIndex,
- const TAny* apComponentConfigStructure)
- {
- DEBUG_PRINTF(_L8("COmxILFsm::SetConfig"));
-
- __ASSERT_DEBUG(iCurrentStateIndex != EStateMax,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- if (!apComponentConfigStructure)
- {
- return OMX_ErrorBadParameter;
- }
-
- RETURN_OMX_ERROR_AND_EVENT_IF_NEEDED(
- ipCurrentState->SetConfig(*this, aIndex, apComponentConfigStructure));
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::GetExtensionIndex(
- OMX_STRING aParameterName,
- OMX_INDEXTYPE* apIndexType) const
- {
- DEBUG_PRINTF(_L8("COmxILFsm::GetExtensionIndex"));
-
- __ASSERT_DEBUG(iCurrentStateIndex != EStateMax,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- if (!apIndexType || !aParameterName)
- {
- return OMX_ErrorBadParameter;
- }
-
- RETURN_OMX_ERROR_AND_EVENT_IF_NEEDED(
- ipCurrentState->GetExtensionIndex(*this,
- aParameterName,
- apIndexType));
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::GetState(OMX_STATETYPE* apState) const
- {
- DEBUG_PRINTF(_L8("COmxILFsm::GetState"));
-
- __ASSERT_DEBUG(iCurrentStateIndex != EStateMax,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- if (!apState)
- {
- return OMX_ErrorBadParameter;
- }
-
- *apState = ipCurrentState->GetState();
-
- return OMX_ErrorNone;
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::ComponentTunnelRequest(OMX_U32 aPort,
- OMX_HANDLETYPE aTunneledComp,
- OMX_U32 aTunneledPort,
- OMX_TUNNELSETUPTYPE* apTunnelSetup)
- {
- DEBUG_PRINTF(_L8("COmxILFsm::ComponentTunnelRequest"));
-
- __ASSERT_DEBUG(iCurrentStateIndex != EStateMax,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- // Here, since NULL is a valid parameter for aTunneledComp, checking of
- // input parameters is completely done by the ports.
- RETURN_OMX_ERROR_AND_EVENT_IF_NEEDED(
- ipCurrentState->ComponentTunnelRequest(*this,
- aPort,
- aTunneledComp,
- aTunneledPort,
- apTunnelSetup));
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::UseBuffer(OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aPortIndex,
- OMX_PTR apAppPrivate,
- OMX_U32 aSizeBytes,
- OMX_U8* apBuffer)
- {
- DEBUG_PRINTF(_L8("COmxILFsm::UseBuffer"));
-
- __ASSERT_DEBUG(iCurrentStateIndex != EStateMax,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- if (!appBufferHdr || !aSizeBytes || !apBuffer)
- {
- return OMX_ErrorBadParameter;
- }
-
- return PopulateBuffer(appBufferHdr,
- aPortIndex,
- apAppPrivate,
- aSizeBytes,
- apBuffer);
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::AllocateBuffer(OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aPortIndex,
- OMX_PTR apAppPrivate,
- OMX_U32 aSizeBytes)
- {
- DEBUG_PRINTF(_L8("COmxILFsm::AllocateBuffer"));
-
- __ASSERT_DEBUG(iCurrentStateIndex != EStateMax,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- if (!appBufferHdr || !aSizeBytes)
- {
- return OMX_ErrorBadParameter;
- }
-
-
- return PopulateBuffer(appBufferHdr,
- aPortIndex,
- apAppPrivate,
- aSizeBytes,
- 0);
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::FreeBuffer(OMX_U32 aPortIndex,
- OMX_BUFFERHEADERTYPE* apBuffer)
- {
- DEBUG_PRINTF(_L8("COmxILFsm::FreeBuffer"));
-
- __ASSERT_DEBUG(iCurrentStateIndex != EStateMax,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- if (!apBuffer)
- {
- return OMX_ErrorBadParameter;
- }
-
- TBool portDepopulationCompleted = EFalse;
- OMX_ERRORTYPE omxRetValue =
- ipCurrentState->FreeBuffer(*this,
- aPortIndex,
- apBuffer,
- portDepopulationCompleted);
-
- if (OMX_ErrorNone == omxRetValue)
- {
- if (portDepopulationCompleted)
- {
- if (ESubStateIdleToLoaded == iCurrentStateIndex)
- {
- if (iPortManager.AllPortsDePopulated())
- {
- // Complete here the transition to OMX_StateLoaded
- omxRetValue = FsmTransition(EStateLoaded);
- if (OMX_ErrorNone == omxRetValue)
- {
- // Notify the IL client that port depopulation has
- // completed sucessfully
- omxRetValue =
- iCallbacks.TransitionCompleteNotification(
- OMX_StateLoaded);
- }
- }
- }
- }
- }
-
- if (OMX_ErrorNone == omxRetValue)
- {
- return OMX_ErrorNone;
- }
- else
- {
- return SendOmxErrorEventIfNeeded(omxRetValue);
- }
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::EmptyThisBuffer(OMX_BUFFERHEADERTYPE* apBuffer)
- {
- DEBUG_PRINTF2(_L8("COmxILFsm::EmptyThisBuffer : BUFFER [%X]"), apBuffer);
-
- __ASSERT_DEBUG(iCurrentStateIndex != EStateMax,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- if (!apBuffer)
- {
- return OMX_ErrorBadParameter;
- }
-
- RETURN_OMX_ERROR_AND_EVENT_IF_NEEDED(
- ipCurrentState->EmptyThisBuffer(*this, apBuffer));
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::FillThisBuffer(OMX_BUFFERHEADERTYPE* apBuffer)
- {
- DEBUG_PRINTF2(_L8("COmxILFsm::FillThisBuffer : BUFFER [%X]"), apBuffer);
-
- __ASSERT_DEBUG(iCurrentStateIndex != EStateMax,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- if (!apBuffer)
- {
- return OMX_ErrorBadParameter;
- }
-
- RETURN_OMX_ERROR_AND_EVENT_IF_NEEDED(
- ipCurrentState->FillThisBuffer(*this, apBuffer));
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::SetCallbacks(const OMX_CALLBACKTYPE* apCallbacks,
- const OMX_PTR apAppData)
- {
- DEBUG_PRINTF(_L8("COmxILFsm::SetCallbacks"));
-
- __ASSERT_DEBUG(iCurrentStateIndex != EStateMax,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- if (!apCallbacks)
- {
- return OMX_ErrorBadParameter;
- }
-
- // This api should only be allowed in OMX_StateLoaded
- if (EStateLoaded != iCurrentStateIndex)
- {
- return OMX_ErrorIncorrectStateOperation;
- }
-
- RETURN_OMX_ERROR_AND_EVENT_IF_NEEDED(
- iCallbacks.RegisterILClientCallbacks(apCallbacks, apAppData));
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::UseEGLImage(OMX_BUFFERHEADERTYPE** /*appBufferHdr*/,
- OMX_U32 /*aPortIndex*/,
- OMX_PTR /*aAppPrivate*/,
- void* /*eglImage*/)
- {
- DEBUG_PRINTF(_L8("COmxILFsm::UseEGLImage"));
-
- __ASSERT_DEBUG(iCurrentStateIndex != EStateMax,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- return OMX_ErrorNotImplemented;
- }
-
-OMX_ERRORTYPE
-COmxILFsm::ComponentRoleEnum(OMX_U8* aRole,
- OMX_U32 aIndex) const
- {
- DEBUG_PRINTF(_L8("COmxILFsm::ComponentRoleEnum"));
-
- __ASSERT_DEBUG(iCurrentStateIndex != EStateMax,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- // This api should not be allowed in OMX_StateInvalid
- if (EStateInvalid == iCurrentStateIndex)
- {
- return SendOmxErrorEventIfNeeded(OMX_ErrorInvalidState);
- }
-
- if (!aRole)
- {
- return OMX_ErrorBadParameter;
- }
-
- RETURN_OMX_ERROR_AND_EVENT_IF_NEEDED(
- iConfigManager.ComponentRoleEnum(aRole,
- aIndex));
-
- }
-
-/**
- This method is here to fullfill the following functionalities:
-
- -# It is used to make sure that the component error codes are returned to
- the IL Client in a way that conforms with Table 3-9 of the OpenMAX IL
- 1.1.1 spec. This table specifies which error codes must be sent with
- EventHandler. If an error code is to be sent via EventHandler, the API
- return code must be OMX_ErrorNone.
-
- -# This method is also used to invalidate the component whenever an internal
- component action returns OMX_ErrorInvalidState. For example, this is
- useful when code executed by a port or by the processing function cannot
- recover from an internal error. Returning OMX_ErrorInvalidState in that
- kind of situation will invalidate the component in
- SendOmxErrorEventIfNeeded and the event will be conveyed to the IL Client
- as mandated by the spec.
-
- @param aError An OpenMAX IL error code.
- */
-OMX_ERRORTYPE
-COmxILFsm::SendOmxErrorEventIfNeeded(OMX_ERRORTYPE aError)
- {
- DEBUG_PRINTF2(_L8("COmxILFsm::SendOmxErrorEventIfNeeded - aError = 0x%X"), aError);
-
- OMX_ERRORTYPE returnError = aError;
- switch(aError)
- {
- case OMX_ErrorInsufficientResources:
- {
- DEBUG_PRINTF(_L8("COmxILFsm::SendOmxErrorEventIfNeeded aError[OMX_ErrorInsufficientResources]"));
- iCallbacks.ErrorEventNotification(aError);
- }
- break;
- case OMX_ErrorInvalidState:
- {
- DEBUG_PRINTF(_L8("COmxILFsm::SendOmxErrorEventIfNeeded aError[OMX_ErrorInvalidState]"));
- iCallbacks.ErrorEventNotification(aError);
- if (EStateInvalid != iCurrentStateIndex)
- {
- returnError = OMX_ErrorNone;
- }
- }
- break;
- case OMX_ErrorUnderflow:
- case OMX_ErrorOverflow:
- case OMX_ErrorHardware:
- case OMX_ErrorStreamCorrupt:
- case OMX_ErrorResourcesLost:
- case OMX_ErrorSameState:
- case OMX_ErrorResourcesPreempted:
- case OMX_ErrorPortUnresponsiveDuringAllocation:
- case OMX_ErrorPortUnresponsiveDuringDeallocation:
- case OMX_ErrorPortUnresponsiveDuringStop:
- case OMX_ErrorIncorrectStateTransition:
- case OMX_ErrorPortUnpopulated:
- case OMX_ErrorDynamicResourcesUnavailable:
- case OMX_ErrorMbErrorsInFrame:
- case OMX_ErrorFormatNotDetected:
- {
- DEBUG_PRINTF2(_L8("COmxILFsm::SendOmxErrorEventIfNeeded aError[%X]"), aError);
- iCallbacks.ErrorEventNotification(aError);
- returnError = OMX_ErrorNone;
- }
- break;
- };
-
- if(OMX_ErrorInvalidState == aError &&
- EStateInvalid != iCurrentStateIndex)
- {
- // Invalidate this component. This instance of the component should be
- // destroyed by the IL Client after this. No need to check error code.
- FsmTransition(EStateInvalid);
- }
-
- return returnError;
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::SendOmxErrorEventIfNeeded(OMX_ERRORTYPE aError) const
- {
- DEBUG_PRINTF(_L8("COmxILFsm::SendOmxErrorEventIfNeeded"));
-
- return const_cast<COmxILFsm*>(this)->SendOmxErrorEventIfNeeded(aError);
-
- }
--- a/omxil/omxilcomponentcommon/src/common/omxilfsm.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,221 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-#ifndef OMXILFSM_H
-#define OMXILFSM_H
-
-
-#include <e32base.h>
-#include <openmax/il/khronos/v1_x/OMX_Core.h>
-#include <e32msgqueue.h>
-
-#include "omxilcommand.h"
-
-// forward declarations
-class COmxILPortManager;
-class COmxILConfigManager;
-class MOmxILCallbackManagerIf;
-class COmxILComponent;
-class COmxILProcessingFunction;
-
-/**
- FSM Panic category
-*/
-_LIT(KOmxILFsmPanicCategory, "OmxILFsm");
-
-/**
- FSM class that represents the main FSM context object of the State
- pattern. It delegates most events for processing to the current state
- object.
- */
-NONSHARABLE_CLASS(COmxILFsm) : public CBase
- {
-
-public:
-
- static const TInt KMaxMsgQueueEntries = 10;
-
- enum TStateIndex
- {
- EStateInvalid = OMX_StateInvalid,
- EStateLoaded = OMX_StateLoaded,
- EStateIdle = OMX_StateIdle,
- EStateExecuting = OMX_StateExecuting,
- EStatePause = OMX_StatePause,
- EStateWaitForResources = OMX_StateWaitForResources,
- ESubStateLoadedToIdle,
- ESubStateIdleToLoaded,
- ESubStateExecutingToIdle,
- ESubStatePauseToIdle,
- EStateMax
- };
-
-
-public:
-
- IMPORT_C static COmxILFsm* NewL(COmxILComponent& aComponent,
- COmxILProcessingFunction& aProcFunction,
- COmxILPortManager& aPortManager,
- COmxILConfigManager& aConfigManager,
- MOmxILCallbackManagerIf& aCallbacks);
-
- ~COmxILFsm();
-
- OMX_ERRORTYPE InitFsm();
-
- COmxILComponent* GetComponent() const;
-
- //
- // OpenMAX IL API calls
- //
-
- OMX_ERRORTYPE GetComponentVersion(OMX_STRING aComponentName,
- OMX_VERSIONTYPE* pComponentVersion,
- OMX_VERSIONTYPE* pSpecVersion,
- OMX_UUIDTYPE* pComponentUUID) const;
-
- OMX_ERRORTYPE SendCommand(OMX_COMMANDTYPE Cmd,
- TUint32 nParam1,
- TAny* apCmdData);
-
- OMX_ERRORTYPE GetParameter(OMX_INDEXTYPE aParamIndex,
- TAny* apComponentParameterStructure) const;
-
- OMX_ERRORTYPE SetParameter(OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure);
-
- OMX_ERRORTYPE GetConfig(OMX_INDEXTYPE aConfigIndex,
- TAny* apComponentConfigStructure) const;
-
- OMX_ERRORTYPE SetConfig(OMX_INDEXTYPE aConfigIndex,
- const TAny* apComponentConfigStructure);
-
- OMX_ERRORTYPE GetExtensionIndex(OMX_STRING aParameterName,
- OMX_INDEXTYPE* apIndexType) const;
-
- OMX_ERRORTYPE GetState(OMX_STATETYPE* apState) const;
-
- OMX_ERRORTYPE ComponentTunnelRequest(OMX_U32 aPort,
- OMX_HANDLETYPE aTunneledComp,
- OMX_U32 aTunneledPort,
- OMX_TUNNELSETUPTYPE* apTunnelSetup);
-
- OMX_ERRORTYPE UseBuffer(OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aPortIndex,
- OMX_PTR apAppPrivate,
- OMX_U32 aSizeBytes,
- OMX_U8* apBuffer);
-
- OMX_ERRORTYPE AllocateBuffer(OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aPortIndex,
- OMX_PTR apAppPrivate,
- OMX_U32 aSizeBytes);
-
- OMX_ERRORTYPE FreeBuffer(OMX_U32 aPortIndex,
- OMX_BUFFERHEADERTYPE* apBuffer);
-
- OMX_ERRORTYPE EmptyThisBuffer(OMX_BUFFERHEADERTYPE* apBuffer);
-
- OMX_ERRORTYPE FillThisBuffer(OMX_BUFFERHEADERTYPE* apBuffer);
-
- OMX_ERRORTYPE SetCallbacks(const OMX_CALLBACKTYPE* apCallbacks,
- const OMX_PTR apAppData);
-
- OMX_ERRORTYPE UseEGLImage(OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aPortIndex,
- OMX_PTR aAppPrivate,
- void* eglImage);
-
- OMX_ERRORTYPE ComponentRoleEnum(OMX_U8* aRole,
- OMX_U32 aIndex) const;
-
-private:
-
- // Declaration of nested private state classes
- class COmxILState;
- class COmxILStateInvalid;
- class COmxILStateLoaded;
- class COmxILStateLoadedToIdle;
- class COmxILStateWaitForResources;
- class COmxILStateIdle;
- class COmxILStateIdleToLoaded;
- class COmxILStateExecuting;
- class COmxILStateExecutingToIdle;
- class COmxILStatePause;
- class COmxILStatePauseToIdle;
- class MOmxILPauseOrExecutingToIdle;
-
- // Note that the following friends don't break COmxILFsm's interface as all
- // friends below are COmxILFsm's private nested classes and therefore they
- // are logically part of COmxILFsm implementation
- friend class COmxILState;
- friend class COmxILStateInvalid;
- friend class COmxILStateLoaded;
- friend class COmxILStateLoadedToIdle;
- friend class COmxILStateWaitForResources;
- friend class COmxILStateIdle;
- friend class COmxILStateIdleToLoaded;
- friend class COmxILStateExecuting;
- friend class COmxILStateExecutingToIdle;
- friend class COmxILStatePause;
- friend class COmxILStatePauseToIdle;
- friend class MOmxILPauseOrExecutingToIdle;
-
-private:
-
- COmxILFsm(COmxILComponent& aComponent,
- COmxILProcessingFunction& aProcFunction,
- COmxILPortManager& aPortManager,
- COmxILConfigManager& aConfigManager,
- MOmxILCallbackManagerIf& aCallbacks);
-
- void ConstructL();
-
- OMX_ERRORTYPE PopulateBuffer(OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aPortIndex,
- OMX_PTR apAppPrivate,
- OMX_U32 aSizeBytes,
- OMX_U8* apBuffer);
-
- OMX_ERRORTYPE FsmTransition(TStateIndex aNewState);
-
- OMX_ERRORTYPE FsmTransition(TUint32 aNewState);
-
- OMX_ERRORTYPE SendOmxErrorEventIfNeeded(OMX_ERRORTYPE aError) const;
-
- OMX_ERRORTYPE SendOmxErrorEventIfNeeded(OMX_ERRORTYPE aError);
-
-private:
-
- COmxILComponent& iComponent;
- COmxILProcessingFunction& iProcFunction;
- COmxILPortManager& iPortManager;
- COmxILConfigManager& iConfigManager;
- MOmxILCallbackManagerIf& iCallbacks;
-
- RPointerArray<COmxILState> iStates;
- TStateIndex iCurrentStateIndex;
- COmxILState* ipCurrentState;
-
- };
-
-
-#endif // OMXILFSM_H
--- a/omxil/omxilcomponentcommon/src/common/omxilimageport.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,210 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
- */
-
-#include "omxilimageport.h"
-#include "omxilutil.h"
-#include "log.h"
-
-EXPORT_C
-COmxILImagePort::COmxILImagePort(
- const TOmxILCommonPortData& aCommonPortData,
- const RArray<OMX_IMAGE_CODINGTYPE>& aSupportedImageFormats,
- const RArray<OMX_COLOR_FORMATTYPE>& aSupportedColorFormats)
-:COmxILPort(aCommonPortData),
-//[YYC]: bitwise copy is unsafe, there should be a protected ConstructL or alike for array deep copy
-iSupportedImageFormats(aSupportedImageFormats),
-iSupportedColorFormats(aSupportedColorFormats)
- {
- DEBUG_PRINTF(_L8("COmxILImagePort::COmxILImagePort"));
-
- TInt numImageFormats = iSupportedImageFormats.Count();
- TInt numColorFormats = iSupportedColorFormats.Count();
- iParamImagePortFormat.nSize = sizeof(OMX_IMAGE_PARAM_PORTFORMATTYPE);
- iParamImagePortFormat.nVersion = aCommonPortData.iOmxVersion;
- iParamImagePortFormat.nPortIndex = aCommonPortData.iPortIndex;
- iParamImagePortFormat.nIndex = numImageFormats ? numImageFormats - 1 : 0;
- iParamImagePortFormat.eCompressionFormat = numImageFormats ? iSupportedImageFormats[0] : OMX_IMAGE_CodingUnused;
- iParamImagePortFormat.eColorFormat = numColorFormats ? iSupportedColorFormats[0] : OMX_COLOR_FormatUnused;
- }
-
-EXPORT_C
-COmxILImagePort::~COmxILImagePort()
- {
- DEBUG_PRINTF(_L8("COmxILImagePort::~COmxILImagePort"));
- iSupportedImageFormats.Close();
- iSupportedColorFormats.Close();
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILImagePort::GetLocalOmxParamIndexes(RArray<TUint>& aIndexArray) const
- {
- DEBUG_PRINTF(_L8("COmxILImagePort::GetLocalOmxParamIndexes"));
-
- // Always collect local indexes from parent
- OMX_ERRORTYPE omxRetValue = COmxILPort::GetLocalOmxParamIndexes(aIndexArray);
-
- if (OMX_ErrorNone != omxRetValue)
- {
- return omxRetValue;
- }
-
- TInt err = aIndexArray.InsertInOrder(OMX_IndexParamImagePortFormat);
-
- // Note that index duplication is OK.
- if (KErrNone != err && KErrAlreadyExists != err)
- {
- return OMX_ErrorInsufficientResources;
- }
-
- return OMX_ErrorNone;
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILImagePort::GetLocalOmxConfigIndexes(RArray<TUint>& aIndexArray) const
- {
- DEBUG_PRINTF(_L8("COmxILImagePort::GetLocalOmxConfigIndexes"));
-
- // Always collect local indexes from parent
- return COmxILPort::GetLocalOmxConfigIndexes(aIndexArray);
-
- }
-
-EXPORT_C OMX_ERRORTYPE COmxILImagePort::GetParameter(OMX_INDEXTYPE aParamIndex, TAny* apComponentParameterStructure) const
- {
- DEBUG_PRINTF(_L8("COmxILImagePort::GetParameter"));
- OMX_ERRORTYPE omxRetValue = OMX_ErrorNone;
-
- switch(aParamIndex)
- {
- case OMX_IndexParamImagePortFormat:
- {
- if (OMX_ErrorNone != (omxRetValue =
- TOmxILUtil::CheckOmxStructSizeAndVersion(
- const_cast<OMX_PTR>(apComponentParameterStructure),
- sizeof(OMX_IMAGE_PARAM_PORTFORMATTYPE))))
- {
- return omxRetValue;
- }
-
- OMX_IMAGE_PARAM_PORTFORMATTYPE* imagePortDefinition = static_cast<OMX_IMAGE_PARAM_PORTFORMATTYPE*>(apComponentParameterStructure);
-
- if(OMX_IMAGE_CodingUnused == iParamImagePortFormat.eCompressionFormat)
- {
- if (imagePortDefinition->nIndex >= iSupportedColorFormats.Count())
- {
- return OMX_ErrorNoMore;
- }
- imagePortDefinition->eCompressionFormat = OMX_IMAGE_CodingUnused;
- imagePortDefinition->eColorFormat = iSupportedColorFormats[imagePortDefinition->nIndex];
- }
- else
- {
- if (imagePortDefinition->nIndex >= iSupportedImageFormats.Count())
- {
- return OMX_ErrorNoMore;
- }
- imagePortDefinition->eCompressionFormat = iSupportedImageFormats[imagePortDefinition->nIndex];
- }
- break;
- }
- default:
- {
- // Try the parent's indexes
- return COmxILPort::GetParameter(aParamIndex, apComponentParameterStructure);
- }
- };
-
- return OMX_ErrorNone;
- }
-
-EXPORT_C OMX_ERRORTYPE COmxILImagePort::SetParameter(OMX_INDEXTYPE aParamIndex, const TAny* apComponentParameterStructure, TBool& aUpdateProcessingFunction)
- {
- DEBUG_PRINTF(_L8("COmxILImagePort::SetParameter"));
- OMX_ERRORTYPE omxRetValue = OMX_ErrorNone;
-
- switch(aParamIndex)
- {
- case OMX_IndexParamImagePortFormat:
- {
- if (OMX_ErrorNone != (omxRetValue =
- TOmxILUtil::CheckOmxStructSizeAndVersion(
- const_cast<OMX_PTR>(apComponentParameterStructure),
- sizeof(OMX_IMAGE_PARAM_PORTFORMATTYPE))))
- {
- return omxRetValue;
- }
-
- const OMX_IMAGE_PARAM_PORTFORMATTYPE *componentParameterStructure = static_cast<const OMX_IMAGE_PARAM_PORTFORMATTYPE*>(apComponentParameterStructure);
-
- if(OMX_IMAGE_CodingUnused == componentParameterStructure->eCompressionFormat)
- {
- if(OMX_COLOR_FormatUnused == componentParameterStructure->eColorFormat)
- {
- // Both Compression Format and Color can not be Unused at the same time.
- return OMX_ErrorBadParameter;
- }
-
- if(iParamImagePortFormat.eColorFormat != componentParameterStructure->eColorFormat)
- {
- if(KErrNotFound == iSupportedColorFormats.Find(componentParameterStructure->eColorFormat))
- {
- return OMX_ErrorUnsupportedSetting;
- }
- else
- {
- iParamImagePortFormat.eColorFormat = componentParameterStructure->eColorFormat;
- }
- aUpdateProcessingFunction = ETrue;
- }
- }
- else
- {
- // Data is compressed. Change relevant variables.
- if (OMX_COLOR_FormatUnused != componentParameterStructure->eColorFormat)
- {
- // Both Compression Format and Color can not be Unused at the same time.
- return OMX_ErrorBadParameter;
- }
-
- if (iParamImagePortFormat.eCompressionFormat != componentParameterStructure->eCompressionFormat)
- {
- if(KErrNotFound == iSupportedImageFormats.Find(componentParameterStructure->eCompressionFormat))
- {
- return OMX_ErrorUnsupportedSetting;
- }
- else
- {
- iParamImagePortFormat.eCompressionFormat = componentParameterStructure->eCompressionFormat;
- aUpdateProcessingFunction = ETrue;
- }
- }
- }
- break;
- }
- default:
- {
- // Try the parent's indexes
- return COmxILPort::SetParameter(aParamIndex, apComponentParameterStructure, aUpdateProcessingFunction);
- }
- };
- return OMX_ErrorNone;
- }
--- a/omxil/omxilcomponentcommon/src/common/omxilimageport.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- * @file
- * @internalTechnology
- */
-
-#ifndef OMXILIMAGEPORT_H
-#define OMXILIMAGEPORT_H
-
-#include <e32base.h>
-
-#include <openmax/il/khronos/v1_x/OMX_Types.h>
-#include <openmax/il/khronos/v1_x/OMX_Core.h>
-#include <openmax/il/khronos/v1_x/OMX_Component.h>
-
-#include "omxilport.h"
-
-class COmxILImagePort : public COmxILPort
- {
-
-public:
-
- IMPORT_C ~COmxILImagePort();
-
- // From COmxILPort
- IMPORT_C OMX_ERRORTYPE GetLocalOmxParamIndexes(RArray<TUint>& aIndexArray) const = 0;
-
- // From COmxILPort
- IMPORT_C OMX_ERRORTYPE GetLocalOmxConfigIndexes(RArray<TUint>& aIndexArray) const = 0;
-
- // From COmxILPort
- IMPORT_C OMX_ERRORTYPE GetParameter(OMX_INDEXTYPE aParamIndex,
- TAny* apComponentParameterStructure) const = 0;
- // From COmxILPort
- IMPORT_C OMX_ERRORTYPE SetParameter(OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure,
- TBool& aUpdateProcessingFunction) = 0;
-
-protected:
-
- IMPORT_C COmxILImagePort(const TOmxILCommonPortData& aCommonPortData,
- const RArray<OMX_IMAGE_CODINGTYPE>& aSupportedImageFormats,
- const RArray<OMX_COLOR_FORMATTYPE>& aSupportedColorFormats);
-
- // From COmxILPort
- IMPORT_C OMX_ERRORTYPE SetFormatInPortDefinition(
- const OMX_PARAM_PORTDEFINITIONTYPE& aPortDefinition,
- TBool& aUpdateProcessingFunction) = 0;
-
- // From COmxILPort
- IMPORT_C TBool IsTunnelledPortCompatible(
- const OMX_PARAM_PORTDEFINITIONTYPE& aPortDefinition) const = 0;
-
-protected:
-
- RArray<OMX_IMAGE_CODINGTYPE> iSupportedImageFormats;
- RArray<OMX_COLOR_FORMATTYPE> iSupportedColorFormats;
- OMX_IMAGE_PARAM_PORTFORMATTYPE iParamImagePortFormat;
- };
-
-#endif // OMXILIMAGEPORT_H
--- a/omxil/omxilcomponentcommon/src/common/omxilincontextcallbackmanager.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,768 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-#include "log.h"
-#include "omxilincontextcallbackmanager.h"
-#include "omxilfsm.h"
-#include "omxilutil.h"
-
-EXPORT_C COmxILInContextCallbackManager*
-COmxILInContextCallbackManager::NewL(
- OMX_HANDLETYPE apComponentHandle,
- OMX_PTR apAppData,
- OMX_CALLBACKTYPE* apCallbacks)
- {
- DEBUG_PRINTF(_L8("COmxILInContextCallbackManager::NewL"));
- COmxILInContextCallbackManager* self = new (ELeave)COmxILInContextCallbackManager(
- apComponentHandle,
- apAppData,
- apCallbacks);
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-void
-COmxILInContextCallbackManager::ConstructL()
- {
- DEBUG_PRINTF(_L8("COmxILInContextCallbackManager::ConstructL"));
-
- User::LeaveIfError(iLock.CreateLocal());
-
- }
-
-COmxILInContextCallbackManager::COmxILInContextCallbackManager(OMX_HANDLETYPE apComponentHandle,
- OMX_PTR apAppData,
- OMX_CALLBACKTYPE* apCallbacks)
- :
- CBase(),
- XOmxILCallbackManagerIfImpl(
- static_cast<OMX_COMPONENTTYPE*>(apComponentHandle),
- apAppData,
- apCallbacks),
- iLock(),
- iPendingQueue(),
- iFlushPendingQueue(EFalse),
- iCurrentState(OMX_StateLoaded),
- iPreviousState(OMX_StateLoaded)
- {
- DEBUG_PRINTF(_L8("COmxILInContextCallbackManager::COmxILInContextCallbackManager"));
- }
-
-EXPORT_C
-COmxILInContextCallbackManager::~COmxILInContextCallbackManager()
- {
- DEBUG_PRINTF2(_L8("COmxILInContextCallbackManager::~COmxILInContextCallbackManager Pending Queue count [%d]"),
- iPendingQueue.Count());
-
- iLock.Close();
-
- iPendingQueue.Close();
-
- }
-
-void
-COmxILInContextCallbackManager::LockCallbackManager()
- {
- iLock.Wait();
- }
-
-void
-COmxILInContextCallbackManager::UnlockCallbackManager()
- {
- iLock.Signal();
- }
-
-EXPORT_C void
-COmxILInContextCallbackManager::SetPortManager(COmxILPortManager& apPortManager)
- {
- LockCallbackManager();
- DoSetPortManager(apPortManager);
- UnlockCallbackManager();
- }
-
-EXPORT_C void
-COmxILInContextCallbackManager::SetFsm(COmxILFsm& apFsm)
- {
- LockCallbackManager();
- DoSetFsm(apFsm);
- UnlockCallbackManager();
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILInContextCallbackManager::RegisterComponentHandle(OMX_HANDLETYPE aComponentHandle)
- {
- DEBUG_PRINTF(_L8("COmxILInContextCallbackManager::RegisterComponentHandle"));
- LockCallbackManager();
- OMX_ERRORTYPE omxError = DoRegisterComponentHandle(aComponentHandle);
- UnlockCallbackManager();
- return omxError;
- }
-
-/**
- The IL Client callback registration is handled in this implementation
- asynchronously. Note that this implementation assumes that the IL Client
- will update the callbacks information once all expected callbacks from this
- component have already been received and therefore, the callback change will
- be safe leading to no race condition at the IL Client side.
-
- @param apCallbacks The IL Client callback structure.
-
- @param apAppData Pointer to an application provided value so that the
- application can have a component specific context when receiving
- the callback.
-
- @return OMX_ERRORTYPE
- */
-EXPORT_C OMX_ERRORTYPE
-COmxILInContextCallbackManager::RegisterILClientCallbacks(const OMX_CALLBACKTYPE* apCallbacks,
- const OMX_PTR apAppData)
- {
- DEBUG_PRINTF(_L8("COmxILInContextCallbackManager::RegisterILClientCallbacks"));
-
- LockCallbackManager();
- OMX_ERRORTYPE omxError = DoRegisterILClientCallbacks(apCallbacks, apAppData);
- UnlockCallbackManager();
- return omxError;
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILInContextCallbackManager::RegisterTunnelCallback(
- OMX_U32 aLocalPortIndex,
- OMX_DIRTYPE aLocalPortDirection,
- OMX_HANDLETYPE aTunnelledComponentHandle,
- OMX_U32 aTunnelledPortIndex)
- {
- DEBUG_PRINTF2(_L8("COmxILInContextCallbackManager::RegisterTunnelCallback : aTunnelledComponentHandle [%x]"), aTunnelledComponentHandle);
-
- LockCallbackManager();
- OMX_ERRORTYPE omxError = DoRegisterTunnelCallback(aLocalPortIndex,
- aLocalPortDirection,
- aTunnelledComponentHandle,
- aTunnelledPortIndex);
- UnlockCallbackManager();
- return omxError;
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILInContextCallbackManager::DeregisterTunnelCallback(
- OMX_U32 aLocalPortIndex)
- {
-
- DEBUG_PRINTF(_L8("COmxILInContextCallbackManager::DeregisterTunnelCallback"));
-
- LockCallbackManager();
- OMX_ERRORTYPE omxError = DoRegisterTunnelCallback(aLocalPortIndex,
- OMX_DirMax,
- 0,
- 0);
- UnlockCallbackManager();
- return omxError;
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILInContextCallbackManager::RegisterBufferMarkPropagationPort(
- OMX_U32 aPortIndex,
- OMX_U32 aPropagationPortIndex)
- {
- DEBUG_PRINTF(_L8("COmxILInContextCallbackManager::RegisterBufferMarkPropagationPort"));
-
- LockCallbackManager();
- OMX_ERRORTYPE omxError = DoRegisterBufferMarkPropagationPort(
- aPortIndex,
- aPropagationPortIndex);
- UnlockCallbackManager();
- return omxError;
-
- }
-
-EXPORT_C TBool
-COmxILInContextCallbackManager::BufferRemovalIndication(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_DIRTYPE aDirection)
- {
- DEBUG_PRINTF(_L8("COmxILInContextCallbackManager::BufferRemovalIndication"));
-
- return RemoveBuffersByBufferHeader(
- iPendingQueue, apBufferHeader, aDirection);
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILInContextCallbackManager::TransitionCompleteNotification(OMX_STATETYPE aOmxState)
- {
- DEBUG_PRINTF(_L8("COmxILInContextCallbackManager::TransitionCompleteNotification"));
-
- // No need to lock callback manager. Anyway, we should not have it locked
- // when calling an IL Client callback method
- OMX_ERRORTYPE omxError = EventNotification(OMX_EventCmdComplete,
- OMX_CommandStateSet,
- aOmxState,
- 0);
-
- return omxError;
-
- }
-
-
-EXPORT_C OMX_ERRORTYPE
-COmxILInContextCallbackManager::CommandCompleteNotification(OMX_COMMANDTYPE aOmxCommand,
- OMX_U32 aOmxPortIndex)
- {
- DEBUG_PRINTF(_L8("COmxILInContextCallbackManager::CommandCompleteNotification"));
-
- // No need to lock callback manager. Anyway, we should not have it locked
- // when calling an IL Client callback method
-
- OMX_ERRORTYPE omxError = EventNotification(OMX_EventCmdComplete,
- aOmxCommand,
- aOmxPortIndex,
- 0);
-
- return omxError;
-
- }
-
-
-EXPORT_C OMX_ERRORTYPE
-COmxILInContextCallbackManager::ErrorEventNotification(OMX_ERRORTYPE aOmxError)
- {
- DEBUG_PRINTF2(_L8("COmxILInContextCallbackManager::ErrorEventNotification : aOmxError[%X] "), aOmxError);
-
- // No need to lock callback manager. Anyway, we should not have it locked
- // when calling an IL Client callback method
- OMX_ERRORTYPE omxError = EventNotification(OMX_EventError,
- aOmxError,
- 0,
- 0);
-
- return omxError;
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILInContextCallbackManager::EventNotification(OMX_EVENTTYPE aEvent,
- TUint32 aData1,
- TUint32 aData2,
- OMX_STRING aExtraInfo)
- {
- DEBUG_PRINTF4(_L8("COmxILInContextCallbackManager::EventNotification : aEvent[%u] aData1[%u] aData2[%u]"),
- aEvent, aData1, aData2);
-
- OMX_ERRORTYPE omxError = OMX_ErrorNone;
- switch(aData1)
- {
- case OMX_CommandStateSet:
- {
- LockCallbackManager();
- iPreviousState = iCurrentState;
- iCurrentState = static_cast<OMX_STATETYPE>(aData2);
-
- DEBUG_PRINTF4(_L8("COmxILInContextCallbackManager::EventNotification() : Handle[%X] iPreviousState[%d] -> iCurrentState[%d]"), ipHandle, iPreviousState, iCurrentState);
-
- if (OMX_StatePause == iPreviousState &&
- OMX_StateIdle == iCurrentState)
- {
- // Release lock before any callback gets called...
- UnlockCallbackManager();
-
- // Flush pending queue first...
- FlushQueue(iPendingQueue);
-
- // ... and now signal command completion...
- omxError =
- DoEventNotification(aEvent,
- aData1,
- aData2,
- aExtraInfo);
-
- }
- else if (OMX_StatePause == iPreviousState &&
- OMX_StateExecuting == iCurrentState)
- {
- // Release lock before any callback...
- UnlockCallbackManager();
-
- // Signal command completion first...
- omxError =
- DoEventNotification(aEvent,
- aData1,
- aData2,
- aExtraInfo);
-
- // ... and now flush...
- FlushQueue(iPendingQueue);
-
- }
- else
- {
- // Release lock before any callback...
- UnlockCallbackManager();
-
- // Signal command completion...
- omxError =
- DoEventNotification(aEvent,
- aData1,
- aData2,
- aExtraInfo);
-
- }
-
- }
- break;
-
- case OMX_CommandPortDisable:
- case OMX_CommandFlush:
- {
- // Flush first...
- if (OMX_ALL == aData2)
- {
- FlushQueue(iPendingQueue);
- }
- else
- {
- FlushBuffersByPortIndex(iPendingQueue,
- aData2);
- }
-
- // ... and now signal command completion...
- omxError =
- DoEventNotification(aEvent,
- aData1,
- aData2,
- aExtraInfo);
-
- }
- break;
-
- default:
- {
- // Signal command completion...
- omxError =
- DoEventNotification(aEvent,
- aData1,
- aData2,
- aExtraInfo);
-
- }
-
- };
-
- if (OMX_ErrorInsufficientResources == omxError)
- {
- HandleInsufficientResources();
- }
-
- return omxError;
-
- }
-
-
-EXPORT_C OMX_ERRORTYPE
-COmxILInContextCallbackManager::BufferDoneNotification(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_U32 aLocalPortIndex,
- OMX_DIRTYPE aLocalPortDirection)
- {
- DEBUG_PRINTF2(_L8("COmxILInContextCallbackManager::BufferDoneNotificaton : BUFFER [%X]"),
- apBufferHeader);
-
- __ASSERT_ALWAYS(apBufferHeader &&
- (OMX_DirInput == aLocalPortDirection ||
- OMX_DirOutput == aLocalPortDirection),
- User::Panic(KOmxILCallbackManagerIfImplPanicCategory, 1));
-
- __ASSERT_ALWAYS(apBufferHeader->nOffset + apBufferHeader->nFilledLen
- <= apBufferHeader->nAllocLen,
- User::Panic(KOmxILCallbackManagerIfImplPanicCategory, 1));
-
- __ASSERT_DEBUG(ipHandle && ipCallbacks,
- User::Panic(KOmxILCallbackManagerIfImplPanicCategory, 1));
-
- LockCallbackManager();
- if (OMX_StatePause == iCurrentState)
- {
- if (KErrNone != iPendingQueue.Append(TOmxILBuffer(
- apBufferHeader,
- aLocalPortIndex,
- aLocalPortDirection)))
- {
- // Not much we can do here...
- UnlockCallbackManager();
- HandleInsufficientResources();
- }
- else
- {
- DEBUG_PRINTF4(_L8("COmxILInContextCallbackManager::BufferDoneNotificaton : DEFERRED buffer header[%X] port [%X] queue items [%d]"),
- apBufferHeader, aLocalPortIndex, iPendingQueue.Count());
- UnlockCallbackManager();
- }
-
- return OMX_ErrorNone;
-
- }
- UnlockCallbackManager();
-
- ProcessBufferDoneNotification(apBufferHeader,
- aLocalPortIndex,
- aLocalPortDirection);
-
- return OMX_ErrorNone;
-
- }
-
-void
-COmxILInContextCallbackManager::ProcessBufferDoneNotification(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_U32 aLocalPortIndex,
- OMX_DIRTYPE aLocalPortDirection)
- {
- DEBUG_PRINTF2(_L8("COmxILInContextCallbackManager::ProcessBufferDoneNotification : BUFFER [%X]"),
- apBufferHeader);
-
- // Look for buffer marks to be signalled or propagated (maintain callback
- // manager unlocked here)
- SignalOrPropagateBufferMarks(apBufferHeader,
- aLocalPortDirection);
-
- LockCallbackManager();
-
- // find out whether the port is tunnelled or not
- TBool tunnelled = EFalse;
- OMX_COMPONENTTYPE* pTunnelledComponent = 0;
- const TUint tunnelCount = iRegisteredTunnels.Count();
- for (TUint i=0; i<tunnelCount; ++i)
- {
- if (iRegisteredTunnels[i].iLocalPortIndex ==
- aLocalPortIndex)
- {
- tunnelled = ETrue;
- pTunnelledComponent =
- static_cast<OMX_COMPONENTTYPE*>(
- iRegisteredTunnels[i].
- iTunnelledComponentHandle);
-
- __ASSERT_DEBUG(pTunnelledComponent,
- User::Panic(KOmxILCallbackManagerIfImplPanicCategory, 1));
-
- break;
- }
- }
-
- // Unlock callback manager before calling the callback
- UnlockCallbackManager();
-
- if (tunnelled)
- {
- // From OMX_Core.h "Callbacks should not return an error to the
- // component, so if an error occurs, the application shall handle it
- // internally". Callback return error ignored here.
- if (OMX_DirInput == aLocalPortDirection)
- {
- OMX_FillThisBuffer(pTunnelledComponent, apBufferHeader);
- }
- else
- {
- OMX_EmptyThisBuffer(pTunnelledComponent, apBufferHeader);
- }
-
- }
- else
- {
- OMX_ERRORTYPE (*fp2CBackHandler)
- (OMX_HANDLETYPE, OMX_PTR, OMX_BUFFERHEADERTYPE*) =
- (aLocalPortDirection == OMX_DirInput ?
- ipCallbacks->EmptyBufferDone :
- ipCallbacks->FillBufferDone);
-
-
- // From OMX_Core.h "Callbacks should not return an error to the
- // component, so if an error occurs, the application shall handle it
- // internally". Callback return error ignored here.
- fp2CBackHandler(ipHandle,
- ipAppData,
- apBufferHeader);
-
- }
-
- }
-
-void
-COmxILInContextCallbackManager::SignalOrPropagateBufferMarks(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_U32 aLocalPortIndex)
- {
- DEBUG_PRINTF2(_L8("COmxILInContextCallbackManager::SignalOrPropagateBufferMarks() : BUFFER [%X]"),
- apBufferHeader);
-
- // Look for buffer marks to be signalled or propagated
- if (apBufferHeader->hMarkTargetComponent)
- {
- // See if this component is the buffer mark target component...
- if (apBufferHeader->hMarkTargetComponent == ipHandle)
- {
- // Inform the IL Client that a marked buffer has been processed...
- ipCallbacks->EventHandler(ipHandle,
- ipAppData,
- OMX_EventMark,
- 0,
- 0,
- apBufferHeader->pMarkData);
-
- // At this point, the mark has been delivered to the IL
- // Client...Remove the mark from the processed header...
- apBufferHeader->hMarkTargetComponent = 0;
- apBufferHeader->pMarkData = 0;
-
- }
- else
- {
- // Propagate the mark...
-
- LockCallbackManager();
-
- // First find the buffer mark propagation port...
- const TInt index = iBufferMarkPropagationPorts.Find(
- TBufferMarkPropagationInfo(aLocalPortIndex),
- TIdentityRelation<TBufferMarkPropagationInfo>(
- &TBufferMarkPropagationInfo::Compare));
-
- // Note that sink components don't propagate marks...
- if (index != KErrNotFound)
- {
- const TBufferMarkPropagationInfo& propInfo =
- iBufferMarkPropagationPorts[index];
-
- // Let's check for the special case: The case for a source
- // component where the output port is both the port that marks
- // the headers and the port that propagates them ... Therefore
- // no need to store the mark for later propagation...
- if (propInfo.iPropagationPortIndex != aLocalPortIndex)
- {
- // Now, store temporarily the mark so the next time we send
- // a buffer done callback in that propagation port, we mark
- // that header accordingly...
- // Unsuccessful insertion is ignored.
- iBufferMarks.Append(
- TOutputPortBufferMarkInfo(
- propInfo.iPropagationPortIndex,
- apBufferHeader->hMarkTargetComponent,
- apBufferHeader->pMarkData));
-
- // At this point the mark has been set for propagation to
- // an output port. Remove the mark from the processed
- // header...
- apBufferHeader->hMarkTargetComponent = 0;
- apBufferHeader->pMarkData = 0;
- }
- }
-
- UnlockCallbackManager();
-
- }
- }
- else
- {
- LockCallbackManager();
-
- if(iBufferMarks.Count() != 0)
- {
- // Let's see if we have a mark waiting to go out...This will find the
- // first mark in the local list of marks ...
- const TInt index = iBufferMarks.Find(
- TOutputPortBufferMarkInfo(aLocalPortIndex),
- TIdentityRelation<TOutputPortBufferMarkInfo>(
- &TOutputPortBufferMarkInfo::Compare));
- if (index != KErrNotFound)
- {
- const TOutputPortBufferMarkInfo& markInfo =
- iBufferMarks[index];
-
- // Mark the header...
- apBufferHeader->hMarkTargetComponent = markInfo.ipMarkTargetComponent;
- apBufferHeader->pMarkData = markInfo.ipMarkData;
-
- // Remove the mark info from the local store
- iBufferMarks.Remove(index);
- }
-
- }
-
- UnlockCallbackManager();
-
- }
-
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILInContextCallbackManager::ClockBufferDoneNotification(OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_U32 aLocalPortIndex,
- OMX_DIRTYPE aLocalPortDirection)
- {
- DEBUG_PRINTF(_L8("COmxILInContextCallbackManager::ClockBufferDoneNotification"));
-
- return BufferDoneNotification(apBufferHeader,
- aLocalPortIndex,
- aLocalPortDirection);
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILInContextCallbackManager::PortSettingsChangeNotification(
- OMX_U32 aLocalPortIndex,
- TUint aPortSettingsIndex,
- const TDesC8& aPortSettings)
- {
- DEBUG_PRINTF2(_L8("COmxILInContextCallbackManager::PortSettingsChangeNotification : aLocalPortIndex[%d]"), aLocalPortIndex);
-
- LockCallbackManager();
- OMX_ERRORTYPE omxError = DoPortSettingsChangeNotification(aLocalPortIndex,
- aPortSettingsIndex,
- aPortSettings);
- UnlockCallbackManager();
- return omxError;
-
- }
-
-
-void
-COmxILInContextCallbackManager::FlushQueue(
- RCbMgrBufferQueue& aQueue)
- {
- DEBUG_PRINTF2(_L8("COmxILInContextCallbackManager::FlushQueue : Handle[%X]"), ipHandle);
-
- LockCallbackManager();
-
- TInt i = 0;
- while(i < aQueue.Count())
- {
- TOmxILBuffer buffer(aQueue[i]);
- aQueue.Remove(i);
- DEBUG_PRINTF4(_L8("COmxILInContextCallbackManager::FlushQueue() : FOUND -> buffer header [%X] PortIndex[%d], queue items [%d]"), buffer.ipBufferHeader, buffer.iLocalPortIndex, aQueue.Count());
-
- UnlockCallbackManager();
- ProcessBufferDoneNotification(buffer.ipBufferHeader,
- buffer.iLocalPortIndex,
- buffer.iLocalPortDirection);
- LockCallbackManager();
- // There is a window where new items could have been added to the
- // queue. Restart loop just in case...
- i = 0;
- }
-
- UnlockCallbackManager();
- }
-
-TBool
-COmxILInContextCallbackManager::RemoveBuffersByBufferHeader(
- RCbMgrBufferQueue& aQueue,
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- const OMX_DIRTYPE aDirection)
- {
- DEBUG_PRINTF2(_L8("COmxILInContextCallbackManager::RemoveBuffersByBufferHeader : Handle[%X]"), ipHandle);
-
- LockCallbackManager();
-
- TInt i = 0;
- while(i < aQueue.Count())
- {
- TOmxILBuffer buffer(aQueue[i]);
- if (apBufferHeader == buffer.ipBufferHeader)
- {
- __ASSERT_DEBUG(aDirection == OMX_DirInput ||
- aDirection == OMX_DirOutput,
- User::Panic(KOmxILCallbackManagerPanicCategory, 1));
-
- DEBUG_PRINTF4(_L8("COmxILInContextCallbackManager::RemoveBuffersByBufferHeader() : Nofiying FSM : Handle[%X] aDirection[%X] apBufferHeader[%X]"), ipHandle, aDirection, apBufferHeader);
-
- // Make sure the buffer contents are cleared...
- TOmxILUtil::ClearBufferContents(apBufferHeader);
-
- aQueue.Remove(i);
- UnlockCallbackManager();
-
- if (aDirection == OMX_DirInput)
- {
- ipFsm->EmptyThisBuffer(
- const_cast<OMX_BUFFERHEADERTYPE*>(apBufferHeader));
- }
- else
- {
- ipFsm->FillThisBuffer(
- const_cast<OMX_BUFFERHEADERTYPE*>(apBufferHeader));
- }
-
- return ETrue;
- }
- else
- {
- ++i;
- }
- }
-
- UnlockCallbackManager();
-
- return EFalse;
- }
-
-
-void
-COmxILInContextCallbackManager::FlushBuffersByPortIndex(
- RCbMgrBufferQueue& aQueue,
- const OMX_U32 aLocalPortIndex)
- {
- DEBUG_PRINTF2(_L8("COmxILInContextCallbackManager::FlushBuffersByPortIndex : Handle[%X]"), ipHandle);
-
- LockCallbackManager();
-
- TInt i = 0;
- while(i < aQueue.Count())
- {
- TOmxILBuffer buffer(aQueue[i]);
- DEBUG_PRINTF4(_L8("COmxILInContextCallbackManager::FlushBuffersByPortIndex() : LOOKING -> buffer header [%X] PortIndex[%d], queue items [%d]"), buffer.ipBufferHeader, aLocalPortIndex, aQueue.Count());
- if (aLocalPortIndex == buffer.iLocalPortIndex)
- {
- aQueue.Remove(i);
- DEBUG_PRINTF4(_L8("COmxILInContextCallbackManager::FlushBuffersByPortIndex() : FOUND -> buffer header [%X] PortIndex[%d], queue items [%d]"), buffer.ipBufferHeader, aLocalPortIndex, aQueue.Count());
- UnlockCallbackManager();
- ProcessBufferDoneNotification(buffer.ipBufferHeader,
- buffer.iLocalPortIndex,
- buffer.iLocalPortDirection);
- LockCallbackManager();
- // There is a window where new items could have been added to the
- // queue. Restart loop just in case...
- i = 0;
- }
- else
- {
- ++i;
- }
- }
-
- UnlockCallbackManager();
-
- }
-
--- a/omxil/omxilcomponentcommon/src/common/omxilincontextcallbackmanager.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,217 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-#ifndef OMXILINCONTEXTCALLBACKMANAGER_H
-#define OMXILINCONTEXTCALLBACKMANAGER_H
-
-#include "omxilcallbackmanager.h"
-
-/**
- OpenMAX IL call backs and buffer marks manager. This is a synchronous
- implementation of MOmxILCallbackManagerIf.
-
- */
-NONSHARABLE_CLASS(COmxILInContextCallbackManager) :
- public CBase,
- public MOmxILCallbackManagerIf,
- private XOmxILCallbackManagerIfImpl
- {
-
-public:
-
- IMPORT_C static COmxILInContextCallbackManager* NewL(
- OMX_HANDLETYPE apComponentHandle,
- OMX_PTR apAppData,
- OMX_CALLBACKTYPE* apCallbacks);
-
- IMPORT_C ~COmxILInContextCallbackManager();
-
- IMPORT_C void SetPortManager(COmxILPortManager& apPortManager);
-
- IMPORT_C void SetFsm(COmxILFsm& apFsm);
-
- //
- // Methods for Callback Registration (from MOmxILCallbackManagerIf)
- //
- IMPORT_C OMX_ERRORTYPE RegisterComponentHandle(
- OMX_HANDLETYPE aComponentHandle);
-
- IMPORT_C OMX_ERRORTYPE RegisterILClientCallbacks(
- const OMX_CALLBACKTYPE* apCallbacks,
- const OMX_PTR apAppData);
-
- IMPORT_C OMX_ERRORTYPE RegisterTunnelCallback(
- OMX_U32 aLocalPortIndex,
- OMX_DIRTYPE aLocalPortDirection,
- OMX_HANDLETYPE aTunnelledComponentHandle,
- OMX_U32 aTunnelledPortIndex
- );
-
- IMPORT_C OMX_ERRORTYPE DeregisterTunnelCallback(
- OMX_U32 aLocalPortIndex);
-
- IMPORT_C OMX_ERRORTYPE RegisterBufferMarkPropagationPort(
- OMX_U32 aPortIndex,
- OMX_U32 aPropagationPortIndex);
-
- IMPORT_C TBool BufferRemovalIndication(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_DIRTYPE aDirection);
-
-
- //
- // Methods for Callback Notification (from MOmxILCallbackManagerIf)
- //
-
- IMPORT_C OMX_ERRORTYPE TransitionCompleteNotification(
- OMX_STATETYPE aOmxState);
-
- IMPORT_C OMX_ERRORTYPE CommandCompleteNotification(
- OMX_COMMANDTYPE aOmxCommand,
- OMX_U32 aOmxPortIndex);
-
- //
- // Methods for Callback Notification (from MOmxILCallbackManagerIf)
- //
-
- IMPORT_C OMX_ERRORTYPE ErrorEventNotification(
- OMX_ERRORTYPE aOmxError);
-
- IMPORT_C OMX_ERRORTYPE EventNotification(
- OMX_EVENTTYPE aEvent,
- TUint32 aData1,
- TUint32 aData2,
- OMX_STRING aExtraInfo);
-
- IMPORT_C OMX_ERRORTYPE BufferDoneNotification(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_U32 aLocalPortIndex,
- OMX_DIRTYPE aLocalPortDirection);
-
- IMPORT_C OMX_ERRORTYPE ClockBufferDoneNotification(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_U32 aLocalPortIndex,
- OMX_DIRTYPE aLocalPortDirection);
-
- IMPORT_C OMX_ERRORTYPE PortSettingsChangeNotification(
- OMX_U32 aLocalPortIndex,
- TUint aPortSettingsIndex,
- const TDesC8& aPortSettings);
-
-
-private:
-
- class TOmxILBuffer
- {
-
- public:
-
- OMX_BUFFERHEADERTYPE* ipBufferHeader;
- OMX_U32 iLocalPortIndex;
- OMX_DIRTYPE iLocalPortDirection;
-
- // Default Constructor
- inline TOmxILBuffer();
-
- // Constructor
- inline TOmxILBuffer(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_U32 aLocalPortIndex,
- OMX_DIRTYPE aLocalPortDirection);
-
- };
-
-private:
-
- // Convenience typedef
- typedef RArray<TOmxILBuffer> RCbMgrBufferQueue;
-
-
-private:
-
- COmxILInContextCallbackManager(OMX_HANDLETYPE apComponentHandle,
- OMX_PTR apAppData,
- OMX_CALLBACKTYPE* apCallbacks);
- void ConstructL();
-
- void LockCallbackManager();
- void UnlockCallbackManager();
-
- void SignalOrPropagateBufferMarks(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_U32 aLocalPortIndex);
-
- void ProcessBufferDoneNotification(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_U32 aLocalPortIndex,
- OMX_DIRTYPE aLocalPortDirection);
-
- void FlushQueue(RCbMgrBufferQueue& aQueue);
-
- TBool RemoveBuffersByBufferHeader(
- RCbMgrBufferQueue& aQueue,
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- const OMX_DIRTYPE aDirection);
-
- void FlushBuffersByPortIndex(RCbMgrBufferQueue& aQueue,
- const OMX_U32 aLocalPortIndex);
-
-
-private:
-
- RFastLock iLock;
-
- // Queue of buffer done notifications that need to be queued during
- // OMX_StatePaused state
- RCbMgrBufferQueue iPendingQueue;
-
- // Flag to enable unconditional flushing of buffer done notifications
- TBool iFlushPendingQueue;
-
- OMX_STATETYPE iCurrentState;
- OMX_STATETYPE iPreviousState;
-
- };
-
-inline
-COmxILInContextCallbackManager::TOmxILBuffer::TOmxILBuffer()
- :
- ipBufferHeader(0),
- iLocalPortIndex(0),
- iLocalPortDirection(OMX_DirMax)
- {
- }
-
-inline
-COmxILInContextCallbackManager::TOmxILBuffer::TOmxILBuffer(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_U32 aLocalPortIndex,
- OMX_DIRTYPE aLocalPortDirection
- )
- :
- ipBufferHeader(apBufferHeader),
- iLocalPortIndex(aLocalPortIndex),
- iLocalPortDirection(aLocalPortDirection)
- {
- }
-
-
-#endif // OMXILINCONTEXTCALLBACKMANAGER_H
--- a/omxil/omxilcomponentcommon/src/common/omxilindexmanager.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-#ifndef OMXILINDEXMANAGER_H
-#define OMXILINDEXMANAGER_H
-
-#include <e32base.h>
-
-// Forward declarations
-
-
-class COmxILIndexManager : public CBase
- {
-
-public:
-
- inline ~COmxILIndexManager();
-
- inline void InsertParamIndexL(TUint aParamIndex);
-
- inline TInt FindParamIndex(TUint aParamIndex) const;
-
- inline void InsertConfigIndexL(TUint aConfigIndex);
-
- inline TInt FindConfigIndex(TUint aConfigIndex) const;
-
-protected:
-
- COmxILIndexManager();
-
- inline RArray<TUint>& ManagedParamIndexes();
-
- inline RArray<TUint>& ManagedConfigIndexes();
-
-protected:
-
- RArray<TUint> iManagedOmxParamIndexes;
- RArray<TUint> iManagedOmxConfigIndexes;
-
- };
-
-#include "omxilindexmanager.inl"
-
-#endif // OMXILINDEXMANAGER_H
-
--- a/omxil/omxilcomponentcommon/src/common/omxilindexmanager.inl Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-inline COmxILIndexManager::COmxILIndexManager()
- {
- }
-
-inline COmxILIndexManager::~COmxILIndexManager()
- {
- iManagedOmxParamIndexes.Close();
- iManagedOmxConfigIndexes.Close();
- }
-
-inline void
-COmxILIndexManager::InsertParamIndexL(TUint aParamIndex)
- {
- TInt err = iManagedOmxParamIndexes.InsertInOrder(aParamIndex);
-
- // Note that index duplication is OK.
- if (KErrNone != err && KErrAlreadyExists != err)
- {
- User::Leave(err);
- }
-
- }
-
-inline TInt
-COmxILIndexManager::FindParamIndex(TUint aParamIndex) const
- {
- return iManagedOmxParamIndexes.SpecificFindInOrder(
- aParamIndex,
- EArrayFindMode_First);
- }
-
-inline void
-COmxILIndexManager::InsertConfigIndexL(TUint aConfigIndex)
- {
- TInt err = iManagedOmxConfigIndexes.InsertInOrder(aConfigIndex);
-
- // Note that index duplication is OK.
- if (KErrNone != err && KErrAlreadyExists != err)
- {
- User::Leave(err);
- }
-
- }
-
-inline TInt
-COmxILIndexManager::FindConfigIndex(TUint aConfigIndex) const
- {
- return iManagedOmxConfigIndexes.SpecificFindInOrder(
- aConfigIndex,
- EArrayFindMode_First);
- }
-
-inline RArray<TUint>&
-COmxILIndexManager::ManagedParamIndexes()
- {
- return iManagedOmxParamIndexes;
- }
-
-inline RArray<TUint>&
-COmxILIndexManager::ManagedConfigIndexes()
- {
- return iManagedOmxConfigIndexes;
- }
-
-
--- a/omxil/omxilcomponentcommon/src/common/omxilotherport.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,171 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-#include "omxilotherport.h"
-#include "omxilutil.h"
-
-EXPORT_C COmxILOtherPort::COmxILOtherPort(const TOmxILCommonPortData& aCommonPortData)
- : COmxILPort(aCommonPortData)
- {
- iParamOtherPortFormat.nSize = sizeof(OMX_OTHER_PARAM_PORTFORMATTYPE);
- iParamOtherPortFormat.nVersion = aCommonPortData.iOmxVersion;
- iParamOtherPortFormat.nPortIndex = aCommonPortData.iPortIndex;
- iParamOtherPortFormat.nIndex = 0;
- }
-
-// [YYC]: proposal for deep copy, virtual & called from derived CostructL
-EXPORT_C void COmxILOtherPort::ConstructL(const RArray<OMX_OTHER_FORMATTYPE>& aSupportedOtherFormats)
- {
- TUint count = aSupportedOtherFormats.Count();
- for (TInt i = 0; i < count; i++)
- {
- iSupportedOtherFormats.AppendL(aSupportedOtherFormats[i]);
- }
- iParamOtherPortFormat.eFormat = count ? iSupportedOtherFormats[0] : OMX_OTHER_FormatMax;
- }
-
-EXPORT_C COmxILOtherPort::~COmxILOtherPort()
- {
- iSupportedOtherFormats.Close();
- }
-
-EXPORT_C OMX_ERRORTYPE COmxILOtherPort::GetLocalOmxParamIndexes(RArray<TUint>& aIndexArray) const
- {
- // Always collect local indexes from parent
- OMX_ERRORTYPE omxRetValue = COmxILPort::GetLocalOmxParamIndexes(aIndexArray);
- if (omxRetValue != OMX_ErrorNone)
- {
- return omxRetValue;
- }
-
- TInt err = aIndexArray.InsertInOrder(OMX_IndexParamOtherPortFormat);
- // Note that index duplication is OK
- if (err != KErrNone && err != KErrAlreadyExists)
- {
- return OMX_ErrorInsufficientResources;
- }
-
- return OMX_ErrorNone;
- }
-
-EXPORT_C OMX_ERRORTYPE COmxILOtherPort::GetLocalOmxConfigIndexes(RArray<TUint>& aIndexArray) const
- {
- // Always collect local indexes from parent
- return COmxILPort::GetLocalOmxConfigIndexes(aIndexArray);
- }
-
-EXPORT_C OMX_ERRORTYPE COmxILOtherPort::GetParameter(OMX_INDEXTYPE aParamIndex,
- TAny* apComponentParameterStructure) const
- {
- switch(aParamIndex)
- {
- case OMX_IndexParamOtherPortFormat:
- {
- OMX_ERRORTYPE omxRetValue = TOmxILUtil::CheckOmxStructSizeAndVersion(apComponentParameterStructure,
- sizeof(OMX_OTHER_PARAM_PORTFORMATTYPE));
-
- if (omxRetValue != OMX_ErrorNone)
- {
- return omxRetValue;
- }
-
- OMX_OTHER_PARAM_PORTFORMATTYPE* pParamOtherPortFormat =
- static_cast<OMX_OTHER_PARAM_PORTFORMATTYPE*>(apComponentParameterStructure);
-
- if (pParamOtherPortFormat->nIndex >= iSupportedOtherFormats.Count())
- {
- return OMX_ErrorNoMore;
- }
-
- pParamOtherPortFormat->eFormat = iSupportedOtherFormats[pParamOtherPortFormat->nIndex];
- }
- break;
- default:
- {
- // Try the parent's indexes
- return COmxILPort::GetParameter(aParamIndex, apComponentParameterStructure);
- }
- };
-
- return OMX_ErrorNone;
- }
-
-EXPORT_C OMX_ERRORTYPE COmxILOtherPort::SetParameter(OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure,
- TBool& aUpdateProcessingFunction)
- {
- aUpdateProcessingFunction = EFalse;
-
- switch(aParamIndex)
- {
- case OMX_IndexParamOtherPortFormat:
- {
- OMX_ERRORTYPE omxRetValue = TOmxILUtil::CheckOmxStructSizeAndVersion(const_cast<OMX_PTR>(apComponentParameterStructure),
- sizeof(OMX_OTHER_PARAM_PORTFORMATTYPE));
-
- if (omxRetValue != OMX_ErrorNone)
- {
- return omxRetValue;
- }
-
- const OMX_OTHER_PARAM_PORTFORMATTYPE* pParamOtherPortFormat =
- static_cast<const OMX_OTHER_PARAM_PORTFORMATTYPE*>(apComponentParameterStructure);
-
- // Check in case the specified format is not actually supported by this
- // port
- OMX_OTHER_FORMATTYPE newFormatType = pParamOtherPortFormat->eFormat;
-
- // OMX_OTHER_FormatVendorReserved is the last of the supported values as of
- // v1.1.1
- if (newFormatType > OMX_OTHER_FormatVendorReserved)
- {
- return OMX_ErrorBadParameter;
- }
-
- if (KErrNotFound == iSupportedOtherFormats.Find(newFormatType))
- {
- return OMX_ErrorUnsupportedSetting;
- }
-
- // Set the new default format, but check first that we are actually
- // changing something...
- if (iParamOtherPortFormat.eFormat != newFormatType)
- {
- iParamOtherPortFormat.eFormat = newFormatType;
-
- // This is an indication to the PortManager that the processing
- // function needs to get updated
- //
- aUpdateProcessingFunction = ETrue;
- }
- }
- break;
- default:
- {
- // Try the parent's indexes
- return COmxILPort::SetParameter(aParamIndex,
- apComponentParameterStructure,
- aUpdateProcessingFunction);
- }
- };
-
- return OMX_ErrorNone;
- }
--- a/omxil/omxilcomponentcommon/src/common/omxilotherport.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalTechnology
-*/
-
-#ifndef OMXILOTHERPORT_H
-#define OMXILOTHERPORT_H
-
-#include "omxilport.h"
-#include <e32base.h>
-#include <openmax/il/khronos/v1_x/OMX_Types.h>
-#include <openmax/il/khronos/v1_x/OMX_Core.h>
-#include <openmax/il/khronos/v1_x/OMX_Component.h>
-
-class COmxILOtherPort : public COmxILPort
- {
-public:
- IMPORT_C ~COmxILOtherPort();
-
- // From COmxILPort
- IMPORT_C OMX_ERRORTYPE GetLocalOmxParamIndexes(RArray<TUint>& aIndexArray) const = 0;
-
- // From COmxILPort
- IMPORT_C OMX_ERRORTYPE GetLocalOmxConfigIndexes(RArray<TUint>& aIndexArray) const = 0;
-
- // From COmxILPort
- IMPORT_C OMX_ERRORTYPE GetParameter(OMX_INDEXTYPE aParamIndex,
- TAny* apComponentParameterStructure) const = 0;
-
- // From COmxILPort
- IMPORT_C OMX_ERRORTYPE SetParameter(OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure,
- TBool& aUpdateProcessingFunction) = 0;
-
-protected:
- IMPORT_C COmxILOtherPort(const TOmxILCommonPortData& aCommonPortData);
-
- IMPORT_C virtual void ConstructL(const RArray<OMX_OTHER_FORMATTYPE>& aSupportedOtherFormats);
-
- // From COmxILPort
- IMPORT_C OMX_ERRORTYPE SetFormatInPortDefinition(
- const OMX_PARAM_PORTDEFINITIONTYPE& aPortDefinition,
- TBool& aUpdateProcessingFunction) = 0;
-
- // From COmxILPort
- IMPORT_C TBool IsTunnelledPortCompatible(
- const OMX_PARAM_PORTDEFINITIONTYPE& aPortDefinition) const = 0;
-
-protected:
- // To indicate the supported formats
- RArray<OMX_OTHER_FORMATTYPE> iSupportedOtherFormats;
-
- OMX_OTHER_PARAM_PORTFORMATTYPE iParamOtherPortFormat;
- };
-
-#endif // OMXILOTHERPORT_H
--- a/omxil/omxilcomponentcommon/src/common/omxilport.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1471 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-#include <mmf/server/mmfbuffer.h>
-#include <mmf/server/mmfdatabuffer.h>
-
-#include "log.h"
-#include "omxilport.h"
-#include "omxilutil.h"
-
-
-const TInt COmxILPort::KMaxBufferMarksQueueSize;
-const TInt COmxILPort::KBufferMarkPropagationPortNotNeeded;
-
-
-EXPORT_C
-TOmxILCommonPortData::TOmxILCommonPortData(
- OMX_VERSIONTYPE aOmxVersion,
- OMX_U32 aPortIndex,
- OMX_DIRTYPE aDirection,
- OMX_U32 aBufferCountMin,
- OMX_U32 aBufferSizeMin,
- OMX_PORTDOMAINTYPE aPortDomain,
- OMX_BOOL aBuffersContiguous,
- OMX_U32 aBufferAlignment,
- OMX_BUFFERSUPPLIERTYPE aBufferSupplier,
- OMX_U32 aBufferMarkPropagationPortIndex)
- :
- iOmxVersion(aOmxVersion),
- iPortIndex(aPortIndex),
- iDirection(aDirection),
- iBufferCountMin(aBufferCountMin),
- iBufferSizeMin(aBufferSizeMin),
- iPortDomain(aPortDomain),
- iBuffersContiguous(aBuffersContiguous),
- iBufferAlignment(aBufferAlignment),
- iBufferSupplier(aBufferSupplier),
- iBufferMarkPropagationPortIndex(aBufferMarkPropagationPortIndex)
- {
- }
-
-
-EXPORT_C
-COmxILPort::COmxILPort(const TOmxILCommonPortData& aCommonPortData)
- :
- iTunnelledComponent(0),
- iTunnelledPort(0),
- iBufferHeaders(),
- iBufferMarks(_FOFF(TBufferMarkInfo, iLink)),
- iTransitionState(EPortNotTransitioning),
- iBufferMarkPropagationPortIndex(
- aCommonPortData.iBufferMarkPropagationPortIndex)
- {
- DEBUG_PRINTF(_L8("COmxILPort::COmxILPort"));
-
- __ASSERT_DEBUG(aCommonPortData.iDirection == OMX_DirInput ||
- aCommonPortData.iDirection == OMX_DirOutput,
- User::Panic(KOmxILPortPanicCategory, 1));
-
- // From Section 3.1.2.12.1 .
- //
- // nBufferCountMin : "The component shall define this non-zero default
- // value."
- //
- // nBufferCountActual : "The component shall set a default value no less
- // than nBufferCountMin for this field"
- __ASSERT_DEBUG(aCommonPortData.iBufferCountMin > 0,
- User::Panic(KOmxILPortPanicCategory, 1));
-
- // Filll in OMX_PARAM_PORTDEFINITIONTYPE
- iParamPortDefinition.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
- iParamPortDefinition.nVersion = aCommonPortData.iOmxVersion;
- iParamPortDefinition.nPortIndex = aCommonPortData.iPortIndex;
- iParamPortDefinition.eDir = aCommonPortData.iDirection;
- iParamPortDefinition.nBufferCountActual = aCommonPortData.iBufferCountMin;
- iParamPortDefinition.nBufferCountMin = aCommonPortData.iBufferCountMin;
- iParamPortDefinition.nBufferSize = aCommonPortData.iBufferSizeMin;
- iParamPortDefinition.bEnabled = OMX_TRUE;
- iParamPortDefinition.bPopulated = OMX_FALSE;
- iParamPortDefinition.eDomain = aCommonPortData.iPortDomain;
- // NOTE: iParamPortDefinition.format must be finished up by concrete ports
- iParamPortDefinition.bBuffersContiguous = aCommonPortData.iBuffersContiguous;
- iParamPortDefinition.nBufferAlignment = aCommonPortData.iBufferAlignment;
-
- // Fill in OMX_PARAM_BUFFERSUPPLIERTYPE
- iParamCompBufferSupplier.nSize = sizeof(OMX_PARAM_BUFFERSUPPLIERTYPE);
- iParamCompBufferSupplier.nVersion = aCommonPortData.iOmxVersion;
- iParamCompBufferSupplier.nPortIndex = aCommonPortData.iPortIndex;
- iParamCompBufferSupplier.eBufferSupplier = aCommonPortData.iBufferSupplier;
-
- }
-
-EXPORT_C
-COmxILPort::~COmxILPort()
- {
- DEBUG_PRINTF(_L8("COmxILPort::~COmxILPort"));
-
-#ifdef _DEBUG
- const TInt headerCount = iBufferHeaders.Count();
- if (headerCount > 0)
- {
- DEBUG_PRINTF(_L8("COmxILPort::~COmxILPort :: ------------------------------- WARNING --------------------------------------- "));
- DEBUG_PRINTF2(_L8("COmxILPort::~COmxILPort :: [%d] Buffer headers still exist"), headerCount);
- DEBUG_PRINTF(_L8("COmxILPort::~COmxILPort :: CleanUpPort() may be used from the most derived port class to delete them"));
- DEBUG_PRINTF(_L8("COmxILPort::~COmxILPort :: ------------------------------- WARNING --------------------------------------- "));
- }
-#endif
-
- iBufferHeaders.Close();
- iBufferMarks.ResetAndDestroy();
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILPort::GetLocalOmxParamIndexes(RArray<TUint>& aIndexArray) const
- {
- DEBUG_PRINTF(_L8("COmxILPort::GetLocalOmxParamIndexes"));
-
- TInt err = aIndexArray.InsertInOrder(OMX_IndexParamPortDefinition);
-
- // Note that index duplication is OK.
- if (KErrNone == err || KErrAlreadyExists == err)
- {
- err = aIndexArray.InsertInOrder(OMX_IndexParamCompBufferSupplier);
- }
-
- if (KErrNone != err && KErrAlreadyExists != err)
- {
- return OMX_ErrorInsufficientResources;
- }
-
- return OMX_ErrorNone;
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILPort::GetLocalOmxConfigIndexes(RArray<TUint>& /*aIndexArray*/) const
- {
- DEBUG_PRINTF(_L8("COmxILPort::GetLocalOmxConfigIndexes"));
-
- return OMX_ErrorNone;
-
- }
-
-
-EXPORT_C OMX_ERRORTYPE
-COmxILPort::GetParameter(OMX_INDEXTYPE aParamIndex,
- TAny* apComponentParameterStructure) const
- {
- DEBUG_PRINTF(_L8("COmxILPort::GetParameter"));
-
- OMX_ERRORTYPE omxRetValue = OMX_ErrorNone;
- switch(aParamIndex)
- {
- case OMX_IndexParamPortDefinition:
- {
- if (OMX_ErrorNone != (omxRetValue =
- TOmxILUtil::CheckOmxStructSizeAndVersion(
- apComponentParameterStructure,
- sizeof(OMX_PARAM_PORTDEFINITIONTYPE))))
- {
- return omxRetValue;
- }
-
- OMX_PARAM_PORTDEFINITIONTYPE* pPortDefinition
- = static_cast<OMX_PARAM_PORTDEFINITIONTYPE*>(
- apComponentParameterStructure);
-
- *pPortDefinition = iParamPortDefinition;
- }
- break;
-
- case OMX_IndexParamCompBufferSupplier:
- {
- if (OMX_ErrorNone != (omxRetValue =
- TOmxILUtil::CheckOmxStructSizeAndVersion(
- apComponentParameterStructure,
- sizeof(OMX_PARAM_BUFFERSUPPLIERTYPE))))
- {
- return omxRetValue;
- }
-
- OMX_PARAM_BUFFERSUPPLIERTYPE* pBufferSupplier
- = static_cast<OMX_PARAM_BUFFERSUPPLIERTYPE*>(
- apComponentParameterStructure);
-
- pBufferSupplier->eBufferSupplier =
- iParamCompBufferSupplier.eBufferSupplier;
- }
- break;
-
- default:
- {
- return OMX_ErrorUnsupportedIndex;
- }
- };
-
- return OMX_ErrorNone;
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILPort::SetParameter(OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure,
- TBool& aUpdateProcessingFunction)
- {
- DEBUG_PRINTF(_L8("COmxILPort::SetParameter"));
-
- aUpdateProcessingFunction = EFalse;
-
- OMX_ERRORTYPE omxRetValue = OMX_ErrorNone;
- switch(aParamIndex)
- {
- case OMX_IndexParamPortDefinition:
- {
- if (OMX_ErrorNone != (omxRetValue =
- TOmxILUtil::CheckOmxStructSizeAndVersion(
- const_cast<OMX_PTR>(apComponentParameterStructure),
- sizeof(OMX_PARAM_PORTDEFINITIONTYPE))))
- {
- return omxRetValue;
- }
-
- const OMX_PARAM_PORTDEFINITIONTYPE* pPortDefinition
- = static_cast<const OMX_PARAM_PORTDEFINITIONTYPE*>(
- apComponentParameterStructure);
-
- // Port Format must be set by the concrete port...
- if (OMX_ErrorNone !=
- (omxRetValue =
- SetFormatInPortDefinition(*pPortDefinition,
- aUpdateProcessingFunction)))
- {
- return omxRetValue;
- }
-
- // Set here only the additional read-write parameters of
- // OMX_PARAM_PORTDEFINITIONTYPE
- if (iParamPortDefinition.nBufferCountActual !=
- pPortDefinition->nBufferCountActual)
- {
- if (pPortDefinition->nBufferCountActual <
- iParamPortDefinition.nBufferCountMin)
- {
- return OMX_ErrorBadParameter;
- }
- iParamPortDefinition.nBufferCountActual =
- pPortDefinition->nBufferCountActual;
- aUpdateProcessingFunction = ETrue;
- }
-
- }
- break;
-
- case OMX_IndexParamCompBufferSupplier:
- {
- if (OMX_ErrorNone != (omxRetValue =
- TOmxILUtil::CheckOmxStructSizeAndVersion(
- const_cast<OMX_PTR>(apComponentParameterStructure),
- sizeof(OMX_PARAM_BUFFERSUPPLIERTYPE))))
- {
- return omxRetValue;
- }
-
- const OMX_PARAM_BUFFERSUPPLIERTYPE* pBufferSupplier
- = static_cast<const OMX_PARAM_BUFFERSUPPLIERTYPE*>(
- apComponentParameterStructure);
-
- // OMX_BufferSupplyOutput is the last of the supported values as of
- // v1.1.1
- if (iParamCompBufferSupplier.eBufferSupplier > OMX_BufferSupplyOutput)
- {
- return OMX_ErrorBadParameter;
- }
-
- if (iParamCompBufferSupplier.eBufferSupplier !=
- pBufferSupplier->eBufferSupplier)
- {
- // The component providing the input port is responsible for
- // signalling the tunnelled component about the buffer supplier
- // override...
- if (iTunnelledComponent &&
- iParamPortDefinition.eDir == OMX_DirInput)
- {
- OMX_PARAM_BUFFERSUPPLIERTYPE bufferSupplierType;
- bufferSupplierType.nSize = sizeof(OMX_PARAM_BUFFERSUPPLIERTYPE);
- bufferSupplierType.nVersion = iParamPortDefinition.nVersion;
- bufferSupplierType.nPortIndex = iTunnelledPort;
- bufferSupplierType.eBufferSupplier = pBufferSupplier->eBufferSupplier;
- OMX_ERRORTYPE retValue = OMX_ErrorUndefined;
- if (OMX_ErrorNone !=
- (retValue =
- OMX_SetParameter(iTunnelledComponent,
- OMX_IndexParamCompBufferSupplier,
- &bufferSupplierType)) )
- {
- return retValue;
- }
- }
- iParamCompBufferSupplier.eBufferSupplier =
- pBufferSupplier->eBufferSupplier;
- }
-
- }
- break;
- default:
- {
- return OMX_ErrorUnsupportedIndex;
- }
- };
-
- return OMX_ErrorNone;
-
- }
-
-
-EXPORT_C OMX_ERRORTYPE
-COmxILPort::GetConfig(OMX_INDEXTYPE /*aConfigIndex*/,
- TAny* /*apComponentConfigStructure*/) const
- {
- DEBUG_PRINTF(_L8("COmxILPort::GetConfig"));
- return OMX_ErrorUnsupportedIndex;
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILPort::SetConfig(OMX_INDEXTYPE /*aConfigIndex*/,
- const TAny* /*apComponentConfigStructure*/,
- TBool& /*aUpdateProcessingFunction*/)
- {
- DEBUG_PRINTF(_L8("COmxILPort::SetConfig"));
- return OMX_ErrorUnsupportedIndex;
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILPort::GetExtensionIndex(OMX_STRING /* aParameterName */,
- OMX_INDEXTYPE* /* apIndexType */) const
- {
- // This method is intended to be overridden by the concrete ports when
- // needed...
- return OMX_ErrorUnsupportedIndex;
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILPort::PopulateBuffer(OMX_BUFFERHEADERTYPE** appBufferHdr,
- const OMX_PTR apAppPrivate,
- OMX_U32 aSizeBytes,
- OMX_U8* apBuffer,
- TBool& portPopulationCompleted)
- {
- DEBUG_PRINTF(_L8("COmxILPort::PopulateBuffer"));
-
- portPopulationCompleted = EFalse;
-
- if(aSizeBytes < iParamPortDefinition.nBufferSize)
- {
- return OMX_ErrorBadParameter;
- }
-
- // Allocate the buffer header...
- OMX_BUFFERHEADERTYPE* pHeader = new OMX_BUFFERHEADERTYPE;
- *appBufferHdr = pHeader;
- if (!pHeader)
- {
- return OMX_ErrorInsufficientResources;
- }
-
- // Here, lets discriminate between apBuffer == 0 (AllocateBuffer) and
- // apBuffer != 0 (UseBuffer)
- TUint8* pPortSpecificBuffer = 0;
- OMX_PTR pPortPrivate = 0;
- OMX_PTR pPlatformPrivate = 0;
- OMX_ERRORTYPE portSpecificErr = OMX_ErrorNone;
- if (apBuffer)
- {
- //... (UseBuffer) Do any port-specific wrapping of the received buffer,
- // if needed by the port....
- portSpecificErr = DoBufferWrapping(aSizeBytes,
- apBuffer,
- pPortPrivate,
- pPlatformPrivate,
- apAppPrivate);
- }
- else
- {
- // ... (AllocateBuffer) Do the port-specific buffer allocation ...
- portSpecificErr = DoBufferAllocation(aSizeBytes,
- pPortSpecificBuffer,
- pPortPrivate,
- pPlatformPrivate,
- apAppPrivate);
- }
-
- if (OMX_ErrorNone != portSpecificErr)
- {
- delete *appBufferHdr; *appBufferHdr = 0;
- return portSpecificErr;
- }
-
-
- // Add to local list of buffer headers...
- if (KErrNone !=
- iBufferHeaders.Append(
- TBufferInfo(pHeader,
- (apBuffer ?
- TBufferInfo::EBufferAway :
- TBufferInfo::EBufferAtHome),
- (apBuffer ?
- TBufferInfo::EBufferNotOwned :
- TBufferInfo::EBufferOwned),
- apBuffer,
- apAppPrivate,
- pPlatformPrivate,
- pPortPrivate)))
- {
- // Undo custom buffer allocation/wrapping
- if (apBuffer)
- {
- DoBufferUnwrapping(
- apBuffer,
- pPortPrivate,
- pPlatformPrivate,
- apAppPrivate);
-
- }
- else
- {
- DoBufferDeallocation(
- pPortSpecificBuffer,
- pPortPrivate,
- pPlatformPrivate,
- apAppPrivate);
- }
- delete *appBufferHdr; *appBufferHdr = NULL;
- return OMX_ErrorInsufficientResources;
- }
-
-
- // Fill in the header...
- pHeader->nSize = sizeof(OMX_BUFFERHEADERTYPE);
- pHeader->nVersion = iParamPortDefinition.nVersion;
- pHeader->pBuffer = apBuffer ? apBuffer : pPortSpecificBuffer;
- pHeader->nAllocLen = aSizeBytes;
- pHeader->nFilledLen = 0;
- pHeader->nOffset = 0;
- pHeader->pAppPrivate = apAppPrivate;
- pHeader->pPlatformPrivate = pPlatformPrivate;
- pHeader->hMarkTargetComponent = 0;
- pHeader->pMarkData = 0;
- pHeader->nTickCount = 0;
- pHeader->nTimeStamp = 0;
- pHeader->nFlags = 0;
-
-
- if (OMX_DirInput == iParamPortDefinition.eDir)
- {
- pHeader->pInputPortPrivate = pPortPrivate;
- pHeader->pOutputPortPrivate = 0;
- pHeader->nInputPortIndex = iParamPortDefinition.nPortIndex;
- pHeader->nOutputPortIndex = 0;
- }
- else
- {
- pHeader->pInputPortPrivate = 0;
- pHeader->pOutputPortPrivate = pPortPrivate;
- pHeader->nInputPortIndex = 0;
- pHeader->nOutputPortIndex = iParamPortDefinition.nPortIndex;
- }
-
- if (iParamPortDefinition.nBufferCountActual == iBufferHeaders.Count())
- {
- iParamPortDefinition.bPopulated = OMX_TRUE;
- portPopulationCompleted = ETrue;
- }
-
- return OMX_ErrorNone;
-
- }
-
-
-EXPORT_C OMX_ERRORTYPE
-COmxILPort::FreeBuffer(OMX_BUFFERHEADERTYPE* apBufferHeader,
- TBool& portDepopulationCompleted)
- {
- DEBUG_PRINTF2(_L8("COmxILPort::FreeBuffer : BUFFER [%X]"), apBufferHeader);
-
- portDepopulationCompleted = EFalse;
-
- TInt headerIndex = 0;
- if (KErrNotFound ==
- (headerIndex =
- iBufferHeaders.Find(TBufferInfo(apBufferHeader),
- TIdentityRelation<TBufferInfo>(
- &TBufferInfo::Compare))))
- {
- return OMX_ErrorBadParameter;
- }
-
-
- OMX_PTR pPortPrivate =
- OMX_DirInput == iParamPortDefinition.eDir ?
- apBufferHeader->pInputPortPrivate :
- apBufferHeader->pOutputPortPrivate;
-
- if (iBufferHeaders[headerIndex].IsBufferOwned())
- {
- DoBufferDeallocation(
- apBufferHeader->pBuffer,
- pPortPrivate,
- apBufferHeader->pPlatformPrivate,
- apBufferHeader->pAppPrivate);
- }
- else
- {
- DoBufferUnwrapping(
- apBufferHeader->pBuffer,
- pPortPrivate,
- apBufferHeader->pPlatformPrivate,
- apBufferHeader->pAppPrivate);
- }
-
- delete apBufferHeader;
- iBufferHeaders.Remove(headerIndex);
-
- if (iBufferHeaders.Count() < iParamPortDefinition.nBufferCountActual)
- {
- iParamPortDefinition.bPopulated = OMX_FALSE;
- }
-
- if (0 == iBufferHeaders.Count())
- {
- portDepopulationCompleted = ETrue;
- }
-
- return OMX_ErrorNone;
-
- }
-
-
-EXPORT_C OMX_ERRORTYPE
-COmxILPort::TunnelRequest(OMX_HANDLETYPE aTunneledComp,
- OMX_U32 aTunneledPort,
- OMX_TUNNELSETUPTYPE* apTunnelSetup)
- {
- DEBUG_PRINTF(_L8("COmxILPort::TunnelRequest"));
-
- // Check whether the tunnel is being torn down
- if (!aTunneledComp)
- {
- // Cancel existing tunnel setup, if any
- iTunnelledComponent = 0;
- return OMX_ErrorNone;
- }
-
- // Check that we are receiving a valid tunnel setup structure
- if (!apTunnelSetup)
- {
- return OMX_ErrorBadParameter;
- }
-
- // STEP 0: Retrieve the port definition from the tunnelled component...
- OMX_PARAM_PORTDEFINITIONTYPE paramPortDef;
- paramPortDef.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
- paramPortDef.nVersion = iParamPortDefinition.nVersion;
- paramPortDef.nPortIndex = aTunneledPort;
- if (OMX_ErrorNone !=
- OMX_GetParameter(aTunneledComp,
- OMX_IndexParamPortDefinition,
- ¶mPortDef) )
- {
- return OMX_ErrorUndefined;
- }
-
- if (OMX_DirOutput == iParamPortDefinition.eDir)
- {
- // OMX_DirOutput
- //
-
- // Step 1: Check that this output port is being tunnelled to an input
- // port...
- if (paramPortDef.eDir != OMX_DirInput)
- {
- return OMX_ErrorPortsNotCompatible;
- }
-
- // Step 2: Fill in the tunnel setup structure received...
- apTunnelSetup->nTunnelFlags = 0;
- apTunnelSetup->eSupplier = iParamCompBufferSupplier.eBufferSupplier;
-
- iTunnelledComponent = aTunneledComp;
- iTunnelledPort = aTunneledPort;
- }
- else
- {
- // OMX_DirInput
- //
-
- // Check that this input port is being tunnelled to an output
- // port...
- if (paramPortDef.eDir != OMX_DirOutput)
- {
- return OMX_ErrorPortsNotCompatible;
- }
-
- // Check that there is something consistent in the tunnel setup data
- // received...
- if ((apTunnelSetup->eSupplier != OMX_BufferSupplyUnspecified) &&
- (apTunnelSetup->eSupplier != OMX_BufferSupplyInput) &&
- (apTunnelSetup->eSupplier != OMX_BufferSupplyOutput))
- {
- return OMX_ErrorBadParameter;
- }
-
- // Set tunnelled component and port as they will be needed by
- // IsTunnelledPortCompatible...
- iTunnelledComponent = aTunneledComp;
- iTunnelledPort = aTunneledPort;
-
- // Check domain-specific parameter compatibility (this is delegated
- // to derived port classes)...
- if (!IsTunnelledPortCompatible(paramPortDef))
- {
- iTunnelledComponent = 0;
- return OMX_ErrorPortsNotCompatible;
- }
-
- // Now, try to get to an understanding here...Work out which port will
- // be buffer supplier...
- OMX_BUFFERSUPPLIERTYPE bufferSupplierDecision =
- OMX_BufferSupplyUnspecified;
- if (apTunnelSetup->nTunnelFlags & OMX_PORTTUNNELFLAG_READONLY ||
- ( (apTunnelSetup->eSupplier == OMX_BufferSupplyInput) &&
- (iParamCompBufferSupplier.eBufferSupplier ==
- OMX_BufferSupplyInput ||
- iParamCompBufferSupplier.eBufferSupplier ==
- OMX_BufferSupplyUnspecified) ) ||
- ( (apTunnelSetup->eSupplier == OMX_BufferSupplyUnspecified) &&
- (iParamCompBufferSupplier.eBufferSupplier ==
- OMX_BufferSupplyInput)) )
- {
- bufferSupplierDecision = OMX_BufferSupplyInput;
- }
- else
- {
- bufferSupplierDecision = OMX_BufferSupplyOutput;
- }
-
- // Set buffer supplier param in tunnelled port...
- OMX_PARAM_BUFFERSUPPLIERTYPE bufferSupplierType;
- bufferSupplierType.nSize = sizeof(OMX_PARAM_BUFFERSUPPLIERTYPE);
- bufferSupplierType.nVersion = iParamPortDefinition.nVersion;
- bufferSupplierType.nPortIndex = aTunneledPort;
- bufferSupplierType.eBufferSupplier = bufferSupplierDecision;
- if (OMX_ErrorNone !=
- OMX_SetParameter(aTunneledComp,
- OMX_IndexParamCompBufferSupplier,
- &bufferSupplierType) )
- {
- iTunnelledComponent = 0;
- return OMX_ErrorPortsNotCompatible;
- }
-
- apTunnelSetup->eSupplier = bufferSupplierDecision;
- iParamCompBufferSupplier.eBufferSupplier = bufferSupplierDecision;
-
- }
-
- return OMX_ErrorNone;
-
- }
-
-
-EXPORT_C OMX_ERRORTYPE
-COmxILPort::PopulateTunnel(TBool& portPopulationCompleted)
- {
- DEBUG_PRINTF(_L8("COmxILPort::PopulateTunnel"));
-
- __ASSERT_DEBUG(iBufferHeaders.Count() == 0,
- User::Panic(KOmxILPortPanicCategory, 1));
- __ASSERT_DEBUG(IsTunnelledAndBufferSupplier(),
- User::Panic(KOmxILPortPanicCategory, 1));
-
- portPopulationCompleted = EFalse;
-
- // STEP 1: Obtain the number of buffers that the tunnelled port requires to
- // be populated... Retrieve the port definition from the tunnelled
- // component
- OMX_PARAM_PORTDEFINITIONTYPE paramPortDef;
- paramPortDef.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
- paramPortDef.nVersion = iParamPortDefinition.nVersion;
- paramPortDef.nPortIndex = iTunnelledPort;
- if (OMX_ErrorNone !=
- OMX_GetParameter(iTunnelledComponent,
- OMX_IndexParamPortDefinition,
- ¶mPortDef) )
- {
- return OMX_ErrorUndefined;
- }
-
- // Step 2: Both ports must have the same threshold value (number of buffers
- // to be populated) before completing the transition to
- // OMX_StateIdle...Otherwise the population process would complete earlier
- // or never...
- TUint numOfBuffersToPopulate = iParamPortDefinition.nBufferCountActual;
- if(paramPortDef.nBufferCountActual !=
- iParamPortDefinition.nBufferCountActual)
- {
- numOfBuffersToPopulate =
- Max(iParamPortDefinition.nBufferCountActual,
- paramPortDef.nBufferCountActual);
- if (iParamPortDefinition.nBufferCountActual <
- numOfBuffersToPopulate)
- {
- // Update own buffer count requirements
- DEBUG_PRINTF3(_L8("COmxILPort::PopulateTunnel : Updated own nBufferCountActual - Old Value [%d] New Value [%d] "),
- iParamPortDefinition.nBufferCountActual, numOfBuffersToPopulate);
- iParamPortDefinition.nBufferCountActual = numOfBuffersToPopulate;
- }
- else
- {
- // Update peer's buffer count requirements
- DEBUG_PRINTF3(_L8("COmxILPort::PopulateTunnel : Updated peer's nBufferCountActual - Old Value [%d] New Value [%d] "),
- paramPortDef.nBufferCountActual, numOfBuffersToPopulate);
- paramPortDef.nBufferCountActual = numOfBuffersToPopulate;
- if (OMX_ErrorNone != OMX_SetParameter(iTunnelledComponent,
- OMX_IndexParamPortDefinition,
- ¶mPortDef))
- {
- DEBUG_PRINTF(_L8("COmxILPort::PopulateTunnel : Error setting nBufferCountActual in tunnelled component "));
- return OMX_ErrorUndefined;
- }
- }
- }
-
- // STEP 3: Start population of the tunnel...
- TUint sizeOfBuffersToPopulate =
- iParamPortDefinition.nBufferSize >= paramPortDef.nBufferSize ?
- iParamPortDefinition.nBufferSize :
- paramPortDef.nBufferSize;
-
- OMX_BUFFERHEADERTYPE* pHeader = 0;
- TUint8* pPortSpecificBuffer = 0;
- OMX_PTR pPortPrivate = 0;
- OMX_PTR pPlatformPrivate = 0;
- OMX_ERRORTYPE portSpecificErr = OMX_ErrorNone;
- for (TUint i=0; i<numOfBuffersToPopulate; i++)
- {
- // Allocate the buffer...
- if (OMX_ErrorNone !=
- (portSpecificErr = DoBufferAllocation(
- sizeOfBuffersToPopulate,
- pPortSpecificBuffer,
- pPortPrivate,
- pPlatformPrivate)))
- {
- // There's no point on continuing here... the tunnel will never
- // be completely populated now...
- return portSpecificErr;
- }
-
- OMX_ERRORTYPE useBufRes = DoOmxUseBuffer(iTunnelledComponent,
- &pHeader,
- iTunnelledPort,
- pPortPrivate,
- pPlatformPrivate,
- sizeOfBuffersToPopulate,
- pPortSpecificBuffer);
-
- if ((OMX_ErrorNone != useBufRes) || !pHeader)
- {
- DoBufferDeallocation(
- pPortSpecificBuffer,
- pPortPrivate,
- pPlatformPrivate);
-
- if (pHeader)
- {
- switch(useBufRes)
- {
- case OMX_ErrorIncorrectStateOperation:
- {
- // Here, the tunnelled component is not ready. Probably,
- // the IL Client has not commanded yet the component to go
- // to OMX_StateIdle. Out-of-context implementations could
- // do here a backoff-and-retry procedure. This
- // implementation can just return and expect that the IL
- // Client will detect the situation of this component not
- // transitioning to OMX_StateIdle.
- DEBUG_PRINTF(_L8("COmxILPort::PopulateTunnel : OMX_ErrorIncorrectStateOperation received from non-supplier component"));
- }
- break;
- };
- }
-
- if (OMX_ErrorInsufficientResources == useBufRes)
- {
- return OMX_ErrorInsufficientResources;
- }
- // This is a gotcha. Here there is some problem with the tunnelled
- // component. If we return the received error, this component may
- // be sending back some error code that is not allowed in
- // OMX_SendCommand. Example: The component conformance suite
- // expects here OMX_ErrorNone if the tunnelled component does not
- // support OMX_UseBuffer or some other problem. Also, we don't send
- // and error event here as there's no appropriate error for this
- // situation (OMX_ErrorPortUnresponsiveDuringAllocation is for
- // non-supplier ports). Therefore, the IL Client should recover
- // from this situation after some time by detecting that this
- // component didn't transition to OMX_StateIdle.
-
- return OMX_ErrorNone;
- }
- // Fill the data in the received header so we can correctly use it when
- // the header is at this side of the tunnel...
- if (OMX_DirInput == iParamPortDefinition.eDir)
- {
- pHeader->pInputPortPrivate = pPortPrivate;
- pHeader->nInputPortIndex = iParamPortDefinition.nPortIndex;
- }
- else // OMX_DirOutput == iParamPortDefinition.eDir
- {
- pHeader->pOutputPortPrivate = pPortPrivate;
- pHeader->nOutputPortIndex = iParamPortDefinition.nPortIndex;
- }
-
- // Add to local list of buffer headers... return if not sucessful...
- if (KErrNone !=
- iBufferHeaders.Append(
- TBufferInfo(pHeader,
- TBufferInfo::EBufferAtHome,
- TBufferInfo::EBufferOwned,
- pPortSpecificBuffer,
- 0,
- pPlatformPrivate,
- pPortPrivate)))
- {
- DoBufferDeallocation(
- pPortSpecificBuffer,
- pPortPrivate,
- pPlatformPrivate);
-
- return OMX_ErrorInsufficientResources;
- }
- }
-
- iParamPortDefinition.bPopulated = OMX_TRUE;
- portPopulationCompleted = ETrue;
-
- __ASSERT_DEBUG(iBufferHeaders.Count() ==
- iParamPortDefinition.nBufferCountActual,
- User::Panic(KOmxILPortPanicCategory, 1));
-
- return OMX_ErrorNone;
-
- }
-
-
-EXPORT_C OMX_ERRORTYPE
-COmxILPort::FreeTunnel(TBool& portDepopulationCompleted)
- {
- DEBUG_PRINTF(_L8("COmxILPort::FreeTunnel"));
-
- __ASSERT_DEBUG(iBufferHeaders.Count() ==
- iParamPortDefinition.nBufferCountActual,
- User::Panic(KOmxILPortPanicCategory, 1));
-
- __ASSERT_DEBUG(IsTunnelledAndBufferSupplier(),
- User::Panic(KOmxILPortPanicCategory, 1));
-
- const TUint numBuffersToDepopulate = iBufferHeaders.Count();
- for (TUint i=0; i<numBuffersToDepopulate; ++i)
- {
- OMX_BUFFERHEADERTYPE* pBufferHeader = iBufferHeaders[i].GetHeader();
-
- // Take some things from the header, before it gets deleted by the
- // tunnelled port...
- OMX_U8* pBuffer = pBufferHeader->pBuffer;
- OMX_PTR pPortPrivate =
- OMX_DirInput == iParamPortDefinition.eDir ?
- pBufferHeader->pInputPortPrivate :
- pBufferHeader->pOutputPortPrivate;
- OMX_PTR pAppPrivate = pBufferHeader->pAppPrivate;
- OMX_PTR pPlatformPrivate = pBufferHeader->pPlatformPrivate;
-
- DEBUG_PRINTF2(_L8("COmxILPort::FreeTunnel : BUFFER [%X]"), iBufferHeaders[i].GetHeader());
-
- OMX_ERRORTYPE freeBufRes = OMX_FreeBuffer(
- iTunnelledComponent,
- iTunnelledPort,
- pBufferHeader);
-
- // At this point, the actual buffer header should no longer exist...
- pBufferHeader = 0;
-
- // NOTE that we don't check OMX_FreeBuffer returned error here. If
- // something wrong happens at the tunnelled component side we'll
- // continue here and try to free as many buffers as possible.... at
- // least the state of this component will remain valid.... (we don't
- // report errors coming from the tunnelled component as that is its
- // responsibility....)
-
- DoBufferDeallocation(
- pBuffer,
- pPortPrivate,
- pPlatformPrivate,
- pAppPrivate);
- }
-
- // Clear the local list of headers. Note that there's no need to delete the
- // header as these have been allocated by the tunnelled port...
-
- iBufferHeaders.Reset();
- iParamPortDefinition.bPopulated = OMX_FALSE;
- portDepopulationCompleted = ETrue;
-
- __ASSERT_DEBUG(iBufferHeaders.Count() == 0,
- User::Panic(KOmxILPortPanicCategory, 1));
-
- return OMX_ErrorNone;
-
- }
-
-
-
-EXPORT_C TBool
-COmxILPort::SetBufferSent(OMX_BUFFERHEADERTYPE* apBufferHeader,
- TBool& aBufferMarkedWithOwnMark)
- {
- DEBUG_PRINTF(_L8("COmxILPort::SetBufferSent"));
-
- __ASSERT_DEBUG(apBufferHeader, User::Panic(KOmxILPortPanicCategory, 1));
-
- aBufferMarkedWithOwnMark = EFalse;
-
- TInt index = 0;
- if (KErrNotFound ==
- (index =
- iBufferHeaders.Find(TBufferInfo(apBufferHeader),
- TIdentityRelation<TBufferInfo>(
- &TBufferInfo::Compare))))
- {
- return EFalse;
- }
-
- iBufferHeaders[index].SetBufferAway();
-
- if (!iBufferMarks.IsEmpty())
- {
- // Check for existing marks in the buffer header...
- if (apBufferHeader->hMarkTargetComponent)
- {
- // We queue the mark received within the buffer header if there are
- // marks already to be delivered... it is mandatory to give a FIFO
- // preference to the marks received by a port..
- if (iBufferMarks.Elements() < KMaxBufferMarksQueueSize)
- {
- // The buffer is marked already. Store the current mark at the end
- // of the buffer mark list...
- StoreBufferMark(apBufferHeader->hMarkTargetComponent,
- apBufferHeader->pMarkData);
- }
- }
-
- // Use the first mark in the queue...
- TBufferMarkInfo* pMark = iBufferMarks.First();
- apBufferHeader->hMarkTargetComponent = pMark->ipMarkTargetComponent;
- apBufferHeader->pMarkData = pMark->ipMarkData;
- aBufferMarkedWithOwnMark = pMark->iOwnMark;
- iBufferMarks.Remove(*pMark);
- delete pMark;
- }
-
- return ETrue;
-
- }
-
-EXPORT_C TBool
-COmxILPort::SetBufferReturned(OMX_BUFFERHEADERTYPE* apBufferHeader)
- {
- DEBUG_PRINTF(_L8("COmxILPort::SetBufferReturned"));
-
- __ASSERT_DEBUG(apBufferHeader, User::Panic(KOmxILPortPanicCategory, 1));
-
- TInt index = 0;
- if (KErrNotFound ==
- (index =
- iBufferHeaders.Find(TBufferInfo(apBufferHeader),
- TIdentityRelation<TBufferInfo>(
- &TBufferInfo::Compare))))
- {
- return EFalse;
- }
-
- iBufferHeaders[index].SetBufferAtHome();
-
- return ETrue;
-
- }
-
-EXPORT_C void
-COmxILPort::SetTransitionToEnabled()
- {
- DEBUG_PRINTF(_L8("COmxILPort::SetTransitionToEnabled"));
-
- iTransitionState = EPortTransitioningToEnabled;
- iParamPortDefinition.bEnabled = OMX_TRUE;
-
- }
-
-EXPORT_C void
-COmxILPort::SetTransitionToDisabled()
- {
- DEBUG_PRINTF(_L8("COmxILPort::SetTransitionToDisabled"));
-
- iTransitionState = EPortTransitioningToDisabled;
- iParamPortDefinition.bEnabled = OMX_FALSE;
-
- }
-
-EXPORT_C void
-COmxILPort::SetTransitionToDisabledCompleted()
- {
- DEBUG_PRINTF(_L8("COmxILPort::SetTransitionToDisabledCompleted"));
-
- iTransitionState = EPortNotTransitioning;
- iParamPortDefinition.bEnabled = OMX_FALSE;
-
- }
-
-EXPORT_C void
-COmxILPort::SetTransitionToEnabledCompleted()
- {
- DEBUG_PRINTF(_L8("COmxILPort::SetTransitionToEnabledCompleted"));
-
- iTransitionState = EPortNotTransitioning;
- iParamPortDefinition.bEnabled = OMX_TRUE;
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILPort::StoreBufferMark(const OMX_MARKTYPE* apMark)
- {
- DEBUG_PRINTF(_L8("COmxILPort::StoreBufferMark"));
- TBufferMarkInfo* pTBufferMarkInfo = new TBufferMarkInfo(apMark);
- if (!pTBufferMarkInfo)
- {
- return OMX_ErrorInsufficientResources;
- }
-
- iBufferMarks.AddLast(*pTBufferMarkInfo);
-
- return OMX_ErrorNone;
-
- }
-
-
-/**
- This utility method may be called from the most derived port
- class' destructor to delete any buffer header and or buffer that may remain
- allocated in the port. This typically happens when the component is unloaded
- without being properly transitioned from OMX_StateIdle to OMX_StateLoaded.
-
- */
-EXPORT_C void
-COmxILPort::CleanUpPort()
- {
-
- // Do the clean-up here in case something went wrong and the component is
- // being unloaded in a failure scenario...
- const TInt headerCount = iBufferHeaders.Count();
- if (headerCount > 0)
- {
- if (!IsTunnelled())
- {
- // A non-tunnelled port needs to delete always the header and needs
- // to deallocate/unwrap the buffer depending on whether the buffer
- // is owned or not...
-
- RPointerArray<OMX_BUFFERHEADERTYPE> tempHeadersArray;
- for (TInt i=0; i<headerCount; ++i)
- {
- tempHeadersArray.Append(iBufferHeaders[i].GetHeader());
- }
-
- TBool portDepopulationCompleted = EFalse;
- for (TInt i=0; i<headerCount; ++i)
- {
- // Errors are ignored here ...
- FreeBuffer(tempHeadersArray[i], portDepopulationCompleted);
- }
- tempHeadersArray.Close();
-
- }
- else
- {
- if (IsTunnelledAndBufferSupplier())
- {
- // A tunnelled supplier only needs to delete the buffers, not
- // the buffer headers... Also, we cannot use the pointer to the
- // buffer header, as it may not exist anymore...
- for (TInt i=0; i<headerCount; ++i)
- {
- DoBufferDeallocation(
- iBufferHeaders[i].GetBufferPointer(),
- iBufferHeaders[i].GetPortPointer(),
- iBufferHeaders[i].GetPlatformPointer(),
- iBufferHeaders[i].GetAppPointer());
- }
-
- }
- else
- {
- // A tunnelled non-supplier needs to remove buffer headers and
- // undo the buffer wrapping, if any. We can use FreeBuffer for
- // that purpose...
- RPointerArray<OMX_BUFFERHEADERTYPE> tempHeadersArray;
- for (TInt i=0; i<headerCount; ++i)
- {
- tempHeadersArray.Append(iBufferHeaders[i].GetHeader());
- }
-
- TBool portDepopulationCompleted = EFalse;
- for (TInt i=0; i<headerCount; ++i)
- {
- // errors here...
- FreeBuffer(tempHeadersArray[i], portDepopulationCompleted);
- }
- tempHeadersArray.Close();
- }
- }
- }
-
- }
-
-/**
- This is to be overriden by concrete ports that either support more than
- one role or that want to let the IL Client to reset the component to
- some default state...
-
- @param aComponentRoleIndex The index of the role that is to be assumed by
- the component.
-
- @return OMX_ERRORTYPE
- */
-EXPORT_C OMX_ERRORTYPE
-COmxILPort::SetComponentRoleDefaults(TUint /*aComponentRoleIndex*/)
- {
- DEBUG_PRINTF(_L8("COmxILPort::SetComponentRoleDefaults"));
-
- return OMX_ErrorNotImplemented;
- }
-
-/**
- This is to be overriden by concrete ports that either support more than one
- role or that want to let the IL Client to reset the component to some
- default state...
-
- @param aPortSettingsIndex An implementation-specific identifier that the
- implementation associates to the setting(s) that need(s) updating in the
- port.
-
- @param aPortSettings A buffer descriptor that contains an
- implementation-specific structure with the new setting(s) that need to
- be updated in the port.
-
- @param [output] aEventForILClient An event that the port may choose to
- deliver to the IL Client. This should be one of OMX_EventPortSettingsChanged
- or OMX_EventPortFormatDetected. Use OMX_EventMax if no event need to be
- sent.
- */
-EXPORT_C OMX_ERRORTYPE
-COmxILPort::DoPortReconfiguration(TUint /* aPortSettingsIndex */,
- const TDesC8& /* aPortSettings */,
- OMX_EVENTTYPE& aEventForILClient)
- {
- DEBUG_PRINTF(_L8("COmxILPort::DoPortReconfiguration"));
-
- // This means no need to notify the IL Client...
- aEventForILClient = OMX_EventMax;
-
- return OMX_ErrorNotImplemented;
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILPort::StoreBufferMark(OMX_HANDLETYPE& ipMarkTargetComponent,
- OMX_PTR& ipMarkData)
- {
- DEBUG_PRINTF(_L8("COmxILPort::StoreBufferMark"));
-
- TBufferMarkInfo* pTBufferMarkInfo =
- new TBufferMarkInfo(ipMarkTargetComponent,
- ipMarkData, EFalse);
- if (!pTBufferMarkInfo)
- {
- return OMX_ErrorInsufficientResources;
- }
-
- iBufferMarks.AddLast(*pTBufferMarkInfo);
-
- return OMX_ErrorNone;
-
- }
-
-EXPORT_C TBool
-COmxILPort::HasAllBuffersAtHome() const
- {
-
- __ASSERT_ALWAYS(IsTunnelledAndBufferSupplier(),
- User::Panic(KOmxILPortPanicCategory, 1));
-
- const TInt headerCount = iBufferHeaders.Count();
- for (TInt i=0; i<headerCount; ++i)
- {
- if (!iBufferHeaders[i].IsBufferAtHome())
- {
- DEBUG_PRINTF(_L8("COmxILPort::HasAllBuffersAtHome : [NO]"));
- return EFalse;
- }
- }
-
- DEBUG_PRINTF(_L8("COmxILPort::HasAllBuffersAtHome : [YES]"));
- return ETrue;
-
- }
-
-EXPORT_C TBool
-COmxILPort::IsBufferAtHome(OMX_BUFFERHEADERTYPE* apBufferHeader) const
- {
- DEBUG_PRINTF2(_L8("COmxILPort::IsBufferAtHome : [%X]"), apBufferHeader);
-
- TInt headerIndex = 0;
- if (KErrNotFound ==
- (headerIndex =
- iBufferHeaders.Find(TBufferInfo(apBufferHeader),
- TIdentityRelation<TBufferInfo>(
- &TBufferInfo::Compare))))
- {
- User::Panic(KOmxILPortPanicCategory, 1);
- }
-
- DEBUG_PRINTF2(_L8("COmxILPort::IsBufferAtHome : [%s]"), iBufferHeaders[headerIndex].IsBufferAtHome() ? "YES" : "NO");
-
- return iBufferHeaders[headerIndex].IsBufferAtHome();
-
- }
-
-
-/**
- This method provides a mechanism for ports to place the port-specific
- buffer allocation logic (typically used in an OMX_AllocateBuffer
- scenario).
-
- @param aSizeBytes The size in bytes of the buffer to be allocated.
-
- @param [OUT] apPortSpecificBuffer A pointer to the memory area allocated by
- the port.
-
- @param [OUT] apPortPrivate A pointer that refers to an optional
- port-specific structure.
-
- @param apPlatformPrivate[OUT] A pointer to an optional platform-specific
- structure.
-
- @param apAppPrivate A pointer that refers to a buffer supplier-specific
- structure.
-
- @return OMX_ERRORTYPE
-*/
-EXPORT_C OMX_ERRORTYPE
-COmxILPort::DoBufferAllocation(OMX_U32 aSizeBytes,
- OMX_U8*& apPortSpecificBuffer,
- OMX_PTR& apPortPrivate,
- OMX_PTR& /* apPlatformPrivate */,
- OMX_PTR /* apAppPrivate = 0 */)
- {
- DEBUG_PRINTF2(_L8("COmxILPort::DoBufferAllocation : aSizeBytes[%u]"), aSizeBytes);
-
- __ASSERT_DEBUG(aSizeBytes > 0, User::Panic(KOmxILPortPanicCategory, 1));
-
- CMMFDescriptorBuffer* pDescBuffer = 0;
- TRAPD(allocRes, pDescBuffer = CMMFDescriptorBuffer::NewL(aSizeBytes));
- if (KErrNone != allocRes)
- {
- return OMX_ErrorInsufficientResources;
- }
-
- apPortSpecificBuffer = const_cast<TUint8*>(pDescBuffer->Data().Ptr());
- apPortPrivate = static_cast<CMMFBuffer*>(pDescBuffer);
-
- return OMX_ErrorNone;
-
- }
-
-/**
- This method provides a mechanism for ports to place the port-specific
- buffer deallocation logic (typically used in an OMX_FreeBuffer
- scenario).
-
- @param apPortSpecificBuffer A pointer to the memory area to be deallocated
- by the port.
-
- @param apPortPrivate A pointer that refers to a port-specific structure.
-
- @param apPlatformPrivate A pointer to an optional platform-specific
- structure.
-
- @param apAppPrivate A pointer that refers to a buffer supplier-specific
- structure.
-
-*/
-EXPORT_C void
-COmxILPort::DoBufferDeallocation(OMX_PTR /*apPortSpecificBuffer */,
- OMX_PTR apPortPrivate,
- OMX_PTR /* apPlatformPrivate */,
- OMX_PTR /* apAppPrivate = 0 */)
- {
- DEBUG_PRINTF(_L8("COmxILPort::DoBufferDeallocation"));
-
- __ASSERT_DEBUG(apPortPrivate, User::Panic(KOmxILPortPanicCategory, 1));
-
- delete reinterpret_cast<CMMFBuffer*>(apPortPrivate);
-
- }
-
-/**
- This method provides a mechanism for ports to place the port-specific buffer
- wrapping logic (typically used in an OMX_UseBuffer scenario).
-
- @param aSizeBytes The size in bytes of the buffer to be wrapped.
-
- @param apBuffer A pointer received from the IL Client or another
- component that references the allocated memory area .
-
- @param [OUT] apPortPrivate A pointer that refers to a port-specific
- structure.
-
- @param [OUT] apPlatformPrivate A pointer to an optional platform-specific
- structure.
-
- @param [OUT] apAppPrivate A pointer that refers to a buffer
- supplier-specific structure.
-
- @return OMX_ERRORTYPE
-*/
-EXPORT_C OMX_ERRORTYPE
-COmxILPort::DoBufferWrapping(OMX_U32 aSizeBytes,
- OMX_U8* apBuffer,
- OMX_PTR& apPortPrivate,
- OMX_PTR& /* apPlatformPrivate */,
- OMX_PTR /* apAppPrivate = 0 */)
- {
- DEBUG_PRINTF(_L8("COmxILPort::DoBufferWrapping"));
-
- __ASSERT_DEBUG(aSizeBytes > 0 && apBuffer,
- User::Panic(KOmxILPortPanicCategory, 1));
-
- CMMFBuffer* pMmfBuffer = 0;
- TPtr8 ptr(apBuffer, aSizeBytes, aSizeBytes);
- TRAPD(allocRes, pMmfBuffer = CMMFPtrBuffer::NewL(ptr));
- if (KErrNone != allocRes)
- {
- return OMX_ErrorInsufficientResources;
- }
-
- apPortPrivate = pMmfBuffer;
-
- return OMX_ErrorNone;
-
- }
-
-/**
- This method provides a mechanism for ports to place the port-specific buffer
- unwrapping logic (typically used in an OMX_FreeBuffer scenario).
-
- @param apPortSpecificBuffer A pointer to the allocated memory area.
-
- @param apPortPrivate A pointer that refers to a port-specific structure.
-
- @param apPlatformPrivate A pointer to an optional platform-specific
- structure.
-
- @param apAppPrivate A pointer that refers to a buffer supplier-specific
- structure.
-
-*/
-EXPORT_C void
-COmxILPort::DoBufferUnwrapping(OMX_PTR /* apBuffer*/,
- OMX_PTR appPortPrivate,
- OMX_PTR /* apPlatformPrivate */,
- OMX_PTR /* apAppPrivate = 0 */)
- {
-
- DEBUG_PRINTF(_L8("COmxILPort::DoBufferUnwrapping"));
-
- __ASSERT_DEBUG(appPortPrivate, User::Panic(KOmxILPortPanicCategory, 1));
-
- delete reinterpret_cast<CMMFBuffer*>(appPortPrivate);
-
- }
-
-/**
- This method gets called during tunnelled buffer allocation (i.e.,
- PopulateTunnel). This is to allow component implementations to override this
- default implementation in a way that the pAppPrivate pointer parameter of
- OMX_UseBuffer can be used to convey pPortPrivate or pPlatformPrivate to the
- tunnelled component.
-
- @param aTunnelledComponent Handle to the tunnelled component
-
- @param [OUT] appBufferHdr The buffer header that will be allocated by the
- tunnelled component
-
- @param aTunnelledPortIndex The index of the tunnelled port
-
- @param apPortPrivate pPortPrivate pointer as returned by DoBufferAllocation
-
- @param apPlatformPrivate pPlatformPrivate pointer as returned by
- DoBufferAllocation
-
- @param aSizeBytes The size in bytes of the to be allocated buffer
-
- @param apBuffer A pointer to the allocated buffer
-
- @return OMX_ERRORTYPE
-
-*/
-EXPORT_C OMX_ERRORTYPE
-COmxILPort::DoOmxUseBuffer(OMX_HANDLETYPE aTunnelledComponent,
- OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aTunnelledPortIndex,
- OMX_PTR /* apPortPrivate */,
- OMX_PTR /* apPlatformPrivate */,
- OMX_U32 aSizeBytes,
- OMX_U8* apBuffer)
- {
-
- DEBUG_PRINTF(_L8("COmxILPort::DoOmxUseBuffer"));
-
- return OMX_UseBuffer(
- aTunnelledComponent,
- appBufferHdr,
- aTunnelledPortIndex,
- 0,
- aSizeBytes,
- apBuffer);
-
- }
-
-EXPORT_C TBool
-COmxILPort::TBufferInfo::Compare(const TBufferInfo& aBi1,
- const TBufferInfo& aBi2)
- {
- return (aBi1.GetHeader() == aBi2.GetHeader() ? ETrue : EFalse);
- }
--- a/omxil/omxilcomponentcommon/src/common/omxilport.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,545 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-#ifndef OMXILPORT_H
-#define OMXILPORT_H
-
-#include <e32base.h>
-
-#include <openmax/il/khronos/v1_x/OMX_Component.h>
-#include "omxilspecversion.h"
-
-
-/**
- Base Port Panic category
-*/
-_LIT(KOmxILPortPanicCategory, "OmxILPort");
-
-
-// Forward declarations
-class TOmxILCommonPortData;
-
-/**
- OpenMAX IL component port base class.
-*/
-class COmxILPort : public CBase
- {
-
-public:
-
- static const TInt KMaxBufferMarksQueueSize = 10;
- static const TInt KBufferMarkPropagationPortNotNeeded = 0x7FFFFFFF;
-
-public:
-
- IMPORT_C ~COmxILPort();
-
- /**
- This method is used to retrieve the local OpenMAX IL parameter indexes
- managed by the specific port. The implementation should collect indexes
- from the parent class. Local indexes should be appended in order to the
- list received as parameter. The implementation should handle index
- duplication as a non-error situation (i.e., the resulting list will
- contain unique indexes).
-
- @param aIndexArray An array of parameter indexes where the local
- indexes are to be appended.
-
- @return OMX_ERRORTYPE
- */
- IMPORT_C virtual OMX_ERRORTYPE GetLocalOmxParamIndexes(
- RArray<TUint>& aIndexArray) const = 0;
-
- /**
- This method is used to retrieve the local OpenMAX IL config indexes
- managed by the specific port. The implementation should collect indexes
- from the parent class. Local indexes should be appended in order to the
- list received as parameter. The implementation should handle index
- duplication as a non-error situation (i.e., the resulting list will
- contain unique indexes).
-
- @param aIndexArray An array of config indexes where the local indexes
- are to be appended.
-
- @return OMX_ERRORTYPE
- */
- IMPORT_C virtual OMX_ERRORTYPE GetLocalOmxConfigIndexes(
- RArray<TUint>& aIndexArray) const = 0;
-
- /**
- Port-specific version of the OpenMAX IL GetParameter API.
-
- @param aParamIndex The index of the structure that is to be filled.
- @param apComponentParameterStructure A pointer to the IL structure.
-
- @return OMX_ERRORTYPE
- */
- IMPORT_C virtual OMX_ERRORTYPE GetParameter(
- OMX_INDEXTYPE aParamIndex,
- TAny* apComponentParameterStructure) const = 0;
-
- /**
- Port-specific version of the OpenMAX IL SetParameter API.
-
- @param aParamIndex The index of the structure that is to be set.
- @param apComponentParameterStructure A pointer to the IL structure.
- @param aUpdateProcessingFunction A flag to signal that the component's
- processing function needs to be updated with this structure.
-
- @return OMX_ERRORTYPE
- */
- IMPORT_C virtual OMX_ERRORTYPE SetParameter(
- OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure,
- TBool& aUpdateProcessingFunction) = 0;
-
- IMPORT_C virtual OMX_ERRORTYPE GetConfig(
- OMX_INDEXTYPE aConfigIndex,
- TAny* apComponentConfigStructure) const;
-
- IMPORT_C virtual OMX_ERRORTYPE SetConfig(
- OMX_INDEXTYPE aConfigIndex,
- const TAny* apComponentConfigStructure,
- TBool& aUpdateProcessingFunction);
-
- IMPORT_C virtual OMX_ERRORTYPE GetExtensionIndex(
- OMX_STRING aParameterName,
- OMX_INDEXTYPE* apIndexType) const;
-
- IMPORT_C virtual OMX_ERRORTYPE PopulateBuffer(
- OMX_BUFFERHEADERTYPE** appBufferHdr,
- const OMX_PTR apAppPrivate,
- OMX_U32 aSizeBytes,
- OMX_U8* apBuffer,
- TBool& portPopulationCompleted);
-
- IMPORT_C virtual OMX_ERRORTYPE FreeBuffer(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- TBool& portDepopulationCompleted);
-
- IMPORT_C virtual OMX_ERRORTYPE TunnelRequest(
- OMX_HANDLETYPE aTunneledComp,
- OMX_U32 aTunneledPort,
- OMX_TUNNELSETUPTYPE* apTunnelSetup);
-
- IMPORT_C virtual OMX_ERRORTYPE PopulateTunnel(
- TBool& portPopulationCompleted);
-
- IMPORT_C virtual OMX_ERRORTYPE FreeTunnel(
- TBool& portDepopulationCompleted);
-
- IMPORT_C virtual TBool SetBufferSent(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- TBool& aBufferMarkedWithOwnMark);
-
- IMPORT_C virtual TBool SetBufferReturned(
- OMX_BUFFERHEADERTYPE* apBufferHeader);
-
- IMPORT_C virtual void SetTransitionToDisabled();
-
- IMPORT_C virtual void SetTransitionToEnabled();
-
- IMPORT_C virtual void SetTransitionToDisabledCompleted();
-
- IMPORT_C virtual void SetTransitionToEnabledCompleted();
-
- IMPORT_C virtual OMX_ERRORTYPE StoreBufferMark(
- const OMX_MARKTYPE* pMark);
-
- IMPORT_C virtual OMX_ERRORTYPE SetComponentRoleDefaults(
- TUint aComponentRoleIndex);
-
- IMPORT_C virtual OMX_ERRORTYPE DoPortReconfiguration(
- TUint aPortSettingsIndex,
- const TDesC8& aPortSettings,
- OMX_EVENTTYPE& aEventForILClient);
-
- inline OMX_DIRTYPE Direction() const;
-
- inline TBool IsEnabled() const;
-
- inline TBool IsPopulated() const;
-
- inline TBool IsDePopulated() const;
-
- inline TBool IsTunnelled() const;
-
- inline TBool IsTunnelledAndBufferSupplier() const;
-
- IMPORT_C virtual TBool HasAllBuffersAtHome() const;
-
- inline TBool IsTransitioningToEnabled() const;
-
- inline TBool IsTransitioningToDisabled() const;
-
- IMPORT_C virtual TBool IsBufferAtHome(
- OMX_BUFFERHEADERTYPE* apHeaderHeader) const;
-
- inline OMX_U32 Index() const;
-
- inline OMX_PORTDOMAINTYPE Domain() const;
-
- inline OMX_U32 Count() const;
-
- inline OMX_BUFFERHEADERTYPE* const& operator[](TInt anIndex) const;
-
- inline OMX_BUFFERHEADERTYPE*& operator[](TInt anIndex);
-
- inline OMX_U32 BufferMarkPropagationPort() const;
-
-protected:
-
- class TBufferMarkInfo;
-
- /**
- Buffer mark info list
- */
- class TBufferMarkInfoQue :
- public TSglQue<TBufferMarkInfo>
- {
-
- public:
-
- // Convenience typedef....
- typedef TSglQue<TBufferMarkInfo> Tq;
-
- public:
-
- inline explicit TBufferMarkInfoQue(TInt aOffset);
-
- inline TBufferMarkInfo* First() const;
-
- inline void AddLast(TBufferMarkInfo& aRef);
-
- inline void Remove(TBufferMarkInfo& aRef);
-
- inline TInt Elements() const;
-
- inline void ResetAndDestroy();
-
- private:
-
- TBufferMarkInfoQue();
- void AddFirst(TBufferMarkInfo& aRef);
- TBool IsFirst(const TBufferMarkInfo* aPtr) const;
- TBool IsLast(const TBufferMarkInfo* aPtr) const;
-
- TBufferMarkInfo* Last() const;
-
- private:
-
- TInt iNumElements;
-
- };
-
-
- class TBufferInfo;
-
-protected:
-
- enum TPortIntermediateState
- {
- EPortNotTransitioning,
- EPortTransitioningToDisabled,
- EPortTransitioningToEnabled
- };
-
-
-protected:
-
- IMPORT_C explicit COmxILPort(const TOmxILCommonPortData& aCommonPortData);
-
- /**
- When the IL Client calls SetParameter with index
- OMX_IndexParamPortDefinition, this method is called to set the fields in
- the OMX_PARAM_PORTDEFINITIONTYPE (@see iParamPortDefinition) structure
- that are specific to this port's domain.
-
- @param aPortDefinition The OpenMAX IL structure received from the IL Client.
- @param aUpdateProcessingFunction A flag to signal that the component's
- processing function needs to be updated with the this structure.
-
- @return OMX_ERRORTYPE
- */
- virtual OMX_ERRORTYPE SetFormatInPortDefinition(
- const OMX_PARAM_PORTDEFINITIONTYPE& aPortDefinition,
- TBool& aUpdateProcessingFunction) = 0;
-
- /**
- On a tunnel request, this method is called to check the compatibility of
- the fields in the OMX_PARAM_PORTDEFINITIONTYPE structure of the
- tunnelled component that are specific to this port's domain.
-
- @param aPortDefinition The OpenMAX IL structure received from a
- tunnelled component.
-
- @return ETrue if compatible, EFalse otherwise.
- */
- virtual TBool IsTunnelledPortCompatible(
- const OMX_PARAM_PORTDEFINITIONTYPE& aPortDefinition) const = 0;
-
- IMPORT_C virtual OMX_ERRORTYPE DoBufferAllocation(
- OMX_U32 aSizeBytes,
- OMX_U8*& apPortSpecificBuffer,
- OMX_PTR& apPortPrivate,
- OMX_PTR& apPlatformPrivate,
- OMX_PTR apAppPrivate = 0);
-
- IMPORT_C virtual void DoBufferDeallocation(
- OMX_PTR apPortSpecificBuffer,
- OMX_PTR apPortPrivate,
- OMX_PTR apPlatformPrivate,
- OMX_PTR apAppPrivate = 0);
-
- IMPORT_C virtual OMX_ERRORTYPE DoBufferWrapping(
- OMX_U32 aSizeBytes,
- OMX_U8* apBuffer,
- OMX_PTR& apPortPrivate,
- OMX_PTR& apPlatformPrivate,
- OMX_PTR apAppPrivate = 0);
-
- IMPORT_C virtual void DoBufferUnwrapping(
- OMX_PTR apPortSpecificBuffer,
- OMX_PTR apPortPrivate,
- OMX_PTR apPlatformPrivate,
- OMX_PTR apAppPrivate = 0);
-
- IMPORT_C virtual OMX_ERRORTYPE DoOmxUseBuffer(
- OMX_HANDLETYPE aTunnelledComponent,
- OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aTunnelledPortIndex,
- OMX_PTR apPortPrivate,
- OMX_PTR apPlatformPrivate,
- OMX_U32 aSizeBytes,
- OMX_U8* apBuffer);
-
- template<typename T>
- inline OMX_ERRORTYPE GetParamStructureFromTunnel(
- T& aComponentConfigStructure, OMX_INDEXTYPE aParamIndex) const;
-
- IMPORT_C OMX_ERRORTYPE StoreBufferMark(
- OMX_HANDLETYPE& ipMarkTargetComponent,
- OMX_PTR& ipMarkData);
-
- IMPORT_C void CleanUpPort();
-
-protected:
-
- // Tunnelled component
- OMX_HANDLETYPE iTunnelledComponent;
-
- // Tunnelled component's port
- OMX_U32 iTunnelledPort;
-
- // Buffer headers store
- RArray<TBufferInfo> iBufferHeaders;
-
- // Buffer marks store
- TBufferMarkInfoQue iBufferMarks;
-
- // Port's intermediate state to enabled or disabled
- TPortIntermediateState iTransitionState;
-
- // Associated port that will be used to propagate buffer marks
- OMX_U32 iBufferMarkPropagationPortIndex;
-
- // OpenMAX IL port definition structure
- OMX_PARAM_PORTDEFINITIONTYPE iParamPortDefinition;
-
- // OpenMAX IL buffer supplier structure
- OMX_PARAM_BUFFERSUPPLIERTYPE iParamCompBufferSupplier;
-
- };
-
-
-/**
- Structure used to pass the common information that an OpenMAX IL port needs
- at instantiation time.
-*/
-class TOmxILCommonPortData
- {
-
-public:
-
- // OMX specification version information
- OMX_VERSIONTYPE iOmxVersion;
- // Port number the structure applies to
- OMX_U32 iPortIndex;
- // Direction (input or output) of this port
- OMX_DIRTYPE iDirection;
- // The minimum number of buffers this port requires
- OMX_U32 iBufferCountMin;
- // Minimum size, in bytes, for buffers to be used for this port
- OMX_U32 iBufferSizeMin;
- // Domain of the port
- OMX_PORTDOMAINTYPE iPortDomain;
- // Buffers contiguous requirement (true or false)
- OMX_BOOL iBuffersContiguous;
- // Buffer aligment requirements
- OMX_U32 iBufferAlignment;
- // Port supplier preference when tunneling between two ports
- OMX_BUFFERSUPPLIERTYPE iBufferSupplier;
-
- // \brief This is the associated port that will be used to propagate buffer marks
- // found in incoming buffer headers.
- //
- // In general, for any output port, this parameter should be configured
- // with constant COmxILPort::KBufferMarkPropagationPortNotNeeded except
- // for an output port of a source component, in which case it must be used
- // the same index of the port that this structure applies to. For an input
- // port of a sink component,
- // COmxILPort::KBufferMarkPropagationPortNotNeeded must also be used.
- OMX_U32 iBufferMarkPropagationPortIndex;
-
- // Constructor
- IMPORT_C TOmxILCommonPortData(
- OMX_VERSIONTYPE aOmxVersion,
- OMX_U32 aPortIndex,
- OMX_DIRTYPE aDirection,
- OMX_U32 aBufferCountMin,
- OMX_U32 aBufferSizeMin,
- OMX_PORTDOMAINTYPE aPortDomain,
- OMX_BOOL aBuffersContiguous,
- OMX_U32 aBufferAlignment,
- OMX_BUFFERSUPPLIERTYPE aBufferSupplier,
- OMX_U32 aBufferMarkPropagationPortIndex);
-
- };
-
-/**
- Buffer mark info structure
-*/
-class COmxILPort::TBufferMarkInfo
- {
-
-public:
-
- inline explicit TBufferMarkInfo(
- const OMX_MARKTYPE*& apMark,
- TBool aOwnMark = ETrue);
-
- inline TBufferMarkInfo(
- OMX_HANDLETYPE& apMarkTargetComponent,
- OMX_PTR& apMarkData,
- TBool aOwnMark = ETrue);
-
-public:
-
- OMX_HANDLETYPE ipMarkTargetComponent;
- OMX_PTR ipMarkData;
- TBool iOwnMark;
- TSglQueLink iLink;
-
- };
-
-/**
- Buffer info structure
-*/
-class COmxILPort::TBufferInfo
- {
-
-public:
-
- enum THeaderLocationProperty
- {
- EBufferAtHome = 0x01,
- EBufferAway = 0x00
- };
-
- enum THeaderOwnershipProperty
- {
- EBufferOwned = 0x02,
- EBufferNotOwned = 0x00
- };
-
-public:
-
- inline TBufferInfo(OMX_BUFFERHEADERTYPE* apHeader,
- THeaderLocationProperty aLocation,
- THeaderOwnershipProperty aOwnership,
- OMX_U8* apBuffer,
- OMX_PTR apApp,
- OMX_PTR apPlatform,
- OMX_PTR apPort);
-
- inline explicit TBufferInfo(OMX_BUFFERHEADERTYPE* apHeader);
-
- IMPORT_C static TBool Compare(const TBufferInfo& aBi1,
- const TBufferInfo& aBi2);
-
- inline const OMX_BUFFERHEADERTYPE* GetHeader() const;
-
- inline OMX_BUFFERHEADERTYPE* GetHeader();
-
- inline operator OMX_BUFFERHEADERTYPE*&();
-
- inline operator OMX_BUFFERHEADERTYPE* const&() const;
-
- inline OMX_U8* GetBufferPointer() const;
-
- inline OMX_U8* GetBufferPointer();
-
- inline OMX_PTR GetPortPointer() const;
-
- inline OMX_PTR GetPortPointer();
-
- inline OMX_PTR GetPlatformPointer() const;
-
- inline OMX_PTR GetPlatformPointer();
-
- inline OMX_PTR GetAppPointer() const;
-
- inline OMX_PTR GetAppPointer();
-
- inline void SetBufferAtHome();
-
- inline void SetBufferAway();
-
- inline void SetBufferOwned();
-
- inline void SetBufferNotOwned();
-
- inline TBool IsBufferAtHome() const;
-
- inline TBool IsBufferOwned() const;
-
-private:
-
- enum THeaderPropertyMask
- {
- EBufferAwayMask = 0xFE,
- EBufferNotOwnedMask = 0xFD
- };
-
-private:
-
- OMX_BUFFERHEADERTYPE* ipHeader;
- TUint8 iBufferProperties;
- OMX_U8* ipBuffer;
- OMX_PTR ipApp;
- OMX_PTR ipPlatform;
- OMX_PTR ipPort;
-
- };
-
-#include "omxilport.inl"
-
-#endif // OMXILPORT_H
--- a/omxil/omxilcomponentcommon/src/common/omxilport.inl Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,372 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-inline OMX_DIRTYPE
-COmxILPort::Direction() const
- {
- return iParamPortDefinition.eDir;
- }
-
-inline TBool
-COmxILPort::IsEnabled() const
- {
- return iParamPortDefinition.bEnabled;
- }
-
-inline TBool
-COmxILPort::IsPopulated() const
- {
- return (OMX_TRUE == iParamPortDefinition.bPopulated ? ETrue : EFalse);
- }
-
-inline TBool
-COmxILPort::IsDePopulated() const
- {
- return (iBufferHeaders.Count() == 0 ? ETrue : EFalse);
- }
-
-inline TBool
-COmxILPort::IsTunnelled() const
- {
- return (iTunnelledComponent != 0 ? ETrue : EFalse);
- }
-
-inline TBool
-COmxILPort::IsTunnelledAndBufferSupplier() const
- {
- TBool retValue = (
- iTunnelledComponent &&
- (((iParamCompBufferSupplier.eBufferSupplier ==
- OMX_BufferSupplyInput)
- &&
- (iParamPortDefinition.eDir == OMX_DirInput))
- ||
- ((iParamCompBufferSupplier.eBufferSupplier == OMX_BufferSupplyOutput)
- &&
- (iParamPortDefinition.eDir == OMX_DirOutput)))
- );
-
- return retValue;
-
- }
-
-inline TBool
-COmxILPort::IsTransitioningToEnabled() const
- {
- return (iTransitionState == EPortTransitioningToEnabled ? ETrue : EFalse);
- }
-
-inline TBool
-COmxILPort::IsTransitioningToDisabled() const
- {
- return (iTransitionState == EPortTransitioningToDisabled ? ETrue : EFalse);
- }
-
-inline OMX_U32
-COmxILPort::Index() const
- {
- return iParamPortDefinition.nPortIndex;
- }
-
-inline OMX_PORTDOMAINTYPE
-COmxILPort::Domain() const
- {
- return iParamPortDefinition.eDomain;
- }
-
-inline OMX_U32
-COmxILPort::Count() const
- {
- return iBufferHeaders.Count();
- }
-
-inline OMX_BUFFERHEADERTYPE* const&
-COmxILPort::operator[](TInt anIndex) const
- {
- return this->operator[](anIndex);
- }
-
-inline OMX_BUFFERHEADERTYPE*&
-COmxILPort::operator[](TInt anIndex)
- {
- __ASSERT_ALWAYS((anIndex>=0 && anIndex<iBufferHeaders.Count()),
- User::Panic(KOmxILPortPanicCategory, 1));
- return iBufferHeaders[anIndex];
- }
-
-
-inline OMX_U32
-COmxILPort::BufferMarkPropagationPort() const
- {
- return iBufferMarkPropagationPortIndex;
- }
-
-
-template<typename T>
-inline OMX_ERRORTYPE
-COmxILPort::GetParamStructureFromTunnel(
- T& aComponentConfigStructure, OMX_INDEXTYPE aParamIndex) const
- {
-
- __ASSERT_ALWAYS(iTunnelledComponent,
- User::Panic(KOmxILPortPanicCategory, 1));
-
- aComponentConfigStructure.nSize = sizeof(T);
- aComponentConfigStructure.nVersion = TOmxILSpecVersion();
- aComponentConfigStructure.nPortIndex = iTunnelledPort;
-
- if (OMX_ErrorNone !=
- OMX_GetParameter(iTunnelledComponent,
- aParamIndex,
- &aComponentConfigStructure) )
- {
- return OMX_ErrorUndefined;
- }
-
- return OMX_ErrorNone;
-
- }
-
-
-
-inline
-COmxILPort::TBufferMarkInfo::TBufferMarkInfo(
- const OMX_MARKTYPE*& apMark,
- TBool aOwnMark /* = ETrue */)
- :
- ipMarkTargetComponent(apMark->hMarkTargetComponent),
- ipMarkData(apMark->pMarkData),
- iOwnMark(aOwnMark)
- {
- __ASSERT_DEBUG(ipMarkTargetComponent,
- User::Panic(KOmxILPortPanicCategory, 1));
- }
-
-inline
-COmxILPort::TBufferMarkInfo::TBufferMarkInfo(
- OMX_HANDLETYPE& apMarkTargetComponent,
- OMX_PTR& apMarkData,
- TBool aOwnMark /* = ETrue */)
- :
- ipMarkTargetComponent(apMarkTargetComponent),
- ipMarkData(apMarkData),
- iOwnMark(aOwnMark)
- {
- __ASSERT_DEBUG(ipMarkTargetComponent,
- User::Panic(KOmxILPortPanicCategory, 1));
- }
-
-inline
-COmxILPort::TBufferMarkInfoQue::TBufferMarkInfoQue(TInt aOffset)
- :
- Tq(aOffset),
- iNumElements(0)
- {
- }
-
-inline COmxILPort::TBufferMarkInfo*
-COmxILPort::TBufferMarkInfoQue::First() const
- {
- return Tq::First();
- }
-
-inline void
-COmxILPort::TBufferMarkInfoQue::AddLast(COmxILPort::TBufferMarkInfo& aRef)
- {
- Tq::AddLast(aRef);
- ++iNumElements;
- }
-
-inline void
-COmxILPort::TBufferMarkInfoQue::Remove(COmxILPort::TBufferMarkInfo& aRef)
- {
- Tq::Remove(aRef);
- --iNumElements;
- }
-
-inline TInt
-COmxILPort::TBufferMarkInfoQue::Elements() const
- {
- return iNumElements;
- }
-
-inline void
-COmxILPort::TBufferMarkInfoQue::ResetAndDestroy()
- {
- while (!Tq::IsEmpty())
- {
- COmxILPort::TBufferMarkInfo* pMark = Tq::First();
- __ASSERT_DEBUG(pMark, User::Panic(KOmxILPortPanicCategory, 1));
- Tq::Remove(*pMark);
- delete pMark;
- }
- iNumElements = 0;
- }
-
-
-inline
-COmxILPort::TBufferInfo::TBufferInfo(
- OMX_BUFFERHEADERTYPE* apHeader,
- THeaderLocationProperty aLocation,
- THeaderOwnershipProperty aOwnership,
- OMX_U8* apBuffer,
- OMX_PTR apApp,
- OMX_PTR apPlatform,
- OMX_PTR apPort)
- :
- ipHeader(apHeader),
- iBufferProperties(0),
- ipBuffer(apBuffer),
- ipApp(apApp),
- ipPlatform(apPlatform),
- ipPort(apPort)
- {
- __ASSERT_DEBUG(ipHeader, User::Panic(KOmxILPortPanicCategory, 1));
- iBufferProperties = aLocation | aOwnership;
- }
-
-
-// This constructor should only be used for array look-ups
-inline
-COmxILPort::TBufferInfo::TBufferInfo(
- OMX_BUFFERHEADERTYPE* apHeader)
- :
- ipHeader(apHeader),
- iBufferProperties(0),
- ipBuffer(0),
- ipApp(0),
- ipPlatform(0),
- ipPort(0)
- {
- __ASSERT_DEBUG(ipHeader, User::Panic(KOmxILPortPanicCategory, 1));
- iBufferProperties = EBufferAtHome | EBufferOwned;
- }
-
-
-inline const OMX_BUFFERHEADERTYPE*
-COmxILPort::TBufferInfo::GetHeader() const
- {
- return ipHeader;
- }
-
-inline OMX_BUFFERHEADERTYPE*
-COmxILPort::TBufferInfo::GetHeader()
- {
- return ipHeader;
- }
-
-inline
-COmxILPort::TBufferInfo::operator OMX_BUFFERHEADERTYPE*&()
- {
- return ipHeader;
- }
-
-inline
-COmxILPort::TBufferInfo::operator OMX_BUFFERHEADERTYPE* const&() const
- {
- return ipHeader;
- }
-
-inline OMX_U8*
-COmxILPort::TBufferInfo::GetBufferPointer() const
- {
- return ipBuffer;
- }
-
-inline OMX_U8*
-COmxILPort::TBufferInfo::GetBufferPointer()
- {
- return ipBuffer;
- }
-
-inline OMX_PTR
-COmxILPort::TBufferInfo::GetPortPointer() const
- {
- return ipPort;
- }
-
-inline OMX_PTR
-COmxILPort::TBufferInfo::GetPortPointer()
- {
- return ipPort;
- }
-
-inline OMX_PTR
-COmxILPort::TBufferInfo::GetPlatformPointer() const
- {
- return ipPlatform;
- }
-
-inline OMX_PTR
-COmxILPort::TBufferInfo::GetPlatformPointer()
- {
- return ipPlatform;
- }
-
-inline OMX_PTR
-COmxILPort::TBufferInfo::GetAppPointer() const
- {
- return ipApp;
- }
-
-inline OMX_PTR
-COmxILPort::TBufferInfo::GetAppPointer()
- {
- return ipApp;
- }
-
-inline void
-COmxILPort::TBufferInfo::SetBufferAtHome()
- {
- iBufferProperties |= EBufferAtHome;
- }
-
-inline void
-COmxILPort::TBufferInfo::SetBufferAway()
- {
- iBufferProperties &= EBufferAwayMask;
- }
-
-inline void
-COmxILPort::TBufferInfo::SetBufferOwned()
- {
- iBufferProperties |= EBufferOwned;
- }
-
-inline void
-COmxILPort::TBufferInfo::SetBufferNotOwned()
- {
- iBufferProperties &= EBufferNotOwnedMask;
- }
-
-inline TBool
-COmxILPort::TBufferInfo::IsBufferAtHome() const
- {
- return ((iBufferProperties & EBufferAtHome) != 0x0 ? ETrue : EFalse);
- }
-
-inline TBool
-COmxILPort::TBufferInfo::IsBufferOwned() const
- {
- return ((iBufferProperties & EBufferOwned) != 0x0 ? ETrue : EFalse);
- }
-
-
--- a/omxil/omxilcomponentcommon/src/common/omxilportmanager.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1953 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-#include "log.h"
-#include "omxilportmanager.h"
-#include "omxilprocessingfunction.h"
-#include "omxilcallbackmanager.h"
-#include "omxilutil.h"
-
-EXPORT_C COmxILPortManager*
-COmxILPortManager::NewL(
- COmxILProcessingFunction& aProcessingFunction,
- MOmxILCallbackManagerIf& aCallbacks,
- const OMX_VERSIONTYPE& aOmxVersion,
- OMX_U32 aNumberOfAudioPorts,
- OMX_U32 aStartAudioPortNumber,
- OMX_U32 aNumberOfImagePorts,
- OMX_U32 aStartImagePortNumber,
- OMX_U32 aNumberOfVideoPorts,
- OMX_U32 aStartVideoPortNumber,
- OMX_U32 aNumberOfOtherPorts,
- OMX_U32 aStartOtherPortNumber,
- OMX_BOOL aImmediateReturnTimeBuffer)
- {
- DEBUG_PRINTF(_L8("COmxILPortManager::NewL"));
-
- COmxILPortManager* self =
- new (ELeave)COmxILPortManager(
- aProcessingFunction,
- aCallbacks,
- aOmxVersion,
- aNumberOfAudioPorts,
- aStartAudioPortNumber,
- aNumberOfImagePorts,
- aStartImagePortNumber,
- aNumberOfVideoPorts,
- aStartVideoPortNumber,
- aNumberOfOtherPorts,
- aStartOtherPortNumber,
- aImmediateReturnTimeBuffer);
-
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-void
-COmxILPortManager::ConstructL()
- {
- DEBUG_PRINTF(_L8("COmxILPortManager::ConstructL"));
-
- InsertParamIndexL(OMX_IndexParamAudioInit);
- InsertParamIndexL(OMX_IndexParamImageInit);
- InsertParamIndexL(OMX_IndexParamVideoInit);
- InsertParamIndexL(OMX_IndexParamOtherInit);
-
-
- if(iAudioParamInit.nStartPortNumber != 0)
- {
- User::Leave(KErrArgument);
- }
-
- if (iImageParamInit.nPorts > 0)
- {
- if (iAudioParamInit.nPorts !=
- iImageParamInit.nStartPortNumber)
- {
- User::Leave(KErrArgument);
- }
- }
-
- if (iVideoParamInit.nPorts > 0)
- {
- if ((iAudioParamInit.nPorts +
- iImageParamInit.nPorts) !=
- iVideoParamInit.nStartPortNumber)
- {
- User::Leave(KErrArgument);
- }
- }
-
- if (iOtherParamInit.nPorts > 0)
- {
- if ((iAudioParamInit.nPorts +
- iImageParamInit.nPorts +
- iVideoParamInit.nPorts) !=
- iOtherParamInit.nStartPortNumber)
- {
- User::Leave(KErrArgument);
- }
- }
-
- }
-
-COmxILPortManager::COmxILPortManager(
- COmxILProcessingFunction& aProcessingFunction,
- MOmxILCallbackManagerIf& aCallbacks,
- const OMX_VERSIONTYPE& aOmxVersion,
- OMX_U32 aNumberOfAudioPorts,
- OMX_U32 aStartAudioPortNumber,
- OMX_U32 aNumberOfImagePorts,
- OMX_U32 aStartImagePortNumber,
- OMX_U32 aNumberOfVideoPorts,
- OMX_U32 aStartVideoPortNumber,
- OMX_U32 aNumberOfOtherPorts,
- OMX_U32 aStartOtherPortNumber,
- OMX_BOOL aImmediateReturnTimeBuffer)
- :
- iProcessingFunction(aProcessingFunction),
- iCallbacks(aCallbacks),
- iAllPorts(),
- iImmediateReturnTimeBuffer(aImmediateReturnTimeBuffer)
- {
- DEBUG_PRINTF(_L8("COmxILPortManager::COmxILPortManager"));
-
- iAudioParamInit.nSize = sizeof(OMX_PORT_PARAM_TYPE);
- iAudioParamInit.nVersion = aOmxVersion;
- iAudioParamInit.nPorts = aNumberOfAudioPorts;
- iAudioParamInit.nStartPortNumber = aStartAudioPortNumber;
-
- iImageParamInit.nSize = sizeof(OMX_PORT_PARAM_TYPE);
- iImageParamInit.nVersion = aOmxVersion;
- iImageParamInit.nPorts = aNumberOfImagePorts;
- iImageParamInit.nStartPortNumber = aStartImagePortNumber;
-
- iVideoParamInit.nSize = sizeof(OMX_PORT_PARAM_TYPE);
- iVideoParamInit.nVersion = aOmxVersion;
- iVideoParamInit.nPorts = aNumberOfVideoPorts;
- iVideoParamInit.nStartPortNumber = aStartVideoPortNumber;
-
- iOtherParamInit.nSize = sizeof(OMX_PORT_PARAM_TYPE);
- iOtherParamInit.nVersion = aOmxVersion;
- iOtherParamInit.nPorts = aNumberOfOtherPorts;
- iOtherParamInit.nStartPortNumber = aStartOtherPortNumber;
-
- }
-
-COmxILPortManager::~COmxILPortManager()
- {
- DEBUG_PRINTF(_L8("COmxILPortManager::~COmxILPortManager"));
- iAllPorts.Reset(); // data not owned here
- iTimePorts.Close();
- }
-
-void
-COmxILPortManager::AppendPortL(const COmxILPort* aPort)
- {
- DEBUG_PRINTF(_L8("COmxILPortManager::AppendPort"));
-
- const TInt portCount = iAllPorts.Count();
- OMX_PORTDOMAINTYPE portDomain = aPort->Domain();
- OMX_U32 startPortNumber = 0;
- TBool timePort = EFalse;
-
- switch(portDomain)
- {
- case OMX_PortDomainAudio:
- {
- __ASSERT_ALWAYS(portCount >= 0,
- User::Panic(KOmxILPortManagerPanicCategory, 1));
- __ASSERT_ALWAYS(portCount < iAudioParamInit.nPorts,
- User::Panic(KOmxILPortManagerPanicCategory, 1));
-
- startPortNumber = iAudioParamInit.nStartPortNumber;
-
- }
- break;
-
- case OMX_PortDomainImage:
- {
- __ASSERT_ALWAYS(portCount >= iAudioParamInit.nPorts,
- User::Panic(KOmxILPortManagerPanicCategory, 1));
- __ASSERT_ALWAYS(portCount <
- iAudioParamInit.nPorts +
- iImageParamInit.nPorts,
- User::Panic(KOmxILPortManagerPanicCategory, 1));
-
- startPortNumber = iImageParamInit.nStartPortNumber;
-
- }
- break;
-
- case OMX_PortDomainVideo:
- {
- __ASSERT_ALWAYS(portCount >=
- iAudioParamInit.nPorts +
- iImageParamInit.nPorts,
- User::Panic(KOmxILPortManagerPanicCategory, 1));
- __ASSERT_ALWAYS(portCount <
- iAudioParamInit.nPorts +
- iImageParamInit.nPorts +
- iVideoParamInit.nPorts,
- User::Panic(KOmxILPortManagerPanicCategory, 1));
-
- startPortNumber = iVideoParamInit.nStartPortNumber;
-
- }
- break;
-
-
- case OMX_PortDomainOther:
- {
- __ASSERT_ALWAYS(portCount >=
- iAudioParamInit.nPorts +
- iImageParamInit.nPorts +
- iVideoParamInit.nPorts,
- User::Panic(KOmxILPortManagerPanicCategory, 1));
- __ASSERT_ALWAYS(portCount <
- iAudioParamInit.nPorts +
- iImageParamInit.nPorts +
- iVideoParamInit.nPorts +
- iOtherParamInit.nPorts,
- User::Panic(KOmxILPortManagerPanicCategory, 1));
-
- startPortNumber = iOtherParamInit.nStartPortNumber;
-
- OMX_OTHER_PARAM_PORTFORMATTYPE paramFormat;
- paramFormat.nSize = sizeof(OMX_OTHER_PARAM_PORTFORMATTYPE);
- paramFormat.nVersion = TOmxILSpecVersion();
- paramFormat.nPortIndex = aPort->Index();
- paramFormat.nIndex = 0;
-
- if ((aPort->GetParameter(OMX_IndexParamOtherPortFormat, ¶mFormat) == OMX_ErrorNone) &&
- paramFormat.eFormat == OMX_OTHER_FormatTime)
- {
- timePort = ETrue;
- }
- }
-
- break;
-
- default:
- {
- User::Panic(KOmxILPortManagerPanicCategory, 1);
- }
- };
-
- if(portCount == startPortNumber)
- {
- iAllPorts.AppendL(aPort);
- }
- else
- {
- for (TInt i=startPortNumber; i<portCount; ++i)
- {
- if (iAllPorts[i]->Index() >= aPort->Index())
- {
- User::Panic(KOmxILPortManagerPanicCategory, 1);
- }
- }
- iAllPorts.AppendL(aPort);
- }
-
- iTimePorts.AppendL(timePort);
- }
-
-/**
- This method is used at component's construction time, i.e., in a factory
- method of the component. The main component object uses this method to add
- the component's ports to its port manager instance.
-
- @param aPort The port instance to be added.
-
- @param aDirection The direction of the port being added.
-
- @ return A Symbian error code indicating if the function call was
- successful. KErrNone on success, otherwise another of the system-wide error
- codes.
-*/
-EXPORT_C TInt
-COmxILPortManager::AddPort(const COmxILPort* aPort,
- OMX_DIRTYPE aDirection)
- {
- DEBUG_PRINTF(_L8("COmxILPortManager::AddPort"));
-
- __ASSERT_ALWAYS(aPort, User::Panic(KOmxILPortManagerPanicCategory, 1));
-
- if (iAllPorts.Count() >= (iAudioParamInit.nPorts +
- iVideoParamInit.nPorts +
- iImageParamInit.nPorts +
- iOtherParamInit.nPorts))
- {
- return KErrArgument;
- }
-
- if (aPort->Direction() != aDirection)
- {
- return KErrArgument;
- }
-
- if (iAllPorts.Find(aPort) != KErrNotFound)
- {
- return KErrArgument;
- }
-
- TRAPD(err, AppendPortL(aPort));
- if (KErrNone != err)
- {
- return err;
- }
-
- OMX_ERRORTYPE omxRetValue =
- aPort->GetLocalOmxParamIndexes(ManagedParamIndexes());
- if (OMX_ErrorNone == omxRetValue)
- {
- omxRetValue = aPort->GetLocalOmxConfigIndexes(ManagedConfigIndexes());
- }
-
- if (OMX_ErrorNone != omxRetValue)
- {
- if (OMX_ErrorInsufficientResources == omxRetValue)
- {
- return KErrNoMemory;
- }
- else
- {
- return KErrGeneral;
- }
- }
-
- // Here, let's register this port into the call back manager so buffer
- // marks can be propagated to the right port...
- const OMX_U32 propagationPortIndex = aPort->BufferMarkPropagationPort();
- if (propagationPortIndex != COmxILPort::KBufferMarkPropagationPortNotNeeded)
- {
- omxRetValue = iCallbacks.RegisterBufferMarkPropagationPort(aPort->Index(),
- propagationPortIndex);
- }
-
- err = KErrNone;
- if (OMX_ErrorNone != omxRetValue)
- {
- switch (omxRetValue)
- {
- case OMX_ErrorInsufficientResources:
- {
- err = KErrNoMemory;
- }
- break;
- default:
- {
- err = KErrGeneral;
- }
- };
- }
-
- return err;
-
- }
-
-TBool
-COmxILPortManager::RemoveBuffersFromPfOrCm(
- COmxILPort* apPort, OMX_BOOL aRemoveFromPfOnly /* = OMX_FALSE */) const
- {
- __ASSERT_DEBUG(apPort, User::Panic(KOmxILPortManagerPanicCategory, 1));
- DEBUG_PRINTF3(_L8("COmxILPortManager::RemoveBuffersFromPfOrCm: PORT[%d] aRemoveFromPfOnly[%s] "),
- apPort->Index(), aRemoveFromPfOnly ? "TRUE" : "FALSE");
-
- const TInt headerCount = apPort->Count();
- OMX_BUFFERHEADERTYPE* pHeader = 0;
- TBool allHeadersRemovedFromPf = ETrue;
- for (TInt j=0; j<headerCount; ++j)
- {
- pHeader = (*apPort)[j];
- if (!apPort->IsBufferAtHome(pHeader))
- {
- // Tell the PF to remove this header from its queues...
- if (!iProcessingFunction.BufferRemovalIndication(
- pHeader,
- apPort->Direction()))
- {
- if (OMX_FALSE == aRemoveFromPfOnly)
- {
- if (!iCallbacks.BufferRemovalIndication(
- pHeader,
- apPort->Direction()))
- {
- allHeadersRemovedFromPf = EFalse;
- }
- else
- {
- apPort->SetBufferReturned(pHeader);
- // Make sure the buffer contents are cleared
- TOmxILUtil::ClearBufferContents(pHeader);
- }
- }
- }
- else
- {
- apPort->SetBufferReturned(pHeader);
- // Make sure the buffer contents are cleared
- TOmxILUtil::ClearBufferContents(pHeader);
- }
- }
- }
-
- return allHeadersRemovedFromPf;
-
- }
-
-OMX_ERRORTYPE
-COmxILPortManager::GetParameter(OMX_INDEXTYPE aParamIndex,
- TAny* apComponentParameterStructure) const
- {
- DEBUG_PRINTF(_L8("COmxILPortManager::GetParameter"));
-
- TInt index = FindParamIndex(aParamIndex);
- if (KErrNotFound == index)
- {
- return OMX_ErrorUnsupportedIndex;
- }
-
- OMX_ERRORTYPE omxRetValue = OMX_ErrorNone;
- switch(aParamIndex)
- {
- case OMX_IndexParamAudioInit:
- case OMX_IndexParamImageInit:
- case OMX_IndexParamVideoInit:
- case OMX_IndexParamOtherInit:
- {
- if (OMX_ErrorNone !=
- (omxRetValue =
- TOmxILUtil::CheckOmxStructSizeAndVersion(
- const_cast<OMX_PTR>(apComponentParameterStructure),
- sizeof(OMX_PORT_PARAM_TYPE))))
- {
- return omxRetValue;
- }
-
- OMX_PORT_PARAM_TYPE*
- pPortParamType
- = static_cast<OMX_PORT_PARAM_TYPE*>(
- apComponentParameterStructure);
-
- switch(aParamIndex)
- {
- case OMX_IndexParamAudioInit:
- *pPortParamType = iAudioParamInit;
- break;
- case OMX_IndexParamImageInit:
- *pPortParamType = iImageParamInit;
- break;
- case OMX_IndexParamVideoInit:
- *pPortParamType = iVideoParamInit;
- break;
- case OMX_IndexParamOtherInit:
- *pPortParamType = iOtherParamInit;
- break;
- }
-
- }
- break;
-
- default:
- {
- // Obtain the port index
- OMX_U32 portIndex;
- if (OMX_ErrorNone != GetPortIndexFromOmxStruct(
- apComponentParameterStructure,
- portIndex))
- {
- return OMX_ErrorBadPortIndex;
- }
-
- // Now delegate to the specific port
- return iAllPorts[portIndex]->GetParameter(
- aParamIndex,
- apComponentParameterStructure);
- }
- };
-
- return OMX_ErrorNone;
-
- }
-
-OMX_ERRORTYPE
-COmxILPortManager::SetParameter(OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure,
- OMX_BOOL aPortIsDisabled /* = OMX_FALSE */ )
- {
- DEBUG_PRINTF(_L8("COmxILPortManager::SetParameter"));
-
- TInt index = FindParamIndex(aParamIndex);
- if (KErrNotFound == index)
- {
- return OMX_ErrorUnsupportedIndex;
- }
-
- // Obtain the port index
- OMX_U32 portIndex;
- if (OMX_ErrorNone != GetPortIndexFromOmxStruct(
- apComponentParameterStructure,
- portIndex))
- {
- return OMX_ErrorBadPortIndex;
- }
-
- // Grab the port here...
- COmxILPort* pPort = iAllPorts[portIndex];
-
- if (OMX_TRUE == aPortIsDisabled &&
- pPort->IsEnabled() &&
- !pPort->IsTransitioningToEnabled())
- {
- // There is an indication from the FSM that the port must be disabled,
- // otherwise, this is not allowed in the current state.
- return OMX_ErrorIncorrectStateOperation;
- }
-
- OMX_ERRORTYPE omxRetValue = OMX_ErrorNone;
- switch(aParamIndex)
- {
- case OMX_IndexParamAudioInit:
- case OMX_IndexParamVideoInit:
- case OMX_IndexParamImageInit:
- case OMX_IndexParamOtherInit:
- {
- // Don't allow changes in the OMX_PORT_PARAM_TYPE structure
- return OMX_ErrorUnsupportedIndex;
- }
- default:
- {
- TBool updateProcessingFunction = EFalse;
- omxRetValue =
- pPort->SetParameter(
- aParamIndex,
- apComponentParameterStructure,
- updateProcessingFunction);
-
- if (OMX_ErrorNone == omxRetValue)
- {
- if (updateProcessingFunction)
- {
- omxRetValue = iProcessingFunction.ParamIndication(
- aParamIndex,
- apComponentParameterStructure);
- }
- }
-
- }
- };
-
- return omxRetValue;
-
- }
-
-OMX_ERRORTYPE
-COmxILPortManager::GetConfig(OMX_INDEXTYPE aConfigIndex,
- TAny* apComponentConfigStructure) const
- {
- DEBUG_PRINTF(_L8("COmxILPortManager::GetConfig"));
-
- TInt index = FindConfigIndex(aConfigIndex);
- if (KErrNotFound == index)
- {
- return OMX_ErrorUnsupportedIndex;
- }
-
- // Obtain the port index
- OMX_U32 portIndex;
- if (OMX_ErrorNone != GetPortIndexFromOmxStruct(apComponentConfigStructure,
- portIndex))
- {
- return OMX_ErrorBadPortIndex;
- }
-
- // Now delegate to the specific port
- return iAllPorts[portIndex]->GetConfig(
- aConfigIndex,
- apComponentConfigStructure);
-
- }
-
-OMX_ERRORTYPE
-COmxILPortManager::SetConfig(OMX_INDEXTYPE aConfigIndex,
- const TAny* apComponentConfigStructure)
- {
- DEBUG_PRINTF(_L8("COmxILPortManager::SetConfig"));
-
- TInt index = FindConfigIndex(aConfigIndex);
- if (KErrNotFound == index)
- {
- return OMX_ErrorUnsupportedIndex;
- }
-
- // Obtain the port index
- OMX_U32 portIndex;
- if (OMX_ErrorNone != GetPortIndexFromOmxStruct(apComponentConfigStructure,
- portIndex))
- {
- return OMX_ErrorBadPortIndex;
- }
-
- TBool updateProcessingFunction = EFalse;
- OMX_ERRORTYPE omxRetValue =
- iAllPorts[portIndex]->SetConfig(
- aConfigIndex,
- apComponentConfigStructure,
- updateProcessingFunction);
-
- if (OMX_ErrorNone == omxRetValue)
- {
- if (updateProcessingFunction)
- {
- omxRetValue = iProcessingFunction.ConfigIndication(
- aConfigIndex,
- apComponentConfigStructure);
- }
- }
-
- return omxRetValue;
-
- }
-
-OMX_ERRORTYPE
-COmxILPortManager::GetExtensionIndex(
- OMX_STRING aParameterName,
- OMX_INDEXTYPE* apIndexType) const
- {
- DEBUG_PRINTF(_L8("COmxILPortManager::GetExtensionIndex"));
-
- // See if the extension index is supported by any of the ports...
- const TInt portCount = iAllPorts.Count();
- OMX_ERRORTYPE retValue = OMX_ErrorNone;
- for (TUint i = 0; i< portCount; ++i)
- {
- retValue = iAllPorts[i]->GetExtensionIndex(aParameterName,
- apIndexType);
- if (retValue != OMX_ErrorUnsupportedIndex)
- {
- return retValue;
- }
- }
-
- return OMX_ErrorUnsupportedIndex;
-
- }
-
-OMX_ERRORTYPE
-COmxILPortManager::PopulateBuffer(OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aPortIndex,
- OMX_PTR apAppPrivate,
- OMX_U32 aSizeBytes,
- OMX_U8* apBuffer,
- TBool& portPopulationCompleted,
- OMX_BOOL aPortIsDisabled /* = OMX_FALSE */ )
- {
- DEBUG_PRINTF(_L8("COmxILPortManager::PopulateBuffer"));
-
- // Check the index of the port..
- if (CheckPortIndex(aPortIndex) != OMX_ErrorNone)
- {
- return OMX_ErrorBadPortIndex;
- }
-
- // Grab the port here...
- COmxILPort* pPort = iAllPorts[aPortIndex];
-
- if (OMX_TRUE == aPortIsDisabled &&
- pPort->IsEnabled() &&
- !pPort->IsTransitioningToEnabled())
- {
- // There is an indication from the FSM that the port must be disabled,
- // otherwise, the buffer allocation is not allowed in the current
- // state. Note that a port may be transitioning to enabled and in that
- // case the buffer population must be allowed...
- return OMX_ErrorIncorrectStateOperation;
- }
-
- // Check that in case of tunnelling, this port is not buffer supplier...
- if (pPort->IsTunnelledAndBufferSupplier())
- {
- return OMX_ErrorBadPortIndex;
- }
-
- // Now delegate to the port...
- OMX_ERRORTYPE omxRetValue;
- if (OMX_ErrorNone != (omxRetValue = pPort->PopulateBuffer(
- appBufferHdr,
- apAppPrivate,
- aSizeBytes,
- apBuffer,
- portPopulationCompleted)))
- {
- return omxRetValue;
- }
-
- if (portPopulationCompleted && pPort->IsTransitioningToEnabled())
- {
- // This is a case of port being enabled... Inform the port that it
- // has been enabled..
- pPort->SetTransitionToEnabledCompleted();
-
- // For each enabled port, the IL Client must be notified with an
- // enabled completion event...
- omxRetValue = iCallbacks.CommandCompleteNotification(
- OMX_CommandPortEnable, pPort->Index());
- }
-
- return omxRetValue;
-
- }
-
-
-OMX_ERRORTYPE
-COmxILPortManager::FreeBuffer(OMX_U32 aPortIndex,
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- TBool& portDepopulationCompleted,
- OMX_BOOL aPortIsDisabled /* = OMX_FALSE */)
- {
- DEBUG_PRINTF2(_L8("COmxILPortManager::FreeBuffer : BUFFER [%X]"), apBufferHeader);
-
- // Check the index of the port..
- if (CheckPortIndex(aPortIndex) != OMX_ErrorNone)
- {
- return OMX_ErrorBadPortIndex;
- }
-
- // Grab the port here...
- COmxILPort* pPort = iAllPorts[aPortIndex];
-
- // Check that in case of tunnelling, this port is not buffer supplier...
- if (pPort->IsTunnelledAndBufferSupplier())
- {
- return OMX_ErrorBadPortIndex;
- }
-
- TBool errorPortUnpopulated = EFalse;
- if (OMX_TRUE == aPortIsDisabled &&
- pPort->IsEnabled())
- {
- // There is an indication from the FSM that the port should be
- // disabled. If that's not the case, the buffer deallocation will raise
- // an OMX_ErrorPortUnpopulated error in the current state.
-
- if (!pPort->IsBufferAtHome(apBufferHeader))
- {
- // FreeBuffer will normally be called in a situation where we are
- // not suppliers and the supplier already got the buffer. So the
- // buffer won't be on our side almost never.
-
- if (!iTimePorts[aPortIndex] || !iImmediateReturnTimeBuffer)
- {
- // We'll tell the PF to remove this
- // header from its queues, in case this is called in some strange
- // situation (should not happen if the tunnelled component is well
- // behaved)...
- iProcessingFunction.BufferRemovalIndication(
- apBufferHeader,
- pPort->Direction());
- }
-
- // Set the returned flag as this buffer will not count as "away"
- // anymore...
- pPort->SetBufferReturned(apBufferHeader);
- }
-
- // We have to send the Port Unpopulated Error...
- errorPortUnpopulated = ETrue;
- }
-
- OMX_ERRORTYPE omxRetValue = OMX_ErrorNone;
- // Now delegate to the port...
- if (OMX_ErrorNone != (omxRetValue = pPort->FreeBuffer(
- apBufferHeader,
- portDepopulationCompleted)))
- {
- return omxRetValue;
- }
-
- if (errorPortUnpopulated)
- {
- if (OMX_ErrorNone !=
- (omxRetValue =
- iCallbacks.ErrorEventNotification(OMX_ErrorPortUnpopulated)))
- {
- return omxRetValue;
- }
- }
-
-
- if (portDepopulationCompleted)
- {
- if (pPort->IsTransitioningToDisabled())
- {
- // Here we must complete the OMX_CommandPortDisable command
-
- // Set the state of the port to disabled as the command has already
- // completed...
- pPort->SetTransitionToDisabledCompleted();
-
- // For each disabled port, the IL Client must be notified
- // with a disabled completion event...
- omxRetValue = iCallbacks.CommandCompleteNotification(
- OMX_CommandPortDisable, aPortIndex);
-
- // Clear this flag here. Otherwise, the FSM would inform the client
- // of a successful transition to OMX_StateIdle which is not the
- // case...
- portDepopulationCompleted = EFalse;
- }
- }
-
- return omxRetValue;
-
- }
-
-OMX_ERRORTYPE
-COmxILPortManager::TunnelRequest(OMX_U32 aPortIndex,
- OMX_HANDLETYPE aTunneledComp,
- OMX_U32 aTunneledPort,
- OMX_TUNNELSETUPTYPE* apTunnelSetup,
- OMX_BOOL aPortIsDisabled /* = OMX_FALSE */)
- {
- DEBUG_PRINTF3(_L8("COmxILPortManager::TunnelRequest : aTunneledComp [%X] aTunneledPort [%d]"), aTunneledComp, aTunneledPort);
-
- // Check the index of the port..
- if (CheckPortIndex(aPortIndex) != OMX_ErrorNone)
- {
- return OMX_ErrorBadPortIndex;
- }
-
- // Grab the port here...
- COmxILPort* pPort = iAllPorts[aPortIndex];
-
- if (OMX_TRUE == aPortIsDisabled &&
- pPort->IsEnabled())
- {
- // There is an indication from the FSM that the port must be disabled,
- // otherwise, the tunnel request is not allowed in the current state.
- return OMX_ErrorIncorrectStateOperation;
- }
-
- OMX_ERRORTYPE omxRetValue = OMX_ErrorNone;
- // Check whether the tunnel is being torn down...
- if (!aTunneledComp)
- {
- // Tell the port...
- if (OMX_ErrorNone !=
- (omxRetValue = pPort->TunnelRequest(
- aTunneledComp,
- aTunneledPort,
- apTunnelSetup)))
- {
- return omxRetValue;
- }
-
- if (OMX_ErrorNone !=
- (omxRetValue = iCallbacks.DeregisterTunnelCallback(aPortIndex)))
- {
- // This is serious enough...
- return OMX_ErrorInvalidComponent;
- }
-
- // We are done here...
- return OMX_ErrorNone;
- }
-
- // Check whether the port is being re-tunnelled...
- if (pPort->IsTunnelled())
- {
- // Only two valid options here:
- // 1.- The port is completely disabled...
- // or...
- // 2.- The port is enabled AND component in OMX_StateLoaded
- if ((!pPort->IsEnabled() &&
- !pPort->IsTransitioningToEnabled() &&
- !pPort->IsTransitioningToDisabled())
- ||
- (pPort->IsEnabled() && !aPortIsDisabled))
- {
- if (OMX_ErrorNone !=
- (omxRetValue = iCallbacks.DeregisterTunnelCallback(aPortIndex)))
- {
- return OMX_ErrorInvalidComponent;
- }
- }
- else
- {
- return OMX_ErrorIncorrectStateOperation;
- }
- }
-
- // Delegate to the port...
- if (OMX_ErrorNone !=
- (omxRetValue = pPort->TunnelRequest(
- aTunneledComp,
- aTunneledPort,
- apTunnelSetup)))
- {
- return omxRetValue;
- }
-
- // From this point on, the port will assume that a tunnel has been
- // successfully created. If there is a problem at other end, the IL Client
- // will clear the tunnel on this side using ComponentTunnelRequest with
- // NULL handle parameter
-
- // Register the existence of a tunnel within the callback manager...
- if (OMX_ErrorNone !=
- (omxRetValue = iCallbacks.RegisterTunnelCallback(aPortIndex,
- pPort->Direction(),
- aTunneledComp,
- aTunneledPort)))
- {
- // This is serious enough...
- return OMX_ErrorInvalidComponent;
- }
-
- return OMX_ErrorNone;
-
- }
-
-
-OMX_ERRORTYPE
-COmxILPortManager::TunnellingBufferAllocation(TBool& aComponentPopulationCompleted,
- TUint32 aPortIndex /* = OMX_ALL */)
- {
- DEBUG_PRINTF(_L8("COmxILPortManager::TunnellingBufferAllocation"));
-
- aComponentPopulationCompleted = EFalse;
-
- // Check the index of the port..
- if ((OMX_ALL != aPortIndex) && (CheckPortIndex(aPortIndex) != OMX_ErrorNone))
- {
- return OMX_ErrorBadPortIndex;
- }
-
- const TInt portCount = iAllPorts.Count();
- COmxILPort* pPort = 0;
- OMX_U32 portIndex = 0;
- TInt i=0;
- OMX_ERRORTYPE omxRetValue = OMX_ErrorNone;
- do
- {
- if (aPortIndex != OMX_ALL)
- {
- // Grab the port here...
- pPort = iAllPorts[aPortIndex];
- portIndex = aPortIndex;
- }
- else
- {
- pPort = iAllPorts[i];
- portIndex = pPort->Index();
- }
-
-
- if (pPort->IsEnabled() &&
- pPort->IsTunnelledAndBufferSupplier() &&
- !pPort->IsPopulated())
- {
- TBool portPopulationCompleted = EFalse;
- if (OMX_ErrorNone !=
- (omxRetValue = pPort->PopulateTunnel(portPopulationCompleted)))
- {
- // TODO: Check case of ports being enabled (error callback needed...)
- return omxRetValue;
- }
-
- if (portPopulationCompleted && pPort->IsTransitioningToEnabled())
- {
- // This is a case of port being enabled... Inform the port that it
- // has been enabled..
- pPort->SetTransitionToEnabledCompleted();
-
- // For each enabled port, the IL Client must be notified with an
- // enabled completion event...
- if (OMX_ErrorNone != (
- omxRetValue = iCallbacks.CommandCompleteNotification(
- OMX_CommandPortEnable, portIndex)))
- {
- return omxRetValue;
- }
- }
-
- }
-
- // Increment loop counter
- ++i;
- }
- while (OMX_ALL == aPortIndex && i < portCount);
-
- if (AllPortsPopulated())
- {
- DEBUG_PRINTF(_L8("COmxILPortManager::TunnellingBufferAllocation : AllPortsPopulated : [TRUE]"));
- aComponentPopulationCompleted = ETrue;
- }
-
- return OMX_ErrorNone;
-
- }
-
-OMX_ERRORTYPE
-COmxILPortManager::TunnellingBufferDeallocation(
- TBool& aComponentDepopulationCompleted)
- {
- DEBUG_PRINTF(_L8("COmxILPortManager::TunnellingBufferDeallocation"));
-
- aComponentDepopulationCompleted = EFalse;
-
- const TInt portCount = iAllPorts.Count();
- COmxILPort* pPort = 0;
- TInt portDepopulationCounter = 0;
- OMX_ERRORTYPE omxRetValue = OMX_ErrorNone;
- TBool portDepopulationCompleted = EFalse;
- for (TInt i=0; i<portCount; ++i)
- {
- pPort = iAllPorts[i];
- if (pPort->IsEnabled() && pPort->IsTunnelledAndBufferSupplier())
- {
- // TODO: Check that at this point, the ProcessingFunction must not
- // hold any buffer header...
- portDepopulationCompleted = EFalse;
- if (OMX_ErrorNone !=
- (omxRetValue = pPort->FreeTunnel(portDepopulationCompleted)))
- {
- return omxRetValue;
- }
-
- if (pPort->IsDePopulated())
- {
- portDepopulationCounter++;
- }
- }
- }
-
- if (AllPortsDePopulated())
- {
- DEBUG_PRINTF(_L8("COmxILPortManager::TunnellingBufferDeallocation : AllPortsDepopulated : [TRUE]"));
- aComponentDepopulationCompleted = ETrue;
- }
-
- return OMX_ErrorNone;
-
- }
-
-OMX_ERRORTYPE
-COmxILPortManager::InitiateTunnellingDataFlow(OMX_U32 aPortIndex /* = OMX_ALL */)
- {
- DEBUG_PRINTF2(_L8("COmxILPortManager::InitiateTunnellingDataFlow : PORT[%d]"), aPortIndex);
-
- // Check the index of the port..
- if ((OMX_ALL != aPortIndex) && (CheckPortIndex(aPortIndex) != OMX_ErrorNone))
- {
- return OMX_ErrorBadPortIndex;
- }
-
- // This is an indication that the component is ready to start exchanging
- // buffers... Supplier tunnelled ports must initiate the buffer exchange in
- // the tunnel...
- const TInt portCount = iAllPorts.Count();
- COmxILPort* pPort = 0;
- OMX_U32 portIndex = 0;
- TInt i=0;
- do
- {
- if (aPortIndex != OMX_ALL)
- {
- // Grab the port here...
- pPort = iAllPorts[aPortIndex];
- portIndex = aPortIndex;
- }
- else
- {
- pPort = iAllPorts[i];
- portIndex = pPort->Index();
- }
-
- if (pPort->IsEnabled() && pPort->IsTunnelledAndBufferSupplier())
- {
- const TInt headerCount = pPort->Count();
- OMX_BUFFERHEADERTYPE* pHeader = 0;
- OMX_DIRTYPE portDir = OMX_DirMax;
- OMX_ERRORTYPE omxRetValue = OMX_ErrorNone;
- for (TInt j=0; j<headerCount; ++j)
- {
- // Here, there are two options:
- //
- // 1. -The port is an input port, in which case, the buffer is
- // directly sent to the callback manager which in turn sends it
- // to the tunnelled component in charge of filling it
- // (OMX_FillThisBuffer)
- //
- // 2.- The port is an output port, and the buffer must be sent
- // to the processing function to be filled before the buffer
- // can be sent to the tunnelled component. After that, the proc
- // function will send the buffer to the call back manager to be
- // sent to the tunnelled component (OMX_EmptyThisBuffer)...
- pHeader = (*pPort)[j];
-
- // Check that we actually have the buffer in our side...
- if (!pPort->IsBufferAtHome(pHeader))
- {
- DEBUG_PRINTF2(_L8("COmxILPortManager::InitiateTunnellingDataFlow : BUFFER HEADER[%X] is not at home"),
- pHeader);
- continue;
- }
-
- portDir = pPort->Direction();
- __ASSERT_DEBUG((OMX_DirInput == portDir ||
- OMX_DirOutput == portDir),
- User::Panic(KOmxILPortManagerPanicCategory, 1));
-
- if (OMX_DirInput == portDir)
- {
- // Input port -> Send buffer to callback manager...
- omxRetValue =
- iCallbacks.BufferDoneNotification(pHeader,
- portIndex,
- portDir);
- }
- else
- {
- // Output port -> Send buffer to processing function...
- omxRetValue =
- iProcessingFunction.BufferIndication(pHeader,
- portDir);
- }
-
- if (omxRetValue != OMX_ErrorNone)
- {
- return omxRetValue;
- }
-
- // Inform the port that one of its buffers has been sent
- // away...
- TBool bufferMarkedWithOwnMark = EFalse;
- if (!pPort->SetBufferSent(pHeader, bufferMarkedWithOwnMark))
- {
- // The buffer header was not found...
- return OMX_ErrorBadParameter;
- }
-
- // For each MarkBuffer command processed, the IL Client must be notified
- // with an OMX_EventCommandComplete event...
- if (bufferMarkedWithOwnMark)
- {
- if (OMX_ErrorNone !=
- (omxRetValue = iCallbacks.CommandCompleteNotification(
- OMX_CommandMarkBuffer, portIndex)))
- {
- return omxRetValue;
- }
- }
-
- } // for (TInt j=0; j<headerCount; j++)
- } // if (pPort->IsEnabled() && pPort->IsTunnelledAndBufferSupplier())
-
- // Increment loop counter
- ++i;
- }
- while(OMX_ALL == aPortIndex && i < portCount);
-
- return OMX_ErrorNone;
-
- }
-
-OMX_ERRORTYPE
-COmxILPortManager::BufferIndication(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_DIRTYPE aDirection,
- OMX_BOOL aPortIsDisabled /* = OMX_FALSE */)
- {
- DEBUG_PRINTF2(_L8("COmxILPortManager::BufferIndication : BUFFER [%X]"), apBufferHeader);
-
- OMX_U32 portIndex = aDirection == OMX_DirInput ?
- apBufferHeader->nInputPortIndex : apBufferHeader->nOutputPortIndex;
-
- // Check the index of the port..
- if (CheckPortIndex(portIndex) != OMX_ErrorNone)
- {
- return OMX_ErrorBadPortIndex;
- }
-
- // Grab the port here...
- COmxILPort* pPort = iAllPorts[portIndex];
-
- // Check that port direction is the correct one...
- if (pPort->Direction() != aDirection)
- {
- return OMX_ErrorBadPortIndex;
- }
-
- if (!pPort->IsEnabled() &&
- !pPort->IsTransitioningToDisabled() &&
- !pPort->IsTransitioningToEnabled())
- {
- return OMX_ErrorIncorrectStateOperation;
- }
-
- // Check port enabled property...
- if (OMX_TRUE == aPortIsDisabled &&
- pPort->IsEnabled())
- {
- // There is an indication from the FSM that the port must be disabled,
- // otherwise, the buffer indication is not allowed in the current
- // state.
- return OMX_ErrorIncorrectStateOperation;
- }
-
- OMX_ERRORTYPE omxRetValue = OMX_ErrorNone;
- // Check whether this port is a buffer supplier...
- if (pPort->IsTunnelledAndBufferSupplier() &&
- pPort->IsTransitioningToDisabled())
- {
- // Set the state of the port to disabled as the command has already
- // completed...
- if (!pPort->SetBufferReturned(apBufferHeader))
- {
- // The buffer header was not found...
- return OMX_ErrorBadParameter;
- }
-
- if (pPort->HasAllBuffersAtHome())
- {
- // All buffers at home.. we can initiate here the
- // depopulation of the tunnel...
- TBool portDepopulationCompleted = EFalse;
- if (OMX_ErrorNone !=
- (omxRetValue = pPort->FreeTunnel(portDepopulationCompleted)))
- {
- return omxRetValue;
- }
-
- // Inform the port that the disabled command has
- // completed...
- pPort->SetTransitionToDisabledCompleted();
-
- // For each disabled port, the IL Client must be notified
- // with a port disabled completion event...
- if (OMX_ErrorNone !=
- (omxRetValue = iCallbacks.CommandCompleteNotification(
- OMX_CommandPortDisable, portIndex)))
- {
- return omxRetValue;
- }
- }
-
- // Make sure the buffer contents are cleared...
- TOmxILUtil::ClearBufferContents(apBufferHeader);
-
- // ... we are done.. no need to send the buffer to the
- // processing function...
- return OMX_ErrorNone;
-
- } // if (pPort->IsTransitioningToDisabled())
-
-
- // Inform the port that one of its buffers is going to be sent to the
- // processing function (exception applies to OMX_PortDomainOther ports) ...
- // The port will also mark this buffer if the port
- // has pending marks to be signalled... The buffer marks are finally
- // processed/propagated by the callback manager once the buffer has been
- // consumed by the processing function...
- TBool bufferMarkedWithOwnMark = EFalse;
- if (!pPort->SetBufferSent(apBufferHeader, bufferMarkedWithOwnMark))
- {
- return OMX_ErrorBadParameter;
- }
-
- // For each MarkBuffer command processed, the IL Client must be notified
- // with an OMX_EventCommandComplete event...
- if (bufferMarkedWithOwnMark)
- {
- if (OMX_ErrorNone !=
- (omxRetValue = iCallbacks.CommandCompleteNotification(
- OMX_CommandMarkBuffer, portIndex)))
- {
- return omxRetValue;
- }
- }
-
- if (iImmediateReturnTimeBuffer && iTimePorts[portIndex])
- {
- // OMX_OTHER_FormatTime ports (such as COmxILClientClockPort) needs
- // to return the buffer sooner to the buffer supplier component
- OMX_TIME_MEDIATIMETYPE* pMediaTime =
- reinterpret_cast<OMX_TIME_MEDIATIMETYPE*>(apBufferHeader->pBuffer);
-
- OMX_TIME_MEDIATIMETYPE timeInfo;
- if (pMediaTime)
- {
- timeInfo = *pMediaTime;
- }
-
- // Return the buffer (send the Buffer Done notification) via callback now.
- apBufferHeader->nFilledLen = 0;
-
- OMX_ERRORTYPE err = iCallbacks.ClockBufferDoneNotification(
- apBufferHeader, portIndex, aDirection);
-
- if (err != OMX_ErrorNone)
- {
- return err;
- }
-
- if (pMediaTime)
- {
- // Send time update to the processing function
- err = iProcessingFunction.MediaTimeIndication(timeInfo);
- }
-
- __ASSERT_DEBUG(err != OMX_ErrorNotImplemented,
- User::Panic(KOmxILPortManagerPanicCategory, 1));
-
- return err;
- }
-
- return iProcessingFunction.BufferIndication(apBufferHeader,
- aDirection);
- }
-
-
-OMX_ERRORTYPE
-COmxILPortManager::BufferReturnIndication(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_DIRTYPE aDirection,
- TBool& aAllBuffersReturned)
- {
- DEBUG_PRINTF2(_L8("COmxILPortManager::BufferReturnIndication : [%X]"), apBufferHeader);
-
- aAllBuffersReturned = EFalse;
-
- OMX_U32 portIndex = aDirection == OMX_DirInput ?
- apBufferHeader->nInputPortIndex : apBufferHeader->nOutputPortIndex;
-
- // Check the index of the port..
- if (CheckPortIndex(portIndex) != OMX_ErrorNone)
- {
- return OMX_ErrorBadPortIndex;
- }
-
- // Grab the port here...
- COmxILPort* pPort = iAllPorts[portIndex];
-
- // Check that port direction is the correct one...
- if (pPort->Direction() != aDirection)
- {
- return OMX_ErrorBadPortIndex;
- }
-
-
- if (!pPort->IsEnabled())
- {
- return OMX_ErrorBadPortIndex;
- }
-
- // Check that this port must be buffer supplier...
- if (!pPort->IsTunnelledAndBufferSupplier())
- {
- return OMX_ErrorBadPortIndex;
- }
-
- // Inform the port that a buffer has returned...
- if (!pPort->SetBufferReturned(apBufferHeader))
- {
- // The buffer header was not found...
- return OMX_ErrorBadParameter;
- }
-
- // Make sure the buffer contents are cleared...
- TOmxILUtil::ClearBufferContents(apBufferHeader);
-
- if (pPort->HasAllBuffersAtHome())
- {
- aAllBuffersReturned = ETrue;
- }
-
- return OMX_ErrorNone;
-
- }
-
-OMX_ERRORTYPE
-COmxILPortManager::BufferFlushIndicationFlushCommand(
- TUint32 aPortIndex, TBool aEjectBuffers /* = ETrue */)
- {
- DEBUG_PRINTF2(_L8("COmxILPortManager::BufferFlushIndicationFlushCommand PORT[%d]"), aPortIndex);
-
- // Check the index of the port..
- if ((OMX_ALL != aPortIndex) && (CheckPortIndex(aPortIndex) != OMX_ErrorNone))
- {
- return OMX_ErrorBadPortIndex;
- }
-
- OMX_ERRORTYPE omxRetValue = OMX_ErrorNone;
- RPointerArray<COmxILPort> portsToFlush;
- RPointerArray<COmxILPort> portsToNotify;
- const TInt portCount = iAllPorts.Count();
- COmxILPort* pPort = 0;
- TInt i=0;
- TBool flushSuccessful;
- do
- {
- flushSuccessful = ETrue;
- if (aPortIndex != OMX_ALL)
- {
- // Grab the port here...
- pPort = iAllPorts[aPortIndex];
- }
- else
- {
- pPort = iAllPorts[i];
- }
-
- if (pPort->IsEnabled() && pPort->Count())
- {
- if (pPort->IsTunnelledAndBufferSupplier() &&
- !pPort->HasAllBuffersAtHome())
- {
- // Remove buffers from PF only...
- RemoveBuffersFromPfOrCm(pPort, OMX_TRUE);
-
- if (aEjectBuffers)
- {
- // Now we need to send input buffers upstream and ouput
- // buffers to the PF...
- if ((omxRetValue = InitiateTunnellingDataFlow())
- != OMX_ErrorNone)
- {
- // The flush has failed, we need to notify the IL Cient
- // via EventHandler...
- iCallbacks.ErrorEventNotification(omxRetValue);
- flushSuccessful = EFalse;
- }
- }
-
- }
- else
- {
- portsToFlush.Append(pPort);
- }
- }
- // Notify flushing completed, even if there was nothing to
- // flush...
- if (flushSuccessful)
- {
- portsToNotify.Append(pPort);
- }
-
- // Increment loop counter
- ++i;
- }
- while(OMX_ALL == aPortIndex && i < portCount);
-
- const TInt flushCount = portsToFlush.Count();
- const TInt notifyCount = portsToNotify.Count();
-
-
- if (iAllPorts.Count() == flushCount)
- {
- omxRetValue = iProcessingFunction.BufferFlushingIndication(
- OMX_ALL,
- OMX_DirMax);
- }
- else
- {
- for (i=0; i<flushCount && OMX_ErrorNone == omxRetValue; ++i)
- {
- pPort = portsToFlush[i];
- omxRetValue = iProcessingFunction.BufferFlushingIndication(
- pPort->Index(),
- pPort->Direction());
- }
- }
-
- for (i=0; i<notifyCount && OMX_ErrorNone == omxRetValue; ++i)
- {
- pPort = portsToNotify[i];
- omxRetValue = iCallbacks.CommandCompleteNotification(OMX_CommandFlush,
- portsToNotify[i]->Index());
- }
-
- portsToFlush.Close();
- portsToNotify.Close();
-
- return omxRetValue;
-
- }
-
-OMX_ERRORTYPE
-COmxILPortManager::BufferFlushIndicationPauseOrExeToIdleCommand(
- TBool& aAllBuffersReturnedToSuppliers)
- {
- DEBUG_PRINTF(_L8("COmxILPortManager::BufferFlushIndicationPauseOrExeToIdleCommand"));
-
- aAllBuffersReturnedToSuppliers = EFalse;
-
- const TInt portCount = iAllPorts.Count();
- TBool foundBufferSupplierThatNeedsToWait = EFalse;
- COmxILPort* pPort = 0;
- OMX_ERRORTYPE omxRetValue = OMX_ErrorNone;
- for (TInt i=0; i<portCount; ++i)
- {
- pPort = iAllPorts[i];
-
- if (pPort->IsEnabled() && pPort->Count())
- {
- if (pPort->IsTunnelledAndBufferSupplier() &&
- !pPort->HasAllBuffersAtHome())
- {
- if (!RemoveBuffersFromPfOrCm(pPort))
- {
- // This port will have to wait to get some of its buffers
- // returned by the tunnelled port...
- foundBufferSupplierThatNeedsToWait = ETrue;
- }
- continue;
- }
-
- if (OMX_ErrorNone !=
- (omxRetValue = iProcessingFunction.BufferFlushingIndication(
- pPort->Index(),
- pPort->Direction())))
- {
- return omxRetValue;
- }
- }
- }
-
- if (!foundBufferSupplierThatNeedsToWait)
- {
- aAllBuffersReturnedToSuppliers = ETrue;
- }
-
- return OMX_ErrorNone;
-
- }
-
-OMX_ERRORTYPE
-COmxILPortManager::PortEnableIndication(
- TUint32 aPortIndex,
- TBool aIndicationIsFinal)
- {
- DEBUG_PRINTF3(_L8("COmxILPortManager::PortEnableIndication: PORT[%d] TRANSITIONISFINAL[%d]"), aPortIndex, aIndicationIsFinal);
-
- // Check the index of the port..
- if ((OMX_ALL != aPortIndex) && (CheckPortIndex(aPortIndex) != OMX_ErrorNone))
- {
- return OMX_ErrorBadPortIndex;
- }
-
- const TInt portCount = iAllPorts.Count();
- COmxILPort* pPort = 0;
- OMX_U32 portIndex = 0;
- TInt i=0;
- OMX_ERRORTYPE omxRetValue = OMX_ErrorNone;
- do
- {
- // We do this so we loop or not depending on the needs...
- if (aPortIndex != OMX_ALL)
- {
- // Grab the port here...
- pPort = iAllPorts[aPortIndex];
- portIndex = aPortIndex;
- }
- else
- {
- pPort = iAllPorts[i];
- portIndex = pPort->Index();
- }
-
- // If port is already enabled, just indicate that the enable command has
- // completed successfully
- if (pPort->IsEnabled())
- {
- if (OMX_ErrorNone !=
- (omxRetValue =
- iCallbacks.CommandCompleteNotification(
- OMX_CommandPortEnable, portIndex)))
- {
- return omxRetValue;
- }
-
- ++i;
- continue;
- }
-
- // First check that no-one port is currently transitioning to
- // Enabled...
- if (pPort->IsTransitioningToEnabled() ||
- pPort->IsTransitioningToDisabled())
- {
- // Send an error event... The spec mandates that the nData2 and
- // the pEventData are 0 and NULL respectively, but they could be
- // used here to hand some information like the index of the port
- // that has failed...
- if (OMX_ErrorNone !=
- (omxRetValue =
- iCallbacks.ErrorEventNotification(OMX_ErrorPortUnresponsiveDuringAllocation)))
- {
- return omxRetValue;
- }
-
- if (OMX_ALL == aPortIndex)
- {
- ++i;
- continue;
- }
- else
- {
- return OMX_ErrorUndefined;
- }
- }
-
- if (aIndicationIsFinal)
- {
- // Inform the port that it has been enabled..
- pPort->SetTransitionToEnabledCompleted();
-
- // For each enabled port, the IL Client must be notified
- // with an enabled completion event...
- if (OMX_ErrorNone !=
- (omxRetValue =
- iCallbacks.CommandCompleteNotification(
- OMX_CommandPortEnable, portIndex)))
- {
- return omxRetValue;
- }
-
- }
- else
- {
- // Inform the port that it is being enabled..
- pPort->SetTransitionToEnabled();
- }
-
- // Increment loop counter
- ++i;
- }
- while(OMX_ALL == aPortIndex && i < portCount);
-
- return OMX_ErrorNone;
-
- }
-
-OMX_ERRORTYPE
-COmxILPortManager::PortDisableIndication(
- TUint32 aPortIndex)
- {
- DEBUG_PRINTF2(_L8("COmxILPortManager::PortDisableIndication: PORT[%d] "), aPortIndex);
-
- // Check the index of the port..
- if ((OMX_ALL != aPortIndex) && (CheckPortIndex(aPortIndex) != OMX_ErrorNone))
- {
- return OMX_ErrorBadPortIndex;
- }
-
- const TInt portCount = iAllPorts.Count();
- COmxILPort* pPort = 0;
- OMX_U32 portIndex = 0;
- TInt i=0;
- OMX_ERRORTYPE omxRetValue = OMX_ErrorNone;
- do
- {
- if (aPortIndex != OMX_ALL)
- {
- // Grab the port here...
- pPort = iAllPorts[aPortIndex];
- portIndex = aPortIndex;
- }
- else
- {
- pPort = iAllPorts[i];
- portIndex = pPort->Index();
- }
-
- // If port is already disabled, just indicate that the disable command has
- // completed successfully
- if (!pPort->IsEnabled())
- {
- if (OMX_ErrorNone !=
- (omxRetValue =
- iCallbacks.CommandCompleteNotification(
- OMX_CommandPortDisable, portIndex)))
- {
- return omxRetValue;
- }
-
- ++i;
- continue;
- }
-
- // First check that no-one port is currently transitioning to
- // Disabled...
- if (pPort->IsTransitioningToDisabled() ||
- pPort->IsTransitioningToEnabled())
- {
- // Send an error event... The spec mandates that the nData2 and
- // the pEventData are 0 and NULL respectively, but they could be
- // used here to hand some information like the index of the port
- // that has failed...
- if (OMX_ErrorNone !=
- (omxRetValue =
- iCallbacks.ErrorEventNotification(OMX_ErrorPortUnresponsiveDuringAllocation)))
- {
- return omxRetValue;
- }
-
- if (OMX_ALL == aPortIndex)
- {
- ++i;
- continue;
- }
- else
- {
- return OMX_ErrorUndefined;
- }
-
- }
-
- if (pPort->IsTunnelledAndBufferSupplier())
- {
- if (!pPort->HasAllBuffersAtHome() && !RemoveBuffersFromPfOrCm(pPort))
- {
- // Inform the port that it is being disabled
- pPort->SetTransitionToDisabled();
- // This port will have to wait to get all its buffers
- // returned by the tunnelled port...
- }
- else
- {
- // Buffer supplier with all buffers at home.. we can
- // initiate here the depopulation of the tunnel...
-
- // This boolean is not used here ...
- TBool portDepopulationCompleted = EFalse;
-
- // Better to ignore here any possible error in
- // FreeTunnel... nothing we can do about it...
- if (OMX_ErrorNone !=
- (omxRetValue =
- pPort->FreeTunnel(portDepopulationCompleted)))
- {
- return omxRetValue;
- }
-
- // Inform the port that the disabled command has
- // completed...
- pPort->SetTransitionToDisabledCompleted();
-
- // For each disabled port, the IL Client must be notified
- // with a disabled completion event...
- if (OMX_ErrorNone !=
- (omxRetValue =
- iCallbacks.CommandCompleteNotification(
- OMX_CommandPortDisable, portIndex)))
- {
- return omxRetValue;
- }
-
- } // else <- if (!pPort->HasAllBuffersAtHome())
-
- } // if (pPort->IsTunnelledAndBufferSupplier())
- else
- {
- if (pPort->Count() > 0)
- {
- if (OMX_ErrorNone !=
- (omxRetValue =
- iProcessingFunction.BufferFlushingIndication(
- portIndex,
- pPort->Direction())))
- {
- return omxRetValue;
- }
-
- // Inform the port that it is being disabled
- pPort->SetTransitionToDisabled();
- }
- else
- {
- // Inform the port that the disabled command has
- // completed...
- pPort->SetTransitionToDisabledCompleted();
-
- // For each disabled port, the IL Client must be notified
- // with a disabled completion event...
- if (OMX_ErrorNone !=
- (omxRetValue =
- iCallbacks.CommandCompleteNotification(
- OMX_CommandPortDisable, portIndex)))
- {
- return omxRetValue;
- }
- }
-
- }
-
- // Increment loop counter
- ++i;
- }
- while(OMX_ALL == aPortIndex && i < portCount);
-
- return OMX_ErrorNone;
-
- }
-
-OMX_ERRORTYPE
-COmxILPortManager::BufferMarkIndication(
- TUint32 aPortIndex,
- OMX_PTR ipMarkData)
- {
- DEBUG_PRINTF2(_L8("COmxILPortManager::BufferMarkIndication: PORT[%d] "), aPortIndex);
-
- // Check the index of the port..
- if (CheckPortIndex(aPortIndex) != OMX_ErrorNone)
- {
- return OMX_ErrorBadPortIndex;
- }
-
- const OMX_MARKTYPE* pMark = static_cast<OMX_MARKTYPE*>(ipMarkData);
-
- if (!pMark->hMarkTargetComponent)
- {
- return OMX_ErrorBadParameter;
- }
-
- // Let's tell the port to store the mark so it can mark the next incoming
- // buffer...
- return iAllPorts[aPortIndex]->StoreBufferMark(pMark);
-
- }
-
-OMX_ERRORTYPE
-COmxILPortManager::ComponentRoleIndication(TUint aComponentRoleIndex)
- {
- DEBUG_PRINTF2(_L8("COmxILPortManager::ComponentRoleIndication : aComponentRoleIndex[%d]"), aComponentRoleIndex);
-
- // At this point, the IL Client wants to set the default role that the
- // standard component is assuming. Therefore, the role defaults need to be
- // reloaded into all ports and the processing function object.
- OMX_ERRORTYPE omxRetValue = OMX_ErrorNone;
- const TInt portCount = iAllPorts.Count();
- for (TUint i = 0; i< portCount; ++i)
- {
- if (OMX_ErrorNone !=
- (omxRetValue =
- iAllPorts[i]->SetComponentRoleDefaults(aComponentRoleIndex)))
- {
- return omxRetValue;
- }
- }
-
- return iProcessingFunction.ComponentRoleIndication(aComponentRoleIndex);
-
- }
-
-OMX_ERRORTYPE
-COmxILPortManager::PortSettingsChangeIndication(OMX_U32 aPortIndex,
- TUint aPortSettingsIndex,
- const TDesC8& aPortSettings,
- OMX_EVENTTYPE& aEventForILClient)
- {
- DEBUG_PRINTF2(_L8("COmxILPortManager::PortSettingsChangeIndication: PORT[%d] "), aPortIndex);
-
- // Check the index of the port..
- if (CheckPortIndex(aPortIndex) != OMX_ErrorNone)
- {
- return OMX_ErrorBadPortIndex;
- }
-
- return iAllPorts[aPortIndex]->DoPortReconfiguration(
- aPortSettingsIndex, aPortSettings, aEventForILClient);
-
- }
-
-
-TBool
-COmxILPortManager::AllPortsPopulated() const
- {
-
- const TInt portCount = iAllPorts.Count();
- COmxILPort* pPort = 0;
- for (TInt i=0; i<portCount; ++i)
- {
- pPort = iAllPorts[i];
- if (!pPort->IsEnabled())
- {
- continue;
- }
-
- if (!pPort->IsPopulated())
- {
- DEBUG_PRINTF(_L8("COmxILPortManager::AllPortsPopulated : [FALSE]"));
- return EFalse;
- }
- }
-
- DEBUG_PRINTF(_L8("COmxILPortManager::AllPortsPopulated : [TRUE]"));
- return ETrue;
-
- }
-
-TBool
-COmxILPortManager::AllPortsDePopulated() const
- {
-
- const TInt portCount = iAllPorts.Count();
- for (TInt i=0; i<portCount; ++i)
- {
- if (!iAllPorts[i]->IsDePopulated())
- {
- DEBUG_PRINTF(_L8("COmxILPortManager::AllPortsDePopulated : [FALSE]"));
- return EFalse;
- }
- }
-
- DEBUG_PRINTF(_L8("COmxILPortManager::AllPortsDePopulated : [TRUE]"));
- return ETrue;
-
- }
-
-TBool
-COmxILPortManager::AllBuffersAtHome() const
- {
-
- const TInt portCount = iAllPorts.Count();
- for (TInt i=0; i<portCount; ++i)
- {
- if (iAllPorts[i]->IsTunnelledAndBufferSupplier())
- {
- if (!iAllPorts[i]->HasAllBuffersAtHome())
- {
- DEBUG_PRINTF(_L8("COmxILPortManager::AllBuffersAtHome : [FALSE]"));
- return EFalse;
- }
- }
- }
-
- DEBUG_PRINTF(_L8("COmxILPortManager::AllBuffersAtHome : [TRUE]"));
- return ETrue;
-
- }
--- a/omxil/omxilcomponentcommon/src/common/omxilportmanager.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,218 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-#ifndef OMXILPORTMANAGER_H
-#define OMXILPORTMANAGER_H
-
-#include <openmax/il/khronos/v1_x/OMX_Component.h>
-
-#include "omxilport.h"
-#include "omxilindexmanager.h"
-
-/**
- Port Manager Panic category
-*/
-_LIT(KOmxILPortManagerPanicCategory, "OmxILPortManager");
-
-
-// Forward declarations
-class COmxILProcessingFunction;
-class MOmxILCallbackManagerIf;
-
-/**
- OpenMAX IL Port Manager.
-
- It keeps and manages a list of the ports configured in the component. The
- Port Manager is used by the FSM object (@see COmxILFsm) to communicate with
- the ports.
-
-*/
-NONSHARABLE_CLASS(COmxILPortManager) : public COmxILIndexManager
- {
-
-public:
- /*
- @param aImmediateReturnTimeBuffer Indicates whether the component needs to
- return the arriving buffer to the sender immediately or not . This is particularly
- related to time port (e.g. COmxILClientClockPort), where notification
- could be requested on every frame. Returning the buffer immediately to the
- the sender (e.g. Clock Component) would avoid the sender from buffer starvation.
- By default, time related component will need to return the buffer sooner, except
- Clock Component (the buffer sender)
- */
- IMPORT_C static COmxILPortManager* NewL(
- COmxILProcessingFunction& aProcessingFunction,
- MOmxILCallbackManagerIf& aCallbacks,
- const OMX_VERSIONTYPE& aOmxVersion,
- OMX_U32 aNumberOfAudioPorts,
- OMX_U32 aStartAudioPortNumber,
- OMX_U32 aNumberOfImagePorts,
- OMX_U32 aStartImagePortNumber,
- OMX_U32 aNumberOfVideoPorts,
- OMX_U32 aStartVideoPortNumber,
- OMX_U32 aNumberOfOtherPorts,
- OMX_U32 aStartOtherPortNumber,
- OMX_BOOL aImmediateReturnTimeBuffer = OMX_TRUE);
-
- ~COmxILPortManager();
-
- IMPORT_C TInt AddPort(const COmxILPort* aPort,
- OMX_DIRTYPE aDirection);
-
- OMX_ERRORTYPE GetParameter(
- OMX_INDEXTYPE aParamIndex,
- TAny* apComponentParameterStructure) const;
-
- OMX_ERRORTYPE SetParameter(OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure,
- OMX_BOOL aPortIsDisabled = OMX_FALSE);
-
- OMX_ERRORTYPE GetConfig(OMX_INDEXTYPE aConfigIndex,
- TAny* apComponentConfigStructure) const;
-
- OMX_ERRORTYPE SetConfig(OMX_INDEXTYPE aConfigIndex,
- const TAny* apComponentConfigStructure);
-
- OMX_ERRORTYPE GetExtensionIndex(OMX_STRING aParameterName,
- OMX_INDEXTYPE* apIndexType) const;
-
- OMX_ERRORTYPE PopulateBuffer(OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aPortIndex,
- OMX_PTR apAppPrivate,
- OMX_U32 aSizeBytes,
- OMX_U8* apBuffer,
- TBool& portPopulationCompleted,
- OMX_BOOL aPortIsDisabled = OMX_FALSE);
-
- OMX_ERRORTYPE FreeBuffer(OMX_U32 aPortIndex,
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- TBool& portDepopulationCompleted,
- OMX_BOOL aPortIsDisabled = OMX_FALSE);
-
- OMX_ERRORTYPE TunnelRequest(OMX_U32 aPortIndex,
- OMX_HANDLETYPE aTunneledComp,
- OMX_U32 aTunneledPort,
- OMX_TUNNELSETUPTYPE* apTunnelSetup,
- OMX_BOOL aPortIsDisabled = OMX_FALSE);
-
- OMX_ERRORTYPE TunnellingBufferAllocation(
- TBool& aComponentPopulationCompleted,
- TUint32 aPortIndex = OMX_ALL);
-
- OMX_ERRORTYPE TunnellingBufferDeallocation(
- TBool& aComponentDePopulationCompleted);
-
- OMX_ERRORTYPE InitiateTunnellingDataFlow(
- OMX_U32 aPortIndex = OMX_ALL);
-
- OMX_ERRORTYPE BufferIndication(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_DIRTYPE aDirection,
- OMX_BOOL aPortIsDisabled = OMX_FALSE);
-
- OMX_ERRORTYPE BufferReturnIndication(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_DIRTYPE aDirection,
- TBool& aAllBuffersReturned);
-
- OMX_ERRORTYPE BufferFlushIndicationFlushCommand(
- TUint32 aPortIndex, TBool aEjectBuffers = ETrue);
-
- OMX_ERRORTYPE BufferFlushIndicationPauseOrExeToIdleCommand(
- TBool& aAllBuffersReturnedToSuppliers);
-
- OMX_ERRORTYPE PortEnableIndication(
- TUint32 aPortIndex,
- TBool aIndicationIsFinal);
-
- OMX_ERRORTYPE PortDisableIndication(
- TUint32 aPortIndex);
-
- OMX_ERRORTYPE BufferMarkIndication(OMX_U32 aPortIndex,
- OMX_PTR ipMarkData);
-
- OMX_ERRORTYPE ComponentRoleIndication(TUint aComponentRoleIndex);
-
- OMX_ERRORTYPE PortSettingsChangeIndication(OMX_U32 aPortIndex,
- TUint aPortSettingsIndex,
- const TDesC8& aPortSettings,
- OMX_EVENTTYPE& aEventForILClient);
-
- //
- //
- //
- TBool AllPortsPopulated() const;
-
- TBool AllPortsDePopulated() const;
-
- TBool AllBuffersAtHome() const;
-
-
-private:
-
- COmxILPortManager(COmxILProcessingFunction& aProcessingFunction,
- MOmxILCallbackManagerIf& aCallbacks,
- const OMX_VERSIONTYPE& aOmxVersion,
- OMX_U32 aNumberOfAudioPorts,
- OMX_U32 aStartAudioPortNumber,
- OMX_U32 aNumberOfImagePorts,
- OMX_U32 aStartImagePortNumber,
- OMX_U32 aNumberOfVideoPorts,
- OMX_U32 aStartVideoPortNumber,
- OMX_U32 aNumberOfOtherPorts,
- OMX_U32 aStartOtherPortNumber,
- OMX_BOOL aImmediateReturnTimeBuffer);
-
- void ConstructL();
-
- void AppendPortL(const COmxILPort* aPort);
-
- inline OMX_ERRORTYPE CheckPortIndex(OMX_U32 aPortIndex) const;
-
- inline OMX_ERRORTYPE GetPortIndexFromOmxStruct(
- const TAny*& apComponentParameterStructure,
- OMX_U32& aIndex) const;
-
- inline OMX_ERRORTYPE GetPortIndexFromOmxStruct(
- TAny*& apComponentParameterStructure,
- OMX_U32& aIndex) const;
-
- TBool RemoveBuffersFromPfOrCm(COmxILPort* apPort,
- OMX_BOOL aRemoveFromPfOnly = OMX_FALSE) const;
-
-private:
-
- COmxILProcessingFunction& iProcessingFunction;
- MOmxILCallbackManagerIf& iCallbacks;
-
- RPointerArray<COmxILPort> iAllPorts;
- RArray<TBool> iTimePorts; // Indicate the corresponding port is OMX_OTHER_FormatTime
-
- OMX_PORT_PARAM_TYPE iAudioParamInit;
- OMX_PORT_PARAM_TYPE iImageParamInit;
- OMX_PORT_PARAM_TYPE iVideoParamInit;
- OMX_PORT_PARAM_TYPE iOtherParamInit;
- OMX_BOOL iImmediateReturnTimeBuffer;
- };
-
-#include "omxilportmanager.inl"
-
-#endif // OMXILPORTMANAGER_H
--- a/omxil/omxilcomponentcommon/src/common/omxilportmanager.inl Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-inline OMX_ERRORTYPE
-COmxILPortManager::GetPortIndexFromOmxStruct(
- TAny*& apComponentParameterStructure,
- OMX_U32& aIndex) const
- {
- return GetPortIndexFromOmxStruct(
- const_cast<const TAny*&>(apComponentParameterStructure), aIndex);
- }
-
-
-inline OMX_ERRORTYPE
-COmxILPortManager::GetPortIndexFromOmxStruct(
- const TAny*& apComponentParameterStructure,
- OMX_U32& aIndex) const
- {
- OMX_U32* const pPortIndex =
- reinterpret_cast<OMX_U32*>(
- const_cast<TAny*&>(apComponentParameterStructure)) +
- sizeof(OMX_U32) / sizeof(OMX_U32) +
- sizeof(OMX_VERSIONTYPE) / sizeof(OMX_U32);
-
- if (OMX_ErrorNone != CheckPortIndex(*pPortIndex))
- {
- return OMX_ErrorBadPortIndex;
- }
-
- aIndex = *pPortIndex;
-
- return OMX_ErrorNone;
-
- }
-
-
-/**
- Checks that a port index is consistent with port information found in the
- port's OMX_PORT_PARAM_TYPE structure, i.e., the number of ports in the
- component.
-
- @param aPortIndex The port index to be checked.
-
- @return OMX_ErrorBadPortIndex in case of error. OMX_ErrorNone otherwise.
-*/
-inline OMX_ERRORTYPE
-COmxILPortManager::CheckPortIndex(OMX_U32 aPortIndex) const
- {
-
- if (aPortIndex >= iAllPorts.Count())
- {
- return OMX_ErrorBadPortIndex;
- }
-
- return OMX_ErrorNone;
-
- }
-
--- a/omxil/omxilcomponentcommon/src/common/omxilprocessingfunction.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-#include "log.h"
-#include "omxilprocessingfunction.h"
-
-
-EXPORT_C
-COmxILProcessingFunction::COmxILProcessingFunction(
- MOmxILCallbackNotificationIf& aCallbacks)
- :
- iCallbacks(aCallbacks)
- {
- DEBUG_PRINTF(_L8("COmxILProcessingFunction::COmxILProcessingFunction"));
-
- }
-
-EXPORT_C
-COmxILProcessingFunction::~COmxILProcessingFunction()
- {
- DEBUG_PRINTF(_L8("COmxILProcessingFunction::~COmxILProcessingFunction"));
-
- }
-
-/**
- This is an indication from the framework that the IL Client wants to set the
- default role that a standard component is assuming. Therefore, the role
- defaults need to be reloaded into all ports and the Processing
- Function. This method is the indication to the processing function that the
- role defaults have been set into the component ports. A component not
- claiming support of any of the standard component roles does not need to
- override this method.
-
- @param aComponentRoleIndex An integer associated to the new component role.
-
- @return OMX_ERRORTYPE
- */
-EXPORT_C OMX_ERRORTYPE
-COmxILProcessingFunction::ComponentRoleIndication(TUint /* aComponentRoleIndex */)
- {
- return OMX_ErrorNotImplemented;
- }
-
-
-EXPORT_C OMX_ERRORTYPE COmxILProcessingFunction::MediaTimeIndication(const OMX_TIME_MEDIATIMETYPE& )
- {
- return OMX_ErrorNotImplemented;
- }
--- a/omxil/omxilcomponentcommon/src/common/omxilprocessingfunction.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,177 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-#ifndef OMXILPROCESSINGFUNCTION_H
-#define OMXILPROCESSINGFUNCTION_H
-
-#include <e32base.h>
-
-#include <openmax/il/khronos/v1_x/OMX_Core.h>
-#include <openmax/il/khronos/v1_x/OMX_Types.h>
-#include <openmax/il/khronos/v1_x/OMX_Other.h>
-
-#include "omxilfsm.h"
-
-// Forward declarations
-class MOmxILCallbackNotificationIf;
-
-/**
- Base class for component-specific implementations of the Processing Function
- abstraction. Component implementations realize within a Processing Function
- object the codec specific logic. Component implementations may choose
- whether to implement the Processing Function functionality in an additional
- independent thread or in-context with the framework. The interface is
- designed to generalize the notification of the OpenMAX IL commands, OpenMAX
- IL state changes and input/output buffer arrivals to the codec
- itself. Implementations of this interface are intended to communicate with
- the entity in charge of the egress component communication, the Callback
- Manager.
- */
-class COmxILProcessingFunction : public CBase
- {
-
-public:
-
- IMPORT_C ~COmxILProcessingFunction();
-
- /**
- Framework notification of a state transition in the component.
-
- @param aNewState The new state.
-
- @return OMX_ERRORTYPE
- */
- virtual OMX_ERRORTYPE StateTransitionIndication(
- COmxILFsm::TStateIndex aNewState) = 0;
-
- /**
- Framework notification of a buffer flushing command.
-
- @param aPortIndex The port that is being flushed.
-
- @param aDirection The direction of the port that is being flushed.
-
- @return OMX_ERRORTYPE
- */
- virtual OMX_ERRORTYPE BufferFlushingIndication(
- TUint32 aPortIndex,
- OMX_DIRTYPE aDirection) = 0;
-
- /**
- Framework notification of an OpenMAX IL Param structure change.
-
- @param aParamIndex The index of the param structure that has changed.
-
- @param apComponentParameterStructure The param structure.
-
- @return OMX_ERRORTYPE
- */
- virtual OMX_ERRORTYPE ParamIndication(
- OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure) = 0;
-
- /**
- Framework notification of an OpenMAX IL Config structure change.
-
- @param aConfigIndex The index of the config structure that has changed.
-
- @param apComponentConfigStructure The config structure.
-
- @return OMX_ERRORTYPE
- */
- virtual OMX_ERRORTYPE ConfigIndication(
- OMX_INDEXTYPE aConfigIndex,
- const TAny* apComponentConfigStructure) = 0;
-
- /**
- Framework notification of a buffer arrival.
-
- @param apBufferHeader The header of the buffer to be processed.
-
- @param aDirection The direction of the port that has received the
- buffer.
-
- @return OMX_ERRORTYPE
- */
- virtual OMX_ERRORTYPE BufferIndication(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_DIRTYPE aDirection) = 0;
-
- /**
- Framework notification of a buffer removal. Here the Processing Function
- object is being notified that a buffer needs to be removed from its
- internal queues. At present, a synchronous implementation of this method
- is assumed. Buffer removal notifications may be originated by the
- framework in the following scenarios:
-
- -# After an OMX_FreeBuffer call has been received from the IL Client or
- from another component.
-
- -# After a port flushing command has been received from the IL Client
- AND the port is tunnelled and buffer supplier.
-
- -# After a transition OMX_StateExecuting/OMX_StatePause -> OMX_StateIdle
- has been requested by the IL Client AND the port associated to the
- buffer is tunnelled and buffer supplier.
-
- -# After a port disable command has been received from the IL Client AND
- the port associated to the buffer is tunnelled and buffer supplier.
-
- @param apBufferHeader The buffer header to be removed from internal
- queues.
-
- @param aDirection The direction of the port associated to the buffer.
-
- @return OMX_BOOL Etrue if the Processing Function has successfully
- removed the buffer header from its internal queues, EFalse otherwise.
- */
- virtual OMX_BOOL BufferRemovalIndication(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_DIRTYPE aDirection) = 0;
-
- IMPORT_C virtual OMX_ERRORTYPE ComponentRoleIndication(
- TUint aComponentRoleIndex);
-
- /**
- Framework notification of a buffer arrival on a OMX_PortDomainOther;
- normally the interested component would just extract the buffer and
- let the port manager returns the buffer to the buffer supplier
- component via callback immediately.
-
- @param apBufferHeader The header of the buffer to be processed.
- @param aDirection The direction of the port that has received
- the buffer.
- @return OMX_ERRORTYPE
- */
- IMPORT_C virtual OMX_ERRORTYPE MediaTimeIndication(const OMX_TIME_MEDIATIMETYPE& );
-
-protected:
-
- IMPORT_C COmxILProcessingFunction(
- MOmxILCallbackNotificationIf& aCallbacks);
-
-protected:
-
- MOmxILCallbackNotificationIf& iCallbacks;
-
- };
-
-#endif // OMXILPROCESSINGFUNCTION_H
--- a/omxil/omxilcomponentcommon/src/common/omxilspecversion.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-#include "omxilspecversion.h"
-
-const TUint8 TOmxILSpecVersion::KSpecVersionMajor;
-const TUint8 TOmxILSpecVersion::KSpecVersionMinor;
-const TUint8 TOmxILSpecVersion::KSpecVersionRevision;
-const TUint8 TOmxILSpecVersion::KSpecVersionStep;
--- a/omxil/omxilcomponentcommon/src/common/omxilspecversion.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,123 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-#ifndef OMXILSPECVERSION_H
-#define OMXILSPECVERSION_H
-
-#include <e32def.h>
-#include <e32const.h>
-
-#include <openmax/il/khronos/v1_x/OMX_Types.h>
-
-class TOmxILVersion
- {
-
-public:
-
- inline TOmxILVersion(TUint8 aMajor,
- TUint8 aMinor,
- TUint8 aRev,
- TUint8 aStep);
-
-
- inline operator OMX_VERSIONTYPE&();
-
-#ifdef _OMXIL_COMMON_SPEC_VERSION_CHECKS_ON
- inline TBool operator!=(const OMX_VERSIONTYPE& aVer) const;
-
- inline TBool operator==(const OMX_VERSIONTYPE& aVer) const;
-#endif
-
-private:
-
- OMX_VERSIONTYPE iSpecVersion;
-
- };
-
-class TOmxILSpecVersion : public TOmxILVersion
- {
-
-public:
-
- static const TUint8 KSpecVersionMajor = OMX_VERSION_MAJOR;
- static const TUint8 KSpecVersionMinor = OMX_VERSION_MINOR;
- static const TUint8 KSpecVersionRevision = OMX_VERSION_REVISION;
- static const TUint8 KSpecVersionStep = OMX_VERSION_STEP;
-
-public:
-
- inline TOmxILSpecVersion();
-
- };
-
-inline
-TOmxILVersion::TOmxILVersion(TUint8 aMajor,
- TUint8 aMinor,
- TUint8 aRev,
- TUint8 aStep)
- {
- iSpecVersion.s.nVersionMajor = aMajor;
- iSpecVersion.s.nVersionMinor = aMinor;
- iSpecVersion.s.nRevision = aRev;
- iSpecVersion.s.nStep = aStep;
- }
-
-inline
-TOmxILVersion::operator OMX_VERSIONTYPE&()
- {
- return iSpecVersion;
- }
-
-#ifdef _OMXIL_COMMON_SPEC_VERSION_CHECKS_ON
-inline TBool
-TOmxILVersion::operator!=(
- const OMX_VERSIONTYPE& aVer) const
- {
- return !operator==(aVer);
- }
-
-inline TBool
-TOmxILVersion::operator==(
- const OMX_VERSIONTYPE& aVer) const
- {
- if (iSpecVersion.s.nVersionMajor == aVer.s.nVersionMajor &&
- iSpecVersion.s.nVersionMinor == aVer.s.nVersionMinor &&
- iSpecVersion.s.nRevision == aVer.s.nRevision &&
- iSpecVersion.s.nStep == aVer.s.nStep)
- {
- return ETrue;
- }
- return EFalse;
- }
-#endif
-
-inline
-TOmxILSpecVersion::TOmxILSpecVersion()
- :
- TOmxILVersion(KSpecVersionMajor,
- KSpecVersionMinor,
- KSpecVersionRevision,
- KSpecVersionStep)
- {
- }
-
-#endif // OMXILSPECVERSION_H
-
--- a/omxil/omxilcomponentcommon/src/common/omxilstate.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1964 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-#include "log.h"
-#include "omxilstate.h"
-#include "omxilfsm.h"
-#include "omxilcommand.h"
-#include "omxilconfigmanager.h"
-#include "omxilcallbackmanager.h"
-
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILState::GetParameter(
- const COmxILFsm& aFsm,
- OMX_INDEXTYPE aParamIndex,
- TAny* apComponentParameterStructure) const
- {
- DEBUG_PRINTF(_L8("COmxILState::GetParameter"));
-
- // This API can be used independently of the current state of the
- // component. Let's try first the Port Manager to check if the index is
- // known there
- OMX_ERRORTYPE retValue =
- aFsm.iPortManager.GetParameter(aParamIndex,
- apComponentParameterStructure);
-
- if (OMX_ErrorUnsupportedIndex == retValue)
- {
- // Otherwise, try Config Manager...
- retValue = aFsm.iConfigManager.GetParameter(
- aParamIndex,
- apComponentParameterStructure);
- }
-
- return retValue;
-
- }
-
-// This SetParameter version must be used in the following states:
-// - OMX_StateIdle,
-// - OMX_StateExecuting,
-// - OMX_StatePaused, and
-//
-OMX_ERRORTYPE
-COmxILFsm::COmxILState::SetParameter(
- COmxILFsm& aFsm,
- OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure)
- {
- DEBUG_PRINTF(_L8("COmxILState::SetParameter"));
-
- OMX_ERRORTYPE retValue =
- aFsm.iPortManager.SetParameter(
- aParamIndex,
- apComponentParameterStructure,
- OMX_TRUE // Port must be disabled
- );
-
- if (OMX_ErrorUnsupportedIndex == retValue)
- {
- // Try Config Manager now...
- retValue = aFsm.iConfigManager.SetParameter(
- aParamIndex,
- apComponentParameterStructure,
- OMX_FALSE // run-time
- );
- }
-
- return retValue;
-
- }
-
-// This SetParameter version must be used in the following states:
-// - OMX_StateLoaded and derived states,
-// - OMX_StateWaitForResources
-//
-OMX_ERRORTYPE
-COmxILFsm::COmxILState::SetParameterV2(
- COmxILFsm& aFsm,
- OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure)
- {
- DEBUG_PRINTF(_L8("COmxILState::SetParameterV2"));
-
- OMX_ERRORTYPE retValue =
- aFsm.iPortManager.SetParameter(aParamIndex,
- apComponentParameterStructure);
-
- if (OMX_ErrorUnsupportedIndex == retValue)
- {
- // Try Config Manager now...
- retValue = aFsm.iConfigManager.SetParameter(
- aParamIndex,
- apComponentParameterStructure);
- }
-
- return retValue;
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILState::GetConfig(
- const COmxILFsm& aFsm,
- OMX_INDEXTYPE aConfigIndex,
- TAny* apComponentConfigStructure) const
- {
- DEBUG_PRINTF(_L8("COmxILState::GetConfig"));
-
- OMX_ERRORTYPE retValue =
- aFsm.iPortManager.GetConfig(aConfigIndex,
- apComponentConfigStructure);
-
- if (OMX_ErrorUnsupportedIndex == retValue)
- {
- // Try Config Manager now...
- retValue = aFsm.iConfigManager.GetConfig(
- aConfigIndex,
- apComponentConfigStructure);
- }
-
- return retValue;
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILState::SetConfig(COmxILFsm& aFsm,
- OMX_INDEXTYPE aConfigIndex,
- const TAny* apComponentConfigStructure)
- {
- DEBUG_PRINTF(_L8("COmxILState::SetConfig"));
-
- OMX_ERRORTYPE retValue =
- aFsm.iPortManager.SetConfig(aConfigIndex,
- apComponentConfigStructure);
-
- if (OMX_ErrorUnsupportedIndex == retValue)
- {
- // Try Config Manager now...
- retValue = aFsm.iConfigManager.SetConfig(
- aConfigIndex,
- apComponentConfigStructure);
- }
-
- return retValue;
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILState::GetExtensionIndex(const COmxILFsm& aFsm,
- OMX_STRING aParameterName,
- OMX_INDEXTYPE* apIndexType) const
- {
- DEBUG_PRINTF(_L8("COmxILState::GetExtensionIndex"));
-
- OMX_ERRORTYPE retValue =
- aFsm.iPortManager.GetExtensionIndex(aParameterName,
- apIndexType);
-
- if (OMX_ErrorUnsupportedIndex == retValue)
- {
- // Try Config Manager now...
- retValue = aFsm.iConfigManager.GetExtensionIndex(
- aParameterName,
- apIndexType);
- }
-
- return retValue;
-
- }
-
-//
-//
-//
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILState::CommandFlush(COmxILFsm& aFsm,
- const TOmxILCommand& aCommand)
- {
- DEBUG_PRINTF(_L8("COmxILState::CommandFlush"));
-
- __ASSERT_DEBUG(aCommand.iCommandType == OMX_CommandFlush,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- return aFsm.iPortManager.BufferFlushIndicationFlushCommand(
- aCommand.iParam1);
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILState::CommandPortDisable(COmxILFsm& aFsm,
- const TOmxILCommand& aCommand)
- {
- DEBUG_PRINTF(_L8("COmxILState::CommandPortDisable"));
- __ASSERT_DEBUG(aCommand.iCommandType == OMX_CommandPortDisable,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- // First, flush all buffers in the port(s) that is(are) to be disabled.
- return aFsm.iPortManager.PortDisableIndication(
- aCommand.iParam1);
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILState::CommandPortEnable(COmxILFsm& aFsm,
- const TOmxILCommand& aCommand)
- {
- DEBUG_PRINTF(_L8("COmxILState::CommandPortEnable"));
- __ASSERT_DEBUG(aCommand.iCommandType == OMX_CommandPortEnable,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- TBool indicationIsFinal = EFalse;
- return aFsm.iPortManager.PortEnableIndication(
- aCommand.iParam1,
- indicationIsFinal);
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILState::CommandMarkBuffer(COmxILFsm& aFsm,
- const TOmxILCommand& aCommand)
- {
- DEBUG_PRINTF(_L8("COmxILState::CommandMarkBuffer"));
-
- __ASSERT_DEBUG(aCommand.iCommandType == OMX_CommandMarkBuffer,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- if (!aCommand.ipCommandData)
- {
- return OMX_ErrorBadParameter;
- }
-
- return aFsm.iPortManager.BufferMarkIndication(aCommand.iParam1,
- aCommand.ipCommandData);
-
- }
-
-
-//
-// COmxILStateInvalid
-//
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateInvalid::GetParameter(
- const COmxILFsm& /*aFsm*/,
- OMX_INDEXTYPE /*aParamIndex*/,
- TAny* /*apComponentParameterStructure*/) const
- {
- DEBUG_PRINTF(_L8("COmxILStateInvalid::GetParameter"));
- return OMX_ErrorInvalidState;
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateInvalid::SetParameter(
- COmxILFsm& /*aFsm*/,
- OMX_INDEXTYPE /*aParamIndex*/,
- const TAny* /*apComponentParameterStructure*/)
- {
- DEBUG_PRINTF(_L8("COmxILStateInvalid::SetParameter"));
- return OMX_ErrorInvalidState;
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateInvalid::GetConfig(
- const COmxILFsm& /*aFsm*/,
- OMX_INDEXTYPE /*aConfigIndex*/,
- TAny* /*apComponentConfigStructure*/) const
- {
- DEBUG_PRINTF(_L8("COmxILStateInvalid::GetConfig"));
- return OMX_ErrorInvalidState;
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateInvalid::SetConfig(
- COmxILFsm& /*aFsm*/,
- OMX_INDEXTYPE /*aConfigIndex*/,
- const TAny* /*apComponentConfigStructure*/)
- {
- DEBUG_PRINTF(_L8("COmxILStateInvalid::SetConfig"));
- return OMX_ErrorInvalidState;
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateInvalid::GetExtensionIndex(
- const COmxILFsm& /*aFsm*/,
- OMX_STRING /*aParameterName*/,
- OMX_INDEXTYPE* /*apIndexType*/) const
- {
- DEBUG_PRINTF(_L8("COmxILStateInvalid::GetExtensionIndex"));
- return OMX_ErrorInvalidState;
- }
-
-OMX_STATETYPE
-COmxILFsm::COmxILStateInvalid::GetState() const
- {
- DEBUG_PRINTF(_L8("COmxILStateInvalid::GetState"));
- return OMX_StateInvalid;
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateInvalid::ComponentTunnelRequest(
- COmxILFsm& /*aFsm*/,
- OMX_U32 /*aPort*/,
- OMX_HANDLETYPE /*aTunneledComp*/,
- OMX_U32 /*aTunneledPort*/,
- OMX_TUNNELSETUPTYPE* /*apTunnelSetup*/)
- {
- DEBUG_PRINTF(_L8("COmxILStateInvalid::ComponentTunnelRequest"));
-
- return OMX_ErrorInvalidState;
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateInvalid::PopulateBuffer(
- COmxILFsm& /*aFsm*/,
- OMX_BUFFERHEADERTYPE** /*appBufferHdr*/,
- OMX_U32 /*aPortIndex*/,
- OMX_PTR /*apAppPrivate*/,
- OMX_U32 /*aSizeBytes*/,
- OMX_U8* /*apBuffer*/,
- TBool& /*portPopulationCompleted*/)
- {
- DEBUG_PRINTF(_L8("COmxILStateInvalid::PopulateBuffer"));
-
- return OMX_ErrorInvalidState;
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateInvalid::FreeBuffer(COmxILFsm& aFsm,
- OMX_U32 aPortIndex,
- OMX_BUFFERHEADERTYPE* apBuffer,
- TBool& aPortDepopulationCompleted)
- {
- DEBUG_PRINTF(_L8("COmxILStateInvalid::FreeBuffer"));
-
- return COmxILState::FreeBufferV2(
- aFsm,
- aPortIndex,
- apBuffer,
- aPortDepopulationCompleted);
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateInvalid::EmptyThisBuffer(
- COmxILFsm& /*aFsm*/,
- OMX_BUFFERHEADERTYPE* /*apBuffer*/)
- {
- DEBUG_PRINTF(_L8("COmxILStateInvalid::EmptyThisBuffer"));
-
- return OMX_ErrorInvalidState;
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateInvalid::FillThisBuffer(
- COmxILFsm& /*aFsm*/,
- OMX_BUFFERHEADERTYPE* /*apBuffer*/)
- {
- DEBUG_PRINTF(_L8("COmxILStateInvalid::FillThisBuffer"));
-
- return OMX_ErrorInvalidState;
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateInvalid::CommandStateSet(
- COmxILFsm& /*aFsm*/,
- const TOmxILCommand& /*aCommand*/)
- {
- DEBUG_PRINTF(_L8("COmxILStateInvalid::CommandStateSet"));
- return OMX_ErrorInvalidState;
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateInvalid::CommandFlush(
- COmxILFsm& /*aFsm*/,
- const TOmxILCommand& /*aCommand*/)
- {
- DEBUG_PRINTF(_L8("COmxILStateInvalid::CommandFlush"));
- return OMX_ErrorInvalidState;
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateInvalid::CommandPortEnable(
- COmxILFsm& /*aFsm*/,
- const TOmxILCommand& /*aCommand*/)
- {
- DEBUG_PRINTF(_L8("COmxILStateInvalid::CommandPortEnable"));
- return OMX_ErrorInvalidState;
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateInvalid::CommandPortDisable(
- COmxILFsm& /*aFsm*/,
- const TOmxILCommand& /*aCommand*/)
- {
- DEBUG_PRINTF(_L8("COmxILStateInvalid::CommandPortDisable"));
- return OMX_ErrorInvalidState;
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateInvalid::CommandMarkBuffer(
- COmxILFsm& /*aFsm*/,
- const TOmxILCommand& /*aCommand*/)
- {
- DEBUG_PRINTF(_L8("COmxILStateInvalid::CommandMarkBuffer"));
- return OMX_ErrorInvalidState;
- }
-
-
-//
-// COmxILStateLoaded
-//
-OMX_STATETYPE
-COmxILFsm::COmxILStateLoaded::GetState() const
- {
- DEBUG_PRINTF(_L8("COmxILStateLoaded::GetState"));
- return OMX_StateLoaded;
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateLoaded::SetParameter(
- COmxILFsm& aFsm,
- OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure)
- {
- DEBUG_PRINTF(_L8("COmxILStateLoaded::SetParameter"));
-
- return COmxILState::SetParameterV2(aFsm,
- aParamIndex,
- apComponentParameterStructure);
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateLoaded::PopulateBuffer(
- COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aPortIndex,
- OMX_PTR apAppPrivate,
- OMX_U32 aSizeBytes,
- OMX_U8* apBuffer,
- TBool& portPopulationCompleted)
- {
- DEBUG_PRINTF(_L8("COmxILStateLoaded::PopulateBuffer"));
-
- // At this point, the command requesting the transition from Loaded to Idle
- // has not been received yet.. (see COmxILStateLoadedToIdle). Therefore,
- // this can only be successful if the port is disabled
- return COmxILState::PopulateBuffer(aFsm,
- appBufferHdr,
- aPortIndex,
- apAppPrivate,
- aSizeBytes,
- apBuffer,
- portPopulationCompleted);
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateLoaded::FreeBuffer(COmxILFsm& aFsm,
- OMX_U32 aPortIndex,
- OMX_BUFFERHEADERTYPE* apBuffer,
- TBool& aPortDepopulationCompleted)
- {
- DEBUG_PRINTF(_L8("COmxILStateLoaded::FreeBuffer"));
-
- return COmxILState::FreeBuffer(aFsm,
- aPortIndex,
- apBuffer,
- aPortDepopulationCompleted);
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateLoaded::EmptyThisBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer)
- {
- DEBUG_PRINTF(_L8("COmxILStateLoaded::EmptyThisBuffer"));
-
- return COmxILState::EmptyThisBuffer(aFsm,
- apBuffer);
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateLoaded::FillThisBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer)
- {
- DEBUG_PRINTF(_L8("COmxILStateLoaded::FillThisBuffer"));
-
- return COmxILState::FillThisBuffer(aFsm,
- apBuffer);
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateLoaded::ComponentTunnelRequest(
- COmxILFsm& aFsm,
- OMX_U32 aPort,
- OMX_HANDLETYPE aTunneledComp,
- OMX_U32 aTunneledPort,
- OMX_TUNNELSETUPTYPE* apTunnelSetup)
- {
- DEBUG_PRINTF(_L8("COmxILStateLoaded::ComponentTunnelRequest"));
-
- return COmxILState::ComponentTunnelRequestV2(aFsm,
- aPort,
- aTunneledComp,
- aTunneledPort,
- apTunnelSetup);
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateLoaded::CommandStateSet(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand)
- {
- DEBUG_PRINTF(_L8("COmxILStateLoaded::CommandStateSet"));
-
- __ASSERT_DEBUG(aCommand.iCommandType == OMX_CommandStateSet,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- // The only two transitions allowed are :
- // - OMX_StateIdle and
- // - OMX_StateWaitForResources.
- COmxILFsm::TStateIndex nextState = COmxILFsm::EStateMax;
- switch(aCommand.iParam1)
- {
- case OMX_StateIdle:
- {
- nextState = COmxILFsm::ESubStateLoadedToIdle;
- }
- break;
- case OMX_StateWaitForResources:
- {
- nextState = COmxILFsm::EStateWaitForResources;
- }
- break;
- case OMX_StateLoaded:
- {
- return OMX_ErrorSameState;
- }
- case OMX_StateInvalid:
- {
- // Notify the IL client... ignore the ret value..
- aFsm.iCallbacks.TransitionCompleteNotification(OMX_StateInvalid);
- // Invalidate component
- return OMX_ErrorInvalidState;
- }
- default:
- {
- return OMX_ErrorIncorrectStateTransition;
- }
-
- };
-
- // Initial checks OK. The component is commanded to make a transition to
- // OMX_StateIdle or OMX_StateWaitForResources.
- OMX_ERRORTYPE omxRetValue = aFsm.FsmTransition(nextState);
- if (OMX_ErrorNone != omxRetValue)
- {
- return omxRetValue;
- }
-
- if (COmxILFsm::ESubStateLoadedToIdle == nextState)
- {
- // Lets tell port manager in case there are buffer supplier tunnelled ports
- TBool componentPopulationCompleted = EFalse;
- omxRetValue =
- aFsm.iPortManager.TunnellingBufferAllocation(
- componentPopulationCompleted);
- if (OMX_ErrorNone != omxRetValue)
- {
- return omxRetValue;
- }
-
- if (componentPopulationCompleted)
- {
- // Complete here the transition to OMX_StateIdle
- omxRetValue = aFsm.FsmTransition(COmxILFsm::EStateIdle);
- if (OMX_ErrorNone == omxRetValue)
- {
- // Notify the IL client that port population has completed
- // sucessfully
- omxRetValue =
- aFsm.iCallbacks.TransitionCompleteNotification(
- OMX_StateIdle);
- }
-
- }
-
- }
- else
- {
- // Notify the IL client that the transition to
- // OMX_StateWaitForResources has completed sucessfully
- omxRetValue = aFsm.iCallbacks.TransitionCompleteNotification(
- OMX_StateWaitForResources);
-
- }
-
- return omxRetValue;
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateLoaded::CommandPortEnable(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand)
- {
- DEBUG_PRINTF(_L8("COmxILStateLoaded::CommandPortEnable"));
- __ASSERT_DEBUG(aCommand.iCommandType == OMX_CommandPortEnable,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- TBool indicationIsFinal = ETrue;
- return aFsm.iPortManager.PortEnableIndication(
- aCommand.iParam1,
- indicationIsFinal);
-
- }
-
-
-//
-// COmxILStateLoadedToIdle
-//
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateLoadedToIdle::SetParameter(
- COmxILFsm& aFsm,
- OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure)
- {
-
- // In this transitional state, OMX_SetParameter is allowed only if
- // OMX_UseBuffer has not been received yet...
- if (iUseBufferReceived)
- {
- return OMX_ErrorIncorrectStateOperation;
- }
-
-
- return COmxILStateLoaded::SetParameter(aFsm,
- aParamIndex,
- apComponentParameterStructure);
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateLoadedToIdle::PopulateBuffer(
- COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aPortIndex,
- OMX_PTR apAppPrivate,
- OMX_U32 aSizeBytes,
- OMX_U8* apBuffer,
- TBool& portPopulationCompleted)
- {
- DEBUG_PRINTF(_L8("COmxILStateLoadedToIdle::PopulateBuffer"));
-
- OMX_ERRORTYPE omxError =
- COmxILState::PopulateBufferV2(aFsm,
- appBufferHdr,
- aPortIndex,
- apAppPrivate,
- aSizeBytes,
- apBuffer,
- portPopulationCompleted);
-
- if (apBuffer && OMX_ErrorNone == omxError)
- {
- // Flag that OMX_UseBuffer has been called in LoadedToIdle state. This
- // will be used to know if an OMX_SetParameter call will be allowed in
- // this state... It will be allowed only if false...
- iUseBufferReceived = ETrue;
- }
-
- return omxError;
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateLoadedToIdle::CommandStateSet(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand)
- {
- DEBUG_PRINTF(_L8("COmxILStateLoadedToIdle::CommandStateSet"));
-
- __ASSERT_DEBUG(aCommand.iCommandType == OMX_CommandStateSet,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- switch(aCommand.iParam1)
- {
- case OMX_StateWaitForResources:
- {
- // Not implemented for now...
- return OMX_ErrorNotImplemented;
- }
- case OMX_StateLoaded:
- {
- // Here, return "same state" as the transition to OMX_StateLoaded has
- // not completed yet.
- return OMX_ErrorSameState;
- }
- case OMX_StateInvalid:
- {
- // Notify the IL client... ignore the ret value...
- aFsm.iCallbacks.TransitionCompleteNotification(OMX_StateInvalid);
- // Invalidate component
- return OMX_ErrorInvalidState;
- }
- default:
- {
- return OMX_ErrorIncorrectStateTransition;
- }
- };
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateLoadedToIdle::CommandPortEnable(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand)
- {
- DEBUG_PRINTF(_L8("COmxILStateLoadedToIdle::CommandPortEnable"));
- __ASSERT_DEBUG(aCommand.iCommandType == OMX_CommandPortEnable,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- TBool indicationIsFinal = EFalse;
- OMX_ERRORTYPE omxRetValue =
- aFsm.iPortManager.PortEnableIndication(
- aCommand.iParam1,
- indicationIsFinal);
- if (OMX_ErrorNone != omxRetValue)
- {
- return omxRetValue;
- }
-
- // Lets tell port manager in case the port being enabled is a tunnel
- // supplier...
- TBool componentPopulationCompleted = EFalse;
- omxRetValue =
- aFsm.iPortManager.TunnellingBufferAllocation(
- componentPopulationCompleted, aCommand.iParam1);
- if (OMX_ErrorNone != omxRetValue)
- {
- return omxRetValue;
- }
-
- // Let's do this check here although this situation is going to be very
- // unlikely...
- if (componentPopulationCompleted)
- {
- // Complete here the transition to OMX_StateIdle
- omxRetValue = aFsm.FsmTransition(COmxILFsm::EStateIdle);
- if (OMX_ErrorNone == omxRetValue)
- {
- // Notify the IL client that port population has completed sucessfully
- aFsm.iCallbacks.TransitionCompleteNotification(
- OMX_StateIdle);
- }
-
- }
-
- return omxRetValue;
-
- }
-
-
-//
-// COmxILStateWaitForResources
-//
-OMX_STATETYPE
-COmxILFsm::COmxILStateWaitForResources::GetState() const
- {
- DEBUG_PRINTF(_L8("COmxILStateWaitForResources::GetState"));
- return OMX_StateWaitForResources;
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateWaitForResources::SetParameter(
- COmxILFsm& aFsm,
- OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure)
- {
- DEBUG_PRINTF(_L8("COmxILStateWaitForResources::SetParameter"));
-
- return COmxILState::SetParameterV2(aFsm,
- aParamIndex,
- apComponentParameterStructure);
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateWaitForResources::PopulateBuffer(
- COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aPortIndex,
- OMX_PTR apAppPrivate,
- OMX_U32 aSizeBytes,
- OMX_U8* apBuffer,
- TBool& portPopulationCompleted)
- {
- DEBUG_PRINTF(_L8("COmxILStateWaitForResources::PopulateBuffer"));
-
- // NOTE that according to the spec, PopulateBuffer could be used here even
- // if the port is enabled. However, for now the transition from
- // OMX_StateWaitForResouces -> OMX_StateIdle is not supported, therefore
- // buffer population is only allowed for disabled ports. This should be
- // changed once Resource Management functionality is available and this
- // state is revisited.
- return COmxILState::PopulateBuffer(aFsm,
- appBufferHdr,
- aPortIndex,
- apAppPrivate,
- aSizeBytes,
- apBuffer,
- portPopulationCompleted);
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateWaitForResources::FreeBuffer(
- COmxILFsm& aFsm,
- OMX_U32 aPortIndex,
- OMX_BUFFERHEADERTYPE* apBuffer,
- TBool& aPortDepopulationCompleted)
- {
- DEBUG_PRINTF(_L8("COmxILStateWaitForResources::FreeBuffer"));
-
- return COmxILState::FreeBuffer(aFsm,
- aPortIndex,
- apBuffer,
- aPortDepopulationCompleted);
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateWaitForResources::EmptyThisBuffer(
- COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer)
- {
- DEBUG_PRINTF(_L8("COmxILStateWaitForResources::EmptyThisBuffer"));
-
- return COmxILState::EmptyThisBuffer(aFsm,
- apBuffer);
-
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateWaitForResources::FillThisBuffer(
- COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer)
- {
- DEBUG_PRINTF(_L8("COmxILStateWaitForResources::FillThisBuffer"));
-
- return COmxILState::FillThisBuffer(aFsm,
- apBuffer);
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateWaitForResources::ComponentTunnelRequest(
- COmxILFsm& aFsm,
- OMX_U32 aPort,
- OMX_HANDLETYPE aTunneledComp,
- OMX_U32 aTunneledPort,
- OMX_TUNNELSETUPTYPE* apTunnelSetup)
- {
- DEBUG_PRINTF(_L8("COmxILStateWaitForResources::ComponentTunnelRequest"));
-
- return COmxILState::ComponentTunnelRequest(aFsm,
- aPort,
- aTunneledComp,
- aTunneledPort,
- apTunnelSetup);
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateWaitForResources::CommandStateSet(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand)
- {
- DEBUG_PRINTF(_L8("COmxILStateWaitForResources::CommandStateSet"));
-
- __ASSERT_DEBUG(aCommand.iCommandType == OMX_CommandStateSet,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- // Transition to OMX_StateIdle not implemented for now...
- COmxILFsm::TStateIndex nextState = COmxILFsm::EStateMax;
- switch(aCommand.iParam1)
- {
- case OMX_StateLoaded:
- {
- nextState = COmxILFsm::EStateLoaded;
- }
- break;
- case OMX_StateWaitForResources:
- {
- return OMX_ErrorSameState;
- }
- case OMX_StateInvalid:
- {
- // Notify the IL client... ignore the ret value...
- aFsm.iCallbacks.TransitionCompleteNotification(OMX_StateInvalid);
- // Invalidate component
- return OMX_ErrorInvalidState;
- }
- default:
- {
- return OMX_ErrorIncorrectStateTransition;
- }
- };
-
- // Initial checks OK. The component is commanded to make a transition to
- // OMX_StateLoaded
- OMX_ERRORTYPE omxRetValue = aFsm.FsmTransition(nextState);
- if (OMX_ErrorNone == omxRetValue)
- {
- // Notify the IL client that the transition to
- // OMX_StateLoaded has completed sucessfully
- omxRetValue =
- aFsm.iCallbacks.TransitionCompleteNotification(OMX_StateLoaded);
- }
-
- return omxRetValue;
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateWaitForResources::CommandPortEnable(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand)
- {
- DEBUG_PRINTF(_L8("COmxILStateWaitForResources::CommandPortEnable"));
- __ASSERT_DEBUG(aCommand.iCommandType == OMX_CommandPortEnable,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- // NOTE: Here, we only care about the port enabled flag. Transition from
- // OMX_StateWaitForResources to OMX_StateIdle is not implemented at this
- // stage until a Resource Manager is available. Whenever a Resource Manager
- // becomes available, a COmxILStateWaitForResourcesToIdle substate should
- // be implemented to handle the allocation of buffers mandated by the
- // standard when a port is enabled in this transition.
- TBool indicationIsFinal = ETrue;
- return aFsm.iPortManager.PortEnableIndication(
- aCommand.iParam1,
- indicationIsFinal);
-
- }
-
-
-//
-// COmxILStateIdle
-//
-OMX_STATETYPE
-COmxILFsm::COmxILStateIdle::GetState() const
- {
- DEBUG_PRINTF(_L8("COmxILStateIdle::GetState"));
- return OMX_StateIdle;
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateIdle::SetParameter(
- COmxILFsm& aFsm,
- OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure)
- {
- DEBUG_PRINTF(_L8("COmxILStateIdle::SetParameter"));
-
- return COmxILState::SetParameter(aFsm,
- aParamIndex,
- apComponentParameterStructure);
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateIdle::PopulateBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aPortIndex,
- OMX_PTR apAppPrivate,
- OMX_U32 aSizeBytes,
- OMX_U8* apBuffer,
- TBool& portPopulationCompleted)
- {
- DEBUG_PRINTF(_L8("COmxILStateIdle::PopulateBuffer"));
-
- // At this point, no buffer population can take place unless the port is disabled
- return COmxILState::PopulateBuffer(aFsm,
- appBufferHdr,
- aPortIndex,
- apAppPrivate,
- aSizeBytes,
- apBuffer,
- portPopulationCompleted);
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateIdle::FreeBuffer(COmxILFsm& aFsm,
- OMX_U32 aPortIndex,
- OMX_BUFFERHEADERTYPE* apBuffer,
- TBool& aPortDepopulationCompleted)
- {
- DEBUG_PRINTF(_L8("COmxILStateIdle::FreeBuffer"));
-
- // At this point, the command requesting the transition from Idle to Loaded
- // has not been received yet.. (see COmxILStateIdleToLoaded). Therefore,
- // this can only be successful if the port is disabled
- return COmxILState::FreeBuffer(aFsm,
- aPortIndex,
- apBuffer,
- aPortDepopulationCompleted);
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateIdle::EmptyThisBuffer(
- COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer)
- {
- DEBUG_PRINTF(_L8("COmxILStateIdle::EmptyThisBuffer"));
-
- return COmxILState::EmptyThisBufferV2(aFsm,
- apBuffer);
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateIdle::FillThisBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer)
- {
- DEBUG_PRINTF(_L8("COmxILStateIdle::FillThisBuffer"));
-
- return COmxILState::FillThisBufferV2(aFsm,
- apBuffer);
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateIdle::ComponentTunnelRequest(
- COmxILFsm& aFsm,
- OMX_U32 aPort,
- OMX_HANDLETYPE aTunneledComp,
- OMX_U32 aTunneledPort,
- OMX_TUNNELSETUPTYPE* apTunnelSetup)
- {
- DEBUG_PRINTF(_L8("COmxILStateIdle::ComponentTunnelRequest"));
-
- return COmxILState::ComponentTunnelRequest(aFsm,
- aPort,
- aTunneledComp,
- aTunneledPort,
- apTunnelSetup);
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateIdle::CommandStateSet(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand)
- {
- DEBUG_PRINTF(_L8("COmxILStateIdle::CommandStateSet"));
-
- __ASSERT_DEBUG(aCommand.iCommandType == OMX_CommandStateSet,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- COmxILFsm::TStateIndex nextState = COmxILFsm::EStateInvalid;
- switch(aCommand.iParam1)
- {
- case OMX_StateLoaded:
- {
- nextState = COmxILFsm::ESubStateIdleToLoaded;
- }
- break;
- case OMX_StateExecuting:
- {
- nextState = COmxILFsm::EStateExecuting;
- }
- break;
- case OMX_StatePause:
- {
- nextState = COmxILFsm::EStatePause;
- }
- break;
- case OMX_StateIdle:
- {
- return OMX_ErrorSameState;
- }
- case OMX_StateInvalid:
- {
- // Notify the IL client... ignore the ret value...
- aFsm.iCallbacks.TransitionCompleteNotification(OMX_StateInvalid);
- // Invalidate component
- return OMX_ErrorInvalidState;
- }
- default:
- {
- return OMX_ErrorIncorrectStateTransition;
- }
- };
-
- // Initial command checks OK
-
- // Commit transition to the valid state
- OMX_ERRORTYPE omxRetValue = aFsm.FsmTransition(nextState);
- if (OMX_ErrorNone != omxRetValue)
- {
- return omxRetValue;
- }
-
- if (COmxILFsm::ESubStateIdleToLoaded == nextState)
- {
- // Lets tell port manager in case there are tunnelled ports...
- TBool componentDepopulationCompleted = EFalse;
- omxRetValue =
- aFsm.iPortManager.TunnellingBufferDeallocation(
- componentDepopulationCompleted);
- if (OMX_ErrorNone != omxRetValue)
- {
- return omxRetValue;
- }
-
- if (componentDepopulationCompleted)
- {
- // Complete here the transition to OMX_StateLoaded
- omxRetValue = aFsm.FsmTransition(COmxILFsm::EStateLoaded);
- if (OMX_ErrorNone == omxRetValue)
- {
- // Notify the IL client that port population has completed sucessfully
- omxRetValue = aFsm.iCallbacks.TransitionCompleteNotification(
- OMX_StateLoaded);
- }
- }
-
- }
- else
- {
- // Notify the IL client that the transition to the valid state
- // OMX_StatePause or OMX_StateExecuting has completed sucessfully
- omxRetValue = aFsm.iCallbacks.TransitionCompleteNotification(
- static_cast<OMX_STATETYPE>(aCommand.iParam1));
-
- if (OMX_ErrorNone == omxRetValue)
- {
- // Fire up the tunnelled buffer exchange, if any tunnelled ports are
- // found in the component...
- omxRetValue = aFsm.iPortManager.InitiateTunnellingDataFlow();
- }
-
- }
-
- return omxRetValue;
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateIdle::CommandFlush(COmxILFsm& aFsm,
- const TOmxILCommand& aCommand)
- {
- DEBUG_PRINTF(_L8("COmxILStateIdle::CommandFlush"));
-
- __ASSERT_DEBUG(aCommand.iCommandType == OMX_CommandFlush,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- return aFsm.iPortManager.BufferFlushIndicationFlushCommand(
- aCommand.iParam1, OMX_FALSE); // Do not eject buffers
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateIdle::CommandPortEnable(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand)
- {
- DEBUG_PRINTF(_L8("COmxILStateIdle::CommandPortEnable"));
- __ASSERT_DEBUG(aCommand.iCommandType == OMX_CommandPortEnable,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- // In this state, the port allocation has finished for enabled
- // ports. However, a port is being enabled here. The port being enabled
- // must populate (if tunnel supplier) or be populated (if non-tunnel
- // supplier or IL Client communication)
- TBool indicationIsFinal = EFalse;
- OMX_ERRORTYPE omxRetValue =
- aFsm.iPortManager.PortEnableIndication(
- aCommand.iParam1,
- indicationIsFinal);
-
- if (OMX_ErrorNone == omxRetValue)
- {
- // From section 3.2.2.6, "If the IL client enables a port while the
- // component is in any state other than OMX_StateLoaded or
- // OMX_WaitForResources, then that port shall allocate its buffers via
- // the same call sequence used on a transition from OMX_StateLoaded to
- // OMX_StateIdle."
-
- // Lets tell port manager in case the port being enabled is a tunnel
- // supplier...
- TBool componentPopulationCompleted = EFalse;
- omxRetValue =
- aFsm.iPortManager.TunnellingBufferAllocation(
- componentPopulationCompleted, aCommand.iParam1);
- }
-
- return omxRetValue;
-
- }
-
-
-//
-// COmxILStateIdleToLoaded
-//
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateIdleToLoaded::FreeBuffer(COmxILFsm& aFsm,
- OMX_U32 aPortIndex,
- OMX_BUFFERHEADERTYPE* apBuffer,
- TBool& aPortDepopulationCompleted)
- {
- DEBUG_PRINTF(_L8("COmxILStateIdleToLoaded::FreeBuffer"));
-
- return COmxILState::FreeBufferV2(aFsm,
- aPortIndex,
- apBuffer,
- aPortDepopulationCompleted);
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateIdleToLoaded::CommandStateSet(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand)
- {
- DEBUG_PRINTF(_L8("COmxILStateIdleToLoaded::CommandStateSet"));
-
- __ASSERT_DEBUG(aCommand.iCommandType == OMX_CommandStateSet,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- switch (aCommand.iParam1)
- {
- case OMX_StateIdle:
- {
- // Here, return "same state" as the transition to OMX_StateLoaded has
- // not completed yet.
- return OMX_ErrorSameState;
- }
- case OMX_StateInvalid:
- {
- // Notify the IL client... ignore the ret value...
- aFsm.iCallbacks.TransitionCompleteNotification(OMX_StateInvalid);
- // Invalidate component
- return OMX_ErrorInvalidState;
- }
- default:
- {
- __ASSERT_ALWAYS(0, User::Panic(KOmxILFsmPanicCategory, 1));
- }
- };
-
- return OMX_ErrorNone;
-
- }
-
-
-//
-// COmxILStateExecuting
-//
-OMX_STATETYPE
-COmxILFsm::COmxILStateExecuting::GetState() const
- {
- DEBUG_PRINTF(_L8("COmxILStateExecuting::GetState"));
- return OMX_StateExecuting;
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateExecuting::SetParameter(COmxILFsm& aFsm,
- OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure)
- {
- DEBUG_PRINTF(_L8("COmxILStateExecuting::SetParameter"));
-
- return COmxILState::SetParameter(aFsm,
- aParamIndex,
- apComponentParameterStructure);
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateExecuting::PopulateBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aPortIndex,
- OMX_PTR apAppPrivate,
- OMX_U32 aSizeBytes,
- OMX_U8* apBuffer,
- TBool& portPopulationCompleted)
- {
- DEBUG_PRINTF(_L8("COmxILStateExecuting::PopulateBuffer"));
-
- return COmxILState::PopulateBuffer(aFsm,
- appBufferHdr,
- aPortIndex,
- apAppPrivate,
- aSizeBytes,
- apBuffer,
- portPopulationCompleted);
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateExecuting::FreeBuffer(COmxILFsm& aFsm,
- OMX_U32 aPortIndex,
- OMX_BUFFERHEADERTYPE* apBuffer,
- TBool& aPortDepopulationCompleted)
- {
- DEBUG_PRINTF(_L8("COmxILStateExecuting::FreeBuffer"));
-
- return COmxILState::FreeBuffer(aFsm,
- aPortIndex,
- apBuffer,
- aPortDepopulationCompleted);
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateExecuting::EmptyThisBuffer(
- COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer)
- {
- DEBUG_PRINTF(_L8("COmxILStateExecuting::EmptyThisBuffer"));
-
- return COmxILState::EmptyThisBufferV2(aFsm,
- apBuffer);
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateExecuting::FillThisBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer)
- {
- DEBUG_PRINTF(_L8("COmxILStateExecuting::FillThisBuffer"));
-
- return COmxILState::FillThisBufferV2(aFsm,
- apBuffer);
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateExecuting::ComponentTunnelRequest(
- COmxILFsm& aFsm,
- OMX_U32 aPort,
- OMX_HANDLETYPE aTunneledComp,
- OMX_U32 aTunneledPort,
- OMX_TUNNELSETUPTYPE* apTunnelSetup)
- {
- DEBUG_PRINTF(_L8("COmxILStateExecuting::ComponentTunnelRequest"));
-
- return COmxILState::ComponentTunnelRequest(aFsm,
- aPort,
- aTunneledComp,
- aTunneledPort,
- apTunnelSetup);
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateExecuting::CommandStateSet(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand)
- {
- DEBUG_PRINTF(_L8("COmxILStateExecuting::CommandStateSet"));
-
- __ASSERT_DEBUG(aCommand.iCommandType == OMX_CommandStateSet,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- COmxILFsm::TStateIndex nextState = COmxILFsm::EStateMax;
- switch(aCommand.iParam1)
- {
- case OMX_StateIdle:
- {
- nextState = COmxILFsm::ESubStateExecutingToIdle;
- }
- break;
- case OMX_StatePause:
- {
- nextState = COmxILFsm::EStatePause;
- }
- break;
- case OMX_StateExecuting:
- {
- return OMX_ErrorSameState;
- }
- case OMX_StateInvalid:
- {
- // Notify the IL client... ignore the ret value...
- aFsm.iCallbacks.TransitionCompleteNotification(OMX_StateInvalid);
- // Invalidate component
- return OMX_ErrorInvalidState;
- }
- default:
- {
- return OMX_ErrorIncorrectStateTransition;
- }
- };
-
-
- // Initial checks OK. The component is commanded to make a transition to
- // ESubStateExecutingToIdle substate or OMX_StatePause.
- OMX_ERRORTYPE omxRetValue = aFsm.FsmTransition(nextState);
- if (OMX_ErrorNone != omxRetValue)
- {
- return omxRetValue;
- }
-
- if (COmxILFsm::ESubStateExecutingToIdle == nextState)
- {
- // Lets tell port manager since at this point it is mandated that all
- // buffers must be returned to their suppliers (IL Client and/or
- // tunnelled components).
- TBool allBuffersReturnedToSuppliers = EFalse;
- omxRetValue =
- aFsm.iPortManager.BufferFlushIndicationPauseOrExeToIdleCommand(
- allBuffersReturnedToSuppliers);
- if (OMX_ErrorNone != omxRetValue)
- {
- return omxRetValue;
- }
-
- if (allBuffersReturnedToSuppliers)
- {
- // Complete here the transition to OMX_StateIdle
- omxRetValue = aFsm.FsmTransition(COmxILFsm::EStateIdle);
- if (OMX_ErrorNone == omxRetValue)
- {
- // Notify the IL client that port population has completed sucessfully
- omxRetValue = aFsm.iCallbacks.TransitionCompleteNotification(
- OMX_StateIdle);
- }
- }
-
- }
- else
- {
- // Notify the IL client that the transition to OMX_StatePause has
- // completed sucessfully
- omxRetValue = aFsm.iCallbacks.TransitionCompleteNotification(
- OMX_StatePause);
-
- }
-
- return omxRetValue;
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateExecuting::CommandPortEnable(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand)
- {
- DEBUG_PRINTF(_L8("COmxILStateExecuting::CommandPortEnable"));
- __ASSERT_DEBUG(aCommand.iCommandType == OMX_CommandPortEnable,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- // In this state, the port allocation has finished for enabled
- // ports. However, a port is being enabled here. The port being enabled
- // must populate (if tunnel supplier) or be populated (if non-tunnel
- // supplier or IL Client communication)
- TBool indicationIsFinal = EFalse;
- OMX_ERRORTYPE omxRetValue =
- aFsm.iPortManager.PortEnableIndication(
- aCommand.iParam1,
- indicationIsFinal);
-
- if (OMX_ErrorNone == omxRetValue)
- {
- // From section 3.2.2.6, "If the IL client enables a port while the
- // component is in any state other than OMX_StateLoaded or
- // OMX_WaitForResources, then that port shall allocate its buffers via
- // the same call sequence used on a transition from OMX_StateLoaded to
- // OMX_StateIdle. If the IL client enables while the component is in
- // the OMX_Executing state, then that port shall begin transferring
- // buffers"
-
- // Lets tell port manager in case the port being enabled is a tunnel
- // supplier...
- TBool componentPopulationCompleted = EFalse;
- omxRetValue =
- aFsm.iPortManager.TunnellingBufferAllocation(
- componentPopulationCompleted, aCommand.iParam1);
-
- // No need to use here componentPopulationCompleted. A port is being
- // enabled in OMX_StateExecuting. If the port is a supplier, after
- // being re-enabled it should start the buffer allocation phase,
- // regardless of the population state of other ports in the component.
- if (OMX_ErrorNone == omxRetValue)
- {
- // Fire up the tunnelled buffer exchange in the enabled port...
- omxRetValue = aFsm.iPortManager.InitiateTunnellingDataFlow(
- aCommand.iParam1);
- }
- }
-
- return omxRetValue;
-
- }
-
-
-//
-// MOmxILPauseOrExecutingToIdle
-//
-OMX_ERRORTYPE
-COmxILFsm::MOmxILPauseOrExecutingToIdle::ReturnThisBuffer(
- COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer,
- OMX_DIRTYPE aDirection)
- {
- DEBUG_PRINTF(_L8("MOmxILPauseOrExecutingToIdle::ReturnThisBuffer"));
-
- TBool allBuffersReturned = EFalse;
- OMX_ERRORTYPE omxRetValue =
- aFsm.iPortManager.BufferReturnIndication(
- apBuffer,
- aDirection,
- allBuffersReturned
- );
-
- if (OMX_ErrorNone != omxRetValue)
- {
- return omxRetValue;
- }
-
- if (allBuffersReturned &&
- aFsm.iPortManager.AllBuffersAtHome())
- {
- // Complete here the transition to OMX_StateIdle
- omxRetValue = aFsm.FsmTransition(COmxILFsm::EStateIdle);
- if (OMX_ErrorNone == omxRetValue)
- {
- // Notify the IL client that transition to Idle has completed
- // sucessfully
- omxRetValue = aFsm.iCallbacks.TransitionCompleteNotification(
- OMX_StateIdle);
- }
- }
-
- return omxRetValue;
-
- }
-
-
-
-//
-// COmxILStateExecutingToIdle
-//
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateExecutingToIdle::EmptyThisBuffer(
- COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer)
- {
- DEBUG_PRINTF(_L8("COmxILStateExecutingToIdle::EmptyThisBuffer"));
-
- return ReturnThisBuffer(aFsm,
- apBuffer,
- OMX_DirInput);
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateExecutingToIdle::FillThisBuffer(
- COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer)
- {
- DEBUG_PRINTF(_L8("COmxILStateExecutingToIdle::FillThisBuffer"));
-
- return ReturnThisBuffer(aFsm,
- apBuffer,
- OMX_DirOutput);
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStateExecutingToIdle::CommandStateSet(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand)
- {
- DEBUG_PRINTF(_L8("COmxILStateExecutingToIdle::CommandStateSet"));
-
- __ASSERT_DEBUG(aCommand.iCommandType == OMX_CommandStateSet,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- switch(aCommand.iParam1)
- {
- case OMX_StateExecuting:
- {
- // Here, return "same state" as the transition to OMX_StateIdle has
- // not completed yet.
- return OMX_ErrorSameState;
- }
- case OMX_StateInvalid:
- {
- // Notify the IL client... ignore the ret value...
- aFsm.iCallbacks.TransitionCompleteNotification(OMX_StateInvalid);
- // Invalidate component
- return OMX_ErrorInvalidState;
- }
- default:
- {
- return OMX_ErrorIncorrectStateTransition;
- }
- };
-
- }
-
-
-//
-// COmxILStatePause
-//
-OMX_STATETYPE
-COmxILFsm::COmxILStatePause::GetState() const
- {
- DEBUG_PRINTF(_L8("COmxILStatePause::GetState"));
- return OMX_StatePause;
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStatePause::SetParameter(
- COmxILFsm& aFsm,
- OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure)
- {
- DEBUG_PRINTF(_L8("COmxILStatePause::SetParameter"));
-
- return COmxILState::SetParameter(aFsm,
- aParamIndex,
- apComponentParameterStructure);
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStatePause::PopulateBuffer(
- COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aPortIndex,
- OMX_PTR apAppPrivate,
- OMX_U32 aSizeBytes,
- OMX_U8* apBuffer,
- TBool& portPopulationCompleted)
- {
- DEBUG_PRINTF(_L8("COmxILStatePause::PopulateBuffer"));
-
- return COmxILState::PopulateBuffer(aFsm,
- appBufferHdr,
- aPortIndex,
- apAppPrivate,
- aSizeBytes,
- apBuffer,
- portPopulationCompleted);
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStatePause::FreeBuffer(COmxILFsm& aFsm,
- OMX_U32 aPortIndex,
- OMX_BUFFERHEADERTYPE* apBuffer,
- TBool& aPortDepopulationCompleted)
- {
- DEBUG_PRINTF(_L8("COmxILStatePause::FreeBuffer"));
-
- return COmxILState::FreeBuffer(aFsm,
- aPortIndex,
- apBuffer,
- aPortDepopulationCompleted);
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStatePause::EmptyThisBuffer(
- COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer)
- {
- DEBUG_PRINTF(_L8("COmxILStatePause::EmptyThisBuffer"));
-
- return COmxILState::EmptyThisBufferV2(aFsm,
- apBuffer);
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStatePause::FillThisBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer)
- {
- DEBUG_PRINTF(_L8("COmxILStatePause::FillThisBuffer"));
-
- return COmxILState::FillThisBufferV2(aFsm,
- apBuffer);
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStatePause::ComponentTunnelRequest(
- COmxILFsm& aFsm,
- OMX_U32 aPort,
- OMX_HANDLETYPE aTunneledComp,
- OMX_U32 aTunneledPort,
- OMX_TUNNELSETUPTYPE* apTunnelSetup)
- {
- DEBUG_PRINTF(_L8("COmxILStatePause::ComponentTunnelRequest"));
-
- return COmxILState::ComponentTunnelRequest(aFsm,
- aPort,
- aTunneledComp,
- aTunneledPort,
- apTunnelSetup);
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStatePause::CommandStateSet(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand)
- {
- DEBUG_PRINTF(_L8("COmxILStatePause::CommandStateSet"));
-
- __ASSERT_DEBUG(aCommand.iCommandType == OMX_CommandStateSet,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- COmxILFsm::TStateIndex nextState = COmxILFsm::EStateInvalid;
- switch(aCommand.iParam1)
- {
- case OMX_StateIdle:
- {
- nextState = COmxILFsm::ESubStatePauseToIdle;
- }
- break;
- case OMX_StateExecuting:
- {
- nextState = COmxILFsm::EStateExecuting;
- }
- break;
- case OMX_StatePause:
- {
- return OMX_ErrorSameState;
- }
- case OMX_StateInvalid:
- {
- // Notify the IL client... ignore the ret value...
- aFsm.iCallbacks.TransitionCompleteNotification(OMX_StateInvalid);
- // Invalidate component
- return OMX_ErrorInvalidState;
- }
- default:
- {
- return OMX_ErrorIncorrectStateTransition;
- }
- };
-
- // Initial command checks OK. The component is commanded to make a
- // transition to ESubStatePauseToIdle substate or OMX_StateExecuting.
- // Commit transition to the valid state
- OMX_ERRORTYPE omxRetValue = aFsm.FsmTransition(nextState);
- if (OMX_ErrorNone != omxRetValue)
- {
- return omxRetValue;
- }
-
- if (COmxILFsm::ESubStatePauseToIdle == nextState)
- {
- // Lets tell port manager since at this point it is mandated that all
- // buffers must be returned to their suppliers (IL Client and/or
- // tunnelled components).
- TBool allBuffersReturnedToSuppliers = EFalse;
- omxRetValue =
- aFsm.iPortManager.BufferFlushIndicationPauseOrExeToIdleCommand(
- allBuffersReturnedToSuppliers);
- if (OMX_ErrorNone != omxRetValue)
- {
- return omxRetValue;
- }
-
- if (allBuffersReturnedToSuppliers)
- {
- // Complete here the transition to OMX_StateIdle
- omxRetValue = aFsm.FsmTransition(COmxILFsm::EStateIdle);
- if (OMX_ErrorNone == omxRetValue)
- {
- // Notify the IL client that port population has completed sucessfully
- aFsm.iCallbacks.TransitionCompleteNotification(
- OMX_StateIdle);
- }
- }
-
- }
- else
- {
- // Notify the IL client that the transition to OMX_StateExecuting has
- // completed sucessfully
- omxRetValue = aFsm.iCallbacks.TransitionCompleteNotification(
- OMX_StateExecuting);
-
- if (OMX_ErrorNone == omxRetValue)
- {
- // Fire up the tunnelled buffer exchange, if any tunnelled ports are
- // found in the component...
- omxRetValue = aFsm.iPortManager.InitiateTunnellingDataFlow();
- }
-
- }
-
- return omxRetValue;
-
- }
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStatePause::CommandPortEnable(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand)
- {
- DEBUG_PRINTF(_L8("COmxILStatePause::CommandPortEnable"));
- __ASSERT_DEBUG(aCommand.iCommandType == OMX_CommandPortEnable,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- // In this state, the port allocation has finished for enabled
- // ports. However, a port is being enabled here. The port being enabled
- // must populate (if tunnel supplier) or be populated (if non-tunnel
- // supplier or IL Client communication)
- TBool indicationIsFinal = EFalse;
- OMX_ERRORTYPE omxRetValue = aFsm.iPortManager.PortEnableIndication(
- aCommand.iParam1,
- indicationIsFinal);
-
- if (OMX_ErrorNone == omxRetValue)
- {
- // From section 3.2.2.6, "If the IL client enables a port while the
- // component is in any state other than OMX_StateLoaded or
- // OMX_WaitForResources, then that port shall allocate its buffers via
- // the same call sequence used on a transition from OMX_StateLoaded to
- // OMX_StateIdle."
-
- // Lets tell port manager in case the port being enabled is a tunnel
- // supplier...
- TBool componentPopulationCompleted = EFalse;
- omxRetValue =
- aFsm.iPortManager.TunnellingBufferAllocation(
- componentPopulationCompleted, aCommand.iParam1);
-
- }
-
- return omxRetValue;
-
- }
-
-
-//
-// COmxILStatePauseToIdle
-//
-OMX_ERRORTYPE
-COmxILFsm::COmxILStatePauseToIdle::EmptyThisBuffer(
- COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer)
- {
- DEBUG_PRINTF(_L8("COmxILStatePauseToIdle::EmptyThisBuffer"));
-
- return ReturnThisBuffer(aFsm,
- apBuffer,
- OMX_DirInput);
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStatePauseToIdle::FillThisBuffer(
- COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer)
- {
- DEBUG_PRINTF(_L8("COmxILStatePauseToIdle::FillThisBuffer"));
-
- return ReturnThisBuffer(aFsm,
- apBuffer,
- OMX_DirOutput);
-
- }
-
-
-OMX_ERRORTYPE
-COmxILFsm::COmxILStatePauseToIdle::CommandStateSet(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand)
- {
- DEBUG_PRINTF(_L8("COmxILStatePauseToIdle::CommandStateSet"));
-
- __ASSERT_DEBUG(aCommand.iCommandType == OMX_CommandStateSet,
- User::Panic(KOmxILFsmPanicCategory, 1));
-
- switch(aCommand.iParam1)
- {
- case OMX_StatePause:
- {
- // Here, return "same state" as the transition to OMX_StateIdle has not
- // completed yet.
- return OMX_ErrorSameState;
- }
- case OMX_StateInvalid:
- {
- // Notify the IL client... ignore the ret value...
- aFsm.iCallbacks.TransitionCompleteNotification(OMX_StateInvalid);
- // Invalidate component
- return OMX_ErrorInvalidState;
- }
- default:
- {
- return OMX_ErrorIncorrectStateTransition;
- }
- };
-
- }
-
-
--- a/omxil/omxilcomponentcommon/src/common/omxilstate.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,756 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-#ifndef OMXILSTATE_H
-#define OMXILSTATE_H
-
-#include <e32base.h>
-#include <openmax/il/khronos/v1_x/OMX_Core.h>
-
-#include "omxilfsm.h"
-#include "omxilportmanager.h"
-
-// Forward declarations
-class TOmxILCommand;
-
-/**
- Base class for concrete OpenMAX IL state objects (State Pattern)
-*/
-class COmxILFsm::COmxILState : public CBase
- {
-
-public:
-
- //
- // Events, a.k.a. OpenMAX IL API calls
- //
-
- virtual OMX_ERRORTYPE GetParameter(
- const COmxILFsm& aFsm,
- OMX_INDEXTYPE aParamIndex,
- TAny* apComponentParameterStructure) const;
-
- /**
- State-specific version of the OpenMAX IL SetParameter API.
-
- @param [in] aFsm The main FSM context class that delegates the events to the
- state classes.
-
- @param [in] aParamIndex The index of the structure that is to be filled.
-
- @param [in] apComponentParameterStructure A pointer to the IL structure.
-
- @return OMX_ERRORTYPE
- */
- virtual OMX_ERRORTYPE SetParameter(
- COmxILFsm& aFsm,
- OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure) = 0;
-
- virtual OMX_ERRORTYPE GetConfig(
- const COmxILFsm& aFsm,
- OMX_INDEXTYPE aConfigIndex,
- TAny* apComponentConfigStructure) const;
-
- virtual OMX_ERRORTYPE SetConfig(
- COmxILFsm& aFsm,
- OMX_INDEXTYPE aConfigIndex,
- const TAny* apComponentConfigStructure);
-
- virtual OMX_ERRORTYPE GetExtensionIndex(
- const COmxILFsm& aFsm,
- OMX_STRING aParameterName,
- OMX_INDEXTYPE* apIndexType) const;
-
- /**
- State-specific version of the OpenMAX IL GetState API.
-
- @return OMX_STATETYPE
- */
- virtual OMX_STATETYPE GetState() const = 0;
-
- /**
- State-specific version of the OpenMAX IL ComponentTunnelRequest API.
-
- @param [in] aFsm The main FSM context class that delegates the events to
- the state classes.
-
- @param [in] aPort Used to select the port on the component to be used
- for tunneling.
-
- @param [in] aTunneledComp Handle of the component to tunnel with.
-
- @param [in] aTunneledPort Indicates the port the component should tunnel
- with.
-
- @param [in] aTunnelSetup Pointer to the tunnel setup structure.
-
- @return OMX_ERRORTYPE
- */
- inline virtual OMX_ERRORTYPE ComponentTunnelRequest(
- COmxILFsm& aFsm,
- OMX_U32 aPort,
- OMX_HANDLETYPE aTunneledComp,
- OMX_U32 aTunneledPort,
- OMX_TUNNELSETUPTYPE* apTunnelSetup) = 0;
-
- /**
- State-specific version of the PopulateBuffer method used by the FSM
- object to implement the OpenMAX IL AllocateBuffer/UseBuffer APIs.
-
- @param [in] aFsm The main FSM context class that delegates the events
- to the state classes.
-
- @param [out] appBufferHdr A pointer to a pointer of an
- OMX_BUFFERHEADERTYPE structure that receives the pointer to the buffer
- header.
-
- @param [in] aPortIndex The index of the port that will use the
- specified buffer. This index is relative to the component that owns the
- port.
-
- @param [in] apAppPrivate A pointer that refers to an
- implementation-specific memory area that is under responsibility of the
- supplier of the buffer.
-
- @param [in] aSizeBytes The buffer size in bytes.
-
- @param [in] apBuffer A pointer to the memory buffer area to be used.
-
- @param [out] portPopulationCompleted Used to signal the FSM object the
- the port population has completed.
-
- @return OMX_ERRORTYPE
- */
- inline virtual OMX_ERRORTYPE PopulateBuffer(
- COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aPortIndex,
- OMX_PTR apAppPrivate,
- OMX_U32 aSizeBytes,
- OMX_U8* apBuffer,
- TBool& portPopulationCompleted) = 0;
-
- /**
- State-specific version of the OpenMAX IL FreeBuffer API.
-
- @param [in] aFsm The main FSM context class that delegates the events
- to the state classes.
-
- @param [in] aPortIndex The index of the port that is using the
- specified buffer.
-
- @param [in] apBuffer A pointer to an OMX_BUFFERHEADERTYPE structure
- used to provide or receive the pointer to the buffer header.
-
- @param [out] aPortDepopulationCompleted Used to signal the FSM object
- the the port population has completed.
-
- @return OMX_ERRORTYPE
- */
- inline virtual OMX_ERRORTYPE FreeBuffer(
- COmxILFsm& aFsm,
- OMX_U32 aPortIndex,
- OMX_BUFFERHEADERTYPE* apBuffer,
- TBool& aPortDepopulationCompleted) = 0;
-
- /**
- State-specific version of the OpenMAX IL EmptyThisBuffer API.
-
- @param [in] aFsm The main FSM context class that delegates the events
- to the state classes.
-
- @param [in] apBuffer A pointer to an OMX_BUFFERHEADERTYPE structure that is
- used to receive the pointer to the buffer header. The buffer header
- shall specify the index of the input port that receives the buffer.
-
- @return OMX_ERRORTYPE
- */
- inline virtual OMX_ERRORTYPE EmptyThisBuffer(
- COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer) = 0;
-
- /**
- State-specific version of the OpenMAX IL FillThisBuffer API.
-
- @param [in] aFsm The main FSM context class that delegates the events
- to the state classes.
-
- @param [in] apBuffer A pointer to an OMX_BUFFERHEADERTYPE structure
- that is used to receive the pointer to the buffer header. The buffer
- header shall specify the index of the input port that receives the
- buffer.
-
- @return OMX_ERRORTYPE
- */
- inline virtual OMX_ERRORTYPE FillThisBuffer(
- COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer) = 0;
-
- /**
- State-specific version of the method used by the FSM object to
- implement the OpenMAX IL OMX_CommandStateSet command.
-
- @param [in] aFsm The main FSM context class that delegates the events
- to the state classes.
-
- @param [in] aCommand A TOmxILCommand object used to carry the command
- parameters.
-
- @return OMX_ERRORTYPE
- */
- virtual OMX_ERRORTYPE CommandStateSet(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand) = 0;
-
- virtual OMX_ERRORTYPE CommandFlush(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand);
-
- /**
- State-specific version of the method used by the FSM object to
- implement the OpenMAX IL OMX_CommandPortEnable command.
-
- @param [in] aFsm The main FSM context class that delegates the events
- to the state classes.
-
- @param [in] aCommand A TOmxILCommand object used to carry the command
- parameters.
-
- @return OMX_ERRORTYPE
- */
- virtual OMX_ERRORTYPE CommandPortEnable(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand) = 0;
-
- virtual OMX_ERRORTYPE CommandPortDisable(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand);
-
- virtual OMX_ERRORTYPE CommandMarkBuffer(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand);
-
-protected:
-
- virtual OMX_ERRORTYPE SetParameterV2(
- COmxILFsm& aFsm,
- OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure);
-
- inline virtual OMX_ERRORTYPE PopulateBufferV2(
- COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aPortIndex,
- OMX_PTR apAppPrivate,
- OMX_U32 aSizeBytes,
- OMX_U8* apBuffer,
- TBool& portPopulationCompleted);
-
- inline virtual OMX_ERRORTYPE FreeBufferV2(
- COmxILFsm& aFsm,
- OMX_U32 aPortIndex,
- OMX_BUFFERHEADERTYPE* apBuffer,
- TBool& aPortDepopulationCompleted);
-
- inline virtual OMX_ERRORTYPE ComponentTunnelRequestV2(
- COmxILFsm& aFsm,
- OMX_U32 aPort,
- OMX_HANDLETYPE aTunneledComp,
- OMX_U32 aTunneledPort,
- OMX_TUNNELSETUPTYPE* apTunnelSetup);
-
- inline virtual OMX_ERRORTYPE EmptyThisBufferV2(
- COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer);
-
- inline virtual OMX_ERRORTYPE FillThisBufferV2(
- COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer);
-
- };
-
-
-/**
- Concrete class that implements the OpenMAX IL OMX_StateInvalid state
-*/
-class COmxILFsm::COmxILStateInvalid : public COmxILFsm::COmxILState
- {
-
-public:
-
- OMX_ERRORTYPE GetParameter(const COmxILFsm& aFsm,
- OMX_INDEXTYPE aParamIndex,
- TAny* apComponentParameterStructure) const;
-
- OMX_ERRORTYPE SetParameter(COmxILFsm& aFsm,
- OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure);
-
- OMX_ERRORTYPE GetConfig(const COmxILFsm& aFsm,
- OMX_INDEXTYPE aConfigIndex,
- TAny* apComponentConfigStructure) const;
-
- OMX_ERRORTYPE SetConfig(COmxILFsm& aFsm,
- OMX_INDEXTYPE aConfigIndex,
- const TAny* apComponentConfigStructure);
-
- OMX_ERRORTYPE GetExtensionIndex(const COmxILFsm& aFsm,
- OMX_STRING aParameterName,
- OMX_INDEXTYPE* apIndexType) const;
-
- OMX_STATETYPE GetState() const;
-
- OMX_ERRORTYPE ComponentTunnelRequest(COmxILFsm& aFsm,
- OMX_U32 aPort,
- OMX_HANDLETYPE aTunneledComp,
- OMX_U32 aTunneledPort,
- OMX_TUNNELSETUPTYPE* apTunnelSetup);
-
- OMX_ERRORTYPE PopulateBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aPortIndex,
- OMX_PTR apAppPrivate,
- OMX_U32 aSizeBytes,
- OMX_U8* apBuffer,
- TBool& portPopulationCompleted);
-
- OMX_ERRORTYPE FreeBuffer(COmxILFsm& aFsm,
- OMX_U32 aPortIndex,
- OMX_BUFFERHEADERTYPE* apBuffer,
- TBool& aPortDepopulationCompleted);
-
- OMX_ERRORTYPE EmptyThisBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer);
-
- OMX_ERRORTYPE FillThisBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer);
-
-
- OMX_ERRORTYPE CommandStateSet(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand);
-
- OMX_ERRORTYPE CommandFlush(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand);
-
- OMX_ERRORTYPE CommandPortEnable(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand);
-
- OMX_ERRORTYPE CommandPortDisable(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand);
-
- OMX_ERRORTYPE CommandMarkBuffer(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand);
-
- };
-
-/**
- Concrete class that implements the OpenMAX IL OMX_StateLoaded state
-*/
-class COmxILFsm::COmxILStateLoaded : public COmxILFsm::COmxILState
- {
-
-public:
-
- OMX_STATETYPE GetState() const;
-
- OMX_ERRORTYPE SetParameter(COmxILFsm& aFsm,
- OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure);
-
- OMX_ERRORTYPE PopulateBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aPortIndex,
- OMX_PTR apAppPrivate,
- OMX_U32 aSizeBytes,
- OMX_U8* apBuffer,
- TBool& portPopulationCompleted);
-
- OMX_ERRORTYPE FreeBuffer(COmxILFsm& aFsm,
- OMX_U32 aPortIndex,
- OMX_BUFFERHEADERTYPE* apBuffer,
- TBool& aPortDepopulationCompleted);
-
- OMX_ERRORTYPE EmptyThisBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer);
-
- OMX_ERRORTYPE FillThisBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer);
-
- OMX_ERRORTYPE ComponentTunnelRequest(COmxILFsm& aFsm,
- OMX_U32 aPort,
- OMX_HANDLETYPE aTunneledComp,
- OMX_U32 aTunneledPort,
- OMX_TUNNELSETUPTYPE* apTunnelSetup);
-
- OMX_ERRORTYPE CommandStateSet(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand);
-
- OMX_ERRORTYPE CommandPortEnable(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand);
-
- };
-
-
-/**
- Concrete class that implements the intermediate state OMX_StateLoaded ->
- OMX_StateIdle.
-*/
-class COmxILFsm::COmxILStateLoadedToIdle : public COmxILFsm::COmxILStateLoaded
- {
-
-public:
-
-
- OMX_ERRORTYPE SetParameter(COmxILFsm& aFsm,
- OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure);
-
- OMX_ERRORTYPE PopulateBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aPortIndex,
- OMX_PTR apAppPrivate,
- OMX_U32 aSizeBytes,
- OMX_U8* apBuffer,
- TBool& portPopulationCompleted);
-
- OMX_ERRORTYPE CommandStateSet(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand);
-
- OMX_ERRORTYPE CommandPortEnable(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand);
-
-private:
-
- TBool iUseBufferReceived;
-
- };
-
-/**
- Concrete class that implements the OpenMAX IL OMX_StateWaitForResources
- state
-
- NOTE: This state is here only to provide the basic functionality of
- transitioning form OMX_StateLoaded to OMX_StateWaitForResources and
- viceversa. Transition from OMX_StateWaitForResources to OMX_StateIdle is not
- implemented at this stage since a Resource Manager is not present
- yet. Whenever a Resource Manager becomes available, a
- COmxILStateWaitForResourcesToIdle substate should be implemented to handle
- the allocation of buffers mandated by the standard in this transition.
-
-*/
-class COmxILFsm::COmxILStateWaitForResources : public COmxILFsm::COmxILState
- {
-
-public:
-
- OMX_STATETYPE GetState() const;
-
- OMX_ERRORTYPE SetParameter(COmxILFsm& aFsm,
- OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure);
-
- OMX_ERRORTYPE PopulateBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aPortIndex,
- OMX_PTR apAppPrivate,
- OMX_U32 aSizeBytes,
- OMX_U8* apBuffer,
- TBool& portPopulationCompleted);
-
- OMX_ERRORTYPE FreeBuffer(COmxILFsm& aFsm,
- OMX_U32 aPortIndex,
- OMX_BUFFERHEADERTYPE* apBuffer,
- TBool& aPortDepopulationCompleted);
-
- OMX_ERRORTYPE EmptyThisBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer);
-
- OMX_ERRORTYPE FillThisBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer);
-
- OMX_ERRORTYPE ComponentTunnelRequest(COmxILFsm& aFsm,
- OMX_U32 aPort,
- OMX_HANDLETYPE aTunneledComp,
- OMX_U32 aTunneledPort,
- OMX_TUNNELSETUPTYPE* apTunnelSetup);
-
- OMX_ERRORTYPE CommandStateSet(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand);
-
- OMX_ERRORTYPE CommandPortEnable(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand);
-
- };
-
-/**
- Concrete class that implements the OpenMAX IL COmxILStateIdle state
-*/
-class COmxILFsm::COmxILStateIdle : public COmxILFsm::COmxILState
- {
-
-public:
-
- OMX_STATETYPE GetState() const;
-
- OMX_ERRORTYPE SetParameter(COmxILFsm& aFsm,
- OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure);
-
- OMX_ERRORTYPE PopulateBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aPortIndex,
- OMX_PTR apAppPrivate,
- OMX_U32 aSizeBytes,
- OMX_U8* apBuffer,
- TBool& portPopulationCompleted);
-
- OMX_ERRORTYPE FreeBuffer(COmxILFsm& aFsm,
- OMX_U32 aPortIndex,
- OMX_BUFFERHEADERTYPE* apBuffer,
- TBool& aPortDepopulationCompleted);
-
- OMX_ERRORTYPE EmptyThisBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer);
-
- OMX_ERRORTYPE FillThisBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer);
-
- OMX_ERRORTYPE ComponentTunnelRequest(COmxILFsm& aFsm,
- OMX_U32 aPort,
- OMX_HANDLETYPE aTunneledComp,
- OMX_U32 aTunneledPort,
- OMX_TUNNELSETUPTYPE* apTunnelSetup);
-
- OMX_ERRORTYPE CommandStateSet(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand);
-
- OMX_ERRORTYPE CommandFlush(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand);
-
- OMX_ERRORTYPE CommandPortEnable(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand);
-
- };
-
-/**
- Concrete class that implements the intermediate state OMX_StateIdle ->
- OMX_StateLoaded.
-*/
-class COmxILFsm::COmxILStateIdleToLoaded : public COmxILFsm::COmxILStateIdle
- {
-
-public:
-
- OMX_ERRORTYPE FreeBuffer(COmxILFsm& aFsm,
- OMX_U32 aPortIndex,
- OMX_BUFFERHEADERTYPE* apBuffer,
- TBool& aPortDepopulationCompleted);
-
- OMX_ERRORTYPE CommandStateSet(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand);
-
- };
-
-/**
- Concrete class that implements the OpenMAX IL COmxILStateExecuting state
-*/
-class COmxILFsm::COmxILStateExecuting : public COmxILFsm::COmxILState
- {
-
-public:
-
- OMX_STATETYPE GetState() const;
-
- OMX_ERRORTYPE SetParameter(COmxILFsm& aFsm,
- OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure);
-
- OMX_ERRORTYPE PopulateBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aPortIndex,
- OMX_PTR apAppPrivate,
- OMX_U32 aSizeBytes,
- OMX_U8* apBuffer,
- TBool& portPopulationCompleted);
-
- OMX_ERRORTYPE FreeBuffer(COmxILFsm& aFsm,
- OMX_U32 aPortIndex,
- OMX_BUFFERHEADERTYPE* apBuffer,
- TBool& aPortDepopulationCompleted);
-
- OMX_ERRORTYPE EmptyThisBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer);
-
- OMX_ERRORTYPE FillThisBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer);
-
- OMX_ERRORTYPE ComponentTunnelRequest(COmxILFsm& aFsm,
- OMX_U32 aPort,
- OMX_HANDLETYPE aTunneledComp,
- OMX_U32 aTunneledPort,
- OMX_TUNNELSETUPTYPE* apTunnelSetup);
-
- OMX_ERRORTYPE CommandStateSet(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand);
-
- OMX_ERRORTYPE CommandPortEnable(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand);
-
- };
-
-/**
- Class used to abstract the commonalities of the transitions from
- OMX_StatePause or OMX_StateExecuting to OMX_StateIdle.
-*/
-class COmxILFsm::MOmxILPauseOrExecutingToIdle
- {
-
-protected:
-
- OMX_ERRORTYPE ReturnThisBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer,
- OMX_DIRTYPE aDirection);
-
- OMX_ERRORTYPE CommandPortEnable(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand);
-
- };
-
-/**
- Concrete class that implements the intermediate state OMX_StateExecuting ->
- OMX_StateIdle.
-*/
-class COmxILFsm::COmxILStateExecutingToIdle :
- public COmxILFsm::COmxILStateExecuting,
- private COmxILFsm::MOmxILPauseOrExecutingToIdle
-
- {
-
-public:
-
- OMX_ERRORTYPE EmptyThisBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer);
-
- OMX_ERRORTYPE FillThisBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer);
-
- OMX_ERRORTYPE CommandStateSet(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand);
-
- };
-
-/**
- Concrete class that implements the OpenMAX IL COmxILStatePause state
-*/
-class COmxILFsm::COmxILStatePause : public COmxILFsm::COmxILState
- {
-
-public:
-
- OMX_STATETYPE GetState() const;
-
- OMX_ERRORTYPE SetParameter(COmxILFsm& aFsm,
- OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure);
-
- OMX_ERRORTYPE PopulateBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aPortIndex,
- OMX_PTR apAppPrivate,
- OMX_U32 aSizeBytes,
- OMX_U8* apBuffer,
- TBool& portPopulationCompleted);
-
- OMX_ERRORTYPE FreeBuffer(COmxILFsm& aFsm,
- OMX_U32 aPortIndex,
- OMX_BUFFERHEADERTYPE* apBuffer,
- TBool& aPortDepopulationCompleted);
-
- OMX_ERRORTYPE EmptyThisBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer);
-
- OMX_ERRORTYPE FillThisBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer);
-
- OMX_ERRORTYPE ComponentTunnelRequest(COmxILFsm& aFsm,
- OMX_U32 aPort,
- OMX_HANDLETYPE aTunneledComp,
- OMX_U32 aTunneledPort,
- OMX_TUNNELSETUPTYPE* apTunnelSetup);
-
- OMX_ERRORTYPE CommandStateSet(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand);
-
- OMX_ERRORTYPE CommandPortEnable(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand);
-
- };
-
-/**
- Concrete class that implements the intermediate state OMX_StatePause ->
- OMX_StateIdle.
-*/
-class COmxILFsm::COmxILStatePauseToIdle
- : public COmxILFsm::COmxILStatePause,
- private COmxILFsm::MOmxILPauseOrExecutingToIdle
- {
-
-public:
-
- OMX_ERRORTYPE EmptyThisBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer);
-
- OMX_ERRORTYPE FillThisBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer);
-
- OMX_ERRORTYPE CommandStateSet(
- COmxILFsm& aFsm,
- const TOmxILCommand& aCommand);
-
- };
-
-#include "omxilstate.inl"
-
-#endif // OMXILSTATE_H
-
-
--- a/omxil/omxilcomponentcommon/src/common/omxilstate.inl Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,213 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-
-// ComponentTunnelRequest must be used in the following states:
-// - Any state, (but the port will have to be disabled)
-//
-inline OMX_ERRORTYPE
-COmxILFsm::COmxILState::ComponentTunnelRequest(
- COmxILFsm& aFsm,
- OMX_U32 aPort,
- OMX_HANDLETYPE aTunneledComp,
- OMX_U32 aTunneledPort,
- OMX_TUNNELSETUPTYPE* apTunnelSetup)
- {
- return aFsm.iPortManager.TunnelRequest(
- aPort,
- aTunneledComp,
- aTunneledPort,
- apTunnelSetup,
- OMX_TRUE // Port must be disabled
- );
- }
-
-// ComponentTunnelRequestV2 must be used in the following states:
-// - OMX_StateLoaded
-//
-inline OMX_ERRORTYPE
-COmxILFsm::COmxILState::ComponentTunnelRequestV2(
- COmxILFsm& aFsm,
- OMX_U32 aPort,
- OMX_HANDLETYPE aTunneledComp,
- OMX_U32 aTunneledPort,
- OMX_TUNNELSETUPTYPE* apTunnelSetup)
- {
- return aFsm.iPortManager.TunnelRequest(
- aPort,
- aTunneledComp,
- aTunneledPort,
- apTunnelSetup,
- OMX_FALSE // Port does not need to be disabled
- );
- }
-
-// This PopulateBuffer version must be used in the following states:
-// - OMX_StateIdle,
-// - OMX_StateExecuting,
-// - OMX_StatePaused
-//
-inline OMX_ERRORTYPE
-COmxILFsm::COmxILState::PopulateBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aPortIndex,
- OMX_PTR apAppPrivate,
- OMX_U32 aSizeBytes,
- OMX_U8* apBuffer,
- TBool& portPopulationCompleted)
- {
- return aFsm.iPortManager.PopulateBuffer(
- appBufferHdr,
- aPortIndex,
- apAppPrivate,
- aSizeBytes,
- apBuffer,
- portPopulationCompleted,
- OMX_TRUE // Port must be disabled
- );
- }
-
-// This PopulateBuffer version must be used in the following states:
-// - OMX_StateLoaded,
-// - OMX_StateWaitForResources
-//
-inline OMX_ERRORTYPE
-COmxILFsm::COmxILState::PopulateBufferV2(
- COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE** appBufferHdr,
- OMX_U32 aPortIndex,
- OMX_PTR apAppPrivate,
- OMX_U32 aSizeBytes,
- OMX_U8* apBuffer,
- TBool& portPopulationCompleted)
- {
- return aFsm.iPortManager.PopulateBuffer(
- appBufferHdr,
- aPortIndex,
- apAppPrivate,
- aSizeBytes,
- apBuffer,
- portPopulationCompleted,
- OMX_FALSE // Port does not need to be disabled
- );
- }
-
-
-// This FreeBuffer version is used in the following states:
-// - OMX_StateLoaded,
-// - OMX_StateWaitForResources
-// - OMX_StateExecuting,
-// - OMX_StatePaused,
-// AND the port must be disabled
-inline OMX_ERRORTYPE
-COmxILFsm::COmxILState::FreeBuffer(COmxILFsm& aFsm,
- OMX_U32 aPortIndex,
- OMX_BUFFERHEADERTYPE* apBuffer,
- TBool& aPortDepopulationCompleted)
- {
- return aFsm.iPortManager.FreeBuffer(
- aPortIndex,
- apBuffer,
- aPortDepopulationCompleted,
- OMX_TRUE // Port should be disabled, otherwise
- // OMX_ErrorPortUnpopulated might be sent
- );
- }
-
-// This FreeBuffer version is used in the following states:
-// - OMX_StateIdle,
-//
-inline OMX_ERRORTYPE
-COmxILFsm::COmxILState::FreeBufferV2(COmxILFsm& aFsm,
- OMX_U32 aPortIndex,
- OMX_BUFFERHEADERTYPE* apBuffer,
- TBool& aPortDepopulationCompleted)
- {
- return aFsm.iPortManager.FreeBuffer(
- aPortIndex,
- apBuffer,
- aPortDepopulationCompleted,
- OMX_FALSE // Port does not need to be disabled
- );
- }
-
-// This EmptyThisBuffer version must be used in the following states:
-// - OMX_StateLoaded,
-// - OMX_StateWaitForResources
-// AND the port must be disabled
-inline OMX_ERRORTYPE
-COmxILFsm::COmxILState::EmptyThisBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer)
- {
- return aFsm.iPortManager.BufferIndication(
- apBuffer,
- OMX_DirInput,
- OMX_TRUE // Port must be disabled
- );
- }
-
-// This EmptyThisBuffer version must be used in the following states:
-// - OMX_StateIdle,
-// - OMX_StateExecuting,
-// - OMX_StatePaused
-//
-inline OMX_ERRORTYPE
-COmxILFsm::COmxILState::EmptyThisBufferV2(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer)
- {
- return aFsm.iPortManager.BufferIndication(
- apBuffer,
- OMX_DirInput,
- OMX_FALSE // Port does not need to be disabled
- );
- }
-
-// This FillThisBuffer version must be used in the following states:
-// - OMX_StateLoaded,
-// - OMX_StateWaitForResources
-// AND the port must be disabled
-inline OMX_ERRORTYPE
-COmxILFsm::COmxILState::FillThisBuffer(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer)
- {
- return aFsm.iPortManager.BufferIndication(
- apBuffer,
- OMX_DirOutput,
- OMX_TRUE // Port must be disabled
- );
- }
-
-// This FillThisBuffer version must be used in the following states:
-// - OMX_StateIdle,
-// - OMX_StateExecuting,
-// - OMX_StatePaused
-//
-inline OMX_ERRORTYPE
-COmxILFsm::COmxILState::FillThisBufferV2(COmxILFsm& aFsm,
- OMX_BUFFERHEADERTYPE* apBuffer)
- {
- return aFsm.iPortManager.BufferIndication(
- apBuffer,
- OMX_DirOutput,
- OMX_FALSE // Port does not need to be disabled
- );
- }
-
--- a/omxil/omxilcomponentcommon/src/common/omxilutil.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,109 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-
-#include "omxilutil.h"
-#include "omxilspecversion.h"
-
-/**
- This method checks that the size of an OpenMAX IL data structure is
- correct. It also checks that the OpenMAX IL version stated in the structure
- is the same as the one returned by TOmxILSpecVersion() (at the time of
- writting this is 1.1.1). In this version of the component framework,
- backward compatibility in not supported for OpenMAX IL structures.
-
- @param apHeader An OpenMAX IL data structure.
-
- @param aSize sizeof(OMXIL structure)
-
- @return OMX_ErrorVersionMismatch if the version is not
- 1.1.1. OMX_ErrorBadParameter if versions are the same but the nSize is
- different. OMX_ErrorNone otherwise
- */
-EXPORT_C OMX_ERRORTYPE
-TOmxILUtil::CheckOmxStructSizeAndVersion(OMX_PTR apHeader, OMX_U32 aSize)
- {
-
- if (!apHeader || aSize == 0)
- {
- return OMX_ErrorBadParameter;
- }
-
-#ifdef _OMXIL_COMMON_SPEC_VERSION_CHECKS_ON
-
- OMX_U32* const pStructSize =
- reinterpret_cast<OMX_U32*>(apHeader);
-
- // In an OpenMAX IL structure the nSize and nVersion fields are used to
- // detect the difference in spec versions.
- OMX_VERSIONTYPE* const pOmxVersion =
- reinterpret_cast<OMX_VERSIONTYPE*>(
- pStructSize + (sizeof(OMX_U32)/sizeof(OMX_U32)));
-
- if ( (TOmxILSpecVersion() != *pOmxVersion)&&(TOmxILVersion(OMX_VERSION_MAJOR, OMX_VERSION_MINOR, 1, OMX_VERSION_STEP) != *pOmxVersion) )
-
- {
- return OMX_ErrorVersionMismatch;
- }
-
- // If the spec versions are the same, then the struct sizes must be the
- // same too...
- if (*pStructSize != aSize)
- {
- return OMX_ErrorBadParameter;
- }
-
-#endif // _OMXIL_COMMON_SPEC_VERSION_CHECKS_ON
-
- return OMX_ErrorNone;
-
- }
-
-/**
- This method simply resets the following fields in the OMX IL 1.1.x buffer header:
- nFilledLen
- hMarkTargetComponent
- pMarkData
- nTickCount
- nTimeStamp
- nFlags
-
- @param apBufferHeader An OpenMAX IL buffer header structure.
-
- */
-EXPORT_C void
-TOmxILUtil::ClearBufferContents(
- OMX_BUFFERHEADERTYPE* apBufferHeader)
- {
-
- if (!apBufferHeader)
- {
- return;
- }
-
- apBufferHeader->nFilledLen = 0;
- apBufferHeader->hMarkTargetComponent = 0;
- apBufferHeader->pMarkData = 0;
- apBufferHeader->nTickCount = 0;
- apBufferHeader->nTimeStamp = 0;
- apBufferHeader->nFlags = 0;
-
- }
--- a/omxil/omxilcomponentcommon/src/common/omxilutil.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-#ifndef OMXILUTIL_H
-#define OMXILUTIL_H
-
-#include <e32def.h>
-
-#include <openmax/il/khronos/v1_x/OMX_Core.h>
-#include <openmax/il/khronos/v1_x/OMX_Types.h>
-
-
-class TOmxILUtil
- {
-
-public:
-
- IMPORT_C static OMX_ERRORTYPE CheckOmxStructSizeAndVersion(
- OMX_PTR apHeader, OMX_U32 aSize);
-
- IMPORT_C static void ClearBufferContents(
- OMX_BUFFERHEADERTYPE* apBufferHeader);
-
- };
-
-
-#endif // OMXILUTIL_H
-
-
--- a/omxil/omxilcomponentcommon/src/common/omxilvideoport.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,219 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-#include "omxilvideoport.h"
-#include "omxilutil.h"
-#include "log.h"
-
-EXPORT_C
-COmxILVideoPort::COmxILVideoPort(
- const TOmxILCommonPortData& aCommonPortData,
- const RArray<OMX_VIDEO_CODINGTYPE>& aSupportedVideoFormats,
- const RArray<OMX_COLOR_FORMATTYPE>& aSupportedColorFormats)
-:
-COmxILPort(aCommonPortData)
- {
- DEBUG_PRINTF(_L8("COmxILVideoPort::COmxILVideoPort"));
-
- // Performing a deep copy of these arrays inside a C++ constructor is unsafe.
- // Items should be added to these arrays directly inside the derived class' ConstructL().
- __ASSERT_ALWAYS(aSupportedVideoFormats.Count() == 0 && aSupportedColorFormats.Count() == 0, User::Invariant());
- TInt numVideoFormats = iSupportedVideoFormats.Count();
- TInt numColorFormats = iSupportedColorFormats.Count();
- iParamVideoPortFormat.nSize = sizeof(OMX_VIDEO_PARAM_PORTFORMATTYPE);
- iParamVideoPortFormat.nVersion = aCommonPortData.iOmxVersion;
- iParamVideoPortFormat.nPortIndex = aCommonPortData.iPortIndex;
- iParamVideoPortFormat.nIndex = numVideoFormats ? numVideoFormats - 1 : 0;
- iParamVideoPortFormat.eCompressionFormat = numVideoFormats ? iSupportedVideoFormats[0] : OMX_VIDEO_CodingUnused;
- iParamVideoPortFormat.eColorFormat = numColorFormats ? iSupportedColorFormats[0] : OMX_COLOR_FormatUnused;
- iParamVideoPortFormat.xFramerate = 0;//aCommonPortData.xFramerate???;
-
- }
-
-EXPORT_C
-COmxILVideoPort::~COmxILVideoPort()
- {
- DEBUG_PRINTF(_L8("COmxILVideoPort::~COmxILVideoPort"));
- iSupportedVideoFormats.Close();
- iSupportedColorFormats.Close();
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILVideoPort::GetLocalOmxParamIndexes(RArray<TUint>& aIndexArray) const
- {
- DEBUG_PRINTF(_L8("COmxILVideoPort::GetLocalOmxParamIndexes"));
-
- // Always collect local indexes from parent
- OMX_ERRORTYPE omxRetValue = COmxILPort::GetLocalOmxParamIndexes(aIndexArray);
-
- if (OMX_ErrorNone != omxRetValue)
- {
- return omxRetValue;
- }
-
- TInt err = aIndexArray.InsertInOrder(OMX_IndexParamVideoPortFormat);
-
- // Note that index duplication is OK.
- if (KErrNone != err && KErrAlreadyExists != err)
- {
- return OMX_ErrorInsufficientResources;
- }
-
- return OMX_ErrorNone;
-
- }
-
-EXPORT_C OMX_ERRORTYPE
-COmxILVideoPort::GetLocalOmxConfigIndexes(RArray<TUint>& aIndexArray) const
- {
- DEBUG_PRINTF(_L8("COmxILVideoPort::GetLocalOmxConfigIndexes"));
-
- // Always collect local indexes from parent
- return COmxILPort::GetLocalOmxConfigIndexes(aIndexArray);
-
- }
-
-EXPORT_C OMX_ERRORTYPE COmxILVideoPort::GetParameter(OMX_INDEXTYPE aParamIndex, TAny* apComponentParameterStructure) const
- {
- DEBUG_PRINTF(_L8("COmxILVideoPort::GetParameter"));
- OMX_ERRORTYPE omxRetValue = OMX_ErrorNone;
-
- switch(aParamIndex)
- {
- case OMX_IndexParamVideoPortFormat:
- {
- if (OMX_ErrorNone != (omxRetValue =
- TOmxILUtil::CheckOmxStructSizeAndVersion(
- const_cast<OMX_PTR>(apComponentParameterStructure),
- sizeof(OMX_VIDEO_PARAM_PORTFORMATTYPE))))
- {
- return omxRetValue;
- }
-
- OMX_VIDEO_PARAM_PORTFORMATTYPE* videoPortDefinition = static_cast<OMX_VIDEO_PARAM_PORTFORMATTYPE*>(apComponentParameterStructure);
-
- if(OMX_VIDEO_CodingUnused == iParamVideoPortFormat.eCompressionFormat)
- {
- if (videoPortDefinition->nIndex >= iSupportedColorFormats.Count())
- {
- return OMX_ErrorNoMore;
- }
- videoPortDefinition->eColorFormat = iSupportedColorFormats[videoPortDefinition->nIndex];
- }
- else
- {
- if (videoPortDefinition->nIndex >= iSupportedVideoFormats.Count())
- {
- return OMX_ErrorNoMore;
- }
- videoPortDefinition->eCompressionFormat = iSupportedVideoFormats[videoPortDefinition->nIndex];
- }
- videoPortDefinition->xFramerate = iParamVideoPortFormat.xFramerate;
- break;
- }
- default:
- {
- // Try the parent's indexes
- return COmxILPort::GetParameter(aParamIndex, apComponentParameterStructure);
- }
- };
-
- return OMX_ErrorNone;
- }
-
-EXPORT_C OMX_ERRORTYPE COmxILVideoPort::SetParameter(OMX_INDEXTYPE aParamIndex, const TAny* apComponentParameterStructure, TBool& aUpdateProcessingFunction)
- {
- DEBUG_PRINTF(_L8("COmxILVideoPort::SetParameter"));
- OMX_ERRORTYPE omxRetValue = OMX_ErrorNone;
-
- switch(aParamIndex)
- {
- case OMX_IndexParamVideoPortFormat:
- {
- if (OMX_ErrorNone != (omxRetValue =
- TOmxILUtil::CheckOmxStructSizeAndVersion(
- const_cast<OMX_PTR>(apComponentParameterStructure),
- sizeof(OMX_VIDEO_PARAM_PORTFORMATTYPE))))
- {
- return omxRetValue;
- }
-
- const OMX_VIDEO_PARAM_PORTFORMATTYPE *componentParameterStructure = static_cast<const OMX_VIDEO_PARAM_PORTFORMATTYPE*>(apComponentParameterStructure);
-
- if(OMX_VIDEO_CodingUnused == componentParameterStructure->eCompressionFormat)
- {
- if(OMX_COLOR_FormatUnused == componentParameterStructure->eColorFormat)
- {
- // Both Compression Format and Color can not be Unused at the same time.
- return OMX_ErrorBadParameter;
- }
-
- if(iParamVideoPortFormat.eColorFormat != componentParameterStructure->eColorFormat)
- {
- if(KErrNotFound == iSupportedColorFormats.Find(componentParameterStructure->eColorFormat))
- {
- return OMX_ErrorUnsupportedSetting;
- }
- else
- {
- iParamVideoPortFormat.eColorFormat = componentParameterStructure->eColorFormat;
- }
- aUpdateProcessingFunction = ETrue;
- }
-
- if(iParamVideoPortFormat.xFramerate != componentParameterStructure->xFramerate)
- {
- iParamVideoPortFormat.xFramerate = componentParameterStructure->xFramerate;
- aUpdateProcessingFunction = ETrue;
- }
- }
- else
- {
- // Data is compressed. Change relevant variables.
- if (OMX_COLOR_FormatUnused != componentParameterStructure->eColorFormat)
- {
- // Both Compression Format and Color can not be Unused at the same time.
- return OMX_ErrorBadParameter;
- }
-
- if (iParamVideoPortFormat.eCompressionFormat != componentParameterStructure->eCompressionFormat)
- {
- if(KErrNotFound == iSupportedVideoFormats.Find(componentParameterStructure->eCompressionFormat))
- {
- return OMX_ErrorUnsupportedSetting;
- }
- else
- {
- iParamVideoPortFormat.eCompressionFormat = componentParameterStructure->eCompressionFormat;
- aUpdateProcessingFunction = ETrue;
- }
- }
- }
- break;
- }
- default:
- {
- // Try the parent's indexes
- return COmxILPort::SetParameter(aParamIndex, apComponentParameterStructure, aUpdateProcessingFunction);
- }
- };
- return OMX_ErrorNone;
- }
--- a/omxil/omxilcomponentcommon/src/common/omxilvideoport.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalTechnology
-*/
-
-#ifndef OMXILVIDEOPORT_H
-#define OMXILVIDEOPORT_H
-
-#include <e32base.h>
-
-#include <openmax/il/khronos/v1_x/OMX_Types.h>
-#include <openmax/il/khronos/v1_x/OMX_Core.h>
-#include <openmax/il/khronos/v1_x/OMX_Component.h>
-
-#include "omxilport.h"
-
-class COmxILVideoPort : public COmxILPort
- {
-
-public:
-
- IMPORT_C ~COmxILVideoPort();
-
- // From COmxILPort
- IMPORT_C OMX_ERRORTYPE GetLocalOmxParamIndexes(RArray<TUint>& aIndexArray) const = 0;
-
- // From COmxILPort
- IMPORT_C OMX_ERRORTYPE GetLocalOmxConfigIndexes(RArray<TUint>& aIndexArray) const = 0;
-
- // From COmxILPort
- IMPORT_C OMX_ERRORTYPE GetParameter(OMX_INDEXTYPE aParamIndex,
- TAny* apComponentParameterStructure) const = 0;
- // From COmxILPort
- IMPORT_C OMX_ERRORTYPE SetParameter(OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure,
- TBool& aUpdateProcessingFunction) = 0;
-
-protected:
-
- IMPORT_C COmxILVideoPort(const TOmxILCommonPortData& aCommonPortData,
- const RArray<OMX_VIDEO_CODINGTYPE>& aSupportedVideoFormats,
- const RArray<OMX_COLOR_FORMATTYPE>& aSupportedColorFormats);
-
- // From COmxILPort
- IMPORT_C OMX_ERRORTYPE SetFormatInPortDefinition(
- const OMX_PARAM_PORTDEFINITIONTYPE& aPortDefinition,
- TBool& aUpdateProcessingFunction) = 0;
-
- // From COmxILPort
- IMPORT_C TBool IsTunnelledPortCompatible(
- const OMX_PARAM_PORTDEFINITIONTYPE& aPortDefinition) const = 0;
-
-protected:
-
- RArray<OMX_VIDEO_CODINGTYPE> iSupportedVideoFormats;
- RArray<OMX_COLOR_FORMATTYPE> iSupportedColorFormats;
- RArray<OMX_U32> iSupportedFrameRates;
- OMX_VIDEO_PARAM_PORTFORMATTYPE iParamVideoPortFormat;
- };
-
-#endif // OMXILVIDEOPORT_H
--- a/omxil/omxilcomponentcommon/src/common/primsgqueue.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-#ifndef PRIMSGQUEUE_H
-#define PRIMSGQUEUE_H
-
-#include <e32std.h>
-#include <e32msgqueue.h>
-
-/**
- RPriMsgQueue panic category
-*/
-_LIT(RPriMsgQueuePanicCategory, "RPriMsgQueue");
-
-/**
- A priority-based message queue similar to RMsQueue .
-
- This templated class provides the behaviour for managing an asynchronous
- queue of messages, ordered by descending priority order, where the template
- parameter defines the message type. Note that this message queue is intended
- to be used with pointer types only. Also, message types are assumed to have
- a member with the following signature : TInt Priority()
-
- */
-template <typename T>
-class RPriMsgQueue
- {
-
-public:
-
- inline TInt CreateLocal(TInt aSize, TOwnerType aType=EOwnerProcess);
- inline TInt Handle() const;
- inline TInt Send(const T& aMsg);
- inline TInt Receive(T& aMsg);
- inline void Close();
- inline void NotifyDataAvailable(TRequestStatus& aStatus);
- inline void CancelDataAvailable();
-
-protected:
-
- class TFrontQueueElement
- {
-
- public:
-
- inline explicit TFrontQueueElement(const TAny* apInfo);
- inline TFrontQueueElement(const TAny* apInfo, TInt aPriority);
-
- public:
-
- const TAny* ipInfo;
- TPriQueLink iLink;
-
- };
-
-protected:
-
- inline TInt DrainBackQueue();
-
-protected:
-
- RMsgQueueBase iBackQueue;
- TPriQue<TFrontQueueElement> iFrontQueue;
-
- };
-
-#include "primsgqueue.inl"
-
-#endif // PRIMSGQUEUE_H
--- a/omxil/omxilcomponentcommon/src/common/primsgqueue.inl Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,156 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-/**
- @file
- @internalComponent
-*/
-
-
-template <typename T>
-inline RPriMsgQueue<T>::TFrontQueueElement::TFrontQueueElement(
- const TAny* apInfo)
- :
- ipInfo(apInfo)
- {
- iLink.iPriority = 0;
- }
-
-template <typename T>
-inline RPriMsgQueue<T>::TFrontQueueElement::TFrontQueueElement(
- const TAny* apInfo, TInt aPriority)
- :
- ipInfo(apInfo)
- {
- iLink.iPriority = aPriority;
- }
-
-template <typename T>
-inline TInt RPriMsgQueue<T>::CreateLocal(TInt aSize, TOwnerType aOwner)
- {
- iFrontQueue.SetOffset(_FOFF(TFrontQueueElement, iLink));
- return iBackQueue.CreateLocal(aSize, sizeof(T), aOwner);
- }
-
-template <typename T>
-inline TInt RPriMsgQueue<T>::Handle() const
- {
- return iBackQueue.Handle();
- }
-
-template <typename T>
-inline TInt RPriMsgQueue<T>::Send(const T& aMsg)
- {
- ASSERT(aMsg);
- return iBackQueue.Send(&aMsg, sizeof(T));
- }
-
-template <typename T>
-inline TInt RPriMsgQueue<T>::Receive(T& aMsg)
- {
- TInt err = DrainBackQueue();
- if (KErrNone == err)
- {
- if (iFrontQueue.IsEmpty())
- {
- return KErrUnderflow;
- }
-
- TFrontQueueElement* pElement = iFrontQueue.First();
- __ASSERT_DEBUG(pElement != 0,
- User::Panic(RPriMsgQueuePanicCategory, 1));
- pElement->iLink.Deque();
- aMsg = reinterpret_cast<T>(const_cast<TAny*>(pElement->ipInfo));
- delete pElement;
- }
-
- return err;
-
- }
-
-template <typename T>
-inline void RPriMsgQueue<T>::Close()
- {
-
- // Back queue should be empty by now, but just in case...
-
- // Here we expect a pointer type!...
- T pElement;
- while (iBackQueue.Receive(&pElement, sizeof(T)) == KErrNone)
- {
- delete pElement;
- pElement = 0;
- }
- iBackQueue.Close();
-
- // Front queue should be empty by now, but just in case...
- TFrontQueueElement* pFQElement = 0;
- while (!iFrontQueue.IsEmpty())
- {
- pFQElement = iFrontQueue.First();
- __ASSERT_DEBUG(pFQElement != 0,
- User::Panic(RPriMsgQueuePanicCategory, 1));
- pFQElement->iLink.Deque();
- pElement = reinterpret_cast<T>(const_cast<TAny*>(pFQElement->ipInfo));
- delete pElement;
- delete pFQElement;
- }
-
- }
-
-template <typename T>
-inline void RPriMsgQueue<T>::NotifyDataAvailable(TRequestStatus& aStatus)
- {
- iBackQueue.NotifyDataAvailable(aStatus);
- }
-
-template <typename T>
-inline void RPriMsgQueue<T>::CancelDataAvailable()
- {
- iBackQueue.CancelDataAvailable();
- }
-
-template <typename T>
-TInt RPriMsgQueue<T>::DrainBackQueue()
- {
-
- // Here we expect a pointer type!...
- T pElement;
- while (iBackQueue.Receive(&pElement, sizeof(T)) == KErrNone)
- {
- TFrontQueueElement* pElem =
- new TFrontQueueElement(pElement, pElement->Priority());
-
- // This double attempt at allocation is done in order to allow OOM
- // tests to pass, as there is no way to report an error to the client
- // if we lose a RegisterCallbacks message in an OOM situation
- if (!pElem)
- {
- pElem = new TFrontQueueElement(pElement, pElement->Priority());
- }
-
- if (!pElem)
- {
- // This command will get lost, but at least it won't be leaked
- delete pElement;
- return KErrNoMemory;
- }
- iFrontQueue.Add(*pElem);
- }
-
- return KErrNone;
-
- }
--- a/omxil/omxilcore/bwins/omxilcoreclient.def Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-EXPORTS
- OMX_ComponentNameEnum @ 1 NONAME
- OMX_Deinit @ 2 NONAME
- OMX_FreeHandle @ 3 NONAME
- OMX_GetComponentsOfRole @ 4 NONAME
- OMX_GetContentPipe @ 5 NONAME
- OMX_GetHandle @ 6 NONAME
- OMX_GetRolesOfComponent @ 7 NONAME
- OMX_Init @ 8 NONAME
- OMX_SetupTunnel @ 9 NONAME
-
--- a/omxil/omxilcore/bwins/omxilcoreserver.def Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-EXPORTS
- ?ComponentNameEnum@COmxILCore@@QAE?AW4OMX_ERRORTYPE@@PADKK@Z @ 1 NONAME ; enum OMX_ERRORTYPE COmxILCore::ComponentNameEnum(char *, unsigned long, unsigned long)
- ?ConstructOmxILCoreServerName@@YAHAAVTDes16@@@Z @ 2 NONAME ABSENT ; int ConstructOmxILCoreServerName(class TDes16 &)
- ?FreeHandle@COmxILCore@@QBE?AW4OMX_ERRORTYPE@@PAX@Z @ 3 NONAME ; enum OMX_ERRORTYPE COmxILCore::FreeHandle(void *) const
- ?GetComponentsOfRole@COmxILCore@@QAE?AW4OMX_ERRORTYPE@@PADPAKPAPAE@Z @ 4 NONAME ; enum OMX_ERRORTYPE COmxILCore::GetComponentsOfRole(char *, unsigned long *, unsigned char * *)
- ?GetContentPipe@COmxILCore@@QAE?AW4OMX_ERRORTYPE@@PAPAXPAD@Z @ 5 NONAME ; enum OMX_ERRORTYPE COmxILCore::GetContentPipe(void * *, char *)
- ?GetRolesOfComponent@COmxILCore@@QAE?AW4OMX_ERRORTYPE@@PADPAKPAPAE@Z @ 6 NONAME ; enum OMX_ERRORTYPE COmxILCore::GetRolesOfComponent(char *, unsigned long *, unsigned char * *)
- ?LoadComponent@COmxILCore@@QAE?AW4OMX_ERRORTYPE@@PADPAPAXPAXPAUOMX_CALLBACKTYPE@@@Z @ 7 NONAME ; enum OMX_ERRORTYPE COmxILCore::LoadComponent(char *, void * *, void *, struct OMX_CALLBACKTYPE *)
- ?SetupTunnel@COmxILCore@@SA?AW4OMX_ERRORTYPE@@PAXK0K@Z @ 8 NONAME ; enum OMX_ERRORTYPE COmxILCore::SetupTunnel(void *, unsigned long, void *, unsigned long)
- ?StartOmxILCoreServer@@YAHPAK@Z @ 9 NONAME ; int StartOmxILCoreServer(unsigned long *)
-
--- a/omxil/omxilcore/eabi/omxilcoreclient.def Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-EXPORTS
- OMX_ComponentNameEnum @ 1 NONAME
- OMX_Deinit @ 2 NONAME
- OMX_FreeHandle @ 3 NONAME
- OMX_GetComponentsOfRole @ 4 NONAME
- OMX_GetContentPipe @ 5 NONAME
- OMX_GetHandle @ 6 NONAME
- OMX_GetRolesOfComponent @ 7 NONAME
- OMX_Init @ 8 NONAME
- OMX_SetupTunnel @ 9 NONAME
-
--- a/omxil/omxilcore/eabi/omxilcoreserver.def Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-EXPORTS
- _Z20StartOmxILCoreServerPm @ 1 NONAME
- _Z28ConstructOmxILCoreServerNameR6TDes16 @ 2 NONAME ABSENT
- _ZN10COmxILCore11SetupTunnelEPvmS0_m @ 3 NONAME
- _ZN10COmxILCore13LoadComponentEPcPPvS1_P16OMX_CALLBACKTYPE @ 4 NONAME
- _ZN10COmxILCore14GetContentPipeEPPvPc @ 5 NONAME
- _ZN10COmxILCore17ComponentNameEnumEPcmm @ 6 NONAME
- _ZN10COmxILCore19GetComponentsOfRoleEPcPmPPh @ 7 NONAME
- _ZN10COmxILCore19GetRolesOfComponentEPcPmPPh @ 8 NONAME
- _ZNK10COmxILCore10FreeHandleEPv @ 9 NONAME
-
--- a/omxil/omxilcore/group/bld.inf Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-
-PRJ_MMPFILES
-// Core and Loader
-../mmpfiles/omxilsymbianloaderif.mmp
-../mmpfiles/omxilsymbianloader.mmp
-../mmpfiles/omxilcomponentif.mmp
-../mmpfiles/omxilsymbiancontentpipeif.mmp
-../mmpfiles/omxilcoreserver.mmp
-../mmpfiles/omxilcoreclient.mmp
-
-
-
-
-PRJ_EXPORTS
-// OMX IL Loader Interface
-
-// Symbian intend to push OMX_Loader.h to the OMX IL community. Hence export this
-// file in mixed case. Its name is listed in filenamepolicyexclusions.txt.
-../inc/loader/OMX_Loader.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(openmax/il/loader/OMX_Loader.h)
-
-../inc/core/omxilloaderif.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(openmax/il/core/omxilloaderif.h)
-../inc/core/omxilloaderif.hrh /epoc32/include/openmax/il/core/omxilloaderif.hrh
-../inc/core/omxilloaderif.inl SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(openmax/il/core/omxilloaderif.inl)
-../inc/core/omxilsymbianloaderif.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(openmax/il/core/omxilsymbianloaderif.h)
-
-// OMX IL Component Interface
-../inc/loader/omxilcomponentif.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(openmax/il/loader/omxilcomponentif.h)
-../inc/loader/omxilcomponentif.hrh /epoc32/include/openmax/il/loader/omxilcomponentif.hrh
-../inc/loader/omxilsymbiancomponentif.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(openmax/il/loader/omxilsymbiancomponentif.h)
-
-// Content Pipe Interface API
-../inc/core/omxilcontentpipeif.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(openmax/il/core/omxilcontentpipeif.h)
-../inc/core/omxilcontentpipeif.hrh /epoc32/include/openmax/il/core/omxilcontentpipeif.hrh
-../inc/core/omxilsymbiancontentpipeif.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(openmax/il/core/omxilsymbiancontentpipeif.h)
-
-
-// Romkit include files
-omxilcore.iby /epoc32/rom/include/omxilcore.iby
-
--- a/omxil/omxilcore/group/multimedia_omx_il_core.mrp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-# multimedia_omx_il_core.mrp
-#
-# Copyright (c) 2008 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:
-#
-
-component multimedia_omx_il_core
-
-source \sf\os\mm\omxil\omxilcore
-
-binary \sf\os\mm\omxil\omxilcore\group all
-
-exports \sf\os\mm\omxil\omxilcore\group
-
-notes_source \component_defs\release.src
-
-ipr E
--- a/omxil/omxilcore/group/omxilcore.iby Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef OMXILCORE_IBY
-#define OMXILCORE_IBY
-
-// OMX IL Core
-file=ABI_DIR\BUILD_DIR\omxilcoreserver.dll System\Libs\omxilcoreserver.dll
-file=ABI_DIR\BUILD_DIR\omxilcoreclient.dll System\Libs\omxilcoreclient.dll
-
-// OMX IL Loader
-ECOM_PLUGIN(omxilsymbianloader.dll, omxilsymbianloader.rsc)
-
-#endif // OMXILCORE_IBY
--- a/omxil/omxilcore/inc/core/omxilcontentpipeif.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-// Copyright (c) 2008-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:
-// Keep it as prototype until the end of Diran to allow time for the Symbian Content Pipe OMX IL v1.x solution to be exercised,
-// since we know this feature has recently been added to the standard and it is not yet in use.
-//
-//
-
-/**
- @file
- @publishedPartner
- @prototype
-*/
-
-#ifndef OMXILCONTENTPIPEIF_H
-#define OMXILCONTENTPIPEIF_H
-
-#include <ecom/ecom.h>
-#include <ecom/implementationproxy.h>
-#include <openmax/il/khronos/v1_x/OMX_Core.h>
-#include <openmax/il/khronos/v1_x/OMX_ContentPipe.h>
-
-/**
- Bridge to allow content pipes to be loaded as an ECOM plugin.
- Inheritance from this class allows it
-*/
-class COmxILContentPipeIf : public CBase
- {
-public:
- ~COmxILContentPipeIf();
- static COmxILContentPipeIf* CreateImplementationL(TUid aUid);
-
- /**
- Gets a valid content pipe handle
-
- @return KErrNone if successful, otherwise another system-wide error codes
- @param aContentPipe Returns a pointer to the content pipe handle
- */
- virtual TInt GetHandle(OMX_HANDLETYPE* aContentPipe) = 0;
-
-private:
- /** A 32-bit instance key returned by the ECom framework */
- TUid iDestructorKey;
- };
-
-/**
- Destructor
-*/
-inline COmxILContentPipeIf::~COmxILContentPipeIf()
- {
- REComSession::DestroyedImplementation(iDestructorKey);
- }
-
-/**
- This function loads the ECOM plug-in specified by the UID passed as argument and
- return a newly created COmxContentPipeIf object
-
- @return Newly created COmxContentPipeIf object
- @param aImplementationUid UID of the ECOM plug-in
-*/
-inline COmxILContentPipeIf* COmxILContentPipeIf::CreateImplementationL(TUid aImplementationUid)
- {
- COmxILContentPipeIf* self = reinterpret_cast<COmxILContentPipeIf*>(REComSession::CreateImplementationL(aImplementationUid, _FOFF(COmxILContentPipeIf, iDestructorKey)));
- return self;
- }
-
-#endif // OMXILCONTENTPIPEIF_H
--- a/omxil/omxilcore/inc/core/omxilcontentpipeif.hrh Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-// Copyright (c) 2008-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:
-// Keep it as prototype until the end of Diran to allow time for the Symbian Content Pipe OMX IL v1.x solution to be exercised,
-// since we know this feature has recently been added to the standard and it is not yet in use.
-//
-//
-
-/**
- @file
- @publishedPartner
- @prototype
-*/
-
-#ifndef OMXILCONTENTPIPEIF_HRH
-#define OMXILCONTENTPIPEIF_HRH
-
-// OpenMax IL Content Pipe Interface
-
-/**
- This Macro defines the interface UID of an OpenMax IL content pipe.
- All content pipes ECOM plugins must use this UID in their resource files.
-*/
-#define KUidOmxILContentPipeIf 0x102834BA
-
-#endif // OMXILCONTENTPIPEIF_HRH
-
--- a/omxil/omxilcore/inc/core/omxilloaderif.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @publishedPartner
- @released
-*/
-
-#ifndef OMXILLOADERIF_H
-#define OMXILLOADERIF_H
-
-#include <openmax/il/loader/OMX_Loader.h>
-#include <ecom/ecom.h>
-#include <ecom/implementationproxy.h>
-
-/**
-The COmxComponentLoaderIf class provides an interface to the Component Loader implementation.
-Component Loaders shall be installed as ECOM plug-ins implementing the COmxComponentLoaderIf
-to run under Symbian OMX IL Core.
-Symbian OMX IL Core creates a list of all the ECOM implementations of this Component Loader
-interface installed in the system.
-
-@see KUidOmxILLoaderInterface
-*/
-class COmxComponentLoaderIf : public CBase
- {
-public:
- inline virtual ~COmxComponentLoaderIf();
- inline static COmxComponentLoaderIf* CreateImplementationL(TUid aUid);
-
- /**
- Gets the valid handle of the already populated OMX_LOADERTYPE structure.
-
- @return The loader's handle
- */
- virtual OMX_HANDLETYPE Handle() = 0;
-
-private:
- TUid iDestructorKey;
- };
-
-#include <openmax/il/core/omxilloaderif.inl>
-
-#endif /*OMXILLOADERIF_H*/
--- a/omxil/omxilcore/inc/core/omxilloaderif.hrh Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @publishedPartner
- @released
-*/
-
-#ifndef OMXILLOADERIF_HRH
-#define OMXILLOADERIF_HRH
-
-
-/**
-Defines the numerical value for the Interface UID of an OpenMax IL Symbian Component Loader.
-All component loader ECOM plugins must use this interface UID in the REGISTRY_INFO of
-their resource files.
-*/
-#define KUidOmxILLoaderInterface 0x1028349D
-
-#endif // OMXILLOADERIF_HRH
--- a/omxil/omxilcore/inc/core/omxilloaderif.inl Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-// Copyright (c) 2008-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:
-// Destructor of this interface.
-//
-//
-
-inline COmxComponentLoaderIf::~COmxComponentLoaderIf()
- {
- REComSession::DestroyedImplementation(iDestructorKey);
- }
-
-/**
-Static method to load the particular ECOM plugin specified by the implementation UID passed as a parameter.
-As part of the creation of this interface the actual OMX_LOADERTYPE structure should be allocated and populated.
-
-@param aUid
- UID of the ECOM plug-in
-@return The pointer to the newly created COmxComponentLoaderIf object
-
-@see KUidOmxILLoaderInterface
-*/
-inline COmxComponentLoaderIf* COmxComponentLoaderIf::CreateImplementationL(TUid aUid)
- {
- COmxComponentLoaderIf* self = reinterpret_cast<COmxComponentLoaderIf*>(REComSession::CreateImplementationL(aUid, _FOFF(COmxComponentLoaderIf, iDestructorKey)));
- return self;
- }
--- a/omxil/omxilcore/inc/core/omxilsymbiancontentpipeif.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,114 +0,0 @@
-// Copyright (c) 2008-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:
-// Keep it as prototype until the end of Diran to allow time for the Symbian Content Pipe OMX IL v1.x solution to be exercised,
-// since we know this feature has recently been added to the standard and it is not yet in use.
-//
-//
-
-/**
- @file
- @publishedPartner
- @prototype
-*/
-
-#ifndef OMXILSYMBIANCONTENTPIPEIF_H
-#define OMXILSYMBIANCONTENTPIPEIF_H
-
-#include <openmax/il/core/omxilcontentpipeif.h>
-
-/**
-Bridge to allow content pipes to be loaded as ECOM plugins.
-
-@publishedPartner
-*/
-NONSHARABLE_CLASS(COmxILSymbianContentPipeIf) : private COmxILContentPipeIf
- {
-public:
- static COmxILSymbianContentPipeIf* NewL();
- ~COmxILSymbianContentPipeIf();
- TInt GetHandle(OMX_HANDLETYPE* aContentPipe);
-
-private:
- COmxILSymbianContentPipeIf();
-
-private:
- /** A handle to the CP_PIPETYPE structure */
- CP_PIPETYPE* iHandle;
- };
-
-/**
- This Macro defines the ECOM plug-in entry point and must be used by the content pipe.
-
- In order to allow a content pipe to be loaded as an ECOM plugin you must:
- - Link the content pipe library against this component
- - Declare the OMXIL_CONTENTPIPE_ECOM_ENTRYPOINT macro with the content pipe UID
- - Implement the function "TInt ContentPipeInit(OMX_HANDLETYPE* aContentPipe)",
- the content pipe entry point. This function initialises the CP_PIPETYPE structure
- and returns it in its first argument. aContentPipe = Returns a pointer to the
- content pipe handle. Must return KErrNone if successful, otherwise another
- system-wide error code.
- - Implement the function "TInt ContentPipeDeInit(OMX_HANDLETYPE aContentPipe)",
- the content pipe exit point. This function deinitialises the CP_PIPETYPE structure
- passed as the first argument. aContentPipe = A pointer to the content pipe handle
- that will be deinitialised. Must return KErrNone if successful, otherwise another
- system-wide error code.
-
- @param aUid UID of the ECOM plug-in
- @see ContentPipeInit
- @see ContentPipeDeInit
-*/
-#define OMXIL_CONTENTPIPE_ECOM_ENTRYPOINT(aUid) \
-\
-const TImplementationProxy ImplementationTable[] = \
- {\
- IMPLEMENTATION_PROXY_ENTRY((aUid), COmxILSymbianContentPipeIf::NewL),\
- };\
-\
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)\
- {\
- aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);\
- return ImplementationTable;\
- }
-
-/**
- Although this is tagged as InternalAll it is effectively PublishedPartner, however
- since it is not exported we are unable to tag it as such.
- Any change to this function signature will be a PublishedPartner break.
-
- Content pipe entry point
- This function initialises the CP_PIPETYPE structure and returns it in its first argument
-
- @return KErrNone if successful, otherwise another system-wide error code
- @param aContentPipe Returns a pointer to the content pipe handle
-
- @publishedPartner
-*/
-TInt ContentPipeInit(OMX_HANDLETYPE* aContentPipe);
-
-/**
- Although this is tagged as InternalAll it is effectively PublishedPartner, however
- since it is not exported we are unable to tag it as such.
- Any change to this function signature will be a PublishedPartner break.
-
- Content pipe exit point
- This function deinitialises the CP_PIPETYPE structure passed as the first argument
-
- @return KErrNone if successful, otherwise another system-wide error code
- @param aContentPipe A pointer to the content pipe handle that will be deinitialised
-
- @publishedPartner
-*/
-TInt ContentPipeDeInit(OMX_HANDLETYPE aContentPipe);
-
-#endif // OMXILSYMBIANCONTENTPIPEIF_H
\ No newline at end of file
--- a/omxil/omxilcore/inc/core/omxilsymbianloaderif.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @publishedPartner
- @released
-*/
-
-#ifndef OMXILSYMBIANLOADERIF_H
-#define OMXILSYMBIANLOADERIF_H
-
-#include <openmax/il/core/omxilloaderif.h>
-
-/**
-COmxSymbianLoaderIf is the Symbian implementation of the COmxComponentLoaderIf.
-The COmxComponentLoaderIf class provides an interface to the Component Loader implementation.
-Component Loaders shall be installed as ECOM plug-ins implementing the COmxComponentLoaderIf
-to run under Symbian OMX IL Core.
-
-@publishedPartner
-*/
-NONSHARABLE_CLASS( COmxSymbianLoaderIf ) : public COmxComponentLoaderIf
- {
-public:
- static COmxSymbianLoaderIf* NewL();
- ~COmxSymbianLoaderIf();
-
- // from COmxComponentLoaderIf
- OMX_HANDLETYPE Handle();
-
-private:
- void ConstructL();
- COmxSymbianLoaderIf();
-
-private:
- OMX_LOADERTYPE* iHandle;
- };
-
-
-/**
-Macro to facilitate the entry in the ECOM's ImplementationTable of any new Component Loader ECOM implementation UID.
-
-To make easier the task of exposing Component Loaders as ECOM plug-ins, Symbian offers a static
-library that facilitates the mapping from the ECOM COmxComponentLoaderIf interface to non-ECOM
-implementations.
-The steps to wrap up a Component Loader as an ECOM plugin are:
-- Provide a .mmp project definition file specifying plugin as Targetype,
-- Link the Component Loader implementation against the omxilsymbianloaderif.lib static library.
-- Provide a .rss file with interface_uid = KUidOmxILLoaderInterface.
-- Declare the OMX_LOADER_ECOM_ENTRYPOINT macro with the particular implementation UID of the Loader.
-- Implement the function "OMX_ERRORTYPE OMX_LoaderSetup(OMX_HANDLETYPE aLoader)". This function
-is the entry point routine that Component Loaders have to implement to populate the actual structure
-represented by the handle passed as argument. aLoader = The handle to the OMX_LOADERTYPE structure
-to be populated. Must return an OpenMAX defined error, OMX_ErrorNone if successful.
-
-@param aUid UID of the ECOM plug-in
-@see KUidOmxILLoaderInterface
-@see OMX_LoaderSetup()
-*/
-#define OMX_LOADER_ECOM_ENTRYPOINT(aUid) \
- \
- const TImplementationProxy ImplementationTable[] = \
- {\
- IMPLEMENTATION_PROXY_ENTRY((aUid), COmxSymbianLoaderIf::NewL),\
- };\
- \
- EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)\
- {\
- aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);\
- return ImplementationTable;\
- }
-
-/**
-Although this is tagged as InternalAll it is effectively PublishedPartner, however since it is not exported
-we are unable to tag it as such.
-Any change to this function signature will be a PublishedPartner break.
-
-Entry point routine that Component Loaders have to implement to populate the actual
-structure represented by the handle passed as argument.
-@param aLoader
- The handle to the OMX_LOADERTYPE structure to be populated.
-@return An OpenMAX defined error. OMX_ErrorNone if successful.
-
-@publishedPartner
-*/
-OMX_ERRORTYPE OMX_LoaderSetup(OMX_HANDLETYPE aLoader);
-
-
-#endif /*OMXILSYMBIANLOADERIF_H*/
--- a/omxil/omxilcore/inc/loader/OMX_Loader.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,208 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @publishedPartner
- @released
-*/
-
-#ifndef OMX_LOADER_H
-#define OMX_LOADER_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#include <openmax/il/khronos/v1_x/OMX_Core.h>
-
-struct OMX_LOADERTYPE
- {
- /** The InitializeComponentLoader method is used to initialize the loader.
- It shall be the first call made into the loader and it should only be executed once
- until UnInitializeComponentLoader call is made.
-
- @return OMX_ERRORTYPE
- OMX_ErrorNone if the function is executed successfully,
- OMX_ErrorInsufficientResources if the component loader fails to construct due to an
- out of memory issue, OMX_ErrorUndefined or any other appropriate OMX error otherwise.
- */
- OMX_ERRORTYPE (*InitializeComponentLoader)(OMX_LOADERTYPE *loader);
-
- /** The UnInitializeComponentLoader method is used to uninitialize the loader.
- It shall be the last call made into the loader and should be called after all
- OpenMAX-related resources have been released.
-
- @return OMX_ERRORTYPE
- It returns OMX_ErrorNone if the function is executed successfully
- or any other appropriate OMX error otherwise.
- */
- OMX_ERRORTYPE (*UnInitializeComponentLoader)(OMX_LOADERTYPE *loader);
-
- /** The LoadComponent method will locate the component specified by the
- component name given, load that component into memory and then invoke
- the component's methods to create an instance of the component.
-
- @param [out] pHandle
- pointer to an OMX_HANDLETYPE pointer to be filled in by this method.
- @param [in] cComponentName
- pointer to a null terminated string with the component name. The
- names of the components are strings less than 127 bytes in length
- plus the trailing null for a maximum size of 128 bytes. An example
- of a valid component name is "OMX.TI.AUDIO.DSP.MIXER\0". Names are
- assigned by the vendor, but shall start with "OMX." and then have
- the Vendor designation next.
- @param [in] pAppData
- pointer to an application defined value that will be returned
- during callbacks so that the application can identify the source
- of the callback.
- @param [in] pCallBacks
- pointer to a OMX_CALLBACKTYPE structure that will be passed to the
- component to initialize it with.
- @return OMX_ERRORTYPE
- It returns OMX_ErrorNone if the function is executed successfully
- or any other appropriate OMX error otherwise.
- */
- OMX_ERRORTYPE (*LoadComponent)( OMX_LOADERTYPE *loader,
- OMX_OUT OMX_HANDLETYPE* pHandle,
- OMX_IN OMX_STRING cComponentName,
- OMX_IN OMX_PTR pAppData,
- OMX_IN OMX_CALLBACKTYPE* pCallBacks);
-
-
- /** The UnloadComponent method will free a handle allocated by the LoadComponent
- method.
-
- @param [in] hComponent
- Handle of the component to be accessed. This is the component
- handle returned by the call to the GetHandle function.
- @return OMX_ERRORTYPE
- It returns OMX_ErrorNone if the function is executed successfully
- OMX_ErrorComponentNotFound if the component is not found in this loader;
- or any other appropriate OMX error otherwise.
- */
- OMX_ERRORTYPE (*UnloadComponent)( OMX_LOADERTYPE *loader,
- OMX_HANDLETYPE hComponent);
-
- /** The ComponentNameEnum method will enumerate through all the names of
- recognised valid components in the system. This function is provided
- as a means to detect all the components in the system run-time. There is
- no strict ordering to the enumeration order of component names, although
- each name will only be enumerated once. If the loader supports run-time
- installation of new components, it is only requried to detect newly
- installed components when the first call to enumerate component names
- is made (i.e. when nIndex is 0x0).
-
- @param [out] cComponentName
- pointer to a null terminated string with the component name. The
- names of the components are strings less than 127 bytes in length
- plus the trailing null for a maximum size of 128 bytes. An example
- of a valid component name is "OMX.TI.AUDIO.DSP.MIXER\0". Names are
- assigned by the vendor, but shall start with "OMX." and then have
- the Vendor designation next.
- @param [in] nNameLength
- number of characters in the cComponentName string. With all
- component name strings restricted to less than 128 characters
- (including the trailing null) it is recomended that the caller
- provide a input string for the cComponentName of 128 characters.
- @param [in] nIndex
- number containing the enumeration index for the component.
- Multiple calls to OMX_ComponentNameEnum with increasing values
- of nIndex will enumerate through the component names in the
- system until OMX_ErrorNoMore is returned. The value of nIndex
- is 0 to (N-1), where N is the number of valid installed components
- in the system.
- @return OMX_ERRORTYPE
- If the command successfully executes, the return code will be
- OMX_ErrorNone. When the value of nIndex exceeds the number of
- components in the system minus 1, OMX_ErrorNoMore will be
- returned. Otherwise the appropriate OMX error will be returned.
- */
- OMX_ERRORTYPE (*ComponentNameEnum)( OMX_LOADERTYPE *loader,
- OMX_OUT OMX_STRING cComponentName,
- OMX_IN OMX_U32 nNameLength,
- OMX_IN OMX_U32 nIndex);
-
- /** The GetRolesOfComponent method will return the number of roles supported by the given
- component and (if the roles field is non-NULL) the names of those roles. The call will fail if
- an insufficiently sized array of names is supplied. To ensure the array is sufficiently sized the
- client should:
- * first call this function with the roles field NULL to determine the number of role names
- * second call this function with the roles field pointing to an array of names allocated
- according to the number returned by the first call.
-
- @param [in] compName
- This is the name of the component being queried about.
- @param [inout] pNumRoles
- This is used both as input and output.
-
- If roles is NULL, the input is ignored and the output specifies how many roles the component supports.
-
- If compNames is not NULL, on input it bounds the size of the input structure and
- on output, it specifies the number of roles string names listed within the roles parameter.
- @param [out] roles
- If NULL this field is ignored. If non-NULL this points to an array of 128-byte strings
- which accepts a list of the names of all standard components roles implemented on the
- specified component name.
- @return OMX_ERRORTYPE
- It returns OMX_ErrorNone if the function is executed successfully
- or any other appropriate OMX error otherwise.
- */
- OMX_ERRORTYPE (*GetRolesOfComponent)( OMX_LOADERTYPE *loader,
- OMX_IN OMX_STRING compName,
- OMX_INOUT OMX_U32 *pNumRoles,
- OMX_OUT OMX_U8 **roles);
-
- /** The GetComponentsOfRole method will return the number of components that support the given
- role and (if the compNames field is non-NULL) the names of those components. The call will fail if
- an insufficiently sized array of names is supplied. To ensure the array is sufficiently sized the
- client should:
- * first call this function with the compNames field NULL to determine the number of component names
- * second call this function with the compNames field pointing to an array of names allocated
- according to the number returned by the first call.
-
- @param [in] role
- This is generic standard component name consisting only of component class
- name and the type within that class (e.g. 'audio_decoder.aac').
- @param [inout] pNumComps
- This is used both as input and output.
-
- If compNames is NULL, the input is ignored and the output specifies how many components support
- the given role.
-
- If compNames is not NULL, on input it bounds the size of the input structure and
- on output, it specifies the number of components string names listed within the compNames parameter.
- @param [inout] compNames
- If NULL this field is ignored. If non-NULL this points to an array of 128-byte strings which accepts
- a list of the names of all physical components that implement the specified standard component name.
- Each name is NULL terminated. numComps indicates the number of names.
- @return OMX_ERRORTYPE
- It returns OMX_ErrorNone if the function is executed successfully
- or any other appropriate OMX error otherwise.
- */
- OMX_ERRORTYPE (*GetComponentsOfRole)( OMX_LOADERTYPE *loader,
- OMX_IN OMX_STRING role,
- OMX_INOUT OMX_U32 *pNumComps,
- OMX_INOUT OMX_U8 **compNames);
- OMX_PTR pLoaderPrivate;
- };
-
-#define OMX_MAX_ROLESBUFFER_SIZE 256
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /*OMX_LOADER_H*/
--- a/omxil/omxilcore/inc/loader/omxilcomponentif.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @publishedPartner
- @released
-*/
-
-#ifndef OMXILCOMPONENTIF_H
-#define OMXILCOMPONENTIF_H
-
-#include <ecom/ecom.h>
-#include <ecom/implementationproxy.h>
-#include <openmax/il/khronos/v1_x/OMX_Core.h>
-#include <openmax/il/khronos/v1_x/OMX_Component.h>
-
-/**
-The COmxILComponentIf class provides an interface to the OMX IL Component implementations.
-
-Symbian OS provides a Symbian Component Loader that manages OMX IL Components that are
-installed as ECOM plug-ins implementing the COmxILComponentIf. The Symbian Component Loader
-creates a list of all the ECOM implementations of this component interface (identified by
-the KUidOmxILSymbianComponentIf UID) installed in the system.
-
-@see KUidOmxILSymbianComponentIf
-*/
-class COmxILComponentIf : public CBase
- {
-public:
- ~COmxILComponentIf();
- static COmxILComponentIf* CreateImplementationL(TUid aUid);
-
- /**
- Gets the valid handle of the already populated OMX_COMPONENTTYPE structure.
-
- @return The component's handle
- */
- virtual OMX_HANDLETYPE Handle() = 0;
-
-private:
-
- TUid iDestructorKey;
- };
-
-/**
-Static method to load the particular ECOM plugin specified by the implementation UID passed as a parameter.
-As part of the creation of this interface the actual OMX_COMPONENTTYPE structure should be allocated and populated.
-
-@param aUid
- UID of the ECOM plug-in
-@return The pointer to the newly created COmxILComponentIf object
-
-@see KUidOmxILSymbianComponentIf
-*/
-inline COmxILComponentIf* COmxILComponentIf::CreateImplementationL(TUid aImplementationUid)
- {
- COmxILComponentIf* self = reinterpret_cast<COmxILComponentIf*>( REComSession::CreateImplementationL( aImplementationUid, _FOFF(COmxILComponentIf, iDestructorKey)));
- return self;
- }
-
-/**
-Destructor of this interface.
-*/
-inline COmxILComponentIf::~COmxILComponentIf()
- {
- REComSession::DestroyedImplementation(iDestructorKey);
- }
-#endif // OMXILCOMPONENTIF_H
--- a/omxil/omxilcore/inc/loader/omxilcomponentif.hrh Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @publishedPartner
- @released
-*/
-
-#ifndef OMXILCOMPONENTIF_HRH
-#define OMXILCOMPONENTIF_HRH
-
-/**
-Defines the numerical value for the Interface UID of an OpenMax IL Symbian Component.
-All components to be loaded by the Symbian Component Loader should be ECOM plugins and must use
-this interface UID in the REGISTRY_INFO of their resource files.
-*/
-#define KUidOmxILSymbianComponentIf 0x10283497
-
-#endif // OMXILCOMPONENTIF_HRH
--- a/omxil/omxilcore/inc/loader/omxilsymbiancomponentif.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @publishedPartner
- @released
-*/
-
-#ifndef OMXILSYMBIANCOMPONENTIF_H
-#define OMXILSYMBIANCOMPONENTIF_H
-
-#include <openmax/il/loader/omxilcomponentif.h>
-
-/**
-COmxILSymbianComponentIf is the Symbian implementation of the COmxILComponentIf.
-The COmxILComponentIf class provides an interface that the Symbian Component Loader uses to access
-Symbian OMX IL Components .
-
-
-@publishedPartner
-
-
-*/
-NONSHARABLE_CLASS(COmxILSymbianComponentIf) : private COmxILComponentIf
- {
-public:
- static COmxILSymbianComponentIf* NewL();
- ~COmxILSymbianComponentIf();
-
- // from COmxILComponentIf
- OMX_HANDLETYPE Handle();
-
-private:
- COmxILSymbianComponentIf();
- void ConstructL();
-
-private:
- OMX_COMPONENTTYPE* ipHandle;
- };
-
-/**
-Macro to facilitate the entry in the ECOM's ImplementationTable of any new Component ECOM implementation UID.
-
-To make easier the task of exposing OMX IL Components as ECOM plug-ins, Symbian offers a static
-library that facilitates the mapping from the ECOM COmxILComponentIf interface to non-ECOM
-implementations.
-The steps to wrap up a Component as an ECOM plugin are:
-- Provide a .mmp project definition file specifying plugin as Targetype,
-- Link the Component implementation against the omxilcomponentif.lib static library.
-- Provide a .rss file with interface_uid = KUidOmxILSymbianComponentIf
-- Declare the OMXIL_COMPONENT_ECOM_ENTRYPOINT macro with the particular implementation UID of the Component.
-- Implement the function "OMX_ERRORTYPE OMX_ComponentInit(OMX_HANDLETYPE aComponent)". This function
-is the entry point routine that OMX IL Components have to implement to populate the actual structure
-represented by the handle passed as argument. aComponent = The handle to the OMX_COMPONENTTYPE
-structure to be populated. Must return an OpenMAX defined error, OMX_ErrorNone if successful.
-
-@param aUid UID of the ECOM plug-in
-@see KUidOmxILSymbianComponentIf
-@see OMX_ComponentInit()
-@see COmxComponentLoaderIf
-*/
-#define OMXIL_COMPONENT_ECOM_ENTRYPOINT(aUid) \
-\
-const TImplementationProxy ImplementationTable[] = \
- {\
- IMPLEMENTATION_PROXY_ENTRY((aUid), COmxILSymbianComponentIf::NewL),\
- };\
-\
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)\
- {\
- aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);\
- return ImplementationTable;\
- }
-
-/**
-Although this is tagged as InternalAll it is effectively PublishedPartner, however
-since it is not exported we are unable to tag it as such.
-Any change to this function signature will be a PublishedPartner break.
-
-Entry point routine that OMX IL Components have to implement to populate the actual
-structure represented by the handle passed as argument.
-@param aComponent
- The handle to the OMX_COMPONENTTYPE structure to be populated.
-@return An OpenMAX defined error. OMX_ErrorNone if successful.
-
-@publishedPartner
-*/
-OMX_ERRORTYPE OMX_ComponentInit(OMX_HANDLETYPE aComponent);
-
-
-#endif //OMXILSYMBIANCOMPONENTIF_H
--- a/omxil/omxilcore/mmpfiles/omxilcomponentif.mmp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-// Copyright (c) 2008-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:
-// @file
-// @SYMPurpose omxilcomponentif.lib Library used by the OMX Core to
-// allow an OMX component to be loaded as an ECom plugin.
-//
-//
-
-TARGET omxilcomponentif.lib
-TARGETTYPE LIB
-UID 0x10285C04
-VENDORID 0x70000001
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-
-SOURCEPATH ../src/loader
-SOURCE omxilsymbiancomponentif.cpp
-
-
-SMPSAFE
--- a/omxil/omxilcore/mmpfiles/omxilcoreclient.mmp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include "../src/core/omxiluids.hrh"
-
-TARGET omxilcoreclient.dll
-TARGETTYPE dll
-UID KSharedLibraryUidDefine KUidOmxILCoreClientDll
-
-VENDORID 0x70000001
-CAPABILITY ALL -TCB
-
-MACRO __OMX_EXPORTS
-
-SOURCEPATH ../src/omxilcoreclient
-SOURCE omxilcoreclientsession.cpp
-
-USERINCLUDE ../src/omxilcoreserver
-USERINCLUDE ../src/core
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-
-LIBRARY euser.lib
-LIBRARY estor.lib
-LIBRARY omxilcoreserver.lib
-
-#ifdef WINS
-LIBRARY ewsd.lib // For Process Local Storage on Emulator only
-#else
-EPOCALLOWDLLDATA
-#endif
-
-
-// MACRO _OMXIL_CORECLIENT_DEBUG_TRACING_ON
-
-DEFFILE omxilcoreclient.def
-NOSTRICTDEF
-
-SMPSAFE
--- a/omxil/omxilcore/mmpfiles/omxilcoreserver.mmp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include "../src/core/omxiluids.hrh"
-
-TARGET omxilcoreserver.dll
-TARGETTYPE dll
-UID 0x1000008D KUidOmxILCoreServerDll
-
-VENDORID 0x70000001
-CAPABILITY ALL -TCB
-
-SOURCEPATH ../src/omxilcoreserver
-SOURCE omxilcoreserver.cpp
-SOURCE omxilcoreserversession.cpp
-
-SOURCEPATH ../src/core
-SOURCE omxilcore.cpp
-
-USERINCLUDE ../src/core
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-
-OS_LAYER_ESTLIB_SYSTEMINCLUDE
-
-
-LIBRARY euser.lib
-LIBRARY ecom.lib
-LIBRARY inetprotutil.lib
-LIBRARY estlib.lib
-
-// MACRO _OMXIL_CORESERVER_DEBUG_TRACING_ON
-
-DEFFILE omxilcoreserver.def
-NOSTRICTDEF
-
-SMPSAFE
--- a/omxil/omxilcore/mmpfiles/omxilsymbiancontentpipeif.mmp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include "../src/core/omxiluids.hrh"
-
-TARGET omxilsymbiancontentpipeif.lib
-TARGETTYPE LIB
-UID KUidOmxILSymbianContentPipeIfLib
-VENDORID 0x70000001
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-
-SOURCEPATH ../src/core
-SOURCE omxilsymbiancontentpipeif.cpp
-
-SMPSAFE
--- a/omxil/omxilcore/mmpfiles/omxilsymbianloader.mmp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include "../src/core/omxiluids.hrh"
-
-TARGET omxilsymbianloader.dll
-CAPABILITY ALL -TCB
-TARGETTYPE PLUGIN
-UID KUidECOM KUidOmxILLoaderDll
-VENDORID 0x70000001
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-OS_LAYER_ESTLIB_SYSTEMINCLUDE
-
-SOURCEPATH ../src/loader
-SOURCE omxilsymbiancomponentloader.cpp
-RESOURCE omxilsymbianloader.rss
-
-LIBRARY euser.lib
-LIBRARY ecom.lib
-LIBRARY estlib.lib
-
-// MACRO _OMXIL_SYMBIANLOADER_DEBUG_TRACING_ON
-
-SMPSAFE
--- a/omxil/omxilcore/mmpfiles/omxilsymbianloaderif.mmp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include "../src/core/omxiluids.hrh"
-
-TARGET omxilsymbianloaderif.lib
-TARGETTYPE LIB
-UID KUidOmxILLoaderLib
-VENDORID 0x70000001
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-
-SOURCEPATH ../src/core
-SOURCE omxilsymbianloaderif.cpp
-
-SMPSAFE
--- a/omxil/omxilcore/src/core/log.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,146 +0,0 @@
-// Copyright (c) 2004-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:
-//
-
-#ifndef __SWI_LOG_H__
-#define __SWI_LOG_H__
-
-#include <e32debug.h>
-
-class TTruncateOverflowHandler16 : public TDes16Overflow
- {
- public:
- virtual void Overflow( TDes16& aDes );
- };
-
-inline void TTruncateOverflowHandler16::Overflow( TDes16& aDes)
- {
- _LIT(KErrOverflowMsg,"Descriptor Overflow, hence value truncated");
- if( aDes.MaxLength() >= KErrOverflowMsg().Length() + aDes.Length() )
- aDes.Append(KErrOverflowMsg);
- }
-
-class TTruncateOverflowHandler8 : public TDes8Overflow
- {
- public:
- virtual void Overflow( TDes8& aDes );
- };
-
-inline void TTruncateOverflowHandler8::Overflow( TDes8& aDes)
- {
- _LIT(KErrOverflowMsg,"Descriptor Overflow, hence value truncated");
- if( aDes.MaxLength() >= KErrOverflowMsg().Length() + aDes.Length() )
- aDes.Append(KErrOverflowMsg);
- }
-
-namespace DSD
-{
-
-#ifdef _DEBUG
-
-#ifdef _OMXIL_CORESERVER_DEBUG_TRACING_ON
-
-#define DEBUG_PRINTF(a) {DSD::DebugPrintf(__LINE__, __FILE__, a);}
-#define DEBUG_PRINTF2(a, b) {DSD::DebugPrintf(__LINE__, __FILE__, a, b);}
-#define DEBUG_PRINTF3(a, b, c) {DSD::DebugPrintf(__LINE__, __FILE__, a, b, c);}
-#define DEBUG_PRINTF4(a, b, c, d) {DSD::DebugPrintf(__LINE__, __FILE__, a, b, c, d);}
-#define DEBUG_PRINTF5(a, b, c, d, e) {DSD::DebugPrintf(__LINE__, __FILE__, a, b, c, d, e);}
-
-#define DEBUG_CODE_SECTION(a) TRAP_IGNORE({ a; })
-
-// UTF-8 overload of the DebufPrintf method. Should be used by default,
-// since it's cheaper both in CPU cycles and stack space.
-
-inline void DebugPrintf(TInt aLine, char* aFile, TRefByValue<const TDesC8> aFormat, ...)
- {
- TTruncateOverflowHandler8 overflowHandler8;
- VA_LIST list;
- VA_START(list, aFormat);
-
- TTime now;
- now.HomeTime();
-
- TBuf8<1024> buffer;
- _LIT8(KSwiLogPrefix, "[ core ] ");
- _LIT8(KSwiLineFileFormat, "TID[%d] : [%s:%d] -- ");
- buffer.Append(KSwiLogPrefix);
- RThread thread;
- TUint threadId = thread.Id();
- thread.Close();
- RProcess proc;
- TFileName fName = proc.FileName();
- proc.Close();
- buffer.AppendFormat(KSwiLineFileFormat, threadId, aFile, aLine);
- buffer.AppendFormatList(aFormat, list ,&overflowHandler8 );
- buffer.Append(_L8("\r\n"));
-
- RDebug::RawPrint(buffer);
-
- VA_END(list);
- }
-
-// Unicode DebufPrintf overload
-
-inline void DebugPrintf(TInt aLine, char* aFile, TRefByValue<const TDesC16> aFormat, ...)
- {
- TTruncateOverflowHandler16 overflowHandler16;
- VA_LIST list;
- VA_START(list, aFormat);
-
- TTime now;
- now.HomeTime();
-
- TBuf8<256> header;
- _LIT8(KSwiLogPrefix, "[ core ] ");
- _LIT8(KSwiLineFileFormat, "%Ld Line: % 5d, File: %s -- ");
- header.Append(KSwiLogPrefix);
- header.AppendFormat(KSwiLineFileFormat, now.Int64(), aLine, aFile);
-
- TBuf<1024> buffer;
- buffer.Copy(header);
- buffer.AppendFormatList(aFormat, list ,&overflowHandler16);
- buffer.Append(_L("\r\n"));
-
- RDebug::RawPrint(buffer);
-
- VA_END(list);
- }
-#else
-
-#define DEBUG_PRINTF(a)
-#define DEBUG_PRINTF2(a, b)
-#define DEBUG_PRINTF3(a, b, c)
-#define DEBUG_PRINTF4(a, b, c, d)
-#define DEBUG_PRINTF5(a, b, c, d, e)
-
-#define DEBUG_CODE_SECTION(a)
-
-#endif
-
-#else
-
-#define DEBUG_PRINTF(a)
-#define DEBUG_PRINTF2(a, b)
-#define DEBUG_PRINTF3(a, b, c)
-#define DEBUG_PRINTF4(a, b, c, d)
-#define DEBUG_PRINTF5(a, b, c, d, e)
-
-#define DEBUG_CODE_SECTION(a)
-
-#endif
-
-
-} // namespace DSD
-
-#endif // __SWI_LOG_H__
--- a/omxil/omxilcore/src/core/omxilcore.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,894 +0,0 @@
-// Copyright (c) 2008-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:
-//
-#include <ecom/ecom.h>
-#include <string.h>
-#include <openmax/il/khronos/v1_x/OMX_Core.h>
-#include <openmax/il/khronos/v1_x/OMX_Component.h>
-#include <uri8.h>
-#include <e32des8.h>
-
-#include "log.h"
-#include "omxilcore.h"
-#include "omxiluids.hrh"
-#include <openmax/il/core/omxilloaderif.h>
-#include <openmax/il/core/omxilloaderif.hrh>
-#include <openmax/il/core/omxilcontentpipeif.h>
-#include <openmax/il/core/omxilcontentpipeif.hrh>
-
-#ifdef _DEBUG
-// This used only in debug build, for now...
-_LIT(KOmxILCorePanic, "OmxILCore Panic");
-#endif
-
-const TInt KLoadersGranularity = 1;
-const TInt KContentPipesGranularity = 1;
-
-const TUint8 COmxILCore::iSpecVersionMajor;
-const TUint8 COmxILCore::iSpecVersionMinor;
-const TUint8 COmxILCore::iSpecVersionRevision;
-const TUint8 COmxILCore::iSpecVersionStep;
-
-
-COmxILCore::COmxILCore()
- :
- iLoaders(KLoadersGranularity),
- iContentPipes(KContentPipesGranularity)
- {
- DEBUG_PRINTF(_L8("COmxILCore::COmxILCore"));
- }
-
-COmxILCore::~COmxILCore()
- {
- DEBUG_PRINTF(_L8("COmxILCore::~COmxILCore"));
- }
-
-OMX_ERRORTYPE COmxILCore::ListLoaders()
- {
- DEBUG_PRINTF(_L8("COmxILCore::ListLoaders"));
-
- RImplInfoPtrArray ecomArray;
- OMX_ERRORTYPE omxError = OMX_ErrorNone;
- TInt error = KErrNone;
- TRAP(error, REComSession::ListImplementationsL(
- TUid::Uid(KUidOmxILLoaderInterface),ecomArray));
-
- if(KErrNone == error)
- {
- const TInt ecomCount = ecomArray.Count();
- const TInt loadersCount = iLoaders.Count();
-
- // We only consider a situation where loader plugins are added to the
- // system...
- if(ecomCount > loadersCount)
- {
- TOmxLoaderInfo loader;
- CImplementationInformation* info;
- TInt indexLoaders;
- for(TInt index=0; index<ecomCount; ++index)
- {
- info = ecomArray[index];
- for( indexLoaders=0;
- (indexLoaders<loadersCount)
- &&(info->ImplementationUid()!=
- iLoaders[indexLoaders].iUid);
- ++indexLoaders )
- {}
-
- if(indexLoaders>=loadersCount)
- {
- loader.iUid = info->ImplementationUid();
- loader.iLoader = NULL;
-
- // We load loader plugins here, instead of "on-demand"...
- omxError = LoadAndInitLoader(loader.iUid,
- loader.iLoader);
- if (OMX_ErrorNone == omxError)
- {
- error = iLoaders.Append(loader);
- if(KErrNone != error)
- {
- __ASSERT_DEBUG(loader.iLoader != NULL,
- User::Panic(KOmxILCorePanic, 1));
- OMX_LOADERTYPE* omx_loader =
- reinterpret_cast<OMX_LOADERTYPE*>(loader.iLoader->Handle());
- __ASSERT_DEBUG(omx_loader != NULL,
- User::Panic(KOmxILCorePanic, 1));
- omx_loader->UnInitializeComponentLoader(omx_loader);
- delete loader.iLoader;
- break;
- }
- }
- else
- {
- DEBUG_PRINTF3(_L8("COmxILCore::ListLoaders : Loader [%d] returned OMX Error [%d]"), index, omxError);
- // Check whether there's any point on continuing with
- // the next loader...
- if (OMX_ErrorInsufficientResources == omxError)
- {
- error=KErrNoMemory;
- break;
- }
- else
- {
- DEBUG_PRINTF3(_L8("COmxILCore::ListLoaders : Loader [%d] returned OMX Error [%d] Ignoring error code as it's no considered critical!"), index, omxError);
- omxError=OMX_ErrorNone; //ignore any non-critical errors
- }
- }
- }
- }
- }
-
- }
-
- if (KErrNone != error)
- {
- if (KErrNoMemory == error)
- {
- omxError = OMX_ErrorInsufficientResources;
- }
- else
- {
- // We should return an OMX error that at least is allowed by the
- // spec during OMX_Init()
- omxError = OMX_ErrorTimeout;
- }
- }
-
- ecomArray.ResetAndDestroy();
- return omxError;
- }
-
-TBool VerifyComponentName(const OMX_STRING aComponentName)
- {
- const TInt KComponentNamePrefixLen = 4;
- return strncmp(aComponentName,"OMX.", KComponentNamePrefixLen) == 0;
- }
-EXPORT_C OMX_ERRORTYPE COmxILCore::LoadComponent(
- const OMX_STRING aComponentName,
- OMX_HANDLETYPE* aHandle,
- OMX_PTR aAppData,
- OMX_CALLBACKTYPE* aCallBacks)
- {
- DEBUG_PRINTF(_L8("COmxILCore::LoadComponent"));
-
- if(!aHandle || !aComponentName)
- {
- return OMX_ErrorBadParameter;
- }
-
- if( !VerifyComponentName(aComponentName))
- {
- return OMX_ErrorInvalidComponentName;
- }
-
- OMX_ERRORTYPE error = OMX_ErrorComponentNotFound;
- OMX_LOADERTYPE* loader;
-
- const TInt count = iLoaders.Count();
- for( TInt index=0; index<count; ++index )
- {
- loader = reinterpret_cast<OMX_LOADERTYPE*>(
- iLoaders[index].iLoader->Handle());
- __ASSERT_DEBUG(loader != NULL, User::Panic(KOmxILCorePanic, 1));
- error = loader->LoadComponent(loader, aHandle,
- aComponentName,
- aAppData, aCallBacks);
- // if loading the component succeeded we can return else we disregard
- // the error on this loader and search for the component with the next
- // loader. If this is the last loader the error will be returned at
- // the bottom of the function. We return also if there are no resoruces
- // available...
- if( OMX_ErrorNone == error || OMX_ErrorInsufficientResources == error)
- {
- return error;
- }
- }
- return error;
- }
-
-OMX_ERRORTYPE COmxILCore::LoadAndInitLoader(
- const TUid& aUid, COmxComponentLoaderIf*& aLoader)
- {
- DEBUG_PRINTF(_L8("COmxILCore::LoadAndInitLoader"));
-
- COmxComponentLoaderIf* loader = NULL;
-
- TRAPD(err, loader = COmxComponentLoaderIf::CreateImplementationL(aUid));
- if(err != KErrNone)
- {
- if (err == KErrNoMemory)
- {
- return OMX_ErrorInsufficientResources;
- }
- return OMX_ErrorInvalidComponent;
- }
-
- OMX_HANDLETYPE handle = loader->Handle();
- if (!handle)
- {
- delete loader;
- return OMX_ErrorUndefined;
- }
-
- OMX_LOADERTYPE* omx_loader = reinterpret_cast<OMX_LOADERTYPE*>(handle);
- __ASSERT_DEBUG(omx_loader != NULL, User::Panic(KOmxILCorePanic, 1));
- OMX_ERRORTYPE error = omx_loader->InitializeComponentLoader(omx_loader);
- if(error != OMX_ErrorNone)
- {
- // We should call UnInitializeComponentLoader before deletion, just in
- // case...returned error is irrelevant now...
- omx_loader->UnInitializeComponentLoader(omx_loader);
- delete loader;
- return error;
- }
-
- aLoader = loader;
- return error;
- }
-
-void COmxILCore::DeinitCore()
- {
- DEBUG_PRINTF(_L8("COmxILCore::DeinitCore"));
-
- TInt index;
- COmxComponentLoaderIf* loader;
-
- const TInt KLoaderCount = iLoaders.Count();
- for( index = 0; index<KLoaderCount; ++index )
- {
- loader = iLoaders[index].iLoader;
- // Check this in case the loader has not been initialized yet...
- if(loader)
- {
- OMX_HANDLETYPE handle = loader->Handle();
- OMX_LOADERTYPE* omx_loader =
- reinterpret_cast<OMX_LOADERTYPE*>(handle);
- __ASSERT_DEBUG(omx_loader != NULL,
- User::Panic(KOmxILCorePanic, 1));
- OMX_ERRORTYPE error =
- omx_loader->UnInitializeComponentLoader(omx_loader);
- delete loader;
- }
- }
- iLoaders.Close();
- iContentPipes.ResetAndDestroy();
- }
-
-
-EXPORT_C OMX_ERRORTYPE COmxILCore::ComponentNameEnum(
- OMX_STRING aComponentName,
- OMX_U32 aNameLength,
- const OMX_U32 aIndex)
- {
- DEBUG_PRINTF(_L8("COmxILCore::ComponentNameEnum"));
-
- if( aNameLength == 0 || aComponentName == NULL )
- {
- return OMX_ErrorBadParameter;
- }
-
- const TInt KLoadersCount = iLoaders.Count();
- if (KLoadersCount == 0)
- {
- // There are no loaders in the system...
- DEBUG_PRINTF2(_L8("COmxILCore::ComponentNameEnum (index = %d) : No loaders present..."), aIndex);
- return OMX_ErrorNoMore;
- }
-
- OMX_ERRORTYPE error = OMX_ErrorNone;
- const TInt KIndexForPopulateList = 0;
- // if aIndex is 0 (i.e. KIndexForPopulateList) the redescovery of
- // components is triggered in the client library
- if( aIndex == KIndexForPopulateList )
- {
- TBool found=EFalse;
- char tempComponentName[OMX_MAX_STRINGNAME_SIZE];
-
- // each loader should rediscover its components
- for( TInt index=0; index < KLoadersCount; ++index )
- {
- OMX_LOADERTYPE* loader = reinterpret_cast<OMX_LOADERTYPE*>(
- iLoaders[index].iLoader->Handle());
- __ASSERT_DEBUG(loader != NULL, User::Panic(KOmxILCorePanic, 1));
-
- // Index 0 means two things according to the standard: core (through its loader(s)) has to discover components (populate component list)
- // and also the component name at 0 index has to be returned
- // As there are multiple loaders present and there is no information which loader has any components
- // we must go through all loaders inputting 0 index and see which loaders returns anything at index 0 first
- // Once we've found the 0 index we can just ignore any component names returned from subsequent calls to loaders
- error = loader->ComponentNameEnum(loader,
- tempComponentName,
- aNameLength,aIndex);
- if(OMX_ErrorNone==error)
- {
- if(!found)//component hasn't been found yet
- {
- strcpy(aComponentName, tempComponentName);
- found=ETrue; //now it's found
- }
- }
- else
- {
- // We must continue with the next loader if the current loader
- // has no components... or if there is some other error
- // condition in the current loader...
- if( OMX_ErrorNoMore == error )
- {
- DEBUG_PRINTF2(_L8("COmxILCore::ComponentNameEnum (index = 0) : Loader [%d] has 0 components..."), index);
- }
- else
- {
- // In case the loader returned with some other error condition,
- // we log the situation...
- DEBUG_PRINTF3(_L8("COmxILCore::ComponentNameEnum (index = 0) : Loader [%d] returned OMX error [%d].. ignoring loader..."), index, error);
- // Check whether there's any point on continuing with the
- // next loader...
- if (OMX_ErrorInsufficientResources == error)
- {
- return OMX_ErrorInsufficientResources;
- }
- }
- }
- }
- error= (found ? OMX_ErrorNone : OMX_ErrorNoMore);
- }
- else
- {
- RArray<TInt> componentCountPerLoader;
- TInt err=KErrNone;
-
- //init componentCountPerLoader array with -1; this array tells how many components a particular loader has
- for(TInt loaderIndex=0; loaderIndex < KLoadersCount; ++loaderIndex)
- {
- //first check if loader is available
- if( iLoaders[loaderIndex].iLoader == NULL )
- {
- // We are considering here that ComponentNameEnum with index =
- // 0 must have been called previously... the spec is not
- // completely clear here...We return ErrorNotReady although
- // this is not a legal return code for this IL Core function...
- componentCountPerLoader.Close();
- return OMX_ErrorNotReady;
- }
- err=componentCountPerLoader.Append(-1);
- switch(err)
- {
- case KErrNone:
- //do nothing
- break;
-
- case KErrNoMemory:
- componentCountPerLoader.Close();
- return OMX_ErrorInsufficientResources;
-
- default:
- componentCountPerLoader.Close();
- return OMX_ErrorUndefined;
- }
- }
-
- for(TInt loaderIndex=0; loaderIndex < KLoadersCount; ++loaderIndex)
- {
- //fist acquire the actual loader
- OMX_LOADERTYPE* loader = reinterpret_cast<OMX_LOADERTYPE*>(iLoaders[loaderIndex].iLoader->Handle());
- __ASSERT_DEBUG(loader != NULL, User::Panic(KOmxILCorePanic, 1));
-
- //then count how many components the previous loaders have in total
- //obviously for the first loader this loop won't do anything (ie: for loaderIndex==0)
- //for the second loader it will count the first loader's component count, etc....
- TInt totalComponentCount(0);
- for(TInt l=0; l<loaderIndex; ++l)
- {
- totalComponentCount+=componentCountPerLoader[l];
- }
-
- //then calculate the relative index, which is the index in the actual loader if the component
- //was not found in previous loaders
- //eg: if the query index is 8, and the first loader has 6 components, the second has 1 component, then
- //the relative index is 8-(6+1)=1, that's we are querying the component at index 1 (which is in fact the second one as the indexing is zero based) of the 3rd loader
- TInt relativeIndex = aIndex-totalComponentCount;
- error = loader->ComponentNameEnum(loader,
- aComponentName,
- aNameLength, relativeIndex);
-
-
- switch(error)
- {
- case OMX_ErrorNone:
- //this loader has component at this index (ie: at relativeIndex)
- componentCountPerLoader.Close(); //free array before return
- return OMX_ErrorNone;
-
- case OMX_ErrorNoMore:
- if((KLoadersCount-1)==loaderIndex) //if this is the last loader then the component at this index index obviously does not exist
- {
- componentCountPerLoader.Close(); //free array before return
- return OMX_ErrorNoMore;
- }
- //this loader has not this many components, so find out how many it actually has
- //and then update the correponding item in the componentCountPerLoader array
- if(0==relativeIndex)//if this loader has no component at index 0, then it has no components at all
- {
- componentCountPerLoader[loaderIndex]=0;
- break;
- }
-
- for(TInt m=relativeIndex-1; m>=0;--m) //try to figure the first available index (counting down)
- {
- OMX_ERRORTYPE tempError = loader->ComponentNameEnum(loader,
- aComponentName,
- aNameLength, m);
- if(OMX_ErrorNone==tempError)
- {
- //this is the first index (counting down) where this loader has component
- componentCountPerLoader[loaderIndex]=m+1; //eg: index==4, then component count is 5 (because of zero based indexing)
- break;
- }
- else if(OMX_ErrorInsufficientResources==tempError)
- {
- //critical error; free array before return
- componentCountPerLoader.Close();
- return OMX_ErrorInsufficientResources;
- }
- //ignore any non-critical error (ie: other than OMX_ErrorInsufficientResources) and go one index down
- }
-
- //if after the last loop (ie: m==0) the count was still not set for some reasons, then set to zero
- if(-1==componentCountPerLoader[loaderIndex])
- {
- componentCountPerLoader[loaderIndex]=0;
- }
- break;
- case OMX_ErrorInsufficientResources:
- componentCountPerLoader.Close(); //free array before return
- return OMX_ErrorInsufficientResources;
- default:
- //some unknown error happened to the loader therefore we can't count how many component it has, assume zero
- DEBUG_PRINTF4(_L8("COmxILCore::ComponentNameEnum (index = %d) : Loader [%d] returned OMX error [%d].. ignoring loader (ie: assuming ZERO components)..."), aIndex, loaderIndex, error);
- componentCountPerLoader[loaderIndex]=0;
- break;
- }
- }//end of for
- componentCountPerLoader.Close(); //free array before return
- } // else
-
-
- if (OMX_ErrorInsufficientResources == error)
- {
- return OMX_ErrorUndefined;
- }
- else
- {
- return error;
- }
- }
-
-
-EXPORT_C OMX_ERRORTYPE COmxILCore::FreeHandle(OMX_HANDLETYPE aComponent) const
- {
- DEBUG_PRINTF2(_L8("COmxILCore::FreeHandle : Component Handle [%X]"), aComponent);
-
- if( aComponent == NULL )
- {
- return OMX_ErrorBadParameter;
- }
-
- OMX_LOADERTYPE* loader;
- OMX_ERRORTYPE error = OMX_ErrorComponentNotFound;
-
- const TInt KLoadersCount = iLoaders.Count();
- for(TInt index=0; index < KLoadersCount; ++index)
- {
- // Check this just in case the loader has not been initialized yet...
- if(iLoaders[index].iLoader != NULL)
- {
- loader = reinterpret_cast<OMX_LOADERTYPE*>(iLoaders[index].iLoader->Handle());
- __ASSERT_DEBUG(loader != NULL, User::Panic(KOmxILCorePanic, 1));
- error = loader->UnloadComponent(loader, aComponent);
- if( OMX_ErrorNone == error )
- {
- // Success case... otherwise, continue with next loader...
- break;
- }
-#ifdef _DEBUG
- if( OMX_ErrorComponentNotFound != error )
- {
- // Another error occured... log the situation...
- DEBUG_PRINTF3(_L8("COmxILCore::FreeHandle : Loader [%d] returned OMX error [%d].. continuing with next loader..."), index, error);
- }
-#endif
- }
- }
-
- return error;
- }
-
-EXPORT_C OMX_ERRORTYPE COmxILCore::SetupTunnel(OMX_HANDLETYPE aHandleOutput,
- OMX_U32 aPortOutput,
- OMX_HANDLETYPE aHandleInput,
- OMX_U32 aPortInput)
- {
- DEBUG_PRINTF(_L8("COmxILCore::SetupTunnel"));
-
- if (!aHandleOutput && !aHandleInput )
- {
- return OMX_ErrorBadParameter;
- }
-
- OMX_COMPONENTTYPE *componentInput, *componentOutput;
- componentInput = reinterpret_cast<OMX_COMPONENTTYPE*>(aHandleInput);
- componentOutput = reinterpret_cast<OMX_COMPONENTTYPE*>(aHandleOutput);
-
- OMX_TUNNELSETUPTYPE tunnelSetup;
- OMX_ERRORTYPE error;
- OMX_PARAM_PORTDEFINITIONTYPE portDefinitionType;
-
- tunnelSetup.nTunnelFlags = 0;
- tunnelSetup.eSupplier = OMX_BufferSupplyUnspecified;
-
- if(componentOutput)
- {
- // Check that the output port is actually an output port
- portDefinitionType.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
- portDefinitionType.nVersion.s.nVersionMajor = COmxILCore::iSpecVersionMajor;
- portDefinitionType.nVersion.s.nVersionMinor = COmxILCore::iSpecVersionMinor;
- portDefinitionType.nVersion.s.nRevision = COmxILCore::iSpecVersionRevision;
- portDefinitionType.nVersion.s.nStep = COmxILCore::iSpecVersionStep;
- portDefinitionType.nPortIndex = aPortOutput;
- if (OMX_ErrorNone != (error = componentOutput->GetParameter(
- componentOutput,
- OMX_IndexParamPortDefinition,
- &portDefinitionType)))
- {
- return TOmxILCoreUtils::ConvertErrorGetParameterToSetupTunnel(error);
- }
-
- if (OMX_DirOutput != portDefinitionType.eDir)
- {
- return OMX_ErrorBadParameter;
- }
-
- error = componentOutput->ComponentTunnelRequest(componentOutput,
- aPortOutput,
- componentInput,
- aPortInput,
- &tunnelSetup);
- if(OMX_ErrorNone != error)
- {
- return error;
- }
- }
-
- if(componentInput)
- {
- // Check that the input port is actually an input port. Set again the
- // structure values just in case they were overwritten in the previous
- // GetParameter call...
- portDefinitionType.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
- portDefinitionType.nVersion.s.nVersionMajor = COmxILCore::iSpecVersionMajor;
- portDefinitionType.nVersion.s.nVersionMinor = COmxILCore::iSpecVersionMinor;
- portDefinitionType.nVersion.s.nRevision = COmxILCore::iSpecVersionRevision;
- portDefinitionType.nVersion.s.nStep = COmxILCore::iSpecVersionStep;
- portDefinitionType.nPortIndex = aPortInput;
- if (OMX_ErrorNone != (error = componentInput->GetParameter(
- componentInput,
- OMX_IndexParamPortDefinition,
- &portDefinitionType)))
- {
- return TOmxILCoreUtils::ConvertErrorGetParameterToSetupTunnel(error);
- }
-
- if (OMX_DirInput != portDefinitionType.eDir)
- {
- return OMX_ErrorBadParameter;
- }
-
- error = componentInput->ComponentTunnelRequest(componentInput,
- aPortInput,
- componentOutput,
- aPortOutput,
- &tunnelSetup);
-
- if(OMX_ErrorNone != error)
- {
- if(!componentOutput)
- {
- return error;
- }
-
- if( OMX_ErrorNone != componentOutput->ComponentTunnelRequest(
- componentOutput,
- aPortOutput,
- NULL,
- 0,
- &tunnelSetup) )
- {
- return OMX_ErrorUndefined;
- }
- return error;
- }
- }
- return OMX_ErrorNone;
- }
-
-EXPORT_C OMX_ERRORTYPE COmxILCore::GetContentPipe(
- OMX_HANDLETYPE *aPipe,const OMX_STRING aURI)
- {
- DEBUG_PRINTF(_L8("COmxILCore::GetContentPipe"));
-
- if( aURI == NULL )
- {
- return OMX_ErrorBadParameter;
- }
-
- RImplInfoPtrArray ecomArray;
- TRAPD(error,REComSession::ListImplementationsL(
- TUid::Uid(KUidOmxILContentPipeIf), ecomArray));
- if( error != KErrNone )
- {
- ecomArray.ResetAndDestroy();
- return OMX_ErrorUndefined;
- }
-
- const TInt KEcomArrayCount = ecomArray.Count();
- if(!KEcomArrayCount)
- {
- ecomArray.Close();
- return OMX_ErrorBadParameter;
- }
-
- HBufC8* convert = NULL;
- TPtr8 luri(reinterpret_cast<TUint8 *>(aURI), strlen(aURI), strlen(aURI));
-
- TRAP(error, (convert = HBufC8::NewL(strlen(aURI))));
- if( error != KErrNone )
- {
- ecomArray.ResetAndDestroy();
- return OMX_ErrorUndefined;
- }
-
- TUriParser8 parser;// Uri parser object
- TInt result;
- // Extract the scheme component from the parsed URI
- const TDesC8& scheme = parser.Extract(EUriScheme);
-
- *convert = luri;
- result = parser.Parse(*convert);// parse the Uri descriptor
- if( result != KErrNone )
- {
- delete convert;
- ecomArray.ResetAndDestroy();
- return OMX_ErrorBadParameter;
- }
-
- TInt index;
- CImplementationInformation* info;
- COmxILContentPipeIf* cpipe = NULL;
- OMX_ERRORTYPE omxError = OMX_ErrorBadParameter;
- for(index=0; index < KEcomArrayCount; ++index)
- {
- info = ecomArray[index];
- if(info->DataType().Find(scheme) != KErrNotFound )
- {
- //found
- TRAP(error, cpipe = COmxILContentPipeIf::CreateImplementationL(
- info->ImplementationUid()));
- if(error != KErrNone)
- {
- omxError = OMX_ErrorUndefined;
- break;
- }
- error = cpipe->GetHandle(aPipe);
- if(error != KErrNone)
- {
- omxError = OMX_ErrorUndefined;
- break;
- }
-
- error = iContentPipes.Append(cpipe);
- if(error != KErrNone)
- {
- omxError = OMX_ErrorUndefined;
- break;
- }
-
- omxError = OMX_ErrorNone;
- break;
- }
- }
-
- if (OMX_ErrorNone != omxError)
- {
- delete cpipe;
- aPipe = NULL;
- }
-
- delete convert;
- ecomArray.ResetAndDestroy();
- return omxError;
- }
-
-EXPORT_C OMX_ERRORTYPE COmxILCore::GetComponentsOfRole (
- const OMX_STRING aRole, OMX_U32 *aNumComps, OMX_U8 **aCompNames)
- {
- DEBUG_PRINTF(_L8("COmxILCore::GetComponentsOfRole"));
-
- if (aNumComps == NULL)
- {
- return OMX_ErrorBadParameter;
- }
-
- if (aCompNames != NULL && *aNumComps == 0)
- {
- return OMX_ErrorBadParameter;
- }
-
- OMX_LOADERTYPE* loader;
- OMX_ERRORTYPE error = OMX_ErrorComponentNotFound;
- OMX_U32 numAllComps = 0;
- OMX_U32 maxNumComps = *aNumComps;
- OMX_U32 tempNumComps = maxNumComps;
- OMX_U8 **compNames = aCompNames;
-
- const TInt KLoadersCount = iLoaders.Count();
- for(TInt index=0; index < KLoadersCount; ++index)
- {
- loader = reinterpret_cast<OMX_LOADERTYPE*>(
- iLoaders[index].iLoader->Handle());
- __ASSERT_DEBUG(loader != NULL, User::Panic(KOmxILCorePanic, 1));
- error = loader->GetComponentsOfRole(loader,
- aRole,
- &tempNumComps,
- compNames);
- if(OMX_ErrorNone == error)
- {
- numAllComps += tempNumComps;
- if(aCompNames != NULL && KLoadersCount > 1)
- {
- // Update tempNumComps in case there is a next iteration...
- tempNumComps = maxNumComps - tempNumComps;
- if (numAllComps >= maxNumComps)
- {
- if (numAllComps > maxNumComps)
- {
- DEBUG_PRINTF2(_L8("COmxILCore::GetComponentsOfRole : Loader [%d] returned a bad number of component roles... correcting"), index);
- numAllComps = maxNumComps;
- }
-
- // The array of component names is full...
- break;
- }
-
- compNames = &(aCompNames[numAllComps]);
- if (*compNames == NULL)
- {
- *aNumComps = 0;
- return OMX_ErrorBadParameter;
- }
- } // if(aCompNames != NULL && KLoadersCount > 1)
- } // if(OMX_ErrorNone == error)
- } // for(TInt index=0; index < KLoadersCount; ++index)
-
- // Update the number of components value to be returned to the client...
- *aNumComps = numAllComps;
-
- if (error == OMX_ErrorInsufficientResources)
- {
- return OMX_ErrorUndefined;
- }
- else
- {
- return error;
- }
- }
-
-EXPORT_C OMX_ERRORTYPE COmxILCore::GetRolesOfComponent (
- const OMX_STRING aCompName, OMX_U32 *aNumRoles, OMX_U8 **aRoles)
- {
- DEBUG_PRINTF(_L8("COmxILCore::GetRolesOfComponent"));
-
- if (aNumRoles == NULL)
- {
- return OMX_ErrorBadParameter;
- }
-
- if (aRoles != NULL && *aNumRoles == 0)
- {
- return OMX_ErrorBadParameter;
- }
- if( !VerifyComponentName(aCompName))
- {
- return OMX_ErrorInvalidComponentName;
- }
- TInt numRolesCopy = *aNumRoles;
- OMX_LOADERTYPE* loader;
- OMX_ERRORTYPE error = OMX_ErrorComponentNotFound;
- const TInt KLoadersCount = iLoaders.Count();
- for(TInt index=0; index < KLoadersCount; ++index)
- {
- loader = reinterpret_cast<OMX_LOADERTYPE*>(
- iLoaders[index].iLoader->Handle());
- __ASSERT_DEBUG(loader != NULL, User::Panic(KOmxILCorePanic, 1));
- error = loader->GetRolesOfComponent(loader,
- aCompName,
- aNumRoles,
- aRoles);
- if(OMX_ErrorNone == error)
- {
- if ((aRoles != NULL) && (*aNumRoles > numRolesCopy))
- {
- // Just in case...
- DEBUG_PRINTF2(_L8("COmxILCore::GetRolesOfComponent : Loader [%d] returned a bad number of roles... correcting"), index);
- *aNumRoles = numRolesCopy;
- }
- return OMX_ErrorNone;
- }
-
- if((index+1 < KLoadersCount) && (aRoles != NULL))
- {
- // If we have other loaders after this, reset aNumRoles to the
- // value suplied by the client.
- *aNumRoles = numRolesCopy;
- }
- }
-
- // Make sure that even if loader does not conform to the set of errors required by the standard, we will
- if (OMX_ErrorUndefined != error && OMX_ErrorInvalidComponentName != error &&
- OMX_ErrorInvalidComponent != error && OMX_ErrorBadParameter != error)
- {
- return OMX_ErrorUndefined;
- }
- else
- {
- return error;
- }
- }
-
-/**
- Converts an error returned by GetParameter to a permitted error to be
- returned by OMX_SetupTunnel.
-
- @param aGetParameterError An error code returned by the GetParameter API
-
- @return An OMX_ERRORTYPE from the list of permitted errors in
- OMX_SetupTunnel
-*/
-OMX_ERRORTYPE TOmxILCoreUtils::ConvertErrorGetParameterToSetupTunnel(
- OMX_ERRORTYPE aGetParameterError)
- {
- switch(aGetParameterError)
- {
- // These are the common errors allowed in GetParameter and
- // OMX_SetupTunnel
- case OMX_ErrorInvalidComponent:
- case OMX_ErrorBadParameter:
- case OMX_ErrorInvalidState:
- case OMX_ErrorVersionMismatch:
- case OMX_ErrorTimeout:
- case OMX_ErrorBadPortIndex:
- return aGetParameterError;
-
- // These are the errors supported by GetParameter and not supported by
- // OMX_SetupTunnel
- case OMX_ErrorUndefined:
- case OMX_ErrorNoMore:
- case OMX_ErrorNotReady:
- case OMX_ErrorUnsupportedIndex:
- case OMX_ErrorSeperateTablesUsed:
- default:
- // Return something that is actually allowed...
- return OMX_ErrorBadParameter;
- };
- }
--- a/omxil/omxilcore/src/core/omxilcore.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-//
-// Copyright (c) 2005-2008 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:
-//
-
-#ifndef OMXILCORE_H
-#define OMXILCORE_H
-
-#include <e32base.h>
-#include <openmax/il/khronos/v1_x/OMX_Core.h>
-
-// Forward declarations
-class COmxComponentLoaderIf;
-class COmxILContentPipeIf;
-
-NONSHARABLE_CLASS(COmxILCore): public CBase
- {
-public:
-
- static const TUint8 iSpecVersionMajor = OMX_VERSION_MAJOR;
- static const TUint8 iSpecVersionMinor = OMX_VERSION_MINOR;
- static const TUint8 iSpecVersionRevision = OMX_VERSION_REVISION;
- static const TUint8 iSpecVersionStep = OMX_VERSION_STEP;
-
-public:
-
- COmxILCore();
- ~COmxILCore();
-
- OMX_ERRORTYPE ListLoaders();
- void DeinitCore();
- IMPORT_C OMX_ERRORTYPE LoadComponent(const OMX_STRING aComponentName, OMX_HANDLETYPE* aHandle, OMX_PTR aAppData,OMX_CALLBACKTYPE* aCallBacks);
- IMPORT_C OMX_ERRORTYPE ComponentNameEnum(OMX_STRING aComponentName, OMX_U32 aNameLength, const OMX_U32 aIndex);
- IMPORT_C OMX_ERRORTYPE FreeHandle(OMX_HANDLETYPE aComponent) const;
- IMPORT_C static OMX_ERRORTYPE SetupTunnel(OMX_HANDLETYPE aHandleOutput, OMX_U32 aPortOutput,
- OMX_HANDLETYPE aHandleInput, OMX_U32 aPortInput);
- IMPORT_C OMX_ERRORTYPE GetContentPipe(OMX_HANDLETYPE* aPipe,const OMX_STRING aURI);
- IMPORT_C OMX_ERRORTYPE GetComponentsOfRole ( const OMX_STRING aRole, OMX_U32* aNumComps, OMX_U8** aCompNames );
- IMPORT_C OMX_ERRORTYPE GetRolesOfComponent ( const OMX_STRING aCompName, OMX_U32* aNumRoles, OMX_U8** aRoles);
-
-private:
-
- class TOmxLoaderInfo
- {
- public:
- TOmxLoaderInfo();
- public:
- TUid iUid;
- COmxComponentLoaderIf* iLoader;
- };
-
-private:
-
- OMX_ERRORTYPE LoadAndInitLoader(const TUid& aUid, COmxComponentLoaderIf*& aLoader);
-
-private:
- RArray<TOmxLoaderInfo> iLoaders;
- RPointerArray<COmxILContentPipeIf> iContentPipes;
- };
-
-inline COmxILCore::TOmxLoaderInfo::TOmxLoaderInfo():
- iUid(TUid::Uid(0)),iLoader(NULL)
- {
- }
-
-/**
- Utility functions
- */
-class TOmxILCoreUtils
- {
-public:
-
- static OMX_ERRORTYPE ConvertErrorGetParameterToSetupTunnel(
- OMX_ERRORTYPE aGetParameterError);
-
- };
-
-#endif /* OMXILCORE_H */
--- a/omxil/omxilcore/src/core/omxilsymbiancontentpipeif.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include <e32base.h>
-#include <openmax/il/core/omxilsymbiancontentpipeif.h>
-
-/**
- Content pipe entry point
- This function initialises the CP_PIPETYPE structure and return it in its first argument
-
- @return KErrNone if successful, otherwise another system-wide error codes
- @param aContentPipe Returns a pointer to the content pipe handle
-
- @publishedPartner
- @prototype
-*/
-TInt ContentPipeInit(OMX_HANDLETYPE* aContentPipe);
-
-/**
- Content pipe exit point
- This function deinitialises the CP_PIPETYPE structure passed as first argument
-
- @return KErrNone if successful, otherwise another system-wide error codes
- @param aContentPipe A pointer to the content pipe handle that will be deinitialised
-
- @publishedPartner
- @prototype
-*/
-TInt ContentPipeDeInit(OMX_HANDLETYPE aContentPipe);
-
-/**
- Constructor
-*/
-COmxILSymbianContentPipeIf::COmxILSymbianContentPipeIf()
- {
- }
-
-/**
- Constructs a new instance of COmxILSymbianContentPipeIf.
- @return COmxILSymbianContentPipeIf* A pointer to the newly constructed COmxILSymbianContentPipeIf.
-
- @internalTechnology
-*/
-COmxILSymbianContentPipeIf* COmxILSymbianContentPipeIf::NewL()
- {
- return new(ELeave)COmxILSymbianContentPipeIf;
- }
-
-/**
- Destructor
-
- @internalTechnology
-*/
-COmxILSymbianContentPipeIf::~COmxILSymbianContentPipeIf()
- {
- ContentPipeDeInit(iHandle);
- }
-
-TInt COmxILSymbianContentPipeIf::GetHandle(OMX_HANDLETYPE* aContentPipe)
- {
- if(iHandle)
- { // Content Pipe already created
- *aContentPipe = iHandle;
- return KErrNone;
- }
-
- TInt err = ContentPipeInit(aContentPipe);
- if(err == KErrNone)
- {
- iHandle = reinterpret_cast<CP_PIPETYPE*>(*aContentPipe);
- }
- return err;
- }
--- a/omxil/omxilcore/src/core/omxilsymbianloaderif.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include <openmax/il/core/omxilsymbianloaderif.h>
-
-/**
-Entry point routine that Component Loaders have to implement to populate the actual
-structure represented by the handle passed as argument.
-@param aLoader
- The handle to the OMX_LOADERTYPE structure to be populated.
-@return An OpenMAX defined error. OMX_ErrorNone if successful.
-
-@publishedPartner
-@prototype
-*/
-OMX_ERRORTYPE OMX_LoaderSetup(OMX_HANDLETYPE aLoader);
-
-/**
-Constructor of this interface.
-*/
-COmxSymbianLoaderIf::COmxSymbianLoaderIf()
- {
- }
-
-/**
-Static method to create this interface.
-The actual OMX_LOADERTYPE structure should be allocated and populated as part
-of the construction of this interface.
-
-@return A pointer to the newly constructed COmxSymbianLoaderIf.
-
-@internalTechnology
-*/
-COmxSymbianLoaderIf* COmxSymbianLoaderIf::NewL()
- {
- COmxSymbianLoaderIf* self = new(ELeave)COmxSymbianLoaderIf;
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-/**
-Constructs and populates the OMX_LOADERTYPE structure encapsulated within this interface.
-*/
-void COmxSymbianLoaderIf::ConstructL()
- {
- iHandle = new(ELeave)OMX_LOADERTYPE;
-
- OMX_ERRORTYPE error = OMX_ErrorInsufficientResources;
- error = ::OMX_LoaderSetup(iHandle);
-
- if ( error != OMX_ErrorNone )
- {
- if( error == OMX_ErrorInsufficientResources )
- {
- User::Leave(KErrNoMemory);
- }
- else
- {
- User::Leave(KErrGeneral);
- }
- }
- }
-
-/**
-Destructor of this interface.
-Deletes this loader's OMX_LOADERTYPE structure.
-
-@internalTechnology
-*/
-COmxSymbianLoaderIf::~COmxSymbianLoaderIf()
- {
- delete iHandle;
- }
-
-/**
-Gets the valid handle of the already populated OMX_LOADERTYPE struct.
-
-@return The loader's handle
-*/
-OMX_HANDLETYPE COmxSymbianLoaderIf::Handle()
- {
- return iHandle;
- }
-
--- a/omxil/omxilcore/src/core/omxiluids.hrh Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef OMXILUIDS_HRH
-#define OMXILUIDS_HRH
-
-#define KSharedLibraryUidDefine 0x1000008D
-#define KUidECOM 0x10009D8D
-
-// OpenMax IL Core client library
-#define KUidOmxILCoreClientDll 0x1028349C
-
-// OpenMax IL Core server library
-#define KUidOmxILCoreServerDll 0x10285D1E
-
-// OpenMax IL Loader Static Library
-#define KUidOmxILLoaderLib 0x1028349E
-
-// Symbian OpenMax IL loader
-#define KUidOmxILLoaderDll 0x102834CF
-#define KUidOmxILSymbianComponentLoader 0x102834D0
-
-// Symbian OpenMax IL Content Pipe Interface
-#define KUidOmxILSymbianContentPipeIfLib 0x102834B8
-
-#endif /*OMXILUIDS_HRH*/
--- a/omxil/omxilcore/src/loader/log.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,149 +0,0 @@
-/*
-* Copyright (c) 2004-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:
-*
-*/
-
-
-#ifndef __SWI_LOG_H__
-#define __SWI_LOG_H__
-
-#include <e32debug.h>
-
-class TTruncateOverflowHandler16 : public TDes16Overflow
- {
- public:
- virtual void Overflow( TDes16& aDes );
- };
-
-inline void TTruncateOverflowHandler16::Overflow( TDes16& aDes)
- {
- _LIT(KErrOverflowMsg,"Descriptor Overflow, hence value truncated");
- if( aDes.MaxLength() >= KErrOverflowMsg().Length() + aDes.Length() )
- aDes.Append(KErrOverflowMsg);
- }
-
-class TTruncateOverflowHandler8 : public TDes8Overflow
- {
- public:
- virtual void Overflow( TDes8& aDes );
- };
-
-inline void TTruncateOverflowHandler8::Overflow( TDes8& aDes)
- {
- _LIT(KErrOverflowMsg,"Descriptor Overflow, hence value truncated");
- if( aDes.MaxLength() >= KErrOverflowMsg().Length() + aDes.Length() )
- aDes.Append(KErrOverflowMsg);
- }
-
-namespace DSD
-{
-
-#ifdef _DEBUG
-
-#ifdef _OMXIL_SYMBIANLOADER_DEBUG_TRACING_ON
-
-#define DEBUG_PRINTF(a) {DSD::DebugPrintf(__LINE__, __FILE__, a);}
-#define DEBUG_PRINTF2(a, b) {DSD::DebugPrintf(__LINE__, __FILE__, a, b);}
-#define DEBUG_PRINTF3(a, b, c) {DSD::DebugPrintf(__LINE__, __FILE__, a, b, c);}
-#define DEBUG_PRINTF4(a, b, c, d) {DSD::DebugPrintf(__LINE__, __FILE__, a, b, c, d);}
-#define DEBUG_PRINTF5(a, b, c, d, e) {DSD::DebugPrintf(__LINE__, __FILE__, a, b, c, d, e);}
-
-#define DEBUG_CODE_SECTION(a) TRAP_IGNORE({ a; })
-
-// UTF-8 overload of the DebufPrintf method. Should be used by default,
-// since it's cheaper both in CPU cycles and stack space.
-
-inline void DebugPrintf(TInt aLine, char* aFile, TRefByValue<const TDesC8> aFormat, ...)
- {
- TTruncateOverflowHandler8 overflowHandler8;
- VA_LIST list;
- VA_START(list, aFormat);
-
- TTime now;
- now.HomeTime();
-
- TBuf8<1024> buffer;
- _LIT8(KSwiLogPrefix, "[symloader] ");
- _LIT8(KSwiLineFileFormat, "TID[%d] : [%s:%d] -- ");
- buffer.Append(KSwiLogPrefix);
- RThread thread;
- TUint threadId = thread.Id();
- thread.Close();
- RProcess proc;
- TFileName fName = proc.FileName();
- proc.Close();
- buffer.AppendFormat(KSwiLineFileFormat, threadId, aFile, aLine);
- buffer.AppendFormatList(aFormat, list ,&overflowHandler8 );
- buffer.Append(_L8("\r\n"));
-
- RDebug::RawPrint(buffer);
-
- VA_END(list);
- }
-
-// Unicode DebufPrintf overload
-
-inline void DebugPrintf(TInt aLine, char* aFile, TRefByValue<const TDesC16> aFormat, ...)
- {
- TTruncateOverflowHandler16 overflowHandler16;
- VA_LIST list;
- VA_START(list, aFormat);
-
- TTime now;
- now.HomeTime();
-
- TBuf8<256> header;
- _LIT8(KSwiLogPrefix, "[symloader] ");
- _LIT8(KSwiLineFileFormat, "%Ld Line: % 5d, File: %s -- ");
- header.Append(KSwiLogPrefix);
- header.AppendFormat(KSwiLineFileFormat, now.Int64(), aLine, aFile);
-
- TBuf<1024> buffer;
- buffer.Copy(header);
- buffer.AppendFormatList(aFormat, list ,&overflowHandler16);
- buffer.Append(_L("\r\n"));
-
- RDebug::RawPrint(buffer);
-
- VA_END(list);
- }
-#else
-
-#define DEBUG_PRINTF(a)
-#define DEBUG_PRINTF2(a, b)
-#define DEBUG_PRINTF3(a, b, c)
-#define DEBUG_PRINTF4(a, b, c, d)
-#define DEBUG_PRINTF5(a, b, c, d, e)
-
-#define DEBUG_CODE_SECTION(a)
-
-#endif
-
-#else
-
-#define DEBUG_PRINTF(a)
-#define DEBUG_PRINTF2(a, b)
-#define DEBUG_PRINTF3(a, b, c)
-#define DEBUG_PRINTF4(a, b, c, d)
-#define DEBUG_PRINTF5(a, b, c, d, e)
-
-#define DEBUG_CODE_SECTION(a)
-
-#endif
-
-
-} // namespace DSD
-
-#endif // __SWI_LOG_H__
--- a/omxil/omxilcore/src/loader/omxilsymbiancomponentif.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include <openmax/il/loader/omxilsymbiancomponentif.h>
-
-/**
-Constructor of this interface.
-*/
-COmxILSymbianComponentIf::COmxILSymbianComponentIf()
- {
- }
-
-/**
-Static method to create this interface.
-The actual OMX_COMPONENTTYPE structure should be allocated and populated as part
-of the construction of this interface.
-
-@return A pointer to the newly constructed COmxILSymbianComponentIf.
-
-@internalTechnology
-*/
-COmxILSymbianComponentIf* COmxILSymbianComponentIf::NewL()
- {
- COmxILSymbianComponentIf* self = new (ELeave) COmxILSymbianComponentIf;
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
-
- return self;
- }
-
-/**
-Constructs and populates the OMX_COMPONENTTYPE structure encapsulated within this interface.
-*/
-void COmxILSymbianComponentIf::ConstructL()
- {
- ipHandle = new(ELeave) OMX_COMPONENTTYPE;
- OMX_ERRORTYPE error = OMX_ErrorInsufficientResources;
-
- error = ::OMX_ComponentInit(ipHandle);
- if ( OMX_ErrorNone != error )
- {
- if( error == OMX_ErrorInsufficientResources )
- {
- User::Leave(KErrNoMemory);
- }
- else
- {
- User::Leave(KErrGeneral);
- }
- }
- }
-
-/**
-Destructor of this interface.
-Deletes the component's structure.
-
-@internalTechnology
-*/
-COmxILSymbianComponentIf::~COmxILSymbianComponentIf()
- {
- delete ipHandle;
- }
-
-
-/**
-Gets the valid handle of the already populated OMX_HANDLETYPE structure.
-
-@return The component's handle
-*/
-OMX_HANDLETYPE COmxILSymbianComponentIf::Handle()
- {
- return ipHandle;
- }
--- a/omxil/omxilcore/src/loader/omxilsymbiancomponentloader.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,443 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include <ecom/ecom.h>
-#include <ecom/implementationproxy.h>
-#include "omxilsymbiancomponentloader.h"
-#include "../core/omxiluids.hrh"
-#include <openmax/il/core/omxilloaderif.h>
-#include <openmax/il/khronos/v1_x/OMX_Core.h>
-#include <openmax/il/khronos/v1_x/OMX_Component.h>
-#include <string.h>
-#include <delimitedparser8.h>
-#include <openmax/il/core/omxilloaderif.hrh>
-#include <openmax/il/loader/omxilcomponentif.hrh>
-#include "log.h"
-
-OMX_ERRORTYPE OmxInitializeComponentLoader(OMX_LOADERTYPE *loader);
-OMX_ERRORTYPE OmxUnInitializeComponentLoader(OMX_LOADERTYPE *loader);
-OMX_ERRORTYPE OmxLoadComponent( OMX_LOADERTYPE *loader,
- OMX_OUT OMX_HANDLETYPE* pHandle,
- OMX_IN OMX_STRING cComponentName,
- OMX_IN OMX_PTR pAppData,
- OMX_IN OMX_CALLBACKTYPE* pCallBacks);
-OMX_ERRORTYPE OmxUnloadComponent( OMX_LOADERTYPE *loader,
- OMX_HANDLETYPE hComponent);
-OMX_ERRORTYPE OmxComponentNameEnum( OMX_LOADERTYPE *loader,
- OMX_OUT OMX_STRING cComponentName,
- OMX_IN OMX_U32 nNameLength,
- OMX_IN OMX_U32 nIndex);
-OMX_ERRORTYPE OmxGetRolesOfComponent( OMX_LOADERTYPE *loader,
- OMX_IN OMX_STRING compName,
- OMX_INOUT OMX_U32 *pNumRoles,
- OMX_OUT OMX_U8 **roles);
-OMX_ERRORTYPE OmxGetComponentsOfRole( OMX_LOADERTYPE *loader,
- OMX_IN OMX_STRING role,
- OMX_INOUT OMX_U32 *pNumComps,
- OMX_INOUT OMX_U8 **compNames);
-
-
-
-OMX_ERRORTYPE OmxInitializeComponentLoader(OMX_LOADERTYPE *loader)
- {
- return ((CSymbianOmxComponentLoader*)((OMX_LOADERTYPE*)loader)->pLoaderPrivate)->InitializeComponentLoader();
- }
-
-OMX_ERRORTYPE OmxUnInitializeComponentLoader(OMX_LOADERTYPE *loader)
- {
- return ((CSymbianOmxComponentLoader*)((OMX_LOADERTYPE*)loader)->pLoaderPrivate)->UnInitializeComponentLoader(loader);
- }
-
-OMX_ERRORTYPE OmxLoadComponent( OMX_LOADERTYPE *loader,
- OMX_OUT OMX_HANDLETYPE* pHandle,
- OMX_IN OMX_STRING cComponentName,
- OMX_IN OMX_PTR pAppData,
- OMX_IN OMX_CALLBACKTYPE* pCallBacks)
- {
- return ((CSymbianOmxComponentLoader*)((OMX_LOADERTYPE*)loader)->pLoaderPrivate)->LoadComponent(pHandle,cComponentName,pAppData,pCallBacks);
- }
-
-OMX_ERRORTYPE OmxUnloadComponent( OMX_LOADERTYPE *loader,
- OMX_HANDLETYPE hComponent)
- {
- return ((CSymbianOmxComponentLoader*)((OMX_LOADERTYPE*)loader)->pLoaderPrivate)->UnloadComponent(hComponent);
- }
-
-OMX_ERRORTYPE OmxComponentNameEnum( OMX_LOADERTYPE *loader,
- OMX_OUT OMX_STRING cComponentName,
- OMX_IN OMX_U32 nNameLength,
- OMX_IN OMX_U32 nIndex)
- {
- return ((CSymbianOmxComponentLoader*)((OMX_LOADERTYPE*)loader)->pLoaderPrivate)->ComponentNameEnum(cComponentName,nNameLength,nIndex);
- }
-
-OMX_ERRORTYPE OmxGetRolesOfComponent( OMX_LOADERTYPE *loader,
- OMX_IN OMX_STRING compName,
- OMX_INOUT OMX_U32 *pNumRoles,
- OMX_OUT OMX_U8 **roles)
- {
- return ((CSymbianOmxComponentLoader*)((OMX_LOADERTYPE*)loader)->pLoaderPrivate)->GetRolesOfComponent(compName,pNumRoles,roles);
- }
-
-OMX_ERRORTYPE OmxGetComponentsOfRole( OMX_LOADERTYPE *loader,
- OMX_IN OMX_STRING role,
- OMX_INOUT OMX_U32 *pNumComps,
- OMX_INOUT OMX_U8 **compNames)
- {
- return ((CSymbianOmxComponentLoader*)((OMX_LOADERTYPE*)loader)->pLoaderPrivate)->GetComponentsOfRole(role,pNumComps,compNames);
- }
-
-OMX_ERRORTYPE CSymbianOmxComponentLoader::InitializeComponentLoader()
- {
- RImplInfoPtrArray ecomArray;
- TRAPD(error,REComSession::ListImplementationsL(TUid::Uid(KUidOmxILSymbianComponentIf),ecomArray));
- if( error != KErrNone )
- {
- ecomArray.ResetAndDestroy();
- return OMX_ErrorInsufficientResources;
- }
- TInt index;
- CImplementationInformation* info;
-
- TOmxComponentInfo component;
-
- iComponentNameList.Reset();
-
- const TInt KEcomArrayCount = ecomArray.Count();
- for( index=0; index<KEcomArrayCount && error == KErrNone; ++index )
- {
- info = ecomArray[index];
- component.iUid = info->ImplementationUid();
- if( info->DisplayName().Length() >= OMX_MAX_STRINGNAME_SIZE ||
- info->DataType().Length() >= OMX_MAX_ROLESBUFFER_SIZE )
- {
- error = KErrBadName;
- break;
- }
-
- component.iComponentName.Copy(info->DisplayName());
- component.iRoles.Copy(info->DataType());
-
- error = iComponentNameList.Append(component);
- if(error)
- {
- break;
- }
- }
- ecomArray.ResetAndDestroy();
- if( error != KErrNone )
- {
- if( error == KErrNoMemory )
- {
- return OMX_ErrorInsufficientResources;
- }
-
- return OMX_ErrorUndefined;
- }
- return OMX_ErrorNone;
- }
-
-OMX_ERRORTYPE CSymbianOmxComponentLoader::UnInitializeComponentLoader(OMX_LOADERTYPE * /*loader*/)
- {
- iComponentNameList.Reset();
- iComponents.ResetAndDestroy();
- return OMX_ErrorNone;
- }
-
-OMX_ERRORTYPE CSymbianOmxComponentLoader::LoadComponent( OMX_HANDLETYPE* pHandle,
- OMX_STRING cComponentName,
- OMX_PTR pAppData,
- OMX_CALLBACKTYPE* pCallBacks)
- {
- TInt index;
- TPtrC8 lComponentName(reinterpret_cast<TUint8 *>(cComponentName), strlen(cComponentName));
- COmxILComponentIf* component = NULL;
- OMX_ERRORTYPE error = OMX_ErrorComponentNotFound;
-
- const TInt KComponentNameListCount = iComponentNameList.Count();
- for( index = 0; index < KComponentNameListCount; ++index )
- {
- TOmxComponentInfo& comp = iComponentNameList[index];
- DEBUG_PRINTF3(_L8("CSymbianOmxComponentLoader::LoadComponent : comp [%index] [%S]"), index, &comp.iComponentName);
- if( comp.iComponentName.CompareF(lComponentName) == 0 )
- {
- TRAPD(err, component = COmxILComponentIf::CreateImplementationL(iComponentNameList[index].iUid));
- if( err != KErrNone )
- {
- if ( err == KErrNoMemory )
- {
- return OMX_ErrorInsufficientResources;
- }
- else
- {
- return OMX_ErrorInvalidComponent;
- }
- }
-
- *pHandle = component->Handle();
- if( !*pHandle )
- {
- return OMX_ErrorInvalidComponent;
- }
-
- error = (static_cast<OMX_COMPONENTTYPE*>(*pHandle))->SetCallbacks(*pHandle, pCallBacks, pAppData);
-
- if(error != OMX_ErrorNone)
- {
- (static_cast<OMX_COMPONENTTYPE*>(*pHandle))->ComponentDeInit(*pHandle);
- delete component;
- return error;
- }
- if( iComponents.Append(component) != KErrNone )
- {
- (static_cast<OMX_COMPONENTTYPE*>(*pHandle))->ComponentDeInit(*pHandle);
- delete component;
- return OMX_ErrorInsufficientResources;
- }
- return error;
- }
- }
- return error;
- }
-
-OMX_ERRORTYPE CSymbianOmxComponentLoader::UnloadComponent( OMX_HANDLETYPE hComponent)
- {
- TInt index;
- COmxILComponentIf* component;
-
- const TInt KComponentsCount = iComponents.Count();
- for( index = 0; index < KComponentsCount; ++index )
- {
- component = iComponents[index];
- if( component->Handle() == hComponent )
- {
- (static_cast<OMX_COMPONENTTYPE*>(hComponent))->ComponentDeInit( hComponent );
- delete component;
- iComponents.Remove(index);
- return OMX_ErrorNone;
- }
- }
- return OMX_ErrorComponentNotFound;
- }
-
-OMX_ERRORTYPE CSymbianOmxComponentLoader::ComponentNameEnum( OMX_STRING aComponentName,
- OMX_U32 aNameLength,
- OMX_U32 aIndex)
- {
- ASSERT(aComponentName);
-
- const TInt KIndexForPopulateList = 0;
- if ( aIndex == KIndexForPopulateList )
- {
- RImplInfoPtrArray ecomArray;
- TRAPD(error, REComSession::ListImplementationsL(TUid::Uid(KUidOmxILSymbianComponentIf), ecomArray));
- if (error != KErrNone)
- {
- return OMX_ErrorUndefined;
- }
- TInt index;
- iComponentNameList.Reset();
-
- const TInt KEcomArrayCount = ecomArray.Count();
- // Create Controller Implementation Information for each entry
- for (index=0; index<KEcomArrayCount; ++index)
- {
- CImplementationInformation& info = *(ecomArray[index]);
- TOmxComponentInfo component;
-
- component.iUid = info.ImplementationUid();
- if( info.DisplayName().Length() >= OMX_MAX_STRINGNAME_SIZE ||
- info.DataType().Length() >= OMX_MAX_ROLESBUFFER_SIZE )
- {
- error = KErrBadName;
- break;
- }
- component.iComponentName.Copy(info.DisplayName());
- component.iRoles.Copy(info.DataType());
- error = iComponentNameList.Append(component);
- if( error != KErrNone )
- {
- break;
- }
- }
- ecomArray.ResetAndDestroy();
- if( error != KErrNone )
- {
- return OMX_ErrorUndefined;
- }
- }
- if (aIndex<iComponentNameList.Count())
- {
- TOmxComponentInfo& comp = iComponentNameList[aIndex];
- TPtr8 ptr((TUint8*)aComponentName, 0, aNameLength);
- ptr.Copy(comp.iComponentName);
- ptr.PtrZ();
- }
- else
- {
- return OMX_ErrorNoMore;
- }
- return OMX_ErrorNone;
- }
-
-OMX_ERRORTYPE CSymbianOmxComponentLoader::GetRolesOfComponent( OMX_STRING compName,
- OMX_U32 *pNumRoles,
- OMX_U8 **roles)
- {
- TInt index, roleindex;
-
- ASSERT(pNumRoles);
- if( !compName )
- {
- return OMX_ErrorBadParameter;
- }
-
- TPtrC8 tComponentName(reinterpret_cast<TUint8 *>(compName), strlen(compName));
-
- OMX_ERRORTYPE error = OMX_ErrorInvalidComponentName;
- const TInt KComponentNameListCount = iComponentNameList.Count();
- for( index = 0, roleindex = 0; index < KComponentNameListCount; ++index )
- {
- if( iComponentNameList[index].iComponentName.Compare(tComponentName) == 0 )
- {
- char parser[OMX_MAX_ROLESBUFFER_SIZE], *p;
- size_t size;
- TInt i, j;
-
- size = iComponentNameList[index].iRoles.Length();
-
- strncpy(parser,
- reinterpret_cast<char*>(const_cast<unsigned char*>(iComponentNameList[index].iRoles.Ptr())),
- size);
- parser[size]=0;
-
- for( i=0, j=0, p=parser; i<size; ++i, ++j, ++p )
- {
- if( *p == ',' )
- {
- if( roles && (roleindex < *pNumRoles) )
- {
- roles[roleindex][j] = 0;
- }
- if( i < size )
- {
- ++roleindex;
- j=-1;
- }
- }
- else
- {
- if( roles && (roleindex < *pNumRoles) )
- {
- roles[roleindex][j] = *p;
- }
- }
- }
- if( roles && (roleindex < *pNumRoles) )
- {
- roles[roleindex][j] = 0;
- }
- ++roleindex;
- error = OMX_ErrorNone;
- break;
- }
- }
- *pNumRoles = roleindex;
- return error;
- }
-
-OMX_ERRORTYPE CSymbianOmxComponentLoader::GetComponentsOfRole( OMX_STRING role,
- OMX_U32 *pNumComps,
- OMX_U8 **compNames)
- {
- TInt index, compindex;
- TPtrC8 lRole(reinterpret_cast<TUint8 *>(role), strlen(role));
-
- ASSERT(pNumComps);
-
- TInt KComponentNameListCount = iComponentNameList.Count();
- for( index = 0, compindex = 0; index < KComponentNameListCount; ++index )
- {
- if( iComponentNameList[index].iRoles.Find(lRole) != KErrNotFound )
- {
- if( compNames != NULL )
- {
- if( compNames[compindex]!= NULL )
- {
- strncpy((char*)compNames[compindex],(char*)iComponentNameList[index].iComponentName.Ptr(),iComponentNameList[index].iComponentName.Length());
- compNames[compindex][iComponentNameList[index].iComponentName.Size()]=0;
- }
- else
- {
- return OMX_ErrorBadParameter;
- }
- }
- ++compindex;
- }
- }
- *pNumComps = compindex;
- return OMX_ErrorNone;
- }
-
-OMX_HANDLETYPE CSymbianOmxComponentLoader::Handle()
- {
- return iHandle;
- }
-
-CSymbianOmxComponentLoader::CSymbianOmxComponentLoader()
- {
- }
-
-CSymbianOmxComponentLoader::~CSymbianOmxComponentLoader()
- {
- delete iHandle;
- }
-
-void CSymbianOmxComponentLoader::ConstructL()
- {
- iHandle = new(ELeave) OMX_LOADERTYPE;
-
- iHandle->InitializeComponentLoader = &::OmxInitializeComponentLoader;
- iHandle->UnInitializeComponentLoader = &::OmxUnInitializeComponentLoader;
- iHandle->LoadComponent = &::OmxLoadComponent;
- iHandle->UnloadComponent = &::OmxUnloadComponent;
- iHandle->ComponentNameEnum = &::OmxComponentNameEnum;
- iHandle->GetRolesOfComponent = &::OmxGetRolesOfComponent;
- iHandle->GetComponentsOfRole = &::OmxGetComponentsOfRole;
-
- iHandle->pLoaderPrivate = this;
- }
-
-CSymbianOmxComponentLoader* CSymbianOmxComponentLoader::NewL()
- {
- CSymbianOmxComponentLoader* self = new(ELeave) CSymbianOmxComponentLoader;
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop();
-
- return self;
- }
-
-// ECOM
-const TImplementationProxy ImplementationTable[] =
- {
- IMPLEMENTATION_PROXY_ENTRY(KUidOmxILSymbianComponentLoader, CSymbianOmxComponentLoader::NewL),
- };
-
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
- {
- aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
- return ImplementationTable;
- }
--- a/omxil/omxilcore/src/loader/omxilsymbiancomponentloader.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef OMXILSYMBIANCOMPONENTLOADER_H
-#define OMXILSYMBIANCOMPONENTLOADER_H
-
-#include <e32base.h>
-#include <e32des8.h>
-#include <openmax/il/loader/OMX_Loader.h>
-#include <openmax/il/loader/omxilcomponentif.h>
-#include <openmax/il/core/omxilloaderif.h>
-
-class CSymbianOmxComponentLoader : private COmxComponentLoaderIf
- {
-public:
- class TOmxComponentInfo
- {
- public:
- TOmxComponentInfo();
- public:
- TUid iUid;
- TBuf8<OMX_MAX_STRINGNAME_SIZE> iComponentName;
- TBuf8<OMX_MAX_ROLESBUFFER_SIZE> iRoles;
- };
-
-public:
- OMX_HANDLETYPE Handle();
-
- static CSymbianOmxComponentLoader* NewL();
-
- ~CSymbianOmxComponentLoader();
-
- OMX_ERRORTYPE InitializeComponentLoader();
- OMX_ERRORTYPE UnInitializeComponentLoader(OMX_LOADERTYPE* loader);
- OMX_ERRORTYPE LoadComponent( OMX_HANDLETYPE* pHandle,
- const OMX_STRING cComponentName,
- OMX_PTR pAppData,
- OMX_CALLBACKTYPE* pCallBacks );
- OMX_ERRORTYPE UnloadComponent( OMX_HANDLETYPE hComponent );
- OMX_ERRORTYPE ComponentNameEnum( OMX_STRING cComponentName,
- OMX_U32 nNameLength,
- const OMX_U32 nIndex );
- OMX_ERRORTYPE GetRolesOfComponent( const OMX_STRING compName,
- OMX_U32* pNumRoles,
- OMX_U8** roles );
- OMX_ERRORTYPE GetComponentsOfRole( const OMX_STRING role,
- OMX_U32* pNumComps,
- OMX_U8** compNames );
-
-private:
- CSymbianOmxComponentLoader();
- void ConstructL();
-
-private:
- OMX_LOADERTYPE* iHandle;
-
- RArray<TOmxComponentInfo> iComponentNameList;
- RPointerArray<COmxILComponentIf> iComponents;
- };
-
-inline CSymbianOmxComponentLoader::TOmxComponentInfo::TOmxComponentInfo():
- iUid(TUid::Uid(0)),iComponentName(0),iRoles(0)
- {
- }
-
-
-#endif /*OMXILSYMBIANCOMPONENTLOADER_H*/
--- a/omxil/omxilcore/src/loader/omxilsymbianloader.rss Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-// Copyright (c) 2008-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:
-// omxilloader.rss
-//
-//
-
-#include <ecom/registryinfo.rh>
-#include "../core/omxiluids.hrh"
-#include <openmax/il/core/omxilloaderif.hrh>
-
-RESOURCE REGISTRY_INFO theInfo
- {
- dll_uid = KUidOmxILLoaderDll;
- interfaces =
- {
- INTERFACE_INFO
- {
- interface_uid = KUidOmxILLoaderInterface;
- implementations =
- {
- IMPLEMENTATION_INFO
- {
- implementation_uid = KUidOmxILSymbianComponentLoader;
- version_no = 1;
- display_name = "";
- default_data = "" ;
- opaque_data = "";
- }
- };
- }
- };
- }
--- a/omxil/omxilcore/src/omxilcoreclient/log.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,145 +0,0 @@
-// Copyright (c) 2004-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:
-//
-
-#ifndef __SWI_LOG_H__
-#define __SWI_LOG_H__
-
-#include <e32debug.h>
-
-namespace DSD
-{
-
-class TTruncateOverflowHandler16 : public TDes16Overflow
- {
- public:
- virtual void Overflow( TDes16& aDes );
- };
-
-inline void TTruncateOverflowHandler16::Overflow( TDes16& aDes)
- {
- _LIT(KErrOverflowMsg,"Descriptor Overflow, hence value truncated");
- if( aDes.MaxLength() >= KErrOverflowMsg().Length() + aDes.Length() )
- aDes.Append(KErrOverflowMsg);
- }
-
-class TTruncateOverflowHandler8 : public TDes8Overflow
- {
- public:
- virtual void Overflow( TDes8& aDes );
- };
-
-inline void TTruncateOverflowHandler8::Overflow( TDes8& aDes)
- {
- _LIT(KErrOverflowMsg,"Descriptor Overflow, hence value truncated");
- if( aDes.MaxLength() >= KErrOverflowMsg().Length() + aDes.Length() )
- aDes.Append(KErrOverflowMsg);
- }
-
-#ifdef _DEBUG
-
-#ifdef _OMXIL_CORECLIENT_DEBUG_TRACING_ON
-
-#define DEBUG_PRINTF(a) {DSD::DebugPrintf(__LINE__, __FILE__, a);}
-#define DEBUG_PRINTF2(a, b) {DSD::DebugPrintf(__LINE__, __FILE__, a, b);}
-#define DEBUG_PRINTF3(a, b, c) {DSD::DebugPrintf(__LINE__, __FILE__, a, b, c);}
-#define DEBUG_PRINTF4(a, b, c, d) {DSD::DebugPrintf(__LINE__, __FILE__, a, b, c, d);}
-#define DEBUG_PRINTF5(a, b, c, d, e) {DSD::DebugPrintf(__LINE__, __FILE__, a, b, c, d, e);}
-
-#define DEBUG_CODE_SECTION(a) TRAP_IGNORE({ a; })
-
-// UTF-8 overload of the DebufPrintf method. Should be used by default,
-// since it's cheaper both in CPU cycles and stack space.
-
-inline void DebugPrintf(TInt aLine, char* aFile, TRefByValue<const TDesC8> aFormat, ...)
- {
- TTruncateOverflowHandler8 overflowHandler8;
- VA_LIST list;
- VA_START(list, aFormat);
-
- TTime now;
- now.HomeTime();
-
- TBuf8<1024> buffer;
- _LIT8(KSwiLogPrefix, "[corecl] ");
- _LIT8(KSwiLineFileFormat, "TID[%d] : [%s:%d] -- ");
- buffer.Append(KSwiLogPrefix);
- RThread thread;
- TUint threadId = thread.Id();
- thread.Close();
- RProcess proc;
- TFileName fName = proc.FileName();
- proc.Close();
- buffer.AppendFormat(KSwiLineFileFormat, threadId, aFile, aLine);
- buffer.AppendFormatList(aFormat, list ,&overflowHandler8 );
- buffer.Append(_L8("\r\n"));
-
- RDebug::RawPrint(buffer);
-
- VA_END(list);
- }
-
-// Unicode DebufPrintf overload
-
-inline void DebugPrintf(TInt aLine, char* aFile, TRefByValue<const TDesC16> aFormat, ...)
- {
- TTruncateOverflowHandler16 overflowHandler16;
- VA_LIST list;
- VA_START(list, aFormat);
-
- TTime now;
- now.HomeTime();
-
- TBuf8<256> header;
- _LIT8(KSwiLogPrefix, "[corecl] ");
- _LIT8(KSwiLineFileFormat, "%Ld Line: % 5d, File: %s -- ");
- header.Append(KSwiLogPrefix);
- header.AppendFormat(KSwiLineFileFormat, now.Int64(), aLine, aFile);
-
- TBuf<1024> buffer;
- buffer.Copy(header);
- buffer.AppendFormatList(aFormat, list ,&overflowHandler16);
- buffer.Append(_L("\r\n"));
-
- RDebug::RawPrint(buffer);
-
- VA_END(list);
- }
-#else
-
-#define DEBUG_PRINTF(a)
-#define DEBUG_PRINTF2(a, b)
-#define DEBUG_PRINTF3(a, b, c)
-#define DEBUG_PRINTF4(a, b, c, d)
-#define DEBUG_PRINTF5(a, b, c, d, e)
-
-#define DEBUG_CODE_SECTION(a)
-
-#endif
-
-#else
-
-#define DEBUG_PRINTF(a)
-#define DEBUG_PRINTF2(a, b)
-#define DEBUG_PRINTF3(a, b, c)
-#define DEBUG_PRINTF4(a, b, c, d)
-#define DEBUG_PRINTF5(a, b, c, d, e)
-
-#define DEBUG_CODE_SECTION(a)
-
-#endif
-
-} // namespace DSD
-
-#endif // __SWI_LOG_H__
--- a/omxil/omxilcore/src/omxilcoreclient/omxilcoreclientsession.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1212 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include <openmax/il/khronos/v1_x/OMX_Core.h>
-
-#include "log.h"
-#include "omxilcoreclientsession.h"
-#include "omxilcoreclientserver.h"
-#include "omxilcore.h"
-
-#ifdef __WINSCW__
-#include <pls.h>
-#include "../core/omxiluids.hrh"
-#endif
-
-_LIT(KOmxILCoreClientPanic, "OmxILCoreClient Panic");
-const TInt KOpenSeverSessionMaxRetries = 3;
-
-namespace
- {
-/*
- This class is used to provide a global cache of a reference to the COmxILCore
- object. A mutex is provided to serialize the access to the IL Core
- reference. A global object of this class is intended to be used only through
- the IL Core Client library which in turn is used by any thread in the process
- that needs to access the OpenMAX IL Core services.
-
-*/
- class XGlobalILCoreCache
- {
- public:
- inline XGlobalILCoreCache();
- inline ~XGlobalILCoreCache();
-
- inline static XGlobalILCoreCache* IlCoreCache();
- inline void SetILCore(COmxILCore* aILCore);
- inline COmxILCore* ILCore();
-
- inline RServer2 &ServerHandle();
- inline TInt SetServerHandle(TUint32 aServerHandle);
-
- inline void Lock();
- inline void Unlock();
-
- private:
-
- RMutex iMutex;
- TInt iError;
- COmxILCore* iILCore;
- RServer2 iServerHandle;
- };
-
-#ifndef __WINSCW__
-XGlobalILCoreCache gGlobalILCoreCache;
-#endif
-
- } // unnamed namespace
-
-XGlobalILCoreCache* XGlobalILCoreCache::IlCoreCache()
- {
-#ifdef __WINSCW__
- const TUid KUidOmxILCoreClientDllUid = { KUidOmxILCoreClientDll };
- XGlobalILCoreCache* pGlobalIlCoreCache = 0;
- if (NULL == (pGlobalIlCoreCache =
- Pls<XGlobalILCoreCache>(KUidOmxILCoreClientDllUid, NULL)))
- {
- return NULL;
- }
-
- XGlobalILCoreCache& gGlobalILCoreCache = *pGlobalIlCoreCache;
-#endif
- return (gGlobalILCoreCache.iError == KErrNone) ? &gGlobalILCoreCache : NULL;
- }
-
-inline XGlobalILCoreCache::XGlobalILCoreCache()
- : iMutex(), iError(KErrNone), iILCore(NULL), iServerHandle()
- {
- DEBUG_PRINTF(_L8("XGlobalILCoreCache::XGlobalILCoreCache"));
- iError = iMutex.CreateLocal(EOwnerProcess);
- }
-
-inline XGlobalILCoreCache::~XGlobalILCoreCache()
- {
- DEBUG_PRINTF(_L8("XGlobalILCoreCache::~XGlobalILCoreCache"));
- iMutex.Close();
- iServerHandle.Close();
- }
-
-inline COmxILCore* XGlobalILCoreCache::ILCore()
- {
- __ASSERT_ALWAYS(iError == KErrNone,
- User::Panic(KOmxILCoreClientPanic, KErrNotReady));
-
- return iILCore;
- }
-
-inline void XGlobalILCoreCache::SetILCore(COmxILCore* aILCore)
- {
- __ASSERT_ALWAYS(iError == KErrNone,
- User::Panic(KOmxILCoreClientPanic, KErrNotReady));
- __ASSERT_ALWAYS(iMutex.IsHeld(),
- User::Panic(KOmxILCoreClientPanic, KErrNotReady));
-
- iILCore = aILCore;
- }
-
-inline RServer2 &XGlobalILCoreCache::ServerHandle()
- {
- return iServerHandle;
- }
-
-inline TInt XGlobalILCoreCache::SetServerHandle(TUint32 aServerHandle)
- {
- iServerHandle.Close();
- iServerHandle.SetHandle(aServerHandle);
- return KErrNone;
- }
-
-inline void XGlobalILCoreCache::Lock()
- {
- __ASSERT_ALWAYS(iError == KErrNone,
- User::Panic(KOmxILCoreClientPanic, KErrNotReady));
- iMutex.Wait();
- }
-
-inline void XGlobalILCoreCache::Unlock()
- {
- __ASSERT_ALWAYS(iError == KErrNone,
- User::Panic(KOmxILCoreClientPanic, KErrNotReady));
- __ASSERT_ALWAYS(iMutex.IsHeld(),
- User::Panic(KOmxILCoreClientPanic, KErrNotReady));
- iMutex.Signal();
- }
-
-
-ROmxILCoreClientSession::ROmxILCoreClientSession()
- {
- DEBUG_PRINTF(_L8("ROmxILCoreClientSession::ROmxILCoreClientSession"));
- }
-
-/**
- *
- */
-ROmxILCoreClientSession::~ROmxILCoreClientSession()
- {
- DEBUG_PRINTF(_L8("ROmxILCoreClientSession::~ROmxILCoreClientSession"));
-
- }
-
-/**
- Starts the separate IL Core server thread if not already started
-
- @return KErrAlreadyExists if the IL Core server has already been
- started. System-wide error if the creation of the session with the IL Core
- server did not succeed.
-*/
-TInt ROmxILCoreClientSession::Connect()
- {
- DEBUG_PRINTF(_L8("ROmxILCoreClientSession::Connect"));
-
- TInt err = KErrNotFound;
- XGlobalILCoreCache *glbCache = XGlobalILCoreCache::IlCoreCache();
- if(!glbCache)
- {
- return KErrGeneral;
- }
- if(glbCache->ServerHandle().Handle() != KNullHandle)
- {
- err = CreateSession(glbCache->ServerHandle(), TVersion(1,0,0));
- }
-
- if(err == KErrNotFound)
- {
- // Server not running
- TUint32 serverHandle = KNullHandle;
- if (KErrNone != (err = StartOmxILCoreServer(&serverHandle)))
- {
- return err;
- }
- err = glbCache->SetServerHandle(serverHandle);
- }
- else
- {
- // The server exists already... close the session and return...
- RHandleBase::Close();
- return KErrAlreadyExists;
- }
-
- if(glbCache->ServerHandle().Handle() == KNullHandle)
- {
- return KErrNotFound;
- }
-
- // Now, create the session...
- if (KErrNone == err)
- {
- err = CreateSession(glbCache->ServerHandle(), TVersion(1,0,0));
- }
-
- return err;
-
- }
-
-/**
- Opens a session to the IL Core server thread that should already be started
-
- @return KErrNone if successful, otherwise one of the other system-wide error
- codes
-*/
-TInt ROmxILCoreClientSession::Open()
- {
- DEBUG_PRINTF(_L8("ROmxILCoreClientSession::Open"));
-
- XGlobalILCoreCache *glbCache = XGlobalILCoreCache::IlCoreCache();
- if(glbCache->ServerHandle().Handle() == KNullHandle)
- {
- return KErrNotFound;
- }
- return CreateSession(glbCache->ServerHandle(), TVersion(1,0,0));
-
- }
-
-/**
- Closes the session to the IL Core server thread.
-*/
-void ROmxILCoreClientSession::Close()
- {
- DEBUG_PRINTF(_L8("ROmxILCoreClientSession::Close"));
-
- RHandleBase::Close();
-
- }
-
-/**
- Requests initialization of the OpenMAX IL Core loaders.
-
- @return OMX_ERRORTYPE
- */
-OMX_ERRORTYPE ROmxILCoreClientSession::ListLoaders()
- {
- DEBUG_PRINTF(_L8("ROmxILCoreClientSession::ListLoaders"));
-
- // Param 0
- OMX_ERRORTYPE err = OMX_ErrorNone;
- TPckgBuf<OMX_ERRORTYPE> pckg0;
-
- TIpcArgs arg(&pckg0);
- SendReceive(EOmxILCoreListLoaders, arg);
-
- // Extract the output values returned from the server.
- err = pckg0();
- return err;
-
- }
-
-/**
- Requests de-initialization of the OpenMAX IL core. It closes the session to
- the IL Core server.
-
- @return OMX_ERRORTYPE
- */
-OMX_ERRORTYPE ROmxILCoreClientSession::DeinitAndClose()
- {
- DEBUG_PRINTF(_L8("ROmxILCoreClientSession::DeinitAndClose"));
-
- // Param 0
- OMX_ERRORTYPE err = OMX_ErrorNone;
- TPckgBuf<OMX_ERRORTYPE> pckg0;
-
- // Param 1
- TUint64 serverThreadId = 0;
- TPckgBuf<TUint64> pckg1;
-
- TIpcArgs arg(&pckg0, &pckg1);
- SendReceive(EOmxILCoreDeinit, arg);
-
- // Extract the output values returned from the server.
- err = pckg0();
- serverThreadId = pckg1();
-
- RHandleBase::Close();
-
- // Release server handle so it will exit cleanly.
- XGlobalILCoreCache* pGlobalILCoreCache = XGlobalILCoreCache::IlCoreCache();
-
- __ASSERT_ALWAYS(pGlobalILCoreCache != NULL,
- User::Panic(KOmxILCoreClientPanic, KErrNotReady));
-
- pGlobalILCoreCache->SetServerHandle(KNullHandle);
-
- RThread serverThread;
- TInt ret = serverThread.Open(TThreadId(serverThreadId));
-
- if ((KErrNone == ret) && (serverThread.Handle() != KNullHandle))
- {
- DEBUG_PRINTF2(_L8("ROmxILCoreClientSession::DeinitAndClose : serverThread.Handle =[%d]"), serverThread.Handle());
- TBool logoffFailed = EFalse;
- TRequestStatus logoffStatus;
- serverThread.Logon(logoffStatus);
-
- if (logoffStatus == KErrNoMemory)
- {
- logoffFailed = ETrue;
- }
-
- if (!logoffFailed)
- {
- if (logoffStatus == KRequestPending)
- {
- User::WaitForRequest(logoffStatus);
- }
- else
- {
- serverThread.LogonCancel(logoffStatus);
- User::WaitForRequest(logoffStatus);
- }
- }
- else
- {
- serverThread.Kill(KErrDied);
- }
- }
-
- serverThread.Close();
-
- return err;
-
- }
-
-
-/**
- Obtains the IL Core pointer stored in the IL Core thread.
-
- @return COmxILCore&
-
- */
-COmxILCore& ROmxILCoreClientSession::ILCore()
- {
- DEBUG_PRINTF(_L8("ROmxILCoreClientSession::ILCore"));
-
- // Param 0
- TPckgBuf<OMX_ERRORTYPE> pckg0;
-
- TPckgBuf<COmxILCore*> pckg1;
-
- TIpcArgs arg(&pckg0, &pckg1);
- SendReceive(EOmxILCoreGetILCore, arg);
-
- // Extract the output values returned from the server.
- // OMX error is not relevant...
- __ASSERT_ALWAYS(pckg1() != NULL,
- User::Panic(KOmxILCoreClientPanic, KErrNotReady));
-
- return *pckg1();
-
- }
-
-
-/**
- Requests OMX_ComponentNameEnum to the OpenMAX IL core.
-
- @return OMX_ERRORTYPE
-
- */
-OMX_ERRORTYPE ROmxILCoreClientSession::ComponentNameEnum(
- OMX_STRING cComponentName,
- OMX_U32 nNameLength,
- OMX_U32 nIndex)
- {
- DEBUG_PRINTF(_L8("ROmxILCoreClientSession::ComponentNameEnum"));
-
- // Param 0
- OMX_ERRORTYPE err = OMX_ErrorNone;
- TPckgBuf<OMX_ERRORTYPE> pckg0;
-
- // Param 1
- TComponentNameEnum arg1;
- arg1.cComponentName = cComponentName;
- arg1.nNameLength = nNameLength;
- arg1.nIndex = nIndex;
-
- TIpcArgs arg(&pckg0, &arg1);
- SendReceive(EOmxILCoreComponentNameEnum, arg);
-
- // Extract the output values returned from the server.
- err = pckg0();
- return err;
-
- }
-
-/**
- Requests OMX_GetHandle to the OpenMAX IL core.
-
- @return OMX_ERRORTYPE
-
- */
-OMX_ERRORTYPE ROmxILCoreClientSession::GetHandle(
- OMX_HANDLETYPE* pHandle,
- OMX_STRING cComponentName,
- OMX_PTR pAppData,
- OMX_CALLBACKTYPE* pCallBacks)
- {
- DEBUG_PRINTF(_L8("ROmxILCoreClientSession::GetHandle"));
-
- // Param 0
- OMX_ERRORTYPE err = OMX_ErrorNone;
- TPckgBuf<OMX_ERRORTYPE> pckg0;
-
-
- // Param 1
- TGetHandle arg1;
- arg1.pHandle = pHandle;
- arg1.cComponentName = cComponentName;
- arg1.pAppData = pAppData;
- arg1.pCallBacks = pCallBacks;
-
- TIpcArgs arg(&pckg0, &arg1);
- SendReceive(EOmxILCoreGetHandle, arg);
-
- // Extract the output values returned from the server.
- err = pckg0();
- return err;
-
- }
-
-/**
- Requests OMX_FreeHandle to the OpenMAX IL core.
-
- @return OMX_ERRORTYPE
-
- */
-OMX_ERRORTYPE ROmxILCoreClientSession::FreeHandle(
- OMX_HANDLETYPE hComponent)
- {
- DEBUG_PRINTF(_L8("ROmxILCoreClientSession::FreeHandle"));
-
- // Param 0
- OMX_ERRORTYPE err = OMX_ErrorNone;
- TPckgBuf<OMX_ERRORTYPE> pckg0;
-
- TIpcArgs arg(&pckg0, hComponent);
- SendReceive(EOmxILCoreFreeHandle, arg);
-
- // Extract the output values returned from the server.
- err = pckg0();
- return err;
-
- }
-
-/**
- Requests OMX_SetupTunnel to the OpenMAX IL core.
-
- @return OMX_ERRORTYPE
-
- */
-OMX_ERRORTYPE ROmxILCoreClientSession::SetupTunnel(
- OMX_HANDLETYPE hOutput,
- OMX_U32 nPortOutput,
- OMX_HANDLETYPE hInput,
- OMX_U32 nPortInput)
- {
- DEBUG_PRINTF(_L8("ROmxILCoreClientSession::SetupTunnel"));
-
- // Param 0
- OMX_ERRORTYPE err = OMX_ErrorNone;
- TPckgBuf<OMX_ERRORTYPE> pckg0;
-
- TSetupTunnel arg1;
- arg1.hOutput = hOutput;
- arg1.nPortOutput = nPortOutput;
- arg1.hInput = hInput;
- arg1.nPortInput = nPortInput;
-
- TIpcArgs arg(&pckg0, &arg1);
- SendReceive(EOmxILCoreSetupTunnel, arg);
-
- // Extract the output values returned from the server.
- err = pckg0();
- return err;
-
- }
-
-/**
- Requests OMX_GetContentPipe to the OpenMAX IL core.
-
- @return OMX_ERRORTYPE
-
- */
-OMX_ERRORTYPE ROmxILCoreClientSession::GetContentPipe(
- OMX_HANDLETYPE* hPipe,
- OMX_STRING szURI)
- {
- DEBUG_PRINTF(_L8("ROmxILCoreClientSession::GetContentPipe"));
-
- // Param 0
- OMX_ERRORTYPE err = OMX_ErrorNone;
- TPckgBuf<OMX_ERRORTYPE> pckg0;
-
- // Param 1
- TGetContentPipe arg1;
- arg1.hPipe = hPipe;
- arg1.szURI = szURI;
-
- TIpcArgs arg(&pckg0, &arg1);
- SendReceive(EOmxILCoreGetContentPipe, arg);
-
- // Extract the output values returned from the server.
- err = pckg0();
- return err;
-
- }
-
-/**
- Requests OMX_GetComponentsOfRole to the OpenMAX IL core.
-
- @return OMX_ERRORTYPE
-
- */
-OMX_ERRORTYPE ROmxILCoreClientSession::GetComponentsOfRole(
- OMX_STRING role,
- OMX_U32* pNumComps,
- OMX_U8** compNames)
- {
- DEBUG_PRINTF(_L8("ROmxILCoreClientSession::GetComponentsOfRole"));
-
- // Param 0
- OMX_ERRORTYPE err = OMX_ErrorNone;
- TPckgBuf<OMX_ERRORTYPE> pckg0;
-
- TGetComponentsOfRole arg1;
- arg1.role = role;
- arg1.pNumComps = pNumComps;
- arg1.compNames = compNames;
-
- TIpcArgs arg(&pckg0, &arg1);
- SendReceive(EOmxILCoreGetComponentsOfRole, arg);
-
- // Extract the output values returned from the server.
- err = pckg0();
- return err;
-
- }
-
-/**
- Requests OMX_GetRolesOfComponent to the OpenMAX IL core.
-
- @return OMX_ERRORTYPE
-
- */
-OMX_ERRORTYPE ROmxILCoreClientSession::GetRolesOfComponent(
- OMX_STRING compName,
- OMX_U32 *pNumRoles,
- OMX_U8 **roles)
- {
- DEBUG_PRINTF(_L8("ROmxILCoreClientSession::GetRolesOfComponent"));
-
- // Param 0
- OMX_ERRORTYPE err = OMX_ErrorNone;
- TPckgBuf<OMX_ERRORTYPE> pckg0;
-
- TGetRolesOfComponent arg1;
- arg1.compName = compName;
- arg1.pNumRoles = pNumRoles;
- arg1.roles = roles;
-
- TIpcArgs arg(&pckg0, &arg1);
- SendReceive(EOmxILCoreGetRolesOfComponent, arg);
-
- // Extract the output values returned from the server.
- err = pckg0();
- return err;
-
- }
-
-
-//
-// OMX IL Operations...
-//
-
-/**
- The OMX_Init method initializes the OpenMAX IL core. OMX_Init shall be the
- first call made into OpenMAX IL and should be executed only one time without
- an intervening OMX_Deinit call. If OMX_Init is called twice, OMX_ErrorNone
- is returned but the init request is ignored.
-
- @return OMX_ERRORTYPE
- */
-OMX_API OMX_ERRORTYPE OMX_APIENTRY OMX_Init()
- {
-
- XGlobalILCoreCache* pGlobalILCoreCache = XGlobalILCoreCache::IlCoreCache();
- __ASSERT_ALWAYS(pGlobalILCoreCache != NULL,
- User::Panic(KOmxILCoreClientPanic, KErrNotReady));
- pGlobalILCoreCache->Lock();
-
- // OMX_Init may be called several times, only the first time must have an
- // effect....
- OMX_ERRORTYPE omxError = OMX_ErrorNone;
- if (pGlobalILCoreCache->ILCore() != NULL)
- {
- omxError = OMX_ErrorNone;
- }
- else
- {
- // Connect will create the server side thread the first time it is
- // called... The IL Core object will be instantiated at the sever
- // side...
- ROmxILCoreClientSession coresession;
- TInt err = coresession.Connect();
- // There should not exist a client thread already created at this
- // point...
- __ASSERT_ALWAYS(err != KErrAlreadyExists,
- User::Panic(KOmxILCoreClientPanic,
- KErrNotReady));
- if (KErrNone == err)
- {
- // Obtain the ILCore from the server side...
- COmxILCore& ilCore = coresession.ILCore();
- //... and cache it globally so the client library doesn't need to
- // access the server every time the IL Core is needed...
- pGlobalILCoreCache->SetILCore(&ilCore);
-
- // This will call COmxILCore::ListLoaders()...We want to initialize
- // loader ecom plugins in the IL Core thread, so we can make sure
- // they get destroyed in the same thread, the IL Core thread.
- omxError = coresession.ListLoaders();
- }
- else
- {
- // This is to make sure we return something that conforms with
- // table 3-9 in the spec.
- switch(err)
- {
- case KErrTimedOut:
- {
- omxError = OMX_ErrorTimeout;
- }
- break;
- case KErrNoMemory:
- default:
- {
- omxError = OMX_ErrorInsufficientResources;
- }
- };
- }
- coresession.Close();
-
- if (omxError != OMX_ErrorNone)
- {
- ROmxILCoreClientSession coresession;
- TInt openRetryCounter = KOpenSeverSessionMaxRetries;
- TInt err = KErrNone;
- // Try to connect to the server several times...
- do
- {
- err = coresession.Open();
- }
- while(KErrNone != err && --openRetryCounter > 0);
-
- if (KErrNone == err)
- {
- // IL Core deinitialization in the server thread to make sure that
- // loader plugins are destroyed in the same thread...
- coresession.DeinitAndClose();
- // At this point, the IL Core has been successfully
- // deinitialized...remove the cached reference...
- pGlobalILCoreCache->SetILCore(NULL);
- }
-
- coresession.Close();
- }
- }
-
- pGlobalILCoreCache->Unlock();
- return omxError;
-
- }
-
-/**
- The OMX_Deinit method de-initializes the OpenMAX core. OMX_Deinit should be
- the last call made into the OpenMAX core after all OpenMAX-related resources have
- been released
-
- @return OMX_ERRORTYPE
- */
-OMX_API OMX_ERRORTYPE OMX_APIENTRY OMX_Deinit()
- {
-
- XGlobalILCoreCache* pGlobalILCoreCache = XGlobalILCoreCache::IlCoreCache();
- __ASSERT_ALWAYS(pGlobalILCoreCache != NULL,
- User::Panic(KOmxILCoreClientPanic, KErrNotReady));
- pGlobalILCoreCache->Lock();
-
- // OMX_Deinit may be called several times.... only the first time will
- // remove the IL Core and the remaining ones must simply have no effect...
- OMX_ERRORTYPE omxError = OMX_ErrorNone;
- if (pGlobalILCoreCache->ILCore() == NULL)
- {
- omxError = OMX_ErrorNone;
- }
- else
- {
- ROmxILCoreClientSession coresession;
- TInt openRetryCounter = KOpenSeverSessionMaxRetries;
- TInt err = KErrNone;
- // Try to connect to the server several times...
- do
- {
- err = coresession.Open();
- __ASSERT_ALWAYS(KErrNotFound != err,
- User::Panic(KOmxILCoreClientPanic,
- KErrNotReady));
- }
- while(KErrNone != err && --openRetryCounter > 0);
-
- if (KErrNone == err)
- {
- // IL Core deinitialization in the server thread to make sure that
- // loader plugins are destroyed in the same thread...
- omxError = coresession.DeinitAndClose();
- // At this point, the IL Core has been successfully
- // deinitialized...remove the cached reference...
- if (omxError == OMX_ErrorNone)
- {
- pGlobalILCoreCache->SetILCore(NULL);
- }
- }
- else
- {
- // This is to make sure we return something that conforms with
- // table 3-9 in the spec.
- switch(err)
- {
- case KErrTimedOut:
- {
- omxError = OMX_ErrorTimeout;
- }
- break;
- default:
- {
- omxError = OMX_ErrorNone;
- }
- };
- }
-
- coresession.Close();
- }
-
- pGlobalILCoreCache->Unlock();
- return omxError;
-
- }
-
-/**
- The OMX_ComponentNameEnum method will enumerate through all the names of
- recognized components in the system to detect all the components in the system
- run-time.
-
- @return OMX_ERRORTYPE
- */
-OMX_API OMX_ERRORTYPE OMX_APIENTRY OMX_ComponentNameEnum(
- OMX_OUT OMX_STRING cComponentName,
- OMX_IN OMX_U32 nNameLength,
- OMX_IN OMX_U32 nIndex)
- {
-
- XGlobalILCoreCache* pGlobalILCoreCache = XGlobalILCoreCache::IlCoreCache();
- __ASSERT_ALWAYS(pGlobalILCoreCache != NULL,
- User::Panic(KOmxILCoreClientPanic, KErrNotReady));
- pGlobalILCoreCache->Lock();
-
- // OpenMAX IL mandates that OMX_Init must be the first OMX call made into
- // the IL Core...
- __ASSERT_ALWAYS(pGlobalILCoreCache->ILCore() != NULL,
- User::Panic(KOmxILCoreClientPanic,
- KErrNotReady));
-
-
- ROmxILCoreClientSession coresession;
- OMX_ERRORTYPE omxError = OMX_ErrorNone;
- TInt err = coresession.Open();
- __ASSERT_ALWAYS(KErrNotFound != err,
- User::Panic(KOmxILCoreClientPanic,
- KErrNotReady));
-
- // As mandated by the spec, we list and initialize loaders if the index is
- // 0.
- if (0 == nIndex && KErrNone == err)
- {
- // Ignore if any error...
- coresession.ListLoaders();
- }
-
- if (CActiveScheduler::Current())
- {
- COmxILCore& ilCore = *pGlobalILCoreCache->ILCore();
- omxError = ilCore.ComponentNameEnum(
- cComponentName,
- nNameLength,
- nIndex);
- }
- else
- {
- if (KErrNone == err)
- {
- omxError = coresession.ComponentNameEnum(
- cComponentName,
- nNameLength,
- nIndex);
- }
- else
- {
- omxError = OMX_ErrorUndefined;
- }
-
- }
-
- coresession.Close();
- pGlobalILCoreCache->Unlock();
- return omxError;
-
- }
-
-/**
- The OMX_GetHandle method will locate the component specified by the
- component name given, load that component into memory, and validate it.
-
- @return OMX_ERRORTYPE
- */
-OMX_API OMX_ERRORTYPE OMX_APIENTRY OMX_GetHandle(
- OMX_OUT OMX_HANDLETYPE* pHandle,
- OMX_IN OMX_STRING cComponentName,
- OMX_IN OMX_PTR pAppData,
- OMX_IN OMX_CALLBACKTYPE* pCallBacks)
- {
-
- XGlobalILCoreCache* pGlobalILCoreCache = XGlobalILCoreCache::IlCoreCache();
- __ASSERT_ALWAYS(pGlobalILCoreCache != NULL,
- User::Panic(KOmxILCoreClientPanic, KErrNotReady));
- pGlobalILCoreCache->Lock();
-
- // OpenMAX IL mandates that OMX_Init must be the first OMX call made into
- // the IL Core...
- __ASSERT_ALWAYS(pGlobalILCoreCache->ILCore() != NULL,
- User::Panic(KOmxILCoreClientPanic,
- KErrNotReady));
-
- OMX_ERRORTYPE omxError = OMX_ErrorNone;
- if (CActiveScheduler::Current())
- {
- COmxILCore& ilCore = *pGlobalILCoreCache->ILCore();
- omxError = ilCore.LoadComponent(
- cComponentName,
- pHandle,
- pAppData,
- pCallBacks);
- }
- else
- {
- ROmxILCoreClientSession coresession;
- TInt err = coresession.Open();
- // OMX_Init must be the first OMX call
- __ASSERT_ALWAYS(KErrNotFound != err,
- User::Panic(KOmxILCoreClientPanic, KErrNotReady));
-
- if (KErrNone == err)
- {
- omxError = coresession.GetHandle(
- pHandle,
- cComponentName,
- pAppData,
- pCallBacks);
- }
- else
- {
- omxError = OMX_ErrorUndefined;
- }
-
- coresession.Close();
- }
-
- pGlobalILCoreCache->Unlock();
- return omxError;
-
- }
-
-/**
- The OMX_FreeHandle method will free a handle allocated by the OMX_GetHandle
- method.
-
- @return OMX_ERRORTYPE
-*/
-OMX_API OMX_ERRORTYPE OMX_APIENTRY OMX_FreeHandle(
- OMX_IN OMX_HANDLETYPE hComponent)
- {
-
- XGlobalILCoreCache* pGlobalILCoreCache = XGlobalILCoreCache::IlCoreCache();
- __ASSERT_ALWAYS(pGlobalILCoreCache != NULL,
- User::Panic(KOmxILCoreClientPanic, KErrNotReady));
- pGlobalILCoreCache->Lock();
-
- // OpenMAX IL mandates that OMX_Init must be the first OMX call made into
- // the IL Core...
- __ASSERT_ALWAYS(pGlobalILCoreCache->ILCore() != NULL,
- User::Panic(KOmxILCoreClientPanic,
- KErrNotReady));
-
- OMX_ERRORTYPE omxError = OMX_ErrorNone;
- if (CActiveScheduler::Current())
- {
- COmxILCore& ilCore = *pGlobalILCoreCache->ILCore();
- omxError = ilCore.FreeHandle(hComponent);
- }
- else
- {
- ROmxILCoreClientSession coresession;
- TInt err = coresession.Open();
- __ASSERT_ALWAYS(KErrNotFound != err,
- User::Panic(KOmxILCoreClientPanic,
- KErrNotReady));
- if (KErrNone == err)
- {
- omxError = coresession.FreeHandle(hComponent);
- }
- else
- {
- omxError = OMX_ErrorUndefined;
- }
-
- coresession.Close();
- }
-
- pGlobalILCoreCache->Unlock();
- return omxError;
-
- }
-
-/**
- The OMX_SetupTunnel method sets up tunneled communication between an output
- port and an input port.
-
- @return OMX_ERRORTYPE
- */
-OMX_API OMX_ERRORTYPE OMX_APIENTRY OMX_SetupTunnel(
- OMX_IN OMX_HANDLETYPE hOutput,
- OMX_IN OMX_U32 nPortOutput,
- OMX_IN OMX_HANDLETYPE hInput,
- OMX_IN OMX_U32 nPortInput)
- {
-
- XGlobalILCoreCache* pGlobalILCoreCache = XGlobalILCoreCache::IlCoreCache();
- __ASSERT_ALWAYS(pGlobalILCoreCache != NULL,
- User::Panic(KOmxILCoreClientPanic, KErrNotReady));
- pGlobalILCoreCache->Lock();
-
- // OpenMAX IL mandates that OMX_Init must be the first OMX call made into
- // the IL Core...
- __ASSERT_ALWAYS(pGlobalILCoreCache->ILCore() != NULL,
- User::Panic(KOmxILCoreClientPanic,
- KErrNotReady));
-
- // SetupTunnel is reentrant and thus thread-safe, so no need to lock the
- // IL Core instance...
- pGlobalILCoreCache->Unlock();
-
- OMX_ERRORTYPE omxError = OMX_ErrorNone;
- if (CActiveScheduler::Current())
- {
- omxError = COmxILCore::SetupTunnel(
- hOutput,
- nPortOutput,
- hInput,
- nPortInput);
- }
- else
- {
- ROmxILCoreClientSession coresession;
- TInt err = coresession.Open();
- __ASSERT_ALWAYS(KErrNotFound != err,
- User::Panic(KOmxILCoreClientPanic,
- KErrNotReady));
- if (KErrNone == err)
- {
- omxError = coresession.SetupTunnel(
- hOutput,
- nPortOutput,
- hInput,
- nPortInput);
- }
- else
- {
- // This is to make sure we return something that conforms with
- // table 3-9 in the spec. Cannot return OMX_ErrorUndefined
- omxError = OMX_ErrorTimeout;
- }
-
- coresession.Close();
- }
-
- return omxError;
-
- }
-
-/**
- The OMX_GetContentPipe method returns a content pipe capable of manipulating a
- given piece of content as (specified via URI)
-
- @return OMX_ERRORTYPE
- */
-OMX_API OMX_ERRORTYPE OMX_GetContentPipe(
- OMX_OUT OMX_HANDLETYPE* hPipe,
- OMX_IN OMX_STRING szURI)
- {
-
- XGlobalILCoreCache* pGlobalILCoreCache = XGlobalILCoreCache::IlCoreCache();
- __ASSERT_ALWAYS(pGlobalILCoreCache != NULL,
- User::Panic(KOmxILCoreClientPanic, KErrNotReady));
- pGlobalILCoreCache->Lock();
-
- // OpenMAX IL mandates that OMX_Init must be the first OMX call made into
- // the IL Core...
- __ASSERT_ALWAYS(pGlobalILCoreCache->ILCore() != NULL,
- User::Panic(KOmxILCoreClientPanic,
- KErrNotReady));
-
- OMX_ERRORTYPE omxError = OMX_ErrorNone;
- if (CActiveScheduler::Current())
- {
- COmxILCore& ilCore = *pGlobalILCoreCache->ILCore();
- omxError = ilCore.GetContentPipe(
- hPipe,
- szURI);
- }
- else
- {
- ROmxILCoreClientSession coresession;
- TInt err = coresession.Open();
- // OMX_Init needs to be the first OMX call
- __ASSERT_ALWAYS(KErrNotFound != err,
- User::Panic(KOmxILCoreClientPanic,
- KErrNotReady));
-
- if (KErrNone == err)
- {
- omxError = coresession.GetContentPipe(
- hPipe,
- szURI);
- }
- else
- {
- omxError = OMX_ErrorUndefined;
- }
-
- coresession.Close();
- }
-
- pGlobalILCoreCache->Unlock();
- return omxError;
-
- }
-
-/**
- The OMX_GetComponentsOfRole function that enables the IL client to query the
- names of all installed components that support a given role.
-
- @return OMX_ERRORTYPE
- */
-OMX_API OMX_ERRORTYPE OMX_GetComponentsOfRole (
- OMX_IN OMX_STRING role,
- OMX_INOUT OMX_U32* pNumComps,
- OMX_INOUT OMX_U8** compNames)
- {
-
- XGlobalILCoreCache* pGlobalILCoreCache = XGlobalILCoreCache::IlCoreCache();
- __ASSERT_ALWAYS(pGlobalILCoreCache != NULL,
- User::Panic(KOmxILCoreClientPanic, KErrNotReady));
- pGlobalILCoreCache->Lock();
-
- // OpenMAX IL mandates that OMX_Init must be the first OMX call made into
- // the IL Core...
- __ASSERT_ALWAYS(pGlobalILCoreCache->ILCore() != NULL,
- User::Panic(KOmxILCoreClientPanic,
- KErrNotReady));
-
- ROmxILCoreClientSession coresession;
- OMX_ERRORTYPE omxError = OMX_ErrorNone;
- TInt err = coresession.Open();
- // OMX_Init needs to be the first OMX call
- __ASSERT_ALWAYS(KErrNotFound != err,
- User::Panic(KOmxILCoreClientPanic,
- KErrNotReady));
-
- // The OMX IL spec does not mandate this, but it probably should. We list
- // and initialize loaders here too, if we can.
- if (KErrNone == err)
- {
- // Ignore if any error...
- coresession.ListLoaders();
- }
-
- if (CActiveScheduler::Current())
- {
- COmxILCore& ilCore = *pGlobalILCoreCache->ILCore();
- omxError = ilCore.GetComponentsOfRole(
- role,
- pNumComps,
- compNames);
- }
- else
- {
-
- if (KErrNone == err)
- {
- omxError = coresession.GetComponentsOfRole(
- role,
- pNumComps,
- compNames);
- }
- else
- {
- omxError = OMX_ErrorUndefined;
- }
-
- }
-
- coresession.Close();
- pGlobalILCoreCache->Unlock();
- return omxError;
-
- }
-
-/**
- The function that enables the IL client to query all the roles fulfilled by
- a given a component.
-
- @return OMX_ERRORTYPE
- */
-OMX_API OMX_ERRORTYPE OMX_GetRolesOfComponent (
- OMX_IN OMX_STRING compName,
- OMX_INOUT OMX_U32* pNumRoles,
- OMX_OUT OMX_U8** roles)
- {
-
- XGlobalILCoreCache* pGlobalILCoreCache = XGlobalILCoreCache::IlCoreCache();
- __ASSERT_ALWAYS(pGlobalILCoreCache != NULL,
- User::Panic(KOmxILCoreClientPanic, KErrNotReady));
- pGlobalILCoreCache->Lock();
-
- // OpenMAX IL mandates that OMX_Init must be the first OMX call made into
- // the IL Core...
- __ASSERT_ALWAYS(pGlobalILCoreCache->ILCore() != NULL,
- User::Panic(KOmxILCoreClientPanic,
- KErrNotReady));
-
- ROmxILCoreClientSession coresession;
- TInt err = coresession.Open();
- // OMX_Init needs to be the first OMX call
- __ASSERT_ALWAYS(KErrNotFound != err,
- User::Panic(KOmxILCoreClientPanic,
- KErrNotReady));
-
- // The OMX IL spec does not mandate this, but it probably should. We list
- // and initialize loaders here too, if we can.
- if (KErrNone == err)
- {
- // Ignore if any error...
- coresession.ListLoaders();
- }
-
- OMX_ERRORTYPE omxError = OMX_ErrorNone;
- if (CActiveScheduler::Current())
- {
- COmxILCore& ilCore = *pGlobalILCoreCache->ILCore();
- omxError = ilCore.GetRolesOfComponent(
- compName,
- pNumRoles,
- roles);
- }
- else
- {
-
- if (KErrNone == err)
- {
- omxError = coresession.GetRolesOfComponent(
- compName,
- pNumRoles,
- roles);
- }
- else
- {
- omxError = OMX_ErrorUndefined;
- }
-
- }
-
- coresession.Close();
- pGlobalILCoreCache->Unlock();
- return omxError;
-
- }
--- a/omxil/omxilcore/src/omxilcoreclient/omxilcoreclientsession.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-// Copyright (c) 2008-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:
-// omilcoreclientsession.h
-//
-//
-
-#ifndef OMXILCORECLIENTSESSION_H
-#define OMXILCORECLIENTSESSION_H
-
-#include <e32base.h>
-#include "omxilcoreclientserver.h"
-
-class COmxILCore;
-
-/**
- Client-side of a an IL Client - IL Core communication
- */
-NONSHARABLE_CLASS(ROmxILCoreClientSession) : public RSessionBase
- {
-
-public:
-
- ROmxILCoreClientSession();
- ~ROmxILCoreClientSession();
-
- TInt Connect();
- TInt Open();
- void Close();
-
- // Retrieves an IL Core reference from the IL Core thread
- COmxILCore& ILCore();
-
- //
- // OMX IL Operations...
- //
-
- OMX_ERRORTYPE ListLoaders();
-
- OMX_ERRORTYPE DeinitAndClose();
-
- OMX_ERRORTYPE ComponentNameEnum(
- OMX_STRING cComponentName,
- OMX_U32 nNameLength,
- OMX_U32 nIndex);
-
- OMX_ERRORTYPE GetHandle(
- OMX_HANDLETYPE* pHandle,
- OMX_STRING cComponentName,
- OMX_PTR pAppData,
- OMX_CALLBACKTYPE* pCallBacks);
-
- OMX_ERRORTYPE FreeHandle(
- OMX_HANDLETYPE hComponent);
-
- OMX_ERRORTYPE SetupTunnel(
- OMX_HANDLETYPE hOutput,
- OMX_U32 nPortOutput,
- OMX_HANDLETYPE hInput,
- OMX_U32 nPortInput);
-
- OMX_ERRORTYPE GetContentPipe(
- OMX_HANDLETYPE *hPipe,
- OMX_STRING szURI);
-
- OMX_ERRORTYPE GetComponentsOfRole (
- OMX_STRING role,
- OMX_U32 *pNumComps,
- OMX_U8 **compNames);
-
- OMX_ERRORTYPE GetRolesOfComponent (
- OMX_STRING compName,
- OMX_U32 *pNumRoles,
- OMX_U8 **roles);
-
- };
-
-#endif // OMXILCORECLIENTSESSION_H
--- a/omxil/omxilcore/src/omxilcoreserver/log.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,146 +0,0 @@
-// Copyright (c) 2004-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:
-//
-
-#ifndef __SWI_LOG_H__
-#define __SWI_LOG_H__
-
-#include <e32debug.h>
-
-namespace DSD
-{
-
-class TTruncateOverflowHandler16 : public TDes16Overflow
- {
- public:
- virtual void Overflow( TDes16& aDes );
- };
-
-inline void TTruncateOverflowHandler16::Overflow( TDes16& aDes)
- {
- _LIT(KErrOverflowMsg,"Descriptor Overflow, hence value truncated");
- if( aDes.MaxLength() >= KErrOverflowMsg().Length() + aDes.Length() )
- aDes.Append(KErrOverflowMsg);
- }
-
-class TTruncateOverflowHandler8 : public TDes8Overflow
- {
- public:
- virtual void Overflow( TDes8& aDes );
- };
-
-inline void TTruncateOverflowHandler8::Overflow( TDes8& aDes)
- {
- _LIT(KErrOverflowMsg,"Descriptor Overflow, hence value truncated");
- if( aDes.MaxLength() >= KErrOverflowMsg().Length() + aDes.Length() )
- aDes.Append(KErrOverflowMsg);
- }
-
-#ifdef _DEBUG
-
-#ifdef _OMXIL_CORESERVER_DEBUG_TRACING_ON
-
-#define DEBUG_PRINTF(a) {DSD::DebugPrintf(__LINE__, __FILE__, a);}
-#define DEBUG_PRINTF2(a, b) {DSD::DebugPrintf(__LINE__, __FILE__, a, b);}
-#define DEBUG_PRINTF3(a, b, c) {DSD::DebugPrintf(__LINE__, __FILE__, a, b, c);}
-#define DEBUG_PRINTF4(a, b, c, d) {DSD::DebugPrintf(__LINE__, __FILE__, a, b, c, d);}
-#define DEBUG_PRINTF5(a, b, c, d, e) {DSD::DebugPrintf(__LINE__, __FILE__, a, b, c, d, e);}
-
-#define DEBUG_CODE_SECTION(a) TRAP_IGNORE({ a; })
-
-// UTF-8 overload of the DebufPrintf method. Should be used by default,
-// since it's cheaper both in CPU cycles and stack space.
-
-inline void DebugPrintf(TInt aLine, char* aFile, TRefByValue<const TDesC8> aFormat, ...)
- {
- TTruncateOverflowHandler8 overflowHandler8;
- VA_LIST list;
- VA_START(list, aFormat);
-
- TTime now;
- now.HomeTime();
-
- TBuf8<1024> buffer;
- _LIT8(KSwiLogPrefix, "[coresv] ");
- _LIT8(KSwiLineFileFormat, "TID[%d] : [%s:%d] -- ");
- buffer.Append(KSwiLogPrefix);
- RThread thread;
- TUint threadId = thread.Id();
- thread.Close();
- RProcess proc;
- TFileName fName = proc.FileName();
- proc.Close();
- buffer.AppendFormat(KSwiLineFileFormat, threadId, aFile, aLine);
- buffer.AppendFormatList(aFormat, list ,&overflowHandler8 );
- buffer.Append(_L8("\r\n"));
-
- RDebug::RawPrint(buffer);
-
- VA_END(list);
- }
-
-// Unicode DebufPrintf overload
-
-inline void DebugPrintf(TInt aLine, char* aFile, TRefByValue<const TDesC16> aFormat, ...)
- {
- TTruncateOverflowHandler16 overflowHandler16;
- VA_LIST list;
- VA_START(list, aFormat);
-
- TTime now;
- now.HomeTime();
-
- TBuf8<256> header;
- _LIT8(KSwiLogPrefix, "[coresv] ");
- _LIT8(KSwiLineFileFormat, "%Ld Line: % 5d, File: %s -- ");
- header.Append(KSwiLogPrefix);
- header.AppendFormat(KSwiLineFileFormat, now.Int64(), aLine, aFile);
-
- TBuf<1024> buffer;
- buffer.Copy(header);
- buffer.AppendFormatList(aFormat, list ,&overflowHandler16);
- buffer.Append(_L("\r\n"));
-
- RDebug::RawPrint(buffer);
-
- VA_END(list);
- }
-#else
-
-#define DEBUG_PRINTF(a)
-#define DEBUG_PRINTF2(a, b)
-#define DEBUG_PRINTF3(a, b, c)
-#define DEBUG_PRINTF4(a, b, c, d)
-#define DEBUG_PRINTF5(a, b, c, d, e)
-
-#define DEBUG_CODE_SECTION(a)
-
-#endif
-
-#else
-
-#define DEBUG_PRINTF(a)
-#define DEBUG_PRINTF2(a, b)
-#define DEBUG_PRINTF3(a, b, c)
-#define DEBUG_PRINTF4(a, b, c, d)
-#define DEBUG_PRINTF5(a, b, c, d, e)
-
-#define DEBUG_CODE_SECTION(a)
-
-#endif
-
-
-} // namespace DSD
-
-#endif // __SWI_LOG_H__
--- a/omxil/omxilcore/src/omxilcoreserver/omxilcoreclientserver.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,103 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef OMXILCORECLIENTSERVER_H
-#define OMXILCORECLIENTSERVER_H
-
-#include <e32std.h>
-#include <openmax/il/khronos/v1_x/OMX_Core.h>
-
-_LIT(KOmxILCoreServerName,"OmxILCoreServer");
-
-// A larger stack is used due to Bellagio loader which uses ANSI C calls (fopen etc.). These calls require a large stack, and panic on ARM platforms if a default 8 KB stack is used
-const TInt KOmxILCoreServerStackSize=0x4000; // 16KB
-
-const TUint KOmxILCoreServerVersion = 1;
-const TUint KOmxILCoreServerMinorVersionNumber = 0;
-const TUint KOmxILCoreServerBuildVersionNumber = 0;
-
-// Function opcodes for client to server messaging
-enum TOmxILCoreClientToServerMessages
- {
- EOmxILCoreListLoaders = 0,
- EOmxILCoreDeinit,
- EOmxILCoreGetILCore,
- EOmxILCoreComponentNameEnum,
- EOmxILCoreGetHandle,
- EOmxILCoreFreeHandle,
- EOmxILCoreSetupTunnel,
- EOmxILCoreGetContentPipe,
- EOmxILCoreGetComponentsOfRole,
- EOmxILCoreGetRolesOfComponent
- };
-
-enum TOmxILCoreServerState
- {
- EOmxILCoreServerStateIdle = 0
- };
-
-
-class TComponentNameEnum
- {
-public:
- OMX_STRING cComponentName;
- OMX_U32 nNameLength;
- OMX_U32 nIndex;
- };
-
-class TGetHandle
- {
-public:
- OMX_HANDLETYPE* pHandle;
- OMX_STRING cComponentName;
- OMX_PTR pAppData;
- OMX_CALLBACKTYPE* pCallBacks;
- };
-
-class TSetupTunnel
- {
-public:
- OMX_HANDLETYPE hOutput;
- OMX_U32 nPortOutput;
- OMX_HANDLETYPE hInput;
- OMX_U32 nPortInput;
- };
-
-class TGetContentPipe
- {
-public:
- OMX_HANDLETYPE* hPipe;
- OMX_STRING szURI;
- };
-
-class TGetComponentsOfRole
- {
-public:
- OMX_STRING role;
- OMX_U32 *pNumComps;
- OMX_U8 **compNames;
- };
-
-class TGetRolesOfComponent
- {
-public:
- OMX_STRING compName;
- OMX_U32 *pNumRoles;
- OMX_U8 **roles;
- };
-
-IMPORT_C TInt StartOmxILCoreServer(TUint32 *aServerHandle);
-
-#endif // OMXILCORECLIENTSERVER_H
--- a/omxil/omxilcore/src/omxilcoreserver/omxilcoreserver.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,310 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include "log.h"
-#include "omxilcoreserver.h"
-#include "omxilcoreserversession.h"
-#include "omxilcoreclientserver.h"
-#include "omxilcore.h"
-#include <ecom/ecom.h>
-
-
-/**
- * Constructor
- */
-COmxILCoreServer::COmxILCoreServer()
-: CServer2(EPriorityStandard)
- {
- DEBUG_PRINTF(_L8("COmxILCoreServer::COmxILCoreServer"));
- Cancel();
- }
-
-/**
- * Destructor.
- */
-COmxILCoreServer::~COmxILCoreServer()
- {
- DEBUG_PRINTF(_L8("COmxILCoreServer::~COmxILCoreServer"));
- delete ipOmxILCore;
- delete ipStopCallback;
- }
-
-/**
- * Constructs, and returns a pointer to, a new COmxILCoreServer object.
- * Leaves on failure.
- * @return COmxILCoreServer* A pointer to newly created utlitly object.
- */
-COmxILCoreServer* COmxILCoreServer::NewL()
- {
- DEBUG_PRINTF(_L8("COmxILCoreServer::NewL"));
- COmxILCoreServer* self = NewLC();
- CleanupStack::Pop(self);
- return self;
- }
-
-/**
- * Constructs, leaves object on the cleanup stack, and returns a pointer
- * to, a new OMX IL Core Server object.
- * Leaves on failure.
- * @return COmxILCoreServer* A pointer to newly created utlitly object.
- */
-COmxILCoreServer* COmxILCoreServer::NewLC()
- {
- DEBUG_PRINTF(_L8("COmxILCoreServer::NewLC"));
- COmxILCoreServer* self = new(ELeave) COmxILCoreServer;
- CleanupStack::PushL(self);
- self->ConstructL();
-
- return self;
- }
-
-/**
- Symbian 2nd phase constructor.
- */
-void COmxILCoreServer::ConstructL()
- {
- DEBUG_PRINTF(_L8("COmxILCoreServer::ConstructL"));
-
- // Create the OpenMAX IL Core
- ipOmxILCore = new (ELeave) COmxILCore;
-
- // Create the server termination callback object...
- TCallBack callbackStop (COmxILCoreServer::StopServer, this);
- ipStopCallback =
- new (ELeave) CAsyncCallBack (callbackStop, CActive::EPriorityLow);
-
- }
-
-/**
- From CServer2. Creates a server-side client session object. Creates a new
- session. This function may leave with one of the system-wide error codes.
-
- @param const TVersion& aVersion The version number of the session.
-
- @param const RMessage2& aMessage
-
- @return A pointer to the new session.
- */
-CSession2* COmxILCoreServer::NewSessionL(const TVersion& aVersion,
- const RMessage2& aMessage) const
- {
-
- RThread clientThread;
- aMessage.Client(clientThread);
- RProcess clientProcess;
- clientThread.Process(clientProcess);
- RProcess thisProcess;
-
- DEBUG_PRINTF3(_L8("COmxILCoreServer::NewSessionL : this process [%d] - client process [%d]"), thisProcess.Id().operator TUint(), clientProcess.Id().operator TUint());
-
- // Only allow sessions from clients running in the server process
- if (thisProcess.Id() != clientProcess.Id())
- {
- clientThread.Close();
- clientProcess.Close();
- thisProcess.Close();
- User::Leave(KErrAccessDenied);
- }
-
- clientThread.Close();
- clientProcess.Close();
- thisProcess.Close();
-
- if(!User::QueryVersionSupported(TVersion(KOmxILCoreServerVersion,
- KOmxILCoreServerMinorVersionNumber,
- KOmxILCoreServerBuildVersionNumber),
- aVersion))
- {
- User::Leave(KErrNotSupported);
- }
-
- if (iDeinitInProgress)
- {
- User::Leave(KErrNotReady);
- }
-
- COmxILCoreServerSession* omxilcoreSession =
- COmxILCoreServerSession::NewL(*ipOmxILCore,
- const_cast<COmxILCoreServer&>(*this));
-
- return omxilcoreSession;
- }
-
-TInt COmxILCoreServer::StopServer(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("COmxILCoreServer::StopServer"));
- COmxILCoreServer* self =
- static_cast<COmxILCoreServer*> (aPtr);
- self->DoStopServer();
- return KErrNone;
-
- }
-
-void COmxILCoreServer::DoStopServer()
- {
- DEBUG_PRINTF(_L8("COmxILCoreServer::DoStopServer"));
- CActiveScheduler::Stop();
- }
-
-
-void COmxILCoreServer::SetDeinitInProgress()
- {
- DEBUG_PRINTF(_L8("COmxILCoreServer::SetDeinitInProgress"));
-
- iDeinitInProgress = ETrue;
-
- }
-
-void COmxILCoreServer::SessionOpened()
- {
- DEBUG_PRINTF(_L8("COmxILCoreServer::SessionOpened"));
-
- iSessionCounter++;
-
- }
-
-
-void COmxILCoreServer::SessionClosed()
- {
- DEBUG_PRINTF(_L8("COmxILCoreServer::SessionClosed"));
-
- iSessionCounter--;
-
- if (iSessionCounter == 0 && iDeinitInProgress)
- {
- DEBUG_PRINTF(_L8("COmxILCoreServer::SessionClosed : iSessionCounter = 0 and DeinitInProgress = TRUE"));
- ipStopCallback->Call();
- }
-
- }
-
-
-TInt COmxILCoreServer::ThreadFunctionL(TAny* aServerHandle)
- {
- // create an active scheduler and server
- CActiveScheduler* sched = new (ELeave) CActiveScheduler;
- CleanupStack::PushL(sched);
-
- //Install the active scheduler
- CActiveScheduler::Install(sched);
-
- COmxILCoreServer* server = COmxILCoreServer::NewL();
- CleanupStack::PushL(server);
-
- // Start the server
- TInt err = server->Start(KNullDesC);
- if (err != KErrNone)
- {
- return err;
- }
-
- RServer2 serverHandle = server->Server();
- User::LeaveIfError(serverHandle.Duplicate(RThread(), EOwnerProcess));
- // Return the handle of the server to function which created us.
- *reinterpret_cast<TUint32 *>(aServerHandle) = serverHandle.Handle();
-
- // Let everyone know that we are ready to
- // deal with requests.
- RThread::Rendezvous(KErrNone);
-
- // And start fielding requests from client(s).
- CActiveScheduler::Start();
-
- CleanupStack::PopAndDestroy(2, sched); // sched, server
-
- return KErrNone;
- }
-
-/**
- Create the thread that will act as the server.
-
-*/
-TInt COmxILCoreServer::ThreadFunction(TAny* aServerHandle)
- {
- DEBUG_PRINTF(_L8("COmxILCoreServer::ThreadFunction"));
- // get clean-up stack
- CTrapCleanup* cleanup = CTrapCleanup::New();
- if (cleanup == NULL)
- {
- return KErrNoMemory;
- }
-
- TRAPD( err, ThreadFunctionL(aServerHandle) );
-
- REComSession::FinalClose();
-
- delete cleanup;
- DEBUG_PRINTF(_L8("COmxILCoreServer::ThreadFunction: returning"));
- return err;
- }
-
-/**
- Create the thread that will act as the server. This function is exported
- from the DLL and called by the client.
-
-*/
-EXPORT_C TInt StartOmxILCoreServer(TUint32 *aServerHandle)
- {
- DEBUG_PRINTF(_L8("StartOmxILCoreServer"));
-
- TInt res = KErrNone;
- RThread serverThread;
-
- // Create the thread for the server.
- res = serverThread.Create(KNullDesC,
- COmxILCoreServer::ThreadFunction,
- KOmxILCoreServerStackSize,
- &User::Heap(),
- aServerHandle);
-
- if (res==KErrNone)
- {
- DEBUG_PRINTF(_L8("StartOmxILCoreServer : Thread created"));
- TRequestStatus rendezvousStatus;
-
- serverThread.SetPriority(EPriorityNormal);
-
- // Synchronise with the server
- serverThread.Rendezvous(rendezvousStatus);
- if (rendezvousStatus != KRequestPending)
- {
- serverThread.Kill(KErrDied);
- }
- else
- {
- serverThread.Resume();
- }
-
- User::WaitForRequest(rendezvousStatus);
- if(rendezvousStatus != KErrNone)
- {
- res = rendezvousStatus.Int();
- }
-
- }
- else
- {
- // The thread could not be created..
- DEBUG_PRINTF2(_L8("StartOmxILCoreServer : Thread Creation error [%d]"), res);
- res = KErrGeneral;
- }
-
- serverThread.Close();
-
- return res;
-
- }
-
-// End of file
--- a/omxil/omxilcore/src/omxilcoreserver/omxilcoreserver.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef OMXILCORESERVER_H
-#define OMXILCORESERVER_H
-
-#include <e32std.h>
-#include <e32base.h>
-#include "omxilcoreclientserver.h"
-
-class COmxILCore;
-class COmxILCoreServerSession;
-
-
-NONSHARABLE_CLASS( COmxILCoreServer ): public CServer2
- {
-public:
-
- static COmxILCoreServer* NewL();
- static COmxILCoreServer* NewLC();
- ~COmxILCoreServer();
-
-public:
- // The thread function executed by the server
- static TInt ThreadFunction(TAny* aServerHandle);
-
- // Creates a new session with the server; the function
- // implements the pure virtutal function
- // defined in class CServer2
- CSession2* NewSessionL(const TVersion& aVersion,const RMessage2& aMessage) const;
-
- void SetDeinitInProgress();
-
- void SessionClosed();
-
- void SessionOpened();
-
-private :
-
- COmxILCoreServer();
- void ConstructL();
-
- // The thread function executed by the server
- static TInt ThreadFunctionL(TAny* aServerHandle);
-
- static TInt StopServer(TAny* aPtr);
-
- // Function to stop the IL Core server
- void DoStopServer();
-
-private :
-
- COmxILCore* ipOmxILCore;
- CAsyncCallBack* ipStopCallback;
- TBool iDeinitInProgress;
- TUint iSessionCounter;
-
- };
-
-#endif //OMXILCORESERVER_H
--- a/omxil/omxilcore/src/omxilcoreserver/omxilcoreserversession.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,263 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include "log.h"
-#include "omxilcore.h"
-#include "omxilcoreserver.h"
-#include "omxilcoreserversession.h"
-
-
-_LIT(KOmxILCoreServerPanic, "OmxILCoreServer Panic");
-
-/**
- * By default Symbian 2nd phase constructor is private.
- */
-COmxILCoreServerSession::COmxILCoreServerSession(COmxILCore& aCore, COmxILCoreServer& aCoreServer)
- :
- iCore(aCore),
- iCoreServer(aCoreServer)
- {
- DEBUG_PRINTF(_L8("COmxILCoreServerSession::COmxILCoreServerSession"));
-
- // Inform the server that this session is opening
- aCoreServer.SessionOpened();
-
- }
-
-/**
- * Destructor
- */
-COmxILCoreServerSession::~COmxILCoreServerSession()
- {
- DEBUG_PRINTF(_L8("COmxILCoreServerSession::~COmxILCoreServerSession"));
-
- // Inform the server that this session is closed
- iCoreServer.SessionClosed();
-
- }
-
-/**
- * Constructs, and returns a pointer to, a new COmxILCoreServerSession object.
- * Leaves on failure.
- * @return COmxILCoreServerSession* A pointer to newly created utlitly object.
- */
-COmxILCoreServerSession* COmxILCoreServerSession::NewL(COmxILCore& aCore, COmxILCoreServer& aCoreServer)
- {
- DEBUG_PRINTF(_L8("COmxILCoreServerSession::NewL"));
-
- COmxILCoreServerSession* self = new(ELeave) COmxILCoreServerSession(aCore, aCoreServer);
- return self;
- }
-
-/**
- * from CSession2
- * @param aMessage - Function and data for the session
- */
-void COmxILCoreServerSession::ServiceL(const RMessage2& aMessage)
- {
- DEBUG_PRINTF(_L8("COmxILCoreServerSession::ServiceL"));
-
- TRAPD( errL, DispatchMessageL(aMessage) );
-
- if( errL != KErrNone )
- {
- ASSERT(0);
- }
- }
-
-/**
- * Dispatch the message received from ServeL
- * @param aMessage - Function and data for the session
- * @return error code
- * @leave in case of writeL leave or request leave
- */
-TInt COmxILCoreServerSession::DispatchMessageL(const RMessage2& aMessage)
- {
-
- TInt error = KErrNone;
- OMX_ERRORTYPE omxError = OMX_ErrorNone;
-
- TOmxILCoreClientToServerMessages messageFunction =
- static_cast<TOmxILCoreClientToServerMessages>(aMessage.Function());
- __ASSERT_ALWAYS(messageFunction <= EOmxILCoreGetRolesOfComponent,
- User::Panic(KOmxILCoreServerPanic, 0));
-
- switch(messageFunction)
- {
- case EOmxILCoreListLoaders:
- {
- DEBUG_PRINTF(_L8("COmxILCoreServerSession::DispatchMessageL : EOmxILCoreListLoaders"));
- omxError = iCore.ListLoaders();
- }
- break;
-
- case EOmxILCoreDeinit:
- {
- DEBUG_PRINTF(_L8("COmxILCoreServerSession::DispatchMessageL : EOmxILCoreDeinit"));
-
- // Flag the deinitialization ...
- iCoreServer.SetDeinitInProgress();
- iCore.DeinitCore();
-
- // Write server thread id
- RThread thisThread;
- TPckgBuf<TUint64> p(thisThread.Id().Id());
- aMessage.WriteL(1,p);
- thisThread.Close();
- }
- break;
-
- case EOmxILCoreGetILCore:
- {
- DEBUG_PRINTF(_L8("COmxILCoreServerSession::DispatchMessageL : EOmxILCoreGetILCore"));
-
- // Write IL Core reference...
- TPckgBuf<COmxILCore*> p(&iCore);
- aMessage.WriteL(1,p);
-
- }
- break;
-
- case EOmxILCoreComponentNameEnum:
- {
- DEBUG_PRINTF(_L8("COmxILCoreServerSession::DispatchMessageL : EOmxILCoreComponentNameEnum"));
-
- TComponentNameEnum* pArg =
- static_cast<TComponentNameEnum*>(
- const_cast<TAny*>(aMessage.Ptr1()));
- __ASSERT_DEBUG(pArg, User::Panic(KOmxILCoreServerPanic, 0));
-
- omxError = iCore.ComponentNameEnum(
- pArg->cComponentName,
- pArg->nNameLength,
- pArg->nIndex);
- }
- break;
-
- case EOmxILCoreGetHandle:
- {
- DEBUG_PRINTF(_L8("COmxILCoreServerSession::DispatchMessageL : EOmxILCoreGetHandle"));
-
- TGetHandle* pArg =
- static_cast<TGetHandle*>(
- const_cast<TAny*>(aMessage.Ptr1()));
- __ASSERT_DEBUG(pArg, User::Panic(KOmxILCoreServerPanic, 0));
-
- omxError = iCore.LoadComponent(
- pArg->cComponentName,
- pArg->pHandle,
- pArg->pAppData,
- pArg->pCallBacks);
-
- }
- break;
-
- case EOmxILCoreFreeHandle:
- {
- DEBUG_PRINTF(_L8("COmxILCoreServerSession::DispatchMessageL : EOmxILCoreFreeHandle"));
-
- OMX_HANDLETYPE* hComponent =
- static_cast<OMX_HANDLETYPE*>(
- const_cast<TAny*>(aMessage.Ptr1()));
-
- omxError = iCore.FreeHandle(hComponent);
-
- }
- break;
-
- case EOmxILCoreSetupTunnel:
- {
- DEBUG_PRINTF(_L8("COmxILCoreServerSession::DispatchMessageL : EOmxILCoreSetupTunnel"));
-
- TSetupTunnel* pArg =
- static_cast<TSetupTunnel*>(
- const_cast<TAny*>(aMessage.Ptr1()));
- __ASSERT_DEBUG(pArg, User::Panic(KOmxILCoreServerPanic, 0));
-
- omxError = COmxILCore::SetupTunnel(
- pArg->hOutput,
- pArg->nPortOutput,
- pArg->hInput,
- pArg->nPortInput);
-
- }
- break;
-
- case EOmxILCoreGetContentPipe:
- {
- DEBUG_PRINTF(_L8("COmxILCoreServerSession::DispatchMessageL : EOmxILCoreGetContentPipe"));
-
- TGetContentPipe* pArg =
- static_cast<TGetContentPipe*>(
- const_cast<TAny*>(aMessage.Ptr1()));
- __ASSERT_DEBUG(pArg, User::Panic(KOmxILCoreServerPanic, 0));
-
- omxError = iCore.GetContentPipe(
- pArg->hPipe,
- pArg->szURI);
-
- }
- break;
-
- case EOmxILCoreGetComponentsOfRole:
- {
- DEBUG_PRINTF(_L8("COmxILCoreServerSession::DispatchMessageL : EOmxILCoreGetComponentsOfRole"));
-
- TGetComponentsOfRole* pArg =
- static_cast<TGetComponentsOfRole*>(
- const_cast<TAny*>(aMessage.Ptr1()));
- __ASSERT_DEBUG(pArg, User::Panic(KOmxILCoreServerPanic, 0));
-
- omxError = iCore.GetComponentsOfRole(
- pArg->role,
- pArg->pNumComps,
- pArg->compNames);
-
- }
- break;
-
- case EOmxILCoreGetRolesOfComponent:
- {
- DEBUG_PRINTF(_L8("COmxILCoreServerSession::DispatchMessageL : EOmxILCoreGetRolesOfComponent"));
-
- TGetRolesOfComponent* pArg =
- static_cast<TGetRolesOfComponent*>(
- const_cast<TAny*>(aMessage.Ptr1()));
- __ASSERT_DEBUG(pArg, User::Panic(KOmxILCoreServerPanic, 0));
-
- omxError = iCore.GetRolesOfComponent(
- pArg->compName,
- pArg->pNumRoles,
- pArg->roles);
-
- }
- break;
-
- default:
- {
- // Unknown Message
- error = KErrNotSupported;
- }
- break;
- };
-
- // Write OMX result
- TPckgBuf<OMX_ERRORTYPE> p(omxError);
- aMessage.WriteL(0,p);
-
- aMessage.Complete(error);
-
- return error;
- }
--- a/omxil/omxilcore/src/omxilcoreserver/omxilcoreserversession.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef OMXILCORESERVERSESSION_H
-#define OMXILCORESERVERSESSION_H
-
-#include <e32base.h>
-#include "omxilcoreclientserver.h"
-
-class COmxILCore;
-
-NONSHARABLE_CLASS(COmxILCoreServerSession) : public CSession2
- {
-public:
- static COmxILCoreServerSession* NewL(COmxILCore& aCore, COmxILCoreServer& aCoreServer);
-
- ~COmxILCoreServerSession();
-
- // from CSession2
- void ServiceL(const RMessage2& aMessage);
-
-private:
- COmxILCoreServerSession(COmxILCore& aCore, COmxILCoreServer& aCoreServer);
- TInt DispatchMessageL(const RMessage2& aMessage);
-
-private:
-
- COmxILCore& iCore;
- COmxILCoreServer& iCoreServer;
-
- };
-
-#endif // OMXILCORESERVERSESSION_H
--- a/omxil/omxilrefcomps/ref_components/audio/pcmrenderer/inc/omxilsymbianaudiopcmextensions.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-/*
-* Copyright (c) 2008-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:
-*
-*/
-
-
-/**
- @file
- @publishedPartner@prototype
-*/
-
-#ifndef OMXILSYMBIANAUDIOPCMEXTENSIONS_H
-#define OMXILSYMBIANAUDIOPCMEXTENSIONS_H
-
-
-#include <openmax/il/khronos/v1_x/OMX_Types.h>
-
-
-/**
- * The string that the Symbian's OpenMAX IL PCM Renderer component will
- * translate into a 32-bit OpenMAX IL index (@see
- * OMX_SYMBIAN_AUDIO_CONFIG_PCM_VOLUMERAMP) to support the
- * Volume Ramp feature of the MPlayCustomInterface CI
- */
-const char sOmxSymbianPcmVolumeRamp [] =
- "OMX.Symbian.index.config.audio.pcm.volumeramp";
-
-
-/**
- * Custom index used by Symbian's OpenMAX IL PCM renderer to select the
- * structure for setting/getting a Volume Ramp configuration data item
- */
-#define OMX_SymbianIndexConfigAudioPcmVolumeRamp 0x7F000002
-
-
-/**
- * Custom OpenMAX IL structure to be used as a container for an
- * Volume Ramp configuration data item
- */
-struct OMX_SYMBIAN_AUDIO_CONFIG_PCM_VOLUMERAMP
- {
- OMX_U32 nSize; /**< Size of this structure, in Bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nPortIndex; /**< Port that this structure applies to */
- OMX_U64 nRampDuration; /**< the period, in microseconds, over which the volume level is
- to rise smoothly from nothing to the
- required volume level */
- };
-
-/**
- * The string that the Symbian's OpenMAX IL PCM Renderer component will
- * translate into a 32-bit OpenMAX IL index (@see
- * OMX_SYMBIAN_AUDIO_CONFIG_PCM_BYTESPLAYED) to support the
- * Bytes Played feature of the MPlayCustomInterface CI
- */
-const char sOmxSymbianPcmBytesPlayed [] =
- "OMX.Symbian.index.config.audio.pcm.bytesplayed";
-
-
-/**
- * Custom index used by Symbian's OpenMAX IL PCM renderer to select the
- * structure for getting a Bytes Played configuration data item
- */
-#define OMX_SymbianIndexConfigAudioBytesPlayed 0x7F000003
-
-
-/**
- * Custom OpenMAX IL structure to be used as a container for an
- * Bytes Played configuration data item
- */
-struct OMX_SYMBIAN_AUDIO_CONFIG_PCM_BYTESPLAYED
- {
- OMX_U32 nSize; /**< Size of this structure, in Bytes */
- OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
- OMX_U32 nBytesPlayed; /**< the number of bytes played */
- };
-
-
-#endif // OMXILSYMBIANAUDIOPCMEXTENSIONS_H
--- a/omxil/omxilrefcomps/ref_components/audio/pcmrenderer/src/log.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,153 +0,0 @@
-/*
-* Copyright (c) 2004-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:
-*
-*/
-
-
-#ifndef __PCMRENDERER_LOG_H__
-#define __PCMRENDERER_LOG_H__
-
-#include <e32debug.h>
-
-namespace DSD
-{
-
-#ifdef _DEBUG
-
-#ifdef _OMXIL_PCMRENDERER_DEBUG_TRACING_ON
-
-#define DEBUG_PRINTF(a) {DSD::DebugPrintf(__LINE__, __FILE__, a);}
-#define DEBUG_PRINTF2(a, b) {DSD::DebugPrintf(__LINE__, __FILE__, a, b);}
-#define DEBUG_PRINTF3(a, b, c) {DSD::DebugPrintf(__LINE__, __FILE__, a, b, c);}
-#define DEBUG_PRINTF4(a, b, c, d) {DSD::DebugPrintf(__LINE__, __FILE__, a, b, c, d);}
-#define DEBUG_PRINTF5(a, b, c, d, e) {DSD::DebugPrintf(__LINE__, __FILE__, a, b, c, d, e);}
-
-#define DEBUG_CODE_SECTION(a) TRAP_IGNORE({ a; })
-
-class TTruncateOverflowHandler16 : public TDes16Overflow
- {
- public:
- virtual void Overflow( TDes16& aDes );
- };
-
-inline void TTruncateOverflowHandler16::Overflow( TDes16& aDes)
- {
- _LIT(KErrOverflowMsg,"Descriptor Overflow, hence value truncated");
- if( aDes.MaxLength() >= KErrOverflowMsg().Length() + aDes.Length() )
- aDes.Append(KErrOverflowMsg);
- }
-
-class TTruncateOverflowHandler8 : public TDes8Overflow
- {
- public:
- virtual void Overflow( TDes8& aDes );
- };
-
-inline void TTruncateOverflowHandler8::Overflow( TDes8& aDes)
- {
- _LIT(KErrOverflowMsg,"Descriptor Overflow, hence value truncated");
- if( aDes.MaxLength() >= KErrOverflowMsg().Length() + aDes.Length() )
- aDes.Append(KErrOverflowMsg);
- }
-
-// UTF-8 overload of the DebufPrintf method. Should be used by default,
-// since it's cheaper both in CPU cycles and stack space.
-
-inline void DebugPrintf(TInt aLine, char* aFile, TRefByValue<const TDesC8> aFormat, ...)
- {
- TTruncateOverflowHandler8 overflowHandler8;
- VA_LIST list;
- //coverity[var_decl]
- // Disabled Coverity warning, since it does not support vararg and throws a warning
- VA_START(list, aFormat);
-
- TTime now;
- now.HomeTime();
-
- TBuf8<1024> buffer;
- _LIT8(KSwiLogPrefix, "[pcmrend] ");
- _LIT8(KSwiLineFileFormat, "TID[%d] : [%s:%d] -- ");
- buffer.Append(KSwiLogPrefix);
- RThread thread;
- TUint threadId = thread.Id();
- thread.Close();
- RProcess proc;
- TFileName fName = proc.FileName();
- proc.Close();
- buffer.AppendFormat(KSwiLineFileFormat, threadId, aFile, aLine);
- buffer.AppendFormatList(aFormat, list ,&overflowHandler8 );
- // coverity[uninit_use_in_call]
- // See comment on Coverity at the start of the function. The comment above silences a Coverity false positive
- buffer.Append(_L8("\r\n"));
-
- RDebug::RawPrint(buffer);
-
- VA_END(list);
- }
-
-// Unicode DebufPrintf overload
-
-inline void DebugPrintf(TInt aLine, char* aFile, TRefByValue<const TDesC16> aFormat, ...)
- {
- TTruncateOverflowHandler16 overflowHandler16;
- VA_LIST list;
- VA_START(list, aFormat);
-
- TTime now;
- now.HomeTime();
-
- TBuf8<256> header;
- _LIT8(KSwiLogPrefix, "[pcmrenderer] ");
- _LIT8(KSwiLineFileFormat, "%Ld Line: % 5d, File: %s -- ");
- header.Append(KSwiLogPrefix);
- header.AppendFormat(KSwiLineFileFormat, now.Int64(), aLine, aFile);
-
- TBuf<1024> buffer;
- buffer.Copy(header);
- buffer.AppendFormatList(aFormat, list ,&overflowHandler16);
- buffer.Append(_L("\r\n"));
-
- RDebug::RawPrint(buffer);
-
- VA_END(list);
- }
-#else
-
-#define DEBUG_PRINTF(a)
-#define DEBUG_PRINTF2(a, b)
-#define DEBUG_PRINTF3(a, b, c)
-#define DEBUG_PRINTF4(a, b, c, d)
-#define DEBUG_PRINTF5(a, b, c, d, e)
-
-#define DEBUG_CODE_SECTION(a)
-
-#endif
-
-#else
-
-#define DEBUG_PRINTF(a)
-#define DEBUG_PRINTF2(a, b)
-#define DEBUG_PRINTF3(a, b, c)
-#define DEBUG_PRINTF4(a, b, c, d)
-#define DEBUG_PRINTF5(a, b, c, d, e)
-
-#define DEBUG_CODE_SECTION(a)
-
-#endif
-
-
-} // namespace DSD
-
-#endif // __PCMRENDERER_LOG_H__
--- a/omxil/omxilrefcomps/ref_components/audio/pcmrenderer/src/omxilpcmrenderer.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,259 +0,0 @@
-/*
-* Copyright (c) 2008-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:
-*
-*/
-
-
-/**
- @file
- @internalComponent
-*/
-
-#include "omxilcallbackmanager.h"
-#include "omxilfsm.h"
-#include "omxilportmanager.h"
-#include "omxilspecversion.h"
-#include "omxilclientclockport.h"
-#include <openmax/il/loader/omxilsymbiancomponentif.h>
-#include "log.h"
-#include "omxilpcmrenderer.h"
-#include "omxilpcmrendererapb0port.h"
-#include "omxilpcmrendererprocessingfunction.h"
-#include "omxilpcmrendererconfigmanager.h"
-#include "omxilpcmrenderer.hrh"
-
-
-const TUint8 COmxILPcmRenderer::iComponentVersionMajor;
-const TUint8 COmxILPcmRenderer::iComponentVersionMinor;
-const TUint8 COmxILPcmRenderer::iComponentVersionRevision;
-const TUint8 COmxILPcmRenderer::iComponentVersionStep;
-
-
-OMXIL_COMPONENT_ECOM_ENTRYPOINT(KUidSymbianOmxILPcmRenderer);
-
-// Component Entry Point
-OMX_ERRORTYPE OMX_ComponentInit(OMX_HANDLETYPE aComponent)
- {
- // This method should be called as a result of a OMX_GetHandle call. Let's
- // return something that is consistent with the return codes allowed for
- // that API call.
- return COmxILComponent::SymbianErrorToGetHandleError(COmxILPcmRenderer::CreateComponent(aComponent));
- }
-
-
-TInt COmxILPcmRenderer::CreateComponent(OMX_HANDLETYPE aComponent)
- {
- DEBUG_PRINTF(_L8("COmxILPcmRenderer::CreateComponent"));
-
- COmxILPcmRenderer* self = new COmxILPcmRenderer();
-
- if (!self)
- {
- return KErrNoMemory;
- }
-
- TRAPD(err, self->ConstructL(aComponent));
- if (err != KErrNone)
- {
- delete self;
- }
- return err;
-
- }
-
-void COmxILPcmRenderer::ConstructL(OMX_HANDLETYPE aComponent)
- {
- DEBUG_PRINTF(_L8("COmxILPcmRenderer::ConstructL"));
-
- // STEP 1: Initialize the data received from the IL Core
- ipHandle = static_cast<OMX_COMPONENTTYPE*>(aComponent);
- ipAppData = 0;
- ipCallbacks = 0;
-
- // STEP 2: Create the call backs manager...
-
-#ifdef _OMXIL_PCMRENDERER_INCONTEXT_CALLBACKMANAGER_ON
- ipCallbackManager =
- COmxILInContextCallbackManager::NewL(ipHandle, ipAppData, ipCallbacks);
-#else
- ipCallbackManager =
- COmxILCallbackManager::NewL(ipHandle, ipAppData, ipCallbacks);
-#endif
-
- // STEP 3: Create the PCM renderer-specific Processing Function...
-
- // ...create PCM renderer component Client Clock port
- iClientClockPort = ConstructClientClockPortL();
-
- ipProcessingFunction =
- COmxILPcmRendererProcessingFunction::NewL(*ipCallbackManager, *iClientClockPort);
-
- // STEP 4: Create Port manager...
- ipPortManager = COmxILPortManager::NewL
- (
- *ipProcessingFunction, // The component's processing function
- *ipCallbackManager, // The call back manager object
- iOmxILVersion, // Component's OMX Version
- 1, // The number of audio ports in this component
- KPCMRENDERER_APB0PORT_INDEX, // The starting audio port index
- 0, // The number of image ports in this component
- 0, // The starting image port index
- 0, // The number of video ports in this component
- 0, // The starting video port index
- 1, // The number of other ports in this component
- KPCMRENDERER_OPB0PORT_INDEX // The starting other port index
- );
-
- // ...create PCM renderer component ports (no OPB0 port)
- ipb0Port = ConstructAPB0PortL();
-
- // .. and add them to the port manager...
- User::LeaveIfError(ipPortManager->AddPort(ipb0Port, OMX_DirInput));
-
- User::LeaveIfError(ipPortManager->AddPort(iClientClockPort, OMX_DirInput));
-
- // STEP 5: Create the non-port related configuration manager...
- RPointerArray<TDesC8> componentRoles;
- CleanupClosePushL(componentRoles);
- User::LeaveIfError(componentRoles.Append(&KSymbianOmxILPcmRendererRole()));
-
- ipConfigManager = COmxILPcmRendererConfigManager::NewL(
- *ipPortManager,
- *static_cast<COmxILPcmRendererProcessingFunction*>(ipProcessingFunction),
- KSymbianOmxILPcmRendererName,
- TOmxILVersion(iComponentVersionMajor,
- iComponentVersionMinor,
- iComponentVersionRevision,
- iComponentVersionStep),
- componentRoles);
-
- CleanupStack::Pop(); // componentRoles
- componentRoles.Close(); // Must not destroy pointers
-
- // STEP 6: Create the FSM object...
- ipFsm = COmxILFsm::NewL(*this,
- *ipProcessingFunction,
- *ipPortManager,
- *ipConfigManager,
- *ipCallbackManager);
-
- // And finally, let's get everything started
- InitComponentL();
-
- }
-
-COmxILPcmRenderer::COmxILPcmRenderer()
- :
- iOmxILVersion(TOmxILSpecVersion())
- {
- DEBUG_PRINTF(_L8("COmxILPcmRenderer::COmxILPcmRenderer"));
- }
-
-COmxILPcmRenderer::~COmxILPcmRenderer()
- {
- DEBUG_PRINTF(_L8("COmxILPcmRenderer::~COmxILPcmRenderer"));
-
- delete ipProcessingFunction;
- delete ipPortManager;
- delete ipb0Port;
- delete iClientClockPort;
- delete ipConfigManager;
- delete ipFsm;
- delete ipCallbackManager;
- }
-
-
-COmxILPcmRendererAPB0Port* COmxILPcmRenderer::ConstructAPB0PortL() const
- {
- DEBUG_PRINTF(_L8("COmxILPcmRenderer::ConstructAPB0PortL"));
-
- RArray<OMX_AUDIO_CODINGTYPE> supportedAudioFormats;
- CleanupClosePushL(supportedAudioFormats);
- supportedAudioFormats.AppendL(OMX_AUDIO_CodingPCM);
-
- OMX_AUDIO_PARAM_PCMMODETYPE paramPcmModeType;
- paramPcmModeType.nSize = sizeof(OMX_AUDIO_PARAM_PCMMODETYPE);
- paramPcmModeType.nVersion = iOmxILVersion;
- paramPcmModeType.nPortIndex = KPCMRENDERER_APB0PORT_INDEX;
- paramPcmModeType.nChannels = KDefaultNumberChannels;
- paramPcmModeType.eNumData = OMX_NumericalDataSigned;
- paramPcmModeType.eEndian = OMX_EndianBig;
- paramPcmModeType.bInterleaved = OMX_TRUE;
- paramPcmModeType.nBitPerSample = KDefaultBitPerSample;
- paramPcmModeType.nSamplingRate = KDefaultSampleRate;
- paramPcmModeType.ePCMMode = OMX_AUDIO_PCMModeLinear;
- paramPcmModeType.eChannelMapping[0] = OMX_AUDIO_ChannelLF;
- paramPcmModeType.eChannelMapping[1] = OMX_AUDIO_ChannelRF;
-
- OMX_AUDIO_CONFIG_VOLUMETYPE configAudioVolume;
- configAudioVolume.nSize = sizeof(OMX_AUDIO_CONFIG_VOLUMETYPE);
- configAudioVolume.nVersion = iOmxILVersion;
- configAudioVolume.nPortIndex = KPCMRENDERER_APB0PORT_INDEX;
- configAudioVolume.bLinear = OMX_FALSE;
- configAudioVolume.sVolume.nValue = 50;
- configAudioVolume.sVolume.nMin = 0;
- configAudioVolume.sVolume.nMax = 100;
-
- OMX_AUDIO_CONFIG_MUTETYPE configAudioMute;
- configAudioMute.nSize = sizeof(OMX_AUDIO_CONFIG_MUTETYPE);
- configAudioMute.nVersion = iOmxILVersion;
- configAudioMute.nPortIndex = KPCMRENDERER_APB0PORT_INDEX;
- configAudioMute.bMute = OMX_FALSE;
- TOmxILCommonPortData portData(iOmxILVersion, // OMX specification version information
- KPCMRENDERER_APB0PORT_INDEX,// Port number the structure applies to
- OMX_DirInput, // Direction of this port
- 1, // The minimum number of buffers this port requires
- 15360, // Minimum size, in bytes, for buffers to be used for this port
- OMX_PortDomainAudio, // Domain of the port
- OMX_FALSE, // Buffers contiguous requirement (true or false)
- 0, // Buffer aligment requirements
- OMX_BufferSupplyInput, // supplier preference when tunneling between two ports
- // This component is a sink component so there's no need to
- // propagate buffer marks received on input ports
- COmxILPort:: KBufferMarkPropagationPortNotNeeded);
-
- COmxILPcmRendererAPB0Port* apb0Port = COmxILPcmRendererAPB0Port::NewL(portData,
- supportedAudioFormats,
- paramPcmModeType,
- configAudioVolume,
- configAudioMute);
-
- CleanupStack::PopAndDestroy(&supportedAudioFormats);
- return apb0Port;
- }
-
-COmxILClientClockPort* COmxILPcmRenderer::ConstructClientClockPortL() const
- {
- DEBUG_PRINTF(_L8("COmxILPcmRenderer::ConstructClientClockPortL"));
-
- TOmxILCommonPortData portData(iOmxILVersion,
- KPCMRENDERER_OPB0PORT_INDEX, // port index
- OMX_DirInput,
- 4, // minimum number of buffers
- sizeof(OMX_TIME_MEDIATIMETYPE), // minimum buffer size, in bytes
- OMX_PortDomainOther,
- OMX_FALSE, // do not need contigious buffers
- 0, // byte alignment
- OMX_BufferSupplyUnspecified,
- COmxILPort::KBufferMarkPropagationPortNotNeeded);
-
- RArray<OMX_OTHER_FORMATTYPE> supportedOtherFormats;
- CleanupClosePushL(supportedOtherFormats);
- supportedOtherFormats.AppendL(OMX_OTHER_FormatTime);
- COmxILClientClockPort* aClientClockPort = COmxILClientClockPort::NewL(portData, supportedOtherFormats);
- CleanupStack::PopAndDestroy(&supportedOtherFormats);
-
- return aClientClockPort;
- }
--- a/omxil/omxilrefcomps/ref_components/audio/pcmrenderer/src/omxilpcmrenderer.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-/*
-* Copyright (c) 2008-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:
-*
-*/
-
-
-/**
- @file
- @internalComponent
-*/
-
-#ifndef OMXILPCMRENDERER_H
-#define OMXILPCMRENDERER_H
-
-#include "omxilcomponent.h"
-
-// Forward declarations
-class COmxILPcmRendererAPB0Port;
-class COmxILClientClockPort;
-
-NONSHARABLE_CLASS(COmxILPcmRenderer) : public COmxILComponent
- {
-
-public:
-
- static const TUint8 iComponentVersionMajor = 1;
- static const TUint8 iComponentVersionMinor = 0;
- static const TUint8 iComponentVersionRevision = 0;
- static const TUint8 iComponentVersionStep = 0;
-
-public:
-
- static TInt CreateComponent(OMX_HANDLETYPE aComponent);
-
- ~COmxILPcmRenderer();
-
-private:
-
- COmxILPcmRenderer();
-
- void ConstructL(OMX_HANDLETYPE aComponent);
-
- COmxILPcmRendererAPB0Port* ConstructAPB0PortL() const;
- COmxILClientClockPort* ConstructClientClockPortL() const;
-
-private:
-
- const OMX_VERSIONTYPE iOmxILVersion;
- COmxILPcmRendererAPB0Port* ipb0Port;
- COmxILClientClockPort* iClientClockPort;
- };
-
-#endif // OMXILPCMRENDERER_H
--- a/omxil/omxilrefcomps/ref_components/audio/pcmrenderer/src/omxilpcmrenderer.hrh Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-/*
-* Copyright (c) 2008-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:
-*
-*/
-
-
-#ifndef OMXILPCMRENDERER_HRH
-#define OMXILPCMRENDERER_HRH
-
-#define KUidSymbianOmxILPcmRendererDll 0x1028349B
-#define KUidSymbianOmxILPcmRenderer 0x1028349F
-
-#endif // OMXILPCMRENDERER_HRH
--- a/omxil/omxilrefcomps/ref_components/audio/pcmrenderer/src/omxilpcmrenderer.rss Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
-* Copyright (c) 2008-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:
-*
-*/
-
-
-#include <ecom/registryinfo.rh>
-#include <openmax/il/loader/omxilcomponentif.hrh>
-#include "omxilpcmrenderer.hrh"
-
-RESOURCE REGISTRY_INFO theInfo
- {
- dll_uid = KUidSymbianOmxILPcmRendererDll;
- interfaces =
- {
- INTERFACE_INFO
- {
- interface_uid = KUidOmxILSymbianComponentIf;
- implementations =
- {
- IMPLEMENTATION_INFO
- {
- implementation_uid = KUidSymbianOmxILPcmRenderer;
- version_no = 1;
- display_name = "OMX.SYMBIAN.AUDIO.RENDERER.PCM";
- default_data = "audio_renderer.pcm";
- opaque_data = "";
- }
- };
- }
- };
- }
-
--- a/omxil/omxilrefcomps/ref_components/audio/pcmrenderer/src/omxilpcmrendererapb0port.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,582 +0,0 @@
-/*
-* Copyright (c) 2008-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:
-*
-*/
-
-
-/**
- @file
- @internalComponent
-*/
-
-#include <openmax/il/khronos/v1_x/OMX_Component.h>
-#include "omxilutil.h"
-#include "log.h"
-#include "omxilpcmrendererapb0port.h"
-#include "omxilpcmrendererconst.h"
-
-
-COmxILPcmRendererAPB0Port*
-COmxILPcmRendererAPB0Port::NewL(
- const TOmxILCommonPortData& aCommonPortData,
- const RArray<OMX_AUDIO_CODINGTYPE>& aSupportedAudioFormats,
- const OMX_AUDIO_PARAM_PCMMODETYPE& aParamAudioPcm,
- const OMX_AUDIO_CONFIG_VOLUMETYPE& aConfigAudioVolume,
- const OMX_AUDIO_CONFIG_MUTETYPE& aConfigAudioMute)
- {
- DEBUG_PRINTF(_L8("COmxILPcmRendererAPB0Port::NewL"));
-
- COmxILPcmRendererAPB0Port* self = new (ELeave)COmxILPcmRendererAPB0Port(
- aCommonPortData,
- aParamAudioPcm,
- aConfigAudioVolume,
- aConfigAudioMute);
-
- CleanupStack::PushL(self);
- self->ConstructL(aSupportedAudioFormats);
- CleanupStack::Pop(self);
- return self;
-
- }
-
-
-void
-COmxILPcmRendererAPB0Port::ConstructL(const RArray<OMX_AUDIO_CODINGTYPE>& aSupportedAudioFormats)
- {
- DEBUG_PRINTF(_L8("COmxILPcmRendererAPB0Port::ConstructL"));
- COmxILAudioPort::ConstructL(aSupportedAudioFormats);
- // We have to finish with iParamPortDefinition
- iParamPortDefinition.eDomain = OMX_PortDomainAudio;
- iParamPortDefinition.format.audio.pNativeRender = 0;
-
- iMimeTypeBuf.CreateL(KMimeTypeAudioPcm(), KMimeTypeAudioPcm().Length() + 1);
-
- TUint8* pTUint2 = const_cast<TUint8*>(iMimeTypeBuf.PtrZ());
- iParamPortDefinition.format.audio.cMIMEType = reinterpret_cast<OMX_STRING>(pTUint2);
-
- iParamPortDefinition.format.audio.bFlagErrorConcealment = OMX_FALSE;
- iParamPortDefinition.format.audio.eEncoding = OMX_AUDIO_CodingPCM;
-
- // Init iParamVolumeRamp here...
- iConfigVolumeRamp.nSize = sizeof(OMX_SYMBIAN_AUDIO_CONFIG_PCM_VOLUMERAMP);
- iConfigVolumeRamp.nVersion = TOmxILSpecVersion();
- iConfigVolumeRamp.nPortIndex = iParamPortDefinition.nPortIndex;
- iConfigVolumeRamp.nRampDuration = 0;
- }
-
-
-COmxILPcmRendererAPB0Port::COmxILPcmRendererAPB0Port(
- const TOmxILCommonPortData& aCommonPortData,
- const OMX_AUDIO_PARAM_PCMMODETYPE& aParamAudioPcm,
- const OMX_AUDIO_CONFIG_VOLUMETYPE& aConfigAudioVolume,
- const OMX_AUDIO_CONFIG_MUTETYPE& aConfigAudioMute)
- :
- COmxILAudioPort(aCommonPortData),
- iParamAudioPcm(aParamAudioPcm),
- iConfigAudioVolume(aConfigAudioVolume),
- iConfigAudioMute(aConfigAudioMute)
- {
- DEBUG_PRINTF(_L8("COmxILPcmRendererAPB0Port::COmxILPcmRendererAPB0Port"));
- }
-
-
-COmxILPcmRendererAPB0Port::~COmxILPcmRendererAPB0Port()
- {
- DEBUG_PRINTF(_L8("COmxILPcmRendererAPB0Port::~COmxILPcmRendererAPB0Port"));
-
- CleanUpPort();
- iMimeTypeBuf.Close();
-
- }
-
-
-OMX_ERRORTYPE
-COmxILPcmRendererAPB0Port::SetFormatInPortDefinition(
- const OMX_PARAM_PORTDEFINITIONTYPE& aPortDefinition,
- TBool& aUpdateProcessingFunction)
- {
- DEBUG_PRINTF(_L8("COmxILPcmRendererAPB0Port::SetFormatInPortDefinition"));
- // There's no point on chaging the cMIMEType type of this port
- // Same thing for pNativeRender and eEncoding
- iParamPortDefinition.format.audio.bFlagErrorConcealment =
- aPortDefinition.format.audio.bFlagErrorConcealment;
- // Error concealment not currently needed at the processing function
- aUpdateProcessingFunction = EFalse;
-
- return OMX_ErrorNone;
-
- }
-
-
-TBool
-COmxILPcmRendererAPB0Port::IsTunnelledPortCompatible(
- const OMX_PARAM_PORTDEFINITIONTYPE& aPortDefinition) const
- {
- DEBUG_PRINTF(_L8("COmxILPcmRendererAPB0Port::IsTunnelledPortCompatible"));
-
- // First, the easy checks...
- if(aPortDefinition.eDomain != iParamPortDefinition.eDomain)
- {
- return EFalse;
- }
-
- if(aPortDefinition.format.audio.eEncoding != OMX_AUDIO_CodingPCM)
- {
- return EFalse;
- }
-
- TBool retValue = ETrue;
-
-#ifdef _OMXIL_PCMRENDERER_CHECK_MIME_TYPE_ON
- RBuf8 tunnelMimeTypeBuf;
- tunnelMimeTypeBuf.Create(KMimeTypeAudioPcm().Length() + 1);
- tunnelMimeTypeBuf =
- const_cast<const TUint8*>(
- reinterpret_cast<TUint8*>(aPortDefinition.format.audio.cMIMEType));
-
-
- if (iMimeTypeBuf != tunnelMimeTypeBuf)
- {
- retValue = EFalse;
- }
-
- tunnelMimeTypeBuf.Close();
-#endif
-
- return retValue;
- }
-
-
-OMX_ERRORTYPE
-COmxILPcmRendererAPB0Port::GetLocalOmxParamIndexes(RArray<TUint>& aIndexArray) const
- {
- DEBUG_PRINTF(_L8("COmxILPcmRendererAPB0Port::GetLocalOmxParamIndexes"));
-
- // Always collect local indexes from parent
- OMX_ERRORTYPE omxRetValue =
- COmxILAudioPort::GetLocalOmxParamIndexes(aIndexArray);
-
- if (OMX_ErrorNone != omxRetValue)
- {
- return omxRetValue;
- }
-
- TInt err = aIndexArray.InsertInOrder(OMX_IndexParamAudioPcm);
-
- // Note that index duplication is OK.
- if (KErrNone != err && KErrAlreadyExists != err)
- {
- return OMX_ErrorInsufficientResources;
- }
-
- return OMX_ErrorNone;
-
- }
-
-OMX_ERRORTYPE
-COmxILPcmRendererAPB0Port::GetLocalOmxConfigIndexes(RArray<TUint>& aIndexArray) const
- {
- DEBUG_PRINTF(_L8("COmxILPcmRendererAPB0Port::GetLocalOmxConfigIndexes"));
-
- // Always collect local indexes from parent
- OMX_ERRORTYPE omxRetValue =
- COmxILAudioPort::GetLocalOmxConfigIndexes(aIndexArray);
-
- if (OMX_ErrorNone != omxRetValue)
- {
- return omxRetValue;
- }
-
- TInt err = aIndexArray.InsertInOrder(OMX_IndexConfigAudioVolume);
-
- // Note that index duplication is OK.
- if (KErrNone == err || KErrAlreadyExists == err)
- {
- err = aIndexArray.InsertInOrder(OMX_IndexConfigAudioMute);
-
- if (KErrNone == err || KErrAlreadyExists == err)
- {
- err = aIndexArray.InsertInOrder(
- OMX_SymbianIndexConfigAudioPcmVolumeRamp);
- }
-
- }
-
- if (KErrNone != err && KErrAlreadyExists != err)
- {
- return OMX_ErrorInsufficientResources;
- }
-
- return OMX_ErrorNone;
-
- }
-
-
-OMX_ERRORTYPE
-COmxILPcmRendererAPB0Port::GetParameter(OMX_INDEXTYPE aParamIndex,
- TAny* apComponentParameterStructure) const
- {
- DEBUG_PRINTF(_L8("COmxILPcmRendererAPB0Port::GetParameter"));
-
- OMX_ERRORTYPE omxRetValue = OMX_ErrorNone;
- switch(aParamIndex)
- {
- case OMX_IndexParamAudioPcm:
- {
- if (OMX_ErrorNone !=
- (omxRetValue =
- TOmxILUtil::CheckOmxStructSizeAndVersion(
- apComponentParameterStructure,
- sizeof(OMX_AUDIO_PARAM_PCMMODETYPE))))
- {
- return omxRetValue;
- }
-
- OMX_AUDIO_PARAM_PCMMODETYPE* pPcmMode
- = static_cast<OMX_AUDIO_PARAM_PCMMODETYPE*>(
- apComponentParameterStructure);
-
- *pPcmMode = iParamAudioPcm;
- }
- break;
-
- default:
- {
- // Try the parent's indexes
- return COmxILAudioPort::GetParameter(aParamIndex,
- apComponentParameterStructure);
- }
- };
-
- return OMX_ErrorNone;
-
- }
-
-
-OMX_ERRORTYPE
-COmxILPcmRendererAPB0Port::SetParameter(OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure,
- TBool& aUpdateProcessingFunction)
- {
- DEBUG_PRINTF(_L8("COmxILPcmRendererAPB0Port::SetParameter"));
-
- aUpdateProcessingFunction = EFalse;
-
- OMX_ERRORTYPE omxRetValue = OMX_ErrorNone;
- switch(aParamIndex)
- {
- case OMX_IndexParamAudioPcm:
- {
- if (OMX_ErrorNone !=
- (omxRetValue =
- TOmxILUtil::CheckOmxStructSizeAndVersion(
- const_cast<OMX_PTR>(apComponentParameterStructure),
- sizeof(OMX_AUDIO_PARAM_PCMMODETYPE))))
- {
- return omxRetValue;
- }
-
- const OMX_AUDIO_PARAM_PCMMODETYPE* pPcmMode
- = static_cast<const OMX_AUDIO_PARAM_PCMMODETYPE*>(
- apComponentParameterStructure);
-
- switch (pPcmMode->nSamplingRate)
- {
- case 8000 :
- case 11025 :
- case 12000 :
- case 16000 :
- case 22050 :
- case 24000 :
- case 32000 :
- case 44100 :
- case 48000 :
- break;
- default:
- return OMX_ErrorBadParameter;
- }
-
- switch (pPcmMode->nBitPerSample)
- {
- case 8 :
- case 16 :
- break;
- default:
- return OMX_ErrorBadParameter;
- }
-
- // Set the new default values
- if (iParamAudioPcm.nChannels != pPcmMode->nChannels ||
- iParamAudioPcm.eNumData != pPcmMode->eNumData ||
- iParamAudioPcm.eEndian != pPcmMode->eEndian ||
- iParamAudioPcm.bInterleaved != pPcmMode->bInterleaved ||
- iParamAudioPcm.nBitPerSample != pPcmMode->nBitPerSample ||
- iParamAudioPcm.nSamplingRate != pPcmMode->nSamplingRate ||
- iParamAudioPcm.ePCMMode != pPcmMode->ePCMMode)
- {
- iParamAudioPcm.nChannels = pPcmMode->nChannels;
- iParamAudioPcm.eNumData = pPcmMode->eNumData;
- iParamAudioPcm.eEndian = pPcmMode->eEndian;
- iParamAudioPcm.bInterleaved = pPcmMode->bInterleaved;
- iParamAudioPcm.nBitPerSample = pPcmMode->nBitPerSample;
- iParamAudioPcm.nSamplingRate = pPcmMode->nSamplingRate;
- iParamAudioPcm.ePCMMode = pPcmMode->ePCMMode;
- // This is an indication to the PortManager that the processing
- // function needs to get updated
- aUpdateProcessingFunction = ETrue;
- }
-
- for (TInt i=0; i<OMX_AUDIO_MAXCHANNELS; i++)
- {
- if (iParamAudioPcm.eChannelMapping[i] != pPcmMode->eChannelMapping[i])
- {
- iParamAudioPcm.eChannelMapping[i] = pPcmMode->eChannelMapping[i];
- // This is an indication to the PortManager that the processing
- // function needs to get updated
- aUpdateProcessingFunction = ETrue;
- }
- }
-
- }
- break;
- default:
- {
- // Try the parent's indexes
- return COmxILAudioPort::SetParameter(aParamIndex,
- apComponentParameterStructure,
- aUpdateProcessingFunction);
- }
- };
-
- return OMX_ErrorNone;
-
- }
-
-
-OMX_ERRORTYPE
-COmxILPcmRendererAPB0Port::GetConfig(OMX_INDEXTYPE aConfigIndex,
- TAny* apComponentConfigStructure) const
- {
- DEBUG_PRINTF(_L8("COmxILPcmRendererAPB0Port::GetConfig"));
-
- OMX_ERRORTYPE omxRetValue = OMX_ErrorNone;
- switch(aConfigIndex)
- {
- case OMX_SymbianIndexConfigAudioPcmVolumeRamp:
- {
- if (OMX_ErrorNone !=
- (omxRetValue =
- TOmxILUtil::CheckOmxStructSizeAndVersion(
- apComponentConfigStructure,
- sizeof(OMX_SYMBIAN_AUDIO_CONFIG_PCM_VOLUMERAMP))))
- {
- return omxRetValue;
- }
-
- OMX_SYMBIAN_AUDIO_CONFIG_PCM_VOLUMERAMP*
- pPcmVolumeRamp
- = static_cast<
- OMX_SYMBIAN_AUDIO_CONFIG_PCM_VOLUMERAMP*>(
- apComponentConfigStructure);
-
- *pPcmVolumeRamp = iConfigVolumeRamp;
- }
- break;
-
- case OMX_IndexConfigAudioVolume:
- {
- if (OMX_ErrorNone !=
- (omxRetValue =
- TOmxILUtil::CheckOmxStructSizeAndVersion(
- apComponentConfigStructure,
- sizeof(OMX_AUDIO_CONFIG_VOLUMETYPE))))
- {
- return omxRetValue;
- }
-
- OMX_AUDIO_CONFIG_VOLUMETYPE* pConfigVolume
- = static_cast<OMX_AUDIO_CONFIG_VOLUMETYPE*>(
- apComponentConfigStructure);
-
- *pConfigVolume = iConfigAudioVolume;
- }
- break;
-
- case OMX_IndexConfigAudioMute:
- {
- if (OMX_ErrorNone !=
- (omxRetValue =
- TOmxILUtil::CheckOmxStructSizeAndVersion(
- apComponentConfigStructure,
- sizeof(OMX_AUDIO_CONFIG_MUTETYPE))))
- {
- return omxRetValue;
- }
-
- OMX_AUDIO_CONFIG_MUTETYPE* pConfigMute
- = static_cast<OMX_AUDIO_CONFIG_MUTETYPE*>(
- apComponentConfigStructure);
-
- *pConfigMute = iConfigAudioMute;
- }
- break;
-
- default:
- {
- // There's no need to try the parent indexes as we know there isn't any
- // other config in the parent audio classes
- return OMX_ErrorUnsupportedIndex;
- }
- };
-
- return OMX_ErrorNone;
-
- }
-
-OMX_ERRORTYPE
-COmxILPcmRendererAPB0Port::SetConfig(OMX_INDEXTYPE aConfigIndex,
- const TAny* apComponentConfigStructure,
- TBool& aUpdateProcessingFunction)
- {
- DEBUG_PRINTF(_L8("COmxILPcmRendererAPB0Port::SetConfig"));
-
- aUpdateProcessingFunction = EFalse;
-
- OMX_ERRORTYPE omxRetValue = OMX_ErrorNone;
- switch(aConfigIndex)
- {
- case OMX_SymbianIndexConfigAudioPcmVolumeRamp:
- {
- if (OMX_ErrorNone !=
- (omxRetValue =
- TOmxILUtil::CheckOmxStructSizeAndVersion(
- const_cast<OMX_PTR>(apComponentConfigStructure),
- sizeof(OMX_SYMBIAN_AUDIO_CONFIG_PCM_VOLUMERAMP))))
- {
- return omxRetValue;
- }
-
- const OMX_SYMBIAN_AUDIO_CONFIG_PCM_VOLUMERAMP*
- pPcmVolumeRamp
- = static_cast<
- const OMX_SYMBIAN_AUDIO_CONFIG_PCM_VOLUMERAMP*>(
- apComponentConfigStructure);
-
- if (iConfigVolumeRamp.nRampDuration != pPcmVolumeRamp->nRampDuration)
- {
- // This is an indication to the PortManager that the processing
- // function needs to get updated
- aUpdateProcessingFunction = ETrue;
-
- iConfigVolumeRamp.nRampDuration = pPcmVolumeRamp->nRampDuration;
- }
-
- }
- break;
-
- case OMX_IndexConfigAudioVolume:
- {
- if (OMX_ErrorNone !=
- (omxRetValue =
- TOmxILUtil::CheckOmxStructSizeAndVersion(
- const_cast<OMX_PTR>(apComponentConfigStructure),
- sizeof(OMX_AUDIO_CONFIG_VOLUMETYPE))))
- {
- return omxRetValue;
- }
-
- const OMX_AUDIO_CONFIG_VOLUMETYPE* pConfigVolume
- = static_cast<const OMX_AUDIO_CONFIG_VOLUMETYPE*>(
- apComponentConfigStructure);
-
- // Set the new default values
- if (iConfigAudioVolume.bLinear != pConfigVolume->bLinear ||
- iConfigAudioVolume.sVolume.nValue != pConfigVolume->sVolume.nValue ||
- iConfigAudioVolume.sVolume.nMin != pConfigVolume->sVolume.nMin ||
- iConfigAudioVolume.sVolume.nMax != pConfigVolume->sVolume.nMax)
- {
- iConfigAudioVolume.bLinear = pConfigVolume->bLinear;
- iConfigAudioVolume.sVolume.nValue = pConfigVolume->sVolume.nValue;
- iConfigAudioVolume.sVolume.nMin = pConfigVolume->sVolume.nMin;
- iConfigAudioVolume.sVolume.nMax = pConfigVolume->sVolume.nMax;
- // This is an indication to the PortManager that the processing
- // function needs to get updated
- aUpdateProcessingFunction = ETrue;
- }
-
- }
- break;
- case OMX_IndexConfigAudioMute:
- {
- if (OMX_ErrorNone !=
- (omxRetValue =
- TOmxILUtil::CheckOmxStructSizeAndVersion(
- const_cast<OMX_PTR>(apComponentConfigStructure),
- sizeof(OMX_AUDIO_CONFIG_MUTETYPE))))
- {
- return omxRetValue;
- }
-
- const OMX_AUDIO_CONFIG_MUTETYPE* pConfigMute
- = static_cast<const OMX_AUDIO_CONFIG_MUTETYPE*>(
- apComponentConfigStructure);
-
- if (iConfigAudioMute.bMute != pConfigMute->bMute)
- {
- iConfigAudioMute.bMute = pConfigMute->bMute;
- // This is an indication to the PortManager that the processing
- // function needs to get updated
- aUpdateProcessingFunction = ETrue;
- }
-
- }
- break;
- default:
- {
- // There's no need to try the parent indexes as we know there isn't any
- // other config in the parent audio classes
- return OMX_ErrorUnsupportedIndex;
- }
- };
-
- return OMX_ErrorNone;
- }
-
-OMX_ERRORTYPE
-COmxILPcmRendererAPB0Port::GetExtensionIndex(
- OMX_STRING aParameterName,
- OMX_INDEXTYPE* apIndexType) const
- {
- DEBUG_PRINTF(_L8("COmxILPcmRendererAPB0Port::GetExtensionIndex"));
-
- TPtrC8 requestedParameterNamePtr(
- const_cast<const TUint8*>(
- reinterpret_cast<TUint8*>(aParameterName)));
-
- TPtrC8 parameterNamePtr(
- reinterpret_cast<const TUint8*>(sOmxSymbianPcmVolumeRamp));
-
- if (requestedParameterNamePtr == parameterNamePtr)
- {
- *apIndexType =
- static_cast<OMX_INDEXTYPE>(
- OMX_SymbianIndexConfigAudioPcmVolumeRamp);
-
- return OMX_ErrorNone;
- }
-
- *apIndexType = OMX_IndexMax;
- return OMX_ErrorUnsupportedIndex;
- }
--- a/omxil/omxilrefcomps/ref_components/audio/pcmrenderer/src/omxilpcmrendererapb0port.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-/*
-* Copyright (c) 2008-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:
-*
-*/
-
-
-/**
- @file
- @internalComponent
-*/
-
-#ifndef OMXILPCMRENDERERAPB0PORT_H
-#define OMXILPCMRENDERERAPB0PORT_H
-
-#include "omxilaudioport.h"
-#include "omxilsymbianaudiopcmextensions.h"
-
-class COmxILPcmRendererAPB0Port : public COmxILAudioPort
- {
-
-public:
-
- static COmxILPcmRendererAPB0Port* NewL(
- const TOmxILCommonPortData& aCommonPortData,
- const RArray<OMX_AUDIO_CODINGTYPE>& aSupportedAudioFormats,
- const OMX_AUDIO_PARAM_PCMMODETYPE& aParamAudioPcm,
- const OMX_AUDIO_CONFIG_VOLUMETYPE& aConfigAudioVolume,
- const OMX_AUDIO_CONFIG_MUTETYPE& aConfigAudioMute);
-
-
- ~COmxILPcmRendererAPB0Port();
-
- OMX_ERRORTYPE GetLocalOmxParamIndexes(RArray<TUint>& aIndexArray) const;
-
- OMX_ERRORTYPE GetLocalOmxConfigIndexes(RArray<TUint>& aIndexArray) const;
-
- OMX_ERRORTYPE GetParameter(OMX_INDEXTYPE aParamIndex,
- TAny* apComponentParameterStructure) const;
-
- OMX_ERRORTYPE SetParameter(OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure,
- TBool& aUpdateProcessingFunction);
-
- OMX_ERRORTYPE GetConfig(OMX_INDEXTYPE aConfigIndex,
- TAny* apComponentConfigStructure) const;
-
- OMX_ERRORTYPE SetConfig(OMX_INDEXTYPE aConfigIndex,
- const TAny* apComponentConfigStructure,
- TBool& aUpdateProcessingFunction);
-
- OMX_ERRORTYPE GetExtensionIndex(OMX_STRING aParameterName,
- OMX_INDEXTYPE* apIndexType) const;
-
-protected:
-
- COmxILPcmRendererAPB0Port(
- const TOmxILCommonPortData& aCommonPortData,
- const OMX_AUDIO_PARAM_PCMMODETYPE& aParamAudioPcm,
- const OMX_AUDIO_CONFIG_VOLUMETYPE& aConfigAudioVolume,
- const OMX_AUDIO_CONFIG_MUTETYPE& aConfigAudioMute);
-
- void ConstructL(const RArray<OMX_AUDIO_CODINGTYPE>& aSupportedAudioFormats);
-
- OMX_ERRORTYPE SetFormatInPortDefinition(
- const OMX_PARAM_PORTDEFINITIONTYPE& aPortDefinition,
- TBool& aUpdateProcessingFunction);
-
- TBool IsTunnelledPortCompatible(
- const OMX_PARAM_PORTDEFINITIONTYPE& aPortDefinition) const;
-
-protected:
-
- OMX_AUDIO_PARAM_PCMMODETYPE iParamAudioPcm;
- OMX_SYMBIAN_AUDIO_CONFIG_PCM_VOLUMERAMP iConfigVolumeRamp;
- OMX_AUDIO_CONFIG_VOLUMETYPE iConfigAudioVolume;
- OMX_AUDIO_CONFIG_MUTETYPE iConfigAudioMute;
- RBuf8 iMimeTypeBuf;
-
- };
-
-#endif // OMXILPCMRENDERERAPB0PORT_H
--- a/omxil/omxilrefcomps/ref_components/audio/pcmrenderer/src/omxilpcmrendererconfigmanager.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,183 +0,0 @@
-/*
-* Copyright (c) 2008-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:
-*
-*/
-
-
-/**
- @file
- @internalComponent
-*/
-
-#include "omxilutil.h"
-#include "omxilsymbianaudiopcmextensions.h"
-#include "log.h"
-#include "omxilpcmrendererconfigmanager.h"
-#include "omxilpcmrendererprocessingfunction.h"
-
-
-
-COmxILPcmRendererConfigManager*
-COmxILPcmRendererConfigManager::NewL(
- COmxILPortManager& aPortManager,
- COmxILPcmRendererProcessingFunction& aProcessingFunction,
- const TDesC8& aComponentName,
- const OMX_VERSIONTYPE& aComponentVersion,
- const RPointerArray<TDesC8>& aComponentRoleList)
- {
- DEBUG_PRINTF(_L8("COmxILPcmRendererConfigManager::NewL"));
- ASSERT(aComponentName.Length() && aComponentRoleList.Count());
-
- COmxILPcmRendererConfigManager* self = new (ELeave)COmxILPcmRendererConfigManager(aPortManager, aProcessingFunction);
- CleanupStack::PushL(self);
- self->ConstructL(aComponentName,
- aComponentVersion,
- aComponentRoleList);
- CleanupStack::Pop(self);
- return self;
-
- }
-
-void
-COmxILPcmRendererConfigManager::ConstructL(const TDesC8& aComponentName,
- const OMX_VERSIONTYPE& aComponentVersion,
- const RPointerArray<TDesC8>& aComponentRoleList)
- {
- DEBUG_PRINTF(_L8("COmxILPcmRendererConfigManager::ConstructL"));
-
- COmxILConfigManager::ConstructL(aComponentName, aComponentVersion, aComponentRoleList);
-
- ManagedConfigIndexes().InsertInOrderL(OMX_SymbianIndexConfigAudioBytesPlayed);
- }
-
-COmxILPcmRendererConfigManager::COmxILPcmRendererConfigManager(COmxILPortManager& aPortManager,
- COmxILPcmRendererProcessingFunction& aProcessingFunction)
- :
- COmxILConfigManager(aPortManager),
- iProcessingFunction(aProcessingFunction)
- {
- DEBUG_PRINTF(_L8("COmxILPcmRendererConfigManager::COmxILPcmRendererConfigManager"));
-
- }
-
-COmxILPcmRendererConfigManager::~COmxILPcmRendererConfigManager()
- {
- DEBUG_PRINTF(_L8("COmxILPcmRendererConfigManager::~COmxILPcmRendererConfigManager"));
-
- }
-
-OMX_ERRORTYPE
-COmxILPcmRendererConfigManager::GetConfig(OMX_INDEXTYPE aConfigIndex,
- TAny* apComponentConfigStructure) const
- {
- DEBUG_PRINTF(_L8("COmxILPcmRendererConfigManager::GetConfig"));
-
- TInt index = FindConfigIndex(aConfigIndex);
- if (KErrNotFound == index)
- {
- return OMX_ErrorUnsupportedIndex;
- }
-
- OMX_ERRORTYPE omxRetValue = OMX_ErrorNone;
- switch(aConfigIndex)
- {
- case OMX_SymbianIndexConfigAudioBytesPlayed:
- {
- if (OMX_ErrorNone !=
- (omxRetValue =
- TOmxILUtil::CheckOmxStructSizeAndVersion(
- apComponentConfigStructure,
- sizeof(OMX_SYMBIAN_AUDIO_CONFIG_PCM_BYTESPLAYED))))
- {
- return omxRetValue;
- }
-
- OMX_SYMBIAN_AUDIO_CONFIG_PCM_BYTESPLAYED*
- pPcmBytesPlayed
- = static_cast<
- OMX_SYMBIAN_AUDIO_CONFIG_PCM_BYTESPLAYED*>(
- apComponentConfigStructure);
-
- pPcmBytesPlayed->nBytesPlayed = iProcessingFunction.GetBytesPlayed();
- }
- break;
-
- default:
- {
- omxRetValue = COmxILConfigManager::GetConfig(aConfigIndex, apComponentConfigStructure);
- }
- };
-
- return omxRetValue;
- }
-
-OMX_ERRORTYPE
-COmxILPcmRendererConfigManager::SetConfig(OMX_INDEXTYPE aConfigIndex,
- const TAny* apComponentConfigStructure)
-
- {
- DEBUG_PRINTF(_L8("COmxILPcmRendererConfigManager::SetConfig"));
-
- TInt index = FindConfigIndex(aConfigIndex);
- if (KErrNotFound == index)
- {
- return OMX_ErrorUnsupportedIndex;
- }
-
- OMX_ERRORTYPE omxRetValue = OMX_ErrorNone;
- switch(aConfigIndex)
- {
- case OMX_SymbianIndexConfigAudioBytesPlayed:
- {
- omxRetValue = OMX_ErrorUnsupportedSetting;
- }
- break;
-
- default:
- {
- omxRetValue = COmxILConfigManager::SetConfig(aConfigIndex, apComponentConfigStructure);
- }
- };
-
- return omxRetValue;
-
- }
-
-OMX_ERRORTYPE
-COmxILPcmRendererConfigManager::GetExtensionIndex(
- OMX_STRING aParameterName,
- OMX_INDEXTYPE* apIndexType) const
- {
- DEBUG_PRINTF(_L8("COmxILPcmRendererConfigManager::GetExtensionIndex"));
-
- TPtrC8 requestedParameterNamePtr(
- const_cast<const TUint8*>(
- reinterpret_cast<TUint8*>(aParameterName)));
-
- TPtrC8 parameterNamePtr(
- reinterpret_cast<const TUint8*>(sOmxSymbianPcmBytesPlayed));
-
- if (requestedParameterNamePtr == parameterNamePtr)
- {
- *apIndexType =
- static_cast<OMX_INDEXTYPE>(
- OMX_SymbianIndexConfigAudioBytesPlayed);
-
- return OMX_ErrorNone;
- }
-
- *apIndexType = OMX_IndexMax;
- return OMX_ErrorUnsupportedIndex;
- }
--- a/omxil/omxilrefcomps/ref_components/audio/pcmrenderer/src/omxilpcmrendererconfigmanager.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-/*
-* Copyright (c) 2008-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:
-*
-*/
-
-
-/**
- @file
- @internalComponent
-*/
-
-#ifndef OMXILPCMRENDERERCONFIGMANAGER_H
-#define OMXILPCMRENDERERCONFIGMANAGER_H
-
-#include "omxilconfigmanager.h"
-
-// class forwarding
-class COmxILPcmRendererProcessingFunction;
-
-/**
- This class is a placeholder for those PCM Renderer parameters and configs that
- apply to the component as a whole and not to a specific port in the
- component.
- */
-NONSHARABLE_CLASS(COmxILPcmRendererConfigManager) : public COmxILConfigManager
- {
-
-public:
-
- static COmxILPcmRendererConfigManager* NewL(
- COmxILPortManager& aPortManager,
- COmxILPcmRendererProcessingFunction& aProcessingFunction,
- const TDesC8& aComponentName,
- const OMX_VERSIONTYPE& aComponentVersion,
- const RPointerArray<TDesC8>& aComponentRoleList);
-
- ~COmxILPcmRendererConfigManager();
-
- OMX_ERRORTYPE GetConfig(
- OMX_INDEXTYPE aConfigIndex,
- TAny* apComponentConfigStructure) const;
-
- OMX_ERRORTYPE SetConfig(
- OMX_INDEXTYPE aConfigIndex,
- const TAny* apComponentConfigStructure);
-
- OMX_ERRORTYPE GetExtensionIndex(
- OMX_STRING aParameterName,
- OMX_INDEXTYPE* apIndexType) const;
-
-protected:
-
- COmxILPcmRendererConfigManager(COmxILPortManager& aPortManager,
- COmxILPcmRendererProcessingFunction& aProcessingFunction);
-
- void ConstructL(const TDesC8& aComponentName,
- const OMX_VERSIONTYPE& aComponentVersion,
- const RPointerArray<TDesC8>& aComponentRoleList);
-
-private:
- COmxILPcmRendererProcessingFunction& iProcessingFunction;
- };
-
-#endif // OMXILPCMRENDERERCONFIGMANAGER_H
--- a/omxil/omxilrefcomps/ref_components/audio/pcmrenderer/src/omxilpcmrendererconst.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-/*
-* Copyright (c) 2008-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:
-*
-*/
-
-
-/**
- @file
- @internalComponent
-*/
-
-
-#ifndef OMXILPCMRENDERERCONST_H_
-#define OMXILPCMRENDERERCONST_H_
-
-#ifdef SYMBIAN_MDF_SHAREDCHUNK_SOUNDDRIVER
- #include "mdasoundadapter.h"
-#else
- #include <mdasound.h>
-#endif
-
-
-_LIT8(KSymbianOmxILPcmRendererName, "OMX.SYMBIAN.AUDIO.RENDERER.PCM");
-_LIT8(KSymbianOmxILPcmRendererRole, "audio_renderer.pcm");
-_LIT8(KMimeTypeAudioPcm, "audio/pcm");
-
-const OMX_U32 KPCMRENDERER_APB0PORT_INDEX = 0;
-const OMX_U32 KPCMRENDERER_OPB0PORT_INDEX = 1;
-
-const TInt KBufferSize = 16384; // we need 16k to hold a pcm packet
-const TInt KDefaultSampleRate = 48000; // check out ./boardsupport/omap3variants/tiomap3bsp/variant/common/soundsc/variant_sound.cpp to find out the supporting rates
-const TInt KDefaultNumberChannels = 2;
-const TInt KDefaultBitPerSample = 16;
-const TInt KMaxVolume = 255;
-const TInt KMedianVolume = 226;
-const TInt KDefaultVolume = KMedianVolume;
-const TInt KMinBufferMilliseconds = 100; // Minimum number of milliseconds allowed in a buffer
-
-// Timeout to call RSoundSc::TimePlayed() every second
-// Under normal operation, the timer will return exactly one sec.
-// It is particular useful to compare the value from TimePlayed()
-static const TInt KPcmRendererTimePlayedDelay = 998113;
-
-const TBool KDefaultMuted = EFalse;
-
-const RMdaDevSound::TMdaSoundEncoding KDefaultEncoding = RMdaDevSound::EMdaSoundEncoding16BitPCM;
-
-#endif /*OMXILPCMRENDERERCONST_H_*/
--- a/omxil/omxilrefcomps/ref_components/audio/pcmrenderer/src/omxilpcmrendererprocessingfunction.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1651 +0,0 @@
-/*
-* Copyright (c) 2008-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:
-*
-*/
-
-
-/**
- @file
- @internalComponent
-*/
-
-#include <openmax/il/khronos/v1_x/OMX_Audio.h>
-
-#ifdef SYMBIAN_MDF_SHAREDCHUNK_SOUNDDRIVER
-#include <d32soundsc.h>
-#endif //SYMBIAN_MDF_SHAREDCHUNK_SOUNDDRIVER
-
-#include "log.h"
-#include "omxilcallbacknotificationif.h"
-#include "omxilclockcomponentcmdsif.h"
-#include "omxilsymbianaudiopcmextensions.h"
-#include "omxilpcmrendererprocessingfunction.h"
-
-const TInt COmxILPcmRendererProcessingFunction::CPFHelper::KMaxMsgQueueEntries;
-
-COmxILPcmRendererProcessingFunction*
-COmxILPcmRendererProcessingFunction::NewL(MOmxILCallbackNotificationIf& aCallbacks,
- MOmxILClockComponentCmdsIf& aClientClockPort)
- {
- DEBUG_PRINTF(_L8("COmxILPcmRendererProcessingFunction::NewL"));
-
- COmxILPcmRendererProcessingFunction* self =
- new (ELeave)COmxILPcmRendererProcessingFunction(aCallbacks, aClientClockPort);
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
-
- }
-
-void
-COmxILPcmRendererProcessingFunction::ConstructL()
- {
- DEBUG_PRINTF(_L8("COmxILPcmRendererProcessingFunction::ConstructL"));
-
- iAudioDevice = CAudioDevice::NewL(*this);
- iPFHelper = CPFHelper::NewL(*iAudioDevice);
- }
-
-COmxILPcmRendererProcessingFunction::COmxILPcmRendererProcessingFunction(
- MOmxILCallbackNotificationIf& aCallbacks,
- MOmxILClockComponentCmdsIf& aClientClockPort)
- :
- COmxILProcessingFunction(aCallbacks),
- iClientClockPortPtr(&aClientClockPort)
- {
- DEBUG_PRINTF(_L8("COmxILPcmRendererProcessingFunction::COmxILPcmRendererProcessingFunction"));
-
- }
-
-COmxILPcmRendererProcessingFunction::~COmxILPcmRendererProcessingFunction()
- {
- DEBUG_PRINTF(_L8("COmxILPcmRendererProcessingFunction::~COmxILPcmRendererProcessingFunction"));
-
- // Check in case the Sound Device has not been closed. That would happen in
- // an scenario where the component is not being deleted in an orderer way.
- if(iAudioDevice && iPFHelper &&
- (iState == OMX_StateInvalid ||
- iState == OMX_StateExecuting ||
- iState == OMX_StatePause))
- {
- // Ignore error if the following call fails
- iPFHelper->CloseDeviceOnError();
- }
-
- // Buffer headers are not owned by the processing function
- iBuffersToEmpty.Close();
- iBuffersEmptied.Close();
- delete iAudioDevice;
- delete iPFHelper;
- }
-
-
-OMX_ERRORTYPE
-COmxILPcmRendererProcessingFunction::StateTransitionIndication(COmxILFsm::TStateIndex aNewState)
- {
- DEBUG_PRINTF(_L8("COmxILPcmRendererProcessingFunction::StateTransitionIndication"));
-
- OMX_ERRORTYPE err = OMX_ErrorNone;
- switch(aNewState)
- {
- case COmxILFsm::EStateExecuting:
- {
- DEBUG_PRINTF(_L8("StateTransitionIndication : OMX_StateExecuting"));
- if (iPFHelper->Execute() != KErrNone)
- {
- return OMX_ErrorInsufficientResources;
- }
- }
- break;
- case COmxILFsm::EStateInvalid:
- {
- DEBUG_PRINTF(_L8("StateTransitionIndication : OMX_StateInvalid"));
- if (iPFHelper->Stop() != KErrNone)
- { // InsufficientResources to stop???
- return OMX_ErrorInsufficientResources;
- }
- }
- break;
- case COmxILFsm::EStatePause:
- {
- DEBUG_PRINTF(_L8("StateTransitionIndication : OMX_StatePause"));
- err = iAudioDevice->MoveToPausedState();
- }
- break;
- case COmxILFsm::EStateIdle:
- {
- DEBUG_PRINTF(_L8("StateTransitionIndication : OMX_StateIdle"));
- iBuffersToEmpty.Reset();
- if (iPFHelper->Stop() != KErrNone)
- { // InsufficientResources to stop???
- return OMX_ErrorInsufficientResources;
- }
- }
- break;
- case COmxILFsm::EStateLoaded:
- case COmxILFsm::EStateWaitForResources:
- {
- DEBUG_PRINTF(_L8("StateTransitionIndication : OMX_StateLoaded, OMX_StateWaitForResources"));
- if (iPFHelper->Stop() != KErrNone)
- { // InsufficientResources to stop???
- return OMX_ErrorInsufficientResources;
- }
- }
- break;
- case COmxILFsm::ESubStateLoadedToIdle:
- {
- DEBUG_PRINTF(_L8("StateTransitionIndication : ESubStateLoadedToIdle"));
- if (iPFHelper->OpenDevice() != KErrNone)
- {
- return OMX_ErrorInsufficientResources;
- }
- }
- break;
- case COmxILFsm::ESubStateIdleToLoaded:
- {
- DEBUG_PRINTF(_L8("StateTransitionIndication : ESubStateIdleToLoaded"));
- if (iPFHelper->CloseDevice() != KErrNone)
- { // InsufficientResources to close???
- return OMX_ErrorInsufficientResources;
- }
- }
- break;
- case COmxILFsm::ESubStateExecutingToIdle:
- case COmxILFsm::ESubStatePauseToIdle:
- {
- // Ignore these transitions...
- return OMX_ErrorNone;
- }
- default:
- {
- // Always ASSERT; This would be a problem in the framework.
- ASSERT(0);
- return OMX_ErrorIncorrectStateTransition;
- }
- };
-
- return err;
-
- }
-
-
-OMX_ERRORTYPE
-COmxILPcmRendererProcessingFunction::BufferFlushingIndication(
- TUint32 aPortIndex,
- OMX_DIRTYPE aDirection)
- {
- DEBUG_PRINTF2(_L8("COmxILPcmRendererProcessingFunction::BufferFlushingIndication : aPortIndex[%d]"), aPortIndex);
-
- if ((aPortIndex == OMX_ALL && aDirection == OMX_DirMax) ||
- (aPortIndex == KPCMRENDERER_APB0PORT_INDEX && aDirection == OMX_DirInput))
- {
- // If we are currently processing a buffer then cancel
- if (iPFHelper->CancelDevice() != KErrNone)
- {
- return OMX_ErrorInsufficientResources;
- }
-
- // Send BufferDone notifications for each emptied buffer...
- FlushBufferList(iBuffersEmptied);
-
- // Send BufferDone notifications for each pending buffer...
- FlushBufferList(iBuffersToEmpty);
-
- return OMX_ErrorNone;
- }
- else if (aPortIndex == KPCMRENDERER_OPB0PORT_INDEX && aDirection == OMX_DirInput)
- {
- // Since the clock port buffers are returned immediately,
- // there's nothing to flush for the port
- return OMX_ErrorNone;
- }
- else
- {
- // Always ASSERT; This would be a problem in the framework.
- ASSERT(0);
- return OMX_ErrorBadParameter;
- }
- }
-
-void
-COmxILPcmRendererProcessingFunction::FlushBufferList(
- RPointerArray<OMX_BUFFERHEADERTYPE>& aBufferList)
- {
- DEBUG_PRINTF2(_L8("COmxILPcmRendererProcessingFunction::FlushBufferList : [%s]"),
- &aBufferList == &iBuffersToEmpty ? "iBuffersToEmpty" : "iBuffersEmptied");
-
- const TUint bufferCount = aBufferList.Count();
- OMX_BUFFERHEADERTYPE* pBufferHeader = 0;
- // We know there is only one input port...
- OMX_DIRTYPE portDirection = OMX_DirInput;
-
- for (TUint i=0; i<bufferCount; ++i)
- {
- pBufferHeader = aBufferList[i];
- pBufferHeader->nFilledLen = 0;
- iCallbacks.
- BufferDoneNotification(
- pBufferHeader,
- pBufferHeader->nInputPortIndex,
- portDirection
- );
- }
-
- // Empty buffer list...
- aBufferList.Reset();
-
- }
-
-
-OMX_ERRORTYPE
-COmxILPcmRendererProcessingFunction::ParamIndication(
- OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure)
- {
- DEBUG_PRINTF(_L8("COmxILPcmRendererProcessingFunction::ParamIndication"));
-
- OMX_ERRORTYPE err = OMX_ErrorNone;
- switch(aParamIndex)
- {
- case OMX_IndexParamAudioPcm:
- {
- const OMX_AUDIO_PARAM_PCMMODETYPE* pPcmProfile
- = static_cast<const OMX_AUDIO_PARAM_PCMMODETYPE*>(
- apComponentParameterStructure);
-
- if((pPcmProfile->nChannels == 1 || pPcmProfile->nChannels == 2) &&
- (pPcmProfile->eNumData == OMX_NumericalDataSigned) &&
- (pPcmProfile->eEndian == OMX_EndianBig) &&
- (pPcmProfile->bInterleaved == OMX_TRUE) &&
- (pPcmProfile->nBitPerSample == 16) &&
- ((pPcmProfile->nSamplingRate == 8000) ||
- (pPcmProfile->nSamplingRate == 11025) ||
- (pPcmProfile->nSamplingRate == 12000) ||
- (pPcmProfile->nSamplingRate == 16000) ||
- (pPcmProfile->nSamplingRate == 22050) ||
- (pPcmProfile->nSamplingRate == 24000) ||
- (pPcmProfile->nSamplingRate == 32000) ||
- (pPcmProfile->nSamplingRate == 44100) ||
- (pPcmProfile->nSamplingRate == 48000)) &&
- (pPcmProfile->ePCMMode == OMX_AUDIO_PCMModeLinear) &&
- (pPcmProfile->eChannelMapping[0] == OMX_AUDIO_ChannelLF) &&
- (pPcmProfile->eChannelMapping[1] == OMX_AUDIO_ChannelRF))
- {
- if (iPFHelper->ParamIndication(pPcmProfile) != KErrNone)
- {
- err = OMX_ErrorInsufficientResources;
- }
- }
- else
- {
- err = OMX_ErrorBadParameter;
- }
- }
- break;
- default:
- {
- // Ignore other port param changes...
- }
- };
-
- return err;
-
- }
-
-OMX_ERRORTYPE
-COmxILPcmRendererProcessingFunction::ConfigIndication(OMX_INDEXTYPE aConfigIndex,
- const TAny* apComponentConfigStructure)
- {
- DEBUG_PRINTF2(_L8("COmxILPcmRendererProcessingFunction::ConfigIndication %X"), aConfigIndex);
-
- OMX_ERRORTYPE err = OMX_ErrorNone;
- switch(aConfigIndex)
- {
- case OMX_SymbianIndexConfigAudioPcmVolumeRamp:
- {
- const OMX_SYMBIAN_AUDIO_CONFIG_PCM_VOLUMERAMP*
- pPcmVolumeRamp
- = static_cast<
- const OMX_SYMBIAN_AUDIO_CONFIG_PCM_VOLUMERAMP*>(
- apComponentConfigStructure);
-
- if (iPFHelper->SetVolumeRamp(pPcmVolumeRamp->nRampDuration) != KErrNone)
- {
- err = OMX_ErrorInsufficientResources;
- }
- }
- break;
-
- case OMX_IndexConfigAudioVolume:
- {
- const OMX_AUDIO_CONFIG_VOLUMETYPE* pVolumeType
- = static_cast<const OMX_AUDIO_CONFIG_VOLUMETYPE*>(
- apComponentConfigStructure);
-
- if (pVolumeType->bLinear == OMX_TRUE)
- {
- // Some configuration structures contain read-only fields. The
- // OMX_SetConfig method will preserve read-only fields in configuration
- // structures that contain them, and shall not generate an error when
- // the caller attempts to change the value of a read-only field.
- err = OMX_ErrorNone;
- break;
- }
-
- if ((pVolumeType->sVolume.nValue <= pVolumeType->sVolume.nMax) &&
- (pVolumeType->sVolume.nValue >= pVolumeType->sVolume.nMin))
- {
- if (iPFHelper->SetVolume(pVolumeType->sVolume.nValue) != KErrNone)
- {
- err = OMX_ErrorInsufficientResources;
- }
- }
- else
- {
- err = OMX_ErrorBadParameter;
- }
- }
- break;
-
- case OMX_IndexConfigAudioMute:
- {
- const OMX_AUDIO_CONFIG_MUTETYPE* pVolumeType
- = static_cast<const OMX_AUDIO_CONFIG_MUTETYPE*>(
- apComponentConfigStructure);
-
- if (iPFHelper->SetMuted(pVolumeType->bMute) != KErrNone)
- {
- err = OMX_ErrorInsufficientResources;
- }
- }
- break;
-
- default:
- {
- // Ignore other port config changes...
- }
- };
-
- return err;
-
- }
-
-OMX_ERRORTYPE
-COmxILPcmRendererProcessingFunction::BufferIndication(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_DIRTYPE aDirection)
- {
- DEBUG_PRINTF2(_L8("COmxILPcmRendererProcessingFunction::BufferIndication : [%X]"), apBufferHeader);
-
- if (aDirection != OMX_DirInput)
- {
- return OMX_ErrorBadParameter;
- }
-
- if (iBuffersToEmpty.Append(apBufferHeader) != KErrNone)
- {
- return OMX_ErrorInsufficientResources;
- }
-
- // If we are not in an executing state or if the audio device is busy, delay playing back the buffer
- if (iState != OMX_StateExecuting || iAudioDevice->IsActive())
- {
- return OMX_ErrorNone;
- }
-
- if (iPFHelper->BufferIndication() != KErrNone)
- {
- return OMX_ErrorInsufficientResources;
- }
-
- return OMX_ErrorNone;
- }
-
-OMX_ERRORTYPE COmxILPcmRendererProcessingFunction::MediaTimeIndication(const OMX_TIME_MEDIATIMETYPE& aMediaTimeType)
- {
- // Received a requested media time notification.
- DEBUG_PRINTF5(_L8("MediaTimeIndication : eUpdateType = %d eState = %d xScale = %d nMediaTimestamp = %d "),
- aMediaTimeType.eUpdateType, aMediaTimeType.eState, aMediaTimeType.xScale, aMediaTimeType.nMediaTimestamp);
-
- iPFHelper->MediaTimeIndication(aMediaTimeType);
- return OMX_ErrorNone;
- }
-
-OMX_BOOL
-COmxILPcmRendererProcessingFunction::BufferRemovalIndication(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_DIRTYPE /* aDirection */)
- {
- DEBUG_PRINTF2(_L8("COmxILPcmRendererProcessingFunction::BufferRemovalIndication : BUFFER [%X]"), apBufferHeader);
-
- TBool headerDeletionResult = ETrue;
- // Check if the buffer we want to remove is the one is being currently processed
- if (iAudioDevice->IsActive() && iAudioDevice->GetCurrentBuffer() == apBufferHeader)
- {
- if (iPFHelper->CancelDevice() != KErrNone)
- {
- return OMX_FALSE;
- }
-
- // if you cancel the audio device then you send the buffer to the other end of the tunnel
- // so you shouldn't say that you had the buffer in the processing function in this situation.
- headerDeletionResult = EFalse;
- }
- else
- {
- TInt headerIndexInArray = KErrNotFound;
- if (KErrNotFound !=
- (headerIndexInArray =
- iBuffersToEmpty.Find(apBufferHeader)))
- {
- iBuffersToEmpty.Remove(headerIndexInArray);
- }
- else if(KErrNotFound !=
- (headerIndexInArray =
- iBuffersEmptied.Find(apBufferHeader)))
- {
- iBuffersEmptied.Remove(headerIndexInArray);
- }
- else
- {
- headerDeletionResult = EFalse;
- }
- }
-
- DEBUG_PRINTF2(_L8("BufferRemovalIndication : Removal result [%s]"), (headerDeletionResult ? "YES" : "NO"));
- return (headerDeletionResult ? OMX_TRUE : OMX_FALSE);
- }
-
-TInt
-COmxILPcmRendererProcessingFunction::GetBytesPlayed() const
- {
- return iAudioDevice->GetBytesPlayed();
- }
-
-
-COmxILPcmRendererProcessingFunction::CAudioDevice* COmxILPcmRendererProcessingFunction::CAudioDevice::NewL(COmxILPcmRendererProcessingFunction& aParent)
- {
- CAudioDevice* self = new (ELeave) CAudioDevice(aParent);
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-COmxILPcmRendererProcessingFunction::CAudioDevice::CAudioDevice(COmxILPcmRendererProcessingFunction& aParent)
-: CActive(EPriorityUserInput),
- iParent(aParent),
- iSampleRate(KDefaultSampleRate),
- iChannels(KDefaultNumberChannels),
- iEncoding(KDefaultEncoding),
- iVolume(KDefaultVolume),
- iMuted(KDefaultMuted),
- iBufferSize(KBufferSize),
- iClockStateRunning(EFalse),
- iPausedClockViaScale(EFalse),
- iIsStartTimeFlagSet(EFalse)
- {
- CActiveScheduler::Add(this);
- }
-
-
-void COmxILPcmRendererProcessingFunction::CAudioDevice::ConstructL()
- {
- iCachedPlayBuffer.CreateL(0);
- }
-
-COmxILPcmRendererProcessingFunction::CAudioDevice::~CAudioDevice()
- {
- delete iPeriodic;
- Cancel();
- iCachedPlayBuffer.Close();
- }
-
-void COmxILPcmRendererProcessingFunction::CAudioDevice::RunL()
- {
- DEBUG_PRINTF(_L8("CAudioDevice::RunL : "));
- if (iStatus != KErrNone)
- {
- switch(iStatus.Int())
- {
- case KErrUnderflow:
- DEBUG_PRINTF(_L8("CAudioDevice::RunL : KErrUnderflow"));
- iParent.iCallbacks.ErrorEventNotification(OMX_ErrorUnderflow);
- break;
-
- case KErrOverflow:
- DEBUG_PRINTF(_L8("CAudioDevice::RunL : KErrOverflow"));
- iParent.iCallbacks.ErrorEventNotification(OMX_ErrorOverflow);
- break;
-
- default:
- DEBUG_PRINTF2(_L8("CAudioDevice::RunL : [%d] -> OMX_ErrorHardware"), iStatus.Int());
- iParent.iCallbacks.ErrorEventNotification(OMX_ErrorHardware);
- };
- }
-
- ASSERT(iCurrentBuffer);
- // Update the last value of bytes played...
- iLastBytesPlayedValue = iSoundDevice.BytesPlayed();
-
- // Return the emptied buffer to the IL Client or the tunnelled
- // component..
- SignalBufferCompletion(iCurrentBuffer);
- iCurrentBuffer = 0;
-
- // Make sure to clear the aggregated cache buffer, if it was used
- iCachedPlayBuffer.Zero();
- }
-
-void COmxILPcmRendererProcessingFunction::CAudioDevice::SignalBufferCompletion(
- OMX_BUFFERHEADERTYPE* apCurrentBuffer)
- {
- DEBUG_PRINTF2(_L8("CAudioDevice::SignalBufferCompletion : BUFFER = [%X]"), apCurrentBuffer);
-
- iParent.iBuffersEmptied.Append(apCurrentBuffer);
-
- // Process the queue only if in executing state...
- if (iParent.iState == OMX_StateExecuting)
- {
- const TUint bufferCount = iParent.iBuffersEmptied.Count();
- OMX_BUFFERHEADERTYPE* pBufferHeader = 0;
- for (TUint i=0; i<bufferCount; ++i)
- {
- pBufferHeader = iParent.iBuffersEmptied[i];
- TBool lastBuffer = EFalse;
- if (pBufferHeader->nFlags & OMX_BUFFERFLAG_EOS)
- {
- lastBuffer = ETrue;
- }
-
- pBufferHeader->nFilledLen = 0;
- iParent.iCallbacks.BufferDoneNotification(pBufferHeader,
- pBufferHeader->nInputPortIndex,
- OMX_DirInput);
- if (lastBuffer)
- {
- pBufferHeader->nFlags |= OMX_BUFFERFLAG_EOS;
- // propagate the EOS flag
- iParent.iCallbacks.EventNotification(
- OMX_EventBufferFlag,
- KPCMRENDERER_APB0PORT_INDEX,
- pBufferHeader->nFlags,
- NULL);
- }
- }
-
- // Empty list...
- iParent.iBuffersEmptied.Reset();
- }
-
- if (iParent.iBuffersToEmpty.Count() > 0)
- {
- DEBUG_PRINTF2(_L8("CAudioDevice::RunL : iBuffersToEmpty.Count = [%d]"),
- iParent.iBuffersToEmpty.Count());
- iParent.iPFHelper->BufferIndication();
- }
-
- }
-
-
-TBool COmxILPcmRendererProcessingFunction::CAudioDevice::ConstructAndStartUpdateTimer()
- {
- // Need this check if:
- // - The component state transitions from Execution-Idle-Execution
- // - The Clock's state transitions from Running-Stop-Running
- if (iPeriodic == NULL)
- {
- iPeriodic = CPeriodic::New(EPriorityStandard);
-
- if (iPeriodic == NULL)
- {
- iParent.iCallbacks.ErrorEventNotification(OMX_ErrorInsufficientResources);
- return EFalse;
- }
- }
-
- StartUpdateTimer();
-
- return ETrue;
- }
-
-
-void COmxILPcmRendererProcessingFunction::CAudioDevice::ProcessNextBuffer()
- {
- if (iParent.iBuffersToEmpty.Count() == 0)
- return;
-
- // To implement A/V Sync, we should start playing only once the clock component gives the appopriate command
- // If the clock component is not available, we start playing immediately
- // Since the PCM Renderer supplies the reference clock, we make sure to initialise the clock component with
- // the reference when we receive the first buffer
-
- if (!iParent.iClientClockPortPtr->IsClockComponentAvailable())
- {
- PlayData();
- return;
- }
-
- OMX_BUFFERHEADERTYPE* bufferPtr = iParent.iBuffersToEmpty[0];
-
- TBool bufferHasStartTime = bufferPtr->nFlags & OMX_BUFFERFLAG_STARTTIME;
-
- if (!iClockStateRunning)
- {
- if (!bufferHasStartTime)
- {
- // Connected with the Clock but OMX_BUFFERFLAG_STARTTIME isn't set; drop the buffer
- if (!iIsStartTimeFlagSet)
- {
- iParent.iBuffersToEmpty.Remove(0);
- SignalBufferCompletion(bufferPtr);
- }
- bufferPtr = NULL;
- return;
- }
- else
- {
- OMX_ERRORTYPE err = iParent.iClientClockPortPtr->SetStartTime(static_cast<OMX_TICKS>(bufferPtr->nTimeStamp));
-
- if (err == OMX_ErrorNone)
- {
- // Clear the returning buffer's flag
- bufferPtr->nFlags &= ~OMX_BUFFERFLAG_STARTTIME;
- }
- else
- {
- // NOTE: If the Clock is not in OMX_TIME_ClockStateWaitingForStartTime,
- // currently SetStartTime will return OMX_ErrorIncorrectStateOperation
-
- // It is not the PCM renderer to flag a Clock component error;
- // therefore, ignore the error.
- //
- // As the Clock is not in OMX_TIME_ClockStateRunning state, the Renderer needs
- // to keep the OMX_BUFFERFLAG_STARTTIME in the first buffer until the Clock
- // moves into OMX_TIME_ClockStateWaitingForStartTime or OMX_TIME_ClockStateRunning
- // state
- DEBUG_PRINTF2(_L8("CAudioDevice::ProcessNextBuffer SetStartTime() return %d"), err);
- }
-
- // Update the iStartMediaTime
- iParent.iStartMediaTime = static_cast<OMX_TICKS>(bufferPtr->nTimeStamp);
- iIsStartTimeFlagSet = ETrue;
- }
- } // (!iClockStateRunning)
- else
- {
- if (bufferHasStartTime)
- {
- // The Clock moves straight into OMX_TIME_ClockStateRunning state,
- // clear the returning buffer's flag.
- bufferPtr->nFlags &= ~OMX_BUFFERFLAG_STARTTIME;
- }
-
- if (!iPlayData)
- {
- // Not allowed to render audio. This could be due to:
- // - The renderer is waiting for a time completion notification from the Clock;
- return;
- }
-
- if (!iIsStartTimeFlagSet)
- {
- // As the StartTimeFlag is not mandatory; therefore it might be missing from the first audio buffer
- // In such a case, we use the first buffer's timestamp as the StartMediaTime.
- //
- // NOTE: Since the Clock is running, calling SetStartTime() to the Clock is meaningless
-
- // Update the iStartMediaTime
- iParent.iStartMediaTime = static_cast<OMX_TICKS>(bufferPtr->nTimeStamp);
- iIsStartTimeFlagSet = ETrue;
-
- // Cross checking the Clock's media timestamp with iStartMediaTime to see
- // data can be rendered straight away
- if (!CanPlayNow())
- {
- return;
- }
-
- if (!ConstructAndStartUpdateTimer())
- {
- return;
- }
- }
-
- DEBUG_PRINTF3(_L8("ProcessNextBuffer : iStartMediaTime = %d nTimeStamp = %d"),
- I64LOW(iParent.iStartMediaTime), I64LOW(bufferPtr->nTimeStamp));
-
- if (!iPausedClockViaScale) //if clock scale is zero then we are effectively paused
- {
- PlayData();
- }
- } // else
- }
-
-
-void COmxILPcmRendererProcessingFunction::CAudioDevice::PlayData()
- {
- DEBUG_PRINTF(_L8("COmxILPcmRendererProcessingFunction::CAudioDevice::PlayData()++"));
- if (iParent.iBuffersToEmpty.Count() == 0 || iSoundDevice.Handle() == 0 || IsActive())
- {
- DEBUG_PRINTF(_L8("COmxILPcmRendererProcessingFunction::CAudioDevice::PlayData() nothing to play, or there is an outstanding request"));
- return;
- }
-
- iCurrentBuffer = iParent.iBuffersToEmpty[0];
-
- iParent.iBuffersToEmpty.Remove(0);
-
- CMMFDataBuffer* mmfSrcBuffer = static_cast<CMMFDataBuffer*>(iCurrentBuffer->pInputPortPrivate);
- mmfSrcBuffer->Data().SetLength(iCurrentBuffer->nFilledLen);
-
- // Attenuate the amplitude of the samples if volume ramping has been changed
- if (iRampAudioSample)
- {
- iRampAudioSample = RampAudio(mmfSrcBuffer);
- }
-
- // First, check whether the buffer length is sufficient not to cause underflows in the device driver
- TBool isFilledLengthSufficient = IsBufferLengthSufficient(iCurrentBuffer->nFilledLen);
- // This variable defines whether we should send the data to the driver directly, or append it to an aggregated buffer
- // We append the buffer instead of sending it directly, if (i) the buffer is too small, or (ii) we have already aggregated something.
- TBool appendBuffer = (!isFilledLengthSufficient || iCachedPlayBuffer.Length() > 0) ? ETrue : EFalse;
- if (!appendBuffer)
- {
- SendBufferToSoundDevice(mmfSrcBuffer->Data());
- }
- else
- {
- // Check if we need to allocate the cached buffer
- if (iCachedPlayBuffer.MaxLength() == 0)
- {
- // The RMdaDevSound shim allocates the shared chunk according to the maxLength of the descriptor it receives
- // For this reason, we must allocate our buffer conservatively, otherwise the chunk may be insufficient and the RMdaDevSound shim will panic
- TInt err = iCachedPlayBuffer.ReAlloc(GetMinBufferLength() + iCurrentBuffer->nAllocLen);
- if (err != KErrNone)
- {
- iParent.iCallbacks.ErrorEventNotification(OMX_ErrorInsufficientResources);
- return;
- }
- }
-
- iCachedPlayBuffer.Append(mmfSrcBuffer->Data());
-
- // If we have sufficient length aggregated, play the cached buffer
- // Also if this is the last buffer, we have to play it now, there's nothing left to cache
- if (IsBufferLengthSufficient(iCachedPlayBuffer.Length()) || iCurrentBuffer->nFlags & OMX_BUFFERFLAG_EOS)
- {
- SendBufferToSoundDevice(iCachedPlayBuffer);
- }
- // If not, make sure to notify that we notify that the buffer is done for the OMX tunnnel, so that the port will be able to reuse it
- else
- {
- SignalBufferCompletion(iCurrentBuffer);
- iCurrentBuffer = NULL;
- }
- }
- }
-
-void COmxILPcmRendererProcessingFunction::CAudioDevice::SendBufferToSoundDevice(TDes8& aBuffer)
- {
- ASSERT(!IsActive());
- iStatus = KRequestPending;
- DEBUG_PRINTF2(_L8("COmxILPcmRendererProcessingFunction::CAudioDevice::SendBufferToSoundDevice() PlayData [%d]"), aBuffer.Length());
- iSoundDevice.PlayData(iStatus, aBuffer);
- SetActive();
- }
-
-TInt COmxILPcmRendererProcessingFunction::CAudioDevice::GetMinBufferLength() const
- {
- TInt minBufSize = KMinBufferMilliseconds * iSampleRate * iChannels / 1000;
- if (iEncoding == RMdaDevSound::EMdaSoundEncoding16BitPCM)
- {
- minBufSize *= 2; // All other encodings use 1 byte per sample
- }
- return minBufSize;
- }
-
-TBool COmxILPcmRendererProcessingFunction::CAudioDevice::IsBufferLengthSufficient(TInt aBufferLength) const
- {
- return aBufferLength >= GetMinBufferLength() ? ETrue : EFalse;
- }
-
-
-void COmxILPcmRendererProcessingFunction::CAudioDevice::ProcessMediaTimeIndication(OMX_TIME_MEDIATIMETYPE& aMediaTimeType)
- {
- switch (aMediaTimeType.eUpdateType)
- {
- case OMX_TIME_UpdateClockStateChanged:
- {
- HandleClockStateChanged(aMediaTimeType);
- }
- break;
-
- case OMX_TIME_UpdateRequestFulfillment:
- {
- // As the Clock was using another earlier start time;
- // it is time for the PCM renderer to start playing the audio.
- iPlayData = ETrue;
- PlayData();
-
- if (!ConstructAndStartUpdateTimer())
- {
- return;
- }
- }
- break;
-
- case OMX_TIME_UpdateScaleChanged:
- {
- HandleClockScaleChanged(aMediaTimeType);
- }
- break;
-
- default:
- {
- // Do nothing here
- }
- }
- }
-
-
-void COmxILPcmRendererProcessingFunction::CAudioDevice::StartUpdateTimer()
- {
- if (!iIsStartTimeFlagSet)
- {
- DEBUG_PRINTF(_L8("COmxILPcmRendererProcessingFunction::CAudioDevice::StartUpdateTimer() iIsStartTimeFlagSet == EFalse!!"));
- return;
- }
-
- // In case the timer already started
- ASSERT(iPeriodic);
- iPeriodic->Cancel();
-
- TCallBack callback(UpdateClockMediaTime, this);
-
- // Start updating the Clock comp. every KPcmRendererTimePlayedDelay
- iPeriodic->Start(KPcmRendererTimePlayedDelay, KPcmRendererTimePlayedDelay, callback);
- }
-
-
-TBool COmxILPcmRendererProcessingFunction::CAudioDevice::CanPlayNow()
- {
- if (iClockMediaTime < iParent.iStartMediaTime)
- {
- // Once all required Clock's clients have responded, the clock component starts
- // the media clock using the earliest client start time.
- // Therefore, start playing the audio only when such time comes; send a time
- // completion request to the Clock component
- OMX_ERRORTYPE err = iParent.iClientClockPortPtr->MediaTimeRequest(NULL, iParent.iStartMediaTime, 0);
-
- if (err != OMX_ErrorNone)
- {
- DEBUG_PRINTF2(_L8("CAudioDevice::CanPlayNow() MediaTimeRequest() return %d"), err);
- }
-
- // Indicate that processing a new buffer should not trigger a false start on playback.
- iPlayData = EFalse;
- return EFalse;
- }
- else if (iClockMediaTime > iParent.iStartMediaTime)
- {
- // NOTE: The spec. states that the clock should use the minimum of the received start times
- // Therefore the Clock should NOT jump forwards with timestamp greater than the PCM
- // Renderer iStartMediaTime
- DEBUG_PRINTF3(_L8("CanPlayNow() nMediaTimestamp(%d) > iStartMediaTime(%d) IGNORE this use case"),
- I64LOW(iClockMediaTime), I64LOW(iParent.iStartMediaTime));
-
- // However if the Clock sends out a timestamp greater than the buffer's timestamp
- // drop the buffers that fall outside the Clock specified MediaTimestamp;
-
- OMX_BUFFERHEADERTYPE* bufferPtr = iParent.iBuffersToEmpty[0];
- iParent.iBuffersToEmpty.Remove(0);
- SignalBufferCompletion(bufferPtr);
- bufferPtr = NULL;
-
- // Since the iStartMediaTime doesn't make sense anymore, reset iIsStartTimeFlagSet until the buffer's timestamp
- // is within the the Clock's Media timestamp
- iIsStartTimeFlagSet = EFalse;
- return EFalse;
- }
-
- return ETrue;
- }
-
-
-void COmxILPcmRendererProcessingFunction::CAudioDevice::HandleClockStateChanged(const OMX_TIME_MEDIATIMETYPE& aMediaTimeType)
- {
- switch (aMediaTimeType.eState)
- {
- case OMX_TIME_ClockStateRunning:
- {
- iClockMediaTime = aMediaTimeType.nMediaTimestamp;
-
- // There are two possibilities:
- // case 1 - The clock goes straight into running and the PCM renderer processes the
- // StateChanged notification prior the audio buffer
-
- if (iIsStartTimeFlagSet)
- {
- // OR
- // case 2 - The PCM recieves the audio buffer, and the clock StateChanged notification
- // comes later
-
- // Clear the returning buffer's flag.
- iParent.iBuffersToEmpty[0]->nFlags &= ~OMX_BUFFERFLAG_STARTTIME;
-
- // Cross checking the Clock's media timestamp with iStartMediaTime to see
- // data can be rendered straight away
- if (!CanPlayNow())
- {
- break;
- }
-
- // Start playing the audio and start updating the Clock media time regularly
- PlayData();
-
- if (!ConstructAndStartUpdateTimer())
- {
- return;
- }
- }
-
- // Otherwise, the queue is empty;
- //
- // NOTE: When !iIsStartTimeFlagSet && !iClockStateRunning would drop the incoming buffers;
- // if the first buffer does not have the OMX_BUFFERFLAG_STARTTIME set
- }
- break;
-
- case OMX_TIME_ClockStateWaitingForStartTime:
- {
- if (iClockStateRunning)
- {
- DEBUG_PRINTF(_L8("HandleClockStateChanged() OMX_TIME_ClockStateRunning -> OMX_TIME_ClockStateWaitingForStartTime IGNORED!!"));
- }
- else
- {
- // Let's try to process buffers (if any).
- ProcessNextBuffer();
- }
- }
- break;
-
- case OMX_TIME_ClockStateStopped:
- {
- if (iClockStateRunning)
- {
- // The Clock was in "Running" state but not anymore; stop the audio
- if (IsActive())
- {
- Cancel();
- }
- else
- {
- DoCancel();
- }
-
- iPlayData = ETrue;
- if (iIsStartTimeFlagSet)
- {
- iIsStartTimeFlagSet = EFalse;
- iPeriodic->Cancel();
- }
- }
-
- // Otherwise, ignore other possibilities
- }
-
- break;
-
- default:
- {
- DEBUG_PRINTF2(_L8("HandleClockStateChanged() aMediaTimeType.eState = %d IGNORED!!"), aMediaTimeType.eState);
- }
- break;
- }
-
- iClockStateRunning = (aMediaTimeType.eState == OMX_TIME_ClockStateRunning) ? ETrue : EFalse;
- }
-
-
-void COmxILPcmRendererProcessingFunction::CAudioDevice::HandleClockScaleChanged(const OMX_TIME_MEDIATIMETYPE& aMediaTimeType)
- {
- if (aMediaTimeType.xScale == 0)
- {
- PauseAudio();
- iPausedClockViaScale = ETrue;
- DEBUG_PRINTF2(_L8("HandleClockScaleChanged() pausing iPausedClockViaScale = %d"), iPausedClockViaScale);
- }
- else if (aMediaTimeType.xScale == 0x10000)
- {
- // The scale is a Q16 value
- iPausedClockViaScale = EFalse;
- DEBUG_PRINTF2(_L8("HandleClockScaleChanged() resuming iPausedClockViaScale = %d"), iPausedClockViaScale);
- iSoundDevice.ResumePlaying();
- iParent.iPFHelper->BufferIndication(); //handles the race condition where both 1) iSoundDevice was paused after the last PlayData() completed and before it was passed any data & 2) BufferIndication()s came in for all the IL buffers while in this paused state
- StartUpdateTimer();
- }
- }
-
-
-void COmxILPcmRendererProcessingFunction::CAudioDevice::DoCancel()
- {
- if (iSoundDevice.Handle() != 0)
- {
- iSoundDevice.CancelPlayData();
- iSoundDevice.FlushPlayBuffer();
- }
-
- if (iCurrentBuffer)
- {
- iCurrentBuffer->nFilledLen = 0;
-
- iParent.iCallbacks.BufferDoneNotification(iCurrentBuffer,
- iCurrentBuffer->nInputPortIndex,
- OMX_DirInput);
-
- iCachedPlayBuffer.Zero();
- iCurrentBuffer = NULL;
- }
- }
-
-
-OMX_ERRORTYPE COmxILPcmRendererProcessingFunction::CAudioDevice::OpenDevice()
- {
- OMX_ERRORTYPE err = OMX_ErrorNone;
- if(!iSoundDevice.Handle())
- {
-#ifdef SYMBIAN_MDF_SHAREDCHUNK_SOUNDDRIVER
- if(KErrNone != iSoundDevice.Open(KSoundScTxUnit0))
-#else //SYMBIAN_MDF_SHAREDCHUNK_SOUNDDRIVER
- if(KErrNone != iSoundDevice.Open())
-#endif //SYMBIAN_MDF_SHAREDCHUNK_SOUNDDRIVER
- {
- err = OMX_ErrorHardware;
- }
- }
- return err;
- }
-
-OMX_ERRORTYPE COmxILPcmRendererProcessingFunction::CAudioDevice::CloseDevice()
- {
- OMX_ERRORTYPE err = OMX_ErrorNone;
- if(iSoundDevice.Handle())
- {
- iSoundDevice.Close();
- }
- return err;
- }
-
-OMX_ERRORTYPE COmxILPcmRendererProcessingFunction::CAudioDevice::Execute()
- {
- if(!iSoundDevice.Handle())
- {
- if(KErrNone != iSoundDevice.Open())
- {
- return OMX_ErrorHardware;
- }
- }
-
- if(iParent.iState == OMX_StatePause)
- {
- // Now we can send BufferDone notifications for each emptied
- // buffer...
- iParent.FlushBufferList(iParent.iBuffersEmptied);
- iSoundDevice.ResumePlaying();
- StartUpdateTimer();
- }
- else
- {
- // Set play format
- RMdaDevSound::TCurrentSoundFormatBuf buf;
- iSoundDevice.GetPlayFormat(buf);
- buf().iRate = iSampleRate;
- buf().iChannels = iChannels;
- buf().iBufferSize = iBufferSize;
- buf().iEncoding = iEncoding;
- if(KErrNone != iSoundDevice.SetPlayFormat(buf))
- {
- return OMX_ErrorHardware;
- }
-
- if (iMuted)
- {
- iSoundDevice.SetVolume(0);
- }
- else
- {
- iSoundDevice.SetVolume(iVolume);
- }
- }
-
- iParent.iState = OMX_StateExecuting;
-
- // Make sure to start processing of queued up buffers (if any)
- if (!IsActive() && iParent.iBuffersToEmpty.Count() > 0)
- {
- ProcessNextBuffer();
- }
-
- return OMX_ErrorNone;
- }
-
-OMX_ERRORTYPE COmxILPcmRendererProcessingFunction::CAudioDevice::MoveToPausedState()
- {
- iParent.iState = OMX_StatePause;
- PauseAudio();
-
- return OMX_ErrorNone;
- }
-
-OMX_ERRORTYPE COmxILPcmRendererProcessingFunction::CAudioDevice::Stop()
- {
- if(iParent.iState == OMX_StateExecuting || iParent.iState == OMX_StatePause)
- {
- // Cancel and flush the device driver
- Cancel();
-
- // Cancel timer to stop calling RSoundSc::TimePlayed()
- if (iIsStartTimeFlagSet)
- {
- ASSERT(iPeriodic);
- iPeriodic->Cancel();
- }
-
- iParent.iState = OMX_StateIdle;
-
- // If the audio device is still open, store the last value of bytes
- // played before closing the audio device...
- if(iSoundDevice.Handle() != 0)
- {
- iLastBytesPlayedValue = iSoundDevice.BytesPlayed();
- // Close the sound device
- iSoundDevice.Close();
- }
- }
-
- iClockStateRunning = EFalse;
- iIsStartTimeFlagSet = EFalse;
- iPlayData = ETrue;
-
- return OMX_ErrorNone;
- }
-
-
-void COmxILPcmRendererProcessingFunction::CAudioDevice::PauseAudio()
- {
- // Cancel timer to stop calling RSoundSc::TimePlayed()
- if (iIsStartTimeFlagSet)
- {
- ASSERT(iPeriodic);
- iPeriodic->Cancel();
- }
-
- if (iSoundDevice.Handle())
- {
- iSoundDevice.PausePlayBuffer();
- }
- }
-
-
-OMX_ERRORTYPE COmxILPcmRendererProcessingFunction::CAudioDevice::SetChannels(TUint aChannels)
- {
- iChannels = aChannels;
- return SetPlayFormat();
- }
-
-OMX_ERRORTYPE COmxILPcmRendererProcessingFunction::CAudioDevice::SetSampleRate(TUint aSampleRate)
- {
- iSampleRate = aSampleRate;
- return SetPlayFormat();
- }
-
-TInt ConvertOmxToSymbianVolume(TInt aVolume)
- {
- // OpenMax volume is in millibels while Symbian volume is in 0.5 db increments in the [0..255] range
- // We divide by 50 as 0.5 dB = 50 millibells
- TInt res = KMedianVolume + aVolume / 50;
- if (res < 0)
- return 0;
- if (res > KMaxVolume)
- return KMaxVolume;
- return res;
- }
-
-OMX_ERRORTYPE COmxILPcmRendererProcessingFunction::CAudioDevice::SetVolume(TInt aVolume)
- {
- iVolume = ConvertOmxToSymbianVolume(aVolume);
- if ((!iMuted) && (iSoundDevice.Handle() != 0))
- {
- iSoundDevice.SetVolume(iVolume);
- }
- return OMX_ErrorNone;
- }
-
-OMX_ERRORTYPE COmxILPcmRendererProcessingFunction::CAudioDevice::SetVolumeRamp(const TTimeIntervalMicroSeconds& aRampDuration)
- {
- iVolumeRamp = aRampDuration;
- if(iVolumeRamp.Int64() != 0)
- {
- iRampAudioSample = ETrue;
- ConfigAudioRamper(
- iVolumeRamp.Int64());
- }
- else
- {
- iRampAudioSample = EFalse;
- }
- return OMX_ErrorNone;
- }
-
-OMX_ERRORTYPE COmxILPcmRendererProcessingFunction::CAudioDevice::SetMuted(TBool aMuted)
- {
- iMuted = aMuted;
-
- if (iSoundDevice.Handle() == 0)
- {
- // Just cache the value; the value will be set once the the device is opened
- return OMX_ErrorNone;
- }
-
- if (iMuted)
- {
- iSoundDevice.SetVolume(0);
- }
- else
- {
- iSoundDevice.SetVolume(iVolume);
- }
- return OMX_ErrorNone;
- }
-
-OMX_ERRORTYPE COmxILPcmRendererProcessingFunction::CAudioDevice::SetPlayFormat()
- {
- if (iParent.iState == OMX_StateExecuting)
- {
- RMdaDevSound::TCurrentSoundFormatBuf buf;
- iSoundDevice.GetPlayFormat(buf);
- buf().iRate = iSampleRate;
- buf().iChannels = iChannels;
- buf().iBufferSize = iBufferSize;
- buf().iEncoding = iEncoding;
- if(KErrNone != iSoundDevice.SetPlayFormat(buf))
- {
- return OMX_ErrorHardware;
- }
- }
- return OMX_ErrorNone;
- }
-
-OMX_BUFFERHEADERTYPE* COmxILPcmRendererProcessingFunction::CAudioDevice::GetCurrentBuffer()
- {
- return iCurrentBuffer;
- }
-
-TInt COmxILPcmRendererProcessingFunction::CAudioDevice::GetBytesPlayed()
- {
- if(iSoundDevice.Handle() != 0)
- {
- return iSoundDevice.BytesPlayed();
- }
-
- return iLastBytesPlayedValue;
- }
-
-void COmxILPcmRendererProcessingFunction::CAudioDevice::ConfigAudioRamper(TInt64 aRampTime)
- {
- iRampSamples = I64LOW(((TInt64(iSampleRate) * aRampTime) /1000000 )); // Add this
- iRampSamplesLeft = iRampSamples;
- iRampIncr = 0;
- iSkip = ETrue;
- }
-
-TBool COmxILPcmRendererProcessingFunction::CAudioDevice::RampAudio(CMMFDataBuffer* aBuffer)
- {
- TInt i=0;
- TInt length = aBuffer->Data().Length()>>1;
- if (length == 0)
- {
- return EFalse;
- }
-
- TInt16* sample = REINTERPRET_CAST(TInt16*,&aBuffer->Data()[0]);
- TInt64 theResult(0);
- while ((i < length) && (iRampIncr < iRampSamples))
- {
- theResult = sample[i];
- theResult *= iRampIncr;
- theResult /= iRampSamples;
- sample[i] = STATIC_CAST(TInt16, I64LOW(theResult) );
-
- if ((iChannels == 1) || (!iSkip))
- {
- iRampIncr++;
- }
- iSkip = !iSkip;
- i++;
- }
-
- if (iRampIncr < iRampSamples)
- return ETrue;
- else
- return EFalse;
- }
-
-
-TInt COmxILPcmRendererProcessingFunction::CAudioDevice::UpdateClockMediaTime(TAny* aPtr)
- {
- CAudioDevice* ptr = (CAudioDevice*)aPtr;
- TTimeIntervalMicroSeconds playedTime(0);
-
- if (ptr->iSoundDevice.GetTimePlayed(playedTime) != KErrNone)
- {
- ptr->iParent.iCallbacks.ErrorEventNotification(OMX_ErrorHardware);
- return EFalse;
- }
-
- OMX_ERRORTYPE err;
-
- // Update the clock component audio reference clock
- err = ptr->iParent.iClientClockPortPtr->SetAudioReference(ptr->iParent.iStartMediaTime + playedTime.Int64());
-
- if (err != OMX_ErrorNone)
- {
- ptr->iParent.iCallbacks.ErrorEventNotification(err);
- return EFalse;
- }
-
- DEBUG_PRINTF2(_L8("CAudioDevice::UpdateClockMediaTime : playedTime = %d"),
- I64LOW(playedTime.Int64()));
-
- return ETrue;
- }
-
-
-void COmxILPcmRendererProcessingFunction::CAudioDevice::ProcessParamIndication(const OMX_AUDIO_PARAM_PCMMODETYPE& aPcmModeType)
- {
- if(SetChannels(aPcmModeType.nChannels) != OMX_ErrorNone)
- {
- iParent.iCallbacks.ErrorEventNotification(OMX_ErrorHardware);
- return;
- }
-
- if (SetSampleRate(aPcmModeType.nSamplingRate) != OMX_ErrorNone)
- {
- iParent.iCallbacks.ErrorEventNotification(OMX_ErrorHardware);
- return;
- }
- }
-
-COmxILPcmRendererProcessingFunction::CPFHelper* COmxILPcmRendererProcessingFunction::CPFHelper::NewL(CAudioDevice& aAudioDevice)
- {
- CPFHelper* self = new (ELeave) CPFHelper(aAudioDevice);
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-COmxILPcmRendererProcessingFunction::CPFHelper::CPFHelper(CAudioDevice& aAudioDevice)
-: CActive(EPriorityUserInput),
- iAudioDevice(aAudioDevice)
- {
- }
-
-void COmxILPcmRendererProcessingFunction::CPFHelper::ConstructL()
- {
- CActiveScheduler::Add(this);
- User::LeaveIfError(iCallerSemaphore.CreateGlobal(KNullDesC, 0));
- User::LeaveIfError(iMsgQueue.CreateLocal(KMaxMsgQueueEntries));
- iMsgQueue.NotifyDataAvailable(iStatus);
- RThread thisThread;
- iHelperThreadId = thisThread.Id();
- thisThread.Close();
- SetActive();
- }
-
-COmxILPcmRendererProcessingFunction::CPFHelper::~CPFHelper()
- {
- Cancel();
- iMsgQueue.Close();
- iCallerSemaphore.Close();
- }
-
-void COmxILPcmRendererProcessingFunction::CPFHelper::RunL()
- {
-
- TProcMessage msg;
- while (iMsgQueue.Receive(msg)==KErrNone)
- {
- switch (msg.iType)
- {
- case EOpenDevice:
- {
- iAudioDevice.OpenDevice();
- break;
- }
- case ECloseDevice:
- {
- iAudioDevice.CloseDevice();
- break;
- }
- case ECloseDeviceOnError:
- {
- iAudioDevice.Cancel();
- iAudioDevice.CloseDevice();
- iCallerSemaphore.Signal();
- break;
- }
- case EExecuteCommand:
- {
- iAudioDevice.Execute();
- break;
- }
-
- case EStopCommand:
- {
- iAudioDevice.Stop();
- break;
- }
-
- case ECancelCommand:
- {
- iAudioDevice.Cancel();
- break;
- }
-
- case EBufferIndication:
- {
- iAudioDevice.ProcessNextBuffer();
- break;
- }
- case EMediaTimeIndication:
- {
- iAudioDevice.ProcessMediaTimeIndication(msg.iMediaTimeType);
- break;
- }
- case EParamIndication:
- {
- iAudioDevice.ProcessParamIndication(msg.iPcmModeType);
- break;
- }
- case ESetVolumeRamp:
- {
- iAudioDevice.SetVolumeRamp(TTimeIntervalMicroSeconds(msg.iRampDuration));
- break;
- }
- case ESetVolume:
- {
- iAudioDevice.SetVolume(msg.iVolumeValue);
- break;
- }
- case ESetMuted:
- {
- iAudioDevice.SetMuted(msg.iMuted);
- break;
- }
- default:
- {
- break;
- }
- }
- }
- DEBUG_PRINTF2(_L8("COmxILPcmRendererProcessingFunction::CPFHelper::RunL : msg.iType[%d]"), msg.iType);
- // setup for next callbacks
- iMsgQueue.NotifyDataAvailable(iStatus);
- SetActive();
- }
-
-void COmxILPcmRendererProcessingFunction::CPFHelper::DoCancel()
- {
- if (iMsgQueue.Handle()!=NULL)
- {
- iMsgQueue.CancelDataAvailable();
- }
- }
-
-TInt COmxILPcmRendererProcessingFunction::CPFHelper::OpenDevice()
- {
- TProcMessage message;
- message.iType = EOpenDevice;
- return iMsgQueue.Send(message);
- }
-
-TInt COmxILPcmRendererProcessingFunction::CPFHelper::CloseDevice()
- {
- DEBUG_PRINTF2(_L8("COmxILPcmRendererProcessingFunction::CPFHelper::CloseDevice : IsActive[%s]"),
- (IsActive() ? "YES" : "NO"));
- TProcMessage message;
- message.iType = ECloseDevice;
- return iMsgQueue.Send(message);
- }
-
-TInt COmxILPcmRendererProcessingFunction::CPFHelper::CloseDeviceOnError()
- {
- DEBUG_PRINTF2(_L8("COmxILPcmRendererProcessingFunction::CPFHelper::CloseDeviceOnError : IsActive[%d]"), (IsActive() ? 1 : 0));
-
- RThread thisThread;
- if (thisThread.Id() == iHelperThreadId)
- {
- // Just do it...
- iAudioDevice.Cancel();
- iAudioDevice.CloseDevice();
- }
- else
- {
-
- TProcMessage message;
- message.iType = ECloseDeviceOnError;
- TInt error = iMsgQueue.Send(message);
- if (KErrNone != error)
- {
- // only wait if the message was sent into the queue...
- iCallerSemaphore.Wait();
- }
- }
-
- thisThread.Close();
-
- return KErrNone;
-
- }
-
-TInt COmxILPcmRendererProcessingFunction::CPFHelper::Execute()
- {
- DEBUG_PRINTF2(_L8("CPFHelper::Execute : IsActive[%s]"), (IsActive() ? "YES" : "NO"));
- TProcMessage message;
- message.iType = EExecuteCommand;
- return iMsgQueue.Send(message);
- }
-
-TInt COmxILPcmRendererProcessingFunction::CPFHelper::Stop()
- {
- DEBUG_PRINTF2(_L8("CPFHelper::Stop : IsActive[%s]"), (IsActive() ? "YES" : "NO"));
- TProcMessage message;
- message.iType = EStopCommand;
- return iMsgQueue.Send(message);
- }
-
-TInt COmxILPcmRendererProcessingFunction::CPFHelper::CancelDevice()
- {
- DEBUG_PRINTF2(_L8("CPFHelper::CancelDevice : IsActive[%s]"), (IsActive() ? "YES" : "NO"));
- TProcMessage message;
- message.iType = ECancelCommand;
- return iMsgQueue.Send(message);
- }
-
-TInt COmxILPcmRendererProcessingFunction::CPFHelper::BufferIndication()
- {
- DEBUG_PRINTF2(_L8("CPFHelper::BufferIndication : IsActive[%s]"), (IsActive() ? "YES" : "NO"));
- TProcMessage message;
- message.iType = EBufferIndication;
- return iMsgQueue.Send(message);
- }
-
-TInt COmxILPcmRendererProcessingFunction::CPFHelper::MediaTimeIndication(const OMX_TIME_MEDIATIMETYPE& aMediaTimeType)
- {
- DEBUG_PRINTF2(_L8("CPFHelper::MediaTimeIndication : IsActive[%s]"), (IsActive() ? "YES" : "NO"));
- TProcMessage message;
- message.iType = EMediaTimeIndication;
- message.iMediaTimeType.eUpdateType = aMediaTimeType.eUpdateType;
- message.iMediaTimeType.eState = aMediaTimeType.eState;
- message.iMediaTimeType.xScale = aMediaTimeType.xScale;
- message.iMediaTimeType.nMediaTimestamp = aMediaTimeType.nMediaTimestamp;
-
- return iMsgQueue.Send(message);
- }
-
-TInt COmxILPcmRendererProcessingFunction::CPFHelper::ParamIndication(const OMX_AUDIO_PARAM_PCMMODETYPE* aPcmModeType)
- {
- DEBUG_PRINTF2(_L8("CPFHelper::ParamIndication : IsActive[%s]"), (IsActive() ? "YES" : "NO"));
- TProcMessage message;
- message.iType = EParamIndication;
- message.iPcmModeType.nChannels = aPcmModeType->nChannels;
- message.iPcmModeType.nSamplingRate = aPcmModeType->nSamplingRate;
-
- return iMsgQueue.Send(message);
- }
-
-TInt COmxILPcmRendererProcessingFunction::CPFHelper::SetVolumeRamp(const OMX_U64 aRampDuration)
- {
- DEBUG_PRINTF2(_L8("CPFHelper::SetVolumeRamp : IsActive[%s]"), (IsActive() ? "YES" : "NO"));
- TProcMessage message;
- message.iType = ESetVolumeRamp;
- message.iRampDuration = aRampDuration;
-
- return iMsgQueue.Send(message);
- }
-
-TInt COmxILPcmRendererProcessingFunction::CPFHelper::SetVolume(const OMX_S32 aVolumeValue)
- {
- DEBUG_PRINTF2(_L8("CPFHelper::SetVolume : IsActive[%s]"), (IsActive() ? "YES" : "NO"));
- TProcMessage message;
- message.iType = ESetVolume;
- message.iVolumeValue = aVolumeValue;
-
- return iMsgQueue.Send(message);
- }
-
-TInt COmxILPcmRendererProcessingFunction::CPFHelper::SetMuted(const OMX_BOOL aMuted)
- {
- DEBUG_PRINTF2(_L8("CPFHelper::SetMuted : IsActive[%s]"), (IsActive() ? "YES" : "NO"));
- TProcMessage message;
- message.iType = ESetMuted;
- message.iMuted = aMuted;
-
- return iMsgQueue.Send(message);
- }
--- a/omxil/omxilrefcomps/ref_components/audio/pcmrenderer/src/omxilpcmrendererprocessingfunction.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,236 +0,0 @@
-/*
-* Copyright (c) 2008-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:
-*
-*/
-
-
-/**
- @file
- @internalComponent
-*/
-
-#ifndef OMXILPCMRENDERERPROCESSINGFUNCTION_H
-#define OMXILPCMRENDERERPROCESSINGFUNCTION_H
-
-#include <mmf/server/mmfdatabuffer.h>
-#include "omxilpcmrendererconst.h"
-#include "omxilprocessingfunction.h"
-
-// Forward declarations
-class MOmxILClockComponentCmdsIf;
-
-NONSHARABLE_CLASS(COmxILPcmRendererProcessingFunction) :
- public COmxILProcessingFunction
- {
-
-public:
- static COmxILPcmRendererProcessingFunction* NewL(
- MOmxILCallbackNotificationIf& aCallbacks,
- MOmxILClockComponentCmdsIf& aClientClockPort);
-
- ~COmxILPcmRendererProcessingFunction();
-
- OMX_ERRORTYPE StateTransitionIndication(COmxILFsm::TStateIndex aNewState);
-
- OMX_ERRORTYPE BufferFlushingIndication(TUint32 aPortIndex,
- OMX_DIRTYPE aDirection);
-
- OMX_ERRORTYPE ParamIndication(OMX_INDEXTYPE aParamIndex,
- const TAny* apComponentParameterStructure);
-
- OMX_ERRORTYPE ConfigIndication(OMX_INDEXTYPE aConfigIndex,
- const TAny* apComponentConfigStructure);
-
- OMX_ERRORTYPE BufferIndication(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_DIRTYPE aDirection);
-
- OMX_ERRORTYPE MediaTimeIndication(const OMX_TIME_MEDIATIMETYPE& aMediaTimeType);
-
- OMX_BOOL BufferRemovalIndication(
- OMX_BUFFERHEADERTYPE* apBufferHeader,
- OMX_DIRTYPE aDirection);
-
- TInt GetBytesPlayed() const;
-
-private:
-
- COmxILPcmRendererProcessingFunction(MOmxILCallbackNotificationIf& aCallbacks,
- MOmxILClockComponentCmdsIf& aClientClockPort);
-
- void ConstructL();
-
- void FlushBufferList(RPointerArray<OMX_BUFFERHEADERTYPE>& aBufferList);
-
-private:
- RPointerArray<OMX_BUFFERHEADERTYPE> iBuffersToEmpty;
- RPointerArray<OMX_BUFFERHEADERTYPE> iBuffersEmptied;
- OMX_STATETYPE iState;
- MOmxILClockComponentCmdsIf* iClientClockPortPtr;
- OMX_TICKS iStartMediaTime;
-
- class CAudioDevice : public CActive
- {
- public:
- static CAudioDevice* NewL(COmxILPcmRendererProcessingFunction& aParent);
- ~CAudioDevice();
-
- // from CActive
- void RunL();
- void DoCancel();
-
- OMX_ERRORTYPE OpenDevice();
- OMX_ERRORTYPE CloseDevice();
- OMX_ERRORTYPE Execute();
- OMX_ERRORTYPE MoveToPausedState();
- OMX_ERRORTYPE Stop();
-
- OMX_ERRORTYPE SetChannels(TUint aChannels);
- OMX_ERRORTYPE SetSampleRate(TUint aSampleRate);
- OMX_ERRORTYPE SetVolume(TInt aVolume);
- OMX_ERRORTYPE SetVolumeRamp(const TTimeIntervalMicroSeconds& aRampDuration);
- OMX_ERRORTYPE SetMuted(TBool aMuted);
- OMX_BUFFERHEADERTYPE* GetCurrentBuffer();
- TInt GetBytesPlayed();
- void ConfigAudioRamper(TInt64 aRampTime);
- TBool RampAudio(CMMFDataBuffer* aBuffer);
- TBool ConstructAndStartUpdateTimer();
- void ProcessNextBuffer();
- void PlayData();
- void ProcessMediaTimeIndication(OMX_TIME_MEDIATIMETYPE& aMediaTimeType);
- void ProcessParamIndication(const OMX_AUDIO_PARAM_PCMMODETYPE& aPcmModeType);
-
- private:
- CAudioDevice(COmxILPcmRendererProcessingFunction& aParent);
- void ConstructL();
- OMX_ERRORTYPE SetPlayFormat();
- void SignalBufferCompletion(OMX_BUFFERHEADERTYPE* apCurrentBuffer);
- TBool IsBufferLengthSufficient(TInt aBufferLength) const;
- TInt GetMinBufferLength() const;
- void SendBufferToSoundDevice(TDes8& aBuffer);
- void StartUpdateTimer();
- void HandleClockStateChanged(const OMX_TIME_MEDIATIMETYPE& aMediaTimeType);
- TBool CanPlayNow();
- void HandleClockScaleChanged(const OMX_TIME_MEDIATIMETYPE& aMediaTimeType);
- void PauseAudio();
-
- // From MGenericTimerClient
- static TInt UpdateClockMediaTime(TAny* aPtr );
-
- private:
- RMdaDevSound iSoundDevice;
- OMX_BUFFERHEADERTYPE* iCurrentBuffer;
- COmxILPcmRendererProcessingFunction& iParent;
- TInt iSampleRate;
- TInt iChannels;
- RMdaDevSound::TMdaSoundEncoding iEncoding;
- TUint iVolume;
- TBool iMuted;
- TUint iBufferSize;
- TTimeIntervalMicroSeconds iVolumeRamp;
- TBool iRampAudioSample;
- TInt iRampSamples;
- TInt iRampSamplesLeft;
- TInt iRampIncr;
- TBool iSkip;
- TBool iClockStateRunning;
- TBool iPausedClockViaScale;
- TBool iIsStartTimeFlagSet;
- OMX_TICKS iClockMediaTime;
- TBool iPlayData; // To indicate whether it can start rendering audio or not
-
- /// If the component is in a state other than OMX_StateExecuting, this
- /// internal variable is used to store the last value of bytes played by
- /// the Sound Device.
- TInt iLastBytesPlayedValue;
-
- /// This is used to send a media time update to the clock component
- CPeriodic* iPeriodic;
-
- // This variable is used to optionally allocate a memory segment to cache OMX buffers if the tunnelled component does not utilise them well
- // If the tunnelled components don't fill in sufficient data in the buffers, this can create underflows in the renderer, as the driver won't have enough data to play
- RBuf8 iCachedPlayBuffer;
-
- } *iAudioDevice;
-
- class CPFHelper : public CActive
- {
- public:
- static CPFHelper* NewL(CAudioDevice& aAudioDevice);
- ~CPFHelper();
-
- // from CActive
- void RunL();
- void DoCancel();
-
- TInt OpenDevice();
- TInt CloseDevice();
- TInt CloseDeviceOnError();
- TInt Execute();
- TInt Stop();
- TInt CancelDevice();
- TInt BufferIndication();
- TInt MediaTimeIndication(const OMX_TIME_MEDIATIMETYPE& aMediaTimeType);
- TInt ParamIndication(const OMX_AUDIO_PARAM_PCMMODETYPE* aPcmModeType);
- TInt SetVolumeRamp(const OMX_U64 aRampDuration);
- TInt SetVolume(const OMX_S32 aVolumeValue);
- TInt SetMuted(const OMX_BOOL aVolumeValue);
-
- enum TMessageType
- {
- EOpenDevice,
- ECloseDevice,
- ECloseDeviceOnError,
- EExecuteCommand,
- EStopCommand,
- ECancelCommand,
- EBufferIndication,
- EMediaTimeIndication,
- EParamIndication,
- ESetVolumeRamp,
- ESetVolume,
- ESetMuted
- };
-
- class TProcMessage
- {
- public:
- TMessageType iType;
- OMX_TIME_MEDIATIMETYPE iMediaTimeType;
- OMX_AUDIO_PARAM_PCMMODETYPE iPcmModeType;
- OMX_U64 iRampDuration;
- OMX_S32 iVolumeValue;
- OMX_BOOL iMuted;
- };
-
- RMsgQueue<TProcMessage> iMsgQueue;
-
- private:
- CPFHelper(CAudioDevice& aAudioDevice);
- void ConstructL();
-
- private:
-
- static const TInt KMaxMsgQueueEntries = 150;
-
- CAudioDevice& iAudioDevice;
- TThreadId iHelperThreadId;
- RSemaphore iCallerSemaphore;
-
- } *iPFHelper;
-
- };
-
-#endif // OMXILPCMRENDERERPROCESSINGFUNCTION_H
--- a/omxil/omxilrefcomps/ref_components/group/bld.inf Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-PRJ_MMPFILES
-// Components
-../mmpfiles/omxilpcmrenderer.mmp
-
-PRJ_EXPORTS
-// Romkit include files
-omxilcompref.iby /epoc32/rom/include/omxilcompref.iby
-
-
--- a/omxil/omxilrefcomps/ref_components/group/multimedia_omx_il_comp_ref.mrp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-# multimedia_omx_il_comp_ref.mrp
-#
-# Copyright (c) 2008 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:
-#
-
-component multimedia_omx_il_comp_ref
-
-source \sf\os\mm\omxil\omxilrefcomps\ref_components\
-
-binary \sf\os\mm\omxil\omxilrefcomps\ref_components\group all
-
-exports \sf\os\mm\omxil\omxilrefcomps\ref_components\group
-
-notes_source \component_defs\release.src
-
-ipr T
--- a/omxil/omxilrefcomps/ref_components/group/omxilcompref.iby Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef OMXILCOMPREF_IBY
-#define OMXILCOMPREF_IBY
-
-
-// OMX IL Components
-ECOM_PLUGIN(omxilpcmrenderer.dll, omxilpcmrenderer.rsc)
-
-#endif // OMXILCOMPREF_IBY
\ No newline at end of file
--- a/omxil/omxilrefcomps/ref_components/mmpfiles/omxilpcmrenderer.mmp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-// Copyright (c) 2008-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:
-// @file omxilpcmrenderer.dll
-// @SYMPurpose
-//
-//
-
-#include "../audio/pcmrenderer/src/omxilpcmrenderer.hrh"
-
-TARGET omxilpcmrenderer.dll
-CAPABILITY ALL -TCB
-TARGETTYPE plugin
-UID 0x10009D8D KUidSymbianOmxILPcmRendererDll
-VENDORID 0x70000001
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-
-USERINCLUDE ../audio/pcmrenderer/src
-USERINCLUDE ../../../omxilcomponentcommon/src/common
-USERINCLUDE ../audio/pcmrenderer/inc
-USERINCLUDE ../../../../../mm/mmdevicefw/mdf/src/audio/mdasoundadapter
-
-
-SOURCEPATH ../audio/pcmrenderer/src
-SOURCE omxilpcmrenderer.cpp
-SOURCE omxilpcmrendererapb0port.cpp
-SOURCE omxilpcmrendererprocessingfunction.cpp
-SOURCE omxilpcmrendererconfigmanager.cpp
-
-RESOURCE omxilpcmrenderer.rss
-
-LIBRARY euser.lib
-LIBRARY ecom.lib
-LIBRARY omxilcomponentcommon.lib
-STATICLIBRARY omxilcomponentif.lib
-
-#ifdef SYMBIAN_MDF_SHAREDCHUNK_SOUNDDRIVER
-LIBRARY mdasoundadapter.lib
-#endif
-
-// Uncomment to activate debug tracing in this module
-MACRO _OMXIL_PCMRENDERER_DEBUG_TRACING_ON
-
-SMPSAFE
--- a/omxil/omxilunittest/components/bwins/tsu_omxil_pcmrenderer_01.def Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
- ?NewTestSuiteL@@YAPAVCTestSuiteOmxILPcmRenderer@@XZ @ 1 NONAME ; class CTestSuiteOmxILPcmRenderer * NewTestSuiteL(void)
-
Binary file omxil/omxilunittest/components/data/pcm16stereo44khz.raw has changed
Binary file omxil/omxilunittest/components/data/pcm16stereo8khz.raw has changed
--- a/omxil/omxilunittest/components/eabi/tsu_omxil_pcmrenderer_01.def Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
- _Z13NewTestSuiteLv @ 1 NONAME
-
--- a/omxil/omxilunittest/components/group/bld.inf Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-PRJ_TESTEXPORTS
-../scripts/tsu_omxil_pcmrenderer_01.script c:/omxil/tsu_omxil_pcmrenderer_01.script
-
-// Export test files
-../data/pcm16stereo8khz.raw c:/omxil/testfiles/pcm16stereo8khz.raw
-../data/pcm16stereo44khz.raw c:/omxil/testfiles/pcm16stereo44khz.raw
-
-// .iby
-tsu_omxil_components.iby /epoc32/rom/include/tsu_omxil_components.iby
-
-PRJ_TESTMMPFILES
-../mmpfiles/tsu_omxil_pcmrenderer_01.mmp
-
--- a/omxil/omxilunittest/components/group/component_test.pkg Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-
-
-"\sf\os\mm\omxil\omxilunittest\components\scripts\tsu_omxil_pcmrenderer_01.script"-"c:\omxil\tsu_omxil_pcmrenderer_01.script"
-
-// "\sf\os\mm\omxil\omxilunittest\components\data\pcm16stereo8khz.raw"-"c:\omxil\testfiles\pcm16stereo8khz.raw
-// "\sf\os\mm\omxil\omxilunittest\components\data\pcm16stereo44khz.raw"-"c:\omxil\testfiles\pcm16stereo44khz.raw
--- a/omxil/omxilunittest/components/group/tsu_omxil_components.iby Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef TSU_OMXIL_COMPONENTS_IBY
-#define TSU_OMXIL_COMPONENTS_IBY
-
-// OMX IL Components Unit tests and scripts
-
-file=ABI_DIR\BUILD_DIR\tsu_omxil_pcmrenderer_01.dll System\Libs\tsu_omxil_pcmrenderer_01.dll
-data=EPOCROOT##epoc32\data\c\omxil\tsu_omxil_pcmrenderer_01.script \omxil\tsu_omxil_pcmrenderer_01.script
-
-#endif // TSU_OMXIL_COMPONENTS_IBY
\ No newline at end of file
--- a/omxil/omxilunittest/components/mmpfiles/tsu_omxil_pcmrenderer_01.mmp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include "../src/uids.hrh"
-
-TARGET tsu_omxil_pcmrenderer_01.dll
-CAPABILITY ALL -TCB
-TARGETTYPE dll
-UID KSharedLibraryUidDefine KUidTsuOmxILPcmRendererDll
-VENDORID 0x70000001
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-OS_LAYER_ESTLIB_SYSTEMINCLUDE
-
-USERINCLUDE ../src
-USERINCLUDE ../../../omxilrefcomps/ref_components/audio/pcmrenderer/inc
-USERINCLUDE ../../../omxilcomponentcommon/src/common
-USERINCLUDE ../../../omxilrefcomps/ref_components/audio/pcmrenderer/src
-
-SOURCEPATH ../src
-SOURCE tsu_omxil_component_base.cpp
-SOURCE tsu_omxil_pcmrenderer_suite.cpp
-SOURCE tsu_omxil_pcmrenderer_step.cpp
-
-LIBRARY euser.lib
-LIBRARY efsrv.lib
-LIBRARY ecom.lib
-LIBRARY testframeworkclient.lib
-LIBRARY omxilcomponentcommon.lib
-LIBRARY mmfserverbaseclasses.lib
-STATICLIBRARY omxilcomponentif.lib
-
-NOSTRICTDEF
-#ifdef EABI
-NOEXPORTLIBRARY
-#endif
-
-// Uncomment to activate debug tracing in this module
-// MACRO _OMXIL_AACUNIT_DEBUG_TRACING_ON
-
-SMPSAFE
--- a/omxil/omxilunittest/components/scripts/tsu_omxil_pcmrenderer_01.script Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-LOAD_SUITE tsu_omxil_pcmrenderer_01.dll
-
-//! @SYMTestCaseID MM-OMXIL-OMXILPCMRENDERER-U-0020-HP
-
-RUN_TEST_STEP 20000 tsu_omxil_pcmrenderer_01 MM-OMXIL-OMXILPCMRENDERER-U-0020-HP
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-OMXIL-OMXILPCMRENDERER-U-0021-HP
-
-RUN_TEST_STEP 20000 tsu_omxil_pcmrenderer_01 MM-OMXIL-OMXILPCMRENDERER-U-0021-HP
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-OMXIL-OMXILPCMRENDERER-U-0022-HP
-
-RUN_TEST_STEP 20000 tsu_omxil_pcmrenderer_01 MM-OMXIL-OMXILPCMRENDERER-U-0022-HP
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-OMXIL-OMXILPCMRENDERER-U-0001-HP
-
-RUN_TEST_STEP 20000 tsu_omxil_pcmrenderer_01 MM-OMXIL-OMXILPCMRENDERER-U-0001-HP
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-OMXIL-OMXILPCMRENDERER-U-0002-HP
-
-RUN_TEST_STEP 20000 tsu_omxil_pcmrenderer_01 MM-OMXIL-OMXILPCMRENDERER-U-0002-HP
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-OMXIL-OMXILPCMRENDERER-U-0003-HP
-
-RUN_TEST_STEP 20000 tsu_omxil_pcmrenderer_01 MM-OMXIL-OMXILPCMRENDERER-U-0003-HP
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-OMXIL-OMXILPCMRENDERER-U-0004-HP
-
-RUN_TEST_STEP 20000 tsu_omxil_pcmrenderer_01 MM-OMXIL-OMXILPCMRENDERER-U-0004-HP
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-OMXIL-OMXILPCMRENDERER-U-0005-HP
-
-RUN_TEST_STEP 20000 tsu_omxil_pcmrenderer_01 MM-OMXIL-OMXILPCMRENDERER-U-0005-HP
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-OMXIL-OMXILPCMRENDERER-U-0006-HP
-
-RUN_TEST_STEP 20000 tsu_omxil_pcmrenderer_01 MM-OMXIL-OMXILPCMRENDERER-U-0006-HP
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-OMXIL-OMXILPCMRENDERER-U-0007-HP
-
-RUN_TEST_STEP 20000 tsu_omxil_pcmrenderer_01 MM-OMXIL-OMXILPCMRENDERER-U-0007-HP
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-OMXIL-OMXILPCMRENDERER-U-0008-HP
-
-RUN_TEST_STEP 20000 tsu_omxil_pcmrenderer_01 MM-OMXIL-OMXILPCMRENDERER-U-0008-HP
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-OMXIL-OMXILPCMRENDERER-U-0009-HP
-
-RUN_TEST_STEP 30000 tsu_omxil_pcmrenderer_01 MM-OMXIL-OMXILPCMRENDERER-U-0009-HP
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-OMXIL-OMXILPCMRENDERER-U-0010-HP
-
-RUN_TEST_STEP 30000 tsu_omxil_pcmrenderer_01 MM-OMXIL-OMXILPCMRENDERER-U-0010-HP
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-OMXIL-OMXILPCMRENDERER-U-0030-HP
-
-RUN_TEST_STEP 20000 tsu_omxil_pcmrenderer_01 MM-OMXIL-OMXILPCMRENDERER-U-0030-HP
-TEST_COMPLETE
-
-//! @SYMTestCaseID MM-OMXIL-OMXILPCMRENDERER-U-0031-HP
-
-RUN_TEST_STEP 30000 tsu_omxil_pcmrenderer_01 MM-OMXIL-OMXILPCMRENDERER-U-0031-HP
-TEST_COMPLETE
--- a/omxil/omxilunittest/components/src/log.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,146 +0,0 @@
-// Copyright (c) 2004-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:
-//
-
-#ifndef __SWI_LOG_H__
-#define __SWI_LOG_H__
-
-#include <e32debug.h>
-
-class TTruncateOverflowHandler16 : public TDes16Overflow
- {
- public:
- virtual void Overflow( TDes16& aDes );
- };
-
-inline void TTruncateOverflowHandler16::Overflow( TDes16& aDes)
- {
- _LIT(KErrOverflowMsg,"Descriptor Overflow, hence value truncated");
- if( aDes.MaxLength() >= KErrOverflowMsg().Length() + aDes.Length() )
- aDes.Append(KErrOverflowMsg);
- }
-
-class TTruncateOverflowHandler8 : public TDes8Overflow
- {
- public:
- virtual void Overflow( TDes8& aDes );
- };
-
-inline void TTruncateOverflowHandler8::Overflow( TDes8& aDes)
- {
- _LIT(KErrOverflowMsg,"Descriptor Overflow, hence value truncated");
- if( aDes.MaxLength() >= KErrOverflowMsg().Length() + aDes.Length() )
- aDes.Append(KErrOverflowMsg);
- }
-
-namespace DSD
-{
-
-#ifdef _DEBUG
-
-#ifdef _OMXIL_AACUNIT_DEBUG_TRACING_ON
-
-#define DEBUG_PRINTF(a) {DSD::DebugPrintf(__LINE__, __FILE__, a);}
-#define DEBUG_PRINTF2(a, b) {DSD::DebugPrintf(__LINE__, __FILE__, a, b);}
-#define DEBUG_PRINTF3(a, b, c) {DSD::DebugPrintf(__LINE__, __FILE__, a, b, c);}
-#define DEBUG_PRINTF4(a, b, c, d) {DSD::DebugPrintf(__LINE__, __FILE__, a, b, c, d);}
-#define DEBUG_PRINTF5(a, b, c, d, e) {DSD::DebugPrintf(__LINE__, __FILE__, a, b, c, d, e);}
-
-#define DEBUG_CODE_SECTION(a) TRAP_IGNORE({ a; })
-
-// UTF-8 overload of the DebufPrintf method. Should be used by default,
-// since it's cheaper both in CPU cycles and stack space.
-
-inline void DebugPrintf(TInt aLine, char* aFile, TRefByValue<const TDesC8> aFormat, ...)
- {
- TTruncateOverflowHandler8 overflowHandler8;
- VA_LIST list;
- VA_START(list, aFormat);
-
- TTime now;
- now.HomeTime();
-
- TBuf8<1024> buffer;
- _LIT8(KSwiLogPrefix, "[aacunit] ");
- _LIT8(KSwiLineFileFormat, "TID[%d] : [%s:%d] -- ");
- buffer.Append(KSwiLogPrefix);
- RThread thread;
- TUint threadId = thread.Id();
- thread.Close();
- RProcess proc;
- TFileName fName = proc.FileName();
- proc.Close();
- buffer.AppendFormat(KSwiLineFileFormat, threadId, aFile, aLine);
- buffer.AppendFormatList(aFormat, list ,&overflowHandler8 );
- buffer.Append(_L8("\r\n"));
-
- RDebug::RawPrint(buffer);
-
- VA_END(list);
- }
-
-// Unicode DebufPrintf overload
-
-inline void DebugPrintf(TInt aLine, char* aFile, TRefByValue<const TDesC16> aFormat, ...)
- {
- TTruncateOverflowHandler16 overflowHandler16;
- VA_LIST list;
- VA_START(list, aFormat);
-
- TTime now;
- now.HomeTime();
-
- TBuf8<256> header;
- _LIT8(KSwiLogPrefix, "[aacunit] ");
- _LIT8(KSwiLineFileFormat, "%Ld Line: % 5d, File: %s -- ");
- header.Append(KSwiLogPrefix);
- header.AppendFormat(KSwiLineFileFormat, now.Int64(), aLine, aFile);
-
- TBuf<1024> buffer;
- buffer.Copy(header);
- buffer.AppendFormatList(aFormat, list ,&overflowHandler16);
- buffer.Append(_L("\r\n"));
-
- RDebug::RawPrint(buffer);
-
- VA_END(list);
- }
-#else
-
-#define DEBUG_PRINTF(a)
-#define DEBUG_PRINTF2(a, b)
-#define DEBUG_PRINTF3(a, b, c)
-#define DEBUG_PRINTF4(a, b, c, d)
-#define DEBUG_PRINTF5(a, b, c, d, e)
-
-#define DEBUG_CODE_SECTION(a)
-
-#endif
-
-#else
-
-#define DEBUG_PRINTF(a)
-#define DEBUG_PRINTF2(a, b)
-#define DEBUG_PRINTF3(a, b, c)
-#define DEBUG_PRINTF4(a, b, c, d)
-#define DEBUG_PRINTF5(a, b, c, d, e)
-
-#define DEBUG_CODE_SECTION(a)
-
-#endif
-
-
-} // namespace DSD
-
-#endif // __SWI_LOG_H__
--- a/omxil/omxilunittest/components/src/tsu_omxil_component_base.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,858 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @internalComponent
-*/
-
-#include <mmf/server/mmfbuffer.h>
-#include <mmf/server/mmfdatabuffer.h>
-
-#include <ecom/ecom.h>
-#include <openmax/il/khronos/v1_x/OMX_Component.h>
-#include <openmax/il/loader/omxilcomponentif.h>
-
-#include "log.h"
-#include "tsu_omxil_component_base.h"
-
-
-const TInt CCallbackHandler::KMaxMsgQueueEntries;
-
-
-CAacTestFile*
-CAacTestFile::NewL()
- {
- DEBUG_PRINTF(_L8("CAacTestFile::NewL"));
- CAacTestFile* self = new (ELeave) CAacTestFile();
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-void
-CAacTestFile::ConstructL()
- {
- DEBUG_PRINTF(_L8("CAacTestFile::ConstructL"));
- }
-
-CAacTestFile::CAacTestFile() :
- iSourceFile(0),
- iSourceFileReadPos(0),
- iFinished(EFalse)
- {
- DEBUG_PRINTF(_L8("CAacTestFile::CAacTestFile"));
- }
-
-CAacTestFile::~CAacTestFile()
- {
- DEBUG_PRINTF(_L8("CAacTestFile::~CAacTestFile"));
-
- delete iSourceFile;
-
- }
-
-TInt
-CAacTestFile::ReadTestFileInBuffer(const TDesC& aFileName)
- {
- DEBUG_PRINTF(_L8("CAacTestFile::ReadTestFileInBuffer"));
-
- RFs fs;
- fs.Connect();
-
- RFile file;
- TInt err = file.Open(fs, aFileName, EFileRead);
- if (err == KErrNone)
- {
- TInt size;
- err = file.Size(size);
- if (err == KErrNone)
- {
- iSourceFile = HBufC8::NewMax(size);
- if(!iSourceFile)
- {
- return KErrNoMemory;
- }
- TPtr8 ptr = iSourceFile->Des();
- file.Read(ptr,size);
- file.Close();
- }
- fs.Close();
- }
-
- return err;
-
- }
-
-
-void
-CAacTestFile::ReadNextBuffer(CMMFBuffer& aDataBuffer)
- {
- DEBUG_PRINTF(_L8("CAacTestFile::ReadNextBuffer"));
-
- CMMFDataBuffer* pDataBuffer = static_cast<CMMFDataBuffer*>(&aDataBuffer);
- while (ETrue)
- {
- // check if finished
- if (iFinished)
- {
- DEBUG_PRINTF(_L8("CAacTestFile::ReadNextBuffer : File finished"));
- pDataBuffer->Data().Zero();
- return;
- }
-
- TInt srcLength = iSourceFile->Size();
- if (iSourceFileReadPos < srcLength)
- {
- TInt size = srcLength;
- if (size > pDataBuffer->Data().MaxLength())
- {
- size = pDataBuffer->Data().MaxLength();
- }
- Mem::Copy((TAny*)pDataBuffer->Data().Ptr(), (TAny*)iSourceFile->Mid(iSourceFileReadPos).Ptr(), size);
- pDataBuffer->Data().SetLength(size);
- iSourceFileReadPos += size;
- DEBUG_PRINTF2(_L8("CAacTestFile::ReadNextBuffer : data read = [%d] bytes"), iSourceFileReadPos);
- DEBUG_PRINTF2(_L8("CAacTestFile::ReadNextBuffer : pDataBuffer->BufferSize = [%u] bytes"), pDataBuffer->BufferSize());
- if (iSourceFileReadPos >= srcLength)
- {
- DEBUG_PRINTF(_L8("CAacTestFile::ReadNextBuffer : end of data"));
- pDataBuffer->SetLastBuffer(ETrue);
- iFinished = ETrue;
- }
- return;
-
- }
- else
- {
- // no more data
- DEBUG_PRINTF(_L8("CAacTestFile::ReadNextBuffer : end of data"));
- iFinished = ETrue;
- return;
- }
- }
- }
-
-void
-CAacTestFile::ResetPos()
- {
- iSourceFileReadPos = 0;
- iFinished = EFalse;
- }
-
-TInt
-CAacTestFile::GetPos()
- {
- return iSourceFileReadPos;
- }
-
-
-CAacOutputTestFile*
-CAacOutputTestFile::NewL()
- {
- DEBUG_PRINTF(_L8("CAacOutputTestFile::NewL"));
- CAacOutputTestFile* self = new (ELeave) CAacOutputTestFile();
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-void
-CAacOutputTestFile::ConstructL()
- {
- DEBUG_PRINTF(_L8("CAacOutputTestFile::ConstructL"));
- }
-
-CAacOutputTestFile::CAacOutputTestFile() :
- iFileServerSession(),
- iOutputFile(),
- iWrittenDataTotal(0),
- iBuffersWrittenCount(0)
- {
- DEBUG_PRINTF(_L8("CAacOutputTestFile::CAacOutputTestFile"));
- }
-
-CAacOutputTestFile::~CAacOutputTestFile()
- {
- DEBUG_PRINTF(_L8("CAacOutputTestFile::~CAacOutputTestFile"));
- }
-
-TInt
-CAacOutputTestFile::SetUpOutputFile(const TDesC& aFileName)
- {
- DEBUG_PRINTF(_L8("CAacOutputTestFile::SetUpOutputFile"));
-
- iFileServerSession.Connect();
- TInt err = iOutputFile.Create(iFileServerSession,
- aFileName,
- EFileWrite|EFileShareExclusive);
- if(err != KErrNone)
- {
- err = iOutputFile.Replace(iFileServerSession,
- aFileName,
- EFileWrite|EFileShareExclusive);
- }
- return err;
-
- }
-
-TInt
-CAacOutputTestFile::WriteDataToFile(const CMMFBuffer& aDataBuffer)
- {
- DEBUG_PRINTF(_L8("CAacOutputTestFile::WriteDataToFile"));
-
- const CMMFDataBuffer& dataBuffer = static_cast<const CMMFDataBuffer&>(aDataBuffer);
- const TDesC8& data = dataBuffer.Data();
-
- TInt err = KErrNone;
- err = iOutputFile.Write(data);
- if(err != KErrNone)
- {
- return err;
- }
- // keep record of amount of data and the number of buffers written out
- iWrittenDataTotal += data.Size();
- iBuffersWrittenCount++;
-
- DEBUG_PRINTF2(_L8("CAacOutputTestFile::WriteDataToFile : data.Size()[%d]"), data.Size());
- DEBUG_PRINTF2(_L8("CAacOutputTestFile::WriteDataToFile : iWrittenDataTotal[%d]"), iWrittenDataTotal);
- DEBUG_PRINTF2(_L8("CAacOutputTestFile::WriteDataToFile : iBuffersWrittenCount[%d]"), iBuffersWrittenCount);
-
- return err;
-
- }
-
-
-TInt
-CAacOutputTestFile::AddWavHeader()
- {
- DEBUG_PRINTF(_L8("CAacOutputTestFile::AddWavHeader"));
-
- RFs fs;
- fs.Connect();
-
- RFile file;
- TInt err = file.Open(fs, KAacDecoderOutputTestFile, EFileRead);
- if (err != KErrNone)
- {
- return err;
- }
-
- TInt size;
- err = file.Size(size);
- if (err != KErrNone)
- {
- return err;
- }
-
- HBufC8* rawDecFile = HBufC8::NewMax(size);
- if(!rawDecFile)
- {
- return KErrNoMemory;
- }
-
- TPtr8 ptr = rawDecFile->Des();
- file.Read(ptr,size);
- file.Close();
-
- // add headers
- err = file.Replace(fs, KAacDecoderOutputTestFile, EFileWrite);
- if (err != KErrNone)
- {
- return err;
- }
-
- // this is canonical WAV file format header
- TInt32 chunkSize = size + KTestWavFormatPCMChunkHeaderSize;
- TInt32 subchunk1size = KTestWavFormatPCMSubchunk1Size;
- TInt16 audioFormat = KTestAudioFormatPCM;
- TInt16 numChannels = KTestNumChannels;
- TInt32 sampleRate = KTestSampleRate;
- TInt16 bitsPerSample = KTestBitsPerSample;
- TInt32 byteRate = sampleRate * numChannels * (bitsPerSample / 8);
- TInt16 blockAlign = numChannels * (bitsPerSample / 8);
- TInt32 subchunk2size = size;
-
- file.Write(_L8("RIFF"));
- { TPtrC8 buf((TText8*)&chunkSize,sizeof(TInt32)); file.Write(buf); }
- file.Write(_L8("WAVEfmt "));
- { TPtrC8 buf((TText8*)&subchunk1size,sizeof(TInt32)); file.Write(buf); }
- { TPtrC8 buf((TText8*)&audioFormat,sizeof(TInt16)); file.Write(buf); }
- { TPtrC8 buf((TText8*)&numChannels,sizeof(TInt16)); file.Write(buf); }
- { TPtrC8 buf((TText8*)&sampleRate,sizeof(TInt32)); file.Write(buf); }
- { TPtrC8 buf((TText8*)&byteRate,sizeof(TInt32)); file.Write(buf); }
- { TPtrC8 buf((TText8*)&blockAlign,sizeof(TInt16)); file.Write(buf); }
- { TPtrC8 buf((TText8*)&bitsPerSample,sizeof(TInt16)); file.Write(buf); }
- file.Write(_L8("data"));
- { TPtrC8 buf((TText8*)&subchunk2size,sizeof(TInt32)); file.Write(buf); }
- file.Write(ptr,size);
-
- // store file size
- file.Size(iWrittenDataTotal);
-
- file.Close();
- fs.Close();
-
- delete rawDecFile;
-
- return KErrNone;
-
- }
-
-void
-CAacOutputTestFile::CloseOutputFile()
- {
- DEBUG_PRINTF(_L8("CAacOutputTestFile::CloseOutputFile"));
-
- iOutputFile.Close();
- iFileServerSession.Close();
-
- }
-
-//
-// CUtilityTimer
-//
-CUtilityTimer*
-CUtilityTimer::NewL(TTimeIntervalMicroSeconds32& aDelay,
- MTimerObserver& aObserver)
- {
- CUtilityTimer* self = new (ELeave) CUtilityTimer(aObserver);
- CleanupStack::PushL(self);
- self->ConstructL(aDelay);
- CleanupStack::Pop(self);
- return self;
- }
-
-void
-CUtilityTimer::ConstructL(TTimeIntervalMicroSeconds32& aDelay)
- {
- CTimer::ConstructL();
-
- iDelay = aDelay;
- CActiveScheduler::Add(this);
- }
-
-CUtilityTimer::~CUtilityTimer()
- {
- Cancel();
- }
-
-void
-CUtilityTimer::InitializeTimer()
- {
- // Request another wait - assume not active
- CTimer::After(iDelay);
- }
-
-void
-CUtilityTimer::RunL()
- {
- if (iStatus.Int() == KErrNone)
- iObserver.TimerExpired();
- }
-
-void
-CUtilityTimer::DoCancel()
- {
- }
-
-
-CUtilityTimer::CUtilityTimer(MTimerObserver& aObserver) :
- CTimer(CActive::EPriorityUserInput),
- iObserver(aObserver)
- {
- }
-
-//
-// CCallbackHandler
-//
-CCallbackHandler*
-CCallbackHandler::NewL(RAsyncTestStepOmxILComponentBase& aDecoderTest)
- {
- DEBUG_PRINTF(_L8("CCallbackHandler::NewL"));
-
- CCallbackHandler* self = new (ELeave) CCallbackHandler(aDecoderTest);
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
-
- }
-
-
-void
-CCallbackHandler::ConstructL()
- {
- DEBUG_PRINTF(_L8("CCallbackHandler::ConstructL"));
-
- OMX_CALLBACKTYPE h =
- {
- CCallbackHandler::EventHandler,
- CCallbackHandler::EmptyBufferDone,
- CCallbackHandler::FillBufferDone
- };
-
- iHandle = h;
- CActiveScheduler::Add(this);
-
- User::LeaveIfError(iMsgQueue.CreateLocal(KMaxMsgQueueEntries));
- iMsgQueue.NotifyDataAvailable(iStatus);
- SetActive();
-
- }
-
-CCallbackHandler::CCallbackHandler(RAsyncTestStepOmxILComponentBase& aDecoderTest)
- : CActive(EPriorityNormal),
- iDecoderTest(aDecoderTest)
- {
- DEBUG_PRINTF(_L8("CCallbackHandler::CCallbackHandler"));
- }
-
-
-CCallbackHandler::operator OMX_CALLBACKTYPE*()
- {
- DEBUG_PRINTF(_L8("CCallbackHandler::operator OMX_CALLBACKTYPE*"));
-
- return &iHandle;
-
- }
-
-
-void
-CCallbackHandler::RunL()
- {
- DEBUG_PRINTF(_L8("CCallbackHandler::RunL"));
-
- TOmxMessage msg;
- while (iMsgQueue.Receive(msg)==KErrNone)
- {
- switch (msg.iType)
- {
- case EEmptyBufferCallback:
- {
- iDecoderTest.DoEmptyBufferDoneL(msg.iComponent,
- msg.iBuffer);
- }
- break;
- case EFillBufferCallback:
- {
- iDecoderTest.DoFillBufferDoneL(msg.iComponent,
- msg.iBuffer);
- }
- break;
- case EEventCallback:
- {
- iDecoderTest.DoEventHandlerL(msg.iComponent,
- msg.iEventParams.iEvent,
- msg.iEventParams.iData1,
- msg.iEventParams.iData2,
- msg.iEventParams.iExtra);
- }
- break;
- default:
- {
- // This is an invalid state
- ASSERT(EFalse);
- }
- };
- }
-
- // setup for next callbacks
- iStatus = KRequestPending;
- iMsgQueue.NotifyDataAvailable(iStatus);
- SetActive();
-
- }
-
-CCallbackHandler::~CCallbackHandler()
- {
- DEBUG_PRINTF(_L8("CCallbackHandler::~CCallbackHandler"));
-
- Cancel();
- iMsgQueue.Close();
-
- }
-
-
-void
-CCallbackHandler::DoCancel()
- {
- DEBUG_PRINTF(_L8("CCallbackHandler::DoCancel"));
-
- if (iMsgQueue.Handle())
- {
- iMsgQueue.CancelDataAvailable();
- }
-
- }
-
-OMX_ERRORTYPE
-CCallbackHandler::FillBufferDone(OMX_HANDLETYPE aComponent,
- TAny* aAppData,
- OMX_BUFFERHEADERTYPE* aBuffer)
- {
- DEBUG_PRINTF(_L8("CCallbackHandler::FillBufferDone"));
-
- return static_cast<CCallbackHandler*>(aAppData)->DoFillBufferDone(aComponent, aBuffer);
-
- }
-
-OMX_ERRORTYPE
-CCallbackHandler::EmptyBufferDone(OMX_HANDLETYPE aComponent,
- TAny* aAppData,
- OMX_BUFFERHEADERTYPE* aBuffer)
- {
- DEBUG_PRINTF(_L8("CCallbackHandler::EmptyBufferDone"));
-
- return static_cast<CCallbackHandler*>(aAppData)->DoEmptyBufferDone(aComponent, aBuffer);
-
- }
-
-OMX_ERRORTYPE
-CCallbackHandler::EventHandler(OMX_HANDLETYPE aComponent,
- TAny* aAppData,
- OMX_EVENTTYPE aEvent,
- TUint32 aData1,
- TUint32 aData2,
- TAny* aExtra)
- {
- DEBUG_PRINTF4(_L8("CCallbackHandler::EventHandler : EVENT[%d] Data1[%d] Data2[%d]"), aExtra, aData1, aData2);
-
- CCallbackHandler::TEventParams eventParams;
- eventParams.iEvent = aEvent;
- eventParams.iData1 = aData1;
- eventParams.iData2 = aData2;
- eventParams.iExtra = aExtra;
- return static_cast<CCallbackHandler*>(aAppData)->DoEventHandler(aComponent, eventParams);
-
- }
-
-OMX_ERRORTYPE
-CCallbackHandler::DoFillBufferDone(OMX_HANDLETYPE aComponent,
- OMX_BUFFERHEADERTYPE* aBuffer)
- {
- DEBUG_PRINTF(_L8("CCallbackHandler::DoFillBufferDone"));
-
- TOmxMessage message;
- message.iType = EFillBufferCallback;
- message.iComponent = aComponent;
- message.iBuffer = aBuffer;
- return RAsyncTestStepOmxILComponentBase::ConvertSymbianErrorType(
- iMsgQueue.Send(message));
-
- }
-
-OMX_ERRORTYPE
-CCallbackHandler::DoEmptyBufferDone(OMX_HANDLETYPE aComponent,
- OMX_BUFFERHEADERTYPE* aBuffer)
- {
- DEBUG_PRINTF(_L8("CCallbackHandler::DoEmptyBufferDone"));
-
- TOmxMessage message;
- message.iType = EEmptyBufferCallback;
- message.iComponent = aComponent;
- message.iBuffer = aBuffer;
- return RAsyncTestStepOmxILComponentBase::ConvertSymbianErrorType(
- iMsgQueue.Send(message));
-
- }
-
-OMX_ERRORTYPE
-CCallbackHandler::DoEventHandler(OMX_HANDLETYPE aComponent,
- TEventParams aEventParams)
- {
- DEBUG_PRINTF(_L8("CCallbackHandler::DoEventHandler"));
-
- TOmxMessage message;
- message.iType = EEventCallback;
- message.iComponent = aComponent;
- message.iEventParams = aEventParams;
- return RAsyncTestStepOmxILComponentBase::ConvertSymbianErrorType(
- iMsgQueue.Send(message));
-
- }
-
-//
-// RAsyncTestStepOmxILComponentBase
-//
-RAsyncTestStepOmxILComponentBase::RAsyncTestStepOmxILComponentBase(const TDesC& aTestName, TInt aComponentUid)
- :
- iComponentUid(),
- ipKickoffAOp(0),
- ipKickoffStop(0),
- ipCOmxILComponent(0),
- ipCallbackHandler(0),
- ipTestFile(0),
- iTestFileName(KAacDecoderTestFile()),
- ipCompHandle(0)
- {
- DEBUG_PRINTF2(_L8("RAsyncTestStepOmxILComponentBase::RAsyncTestStepOmxILComponentBase: UID[%X]"), aComponentUid);
- iTestStepName = aTestName;
- iComponentUid = aComponentUid;
- // Default heap size is 32K. Increased to avoid the KErrNoMemory for this test step.
- iHeapSize = KTestHeapSize;
-
- }
-
-RAsyncTestStepOmxILComponentBase::~RAsyncTestStepOmxILComponentBase()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILComponentBase::~RAsyncTestStepOmxILComponentBase"));
- // nothing here just yet
- }
-
-void
-RAsyncTestStepOmxILComponentBase::PrintOmxState(OMX_STATETYPE aOmxState)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILComponentBase::PrintOmxState"));
-
- switch(aOmxState)
- {
- case OMX_StateInvalid:
- {
- INFO_PRINTF1(_L("OMX STATE : OMX_StateInvalid"));
- }
- break;
- case OMX_StateLoaded:
- {
- INFO_PRINTF1(_L("OMX STATE : OMX_StateLoaded"));
- }
- break;
- case OMX_StateIdle:
- {
- INFO_PRINTF1(_L("OMX STATE : OMX_StateIdle"));
- }
- break;
- case OMX_StateExecuting:
- {
- INFO_PRINTF1(_L("OMX STATE : OMX_StateExecuting"));
- }
- break;
- case OMX_StatePause:
- {
- INFO_PRINTF1(_L("OMX STATE : OMX_StatePause"));
- }
- break;
- case OMX_StateWaitForResources:
- {
- INFO_PRINTF1(_L("OMX STATE : OMX_StateWaitForResources"));
- }
- break;
- default:
- {
- INFO_PRINTF1(_L("OMX STATE : Wrong state found"));
- }
- };
-
- }
-
-OMX_ERRORTYPE
-RAsyncTestStepOmxILComponentBase::ConvertSymbianErrorType(TInt aError)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILComponentBase::ConvertSymbianErrorType"));
-
- OMX_ERRORTYPE err = OMX_ErrorNone;
- switch (aError)
- {
- case KErrNone:
- err = OMX_ErrorNone;
- break;
- case KErrNoMemory:
- err = OMX_ErrorInsufficientResources;
- break;
- case KErrGeneral:
- break;
- default:
- err = OMX_ErrorUndefined;
- }
- return err;
-
- }
-
-
-/**
- This method is used at the beginning of the test, and initialises the
- asynchronous calls that will be activated once the call returns. The
- ActiveScheduler is active at this point. If this test leaves, then
- StopTest() will be called with the leave value, so implicitly the test
- stops.
-
-*/
-void
-RAsyncTestStepOmxILComponentBase::KickoffTestL()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILComponentBase::KickoffTestL"));
-
- __MM_HEAP_MARK;
-
- // Set up an asynchronous call
- TCallBack callback (ComponentBaseCallBack, this);
- delete ipKickoffAOp;
- ipKickoffAOp = NULL;
- ipKickoffAOp =
- new (ELeave) CAsyncCallBack (callback, CActive::EPriorityLow);
- // Queues this active object to be run once.
- ipKickoffAOp->Call();
-
- }
-
-TInt
-RAsyncTestStepOmxILComponentBase::ComponentBaseCallBack(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILComponentBase::ComponentBaseCallBack"));
-
- RAsyncTestStepOmxILComponentBase* self = static_cast<RAsyncTestStepOmxILComponentBase*> (aPtr);
- self->DoComponentBaseCallBack();
- return KErrNone;
-
- }
-
-void
-RAsyncTestStepOmxILComponentBase::DoComponentBaseCallBack()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILComponentBase::DoComponentBaseCallBack"));
-
- TRAPD(err, ipCOmxILComponent =
- COmxILComponentIf::CreateImplementationL(TUid::Uid(iComponentUid)));
-
- //return StopTest(err, EFail);
- if (err != KErrNone)
- {
- INFO_PRINTF2(_L("RAsyncTestStepOmxILComponentBase::DoComponentBaseCallBack : err [%d]"), err);
- if (KErrNotFound == err)
- {
- INFO_PRINTF1(_L("DoComponentBaseCallBack : CreateImplementationL returned KErrNotFound"));
-// PacketVideo's AAC decoder libraries only provided for UDEB
-#ifndef _DEBUG
- INFO_PRINTF1(_L("IMPORTANT NOTE : THIS SUITE CAN ONLY BE RUN IN UDEB MODE"));
- INFO_PRINTF1(_L("IMPORTANT NOTE : PACKETVIDEO'S AAC DECODER LIBRARY ONLY AVAILABLE IN UDEB MODE"));
-#endif
- }
- return StopTest(err, EFail);
- }
-
- ipCompHandle = static_cast<OMX_COMPONENTTYPE*>(ipCOmxILComponent->Handle());
- if (!ipCompHandle)
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- TRAP(err, ipCallbackHandler = CCallbackHandler::NewL(*this));
- if (err != KErrNone)
- {
- return StopTest(err, EFail);
- }
-
- TRAP(err, ipTestFile = CAacTestFile::NewL());
- if (err != KErrNone)
- {
- return StopTest(err, EFail);
- }
-
- err = ipTestFile->ReadTestFileInBuffer(iTestFileName);
- if (err != KErrNone)
- {
- return StopTest(err, EFail);
- }
-
- TRAP(err, ipOutputTestFile = CAacOutputTestFile::NewL());
- if (err != KErrNone)
- {
- return StopTest(err, EFail);
- }
-
- err = ipOutputTestFile->SetUpOutputFile(KAacDecoderOutputTestFile);
- if (err != KErrNone)
- {
- return StopTest(err, EFail);
- }
-
-
- }
-
-TInt
-RAsyncTestStepOmxILComponentBase::StopTestCallBack(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILComponentBase::StopTestCallBack"));
- RAsyncTestStepOmxILComponentBase* self =
- static_cast<RAsyncTestStepOmxILComponentBase*> (aPtr);
- self->DoStopTestCallBack();
- return KErrNone;
- }
-
-void
-RAsyncTestStepOmxILComponentBase::DoStopTestCallBack()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILComponentBase::DoStopTestCallBack"));
-
- StopTest();
-
- }
-
-
-void
-RAsyncTestStepOmxILComponentBase::CloseTest()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILComponentBase::CloseTest"));
-
- if (ipCompHandle)
- {
- ipCompHandle->ComponentDeInit(ipCompHandle);
- }
- delete ipCOmxILComponent;
- ipCOmxILComponent = 0;
- ipCompHandle = 0;
-
- delete ipKickoffAOp; // no need to Cancel
- ipKickoffAOp = 0;
-
- delete ipCallbackHandler;
- ipCallbackHandler = 0;
-
- delete ipTestFile;
- ipTestFile = 0;
-
- if (ipOutputTestFile)
- {
- ipOutputTestFile->CloseOutputFile();
- // We ignore here this error...
- TInt err = ipOutputTestFile->AddWavHeader();
- delete ipOutputTestFile;
- ipOutputTestFile = 0;
- }
-
- REComSession::FinalClose();
- __MM_HEAP_MARKEND;
-
- }
-
-void
-RAsyncTestStepOmxILComponentBase::DoFillBufferDoneL(OMX_HANDLETYPE /* aComponent */,
- OMX_BUFFERHEADERTYPE* /* aBuffer */)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILComponentBase::DoFillBufferDoneL"));
- // By default, no callback expected here...
- return StopTest(KErrGeneral, EFail);
- }
-
-void
-RAsyncTestStepOmxILComponentBase::DoEmptyBufferDoneL(OMX_HANDLETYPE /* aComponent */,
- OMX_BUFFERHEADERTYPE* /* aBuffer */)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILComponentBase::DoEmptyBufferDoneL"));
- // By default, no callback expected here...
- return StopTest(KErrGeneral, EFail);
- }
--- a/omxil/omxilunittest/components/src/tsu_omxil_component_base.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,273 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file tsu_omxil_component_base.h
-*/
-
-#ifndef TSU_OMXIL_COMPONENT_BASE_H
-#define TSU_OMXIL_COMPONENT_BASE_H
-
-#include <e32msgqueue.h>
-#include <testframework.h>
-#include <openmax/il/khronos/v1_x/OMX_Core.h>
-
-#include "tsu_omxil_component_constants.h"
-
-// Forward declarations
-class COmxILComponentIf;
-struct OMX_COMPONENTTYPE;
-class RAsyncTestStepOmxILComponentBase;
-class CMMFBuffer;
-
-
-class CAacTestFile : public CBase
- {
-
-public:
-
- static CAacTestFile* NewL();
-
- ~CAacTestFile();
-
- TInt ReadTestFileInBuffer(const TDesC& aFileName);
- void ReadNextBuffer(CMMFBuffer& aDataBuffer);
- void ResetPos();
- TInt GetPos();
-
-private:
-
- CAacTestFile();
- void ConstructL();
-
-
-private:
-
- HBufC8* iSourceFile;
- TInt iSourceFileReadPos;
- TBool iFinished;
-
- };
-
-
-class CAacOutputTestFile : public CBase
- {
-
-public:
-
- static CAacOutputTestFile* NewL();
-
- ~CAacOutputTestFile();
-
- TInt SetUpOutputFile(const TDesC& aFileName);
- TInt WriteDataToFile(const CMMFBuffer& aDataBuffer);
- TInt AddWavHeader();
- void CloseOutputFile();
-
-private:
-
- CAacOutputTestFile();
- void ConstructL();
-
-
-private:
-
- RFs iFileServerSession;
- RFile iOutputFile;
- TInt iWrittenDataTotal;
- TInt iBuffersWrittenCount;
-
- };
-
-class MTimerObserver
- {
-
-public:
-
- virtual void TimerExpired() = 0;
-
- };
-
-class CUtilityTimer : public CTimer
- {
-
-public:
-
- static CUtilityTimer* NewL(TTimeIntervalMicroSeconds32& aDelay,
- MTimerObserver& aObserver);
- ~CUtilityTimer();
-
- void InitializeTimer();
-
-private:
-
- CUtilityTimer(MTimerObserver& aObserver);
- void ConstructL(TTimeIntervalMicroSeconds32& aDelay);
-
- // from CActive
- void RunL();
- void DoCancel();
-
-private:
-
- TTimeIntervalMicroSeconds32 iDelay;
- MTimerObserver& iObserver;
-
- };
-
-
-class CCallbackHandler : public CActive
- {
-public:
-
- enum TMessageType
- {
- EFillBufferCallback,
- EEmptyBufferCallback,
- EEventCallback
- };
-
- class TEventParams
- {
- public:
- OMX_EVENTTYPE iEvent;
- TUint iData1;
- TUint iData2;
- TAny* iExtra;
- };
-
- class TOmxMessage
- {
- public:
- TMessageType iType;
- OMX_HANDLETYPE iComponent;
- union
- {
- OMX_BUFFERHEADERTYPE* iBuffer;
- TEventParams iEventParams;
- };
- };
-
-
- static const TInt KMaxMsgQueueEntries = 10;
-
-public:
-
- static CCallbackHandler* NewL(RAsyncTestStepOmxILComponentBase& aDecoderTest);
- virtual ~CCallbackHandler();
-
- operator OMX_CALLBACKTYPE*();
-
- void RunL();
- void DoCancel();
-
- static OMX_ERRORTYPE FillBufferDone(OMX_HANDLETYPE aComponent,
- TAny* aAppData,
- OMX_BUFFERHEADERTYPE* aBuffer);
-
- static OMX_ERRORTYPE EmptyBufferDone(OMX_HANDLETYPE aComponent,
- TAny* aAppData,
- OMX_BUFFERHEADERTYPE* aBuffer);
-
- static OMX_ERRORTYPE EventHandler(OMX_HANDLETYPE aComponent,
- TAny* aAppData,
- OMX_EVENTTYPE aEvent,
- TUint32 aData1,
- TUint32 aData2,
- TAny* aExtra);
-
-
-private:
-
- void ConstructL();
- CCallbackHandler(RAsyncTestStepOmxILComponentBase& aDecoderTest);
-
- OMX_ERRORTYPE DoFillBufferDone(OMX_HANDLETYPE aComponent,
- OMX_BUFFERHEADERTYPE* aBuffer);
- OMX_ERRORTYPE DoEmptyBufferDone(OMX_HANDLETYPE aComponent,
- OMX_BUFFERHEADERTYPE* aBuffer);
- OMX_ERRORTYPE DoEventHandler(OMX_HANDLETYPE aComponent,
- TEventParams aParams);
-
- //
- //
- //
-
-
-private:
-
- RAsyncTestStepOmxILComponentBase& iDecoderTest;
- RMsgQueue<TOmxMessage> iMsgQueue;
- OMX_CALLBACKTYPE iHandle;
-
- };
-
-
-class RAsyncTestStepOmxILComponentBase : public RAsyncTestStep
- {
-
-public:
-
- RAsyncTestStepOmxILComponentBase(const TDesC& aTestName, TInt aComponentUid);
-
- ~RAsyncTestStepOmxILComponentBase();
-
- // From RAsyncTestStep
- void KickoffTestL();
- void CloseTest();
-
- //
- virtual void DoFillBufferDoneL(OMX_HANDLETYPE aComponent,
- OMX_BUFFERHEADERTYPE* aBuffer);
-
- virtual void DoEmptyBufferDoneL(OMX_HANDLETYPE aComponent,
- OMX_BUFFERHEADERTYPE* aBuffer);
-
- virtual void DoEventHandlerL(OMX_HANDLETYPE aComponent,
- OMX_EVENTTYPE aEvent,
- TUint aData1,
- TUint aData2,
- TAny* aExtra) = 0;
-
-
- static OMX_ERRORTYPE ConvertSymbianErrorType(TInt aError);
-
-
-
-protected:
-
- void PrintOmxState(OMX_STATETYPE aOmxState);
-
- // Async Call backs
- static TInt ComponentBaseCallBack(TAny* aPtr);
- void DoComponentBaseCallBack();
-
- static TInt StopTestCallBack(TAny* aPtr);
- void DoStopTestCallBack();
-
-protected:
-
- TInt iComponentUid;
- CAsyncCallBack* ipKickoffAOp;
- CAsyncCallBack* ipKickoffStop;
- COmxILComponentIf* ipCOmxILComponent;
- CCallbackHandler* ipCallbackHandler;
- CAacTestFile* ipTestFile;
- TPtrC iTestFileName;
- CAacOutputTestFile* ipOutputTestFile;
- OMX_COMPONENTTYPE* ipCompHandle;
- };
-
-#endif // TSU_OMXIL_COMPONENT_BASE_H
--- a/omxil/omxilunittest/components/src/tsu_omxil_component_constants.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file tsu_omxil_component_constants.h
-*/
-
-#ifndef TSU_OMXIL_COMPONENT_CONSTANTS_H
-#define TSU_OMXIL_COMPONENT_CONSTANTS_H
-
-_LIT(KAacDecoderTestFile, "c:\\omxil\\testfiles\\probando123.hev2.aac");
-_LIT(KAacDecoderOutputTestFile, "c:\\omxil\\testfiles\\omxilaacdecoderoutput.wav");
-
-const TInt KTestHeapSize = 0x400000; // 4 Mb;
-
-// AudioSpecificConfig length (bytes) for probando123.hev2.aac
-const TInt KAudioSpecificConfigLength = 7;
-
-// Wav header params... based on probando123.hev2.aac...
-const TInt KTestWavFormatPCMChunkHeaderSize = 36;
-const TInt KTestWavFormatPCMSubchunk1Size = 16;
-const TInt KTestAudioFormatPCM = 1;
-const TInt KTestSampleRate = 44100;
-const TInt KTestNumChannels = 2;
-const TInt KTestBitsPerSample = 16;
-const TInt KTestBitRate = 1411000;
-
-// These are two numbers that identify some input/output buffers in the middle
-// of the processing of a test file
-const TInt KSomeInputBufferCount = 15;
-const TInt KSomeOutputBufferCount = 25;
-
-// Some time interval that can be used for timeouts...
-const TInt KTwoPointFiveSeconds = 2500000;
-
-// Some other time interval that can be used for timeouts...
-const TInt KPointFiveSeconds = 500000;
-
-#endif // TSU_OMXIL_COMPONENT_CONSTANTS_H
--- a/omxil/omxilunittest/components/src/tsu_omxil_pcmrenderer_step.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,3977 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @internalComponent
-*/
-
-#include <e32base.h>
-#include <e32cmn.h>
-#include <mmf/server/mmfbuffer.h>
-#include <mmf/server/mmfdatabuffer.h>
-
-#include <openmax/il/khronos/v1_x/OMX_Component.h>
-#include <openmax/il/khronos/v1_x/OMX_Types.h>
-
-#include <openmax/il/loader/omxilcomponentif.h>
-#include "omxilsymbianaudiopcmextensions.h"
-
-#include "log.h"
-#include "omxilpcmrenderer.hrh"
-#include "omxilspecversion.h"
-
-#include "tsu_omxil_pcmrenderer_step.h"
-
-_LIT8(KSymbianOmxILPcmRendererRole, "audio_renderer.pcm");
-_LIT8(KTestOmxILWrongRendererRole, "audio_renderer.wrong");
-_LIT(KPcmRendererTestFile, "c:\\omxil\\testfiles\\pcm16stereo8khz.raw");
-_LIT(KPcmRendererTestFile2, "c:\\omxil\\testfiles\\pcm16stereo44khz.raw");
-
-OMX_ERRORTYPE ComponentInit(OMX_HANDLETYPE /*aComponent*/)
- {
- return OMX_ErrorNone;
- }
-
-
-//
-// RAsyncTestStepOmxILPcmRenderer0020
-//
-RAsyncTestStepOmxILPcmRenderer0020::RAsyncTestStepOmxILPcmRenderer0020(const TDesC& aTestName, TInt aComponentUid)
- :
- RAsyncTestStepOmxILComponentBase(aTestName, aComponentUid),
- ipKickoff01(NULL),
- ipKickoff02(NULL),
- ipKickoff03(NULL),
- ipKickoff04(NULL),
- ipKickoff05(NULL),
- ipKickoff06(NULL)
-
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0020::RAsyncTestStepOmxILPcmRenderer0020"));
- }
-
-
-void
-RAsyncTestStepOmxILPcmRenderer0020::KickoffTestL()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0020::KickoffTestL"));
-
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : Test20 "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 1.- Init Component "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2.- Obtain the component's state (GetState) "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 3.- Obtain the component's version (GetComponentVersion) "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 4.- Provide callbacks to component (SetCallbacks) "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 5.- Obtain the port def params for Port #0 (GetParameter) "));
-
- // This will install one callback
- RAsyncTestStepOmxILComponentBase::KickoffTestL();
-
- // This is the only step in this test...
- TCallBack callback01 (RAsyncTestStepOmxILPcmRenderer0020Step01, this);
- delete ipKickoff01;
- ipKickoff01 = NULL;
- ipKickoff01 =
- new (ELeave) CAsyncCallBack (callback01, CActive::EPriorityLow);
- ipKickoff01->Call();
-
- // The successful termination...
- TCallBack callbackStop (RAsyncTestStepOmxILComponentBase::StopTestCallBack, this);
- delete ipKickoffStop;
- ipKickoffStop = NULL;
- ipKickoffStop =
- new (ELeave) CAsyncCallBack (callbackStop, CActive::EPriorityLow);
- ipKickoffStop->Call();
-
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0020::CloseTest()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0020::CloseTest"));
-
- delete ipKickoff01; // no need to Cancel
- ipKickoff01 = NULL;
- delete ipKickoff02; // no need to Cancel
- ipKickoff02 = NULL;
- delete ipKickoff03; // no need to Cancel
- ipKickoff03 = NULL;
- delete ipKickoff04; // no need to Cancel
- ipKickoff04 = NULL;
- delete ipKickoff05; // no need to Cancel
- ipKickoff05 = NULL;
- delete ipKickoff06; // no need to Cancel
- ipKickoff06 = NULL;
-
- delete ipKickoffStop; // no need to Cancel
- ipKickoffStop = 0;
-
- RAsyncTestStepOmxILComponentBase::CloseTest();
-
- }
-
-
-void
-RAsyncTestStepOmxILPcmRenderer0020::DoEventHandlerL(OMX_HANDLETYPE /*aComponent*/,
- OMX_EVENTTYPE /*aEvent*/,
- TUint /*aData1*/,
- TUint /*aData2*/,
- TAny* /*aExtra*/)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0020::DoEventHandlerL"));
-
- // We don't expect here any callback
- return StopTest(KErrGeneral, EFail);
-
- }
-
-
-TInt
-RAsyncTestStepOmxILPcmRenderer0020::RAsyncTestStepOmxILPcmRenderer0020Step01(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0020::RAsyncTestStepOmxILPcmRenderer0020Step01"));
- RAsyncTestStepOmxILPcmRenderer0020* self =
- static_cast<RAsyncTestStepOmxILPcmRenderer0020*> (aPtr);
- self->DoRAsyncTestStepOmxILPcmRenderer0020Step01();
- return KErrNone;
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0020::DoRAsyncTestStepOmxILPcmRenderer0020Step01()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0020::DoRAsyncTestStepOmxILPcmRenderer0020Step01"));
-
-
- //
- // Obtain the component's state
- //
- OMX_STATETYPE compState;
- if (OMX_ErrorNone != ipCompHandle->GetState(ipCompHandle,
- &compState))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- PrintOmxState(compState);
-
- if (OMX_StateLoaded != compState)
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- char componentNameArray[OMX_MAX_STRINGNAME_SIZE];
- OMX_VERSIONTYPE componentVersion;
- OMX_VERSIONTYPE specVersion;
- OMX_UUIDTYPE componentUUID;
-
- //
- // Obtain the component's version
- //
-
- if (OMX_ErrorNone != ipCompHandle->GetComponentVersion(
- ipCompHandle,
- componentNameArray,
- &componentVersion,
- &specVersion,
- &componentUUID))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- TBuf8<128> componentNameBuf8;
- componentNameBuf8 = const_cast<const TUint8*>(reinterpret_cast<TUint8*>(componentNameArray));
- TBuf<128> componentNameBuf16;
- INFO_PRINTF2(_L("Component Name length: %d"), componentNameBuf8.Length());
- componentNameBuf16.Copy(componentNameBuf8);
- componentNameBuf16.PtrZ();
-
- // INFO_PRINTF2(_L("Component Name: %s"), dst.Ptr());
- INFO_PRINTF2(_L("Component Name: %S"), &componentNameBuf16);
- INFO_PRINTF2(_L("Component Version Major: %d"), componentVersion.s.nVersionMajor);
- INFO_PRINTF2(_L("Component Version Minor: %d"), componentVersion.s.nVersionMinor);
- INFO_PRINTF2(_L("Component Version Revision: %d"), componentVersion.s.nRevision);
- INFO_PRINTF2(_L("Component Version Step: %d"), componentVersion.s.nStep);
- INFO_PRINTF2(_L("OMX Version Major: %d"), specVersion.s.nVersionMajor);
- INFO_PRINTF2(_L("OMX Version Minor: %d"), specVersion.s.nVersionMinor);
- INFO_PRINTF2(_L("OMX Version Revision: %d"), specVersion.s.nRevision);
- INFO_PRINTF2(_L("OMX Version Step: %d"), specVersion.s.nStep);
- INFO_PRINTF2(_L("Component UUID: %X"), componentUUID);
-
-
- //
- // Provide callbacks to component
- //
- OMX_CALLBACKTYPE* omxCallbacks = *ipCallbackHandler;
-
- if (OMX_ErrorNone != ipCompHandle->SetCallbacks(
- ipCompHandle,
- omxCallbacks,
- ipCallbackHandler))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- INFO_PRINTF2(_L("Component Callbacks set successfully: %X"), ipCallbackHandler);
-
- //
- // Obtain the port def params for Port #0
- //
- OMX_PARAM_PORTDEFINITIONTYPE portParamsInputPort;
- portParamsInputPort.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
- portParamsInputPort.nVersion = TOmxILSpecVersion();
- portParamsInputPort.nPortIndex = 0;
- if (OMX_ErrorNone != ipCompHandle->GetParameter(
- ipCompHandle,
- OMX_IndexParamPortDefinition,
- &portParamsInputPort))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- INFO_PRINTF2(_L("PORTDEFINITIONTYPE nPortIndex: %d"), portParamsInputPort.nPortIndex);
- INFO_PRINTF2(_L("PORTDEFINITIONTYPE eDir: %d"), portParamsInputPort.eDir);
- INFO_PRINTF2(_L("PORTDEFINITIONTYPE nBufferCountActual: %d"), portParamsInputPort.nBufferCountActual);
- INFO_PRINTF2(_L("PORTDEFINITIONTYPE nBufferCountMin: %d"), portParamsInputPort.nBufferCountMin);
- INFO_PRINTF2(_L("PORTDEFINITIONTYPE nBufferSize: %d"), portParamsInputPort.nBufferSize);
- INFO_PRINTF2(_L("PORTDEFINITIONTYPE bEnabled: %d"), portParamsInputPort.bEnabled == OMX_FALSE ? 0 : 1);
- INFO_PRINTF2(_L("PORTDEFINITIONTYPE bPopulated: %d"), portParamsInputPort.bPopulated == OMX_FALSE ? 0 : 1);
- INFO_PRINTF2(_L("PORTDEFINITIONTYPE eDomain: %d"), portParamsInputPort.eDomain);
-
- TBuf8<128> cMIMEType8Input;
- cMIMEType8Input = const_cast<const TUint8*>(reinterpret_cast<TUint8*>(portParamsInputPort.format.audio.cMIMEType));
-
- TBuf<128> cMIMEType16Input;
- cMIMEType16Input.Copy(cMIMEType8Input);
- cMIMEType16Input.PtrZ();
-
- INFO_PRINTF2(_L("PORTDEFINITIONTYPE format.cMIMEType: %S"), &cMIMEType16Input);
- INFO_PRINTF2(_L("PORTDEFINITIONTYPE format.pNativeRender: %X"), portParamsInputPort.format.audio.pNativeRender);
- INFO_PRINTF2(_L("PORTDEFINITIONTYPE format.bFlagErrorConcealment: %d"),
- portParamsInputPort.format.audio.bFlagErrorConcealment == OMX_FALSE ? 0 : 1);
- INFO_PRINTF2(_L("PORTDEFINITIONTYPE format.eEncoding: %d"), portParamsInputPort.format.audio.eEncoding);
- INFO_PRINTF2(_L("PORTDEFINITIONTYPE bBuffersContiguous: %d"),
- portParamsInputPort.bBuffersContiguous == OMX_FALSE ? 0 : 1);
- INFO_PRINTF2(_L("PORTDEFINITIONTYPE nBufferAlignment: %d"), portParamsInputPort.nBufferAlignment);
- }
-
-//
-// RAsyncTestStepOmxILPcmRenderer0021
-//
-RAsyncTestStepOmxILPcmRenderer0021::RAsyncTestStepOmxILPcmRenderer0021(const TDesC& aTestName, TInt aComponentUid)
- :
- RAsyncTestStepOmxILComponentBase(aTestName, aComponentUid),
- ipKickoff01(NULL),
- ipKickoff02(NULL),
- ipKickoff03(NULL),
- ipKickoff04(NULL),
- ipKickoff05(NULL),
- ipKickoff06(NULL)
-
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0021::RAsyncTestStepOmxILPcmRenderer0021"));
- }
-
-
-void
-RAsyncTestStepOmxILPcmRenderer0021::KickoffTestL()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0021::KickoffTestL"));
-
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : Test21 "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 1.- Init Component "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2.- Provide callbacks to component (SetCallbacks) "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 3.- Obtain the component's state (GetState) "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 4.- Obtain component's role #1 with null string (ComponentRoleEnum fails with OMX_ErrorBadParameter) "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 5.- Obtain component's role #1 (ComponentRoleEnum returns audio_renderer.pcm) "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 6.- Obtain component's role #2 (ComponentRoleEnum fails with OMX_ErrorNoMore) "));
-
- // This will install one callback
- RAsyncTestStepOmxILComponentBase::KickoffTestL();
-
- // This is the only step in this test...
- TCallBack callback01 (RAsyncTestStepOmxILPcmRenderer0021Step01, this);
- delete ipKickoff01;
- ipKickoff01 = NULL;
- ipKickoff01 =
- new (ELeave) CAsyncCallBack (callback01, CActive::EPriorityLow);
- ipKickoff01->Call();
-
- // The successful termination...
- TCallBack callbackStop (RAsyncTestStepOmxILComponentBase::StopTestCallBack, this);
- delete ipKickoffStop;
- ipKickoffStop = NULL;
- ipKickoffStop =
- new (ELeave) CAsyncCallBack (callbackStop, CActive::EPriorityLow);
- ipKickoffStop->Call();
-
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0021::CloseTest()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0021::CloseTest"));
-
- delete ipKickoff01; // no need to Cancel
- ipKickoff01 = NULL;
- delete ipKickoff02; // no need to Cancel
- ipKickoff02 = NULL;
- delete ipKickoff03; // no need to Cancel
- ipKickoff03 = NULL;
- delete ipKickoff04; // no need to Cancel
- ipKickoff04 = NULL;
- delete ipKickoff05; // no need to Cancel
- ipKickoff05 = NULL;
- delete ipKickoff06; // no need to Cancel
- ipKickoff06 = NULL;
-
- delete ipKickoffStop; // no need to Cancel
- ipKickoffStop = 0;
-
- RAsyncTestStepOmxILComponentBase::CloseTest();
-
- }
-
-
-void
-RAsyncTestStepOmxILPcmRenderer0021::DoEventHandlerL(OMX_HANDLETYPE /*aComponent*/,
- OMX_EVENTTYPE /*aEvent*/,
- TUint /*aData1*/,
- TUint /*aData2*/,
- TAny* /*aExtra*/)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0021::DoEventHandlerL"));
-
- // We don't expect here any callback
- return StopTest(KErrGeneral, EFail);
-
- }
-
-
-TInt
-RAsyncTestStepOmxILPcmRenderer0021::RAsyncTestStepOmxILPcmRenderer0021Step01(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0021::RAsyncTestStepOmxILPcmRenderer0021Step01"));
- RAsyncTestStepOmxILPcmRenderer0021* self =
- static_cast<RAsyncTestStepOmxILPcmRenderer0021*> (aPtr);
- self->DoRAsyncTestStepOmxILPcmRenderer0021Step01();
- return KErrNone;
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0021::DoRAsyncTestStepOmxILPcmRenderer0021Step01()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0021::DoRAsyncTestStepOmxILPcmRenderer0021Step01"));
-
- //
- // Provide callbacks to component
- //
- OMX_CALLBACKTYPE* omxCallbacks = *ipCallbackHandler;
-
- if (OMX_ErrorNone != ipCompHandle->SetCallbacks(
- ipCompHandle,
- omxCallbacks,
- ipCallbackHandler))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- //
- // Obtain the component's state
- //
- OMX_STATETYPE compState;
- if (OMX_ErrorNone != ipCompHandle->GetState(ipCompHandle,
- &compState))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- PrintOmxState(compState);
-
- if (OMX_StateLoaded != compState)
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- INFO_PRINTF2(_L("Component Callbacks set successfully: %X"), ipCallbackHandler);
-
-
- //
- // Try to obtain the component's first role with null string (must fail with error OMX_ErrorBadParameter)
- //
- OMX_U8* pNullUint = 0;
- if (OMX_ErrorBadParameter != ipCompHandle->ComponentRoleEnum(
- ipCompHandle,
- pNullUint,
- 0 // This is index # 0, the first of the component's roles
- ))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- //
- // Obtain the component's first role (success)
- //
- char componentRoleArray[OMX_MAX_STRINGNAME_SIZE];
- if (OMX_ErrorNone != ipCompHandle->ComponentRoleEnum(
- ipCompHandle,
- reinterpret_cast<OMX_U8*>(componentRoleArray),
- 0 // This is index # 0, the first of the component's roles
- ))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- TBuf8<128> componentRoleBuf8;
- componentRoleBuf8 = const_cast<const TUint8*>(reinterpret_cast<TUint8*>(componentRoleArray));
- TBuf<128> componentRoleBuf16;
- INFO_PRINTF2(_L("Component's Role length: %d"), componentRoleBuf8.Length());
- componentRoleBuf16.Copy(componentRoleBuf8);
- componentRoleBuf16.PtrZ();
-
- INFO_PRINTF2(_L("Component's 1st Role [%S] "), &componentRoleBuf16);
-
- if (componentRoleBuf8.Compare(KSymbianOmxILPcmRendererRole()) != 0)
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- //
- // Obtain the component's second role (must fail with error OMX_ErrorNoMore)
- //
- if (OMX_ErrorNoMore != ipCompHandle->ComponentRoleEnum(
- ipCompHandle,
- reinterpret_cast<OMX_U8*>(componentRoleArray),
- 1 // This is index # 1, the second of the component's roles
- ))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- }
-
-//
-// RAsyncTestStepOmxILPcmRenderer0022
-//
-RAsyncTestStepOmxILPcmRenderer0022::RAsyncTestStepOmxILPcmRenderer0022(const TDesC& aTestName, TInt aComponentUid)
- :
- RAsyncTestStepOmxILComponentBase(aTestName, aComponentUid),
- ipKickoff01(NULL),
- ipKickoff02(NULL),
- ipKickoff03(NULL),
- ipKickoff04(NULL),
- ipKickoff05(NULL),
- ipKickoff06(NULL)
-
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0022::RAsyncTestStepOmxILPcmRenderer0022"));
- }
-
-
-void
-RAsyncTestStepOmxILPcmRenderer0022::KickoffTestL()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0022::KickoffTestL"));
-
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : Test22 "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 1.- Init Component "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2.- Provide callbacks to component (SetCallbacks) "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 3.- Obtain the component's state (GetState) "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 4.- Get component's current role (GetParameter(OMX_IndexParamStandardComponentRole) )"));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 5.- Set unsupported audio_renderer.wrong role (SetParameter(OMX_IndexParamStandardComponentRole) )"));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 5a.- SetParameter returns OMX_ErrorBadParameter (audio_renderer.wrong role not supported)"));
-
- // This will install one callback
- RAsyncTestStepOmxILComponentBase::KickoffTestL();
-
- // This is the only step in this test...
- TCallBack callback01 (RAsyncTestStepOmxILPcmRenderer0022Step01, this);
- delete ipKickoff01;
- ipKickoff01 = NULL;
- ipKickoff01 =
- new (ELeave) CAsyncCallBack (callback01, CActive::EPriorityLow);
- ipKickoff01->Call();
-
- // The successful termination...
- TCallBack callbackStop (RAsyncTestStepOmxILComponentBase::StopTestCallBack, this);
- delete ipKickoffStop;
- ipKickoffStop = NULL;
- ipKickoffStop =
- new (ELeave) CAsyncCallBack (callbackStop, CActive::EPriorityLow);
- ipKickoffStop->Call();
-
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0022::CloseTest()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0022::CloseTest"));
-
- delete ipKickoff01; // no need to Cancel
- ipKickoff01 = NULL;
- delete ipKickoff02; // no need to Cancel
- ipKickoff02 = NULL;
- delete ipKickoff03; // no need to Cancel
- ipKickoff03 = NULL;
- delete ipKickoff04; // no need to Cancel
- ipKickoff04 = NULL;
- delete ipKickoff05; // no need to Cancel
- ipKickoff05 = NULL;
- delete ipKickoff06; // no need to Cancel
- ipKickoff06 = NULL;
-
- delete ipKickoffStop; // no need to Cancel
- ipKickoffStop = 0;
-
- RAsyncTestStepOmxILComponentBase::CloseTest();
-
- }
-
-
-void
-RAsyncTestStepOmxILPcmRenderer0022::DoEventHandlerL(OMX_HANDLETYPE /*aComponent*/,
- OMX_EVENTTYPE /*aEvent*/,
- TUint /*aData1*/,
- TUint /*aData2*/,
- TAny* /*aExtra*/)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0022::DoEventHandlerL"));
-
- // We don't expect here any callback
- return StopTest(KErrGeneral, EFail);
-
- }
-
-
-TInt
-RAsyncTestStepOmxILPcmRenderer0022::RAsyncTestStepOmxILPcmRenderer0022Step01(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0022::RAsyncTestStepOmxILPcmRenderer0022Step01"));
- RAsyncTestStepOmxILPcmRenderer0022* self =
- static_cast<RAsyncTestStepOmxILPcmRenderer0022*> (aPtr);
- self->DoRAsyncTestStepOmxILPcmRenderer0022Step01();
- return KErrNone;
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0022::DoRAsyncTestStepOmxILPcmRenderer0022Step01()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0022::DoRAsyncTestStepOmxILPcmRenderer0022Step01"));
-
- //
- // Provide callbacks to component
- //
- OMX_CALLBACKTYPE* omxCallbacks = *ipCallbackHandler;
-
- if (OMX_ErrorNone != ipCompHandle->SetCallbacks(
- ipCompHandle,
- omxCallbacks,
- ipCallbackHandler))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- INFO_PRINTF2(_L("Component Callbacks set successfully: %X"), ipCallbackHandler);
-
- //
- // Obtain the component's state
- //
- OMX_STATETYPE compState;
- if (OMX_ErrorNone != ipCompHandle->GetState(ipCompHandle,
- &compState))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- PrintOmxState(compState);
-
- if (OMX_StateLoaded != compState)
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- //
- // Get component's current standard role
- //
- OMX_PARAM_COMPONENTROLETYPE componentRoleType;
- componentRoleType.nSize = sizeof(OMX_PARAM_COMPONENTROLETYPE);
- componentRoleType.nVersion = TOmxILSpecVersion();
- if (OMX_ErrorNone != ipCompHandle->GetParameter(
- ipCompHandle,
- OMX_IndexParamStandardComponentRole,
- &componentRoleType))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- TBuf8<128> componentRoleBuf8;
- componentRoleBuf8 = const_cast<const TUint8*>(reinterpret_cast<TUint8*>(componentRoleType.cRole));
- TBuf<128> componentRoleBuf16;
- INFO_PRINTF2(_L("Component Role length: %d"), componentRoleBuf8.Length());
- componentRoleBuf16.Copy(componentRoleBuf8);
- componentRoleBuf16.PtrZ();
-
- INFO_PRINTF2(_L("Component's current Role: %S"), &componentRoleBuf16);
-
-
- //
- // Set unsupported standard role
- //
- TPtr8 role(reinterpret_cast<TUint8*>(componentRoleType.cRole),
- OMX_MAX_STRINGNAME_SIZE);
- role.Copy(KTestOmxILWrongRendererRole());
- role.PtrZ();
-
- if (OMX_ErrorBadParameter != ipCompHandle->SetParameter(
- ipCompHandle,
- OMX_IndexParamStandardComponentRole,
- &componentRoleType))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- TBuf8<128> cRole8;
- cRole8 = const_cast<const TUint8*>(reinterpret_cast<TUint8*>(componentRoleType.cRole));
-
- TBuf<128> cRole16;
- cRole16.Copy(cRole8);
- cRole16.PtrZ();
-
- INFO_PRINTF2(_L("SetParameter of an unsupported standard role failed (success): %S"), &cRole16);
-
- }
-
-
-
-//
-// RAsyncTestStepOmxILPcmRenderer0001
-//
-RAsyncTestStepOmxILPcmRenderer0001::RAsyncTestStepOmxILPcmRenderer0001(const TDesC& aTestName, TInt aComponentUid)
- :
- RAsyncTestStepOmxILComponentBase(aTestName, aComponentUid),
- ipBufferHeaderInput(0),
- ipBufferHeaderOutput(0),
- iTerminateNow(EFalse),
- iSamplingRate(8000),
- iTestState(EStateDefault),
- ipKickoff01(NULL),
- ipKickoff02(NULL),
- ipKickoff03(NULL),
- ipKickoff04(NULL),
- ipKickoff05(NULL),
- ipKickoff06(NULL)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0001::RAsyncTestStepOmxILPcmRenderer0001"));
- }
-
-
-void
-RAsyncTestStepOmxILPcmRenderer0001::KickoffTestL()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0001::KickoffTestL"));
- iTestState = EStateLoadKickoffTestLComplete;
-
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : Test01 "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 1.- Loaded->Idle(AllocateBuffer-population) "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2.- Idle->Loaded(depopulation) "));
-
- // This will install one callback
- RAsyncTestStepOmxILComponentBase::KickoffTestL();
-
- TCallBack callback01 (RAsyncTestStepOmxILPcmRenderer0001Step01, this);
- delete ipKickoff01;
- ipKickoff01 = NULL;
- ipKickoff01 =
- new (ELeave) CAsyncCallBack (callback01, CActive::EPriorityLow);
- ipKickoff01->Call();
-
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0001::CloseTest()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0001::CloseTest"));
-
- delete ipKickoff01; // no need to Cancel
- ipKickoff01 = NULL;
- delete ipKickoff02; // no need to Cancel
- ipKickoff02 = NULL;
- delete ipKickoff03; // no need to Cancel
- ipKickoff03 = NULL;
- delete ipKickoff04; // no need to Cancel
- ipKickoff04 = NULL;
- delete ipKickoff05; // no need to Cancel
- ipKickoff05 = NULL;
- delete ipKickoff06; // no need to Cancel
- ipKickoff06 = NULL;
-
- delete ipKickoffStop; // no need to Cancel
- ipKickoffStop = 0;
-
- TInt count = ipClientClockPortBufferArray.Count();
-
- for (TInt n = 0; n < count; n++)
- {
- delete ipClientClockPortBufferArray[n];
- }
-
- ipClientClockPortBufferArray.Close();
-
- RAsyncTestStepOmxILComponentBase::CloseTest();
-
- }
-
-
-void
-RAsyncTestStepOmxILPcmRenderer0001::DoEventHandlerL(OMX_HANDLETYPE /*aComponent*/,
- OMX_EVENTTYPE /*aEvent*/,
- TUint /*aData1*/,
- TUint /*aData2*/,
- TAny* /*aExtra*/)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0001::DoEventHandlerL"));
-
- if (!iTerminateNow)
- {
- TCallBack callback02 (RAsyncTestStepOmxILPcmRenderer0001Step02, this);
- delete ipKickoff02;
- ipKickoff02 = NULL;
- ipKickoff02 =
- new (ELeave) CAsyncCallBack (callback02, CActive::EPriorityLow);
- ipKickoff02->Call();
- }
- else
- {
- OMX_STATETYPE compState;
- if (OMX_ErrorNone != ipCompHandle->GetState(ipCompHandle,
- &compState))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- PrintOmxState(compState);
-
- if (OMX_StateLoaded != compState)
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- // The successful termination...
- TCallBack callbackStop (RAsyncTestStepOmxILComponentBase::StopTestCallBack, this);
- delete ipKickoffStop;
- ipKickoffStop = NULL;
- ipKickoffStop =
- new (ELeave) CAsyncCallBack (callbackStop, CActive::EPriorityLow);
- ipKickoffStop->Call();
- }
-
- }
-
-
-TInt
-RAsyncTestStepOmxILPcmRenderer0001::RAsyncTestStepOmxILPcmRenderer0001Step01(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0001::RAsyncTestStepOmxILPcmRenderer0001Step01"));
- RAsyncTestStepOmxILPcmRenderer0001* self =
- static_cast<RAsyncTestStepOmxILPcmRenderer0001*> (aPtr);
- self->DoRAsyncTestStepOmxILPcmRenderer0001Step01();
- return KErrNone;
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0001::DoRAsyncTestStepOmxILPcmRenderer0001Step01()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0001::DoRAsyncTestStepOmxILPcmRenderer0001Step01"));
-
- //
- // Provide callbacks to component
- //
- OMX_CALLBACKTYPE* omxCallbacks = *ipCallbackHandler;
-
- if (OMX_ErrorNone != ipCompHandle->SetCallbacks(
- ipCompHandle,
- omxCallbacks,
- ipCallbackHandler))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- INFO_PRINTF2(_L("Component Callbacks set successfully: %X"), ipCallbackHandler);
-
- //
- // Obtain the port def params for Port #0
- //
- OMX_PARAM_PORTDEFINITIONTYPE portParamsInputPort;
- portParamsInputPort.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
- portParamsInputPort.nVersion = TOmxILSpecVersion();
- portParamsInputPort.nPortIndex = 0;
- if (OMX_ErrorNone != ipCompHandle->GetParameter(
- ipCompHandle,
- OMX_IndexParamPortDefinition,
- &portParamsInputPort))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- //
- // Obtain the port def params for Client Clock Port #1
- //
- OMX_PARAM_PORTDEFINITIONTYPE portParamsInputPort1;
- portParamsInputPort1.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
- portParamsInputPort1.nVersion = TOmxILSpecVersion();
- portParamsInputPort1.nPortIndex = 1;
-
- if (OMX_ErrorNone != ipCompHandle->GetParameter(
- ipCompHandle,
- OMX_IndexParamPortDefinition,
- &portParamsInputPort1))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- //
- // Change the sampling rate on PCM Renderer's port #0
- //
- OMX_AUDIO_PARAM_PCMMODETYPE pcmMode;
- pcmMode.nSize = sizeof(OMX_AUDIO_PARAM_PCMMODETYPE);
- pcmMode.nVersion = TOmxILSpecVersion();
- pcmMode.nPortIndex = 0;
- if (OMX_ErrorNone != ipCompHandle->GetParameter(
- ipCompHandle,
- OMX_IndexParamAudioPcm,
- &pcmMode))
- {
- return StopTest(KErrGeneral, EFail);
- }
- pcmMode.nSamplingRate = iSamplingRate;
- if (OMX_ErrorNone != ipCompHandle->SetParameter(
- ipCompHandle,
- OMX_IndexParamAudioPcm,
- &pcmMode))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- //
- // Move component to OMX_StateIdle
- //
-
- if (OMX_ErrorNone != ipCompHandle->SendCommand(
- ipCompHandle,
- OMX_CommandStateSet,
- OMX_StateIdle,
- 0))
- {
- return StopTest(KErrGeneral, EFail);
- }
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : Moving component to OMX_StateIdle"));
-
- OMX_STATETYPE compState;
- if (OMX_ErrorNone != ipCompHandle->GetState(ipCompHandle,
- &compState))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- PrintOmxState(compState);
-
- if (OMX_StateLoaded != compState)
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- //
- // Allocate buffer on input port
- //
- if (OMX_ErrorNone != ipCompHandle->AllocateBuffer(
- ipCompHandle,
- &ipBufferHeaderInput,
- 0, // input port
- 0,
- portParamsInputPort.nBufferSize))
- {
- return StopTest(KErrGeneral, EFail);
- }
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : Populated buffer (AllocateBuffer) in INPUT port"));
-
- //
- // Allocate buffer on Client Clock Port
- //
- TInt bufferCount = portParamsInputPort1.nBufferCountActual;
-
- for (TInt n = 0; n < bufferCount; n++)
- {
- OMX_BUFFERHEADERTYPE* clockBufPtr;
-
- if (OMX_ErrorNone != ipCompHandle->AllocateBuffer(
- ipCompHandle,
- &clockBufPtr,
- 1, // Clock input port
- 0,
- portParamsInputPort1.nBufferSize))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- if (ipClientClockPortBufferArray.Append(clockBufPtr) != KErrNone)
- {
- return StopTest(KErrNoMemory, EFail);
- }
- }
-
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : Populated buffer (AllocateBuffer) in Clock INPUT port"));
- }
-
-TInt
-RAsyncTestStepOmxILPcmRenderer0001::RAsyncTestStepOmxILPcmRenderer0001Step02(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0001::RAsyncTestStepOmxILPcmRenderer0001Step02"));
- RAsyncTestStepOmxILPcmRenderer0001* self =
- static_cast<RAsyncTestStepOmxILPcmRenderer0001*> (aPtr);
- self->DoRAsyncTestStepOmxILPcmRenderer0001Step02();
- return KErrNone;
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0001::DoRAsyncTestStepOmxILPcmRenderer0001Step02()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0001::DoRAsyncTestStepOmxILPcmRenderer0001Step02"));
-
- //
- // Move component to OMX_StateLoaded
- //
-
- if (OMX_ErrorNone != ipCompHandle->SendCommand(
- ipCompHandle,
- OMX_CommandStateSet,
- OMX_StateLoaded,
- 0))
- {
- return StopTest(KErrGeneral, EFail);
- }
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : Moving component to OMX_StateLoaded"));
-
- OMX_STATETYPE compState;
- if (OMX_ErrorNone != ipCompHandle->GetState(ipCompHandle,
- &compState))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- PrintOmxState(compState);
-
- if (OMX_StateIdle != compState)
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- //
- // Free buffer on input port
- //
- if (OMX_ErrorNone != ipCompHandle->FreeBuffer(
- ipCompHandle,
- 0, // input port
- ipBufferHeaderInput))
- {
- return StopTest(KErrGeneral, EFail);
- }
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : Depopulated buffer (FreeBuffer) in INPUT port"));
-
- //
- // Free Client Clock Port buffer on input port
- //
- TInt count = ipClientClockPortBufferArray.Count();
-
- for (TInt n = 0; n < count; n++)
- {
- if (OMX_ErrorNone != ipCompHandle->FreeBuffer(
- ipCompHandle,
- 1, // Client Clock Port
- ipClientClockPortBufferArray[0]))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- ipClientClockPortBufferArray.Remove(0);
- }
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : Depopulated Client Clock Port buffer (FreeBuffer) in INPUT port"));
-
- iTerminateNow = ETrue;
-
- }
-
-
-//
-// RAsyncTestStepOmxILPcmRenderer0002
-//
-RAsyncTestStepOmxILPcmRenderer0002::RAsyncTestStepOmxILPcmRenderer0002(const TDesC& aTestName, TInt aComponentUid)
- :
- RAsyncTestStepOmxILPcmRenderer0001(aTestName, aComponentUid),
- ipInputBuffer(0),
- ipOutputBuffer(0)
-
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0002::RAsyncTestStepOmxILPcmRenderer0002"));
- }
-
-
-void
-RAsyncTestStepOmxILPcmRenderer0002::KickoffTestL()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0002::KickoffTestL"));
-
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : Test02 "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 1.- Loaded->Idle(UseBuffer-population) "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2.- Idle->Loaded(depopulation) "));
-
- // This will install one callback
- RAsyncTestStepOmxILComponentBase::KickoffTestL();
-
- TCallBack callback01 (RAsyncTestStepOmxILPcmRenderer0002Step01, this);
- delete ipKickoff01;
- ipKickoff01 = NULL;
- ipKickoff01 =
- new (ELeave) CAsyncCallBack (callback01, CActive::EPriorityLow);
- ipKickoff01->Call();
-
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0002::CloseTest()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0002::CloseTest"));
-
- delete ipInputBuffer;
- ipInputBuffer = NULL;
- delete ipOutputBuffer;
- ipOutputBuffer = NULL;
-
- delete ipKickoff01; // no need to Cancel
- ipKickoff01 = NULL;
- delete ipKickoff02; // no need to Cancel
- ipKickoff02 = NULL;
- delete ipKickoff03; // no need to Cancel
- ipKickoff03 = NULL;
- delete ipKickoff04; // no need to Cancel
- ipKickoff04 = NULL;
- delete ipKickoff05; // no need to Cancel
- ipKickoff05 = NULL;
- delete ipKickoff06; // no need to Cancel
- ipKickoff06 = NULL;
-
- delete ipKickoffStop; // no need to Cancel
- ipKickoffStop = 0;
-
- ipClientClockPortBufferArray.Close();
-
- TInt count = iClockPortBufferPtrArray.Count();
-
- for (TInt n = 0; n < count; n++)
- {
- delete iClockPortBufferPtrArray[n];
- }
-
- iClockPortBufferPtrArray.Close();
-
- RAsyncTestStepOmxILComponentBase::CloseTest();
-
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0002::DoEventHandlerL(OMX_HANDLETYPE /*aComponent*/,
- OMX_EVENTTYPE /*aEvent*/,
- TUint /*aData1*/,
- TUint /*aData2*/,
- TAny* /*aExtra*/)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0002::DoEventHandlerL"));
-
- if (!iTerminateNow)
- {
- TCallBack callback02 (RAsyncTestStepOmxILPcmRenderer0002Step02, this);
- delete ipKickoff02;
- ipKickoff02 = NULL;
- ipKickoff02 =
- new (ELeave) CAsyncCallBack (callback02, CActive::EPriorityLow);
- ipKickoff02->Call();
- }
-
- if (iTerminateNow)
- {
- OMX_STATETYPE compState;
- if (OMX_ErrorNone != ipCompHandle->GetState(ipCompHandle,
- &compState))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- PrintOmxState(compState);
-
- if (OMX_StateLoaded != compState)
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- // The successful termination...
- TCallBack callbackStop (RAsyncTestStepOmxILComponentBase::StopTestCallBack, this);
- delete ipKickoffStop;
- ipKickoffStop = NULL;
- ipKickoffStop =
- new (ELeave) CAsyncCallBack (callbackStop, CActive::EPriorityLow);
- ipKickoffStop->Call();
- }
-
- }
-
-
-TInt
-RAsyncTestStepOmxILPcmRenderer0002::RAsyncTestStepOmxILPcmRenderer0002Step01(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0002::RAsyncTestStepOmxILPcmRenderer0002Step01"));
- RAsyncTestStepOmxILPcmRenderer0002* self =
- static_cast<RAsyncTestStepOmxILPcmRenderer0002*> (aPtr);
- self->DoRAsyncTestStepOmxILPcmRenderer0002Step01();
- return KErrNone;
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0002::DoRAsyncTestStepOmxILPcmRenderer0002Step01()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0002::DoRAsyncTestStepOmxILPcmRenderer0002Step01"));
-
- //
- // Provide callbacks to component
- //
- OMX_CALLBACKTYPE* omxCallbacks = *ipCallbackHandler;
-
- if (OMX_ErrorNone != ipCompHandle->SetCallbacks(
- ipCompHandle,
- omxCallbacks,
- ipCallbackHandler))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- INFO_PRINTF2(_L("Component Callbacks set successfully: %X"), ipCallbackHandler);
-
- //
- // Obtain the port def params for Port #0
- //
- OMX_PARAM_PORTDEFINITIONTYPE portParamsInputPort;
- portParamsInputPort.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
- portParamsInputPort.nVersion = TOmxILSpecVersion();
- portParamsInputPort.nPortIndex = 0;
- if (OMX_ErrorNone != ipCompHandle->GetParameter(
- ipCompHandle,
- OMX_IndexParamPortDefinition,
- &portParamsInputPort))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- //
- // Obtain the port def params for Client Clock Port #1
- //
- OMX_PARAM_PORTDEFINITIONTYPE portParamsInputPort1;
- portParamsInputPort1.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
- portParamsInputPort1.nVersion = TOmxILSpecVersion();
- portParamsInputPort1.nPortIndex = 1;
-
- if (OMX_ErrorNone != ipCompHandle->GetParameter(
- ipCompHandle,
- OMX_IndexParamPortDefinition,
- &portParamsInputPort1))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- //
- // Move component to OMX_StateIdle
- //
-
- if (OMX_ErrorNone != ipCompHandle->SendCommand(
- ipCompHandle,
- OMX_CommandStateSet,
- OMX_StateIdle,
- 0))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- OMX_STATETYPE compState;
- if (OMX_ErrorNone != ipCompHandle->GetState(ipCompHandle,
- &compState))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- PrintOmxState(compState);
-
- if (OMX_StateLoaded != compState)
- {
- return StopTest(KErrGeneral, EFail);
- }
-
-
- //
- // Allocate buffer on input port
- //
- TRAPD(err, ipInputBuffer = CMMFDescriptorBuffer::NewL(portParamsInputPort.nBufferSize));
- if(err != KErrNone)
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- TDes8& inputBufferDes = ipInputBuffer->Data();
-
- if (OMX_ErrorNone != ipCompHandle->UseBuffer(
- ipCompHandle,
- &ipBufferHeaderInput,
- 0, // input port
- ipInputBuffer, // pAppPrivate
- portParamsInputPort.nBufferSize,
- const_cast<TUint8*>(inputBufferDes.Ptr())))
- {
- return StopTest(KErrGeneral, EFail);
- }
- INFO_PRINTF1(_L("Populated buffer (UseBuffer) in INPUT port"));
-
- //
- // Allocate Client Clock Port buffer
- //
- TInt bufferCount = portParamsInputPort1.nBufferCountActual;
-
- for (TInt n = 0; n < bufferCount; n++)
- {
- CMMFDescriptorBuffer* bufPtr;
-
- TRAPD(err, bufPtr = CMMFDescriptorBuffer::NewL(portParamsInputPort1.nBufferSize));
-
- if(err != KErrNone)
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- if (iClockPortBufferPtrArray.Append(bufPtr) != KErrNone)
- {
- delete bufPtr;
- return StopTest(KErrGeneral, EFail);
- }
-
- TDes8& inputBufferDes = bufPtr->Data();
- OMX_BUFFERHEADERTYPE* clockBufPtr;
-
- if (OMX_ErrorNone != ipCompHandle->UseBuffer(
- ipCompHandle,
- &clockBufPtr,
- 1, // Clock input port
- ipInputBuffer, // pAppPrivate
- portParamsInputPort.nBufferSize,
- const_cast<TUint8*>(inputBufferDes.Ptr())))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- TRAPD(error, ipClientClockPortBufferArray.AppendL(clockBufPtr));
- if(error != KErrNone)
- {
- return StopTest(KErrGeneral, EFail);
- }
- }
- INFO_PRINTF1(_L("Populated buffer (UseBuffer) in Client Clock Port"));
-
- }
-
-TInt
-RAsyncTestStepOmxILPcmRenderer0002::RAsyncTestStepOmxILPcmRenderer0002Step02(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0002::RAsyncTestStepOmxILPcmRenderer0002Step02"));
- // NOTE, Here we reuse inherited code, to depopulate the component and make it go to OMX_StateLoaded
- RAsyncTestStepOmxILPcmRenderer0002* self =
- static_cast<RAsyncTestStepOmxILPcmRenderer0002*> (aPtr);
- self->DoRAsyncTestStepOmxILPcmRenderer0001Step02();
- return KErrNone;
- }
-
-
-//
-// RAsyncTestStepOmxILPcmRenderer0003
-//
-RAsyncTestStepOmxILPcmRenderer0003::RAsyncTestStepOmxILPcmRenderer0003(const TDesC& aTestName, TInt aComponentUid)
- :
- RAsyncTestStepOmxILComponentBase(aTestName, aComponentUid),
- iTerminateNow(EFalse),
- ipKickoff01(NULL),
- ipKickoff02(NULL),
- ipKickoff03(NULL),
- ipKickoff04(NULL),
- ipKickoff05(NULL),
- ipKickoff06(NULL)
-
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0003::RAsyncTestStepOmxILPcmRenderer0003"));
- }
-
-
-void
-RAsyncTestStepOmxILPcmRenderer0003::KickoffTestL()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0003::KickoffTestL"));
-
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : Test03 "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 1.- Loaded->WaitForResources "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2.- WaitForResources->Loaded "));
-
- // This will install one callback
- RAsyncTestStepOmxILComponentBase::KickoffTestL();
-
- TCallBack callback01 (RAsyncTestStepOmxILPcmRenderer0003Step01, this);
- delete ipKickoff01;
- ipKickoff01 = NULL;
- ipKickoff01 =
- new (ELeave) CAsyncCallBack (callback01, CActive::EPriorityLow);
- ipKickoff01->Call();
-
- // This will be used later in DoRAsyncTestStepOmxILPcmRenderer0003Step02
- TCallBack callbackStop (RAsyncTestStepOmxILComponentBase::StopTestCallBack, this);
- delete ipKickoffStop;
- ipKickoffStop = NULL;
- ipKickoffStop =
- new (ELeave) CAsyncCallBack (callbackStop, CActive::EPriorityLow);
-
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0003::CloseTest()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0003::CloseTest"));
-
- delete ipKickoff01; // no need to Cancel
- ipKickoff01 = NULL;
- delete ipKickoff02; // no need to Cancel
- ipKickoff02 = NULL;
- delete ipKickoff03; // no need to Cancel
- ipKickoff03 = NULL;
- delete ipKickoff04; // no need to Cancel
- ipKickoff04 = NULL;
- delete ipKickoff05; // no need to Cancel
- ipKickoff05 = NULL;
- delete ipKickoff06; // no need to Cancel
- ipKickoff06 = NULL;
-
- delete ipKickoffStop; // no need to Cancel
- ipKickoffStop = 0;
-
- RAsyncTestStepOmxILComponentBase::CloseTest();
-
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0003::DoEventHandlerL(OMX_HANDLETYPE /*aComponent*/,
- OMX_EVENTTYPE /*aEvent*/,
- TUint /*aData1*/,
- TUint /*aData2*/,
- TAny* /*aExtra*/)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0003::DoEventHandlerL"));
-
- TCallBack callback02 (RAsyncTestStepOmxILPcmRenderer0003Step02, this);
- delete ipKickoff02;
- ipKickoff02 = NULL;
- ipKickoff02 =
- new (ELeave) CAsyncCallBack (callback02, CActive::EPriorityLow);
- ipKickoff02->Call();
-
- }
-
-
-TInt
-RAsyncTestStepOmxILPcmRenderer0003::RAsyncTestStepOmxILPcmRenderer0003Step01(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0003::RAsyncTestStepOmxILPcmRenderer0003Step01"));
- RAsyncTestStepOmxILPcmRenderer0003* self =
- static_cast<RAsyncTestStepOmxILPcmRenderer0003*> (aPtr);
- self->DoRAsyncTestStepOmxILPcmRenderer0003Step01();
- return KErrNone;
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0003::DoRAsyncTestStepOmxILPcmRenderer0003Step01()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0003::DoRAsyncTestStepOmxILPcmRenderer0003Step01"));
-
- //
- // Obtain the component's state
- //
- OMX_STATETYPE compState;
- if (OMX_ErrorNone != ipCompHandle->GetState(ipCompHandle,
- &compState))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- PrintOmxState(compState);
-
- if (OMX_StateLoaded != compState)
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- //
- // Provide callbacks to component
- //
- OMX_CALLBACKTYPE* omxCallbacks = *ipCallbackHandler;
-
- if (OMX_ErrorNone != ipCompHandle->SetCallbacks(
- ipCompHandle,
- omxCallbacks,
- ipCallbackHandler))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- INFO_PRINTF2(_L("Component Callbacks set successfully: %X"), ipCallbackHandler);
-
- //
- // Move component to OMX_StateWaitForResources
- //
-
- if (OMX_ErrorNone != ipCompHandle->SendCommand(
- ipCompHandle,
- OMX_CommandStateSet,
- OMX_StateWaitForResources,
- 0))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- if (OMX_ErrorNone != ipCompHandle->GetState(ipCompHandle,
- &compState))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- PrintOmxState(compState);
-
- if (OMX_StateWaitForResources != compState)
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- //
- // The following code is to improve code coerage only
- //
- OMX_AUDIO_PARAM_PCMMODETYPE pcmMode;
- pcmMode.nSize = sizeof(OMX_AUDIO_PARAM_PCMMODETYPE);
- pcmMode.nVersion = TOmxILSpecVersion();
- pcmMode.nPortIndex = 0;
- if (OMX_ErrorNone != ipCompHandle->GetParameter(
- ipCompHandle,
- OMX_IndexParamAudioPcm,
- &pcmMode))
- {
- return StopTest(KErrGeneral, EFail);
- }
- pcmMode.nSamplingRate = 44100;
- if (OMX_ErrorNone != ipCompHandle->SetParameter(
- ipCompHandle,
- OMX_IndexParamAudioPcm,
- &pcmMode))
- {
- return StopTest(KErrGeneral, EFail);
- }
- OMX_BUFFERHEADERTYPE temp;
- OMX_BUFFERHEADERTYPE* bufferHeaderInput=&temp;
- if (OMX_ErrorIncorrectStateOperation != ipCompHandle->AllocateBuffer(
- ipCompHandle,
- &bufferHeaderInput,
- 0, // input port
- 0,
- 1024))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- if (OMX_ErrorBadPortIndex != ipCompHandle->EmptyThisBuffer(
- ipCompHandle,
- bufferHeaderInput))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- if (OMX_ErrorBadPortIndex != ipCompHandle->FillThisBuffer(
- ipCompHandle,
- bufferHeaderInput))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- if (OMX_ErrorBadPortIndex != ipCompHandle->FreeBuffer(
- ipCompHandle,
- 2,
- bufferHeaderInput))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- if (OMX_ErrorNone != ipCompHandle->SendCommand(
- ipCompHandle,
- OMX_CommandPortEnable,
- 0,
- 0))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- OMX_TUNNELSETUPTYPE tunnelSetup;
- OMX_U32 outputPort = 1;
- OMX_U32 inputPort = 0;
-
- if (OMX_ErrorIncorrectStateOperation !=
- ipCompHandle->ComponentTunnelRequest(
- ipCompHandle,
- outputPort,
- ipCompHandle,
- inputPort,
- &tunnelSetup))
- {
- return StopTest(KErrGeneral, EFail);
- }
- }
-
-TInt
-RAsyncTestStepOmxILPcmRenderer0003::RAsyncTestStepOmxILPcmRenderer0003Step02(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0003::RAsyncTestStepOmxILPcmRenderer0003Step02"));
- RAsyncTestStepOmxILPcmRenderer0003* self =
- static_cast<RAsyncTestStepOmxILPcmRenderer0003*> (aPtr);
- self->DoRAsyncTestStepOmxILPcmRenderer0003Step02();
- return KErrNone;
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0003::DoRAsyncTestStepOmxILPcmRenderer0003Step02()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0003::DoRAsyncTestStepOmxILPcmRenderer0003Step02"));
-
- OMX_STATETYPE compState;
- if (OMX_ErrorNone != ipCompHandle->GetState(ipCompHandle,
- &compState))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- PrintOmxState(compState);
-
- if (OMX_StateWaitForResources != compState)
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- //
- // Move component to OMX_StateLoaded
- //
-
- if (OMX_ErrorNone != ipCompHandle->SendCommand(
- ipCompHandle,
- OMX_CommandStateSet,
- OMX_StateLoaded,
- 0))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- if (OMX_ErrorNone != ipCompHandle->GetState(ipCompHandle,
- &compState))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- PrintOmxState(compState);
-
- if (OMX_StateLoaded != compState)
- { return StopTest(KErrGeneral, EFail);
- }
-
- // The successful termination...
- ipKickoffStop->Call();
-
- }
-
-
-//
-// RAsyncTestStepOmxILPcmRenderer0004
-//
-RAsyncTestStepOmxILPcmRenderer0004::RAsyncTestStepOmxILPcmRenderer0004(const TDesC& aTestName, TInt aComponentUid)
- :
- RAsyncTestStepOmxILPcmRenderer0001(aTestName, aComponentUid)
-
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0004::RAsyncTestStepOmxILPcmRenderer0004"));
- }
-
-
-void
-RAsyncTestStepOmxILPcmRenderer0004::KickoffTestL()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0004::KickoffTestL"));
- iTestState = EStateLoadKickoffTestLComplete;
-
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : Test04 "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 1.- Loaded->Idle(AllocateBuffer-population) "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2.- Idle->Pause "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 3.- Pause->Idle "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 3.- Idle->Loaded(depopulation) "));
-
- // This will install one callback
- RAsyncTestStepOmxILComponentBase::KickoffTestL();
-
- TCallBack callback01 (RAsyncTestStepOmxILPcmRenderer0004Step01, this);
- delete ipKickoff01;
- ipKickoff01 = NULL;
- ipKickoff01 =
- new (ELeave) CAsyncCallBack (callback01, CActive::EPriorityLow);
- ipKickoff01->Call();
-
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0004::CloseTest()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0004::CloseTest"));
-
- delete ipKickoff01; // no need to Cancel
- ipKickoff01 = NULL;
- delete ipKickoff02; // no need to Cancel
- ipKickoff02 = NULL;
- delete ipKickoff03; // no need to Cancel
- ipKickoff03 = NULL;
- delete ipKickoff04; // no need to Cancel
- ipKickoff04 = NULL;
- delete ipKickoff05; // no need to Cancel
- ipKickoff05 = NULL;
- delete ipKickoff06; // no need to Cancel
- ipKickoff06 = NULL;
-
- delete ipKickoffStop; // no need to Cancel
- ipKickoffStop = 0;
-
- TInt count = ipClientClockPortBufferArray.Count();
-
- for (TInt n = 0; n < count; n++)
- {
- delete ipClientClockPortBufferArray[n];
- }
-
- ipClientClockPortBufferArray.Close();
-
- RAsyncTestStepOmxILComponentBase::CloseTest();
-
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0004::DoEventHandlerL(OMX_HANDLETYPE /*aComponent*/,
- OMX_EVENTTYPE aEvent,
- TUint aData1,
- TUint aData2,
- TAny* /*aExtra*/)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0004::DoEventHandlerL"));
-
- switch (aEvent)
- {
- case OMX_EventError:
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX_EventError [%d]"), aData1);
- return StopTest(KErrGeneral, EFail);
- }
- case OMX_EventCmdComplete:
- {
- switch(aData1)
- {
- case OMX_CommandStateSet:
- {
- switch(aData2)
- {
- case OMX_StateLoaded:
- {
- if (EStateTransitionToIdleComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateLoaded [EStateTransitionToIdleComplete]"));
- iTestState = EStateTransitionToLoadedComplete;
- OMX_STATETYPE compState;
- if (OMX_ErrorNone != ipCompHandle->GetState(ipCompHandle,
- &compState))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- PrintOmxState(compState);
-
- if (OMX_StateLoaded != compState)
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- // The successful termination...
- TCallBack callbackStop (RAsyncTestStepOmxILComponentBase::StopTestCallBack, this);
- delete ipKickoffStop;
- ipKickoffStop = NULL;
- ipKickoffStop =
- new (ELeave) CAsyncCallBack (callbackStop, CActive::EPriorityLow);
- ipKickoffStop->Call();
- }
- }
- break;
- case OMX_StateIdle:
- {
- if (EStateLoadKickoffTestLComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateIdle [EStateLoadKickoffTestLComplete]"));
- iTestState = EStateTransitionToIdleComplete;
- TCallBack callback02 (RAsyncTestStepOmxILPcmRenderer0004Step02, this);
- delete ipKickoff02;
- ipKickoff02 = NULL;
- ipKickoff02 =
- new (ELeave) CAsyncCallBack (callback02, CActive::EPriorityLow);
- ipKickoff02->Call();
-
- }
- else if (EStateTransitionToPauseComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateIdle [EStateTransitionToPauseComplete]"));
- iTestState = EStateTransitionToIdleComplete;
- TCallBack callback04 (RAsyncTestStepOmxILPcmRenderer0004Step04, this);
- delete ipKickoff04;
- ipKickoff04 = NULL;
- ipKickoff04 =
- new (ELeave) CAsyncCallBack (callback04, CActive::EPriorityLow);
- ipKickoff04->Call();
-
- }
- else
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateIdle [Other]"));
- return StopTest(KErrGeneral, EFail);
- }
- }
- break;
- case OMX_StatePause:
- {
- if (EStateTransitionToIdleComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StatePause [EStateTransitionToIdleComplete]"));
- iTestState = EStateTransitionToPauseComplete;
- TCallBack callback03 (RAsyncTestStepOmxILPcmRenderer0004Step03, this);
- delete ipKickoff03;
- ipKickoff03 = NULL;
- ipKickoff03 =
- new (ELeave) CAsyncCallBack (callback03, CActive::EPriorityLow);
- ipKickoff03->Call();
- }
- else
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StatePause [Other]"));
- return StopTest(KErrGeneral, EFail);
- }
- }
- break;
- default:
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX_State [%d]"), aData2);
- return StopTest(KErrGeneral, EFail);
- }
- };
- }
- break;
- default:
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX_Command [%d]"), aData1);
- return StopTest(KErrGeneral, EFail);
- }
- };
- }
- break;
- default:
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX Event [%d]"), aEvent);
- return StopTest(KErrGeneral, EFail);
- }
- };
-
- }
-
-
-TInt
-RAsyncTestStepOmxILPcmRenderer0004::RAsyncTestStepOmxILPcmRenderer0004Step01(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0004::RAsyncTestStepOmxILPcmRenderer0004Step01"));
- // NOTE, Here we reuse inherited code, to populate the component and make it go to OMX_StateIdle
- RAsyncTestStepOmxILPcmRenderer0004* self =
- static_cast<RAsyncTestStepOmxILPcmRenderer0004*> (aPtr);
- self->DoRAsyncTestStepOmxILPcmRenderer0001Step01();
- return KErrNone;
- }
-
-TInt
-RAsyncTestStepOmxILPcmRenderer0004::RAsyncTestStepOmxILPcmRenderer0004Step02(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0004::RAsyncTestStepOmxILPcmRenderer0004Step02"));
- RAsyncTestStepOmxILPcmRenderer0004* self =
- static_cast<RAsyncTestStepOmxILPcmRenderer0004*> (aPtr);
- self->DoRAsyncTestStepOmxILPcmRenderer0004Step02();
- return KErrNone;
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0004::DoRAsyncTestStepOmxILPcmRenderer0004Step02()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0004::DoRAsyncTestStepOmxILPcmRenderer0004Step02"));
-
- OMX_STATETYPE compState;
- if (OMX_ErrorNone != ipCompHandle->GetState(ipCompHandle,
- &compState))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- PrintOmxState(compState);
-
- if (OMX_StateIdle != compState)
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- //
- // Move component to OMX_StatePause
- //
-
- if (OMX_ErrorNone != ipCompHandle->SendCommand(
- ipCompHandle,
- OMX_CommandStateSet,
- OMX_StatePause,
- 0))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- if (OMX_ErrorNone != ipCompHandle->GetState(ipCompHandle,
- &compState))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- PrintOmxState(compState);
-
- if (OMX_StatePause != compState)
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- }
-
-TInt
-RAsyncTestStepOmxILPcmRenderer0004::RAsyncTestStepOmxILPcmRenderer0004Step03(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0004::RAsyncTestStepOmxILPcmRenderer0004Step03"));
- RAsyncTestStepOmxILPcmRenderer0004* self =
- static_cast<RAsyncTestStepOmxILPcmRenderer0004*> (aPtr);
- self->DoRAsyncTestStepOmxILPcmRenderer0004Step03();
- return KErrNone;
- }
-
-
-void
-RAsyncTestStepOmxILPcmRenderer0004::DoRAsyncTestStepOmxILPcmRenderer0004Step03()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0004::DoRAsyncTestStepOmxILPcmRenderer0004Step03"));
-
- //
- // Move component to OMX_StateIdle
- //
-
- if (OMX_ErrorNone != ipCompHandle->SendCommand(
- ipCompHandle,
- OMX_CommandStateSet,
- OMX_StateIdle,
- 0))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- OMX_STATETYPE compState;
- if (OMX_ErrorNone != ipCompHandle->GetState(ipCompHandle,
- &compState))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- PrintOmxState(compState);
-
- if (OMX_StateIdle != compState)
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- }
-
-
-TInt
-RAsyncTestStepOmxILPcmRenderer0004::RAsyncTestStepOmxILPcmRenderer0004Step04(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0004::RAsyncTestStepOmxILPcmRenderer0004Step04"));
- // NOTE, Here we reuse inherited code, to depopulate the component and to
- // make it go to OMX_StateLoaded
- RAsyncTestStepOmxILPcmRenderer0004* self =
- static_cast<RAsyncTestStepOmxILPcmRenderer0004*> (aPtr);
- self->DoRAsyncTestStepOmxILPcmRenderer0001Step02();
- return KErrNone;
- }
-
-
-//
-// RAsyncTestStepOmxILPcmRenderer0005
-//
-RAsyncTestStepOmxILPcmRenderer0005::RAsyncTestStepOmxILPcmRenderer0005(const TDesC& aTestName, TInt aComponentUid)
- :
- RAsyncTestStepOmxILPcmRenderer0004(aTestName, aComponentUid)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0005::RAsyncTestStepOmxILPcmRenderer0005"));
- }
-
-
-void
-RAsyncTestStepOmxILPcmRenderer0005::KickoffTestL()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0005::KickoffTestL"));
- iTestState = EStateLoadKickoffTestLComplete;
-
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : Test05 "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 1.- Loaded->Idle(AllocateBuffer-population) "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2.- Idle->Executing "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2a. - Call EmptyThisBuffer on PCM Renderer "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2b. - EmptyBufferDone callback received "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 3.- Executing->Idle(BufferFlushing) "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 4.- Idle->Loaded(Depopulation) "));
-
- // This will change the test file
- iTestFileName.Set(KPcmRendererTestFile);
-
- // This will install one callback
- RAsyncTestStepOmxILComponentBase::KickoffTestL();
-
- TCallBack callback01 (RAsyncTestStepOmxILPcmRenderer0005Step01, this);
- delete ipKickoff01;
- ipKickoff01 = NULL;
- ipKickoff01 =
- new (ELeave) CAsyncCallBack (callback01, CActive::EPriorityLow);
- ipKickoff01->Call();
-
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0005::CloseTest()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0005::CloseTest"));
-
- delete ipKickoff01; // no need to Cancel
- ipKickoff01 = NULL;
- delete ipKickoff02; // no need to Cancel
- ipKickoff02 = NULL;
- delete ipKickoff03; // no need to Cancel
- ipKickoff03 = NULL;
- delete ipKickoff04; // no need to Cancel
- ipKickoff04 = NULL;
- delete ipKickoff05; // no need to Cancel
- ipKickoff05 = NULL;
- delete ipKickoff06; // no need to Cancel
- ipKickoff06 = NULL;
-
- delete ipKickoffStop; // no need to Cancel
- ipKickoffStop = 0;
-
- TInt count = ipClientClockPortBufferArray.Count();
-
- for (TInt n = 0; n < count; n++)
- {
- delete ipClientClockPortBufferArray[n];
- }
-
- ipClientClockPortBufferArray.Close();
-
- RAsyncTestStepOmxILComponentBase::CloseTest();
-
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0005::DoEventHandlerL(OMX_HANDLETYPE /*aComponent*/,
- OMX_EVENTTYPE aEvent,
- TUint aData1,
- TUint aData2,
- TAny* /*aExtra*/)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0005::DoEventHandlerL"));
-
- switch (aEvent)
- {
- case OMX_EventError:
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX_EventError [%d]"), aData1);
- return StopTest(KErrGeneral, EFail);
- }
- case OMX_EventCmdComplete:
- {
- switch(aData1)
- {
- case OMX_CommandStateSet:
- {
- switch(aData2)
- {
- case OMX_StateLoaded:
- {
- if (EStateTransitionToIdleComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateLoaded [EStateTransitionToIdleComplete]"));
- iTestState = EStateTransitionToLoadedComplete;
- OMX_STATETYPE compState;
- if (OMX_ErrorNone != ipCompHandle->GetState(ipCompHandle,
- &compState))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- PrintOmxState(compState);
-
- if (OMX_StateLoaded != compState)
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- // The successful termination...
- TCallBack callbackStop (RAsyncTestStepOmxILComponentBase::StopTestCallBack, this);
- delete ipKickoffStop;
- ipKickoffStop = NULL;
- ipKickoffStop =
- new (ELeave) CAsyncCallBack (callbackStop, CActive::EPriorityLow);
- ipKickoffStop->Call();
- }
- }
- break;
- case OMX_StateIdle:
- {
- if (EStateLoadKickoffTestLComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateIdle [EStateLoadKickoffTestLComplete]"));
- iTestState = EStateTransitionToIdleComplete;
- TCallBack callback02 (RAsyncTestStepOmxILPcmRenderer0005Step02, this);
- delete ipKickoff02;
- ipKickoff02 = NULL;
- ipKickoff02 =
- new (ELeave) CAsyncCallBack (callback02, CActive::EPriorityLow);
- ipKickoff02->Call();
-
- }
- else if (EStateTransitionToExecutingComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateIdle [EStateTransitionToPauseComplete]"));
- iTestState = EStateTransitionToIdleComplete;
- TCallBack callback04 (RAsyncTestStepOmxILPcmRenderer0005Step04, this);
- delete ipKickoff04;
- ipKickoff04 = NULL;
- ipKickoff04 =
- new (ELeave) CAsyncCallBack (callback04, CActive::EPriorityLow);
- ipKickoff04->Call();
-
- }
- else
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateIdle [Other]"));
- return StopTest(KErrGeneral, EFail);
- }
- }
- break;
- case OMX_StateExecuting:
- {
- if (EStateTransitionToIdleComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateExecuting [EStateTransitionToIdleComplete]"));
- iTestState = EStateTransitionToExecutingComplete;
- CMMFDataBuffer& dataBuffer = *(static_cast<CMMFDataBuffer*>(ipBufferHeaderInput->pInputPortPrivate));
- ipTestFile->ReadNextBuffer(dataBuffer);
- ipBufferHeaderInput->nFilledLen = dataBuffer.BufferSize();
-
- // Send a buffer to the input port
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateExecuting [Send a buffer to the input port]"));
- INFO_PRINTF2(_L("ipBufferHeaderInput->pBuffer [%X]"), ipBufferHeaderInput->pBuffer);
- INFO_PRINTF2(_L("ipBufferHeaderInput->nAllocLen [%d]"), ipBufferHeaderInput->nAllocLen);
- INFO_PRINTF2(_L("ipBufferHeaderInput->nFilledLen [%d]"), ipBufferHeaderInput->nFilledLen);
- INFO_PRINTF2(_L("ipBufferHeaderInput->nOffset [%d]"), ipBufferHeaderInput->nOffset);
- INFO_PRINTF2(_L("ipBufferHeaderInput->pAppPrivate [%X]"), ipBufferHeaderInput->pAppPrivate);
- INFO_PRINTF2(_L("ipBufferHeaderInput->pPlatformPrivate [%X]"), ipBufferHeaderInput->pPlatformPrivate);
- INFO_PRINTF2(_L("ipBufferHeaderInput->pInputPortPrivate [%X]"), ipBufferHeaderInput->pInputPortPrivate);
- INFO_PRINTF2(_L("ipBufferHeaderInput->pOutputPortPrivate [%X]"), ipBufferHeaderInput->pOutputPortPrivate);
- INFO_PRINTF2(_L("ipBufferHeaderInput->hMarkTargetComponent [%X]"), ipBufferHeaderInput->hMarkTargetComponent);
- INFO_PRINTF2(_L("ipBufferHeaderInput->pMarkData [%X]"), ipBufferHeaderInput->pMarkData);
- INFO_PRINTF2(_L("ipBufferHeaderInput->nTickCount [%d]"), ipBufferHeaderInput->nTickCount);
- INFO_PRINTF2(_L("ipBufferHeaderInput->nFlags [%X]"), ipBufferHeaderInput->nFlags);
- INFO_PRINTF2(_L("ipBufferHeaderInput->nOutputPortIndex [%X]"), ipBufferHeaderInput->nOutputPortIndex);
- INFO_PRINTF2(_L("ipBufferHeaderInput->nInputPortIndex [%X]"), ipBufferHeaderInput->nInputPortIndex);
-
- if (OMX_ErrorNone != ipCompHandle->EmptyThisBuffer(
- ipCompHandle, ipBufferHeaderInput))
- {
- return StopTest(KErrGeneral, EFail);
- }
- }
- else
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateExecuting [Other]"));
- return StopTest(KErrGeneral, EFail);
- }
- }
- break;
- default:
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX_State [%d]"), aData2);
- return StopTest(KErrGeneral, EFail);
- }
- };
- }
- break;
- default:
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX_Command [%d]"), aData1);
- return StopTest(KErrGeneral, EFail);
- }
- };
- }
- break;
- default:
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX Event [%d]"), aEvent);
- return StopTest(KErrGeneral, EFail);
- }
- };
-
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0005::DoEmptyBufferDoneL(OMX_HANDLETYPE /*aComponent*/,
- OMX_BUFFERHEADERTYPE* /*aBuffer*/)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0005::DoEmptyBufferDoneL"));
-
- INFO_PRINTF1(_L("DoEmptyBufferDoneL : Callback received "));
-
- TCallBack callback03 (RAsyncTestStepOmxILPcmRenderer0005Step03, this);
- delete ipKickoff03;
- ipKickoff03 = NULL;
- ipKickoff03 =
- new (ELeave) CAsyncCallBack (callback03, CActive::EPriorityLow);
- ipKickoff03->Call();
- }
-
-
-TInt
-RAsyncTestStepOmxILPcmRenderer0005::RAsyncTestStepOmxILPcmRenderer0005Step01(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0005::RAsyncTestStepOmxILPcmRenderer0005Step01"));
- // NOTE, Here we reuse inherited code, to populate the component and make it go to OMX_StateIdle
- RAsyncTestStepOmxILPcmRenderer0005* self =
- static_cast<RAsyncTestStepOmxILPcmRenderer0005*> (aPtr);
- self->DoRAsyncTestStepOmxILPcmRenderer0001Step01();
- return KErrNone;
- }
-
-TInt
-RAsyncTestStepOmxILPcmRenderer0005::RAsyncTestStepOmxILPcmRenderer0005Step02(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0005::RAsyncTestStepOmxILPcmRenderer0005Step02"));
- RAsyncTestStepOmxILPcmRenderer0005* self =
- static_cast<RAsyncTestStepOmxILPcmRenderer0005*> (aPtr);
- self->DoRAsyncTestStepOmxILPcmRenderer0005Step02();
- return KErrNone;
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0005::DoRAsyncTestStepOmxILPcmRenderer0005Step02()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0005::DoRAsyncTestStepOmxILPcmRenderer0005Step02"));
-
- //
- // Move component to OMX_StateExecuting
- //
-
- if (OMX_ErrorNone != ipCompHandle->SendCommand(
- ipCompHandle,
- OMX_CommandStateSet,
- OMX_StateExecuting,
- 0))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- OMX_STATETYPE compState;
- if (OMX_ErrorNone != ipCompHandle->GetState(ipCompHandle,
- &compState))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- PrintOmxState(compState);
-
- if (OMX_StateExecuting != compState)
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- }
-
-TInt
-RAsyncTestStepOmxILPcmRenderer0005::RAsyncTestStepOmxILPcmRenderer0005Step03(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0005::RAsyncTestStepOmxILPcmRenderer0005Step03"));
- RAsyncTestStepOmxILPcmRenderer0005* self =
- static_cast<RAsyncTestStepOmxILPcmRenderer0005*> (aPtr);
- self->DoRAsyncTestStepOmxILPcmRenderer0004Step03();
- return KErrNone;
- }
-
-
-TInt
-RAsyncTestStepOmxILPcmRenderer0005::RAsyncTestStepOmxILPcmRenderer0005Step04(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0005::RAsyncTestStepOmxILPcmRenderer0005Step04"));
- // NOTE, Here we reuse inherited code, to depopulate the component and to
- // make it go to OMX_StateLoaded
- RAsyncTestStepOmxILPcmRenderer0005* self =
- static_cast<RAsyncTestStepOmxILPcmRenderer0005*> (aPtr);
- self->DoRAsyncTestStepOmxILPcmRenderer0001Step02();
- return KErrNone;
- }
-
-
-
-//
-// RAsyncTestStepOmxILPcmRenderer0006
-//
-RAsyncTestStepOmxILPcmRenderer0006::RAsyncTestStepOmxILPcmRenderer0006(const TDesC& aTestName, TInt aComponentUid)
- :
- RAsyncTestStepOmxILPcmRenderer0005(aTestName, aComponentUid)
-
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0006::RAsyncTestStepOmxILPcmRenderer0006"));
- }
-
-
-void
-RAsyncTestStepOmxILPcmRenderer0006::KickoffTestL()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0006::KickoffTestL"));
- iTestState = EStateLoadKickoffTestLComplete;
-
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : Test06 "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 1.- Loaded->Idle(AllocateBuffer-population) "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2.- Idle->Executing "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 3.- Executing->Pause "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 4.- Pause->Executing "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 5.- Executing->Idle(BufferFlushing) "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 6.- Idle->Loaded(depopulation) "));
-
- // This will install one callback
- RAsyncTestStepOmxILComponentBase::KickoffTestL();
-
- TCallBack callback01 (RAsyncTestStepOmxILPcmRenderer0006Step01, this);
- delete ipKickoff01;
- ipKickoff01 = NULL;
- ipKickoff01 =
- new (ELeave) CAsyncCallBack (callback01, CActive::EPriorityLow);
- ipKickoff01->Call();
-
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0006::CloseTest()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0006::CloseTest"));
-
- delete ipKickoff01; // no need to Cancel
- ipKickoff01 = NULL;
- delete ipKickoff02; // no need to Cancel
- ipKickoff02 = NULL;
- delete ipKickoff03; // no need to Cancel
- ipKickoff03 = NULL;
- delete ipKickoff04; // no need to Cancel
- ipKickoff04 = NULL;
- delete ipKickoff05; // no need to Cancel
- ipKickoff05 = NULL;
- delete ipKickoff06; // no need to Cancel
- ipKickoff06 = NULL;
-
- delete ipKickoffStop; // no need to Cancel
- ipKickoffStop = 0;
-
- TInt count = ipClientClockPortBufferArray.Count();
-
- for (TInt n = 0; n < count; n++)
- {
- delete ipClientClockPortBufferArray[n];
- }
-
- ipClientClockPortBufferArray.Close();
-
- RAsyncTestStepOmxILComponentBase::CloseTest();
-
- }
-
-
-void
-RAsyncTestStepOmxILPcmRenderer0006::DoEventHandlerL(OMX_HANDLETYPE /*aComponent*/,
- OMX_EVENTTYPE aEvent,
- TUint aData1,
- TUint aData2,
- TAny* /*aExtra*/)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0006::DoEventHandlerL"));
-
- switch (aEvent)
- {
- case OMX_EventError:
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX_EventError [%d]"), aData1);
- return StopTest(KErrGeneral, EFail);
- }
- case OMX_EventCmdComplete:
- {
- switch(aData1)
- {
- case OMX_CommandStateSet:
- {
- switch(aData2)
- {
- case OMX_StateLoaded:
- {
- if (EStateTransitionToIdleComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateLoaded [EStateTransitionToIdleComplete]"));
- iTestState = EStateTransitionToLoadedComplete;
- OMX_STATETYPE compState;
- if (OMX_ErrorNone != ipCompHandle->GetState(ipCompHandle,
- &compState))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- PrintOmxState(compState);
-
- if (OMX_StateLoaded != compState)
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- // The successful termination...
- TCallBack callbackStop (RAsyncTestStepOmxILComponentBase::StopTestCallBack, this);
- delete ipKickoffStop;
- ipKickoffStop = NULL;
- ipKickoffStop =
- new (ELeave) CAsyncCallBack (callbackStop, CActive::EPriorityLow);
- ipKickoffStop->Call();
- }
- }
- break;
- case OMX_StateIdle:
- {
- if (EStateLoadKickoffTestLComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateIdle [EStateLoadKickoffTestLComplete]"));
- iTestState = EStateTransitionToIdleComplete;
- TCallBack callback02 (RAsyncTestStepOmxILPcmRenderer0006Step02, this);
- delete ipKickoff02;
- ipKickoff02 = NULL;
- ipKickoff02 =
- new (ELeave) CAsyncCallBack (callback02, CActive::EPriorityLow);
- ipKickoff02->Call();
-
- }
- else if (EStateTransitionToExecutingComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateIdle [EStateTransitionToExecutingComplete]"));
- iTestState = EStateTransitionToIdleComplete;
- TCallBack callback06 (RAsyncTestStepOmxILPcmRenderer0006Step06, this);
- delete ipKickoff06;
- ipKickoff06 = NULL;
- ipKickoff06 =
- new (ELeave) CAsyncCallBack (callback06, CActive::EPriorityLow);
- ipKickoff06->Call();
-
- }
- else
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateIdle [Other]"));
- return StopTest(KErrGeneral, EFail);
- }
- }
- break;
- case OMX_StateExecuting:
- {
- if (EStateTransitionToIdleComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateExecuting [EStateTransitionToIdleComplete]"));
- iTestState = EStateTransitionToExecutingComplete;
- TCallBack callback03 (RAsyncTestStepOmxILPcmRenderer0006Step03, this);
- delete ipKickoff03;
- ipKickoff03 = NULL;
- ipKickoff03 =
- new (ELeave) CAsyncCallBack (callback03, CActive::EPriorityLow);
- ipKickoff03->Call();
-
- }
- else if (EStateTransitionToPauseComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateExecuting [EStateTransitionToPauseComplete]"));
- iTestState = EStateTransitionToExecutingComplete;
- TCallBack callback05 (RAsyncTestStepOmxILPcmRenderer0006Step05, this);
- delete ipKickoff05;
- ipKickoff05 = NULL;
- ipKickoff05 =
- new (ELeave) CAsyncCallBack (callback05, CActive::EPriorityLow);
- ipKickoff05->Call();
-
- }
- else
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX_StateExecuting iTestState[%d]"), iTestState);
- return StopTest(KErrGeneral, EFail);
- }
- }
- break;
- case OMX_StatePause:
- {
- if (EStateTransitionToExecutingComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StatePause [EStateTransitionToExecutingComplete]"));
- iTestState = EStateTransitionToPauseComplete;
- TCallBack callback04 (RAsyncTestStepOmxILPcmRenderer0006Step04, this);
- delete ipKickoff04;
- ipKickoff04 = NULL;
- ipKickoff04 =
- new (ELeave) CAsyncCallBack (callback04, CActive::EPriorityLow);
- ipKickoff04->Call();
- }
- else
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX_StatePause iTestState[%d]"), iTestState);
- return StopTest(KErrGeneral, EFail);
- }
-
- }
- break;
- default:
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX_State [%d]"), aData2);
- return StopTest(KErrGeneral, EFail);
- }
- };
- }
- break;
- default:
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX_Command [%d]"), aData1);
- return StopTest(KErrGeneral, EFail);
- }
- };
- }
- break;
- default:
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX Event [%d]"), aEvent);
- return StopTest(KErrGeneral, EFail);
- }
- };
-
- }
-
-
-TInt
-RAsyncTestStepOmxILPcmRenderer0006::RAsyncTestStepOmxILPcmRenderer0006Step01(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0006::RAsyncTestStepOmxILPcmRenderer0006Step01"));
- // NOTE, Here we reuse inherited code, to populate the component and make it go to OMX_StateIdle
- RAsyncTestStepOmxILPcmRenderer0006* self =
- static_cast<RAsyncTestStepOmxILPcmRenderer0006*> (aPtr);
- self->DoRAsyncTestStepOmxILPcmRenderer0001Step01();
- return KErrNone;
- }
-
-TInt
-RAsyncTestStepOmxILPcmRenderer0006::RAsyncTestStepOmxILPcmRenderer0006Step02(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0006::RAsyncTestStepOmxILPcmRenderer0006Step02"));
- RAsyncTestStepOmxILPcmRenderer0006* self =
- static_cast<RAsyncTestStepOmxILPcmRenderer0006*> (aPtr);
- self->DoRAsyncTestStepOmxILPcmRenderer0005Step02();
- return KErrNone;
- }
-
-TInt
-RAsyncTestStepOmxILPcmRenderer0006::RAsyncTestStepOmxILPcmRenderer0006Step03(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0006::RAsyncTestStepOmxILPcmRenderer0006Step03"));
- RAsyncTestStepOmxILPcmRenderer0006* self =
- static_cast<RAsyncTestStepOmxILPcmRenderer0006*> (aPtr);
- self->DoRAsyncTestStepOmxILPcmRenderer0006Step03();
- return KErrNone;
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0006::DoRAsyncTestStepOmxILPcmRenderer0006Step03()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0006::DoRAsyncTestStepOmxILPcmRenderer0006Step03"));
-
- //
- // Move component to OMX_StatePause
- //
- OMX_STATETYPE compState;
- if (OMX_ErrorNone != ipCompHandle->SendCommand(
- ipCompHandle,
- OMX_CommandStateSet,
- OMX_StatePause,
- 0))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- if (OMX_ErrorNone != ipCompHandle->GetState(ipCompHandle,
- &compState))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- PrintOmxState(compState);
-
- if (OMX_StatePause != compState)
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- }
-
-
-TInt
-RAsyncTestStepOmxILPcmRenderer0006::RAsyncTestStepOmxILPcmRenderer0006Step04(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0006::RAsyncTestStepOmxILPcmRenderer0006Step04"));
- // NOTE, Here we reuse inherited code, to make it go to OMX_StateIdle
- RAsyncTestStepOmxILPcmRenderer0006* self =
- static_cast<RAsyncTestStepOmxILPcmRenderer0006*> (aPtr);
- self->DoRAsyncTestStepOmxILPcmRenderer0005Step02();
- return KErrNone;
- }
-
-TInt
-RAsyncTestStepOmxILPcmRenderer0006::RAsyncTestStepOmxILPcmRenderer0006Step05(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0006::RAsyncTestStepOmxILPcmRenderer0006Step05"));
- // NOTE, Here we reuse inherited code, to make it go to OMX_StateIdle
- RAsyncTestStepOmxILPcmRenderer0006* self =
- static_cast<RAsyncTestStepOmxILPcmRenderer0006*> (aPtr);
- self->DoRAsyncTestStepOmxILPcmRenderer0004Step03();
- return KErrNone;
- }
-
-TInt
-RAsyncTestStepOmxILPcmRenderer0006::RAsyncTestStepOmxILPcmRenderer0006Step06(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0006::RAsyncTestStepOmxILPcmRenderer0006Step06"));
- // NOTE, Here we reuse inherited code, to make it go to OMX_StateLoaded
- RAsyncTestStepOmxILPcmRenderer0006* self =
- static_cast<RAsyncTestStepOmxILPcmRenderer0006*> (aPtr);
- self->DoRAsyncTestStepOmxILPcmRenderer0001Step02();
- return KErrNone;
- }
-
-
-//
-// RAsyncTestStepOmxILPcmRenderer0007
-//
-RAsyncTestStepOmxILPcmRenderer0007::RAsyncTestStepOmxILPcmRenderer0007(const TDesC& aTestName, TInt aComponentUid)
- :
- RAsyncTestStepOmxILPcmRenderer0006(aTestName, aComponentUid)
-
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0007::RAsyncTestStepOmxILPcmRenderer0007"));
- }
-
-
-void
-RAsyncTestStepOmxILPcmRenderer0007::KickoffTestL()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0007::KickoffTestL"));
- iTestState = EStateLoadKickoffTestLComplete;
-
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : Test07 "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 1.- Loaded->Idle(AllocateBuffer-population) "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2.- Idle->Executing "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 3.- Executing->Pause "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 4.- Pause->Idle(BufferFlushing)"));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 5.- Idle->Loaded(depopulation) "));
-
- // This will install one callback
- RAsyncTestStepOmxILComponentBase::KickoffTestL();
-
- TCallBack callback01 (RAsyncTestStepOmxILPcmRenderer0007Step01, this);
- delete ipKickoff01;
- ipKickoff01 = NULL;
- ipKickoff01 =
- new (ELeave) CAsyncCallBack (callback01, CActive::EPriorityLow);
- ipKickoff01->Call();
-
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0007::CloseTest()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0007::CloseTest"));
-
- delete ipKickoff01; // no need to Cancel
- ipKickoff01 = NULL;
- delete ipKickoff02; // no need to Cancel
- ipKickoff02 = NULL;
- delete ipKickoff03; // no need to Cancel
- ipKickoff03 = NULL;
- delete ipKickoff04; // no need to Cancel
- ipKickoff04 = NULL;
- delete ipKickoff05; // no need to Cancel
- ipKickoff05 = NULL;
- delete ipKickoff06; // no need to Cancel
- ipKickoff06 = NULL;
-
- delete ipKickoffStop; // no need to Cancel
- ipKickoffStop = 0;
-
- TInt count = ipClientClockPortBufferArray.Count();
-
- for (TInt n = 0; n < count; n++)
- {
- delete ipClientClockPortBufferArray[n];
- }
-
- ipClientClockPortBufferArray.Close();
-
- RAsyncTestStepOmxILComponentBase::CloseTest();
-
- }
-
-
-void
-RAsyncTestStepOmxILPcmRenderer0007::DoEventHandlerL(OMX_HANDLETYPE /*aComponent*/,
- OMX_EVENTTYPE aEvent,
- TUint aData1,
- TUint aData2,
- TAny* /*aExtra*/)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0007::DoEventHandlerL"));
-
- switch (aEvent)
- {
- case OMX_EventError:
- {
- // Ignore underflow errors...
- if (OMX_ErrorUnderflow == (OMX_S32)aData1)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: [OMX_ErrorUnderflow]"));
- }
- else
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX_EventError [%x]"), aData1);
- return StopTest(KErrGeneral, EFail);
- }
- }
- break;
-
- case OMX_EventCmdComplete:
- {
- switch(aData1)
- {
- case OMX_CommandStateSet:
- {
- switch(aData2)
- {
- case OMX_StateLoaded:
- {
- if (EStateTransitionToIdleComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateLoaded [EStateTransitionToIdleComplete]"));
- iTestState = EStateTransitionToLoadedComplete;
- OMX_STATETYPE compState;
- if (OMX_ErrorNone != ipCompHandle->GetState(ipCompHandle,
- &compState))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- PrintOmxState(compState);
-
- if (OMX_StateLoaded != compState)
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- // The successful termination...
- TCallBack callbackStop (RAsyncTestStepOmxILComponentBase::StopTestCallBack, this);
- delete ipKickoffStop;
- ipKickoffStop = NULL;
- ipKickoffStop =
- new (ELeave) CAsyncCallBack (callbackStop, CActive::EPriorityLow);
- ipKickoffStop->Call();
- }
- }
- break;
- case OMX_StateIdle:
- {
- if (EStateLoadKickoffTestLComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateIdle [EStateLoadKickoffTestLComplete]"));
- iTestState = EStateTransitionToIdleComplete;
- TCallBack callback02 (RAsyncTestStepOmxILPcmRenderer0007Step02, this);
- delete ipKickoff02;
- ipKickoff02 = NULL;
- ipKickoff02 =
- new (ELeave) CAsyncCallBack (callback02, CActive::EPriorityLow);
- ipKickoff02->Call();
-
- }
- else if (EStateTransitionToPauseComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateIdle [EStateTransitionToPauseComplete]"));
- iTestState = EStateTransitionToIdleComplete;
- TCallBack callback05 (RAsyncTestStepOmxILPcmRenderer0007Step05, this);
- delete ipKickoff05;
- ipKickoff05 = NULL;
- ipKickoff05 =
- new (ELeave) CAsyncCallBack (callback05, CActive::EPriorityLow);
- ipKickoff05->Call();
-
- }
- else
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateIdle [Other]"));
- return StopTest(KErrGeneral, EFail);
- }
- }
- break;
- case OMX_StateExecuting:
- {
- if (EStateTransitionToIdleComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateExecuting [EStateTransitionToIdleComplete]"));
- iTestState = EStateTransitionToExecutingComplete;
- TCallBack callback03 (RAsyncTestStepOmxILPcmRenderer0007Step03, this);
- delete ipKickoff03;
- ipKickoff03 = NULL;
- ipKickoff03 =
- new (ELeave) CAsyncCallBack (callback03, CActive::EPriorityLow);
- ipKickoff03->Call();
-
- }
- else
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX_StateExecuting iTestState[%d]"), iTestState);
- return StopTest(KErrGeneral, EFail);
- }
- }
- break;
- case OMX_StatePause:
- {
- if (EStateTransitionToExecutingComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StatePause [EStateTransitionToExecutingComplete]"));
- iTestState = EStateTransitionToPauseComplete;
- TCallBack callback04 (RAsyncTestStepOmxILPcmRenderer0007Step04, this);
- delete ipKickoff04;
- ipKickoff04 = NULL;
- ipKickoff04 =
- new (ELeave) CAsyncCallBack (callback04, CActive::EPriorityLow);
- ipKickoff04->Call();
- }
- else
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX_StatePause iTestState[%d]"), iTestState);
- return StopTest(KErrGeneral, EFail);
- }
-
- }
- break;
- default:
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX_State [%d]"), aData2);
- return StopTest(KErrGeneral, EFail);
- }
- };
- }
- break;
- default:
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX_Command [%d]"), aData1);
- return StopTest(KErrGeneral, EFail);
- }
- };
- }
- break;
- default:
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX Event [%d]"), aEvent);
- return StopTest(KErrGeneral, EFail);
- }
- };
-
- }
-
-
-TInt
-RAsyncTestStepOmxILPcmRenderer0007::RAsyncTestStepOmxILPcmRenderer0007Step01(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0007::RAsyncTestStepOmxILPcmRenderer0007Step01"));
- // NOTE, Here we reuse inherited code, to populate the component and make it go to OMX_StateIdle
- RAsyncTestStepOmxILPcmRenderer0007* self =
- static_cast<RAsyncTestStepOmxILPcmRenderer0007*> (aPtr);
- self->DoRAsyncTestStepOmxILPcmRenderer0001Step01();
- return KErrNone;
- }
-
-TInt
-RAsyncTestStepOmxILPcmRenderer0007::RAsyncTestStepOmxILPcmRenderer0007Step02(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0007::RAsyncTestStepOmxILPcmRenderer0007Step02"));
- RAsyncTestStepOmxILPcmRenderer0007* self =
- static_cast<RAsyncTestStepOmxILPcmRenderer0007*> (aPtr);
- self->DoRAsyncTestStepOmxILPcmRenderer0005Step02();
- return KErrNone;
- }
-
-TInt
-RAsyncTestStepOmxILPcmRenderer0007::RAsyncTestStepOmxILPcmRenderer0007Step03(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0007::RAsyncTestStepOmxILPcmRenderer0007Step03"));
- RAsyncTestStepOmxILPcmRenderer0007* self =
- static_cast<RAsyncTestStepOmxILPcmRenderer0007*> (aPtr);
- self->DoRAsyncTestStepOmxILPcmRenderer0006Step03();
- return KErrNone;
- }
-
-TInt
-RAsyncTestStepOmxILPcmRenderer0007::RAsyncTestStepOmxILPcmRenderer0007Step04(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0007::RAsyncTestStepOmxILPcmRenderer0007Step04"));
- // NOTE, Here we reuse inherited code, to make it go to OMX_StateIdle
- RAsyncTestStepOmxILPcmRenderer0007* self =
- static_cast<RAsyncTestStepOmxILPcmRenderer0007*> (aPtr);
- self->DoRAsyncTestStepOmxILPcmRenderer0004Step03();
- return KErrNone;
- }
-
-TInt
-RAsyncTestStepOmxILPcmRenderer0007::RAsyncTestStepOmxILPcmRenderer0007Step05(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0007::RAsyncTestStepOmxILPcmRenderer0007Step05"));
- // NOTE, Here we reuse inherited code, to make it go to OMX_StateIdle
- RAsyncTestStepOmxILPcmRenderer0007* self =
- static_cast<RAsyncTestStepOmxILPcmRenderer0007*> (aPtr);
- self->DoRAsyncTestStepOmxILPcmRenderer0001Step02();
- return KErrNone;
- }
-
-//
-// RAsyncTestStepOmxILPcmRenderer0008
-//
-RAsyncTestStepOmxILPcmRenderer0008::RAsyncTestStepOmxILPcmRenderer0008(const TDesC& aTestName, TInt aComponentUid)
- :
- RAsyncTestStepOmxILPcmRenderer0005(aTestName, aComponentUid)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0008::RAsyncTestStepOmxILPcmRenderer0008"));
- }
-
-
-void
-RAsyncTestStepOmxILPcmRenderer0008::KickoffTestL()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0008::KickoffTestL"));
- iTestState = EStateLoadKickoffTestLComplete;
-
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : Test08 "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 1.- Loaded->Idle(AllocateBuffer-population) "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2.- Idle->Executing "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2.- Repeat these two steps until the whole file has beeen empited "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2a. - Call EmptyThisBuffer on PCM Renderer "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2b. - EmptyBufferDone callback received "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 3.- Executing->Idle(BufferFlushing) "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 4.- Idle->Loaded(Depopulation) "));
-
- // This will change the test file
- iTestFileName.Set(KPcmRendererTestFile);
-
- // This will install one callback
- RAsyncTestStepOmxILComponentBase::KickoffTestL();
-
- TCallBack callback01 (RAsyncTestStepOmxILPcmRenderer0005Step01, this);
- delete ipKickoff01;
- ipKickoff01 = NULL;
- ipKickoff01 =
- new (ELeave) CAsyncCallBack (callback01, CActive::EPriorityLow);
- ipKickoff01->Call();
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0008::DoEventHandlerL(OMX_HANDLETYPE /*aComponent*/,
- OMX_EVENTTYPE aEvent,
- TUint aData1,
- TUint aData2,
- TAny* /*aExtra*/)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0008::DoEventHandlerL"));
-
- switch (aEvent)
- {
- case OMX_EventError:
- {
- // Ignore underflow errors...
- if (OMX_ErrorUnderflow == (OMX_S32)aData1)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: [OMX_ErrorUnderflow]"));
- }
- else
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX_EventError [%x]"), aData1);
- return StopTest(KErrGeneral, EFail);
- }
- }
- break;
-
- case OMX_EventCmdComplete:
- {
- switch(aData1)
- {
- case OMX_CommandStateSet:
- {
- switch(aData2)
- {
- case OMX_StateLoaded:
- {
- if (EStateTransitionToIdleComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateLoaded [EStateTransitionToIdleComplete]"));
- iTestState = EStateTransitionToLoadedComplete;
- OMX_STATETYPE compState;
- if (OMX_ErrorNone != ipCompHandle->GetState(ipCompHandle,
- &compState))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- PrintOmxState(compState);
-
- if (OMX_StateLoaded != compState)
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- // The successful termination...
- TCallBack callbackStop (RAsyncTestStepOmxILComponentBase::StopTestCallBack, this);
- delete ipKickoffStop;
- ipKickoffStop = NULL;
- ipKickoffStop =
- new (ELeave) CAsyncCallBack (callbackStop, CActive::EPriorityLow);
- ipKickoffStop->Call();
- }
- }
- break;
- case OMX_StateIdle:
- {
- if (EStateLoadKickoffTestLComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateIdle [EStateLoadKickoffTestLComplete]"));
- iTestState = EStateTransitionToIdleComplete;
- TCallBack callback02 (RAsyncTestStepOmxILPcmRenderer0005Step02, this);
- delete ipKickoff02;
- ipKickoff02 = NULL;
- ipKickoff02 =
- new (ELeave) CAsyncCallBack (callback02, CActive::EPriorityLow);
- ipKickoff02->Call();
-
- }
- else if (EStateTransitionToExecutingComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateIdle [EStateTransitionToPauseComplete]"));
- iTestState = EStateTransitionToIdleComplete;
- TCallBack callback04 (RAsyncTestStepOmxILPcmRenderer0005Step04, this);
- delete ipKickoff04;
- ipKickoff04 = NULL;
- ipKickoff04 =
- new (ELeave) CAsyncCallBack (callback04, CActive::EPriorityLow);
- ipKickoff04->Call();
-
- }
- else
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateIdle [Other]"));
- return StopTest(KErrGeneral, EFail);
- }
- }
- break;
- case OMX_StateExecuting:
- {
- if (EStateTransitionToIdleComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateExecuting [EStateTransitionToIdleComplete]"));
- iTestState = EStateTransitionToExecutingComplete;
-
- CMMFDataBuffer& dataBuffer = *(static_cast<CMMFDataBuffer*>(ipBufferHeaderInput->pInputPortPrivate));
- ipTestFile->ReadNextBuffer(dataBuffer);
-
- // Send a buffer to the input port
- ipBufferHeaderInput->nFilledLen = dataBuffer.BufferSize();
-
- if (OMX_ErrorNone != ipCompHandle->EmptyThisBuffer(
- ipCompHandle, ipBufferHeaderInput))
- {
- StopTest(KErrGeneral, EFail);
- }
- }
- else
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateExecuting [Other]"));
- return StopTest(KErrGeneral, EFail);
- }
- }
- break;
- default:
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX_State [%d]"), aData2);
- return StopTest(KErrGeneral, EFail);
- }
- };
- }
- break;
- default:
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX_Command [%d]"), aData1);
- return StopTest(KErrGeneral, EFail);
- }
- };
- }
- break;
- default:
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX Event [%d]"), aEvent);
- return StopTest(KErrGeneral, EFail);
- }
- };
-
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0008::DoEmptyBufferDoneL(OMX_HANDLETYPE /*aComponent*/,
- OMX_BUFFERHEADERTYPE* /*aBuffer*/)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0008::DoEmptyBufferDoneL"));
- INFO_PRINTF1(_L("DoEmptyBufferDoneL : Callback received "));
-
- CMMFDataBuffer& dataBuffer = *(static_cast<CMMFDataBuffer*>(ipBufferHeaderInput->pInputPortPrivate));
- ipTestFile->ReadNextBuffer(dataBuffer);
-
- if (dataBuffer.BufferSize() > 0)
- {
- // Send a buffer to the input port
- ipBufferHeaderInput->nFilledLen = dataBuffer.BufferSize();
-
- if (OMX_ErrorNone != ipCompHandle->EmptyThisBuffer(
- ipCompHandle, ipBufferHeaderInput))
- {
- StopTest(KErrGeneral, EFail);
- }
- }
- else
- {
- TCallBack callback03 (RAsyncTestStepOmxILPcmRenderer0005Step03, this);
- delete ipKickoff03;
- ipKickoff03 = NULL;
- ipKickoff03 =
- new (ELeave) CAsyncCallBack (callback03, CActive::EPriorityLow);
- ipKickoff03->Call();
- }
- }
-
-//
-// RAsyncTestStepOmxILPcmRenderer0009
-//
-RAsyncTestStepOmxILPcmRenderer0009::RAsyncTestStepOmxILPcmRenderer0009(const TDesC& aTestName, TInt aComponentUid)
- :
- RAsyncTestStepOmxILPcmRenderer0008(aTestName, aComponentUid)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0009::RAsyncTestStepOmxILPcmRenderer0009"));
- iSamplingRate = 44100;
- }
-
-
-void
-RAsyncTestStepOmxILPcmRenderer0009::KickoffTestL()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0009::KickoffTestL"));
- iTestState = EStateLoadKickoffTestLComplete;
-
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : Test09 "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 1.- Loaded->Idle(AllocateBuffer-population) "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2.- Idle->Executing "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2.- Repeat these two steps until the whole file has beeen empited "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2a. - Call EmptyThisBuffer on PCM Renderer "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2b. - EmptyBufferDone callback received "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 3.- Executing->Pause and Pause->Executing (after 5 and again after 10 buffers played) "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 4.- Executing->Idle(BufferFlushing) "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 5.- Idle->Loaded(Depopulation) "));
-
- // This will change the test file
- iTestFileName.Set(KPcmRendererTestFile2);
-
- // This will install one callback
- RAsyncTestStepOmxILComponentBase::KickoffTestL();
-
- TCallBack callback01 (RAsyncTestStepOmxILPcmRenderer0005Step01, this);
- delete ipKickoff01;
- ipKickoff01 = NULL;
- ipKickoff01 =
- new (ELeave) CAsyncCallBack (callback01, CActive::EPriorityLow);
- ipKickoff01->Call();
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0009::DoEventHandlerL(OMX_HANDLETYPE /*aComponent*/,
- OMX_EVENTTYPE aEvent,
- TUint aData1,
- TUint aData2,
- TAny* /*aExtra*/)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0009::DoEventHandlerL"));
-
- switch (aEvent)
- {
- case OMX_EventError:
- {
- // Ignore underflow errors...
- if (OMX_ErrorUnderflow == (OMX_S32)aData1)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: [OMX_ErrorUnderflow]"));
- }
- else
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX_EventError [%x]"), aData1);
- return StopTest(KErrGeneral, EFail);
- }
- }
- break;
-
- case OMX_EventCmdComplete:
- {
- switch(aData1)
- {
- case OMX_CommandStateSet:
- {
- switch(aData2)
- {
- case OMX_StateLoaded:
- {
- if (EStateTransitionToIdleComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateLoaded [EStateTransitionToIdleComplete]"));
- iTestState = EStateTransitionToLoadedComplete;
- OMX_STATETYPE compState;
- if (OMX_ErrorNone != ipCompHandle->GetState(ipCompHandle,
- &compState))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- PrintOmxState(compState);
-
- if (OMX_StateLoaded != compState)
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- // The successful termination...
- TCallBack callbackStop (RAsyncTestStepOmxILComponentBase::StopTestCallBack, this);
- delete ipKickoffStop;
- ipKickoffStop = NULL;
- ipKickoffStop =
- new (ELeave) CAsyncCallBack (callbackStop, CActive::EPriorityLow);
- ipKickoffStop->Call();
- }
- }
- break;
- case OMX_StateIdle:
- {
- if (EStateLoadKickoffTestLComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateIdle [EStateLoadKickoffTestLComplete]"));
- iTestState = EStateTransitionToIdleComplete;
- TCallBack callback02 (RAsyncTestStepOmxILPcmRenderer0005Step02, this);
- delete ipKickoff02;
- ipKickoff02 = NULL;
- ipKickoff02 =
- new (ELeave) CAsyncCallBack (callback02, CActive::EPriorityLow);
- ipKickoff02->Call();
-
- }
- else if (EStateTransitionToExecutingComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateIdle [EStateTransitionToPauseComplete]"));
- iTestState = EStateTransitionToIdleComplete;
- TCallBack callback04 (RAsyncTestStepOmxILPcmRenderer0005Step04, this);
- delete ipKickoff04;
- ipKickoff04 = NULL;
- ipKickoff04 =
- new (ELeave) CAsyncCallBack (callback04, CActive::EPriorityLow);
- ipKickoff04->Call();
-
- }
- else
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateIdle [Other]"));
- return StopTest(KErrGeneral, EFail);
- }
- }
- break;
- case OMX_StateExecuting:
- {
- if (EStateTransitionToIdleComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateExecuting [EStateTransitionToIdleComplete]"));
- iTestState = EStateTransitionToExecutingComplete;
-
- CMMFDataBuffer& dataBuffer = *(static_cast<CMMFDataBuffer*>(ipBufferHeaderInput->pInputPortPrivate));
- ipTestFile->ReadNextBuffer(dataBuffer);
-
- // Send a buffer to the input port
- ipBufferHeaderInput->nFilledLen = dataBuffer.BufferSize();
-
- if (OMX_ErrorNone != ipCompHandle->EmptyThisBuffer(
- ipCompHandle, ipBufferHeaderInput))
- {
- StopTest(KErrGeneral, EFail);
- }
- }
- else if (EStateTransitionToPauseComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateExecuting [EStateTransitionToIdleComplete]"));
- iTestState = EStateTransitionToExecutingComplete;
- }
- else
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateExecuting [Other]"));
- return StopTest(KErrGeneral, EFail);
- }
- }
- break;
- case OMX_StatePause:
- {
- if (EStateTransitionToExecutingComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StatePause [EStateTransitionToExecutingComplete]"));
- iTestState = EStateTransitionToPauseComplete;
-
- // Wait for a second...
- User::After(1000000);
-
- // Resume playing...
- TCallBack callback02 (RAsyncTestStepOmxILPcmRenderer0005Step02, this);
- delete ipKickoff02;
- ipKickoff02 = NULL;
- ipKickoff02 =
- new (ELeave) CAsyncCallBack (callback02, CActive::EPriorityLow);
- ipKickoff02->Call();
- }
- else
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX_StatePause iTestState[%d]"), iTestState);
- return StopTest(KErrGeneral, EFail);
- }
-
- }
- break;
- default:
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX_State [%d]"), aData2);
- return StopTest(KErrGeneral, EFail);
- }
- };
- }
- break;
- default:
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX_Command [%d]"), aData1);
- return StopTest(KErrGeneral, EFail);
- }
- };
- }
- break;
- default:
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX Event [%d]"), aEvent);
- return StopTest(KErrGeneral, EFail);
- }
- };
-
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0009::DoEmptyBufferDoneL(OMX_HANDLETYPE /*aComponent*/,
- OMX_BUFFERHEADERTYPE* /*aBuffer*/)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0009::DoEmptyBufferDoneL"));
- INFO_PRINTF1(_L("DoEmptyBufferDoneL : Callback received "));
-
- iNumOfEmptiedBuffers++;
- if (iNumOfEmptiedBuffers == 5 || iNumOfEmptiedBuffers == 10)
- {
- //
- // Move component to OMX_StatePause
- //
- if (OMX_ErrorNone != ipCompHandle->SendCommand(
- ipCompHandle,
- OMX_CommandStateSet,
- OMX_StatePause,
- 0))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- OMX_STATETYPE compState;
- if (OMX_ErrorNone != ipCompHandle->GetState(ipCompHandle,
- &compState))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- PrintOmxState(compState);
- if (OMX_StatePause != compState)
- {
- return StopTest(KErrGeneral, EFail);
- }
- }
-
- CMMFDataBuffer& dataBuffer = *(static_cast<CMMFDataBuffer*>(ipBufferHeaderInput->pInputPortPrivate));
- ipTestFile->ReadNextBuffer(dataBuffer);
-
- if (dataBuffer.BufferSize() > 0)
- {
- // Send a buffer to the input port
- ipBufferHeaderInput->nFilledLen = dataBuffer.BufferSize();
-
- if (OMX_ErrorNone != ipCompHandle->EmptyThisBuffer(
- ipCompHandle, ipBufferHeaderInput))
- {
- StopTest(KErrGeneral, EFail);
- }
- }
- else
- {
- TCallBack callback03 (RAsyncTestStepOmxILPcmRenderer0005Step03, this);
- delete ipKickoff03;
- ipKickoff03 = NULL;
- ipKickoff03 =
- new (ELeave) CAsyncCallBack (callback03, CActive::EPriorityLow);
- ipKickoff03->Call();
- }
- }
-
-//
-// RAsyncTestStepOmxILPcmRenderer0010
-//
-RAsyncTestStepOmxILPcmRenderer0010::RAsyncTestStepOmxILPcmRenderer0010(const TDesC& aTestName, TInt aComponentUid)
- :
- RAsyncTestStepOmxILPcmRenderer0008(aTestName, aComponentUid)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0010::RAsyncTestStepOmxILPcmRenderer0010"));
- iSamplingRate = 44100;
- }
-
-
-void
-RAsyncTestStepOmxILPcmRenderer0010::KickoffTestL()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0010::KickoffTestL"));
- iTestState = EStateLoadKickoffTestLComplete;
-
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : Test10 "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 1.- Loaded->Idle(AllocateBuffer-population) "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2.- Idle->Executing "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2.- Repeat these two steps until the whole file has beeen empited "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2a. - Call EmptyThisBuffer on PCM Renderer "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2b. - EmptyBufferDone callback received "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 3.- Executing->Idle and Idle->Executing (after 5 and again after 10 buffers played) "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 4.- Executing->Idle(BufferFlushing) "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 5.- Idle->Loaded(Depopulation) "));
-
- // This will change the test file
- iTestFileName.Set(KPcmRendererTestFile2);
-
- // This will install one callback
- RAsyncTestStepOmxILComponentBase::KickoffTestL();
-
- TCallBack callback01 (RAsyncTestStepOmxILPcmRenderer0005Step01, this);
- delete ipKickoff01;
- ipKickoff01 = NULL;
- ipKickoff01 =
- new (ELeave) CAsyncCallBack (callback01, CActive::EPriorityLow);
- ipKickoff01->Call();
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0010::DoEventHandlerL(OMX_HANDLETYPE /*aComponent*/,
- OMX_EVENTTYPE aEvent,
- TUint aData1,
- TUint aData2,
- TAny* /*aExtra*/)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0010::DoEventHandlerL"));
-
- switch (aEvent)
- {
- case OMX_EventError:
- {
- // Ignore underflow errors...
- if (OMX_ErrorUnderflow == (OMX_S32)aData1)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: [OMX_ErrorUnderflow]"));
- }
- else
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX_EventError [%x]"), aData1);
- return StopTest(KErrGeneral, EFail);
- }
- }
- break;
-
- case OMX_EventCmdComplete:
- {
- switch(aData1)
- {
- case OMX_CommandStateSet:
- {
- switch(aData2)
- {
- case OMX_StateLoaded:
- {
- if (EStateTransitionToIdleComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateLoaded [EStateTransitionToIdleComplete]"));
- iTestState = EStateTransitionToLoadedComplete;
- OMX_STATETYPE compState;
- if (OMX_ErrorNone != ipCompHandle->GetState(ipCompHandle,
- &compState))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- PrintOmxState(compState);
-
- if (OMX_StateLoaded != compState)
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- // The successful termination...
- TCallBack callbackStop (RAsyncTestStepOmxILComponentBase::StopTestCallBack, this);
- delete ipKickoffStop;
- ipKickoffStop = NULL;
- ipKickoffStop =
- new (ELeave) CAsyncCallBack (callbackStop, CActive::EPriorityLow);
- ipKickoffStop->Call();
- }
- }
- break;
- case OMX_StateIdle:
- {
- if (EStateLoadKickoffTestLComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateIdle [EStateLoadKickoffTestLComplete]"));
- iTestState = EStateTransitionToIdleComplete;
- TCallBack callback02 (RAsyncTestStepOmxILPcmRenderer0005Step02, this);
- delete ipKickoff02;
- ipKickoff02 = NULL;
- ipKickoff02 =
- new (ELeave) CAsyncCallBack (callback02, CActive::EPriorityLow);
- ipKickoff02->Call();
-
- }
- else if (EStateTransitionToExecutingComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateIdle [EStateTransitionToExecutingComplete]"));
- iTestState = EStateTransitionToIdleComplete;
-
- if(iNumOfEmptiedBuffers <= 20)
- {
- // Wait for a second...
- User::After(1000000);
-
- // Resume playing...
- TCallBack callback02 (RAsyncTestStepOmxILPcmRenderer0005Step02, this);
- delete ipKickoff02;
- ipKickoff02 = NULL;
- ipKickoff02 =
- new (ELeave) CAsyncCallBack (callback02, CActive::EPriorityLow);
- ipKickoff02->Call();
- }
- else
- {
- // Playback finished
- TCallBack callback04 (RAsyncTestStepOmxILPcmRenderer0005Step04, this);
- delete ipKickoff04;
- ipKickoff04 = NULL;
- ipKickoff04 =
- new (ELeave) CAsyncCallBack (callback04, CActive::EPriorityLow);
- ipKickoff04->Call();
- }
- }
- else
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateIdle [Other]"));
- return StopTest(KErrGeneral, EFail);
- }
- }
- break;
- case OMX_StateExecuting:
- {
- if (EStateTransitionToIdleComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateExecuting [EStateTransitionToIdleComplete]"));
- iTestState = EStateTransitionToExecutingComplete;
-
- CMMFDataBuffer& dataBuffer = *(static_cast<CMMFDataBuffer*>(ipBufferHeaderInput->pInputPortPrivate));
- ipTestFile->ReadNextBuffer(dataBuffer);
-
- // Send a buffer to the input port
- ipBufferHeaderInput->nFilledLen = dataBuffer.BufferSize();
-
- if (OMX_ErrorNone != ipCompHandle->EmptyThisBuffer(
- ipCompHandle, ipBufferHeaderInput))
- {
- StopTest(KErrGeneral, EFail);
- }
- }
- else if (EStateTransitionToPauseComplete == iTestState)
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateExecuting [EStateTransitionToIdleComplete]"));
- iTestState = EStateTransitionToExecutingComplete;
- }
- else
- {
- INFO_PRINTF1(_L("DoEventHandlerL: OMX_StateExecuting [Other]"));
- return StopTest(KErrGeneral, EFail);
- }
- }
- break;
- default:
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX_State [%d]"), aData2);
- return StopTest(KErrGeneral, EFail);
- }
- };
- }
- break;
- default:
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX_Command [%d]"), aData1);
- return StopTest(KErrGeneral, EFail);
- }
- };
- }
- break;
- default:
- {
- INFO_PRINTF2(_L("DoEventHandlerL: OMX Event [%d]"), aEvent);
- return StopTest(KErrGeneral, EFail);
- }
- };
-
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0010::DoEmptyBufferDoneL(OMX_HANDLETYPE /*aComponent*/,
- OMX_BUFFERHEADERTYPE* /*aBuffer*/)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0010::DoEmptyBufferDoneL"));
- INFO_PRINTF1(_L("DoEmptyBufferDoneL : Callback received "));
-
- iNumOfEmptiedBuffers++;
- if (iNumOfEmptiedBuffers == 5 || iNumOfEmptiedBuffers == 10)
- {
- //
- // Move component to OMX_StateIdle
- //
-
- if (OMX_ErrorNone != ipCompHandle->SendCommand(
- ipCompHandle,
- OMX_CommandStateSet,
- OMX_StateIdle,
- 0))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- OMX_STATETYPE compState;
- if (OMX_ErrorNone != ipCompHandle->GetState(ipCompHandle,
- &compState))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- PrintOmxState(compState);
-
- if (OMX_StateIdle != compState)
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- // Reset the file position
- ipTestFile->ResetPos();
- }
- else
- {
- CMMFDataBuffer& dataBuffer = *(static_cast<CMMFDataBuffer*>(ipBufferHeaderInput->pInputPortPrivate));
- ipTestFile->ReadNextBuffer(dataBuffer);
-
- if (dataBuffer.BufferSize() > 0)
- {
- // Send a buffer to the input port
- ipBufferHeaderInput->nFilledLen = dataBuffer.BufferSize();
-
- if (OMX_ErrorNone != ipCompHandle->EmptyThisBuffer(
- ipCompHandle, ipBufferHeaderInput))
- {
- StopTest(KErrGeneral, EFail);
- }
- }
- else
- {
- TCallBack callback03 (RAsyncTestStepOmxILPcmRenderer0005Step03, this);
- delete ipKickoff03;
- ipKickoff03 = NULL;
- ipKickoff03 =
- new (ELeave) CAsyncCallBack (callback03, CActive::EPriorityLow);
- ipKickoff03->Call();
- }
- }
- }
-
-TInt
-RAsyncTestStepOmxILPcmRenderer0010::RAsyncTestStepOmxILPcmRenderer0010Step01(TAny* aPtr)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0010::RAsyncTestStepOmxILPcmRenderer0010Step01"));
- RAsyncTestStepOmxILPcmRenderer0010* self =
- static_cast<RAsyncTestStepOmxILPcmRenderer0010*> (aPtr);
- self->DoRAsyncTestStepOmxILPcmRenderer0010Step01();
- return KErrNone;
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0010::DoRAsyncTestStepOmxILPcmRenderer0010Step01()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0010::DoRAsyncTestStepOmxILPcmRenderer0010Step01"));
-
- //
- // Provide callbacks to component
- //
- OMX_CALLBACKTYPE* omxCallbacks = *ipCallbackHandler;
-
- if (OMX_ErrorNone != ipCompHandle->SetCallbacks(
- ipCompHandle,
- omxCallbacks,
- ipCallbackHandler))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- INFO_PRINTF2(_L("Component Callbacks set successfully: %X"), ipCallbackHandler);
-
- //
- // Obtain the port def params for Port #0
- //
- OMX_PARAM_PORTDEFINITIONTYPE portParamsInputPort;
- portParamsInputPort.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
- portParamsInputPort.nVersion = TOmxILSpecVersion();
- portParamsInputPort.nPortIndex = 0;
- if (OMX_ErrorNone != ipCompHandle->GetParameter(
- ipCompHandle,
- OMX_IndexParamPortDefinition,
- &portParamsInputPort))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- //
- // Change the sampling rate on PCM Renderer's port #0
- //
- OMX_AUDIO_PARAM_PCMMODETYPE pcmMode;
- pcmMode.nSize = sizeof(OMX_AUDIO_PARAM_PCMMODETYPE);
- pcmMode.nVersion = TOmxILSpecVersion();
- pcmMode.nPortIndex = 0;
- if (OMX_ErrorNone != ipCompHandle->GetParameter(
- ipCompHandle,
- OMX_IndexParamAudioPcm,
- &pcmMode))
- {
- return StopTest(KErrGeneral, EFail);
- }
- pcmMode.nSamplingRate = 44100;
- if (OMX_ErrorNone != ipCompHandle->SetParameter(
- ipCompHandle,
- OMX_IndexParamAudioPcm,
- &pcmMode))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- //
- // Move component to OMX_StateIdle
- //
-
- if (OMX_ErrorNone != ipCompHandle->SendCommand(
- ipCompHandle,
- OMX_CommandStateSet,
- OMX_StateIdle,
- 0))
- {
- return StopTest(KErrGeneral, EFail);
- }
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : Moving component to OMX_StateIdle"));
-
- OMX_STATETYPE compState;
- if (OMX_ErrorNone != ipCompHandle->GetState(ipCompHandle,
- &compState))
- {
- return StopTest(KErrGeneral, EFail);
- }
-
- PrintOmxState(compState);
-
- if (OMX_StateLoaded != compState)
- {
- return StopTest(KErrGeneral, EFail);
- }
-
-
- //
- // Allocate buffer on input port
- //
- if (OMX_ErrorNone != ipCompHandle->AllocateBuffer(
- ipCompHandle,
- &ipBufferHeaderInput,
- 0, // input port
- 0,
- portParamsInputPort.nBufferSize))
- {
- return StopTest(KErrGeneral, EFail);
- }
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : Populated buffer (AllocateBuffer) in INPUT port"));
- }
-
-
-//
-// RAsyncTestStepOmxILPcmRenderer0030
-//
-RAsyncTestStepOmxILPcmRenderer0030::RAsyncTestStepOmxILPcmRenderer0030(const TDesC& aTestName, TInt aComponentUid)
- :
- RAsyncTestStepOmxILPcmRenderer0008(aTestName, aComponentUid)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0030::RAsyncTestStepOmxILPcmRenderer0030"));
- }
-
-
-void
-RAsyncTestStepOmxILPcmRenderer0030::KickoffTestL()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0030::KickoffTestL"));
- iTestState = EStateLoadKickoffTestLComplete;
-
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : Test30 "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 1.- Loaded->Idle(AllocateBuffer-population) "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2.- Idle->Executing "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2.- Repeat these two steps until the whole file has beeen empited "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2a. - Call EmptyThisBuffer on PCM Renderer "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2b. - EmptyBufferDone callback received "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2c. - Get Bytes Played parameter and compare with the bytes readed from file "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 3.- Executing->Idle(BufferFlushing) "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 4.- Idle->Loaded(Depopulation) "));
-
- // This will change the test file
- iTestFileName.Set(KPcmRendererTestFile);
-
- // This will install one callback
- RAsyncTestStepOmxILComponentBase::KickoffTestL();
-
- TCallBack callback01 (RAsyncTestStepOmxILPcmRenderer0005Step01, this);
- delete ipKickoff01;
- ipKickoff01 = NULL;
- ipKickoff01 =
- new (ELeave) CAsyncCallBack (callback01, CActive::EPriorityLow);
- ipKickoff01->Call();
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0030::DoEmptyBufferDoneL(OMX_HANDLETYPE /*aComponent*/,
- OMX_BUFFERHEADERTYPE* aBuffer)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0030::DoEmptyBufferDoneL"));
- INFO_PRINTF1(_L("DoEmptyBufferDoneL : Callback received "));
-
- // Check that GetConfig is returning the correct amount of bytes played
- OMX_SYMBIAN_AUDIO_CONFIG_PCM_BYTESPLAYED bytesPlayedStruct;
- bytesPlayedStruct.nSize = sizeof(OMX_SYMBIAN_AUDIO_CONFIG_PCM_BYTESPLAYED);
- bytesPlayedStruct.nVersion = TOmxILSpecVersion();
- if (OMX_ErrorNone != ipCompHandle->GetConfig(ipCompHandle,
- static_cast<OMX_INDEXTYPE>(OMX_SymbianIndexConfigAudioBytesPlayed),
- &bytesPlayedStruct))
- {
- StopTest(KErrGeneral, EFail);
- }
- //check the number of bytes played by the device corresponds
- //to the number of bytes readed from file
- //allow an extra margin of one buffer.
- TUint maxAllowedBytesPlayed =ipTestFile->GetPos();
- if ((bytesPlayedStruct.nBytesPlayed < 0)||(bytesPlayedStruct.nBytesPlayed > maxAllowedBytesPlayed))
- {
- StopTest(KErrGeneral, EFail);
- }
-
- CMMFDataBuffer& dataBuffer = *(static_cast<CMMFDataBuffer*>(ipBufferHeaderInput->pInputPortPrivate));
- ipTestFile->ReadNextBuffer(dataBuffer);
-
- if (dataBuffer.BufferSize() > 0)
- {
- // Send a buffer to the input port
- ipBufferHeaderInput->nFilledLen = dataBuffer.BufferSize();
-
- if (OMX_ErrorNone != ipCompHandle->EmptyThisBuffer(
- ipCompHandle, ipBufferHeaderInput))
- {
- StopTest(KErrGeneral, EFail);
- }
- }
- else
- {
- TCallBack callback03 (RAsyncTestStepOmxILPcmRenderer0005Step03, this);
- delete ipKickoff03;
- ipKickoff03 = NULL;
- ipKickoff03 =
- new (ELeave) CAsyncCallBack (callback03, CActive::EPriorityLow);
- ipKickoff03->Call();
- }
- }
-
-//
-// RAsyncTestStepOmxILPcmRenderer0031
-//
-RAsyncTestStepOmxILPcmRenderer0031::RAsyncTestStepOmxILPcmRenderer0031(const TDesC& aTestName, TInt aComponentUid)
- :
- RAsyncTestStepOmxILPcmRenderer0008(aTestName, aComponentUid)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0031::RAsyncTestStepOmxILPcmRenderer0031"));
- iSamplingRate = 44100;
- }
-
-
-void
-RAsyncTestStepOmxILPcmRenderer0031::KickoffTestL()
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0031::KickoffTestL"));
- iTestState = EStateLoadKickoffTestLComplete;
-
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : Test31 "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 1.- Loaded->Idle(AllocateBuffer-population) "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2.- Idle->Executing "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2.- Repeat these two steps until the whole file has beeen empited "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2a. - Call EmptyThisBuffer on PCM Renderer "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 2b. - EmptyBufferDone callback received "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 3.- Set Volume Ramp to 2s (after 5 buffers played) "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 4.- Executing->Idle(BufferFlushing) "));
- INFO_PRINTF1(_L("UNIT TEST OMX IL PCM RENDERER : 5.- Idle->Loaded(Depopulation) "));
-
- // This will change the test file
- iTestFileName.Set(KPcmRendererTestFile2);
-
- // This will install one callback
- RAsyncTestStepOmxILComponentBase::KickoffTestL();
-
- TCallBack callback01 (RAsyncTestStepOmxILPcmRenderer0005Step01, this);
- delete ipKickoff01;
- ipKickoff01 = NULL;
- ipKickoff01 =
- new (ELeave) CAsyncCallBack (callback01, CActive::EPriorityLow);
- ipKickoff01->Call();
- }
-
-void
-RAsyncTestStepOmxILPcmRenderer0031::DoEmptyBufferDoneL(OMX_HANDLETYPE /*aComponent*/,
- OMX_BUFFERHEADERTYPE* /*aBuffer*/)
- {
- DEBUG_PRINTF(_L8("RAsyncTestStepOmxILPcmRenderer0031::DoEmptyBufferDoneL"));
- INFO_PRINTF1(_L("DoEmptyBufferDoneL : Callback received "));
-
- iNumOfEmptiedBuffers++;
- if (iNumOfEmptiedBuffers == 5)
- {
- OMX_SYMBIAN_AUDIO_CONFIG_PCM_VOLUMERAMP volumeRampStruct;
- volumeRampStruct.nSize = sizeof(OMX_SYMBIAN_AUDIO_CONFIG_PCM_VOLUMERAMP);
- volumeRampStruct.nVersion = TOmxILSpecVersion();
- volumeRampStruct.nPortIndex = 0;
- if (OMX_ErrorNone != ipCompHandle->GetConfig(ipCompHandle,
- static_cast<OMX_INDEXTYPE>(OMX_SymbianIndexConfigAudioPcmVolumeRamp),
- &volumeRampStruct))
- {
- StopTest(KErrGeneral, EFail);
- }
- volumeRampStruct.nRampDuration = 2000000; // 2 second
- if (OMX_ErrorNone != ipCompHandle->SetConfig(ipCompHandle,
- static_cast<OMX_INDEXTYPE>(OMX_SymbianIndexConfigAudioPcmVolumeRamp),
- &volumeRampStruct))
- {
- StopTest(KErrGeneral, EFail);
- }
- INFO_PRINTF1(_L("Volume ramp set"));
- }
-
- CMMFDataBuffer& dataBuffer = *(static_cast<CMMFDataBuffer*>(ipBufferHeaderInput->pInputPortPrivate));
- ipTestFile->ReadNextBuffer(dataBuffer);
-
- if (dataBuffer.BufferSize() > 0)
- {
- // Send a buffer to the input port
- ipBufferHeaderInput->nFilledLen = dataBuffer.BufferSize();
-
- if (OMX_ErrorNone != ipCompHandle->EmptyThisBuffer(
- ipCompHandle, ipBufferHeaderInput))
- {
- StopTest(KErrGeneral, EFail);
- }
- }
- else
- {
- TCallBack callback03 (RAsyncTestStepOmxILPcmRenderer0005Step03, this);
- delete ipKickoff03;
- ipKickoff03 = NULL;
- ipKickoff03 =
- new (ELeave) CAsyncCallBack (callback03, CActive::EPriorityLow);
- ipKickoff03->Call();
- }
- }
--- a/omxil/omxilunittest/components/src/tsu_omxil_pcmrenderer_step.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,703 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @internalComponent
-*/
-
-#ifndef TSU_OMXIL_PCMRENDERER_STEP_H
-#define TSU_OMXIL_PCMRENDERER_STEP_H
-
-#include "tsu_omxil_component_base.h"
-
-
-// Forward declarations
-class CMMFDescriptorBuffer;
-
-//
-// RAsyncTestStepOmxILPcmRenderer0020
-//
-// Test20 Description
-// -# Init Component
-// -# Obtain the component's state (GetState)
-// -# Obtain the component's version (GetComponentVersion)
-// -# Provide callbacks to component (SetCallbacks)
-// -# Obtain component's role #1 (ComponentRoleEnum)
-// -# Obtain component's role #2 (ComponentRoleEnum fails with OMX_ErrorNoMore)
-//
-class RAsyncTestStepOmxILPcmRenderer0020 : public RAsyncTestStepOmxILComponentBase
- {
-
-public:
-
- RAsyncTestStepOmxILPcmRenderer0020(const TDesC& aTestName, TInt aComponentUid);
-
- // From RAsyncTestStep
- void KickoffTestL();
- void CloseTest();
-
-
- //
- void DoEventHandlerL(OMX_HANDLETYPE aComponent,
- OMX_EVENTTYPE aEvent,
- TUint aData1,
- TUint aData2,
- TAny* aExtra);
-
-
-protected:
-
- // Call backs
- static TInt RAsyncTestStepOmxILPcmRenderer0020Step01(TAny* aPtr);
- void DoRAsyncTestStepOmxILPcmRenderer0020Step01();
-
-protected:
-
- CAsyncCallBack* ipKickoff01;
- CAsyncCallBack* ipKickoff02;
- CAsyncCallBack* ipKickoff03;
- CAsyncCallBack* ipKickoff04;
- CAsyncCallBack* ipKickoff05;
- CAsyncCallBack* ipKickoff06;
-
- };
-
-// Test21 Description
-// -# Init Component
-// -# Provide callbacks to component (SetCallbacks)
-// -# Obtain the component's state (GetState)
-// -# Obtain component's role #1 with null string (ComponentRoleEnum fails with OMX_ErrorBadParameter)
-// -# Obtain component's role #1 (ComponentRoleEnum successfully returns audio_decoder.aac)
-// -# Obtain component's role #2 (ComponentRoleEnum fails with OMX_ErrorNoMore)
-//
-class RAsyncTestStepOmxILPcmRenderer0021 : public RAsyncTestStepOmxILComponentBase
- {
-
-public:
-
- RAsyncTestStepOmxILPcmRenderer0021(const TDesC& aTestName, TInt aComponentUid);
-
- // From RAsyncTestStep
- void KickoffTestL();
- void CloseTest();
-
-
- //
- void DoEventHandlerL(OMX_HANDLETYPE aComponent,
- OMX_EVENTTYPE aEvent,
- TUint aData1,
- TUint aData2,
- TAny* aExtra);
-
-
-protected:
-
- // Call backs
- static TInt RAsyncTestStepOmxILPcmRenderer0021Step01(TAny* aPtr);
- void DoRAsyncTestStepOmxILPcmRenderer0021Step01();
-
-protected:
-
- CAsyncCallBack* ipKickoff01;
- CAsyncCallBack* ipKickoff02;
- CAsyncCallBack* ipKickoff03;
- CAsyncCallBack* ipKickoff04;
- CAsyncCallBack* ipKickoff05;
- CAsyncCallBack* ipKickoff06;
-
- };
-
-// Test22 Description
-// -# Init Component
-// -# Provide callbacks to component (SetCallbacks)
-// -# Obtain the component's state (GetState)
-// -# Get component's current role (GetParameter(OMX_IndexParamStandardComponentRole) )
-// -# Set unsupported audio_decoder.mp3 role (SetParameter(OMX_IndexParamStandardComponentRole) )
-// -# SetParameter returns OMX_ErrorBadParameter (audio_decoder.mp3 role not supported)
-//
-class RAsyncTestStepOmxILPcmRenderer0022 : public RAsyncTestStepOmxILComponentBase
- {
-
-public:
-
- RAsyncTestStepOmxILPcmRenderer0022(const TDesC& aTestName, TInt aComponentUid);
-
- // From RAsyncTestStep
- void KickoffTestL();
- void CloseTest();
-
-
- //
- void DoEventHandlerL(OMX_HANDLETYPE aComponent,
- OMX_EVENTTYPE aEvent,
- TUint aData1,
- TUint aData2,
- TAny* aExtra);
-
-
-protected:
-
- // Call backs
- static TInt RAsyncTestStepOmxILPcmRenderer0022Step01(TAny* aPtr);
- void DoRAsyncTestStepOmxILPcmRenderer0022Step01();
-
-protected:
-
- CAsyncCallBack* ipKickoff01;
- CAsyncCallBack* ipKickoff02;
- CAsyncCallBack* ipKickoff03;
- CAsyncCallBack* ipKickoff04;
- CAsyncCallBack* ipKickoff05;
- CAsyncCallBack* ipKickoff06;
-
- };
-
-
-
-//
-// RAsyncTestStepOmxILPcmRenderer0001
-//
-// Test01
-// -# Init Component
-// -# Loaded->Idle(AllocateBuffer-population)
-// -# Idle->Loaded(depopulation)
-//
-class RAsyncTestStepOmxILPcmRenderer0001 : public RAsyncTestStepOmxILComponentBase
- {
-
-public:
-
- RAsyncTestStepOmxILPcmRenderer0001(const TDesC& aTestName, TInt aComponentUid);
-
- // From RAsyncTestStep
- void KickoffTestL();
- void CloseTest();
-
-
- //
- void DoEventHandlerL(OMX_HANDLETYPE aComponent,
- OMX_EVENTTYPE aEvent,
- TUint aData1,
- TUint aData2,
- TAny* aExtra);
-
-
-protected:
-
- // Call backs
- static TInt RAsyncTestStepOmxILPcmRenderer0001Step01(TAny* aPtr);
- void DoRAsyncTestStepOmxILPcmRenderer0001Step01();
-
- static TInt RAsyncTestStepOmxILPcmRenderer0001Step02(TAny* aPtr);
- void DoRAsyncTestStepOmxILPcmRenderer0001Step02();
-
-protected:
-
-
- // Set of states for simple state machine
- enum TTestState
- {
- EStateDefault,
- EStateLoadKickoffTestLComplete,
- EStateTransitionToLoadedComplete,
- EStateTransitionToIdleComplete,
- EStateTransitionToWaiForResourcesComplete,
- EStateTransitionToPauseComplete,
- EStateTransitionToExecutingComplete,
- };
-
- OMX_BUFFERHEADERTYPE* ipBufferHeaderInput;
- OMX_BUFFERHEADERTYPE* ipBufferHeaderOutput;
- RArray<OMX_BUFFERHEADERTYPE*> ipClientClockPortBufferArray;
-
- TBool iTerminateNow;
- TInt iSamplingRate;
-
- TTestState iTestState;
-
- CAsyncCallBack* ipKickoff01;
- CAsyncCallBack* ipKickoff02;
- CAsyncCallBack* ipKickoff03;
- CAsyncCallBack* ipKickoff04;
- CAsyncCallBack* ipKickoff05;
- CAsyncCallBack* ipKickoff06;
-
- };
-
-//
-// RAsyncTestStepOmxILPcmRenderer0002
-//
-// Test02
-// -# Init Component
-// -# Loaded->Idle(UseBuffer-population)
-// -# Idle->Loaded(depopulation)
-//
-class RAsyncTestStepOmxILPcmRenderer0002 : public RAsyncTestStepOmxILPcmRenderer0001
- {
-
-public:
-
- RAsyncTestStepOmxILPcmRenderer0002(const TDesC& aTestName, TInt aComponentUid);
-
- // From RAsyncTestStep
- void KickoffTestL();
- void CloseTest();
-
-
- //
- void DoEventHandlerL(OMX_HANDLETYPE aComponent,
- OMX_EVENTTYPE aEvent,
- TUint aData1,
- TUint aData2,
- TAny* aExtra);
-
-
-protected:
-
- // Call backs
- static TInt RAsyncTestStepOmxILPcmRenderer0002Step01(TAny* aPtr);
- void DoRAsyncTestStepOmxILPcmRenderer0002Step01();
-
- static TInt RAsyncTestStepOmxILPcmRenderer0002Step02(TAny* aPtr);
- // void DoRAsyncTestStepOmxILPcmRenderer0002Step02();
-
-
-protected:
-
- CMMFDescriptorBuffer* ipInputBuffer;
- CMMFDescriptorBuffer* ipOutputBuffer;
- RArray<CMMFDescriptorBuffer*> iClockPortBufferPtrArray;
- };
-
-//
-// RAsyncTestStepOmxILPcmRenderer0003
-//
-// Test03
-// -# Init Component
-// -# Loaded->WaitForResources
-// -# WaitForResources->Loaded
-//
-class RAsyncTestStepOmxILPcmRenderer0003 : public RAsyncTestStepOmxILComponentBase
- {
-
-public:
-
- RAsyncTestStepOmxILPcmRenderer0003(const TDesC& aTestName, TInt aComponentUid);
-
- // From RAsyncTestStep
- void KickoffTestL();
- void CloseTest();
-
-
- //
- void DoEventHandlerL(OMX_HANDLETYPE aComponent,
- OMX_EVENTTYPE aEvent,
- TUint aData1,
- TUint aData2,
- TAny* aExtra);
-
-
-protected:
-
- // Call backs
- static TInt RAsyncTestStepOmxILPcmRenderer0003Step01(TAny* aPtr);
- void DoRAsyncTestStepOmxILPcmRenderer0003Step01();
-
- static TInt RAsyncTestStepOmxILPcmRenderer0003Step02(TAny* aPtr);
- void DoRAsyncTestStepOmxILPcmRenderer0003Step02();
-
-
-protected:
-
- TBool iTerminateNow;
-
- CAsyncCallBack* ipKickoff01;
- CAsyncCallBack* ipKickoff02;
- CAsyncCallBack* ipKickoff03;
- CAsyncCallBack* ipKickoff04;
- CAsyncCallBack* ipKickoff05;
- CAsyncCallBack* ipKickoff06;
-
-
- };
-
-//
-// RAsyncTestStepOmxILPcmRenderer0004
-//
-// Test04
-// -# Init Component
-// -# Loaded->Idle(AllocateBuffer-population)
-// -# Idle->Pause
-// -# Pause->Idle
-// -# Idle->Loaded(depopulation)
-//
-class RAsyncTestStepOmxILPcmRenderer0004 : public RAsyncTestStepOmxILPcmRenderer0001
- {
-
-public:
-
- RAsyncTestStepOmxILPcmRenderer0004(const TDesC& aTestName, TInt aComponentUid);
-
- // From RAsyncTestStep
- void KickoffTestL();
- void CloseTest();
-
-
- //
- void DoEventHandlerL(OMX_HANDLETYPE aComponent,
- OMX_EVENTTYPE aEvent,
- TUint aData1,
- TUint aData2,
- TAny* aExtra);
-
-
-protected:
-
- // Call backs
- static TInt RAsyncTestStepOmxILPcmRenderer0004Step01(TAny* aPtr);
- // void DoRAsyncTestStepOmxILPcmRenderer0004Step01();
-
- static TInt RAsyncTestStepOmxILPcmRenderer0004Step02(TAny* aPtr);
- void DoRAsyncTestStepOmxILPcmRenderer0004Step02();
-
- static TInt RAsyncTestStepOmxILPcmRenderer0004Step03(TAny* aPtr);
- void DoRAsyncTestStepOmxILPcmRenderer0004Step03();
-
- static TInt RAsyncTestStepOmxILPcmRenderer0004Step04(TAny* aPtr);
- // void DoRAsyncTestStepOmxILPcmRenderer0004Step04();
-
- };
-
-//
-// RAsyncTestStepOmxILPcmRenderer0005
-//
-// Test05
-// -# Init Component
-// -# Loaded->Idle(AllocateBuffer-population)
-// -# Idle->Executing
-// -# Call EmptyThisBuffer on PCM Renderer
-// -# EmptyBufferDone callbacks received
-// -# Executing->Idle(BufferFlushing)
-// -# Idle->Loaded(Depopulation)
-//
-class RAsyncTestStepOmxILPcmRenderer0005 : public RAsyncTestStepOmxILPcmRenderer0004
- {
-
-public:
-
- RAsyncTestStepOmxILPcmRenderer0005(const TDesC& aTestName, TInt aComponentUid);
-
- // From RAsyncTestStep
- void KickoffTestL();
- void CloseTest();
-
-
- //
- void DoEventHandlerL(OMX_HANDLETYPE aComponent,
- OMX_EVENTTYPE aEvent,
- TUint aData1,
- TUint aData2,
- TAny* aExtra);
-
- void DoEmptyBufferDoneL(OMX_HANDLETYPE aComponent,
- OMX_BUFFERHEADERTYPE* aBuffer);
-
-protected:
-
- // Call backs
- static TInt RAsyncTestStepOmxILPcmRenderer0005Step01(TAny* aPtr);
- // void DoRAsyncTestStepOmxILPcmRenderer0005Step01();
-
- static TInt RAsyncTestStepOmxILPcmRenderer0005Step02(TAny* aPtr);
- void DoRAsyncTestStepOmxILPcmRenderer0005Step02();
-
- static TInt RAsyncTestStepOmxILPcmRenderer0005Step03(TAny* aPtr);
- // void DoRAsyncTestStepOmxILPcmRenderer0005Step03();
-
- static TInt RAsyncTestStepOmxILPcmRenderer0005Step04(TAny* aPtr);
- // void DoRAsyncTestStepOmxILPcmRenderer0005Step04();
- };
-
-//
-// RAsyncTestStepOmxILPcmRenderer0006
-//
-// Test06
-// -# Init Component
-// -# Loaded->Idle(AllocateBuffer-population)
-// -# Idle->Executing
-// -# Executing->Pause
-// -# Pause->Executing
-// -# Executing->Idle(BufferFlushing)
-// -# Idle->Loaded(depopulation)
-//
-class RAsyncTestStepOmxILPcmRenderer0006 : public RAsyncTestStepOmxILPcmRenderer0005
- {
-
-public:
-
- RAsyncTestStepOmxILPcmRenderer0006(const TDesC& aTestName, TInt aComponentUid);
-
- // From RAsyncTestStep
- void KickoffTestL();
- void CloseTest();
-
-
- //
- void DoEventHandlerL(OMX_HANDLETYPE aComponent,
- OMX_EVENTTYPE aEvent,
- TUint aData1,
- TUint aData2,
- TAny* aExtra);
-
-
-protected:
-
- // Call backs
- static TInt RAsyncTestStepOmxILPcmRenderer0006Step01(TAny* aPtr);
- // void DoRAsyncTestStepOmxILPcmRenderer0006Step01();
-
- static TInt RAsyncTestStepOmxILPcmRenderer0006Step02(TAny* aPtr);
- // void DoRAsyncTestStepOmxILPcmRenderer0006Step02();
-
- static TInt RAsyncTestStepOmxILPcmRenderer0006Step03(TAny* aPtr);
- void DoRAsyncTestStepOmxILPcmRenderer0006Step03();
-
- static TInt RAsyncTestStepOmxILPcmRenderer0006Step04(TAny* aPtr);
- // void DoRAsyncTestStepOmxILPcmRenderer0006Step04();
-
- static TInt RAsyncTestStepOmxILPcmRenderer0006Step05(TAny* aPtr);
- // void DoRAsyncTestStepOmxILPcmRenderer0006Step05();
-
- static TInt RAsyncTestStepOmxILPcmRenderer0006Step06(TAny* aPtr);
- // void DoRAsyncTestStepOmxILPcmRenderer0006Step06();
-
- };
-
-//
-// RAsyncTestStepOmxILPcmRenderer0007
-//
-// Test07
-// -# Init Component
-// -# Loaded->Idle(AllocateBuffer-population)
-// -# Idle->Executing
-// -# Executing->Pause
-// -# Pause->Idle(BufferFlushing)
-// -# Idle->Loaded(depopulation)
-//
-class RAsyncTestStepOmxILPcmRenderer0007 : public RAsyncTestStepOmxILPcmRenderer0006
- {
-
-public:
-
- RAsyncTestStepOmxILPcmRenderer0007(const TDesC& aTestName, TInt aComponentUid);
-
- // From RAsyncTestStep
- void KickoffTestL();
- void CloseTest();
-
-
- //
- void DoEventHandlerL(OMX_HANDLETYPE aComponent,
- OMX_EVENTTYPE aEvent,
- TUint aData1,
- TUint aData2,
- TAny* aExtra);
-
-
-protected:
-
- // Call backs
- static TInt RAsyncTestStepOmxILPcmRenderer0007Step01(TAny* aPtr);
- // void DoRAsyncTestStepOmxILPcmRenderer0007Step01();
-
- static TInt RAsyncTestStepOmxILPcmRenderer0007Step02(TAny* aPtr);
- // void DoRAsyncTestStepOmxILPcmRenderer0007Step02();
-
- static TInt RAsyncTestStepOmxILPcmRenderer0007Step03(TAny* aPtr);
- // void DoRAsyncTestStepOmxILPcmRenderer0007Step03();
-
- static TInt RAsyncTestStepOmxILPcmRenderer0007Step04(TAny* aPtr);
- // void DoRAsyncTestStepOmxILPcmRenderer0007Step04();
-
- static TInt RAsyncTestStepOmxILPcmRenderer0007Step05(TAny* aPtr);
- // void DoRAsyncTestStepOmxILPcmRenderer0007Step05();
- };
-
-//
-// RAsyncTestStepOmxILPcmRenderer0008
-//
-// Test08
-// -# Init Component
-// -# Loaded->Idle(AllocateBuffer-population)
-// -# Idle->Executing
-// -# Repeat these steps until the whole file has been emptied
-// -# Call EmptyThisBuffer on PCM Renderer
-// -# EmptyBufferDone callbacks received
-// -# Executing->Idle(BufferFlushing)
-// -# Idle->Loaded(Depopulation)
-//
-class RAsyncTestStepOmxILPcmRenderer0008 : public RAsyncTestStepOmxILPcmRenderer0005
- {
-public:
- RAsyncTestStepOmxILPcmRenderer0008(const TDesC& aTestName, TInt aComponentUid);
-
- // From RAsyncTestStep
- void KickoffTestL();
-
- void DoEventHandlerL(OMX_HANDLETYPE aComponent,
- OMX_EVENTTYPE aEvent,
- TUint aData1,
- TUint aData2,
- TAny* aExtra);
-
- void DoEmptyBufferDoneL(OMX_HANDLETYPE aComponent,
- OMX_BUFFERHEADERTYPE* aBuffer);
- };
-
-//
-// RAsyncTestStepOmxILPcmRenderer0009
-//
-// Test09
-// -# Init Component
-// -# Loaded->Idle(AllocateBuffer-population)
-// -# Idle->Executing
-// -# Repeat these steps until the whole file has been emptied
-// -# Call EmptyThisBuffer on PCM Renderer
-// -# EmptyBufferDone callbacks received
-// -# Executing->Pause and Pause->Executing (after 5 and again after 10 buffers played)
-// -# Executing->Idle(BufferFlushing)
-// -# Idle->Loaded(Depopulation)
-//
-class RAsyncTestStepOmxILPcmRenderer0009 : public RAsyncTestStepOmxILPcmRenderer0008
- {
-public:
- RAsyncTestStepOmxILPcmRenderer0009(const TDesC& aTestName, TInt aComponentUid);
-
- // From RAsyncTestStep
- void KickoffTestL();
-
- void DoEventHandlerL(OMX_HANDLETYPE aComponent,
- OMX_EVENTTYPE aEvent,
- TUint aData1,
- TUint aData2,
- TAny* aExtra);
-
- void DoEmptyBufferDoneL(OMX_HANDLETYPE aComponent,
- OMX_BUFFERHEADERTYPE* aBuffer);
-
-private:
- TInt iNumOfEmptiedBuffers;
- };
-
-//
-// RAsyncTestStepOmxILPcmRenderer0010
-//
-// Test09
-// -# Init Component
-// -# Loaded->Idle(AllocateBuffer-population)
-// -# Idle->Executing
-// -# Repeat these steps until the whole file has been emptied
-// -# Call EmptyThisBuffer on PCM Renderer
-// -# EmptyBufferDone callbacks received
-// -# Executing->Idle and Idle->Executing (after 5 and again after 10 buffers played)
-// -# Executing->Idle(BufferFlushing)
-// -# Idle->Loaded(Depopulation)
-//
-class RAsyncTestStepOmxILPcmRenderer0010 : public RAsyncTestStepOmxILPcmRenderer0008
- {
-public:
- RAsyncTestStepOmxILPcmRenderer0010(const TDesC& aTestName, TInt aComponentUid);
-
- // From RAsyncTestStep
- void KickoffTestL();
-
- void DoEventHandlerL(OMX_HANDLETYPE aComponent,
- OMX_EVENTTYPE aEvent,
- TUint aData1,
- TUint aData2,
- TAny* aExtra);
-
- void DoEmptyBufferDoneL(OMX_HANDLETYPE aComponent,
- OMX_BUFFERHEADERTYPE* aBuffer);
-
-protected:
-
- // Call backs
- static TInt RAsyncTestStepOmxILPcmRenderer0010Step01(TAny* aPtr);
- void DoRAsyncTestStepOmxILPcmRenderer0010Step01();
-
-private:
-
-
- TInt iNumOfEmptiedBuffers;
- };
-
-//
-// RAsyncTestStepOmxILPcmRenderer0030
-//
-// Test30
-// -# Init Component
-// -# Loaded->Idle(AllocateBuffer-population)
-// -# Idle->Executing
-// -# Repeat these steps until the whole file has been emptied
-// -# Call EmptyThisBuffer on PCM Renderer
-// -# EmptyBufferDone callbacks received
-// -# Get Bytes Played parameter and compare with the bytes readed from file
-// -# Executing->Idle(BufferFlushing)
-// -# Idle->Loaded(Depopulation)
-//
-class RAsyncTestStepOmxILPcmRenderer0030 : public RAsyncTestStepOmxILPcmRenderer0008
- {
-public:
- RAsyncTestStepOmxILPcmRenderer0030(const TDesC& aTestName, TInt aComponentUid);
-
- // From RAsyncTestStep
- void KickoffTestL();
-
- void DoEmptyBufferDoneL(OMX_HANDLETYPE aComponent,
- OMX_BUFFERHEADERTYPE* aBuffer);
- };
-
-//
-// RAsyncTestStepOmxILPcmRenderer0031
-//
-// Test09
-// -# Init Component
-// -# Loaded->Idle(AllocateBuffer-population)
-// -# Idle->Executing
-// -# Repeat these steps until the whole file has been emptied
-// -# Call EmptyThisBuffer on PCM Renderer
-// -# EmptyBufferDone callbacks received
-// -# Set Volume Ramp to 2s (after 5 buffers played)
-// -# Executing->Idle(BufferFlushing)
-// -# Idle->Loaded(Depopulation)
-//
-class RAsyncTestStepOmxILPcmRenderer0031 : public RAsyncTestStepOmxILPcmRenderer0008
- {
-public:
- RAsyncTestStepOmxILPcmRenderer0031(const TDesC& aTestName, TInt aComponentUid);
-
- // From RAsyncTestStep
- void KickoffTestL();
-
- void DoEmptyBufferDoneL(OMX_HANDLETYPE aComponent,
- OMX_BUFFERHEADERTYPE* aBuffer);
-
-private:
- TInt iNumOfEmptiedBuffers;
- };
-
-#endif // TSU_OMXIL_PCMRENDERER_STEP_H
--- a/omxil/omxilunittest/components/src/tsu_omxil_pcmrenderer_suite.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,170 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @internalComponent
-*/
-
-#include <e32base.h>
-
-#include "log.h"
-#include "tsu_omxil_pcmrenderer_suite.h"
-#include "tsu_omxil_pcmrenderer_step.h"
-#include "omxilpcmrenderer.hrh"
-
-/**
- *
- * NewTestSuiteL
- * NewTestSuite is exported at ordinal 1
- * this provides the interface to allow schedule test
- * to create instances of this test suite
- * @result CTestSuiteOmxILPcmRenderer*
- *
- */
-EXPORT_C CTestSuiteOmxILPcmRenderer* NewTestSuiteL()
- {
- CTestSuiteOmxILPcmRenderer* result = new (ELeave) CTestSuiteOmxILPcmRenderer;
- CleanupStack::PushL(result);
- result->ConstructL();
- CleanupStack::Pop(); // result
- return result;
- }
-
-/**
- *
- * CTestSuiteOmxILPcmRenderer
- *
- */
-CTestSuiteOmxILPcmRenderer::CTestSuiteOmxILPcmRenderer()
- {
- DEBUG_PRINTF(_L8("CTestSuiteOmxILPcmRenderer::CTestSuiteOmxILPcmRenderer"));
-
- }
-
-
-/**
- *
- * ~CTestSuiteOmxILPcmRenderer
- *
- */
-CTestSuiteOmxILPcmRenderer::~CTestSuiteOmxILPcmRenderer()
- {
- DEBUG_PRINTF(_L8("CTestSuiteOmxILPcmRenderer::~CTestSuiteOmxILPcmRenderer"));
- }
-/**
- *
- * GetVersion
- * Get Test Suite version
- * @result TPtrC
- *
- */
-TPtrC CTestSuiteOmxILPcmRenderer::GetVersion( void ) const
- {
- _LIT(KTxtVersion,"1.00");
- return KTxtVersion();
- }
-
-
-
-/**
- *
- * InitialiseL
- * Constructor for test suite
- * this creates all the test steps and
- * stores them inside CTestSuiteOmxILPcmRenderer
- *
- */
-void CTestSuiteOmxILPcmRenderer::InitialiseL(void)
- {
- // store the name of this test suite
- iSuiteName = _L("TSU_OMXIL_PcmRenderer");
-
- AddTestStepL(
- new(ELeave) RAsyncTestStepOmxILPcmRenderer0020(
- _L("MM-OMXIL-OMXILPcmRenderer-U-0020-HP"),
- KUidSymbianOmxILPcmRenderer));
-
- AddTestStepL(
- new(ELeave) RAsyncTestStepOmxILPcmRenderer0021(
- _L("MM-OMXIL-OMXILPcmRenderer-U-0021-HP"),
- KUidSymbianOmxILPcmRenderer));
-
- AddTestStepL(
- new(ELeave) RAsyncTestStepOmxILPcmRenderer0022(
- _L("MM-OMXIL-OMXILPcmRenderer-U-0022-HP"),
- KUidSymbianOmxILPcmRenderer));
-
- AddTestStepL(
- new(ELeave) RAsyncTestStepOmxILPcmRenderer0001(
- _L("MM-OMXIL-OMXILPcmRenderer-U-0001-HP"),
- KUidSymbianOmxILPcmRenderer));
-
- AddTestStepL(
- new(ELeave) RAsyncTestStepOmxILPcmRenderer0002(
- _L("MM-OMXIL-OMXILPcmRenderer-U-0002-HP"),
- KUidSymbianOmxILPcmRenderer));
-
- AddTestStepL(
- new(ELeave) RAsyncTestStepOmxILPcmRenderer0003(
- _L("MM-OMXIL-OMXILPcmRenderer-U-0003-HP"),
- KUidSymbianOmxILPcmRenderer));
-
- AddTestStepL(
- new(ELeave) RAsyncTestStepOmxILPcmRenderer0004(
- _L("MM-OMXIL-OMXILPcmRenderer-U-0004-HP"),
- KUidSymbianOmxILPcmRenderer));
-
- AddTestStepL(
- new(ELeave) RAsyncTestStepOmxILPcmRenderer0005(
- _L("MM-OMXIL-OMXILPcmRenderer-U-0005-HP"),
- KUidSymbianOmxILPcmRenderer));
-
- AddTestStepL(
- new(ELeave) RAsyncTestStepOmxILPcmRenderer0006(
- _L("MM-OMXIL-OMXILPcmRenderer-U-0006-HP"),
- KUidSymbianOmxILPcmRenderer));
-
- AddTestStepL(
- new(ELeave) RAsyncTestStepOmxILPcmRenderer0007(
- _L("MM-OMXIL-OMXILPcmRenderer-U-0007-HP"),
- KUidSymbianOmxILPcmRenderer));
-
- AddTestStepL(
- new(ELeave) RAsyncTestStepOmxILPcmRenderer0008(
- _L("MM-OMXIL-OMXILPcmRenderer-U-0008-HP"),
- KUidSymbianOmxILPcmRenderer));
-
- AddTestStepL(
- new(ELeave) RAsyncTestStepOmxILPcmRenderer0009(
- _L("MM-OMXIL-OMXILPcmRenderer-U-0009-HP"),
- KUidSymbianOmxILPcmRenderer));
-
- AddTestStepL(
- new(ELeave) RAsyncTestStepOmxILPcmRenderer0010(
- _L("MM-OMXIL-OMXILPcmRenderer-U-0010-HP"),
- KUidSymbianOmxILPcmRenderer));
-
- AddTestStepL(
- new(ELeave) RAsyncTestStepOmxILPcmRenderer0030(
- _L("MM-OMXIL-OMXILPcmRenderer-U-0030-HP"),
- KUidSymbianOmxILPcmRenderer));
-
- AddTestStepL(
- new(ELeave) RAsyncTestStepOmxILPcmRenderer0031(
- _L("MM-OMXIL-OMXILPcmRenderer-U-0031-HP"),
- KUidSymbianOmxILPcmRenderer));
-
- }
--- a/omxil/omxilunittest/components/src/tsu_omxil_pcmrenderer_suite.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @internalComponent
-*/
-
-#ifndef TSU_OMXIL_PCMRENDERER_SUITE_H
-#define TSU_OMXIL_PCMRENDERER_SUITE_H
-
-#include <testframework.h>
-
-/**
- *
- * CTestSuiteOmxILPcmRenderer defines the test suite for OMX IL PCM Renderer tests
- *
- *
- *
- */
-class CTestSuiteOmxILPcmRenderer : public CTestSuite
- {
-
-public:
-CTestSuiteOmxILPcmRenderer();
- void InitialiseL(void);
- virtual ~CTestSuiteOmxILPcmRenderer();
- virtual TPtrC GetVersion( void ) const;
- };
-
-#endif // TSU_OMXIL_PCMRENDERER_SUITE_H
--- a/omxil/omxilunittest/components/src/uids.hrh Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef UIDS_HRH
-#define UIDS_HRH
-
-#define KSharedLibraryUidDefine 0x1000008d
-
-// The following UID has changed to fix the defect DEF123946 v9.5
-#define KUidTsuOmxILAacDecoderDll 0x10285E7C
-#define KUidTsuOmxILPcmRendererDll 0x10285C07
-
-#endif // UIDS_HRH
-
--- a/omxil/omxilunittest/contentpipe/bwins/tsu_omxil_dummycontentpipeu.def Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
- ?NewTestSuiteL@@YAPAVCTestSuite_OMXIL_DummyContentPipe@@XZ @ 1 NONAME ; class CTestSuite_OMXIL_DummyContentPipe * NewTestSuiteL(void)
-
--- a/omxil/omxilunittest/contentpipe/eabi/tsu_omxil_dummycontentpipeu.def Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
- _Z13NewTestSuiteLv @ 1 NONAME
-
--- a/omxil/omxilunittest/contentpipe/group/bld.inf Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-PRJ_TESTMMPFILES
-//Dummy Content Pipe Unit Tests
-../mmpfiles/tsu_omxil_dummycontentpipe.mmp
-
-PRJ_TESTEXPORTS
-// test scripts
-../scripts/tsu_omxil_dummycontentpipe.script c:/omxil/tsu_omxil_dummycontentpipe.script
-
-// Romkit include files
-tsu_omxil_dummycontentpipe.iby /epoc32/rom/include/tsu_omxil_dummycontentpipe.iby
--- a/omxil/omxilunittest/contentpipe/group/component_test.pkg Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-
-
-"\sf\os\mm\omxil\omxilunittest\contentpipe\scripts\tsu_omxil_dummycontentpipe.script"-"c:\omxil\tsu_omxil_dummycontentpipe.script"
--- a/omxil/omxilunittest/contentpipe/group/tsu_omxil_dummycontentpipe.iby Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-//
-// tsu_omxil_dummycontentpipe.iby
-
-// Copyright (c) 2008-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:
-//
-
-#ifndef TSU_OMXIL_DUMMYCONTENTPIPE_IBY
-#define TSU_OMXIL_DUMMYCONTENTPIPE_IBY
-
-// OMX IL Components Unit tests
-file=ABI_DIR\BUILD_DIR\tsu_omxil_dummycontentpipe.dll System\Libs\tsu_omxil_dummycontentpipe.dll
-
-// Scripts
-data=EPOCROOT##epoc32\data\c\omxil\tsu_omxil_dummycontentpipe.script \omxil\tsu_omxil_dummycontentpipe.script
-
-#endif // TSU_OMXIL_DUMMYCONTENTPIPE_IBY
\ No newline at end of file
--- a/omxil/omxilunittest/contentpipe/mmpfiles/tsu_omxil_dummycontentpipe.mmp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-TARGET tsu_omxil_dummycontentpipe.dll
-CAPABILITY ALL -TCB
-TARGETTYPE dll
-UID 0x1000008d 0x102834BC
-VENDORID 0x70000001
-
-SOURCEPATH ../src
-SOURCE tsu_omxil_dummycontentpipe.cpp
-SOURCE tsu_omxil_dummycontentpipesuite.cpp
-
-USERINCLUDE ../src
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-
-LIBRARY euser.lib
-LIBRARY ecom.lib
-LIBRARY testframeworkclient.lib
-
-#ifdef EABI
-NOEXPORTLIBRARY
-#endif
-
-SMPSAFE
--- a/omxil/omxilunittest/contentpipe/scripts/tsu_omxil_dummycontentpipe.script Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-//
-// Copyright (c) 2008 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:
-//
-
-LOAD_SUITE TSU_OMXIL_DUMMYCONTENTPIPE.dll
-
-#Req. under test REQ8336
-#
-
-//-------------------------------------//
-// Dummy Content Pipe //
-//-------------------------------------//
-
-// Create and destroy dummy content pipe
-//! @SYMTestCaseID MM-OMXIL-DUMMYCONTENTPIPE-U-0001
-
-RUN_TEST_STEP -1 TSU_OMXIL_DUMMYCONTENTPIPE MM-OMXIL-DUMMYCONTENTPIPE-U-0001
-TEST_COMPLETE
-
-// Call Create() and Close() on a content pipe
-//! @SYMTestCaseID MM-OMXIL-DUMMYCONTENTPIPE-U-0002
-
-RUN_TEST_STEP -1 TSU_OMXIL_DUMMYCONTENTPIPE MM-OMXIL-DUMMYCONTENTPIPE-U-0002
-TEST_COMPLETE
-
-// Call SetPosition and GetPosition() on the dummy content pipe 1
-//! @SYMTestCaseID MM-OMXIL-DUMMYCONTENTPIPE-U-0003
-
-RUN_TEST_STEP -1 TSU_OMXIL_DUMMYCONTENTPIPE MM-OMXIL-DUMMYCONTENTPIPE-U-0003
-TEST_COMPLETE
-
-// Call SetPosition and GetPosition() on the dummy content pipe 2
-//! @SYMTestCaseID MM-OMXIL-DUMMYCONTENTPIPE-U-0004
-
-RUN_TEST_STEP -1 TSU_OMXIL_DUMMYCONTENTPIPE MM-OMXIL-DUMMYCONTENTPIPE-U-0004
-TEST_COMPLETE
--- a/omxil/omxilunittest/contentpipe/src/tsu_omxil_dummycontentpipe.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,385 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include <e32base.h>
-
-#include <openmax/il/core/omxilcontentpipeif.h>
-
-#include "../../test_plugins/dummy_cp/src/omxildummycontentpipe.hrh"
-#include "../../test_plugins/dummy_cp_2/src/omxildummycontentpipe2.hrh"
-#include "tsu_omxil_dummycontentpipe.h"
-
-char* const KTestUri = "http://www.symbian.com";
-const TInt KTestOffset = 5;
-
-/**
- *
- * CTestStep_OMXIL_DummyContentPipe constructor
- *
- * @xxxx
- *
- */
-CTestStep_OMXIL_DummyContentPipe::CTestStep_OMXIL_DummyContentPipe()
- {
- }
-
-/**
- *
- * CTestStep_OMXIL_DummyContentPipe destructor
- *
- * @xxxx
- *
- */
-CTestStep_OMXIL_DummyContentPipe::~CTestStep_OMXIL_DummyContentPipe()
- {
- }
-
-TVerdict CTestStep_OMXIL_DummyContentPipe::DoTestStepPreambleL()
- {
- TVerdict verdict = EPass;
-
- return verdict;
- }
-
-TVerdict CTestStep_OMXIL_DummyContentPipe::DoTestStepPostambleL()
- {
- TVerdict verdict = EPass;
-
- return verdict;
- }
-
-
-CTestStep_OMXIL_DummyContentPipe_U_0001::CTestStep_OMXIL_DummyContentPipe_U_0001()
- /** Constructor
- */
- {
- // store the name of this test case
- // this is the name that is used by the script file
- // Each test step initialises it's own name
- iTestStepName = _L("MM-OMXIL-DummyContentPipe-U-0001");
- }
-
-
-TVerdict CTestStep_OMXIL_DummyContentPipe_U_0001::DoTestStepL( void )
-/**
- * Call the COmxILContentPipeIf::CreateImplementationL(..) with the Dummy Content Pipe UID.
- * Call COmxILContentPipeIf::GetHandle(..), verify the return value is 0.
- * Destroy the COmxILContentPipeIf object and verify there isn't any memory leak.
-
- * Use case: N/A
- * @test Req. under test REQ8336
- */
- {
- INFO_PRINTF1(_L("Setting UHEAP_MARK"));
- __MM_HEAP_MARK;
-
- TVerdict verdict = EPass;
- TInt err;
- COmxILContentPipeIf* dummyContentPipeIf = NULL;
- OMX_HANDLETYPE contentPipeHandle;
-
- INFO_PRINTF1(_L("Attempting to Create Content Pipe Interface"));
- TRAP(err, dummyContentPipeIf = COmxILContentPipeIf::CreateImplementationL(TUid::Uid(KUidOmxILDummyContentPipe)));
- INFO_PRINTF2(_L("Content Pipe Interface Created: %d"), err);
- if(err != KErrNone)
- {
- verdict = EFail;
- }
-
- INFO_PRINTF1(_L("Attempting to Init Content Pipe"));
- err = dummyContentPipeIf->GetHandle(&contentPipeHandle);
- INFO_PRINTF2(_L("Content Pipe initialised: %d"), err);
- if(err != KErrNone)
- {
- verdict = EFail;
- }
-
- delete dummyContentPipeIf;
- REComSession::FinalClose();
-
- INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
- __MM_HEAP_MARKEND;
-
- return verdict;
- }
-
-
-//------------------------------------------------------------------
-
-CTestStep_OMXIL_DummyContentPipe_U_0002::CTestStep_OMXIL_DummyContentPipe_U_0002()
-/** Constructor
-*/
- {
- // store the name of this test case
- // this is the name that is used by the script file
- // Each test step initialises it's own name
- iTestStepName = _L("MM-OMXIL-DummyContentPipe-U-0002");
- }
-
-
-TVerdict CTestStep_OMXIL_DummyContentPipe_U_0002::DoTestStepL( void )
-/**
-* Call the COmxILContentPipeIf::CreateImplementationL(..) with the Dummy Content Pipe UID.
-* Call COmxILContentPipeIf::GetHandle(..), verify the return value is 0.
-* Call CP_PIPETYPE::Create(..), verify the return value is 0.
-* Call the CP_PIPETYPE::Close(), verify the return value is 0.
-* Destroy the COmxILContentPipeIf object and verify there isn't any memory leak.
-
-* Use case: N/A
-* @test Req. under test REQ8336
-*/
- {
- INFO_PRINTF1(_L("Setting UHEAP_MARK"));
- __MM_HEAP_MARK;
-
- TVerdict verdict = EPass;
- TInt err;
- COmxILContentPipeIf* dummyContentPipeIf = NULL;
- OMX_HANDLETYPE contentPipeHandle;
- CPhandle contentSourceHandle;
-
- INFO_PRINTF1(_L("Attempting to Create Content Pipe Interface"));
- TRAP(err, dummyContentPipeIf = COmxILContentPipeIf::CreateImplementationL(TUid::Uid(KUidOmxILDummyContentPipe)));
- INFO_PRINTF2(_L("Content Pipe Interface Created: %d"), err);
- if(err != KErrNone)
- {
- verdict = EFail;
- }
-
- INFO_PRINTF1(_L("Attempting to Init Content Pipe"));
- err = dummyContentPipeIf->GetHandle(&contentPipeHandle);
- INFO_PRINTF2(_L("Content Pipe initialised: %d"), err);
- if(err != KErrNone)
- {
- verdict = EFail;
- }
-
- INFO_PRINTF1(_L("Attempting to Create Content Source"));
- err = (reinterpret_cast<CP_PIPETYPE*>(contentPipeHandle))->Create(&contentSourceHandle, KTestUri);
- INFO_PRINTF2(_L("Content Source created: %d"), err);
- if(err != KErrNone)
- {
- verdict = EFail;
- }
-
- INFO_PRINTF1(_L("Attempting to Close Content Source"));
- err = (reinterpret_cast<CP_PIPETYPE*>(contentPipeHandle))->Close(contentSourceHandle);
- INFO_PRINTF2(_L("Content Source closed: %d"), err);
- if(err != KErrNone)
- {
- verdict = EFail;
- }
-
- delete dummyContentPipeIf;
- REComSession::FinalClose();
-
- INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
- __MM_HEAP_MARKEND;
-
- return verdict;
- }
-
-
-//------------------------------------------------------------------
-
-CTestStep_OMXIL_DummyContentPipe_U_0003::CTestStep_OMXIL_DummyContentPipe_U_0003()
-/** Constructor
-*/
- {
- // store the name of this test case
- // this is the name that is used by the script file
- // Each test step initialises it's own name
- iTestStepName = _L("MM-OMXIL-DummyContentPipe-U-0003");
- }
-
-
-TVerdict CTestStep_OMXIL_DummyContentPipe_U_0003::DoTestStepL( void )
-/**
-* Call the COmxILContentPipeIf::CreateImplementationL(..) with the Dummy Content Pipe UID.
-* Call COmxILContentPipeIf::GetHandle(..), verify the return value is 0.
-* Call CP_PIPETYPE::Create(..), verify the return value is 0.
-* Call CP_PIPETYPE::SetPosition(), verify the return value is 0.
-* Call CP_PIPETYPE::GetPosition(), verify the return value is 0. Verify the position has been set correctly
-* Call the CP_PIPETYPE::Close(), verify the return value is 0.
-* Destroy the COmxILContentPipeIf object and verify there isn't any memory leak.
-
-* Use case: N/A
-* @test Req. under test REQ8336
-*/
- {
- INFO_PRINTF1(_L("Setting UHEAP_MARK"));
- __MM_HEAP_MARK;
-
- TVerdict verdict = EPass;
- TInt err;
- COmxILContentPipeIf* dummyContentPipeIf = NULL;
- OMX_HANDLETYPE contentPipeHandle;
- CPhandle contentSourceHandle;
-
- INFO_PRINTF1(_L("Attempting to Create Content Pipe Interface"));
- TRAP(err, dummyContentPipeIf = COmxILContentPipeIf::CreateImplementationL(TUid::Uid(KUidOmxILDummyContentPipe)));
- INFO_PRINTF2(_L("Content Pipe Interface Created: %d"), err);
- if(err != KErrNone)
- {
- verdict = EFail;
- }
-
- INFO_PRINTF1(_L("Attempting to Init Content Pipe"));
- err = dummyContentPipeIf->GetHandle(&contentPipeHandle);
- INFO_PRINTF2(_L("Content Pipe initialised: %d"), err);
- if(err != KErrNone)
- {
- verdict = EFail;
- }
-
- INFO_PRINTF1(_L("Attempting to Create Content Source"));
- err = (reinterpret_cast<CP_PIPETYPE*>(contentPipeHandle))->Create(&contentSourceHandle, KTestUri);
- INFO_PRINTF2(_L("Content Source created: %d"), err);
- if(err != KErrNone)
- {
- verdict = EFail;
- }
-
- INFO_PRINTF1(_L("Calling SetPosition()"));
- err = (reinterpret_cast<CP_PIPETYPE*>(contentPipeHandle))->SetPosition(contentSourceHandle, KTestOffset, CP_OriginBegin);
- INFO_PRINTF2(_L("SetPosition() called: %d"), err);
- if(err != KErrNone)
- {
- verdict = EFail;
- }
-
- INFO_PRINTF1(_L("Calling GetPosition()..."));
- TUint32 pos;
- err = (reinterpret_cast<CP_PIPETYPE*>(contentPipeHandle))->GetPosition(contentSourceHandle, &pos);
- INFO_PRINTF2(_L("GetPosition() called: %d"), err);
- if(err != KErrNone || pos != KTestOffset)
- {
- verdict = EFail;
- }
-
- INFO_PRINTF1(_L("Attempting to Close Content Source"));
- err = (reinterpret_cast<CP_PIPETYPE*>(contentPipeHandle))->Close(contentSourceHandle);
- INFO_PRINTF2(_L("Content Source closed: %d"), err);
- if(err != KErrNone)
- {
- verdict = EFail;
- }
-
- delete dummyContentPipeIf;
- REComSession::FinalClose();
-
- INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
- __MM_HEAP_MARKEND;
-
- return verdict;
- }
-
-
-//------------------------------------------------------------------
-
-CTestStep_OMXIL_DummyContentPipe_U_0004::CTestStep_OMXIL_DummyContentPipe_U_0004()
-/** Constructor
-*/
- {
- // store the name of this test case
- // this is the name that is used by the script file
- // Each test step initialises it's own name
- iTestStepName = _L("MM-OMXIL-DummyContentPipe-U-0004");
- }
-
-
-TVerdict CTestStep_OMXIL_DummyContentPipe_U_0004::DoTestStepL( void )
-/**
-* Call the COmxILContentPipeIf::CreateImplementationL(..) with the Dummy Content Pipe 2 UID.
-* Call COmxILContentPipeIf::GetHandle(..), verify the return value is 0.
-* Call CP_PIPETYPE::Create(..), verify the return value is 0.
-* Call CP_PIPETYPE::SetPosition(), verify the return value is 0.
-* Call CP_PIPETYPE::GetPosition(), verify the return value is 0. Verify the position has been set correctly
-* Call the CP_PIPETYPE::Close(), verify the return value is 0.
-* Destroy the COmxILContentPipeIf object and verify there isn't any memory leak.
-
-* Use case: N/A
-* @test Req. under test REQ8336
-*/
- {
- INFO_PRINTF1(_L("Setting UHEAP_MARK"));
- __MM_HEAP_MARK;
-
- TVerdict verdict = EPass;
- TInt err;
- COmxILContentPipeIf* dummyContentPipeIf = NULL;
- OMX_HANDLETYPE contentPipeHandle;
- CPhandle contentSourceHandle;
-
- INFO_PRINTF1(_L("Attempting to Create Content Pipe Interface"));
- TRAP(err, dummyContentPipeIf = COmxILContentPipeIf::CreateImplementationL(TUid::Uid(KUidOmxILDummyContentPipe2)));
- INFO_PRINTF2(_L("Content Pipe Interface Created: %d"), err);
- if(err != KErrNone)
- {
- verdict = EFail;
- }
-
- INFO_PRINTF1(_L("Attempting to Init Content Pipe"));
- err = dummyContentPipeIf->GetHandle(&contentPipeHandle);
- INFO_PRINTF2(_L("Content Pipe initialised: %d"), err);
- if(err != KErrNone)
- {
- verdict = EFail;
- }
-
- INFO_PRINTF1(_L("Attempting to Create Content Source"));
- err = (reinterpret_cast<CP_PIPETYPE*>(contentPipeHandle))->Create(&contentSourceHandle, KTestUri);
- INFO_PRINTF2(_L("Content Source created: %d"), err);
- if(err != KErrNone)
- {
- verdict = EFail;
- }
-
- INFO_PRINTF1(_L("Calling SetPosition()"));
- err = (reinterpret_cast<CP_PIPETYPE*>(contentPipeHandle))->SetPosition(contentSourceHandle, KTestOffset, CP_OriginBegin);
- INFO_PRINTF2(_L("SetPosition() called: %d"), err);
- if(err != KErrNone)
- {
- verdict = EFail;
- }
-
- INFO_PRINTF1(_L("Calling GetPosition()..."));
- TUint32 pos;
- err = (reinterpret_cast<CP_PIPETYPE*>(contentPipeHandle))->GetPosition(contentSourceHandle, &pos);
- INFO_PRINTF2(_L("GetPosition() called: %d"), err);
- if(err != KErrNone || pos != KTestOffset)
- {
- verdict = EFail;
- }
-
- INFO_PRINTF1(_L("Attempting to Close Content Source"));
- err = (reinterpret_cast<CP_PIPETYPE*>(contentPipeHandle))->Close(contentSourceHandle);
- INFO_PRINTF2(_L("Content Source closed: %d"), err);
- if(err != KErrNone)
- {
- verdict = EFail;
- }
-
- delete dummyContentPipeIf;
- REComSession::FinalClose();
-
- INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
- __MM_HEAP_MARKEND;
-
- return verdict;
- }
-
-
-//------------------------------------------------------------------
--- a/omxil/omxilunittest/contentpipe/src/tsu_omxil_dummycontentpipe.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef TSU_OMXIL_DUMMYCONTENTPIPE_H
-#define TSU_OMXIL_DUMMYCONTENTPIPE_H
-
-#include <testframework.h>
-
-// forward declaring
-class CTestSuite_OMXIL_DummyContentPipe;
-
-class CTestStep_OMXIL_DummyContentPipe: public CTestStep
- {
-public:
- CTestStep_OMXIL_DummyContentPipe();
- ~CTestStep_OMXIL_DummyContentPipe();
- static void CleanUp(TAny *aPtr);
- void SetTestSuite(const CTestSuite_OMXIL_DummyContentPipe* aTestSuite )
- {iOMXDummyContentPipeTestSuite = aTestSuite;}
-
- virtual TVerdict DoTestStepPreambleL();
- virtual TVerdict DoTestStepPostambleL();
-protected:
- // pointer to suite which owns this test
- const CTestSuite_OMXIL_DummyContentPipe* iOMXDummyContentPipeTestSuite;
- };
-
-/**
- *@class CTestStep_OMXIL_DummyContentPipe_U_0001
- *@test Req. under test REQ8336
- */
-class CTestStep_OMXIL_DummyContentPipe_U_0001 : public CTestStep_OMXIL_DummyContentPipe
- {
-public:
- CTestStep_OMXIL_DummyContentPipe_U_0001() ;
- ~CTestStep_OMXIL_DummyContentPipe_U_0001(){} ;
- virtual TVerdict DoTestStepL( void );
- };
-
-/**
- *@class CTestStep_OMXIL_DummyContentPipe_U_0002
- *@test Req. under test REQ8336
- */
-class CTestStep_OMXIL_DummyContentPipe_U_0002 : public CTestStep_OMXIL_DummyContentPipe
- {
-public:
- CTestStep_OMXIL_DummyContentPipe_U_0002() ;
- ~CTestStep_OMXIL_DummyContentPipe_U_0002(){} ;
- virtual TVerdict DoTestStepL( void );
- };
-
-/**
- *@class CTestStep_OMXIL_DummyContentPipe_U_0003
- *@test Req. under test REQ8336
- */
-class CTestStep_OMXIL_DummyContentPipe_U_0003 : public CTestStep_OMXIL_DummyContentPipe
- {
- public:
- CTestStep_OMXIL_DummyContentPipe_U_0003() ;
- ~CTestStep_OMXIL_DummyContentPipe_U_0003(){} ;
- virtual TVerdict DoTestStepL( void );
- };
-
-/**
- *@class CTestStep_OMXIL_DummyContentPipe_U_0004
- *@test Req. under test REQ8336
- */
-class CTestStep_OMXIL_DummyContentPipe_U_0004 : public CTestStep_OMXIL_DummyContentPipe
- {
- public:
- CTestStep_OMXIL_DummyContentPipe_U_0004() ;
- ~CTestStep_OMXIL_DummyContentPipe_U_0004(){} ;
- virtual TVerdict DoTestStepL( void );
- };
-
-#endif // TSU_OMXIL_DUMMYCONTENTPIPE_H
--- a/omxil/omxilunittest/contentpipe/src/tsu_omxil_dummycontentpipesuite.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +0,0 @@
-// Copyright (c) 2008-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:
-// This is the main DLL entry point for the tsu_omxil_dummycontentpipe.dll
-//
-//
-
-// EPOC includes
-#include <e32base.h>
-
-// Test system includes
-#include "tsu_omxil_dummycontentpipesuite.h"
-#include "tsu_omxil_dummycontentpipe.h"
-
-
-
-/**
- *
- * Create an instance of this test suite.
- *
- * NewTestSuiteL is exported at ordinal 1.
- * This provides the interface to allow the Test Framework
- * to create instances of this test suite.
- *
- * @return "CTestSuite_OMXIL_DummyContentPipe*"
- * The newly created test suite
- */
-EXPORT_C CTestSuite_OMXIL_DummyContentPipe* NewTestSuiteL()
- {
- CTestSuite_OMXIL_DummyContentPipe* result = new (ELeave) CTestSuite_OMXIL_DummyContentPipe;
- CleanupStack::PushL(result);
- result->ConstructL();
- CleanupStack::Pop(); // result
- return result;
- }
-
-CTestSuite_OMXIL_DummyContentPipe::~CTestSuite_OMXIL_DummyContentPipe()
- {
- }
-
-
-/**
- *
- * Get test suite version.
- *
- * @return "TPtrC"
- * The version string.
- *
- * @xxxx
- *
- */
-_LIT(KTxtVersion,"0.1");
-TPtrC CTestSuite_OMXIL_DummyContentPipe::GetVersion( void ) const
- {
-
- return KTxtVersion();
- }
-
-/**
- *
- * Initialiser for test suite.
- * This creates all the test steps and stores them
- * inside test suite
- *
- * @xxxx
- *
- */
-void CTestSuite_OMXIL_DummyContentPipe::InitialiseL( void )
- {
-
- // store the name of this test suite
- iSuiteName = _L("TSU_OMXIL_DUMMYCONTENTPIPE");
-
- // add test steps
- AddTestStepL( new(ELeave) CTestStep_OMXIL_DummyContentPipe_U_0001 );
- AddTestStepL( new(ELeave) CTestStep_OMXIL_DummyContentPipe_U_0002 );
- AddTestStepL( new(ELeave) CTestStep_OMXIL_DummyContentPipe_U_0003 );
- AddTestStepL( new(ELeave) CTestStep_OMXIL_DummyContentPipe_U_0004 );
- }
-
-
-// -------------------------
--- a/omxil/omxilunittest/contentpipe/src/tsu_omxil_dummycontentpipesuite.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef TSU_OMXIL_DUMMYCONTENTPIPE_SUITE_H_
-#define TSU_OMXIL_DUMMYCONTENTPIPE_SUITE_H_
-
-#include <testframework.h>
-
-/**
- *
- * CTestSuite, which is the base class for
- * the CTestSuite_OMXIL_DummyContentPipe.
- *
- */
-class CTestSuite_OMXIL_DummyContentPipe : public CTestSuite
- {
- public:
-
- void InitialiseL( void );
- virtual ~CTestSuite_OMXIL_DummyContentPipe();
- virtual TPtrC GetVersion( void ) const;
- };
-
-
-#endif /* TSU_OMXIL_DUMMYCONTENTPIPE_SUITE_H_ */
--- a/omxil/omxilunittest/group/bld.inf Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include "../components/group/bld.inf"
-#include "../contentpipe/group/bld.inf"
-#include "../test_plugins/dummy_components/group/bld.inf"
-#include "../test_plugins/dummy_cp/group/bld.inf"
-#include "../test_plugins/dummy_cp_2/group/bld.inf"
-#include "../test_plugins/dummy_loader/group/bld.inf"
\ No newline at end of file
--- a/omxil/omxilunittest/group/multimedia_unittest_omx_il.mrp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-# multimedia_unittest_omx_il.mrp
-#
-# Copyright (c) 2008 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:
-#
-
-component multimedia_unittest_omx_il
-
-source \sf\os\mm\omxil\omxilunittest
-
-notes_source \component_defs\release.src
-
-ipr T
\ No newline at end of file
--- a/omxil/omxilunittest/test_plugins/dummy_components/group/bld.inf Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-PRJ_MMPFILES
-../mmpfiles/Core_Conf_Dummy_Component1.mmp
-../mmpfiles/Core_Conf_Dummy_Component2.mmp
-
-
-PRJ_EXPORTS
-// Romkit include files
-omxildummycomponents.iby /epoc32/rom/include/omxildummycomponents.iby
--- a/omxil/omxilunittest/test_plugins/dummy_components/group/omxildummycomponents.iby Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef OMXILDUMMYCOMPONENTS_IBY
-#define OMXILDUMMYCOMPONENTS_IBY
-
-// Dummy Components
-ECOM_PLUGIN(core_conf_dummy_component1.dll, core_conf_dummy_component1.rsc)
-ECOM_PLUGIN(core_conf_dummy_component2.dll, core_conf_dummy_component2.rsc)
-
-#endif //OMXILDUMMYCOMPONENTS_IBY
\ No newline at end of file
--- a/omxil/omxilunittest/test_plugins/dummy_components/mmpfiles/Core_Conf_Dummy_Component1.mmp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include "../src/Core_Conf_Dummy_Component.hrh"
-
-TARGET core_conf_dummy_component1.dll
-CAPABILITY ALL -TCB
-TARGETTYPE PLUGIN
-EPOCALLOWDLLDATA
-UID 0x10009D8D KUidCoreDummyTestComponent1Dll
-VENDORID 0x70000001
-
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-OS_LAYER_ESTLIB_SYSTEMINCLUDE
-
-// Specifics to dummy component for core conf suite
-USERINCLUDE ../../../../omxilcoreconftest/generic/inc
-SOURCEPATH ../../../../omxilcoreconftest/generic/src
-SOURCE Core_Conf_DummyTestComponent.c
-SOURCE Core_Conf_TestHarness.c
-SOURCE Core_Conf_Tests.c
-SOURCEPATH ../../../../omxilcoreconftest/generic/src/tests
-SOURCE Core_Conf_CoreInitDeinitTest.c
-SOURCE Core_Conf_CompLoadUnloadTest.c
-SOURCE Core_Conf_CompNameEnumTest.c
-SOURCE Core_Conf_CompRolesTest.c
-SOURCE Core_Conf_GetContentPipeTest.c
-SOURCE Core_Conf_TunnelSetupTest.c
-SOURCE Core_Conf_OSAL_Test.c
-SOURCEPATH ../../../../omxilcoreconftest/src
-SOURCE Core_Conf_OSAL_Interface.cpp
-
-
-// Porting of dummy component to Symbian OS
-SOURCEPATH ../src
-SOURCE Core_Conf_Dummy_Component1.cpp
-RESOURCE Core_Conf_Dummy_Component1.rss
-
-LIBRARY euser.lib
-LIBRARY ecom.lib
-LIBRARY estlib.lib
-LIBRARY hal.lib
-LIBRARY omxilcoreclient.lib
-STATICLIBRARY omxilcomponentif.lib
-
-NOSTRICTDEF
-
-SMPSAFE
--- a/omxil/omxilunittest/test_plugins/dummy_components/mmpfiles/Core_Conf_Dummy_Component2.mmp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include "../src/Core_Conf_Dummy_Component.hrh"
-
-TARGET core_conf_dummy_component2.dll
-CAPABILITY ALL -TCB
-TARGETTYPE PLUGIN
-EPOCALLOWDLLDATA
-UID 0x10009D8D KUidCoreDummyTestComponent2Dll
-VENDORID 0x70000001
-
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-OS_LAYER_ESTLIB_SYSTEMINCLUDE
-
-// Specifics to dummy component for core conf suite
-USERINCLUDE ../../../../omxilcoreconftest/generic/inc
-SOURCEPATH ../../../../omxilcoreconftest/generic/src
-SOURCE Core_Conf_DummyTestComponent.c
-SOURCE Core_Conf_TestHarness.c
-SOURCE Core_Conf_Tests.c
-SOURCEPATH ../../../../omxilcoreconftest/generic/src/tests
-SOURCE Core_Conf_CoreInitDeinitTest.c
-SOURCE Core_Conf_CompLoadUnloadTest.c
-SOURCE Core_Conf_CompNameEnumTest.c
-SOURCE Core_Conf_CompRolesTest.c
-SOURCE Core_Conf_GetContentPipeTest.c
-SOURCE Core_Conf_TunnelSetupTest.c
-SOURCE Core_Conf_OSAL_Test.c
-SOURCEPATH ../../../../omxilcoreconftest/src
-SOURCE Core_Conf_OSAL_Interface.cpp
-
-
-// Porting of dummy component to Symbian OS
-SOURCEPATH ../src
-SOURCE Core_Conf_Dummy_Component2.cpp
-RESOURCE Core_Conf_Dummy_Component2.rss
-
-LIBRARY euser.lib
-LIBRARY ecom.lib
-LIBRARY estlib.lib
-LIBRARY hal.lib
-LIBRARY omxilcoreclient.lib
-STATICLIBRARY omxilcomponentif.lib
-
-NOSTRICTDEF
-
-SMPSAFE
--- a/omxil/omxilunittest/test_plugins/dummy_components/src/Core_Conf_Dummy_Component.hrh Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef CORE_CONF_DUMMY_COMPONENT_HRH
-#define OMXILPCMRENDERER_HRH
-
-#define KUidCoreDummyTestComponent1Dll 0x102834CB
-#define KUidCoreDummyTestComponent1 0x102834CC
-
-#define KUidCoreDummyTestComponent2Dll 0x102834CD
-#define KUidCoreDummyTestComponent2 0x102834CE
-
-#endif // CORE_CONF_DUMMY_COMPONENT_HRH
--- a/omxil/omxilunittest/test_plugins/dummy_components/src/Core_Conf_Dummy_Component1.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-// Core_Conf_Dummy_Component1.cpp
-
-// Copyright (c) 2008-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:
-//
-
-#include <openmax/il/loader/omxilsymbiancomponentif.h>
-#include "Core_Conf_Dummy_Component.hrh"
-
-extern "C" OMX_ERRORTYPE TestCompComponentInit(OMX_HANDLETYPE hComponent);
-
-OMXIL_COMPONENT_ECOM_ENTRYPOINT(KUidCoreDummyTestComponent1);
-
-OMX_ERRORTYPE OMX_ComponentInit(OMX_HANDLETYPE hComponent)
- {
- return TestCompComponentInit(hComponent);
- }
--- a/omxil/omxilunittest/test_plugins/dummy_components/src/Core_Conf_Dummy_Component1.rss Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include <ecom/registryinfo.rh>
-#include <openmax/il/loader/omxilcomponentif.hrh>
-#include "Core_Conf_Dummy_Component.hrh"
-
-RESOURCE REGISTRY_INFO theInfo
- {
- dll_uid = KUidCoreDummyTestComponent1Dll;
- interfaces =
- {
- INTERFACE_INFO
- {
- interface_uid = KUidOmxILSymbianComponentIf;
- implementations =
- {
- IMPLEMENTATION_INFO
- {
- implementation_uid = KUidCoreDummyTestComponent1;
- version_no = 1;
- display_name = "OMX.Symbian.testcomp1";
- default_data = "Decoder,Encoder" ;
- opaque_data = "";
- }
- };
- }
- };
- }
--- a/omxil/omxilunittest/test_plugins/dummy_components/src/Core_Conf_Dummy_Component2.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-// Core_Conf_Dummy_Component2.cpp
-
-// Copyright (c) 2008-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:
-//
-
-#include <openmax/il/loader/omxilsymbiancomponentif.h>
-#include "Core_Conf_Dummy_Component.hrh"
-
-extern "C" OMX_ERRORTYPE TestCompComponentInit(OMX_HANDLETYPE hComponent);
-
-OMXIL_COMPONENT_ECOM_ENTRYPOINT(KUidCoreDummyTestComponent2);
-
-OMX_ERRORTYPE OMX_ComponentInit(OMX_HANDLETYPE hComponent)
- {
- return TestCompComponentInit(hComponent);
- }
--- a/omxil/omxilunittest/test_plugins/dummy_components/src/Core_Conf_Dummy_Component2.rss Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include <ecom/registryinfo.rh>
-#include "Core_Conf_Dummy_Component.hrh"
-#include "../../dummy_loader/src/omxildummyloader.hrh"
-
-RESOURCE REGISTRY_INFO theInfo
- {
- dll_uid = KUidCoreDummyTestComponent2Dll;
- interfaces =
- {
- INTERFACE_INFO
- {
- interface_uid = KUidOmxILDummyComponentIf;
- implementations =
- {
- IMPLEMENTATION_INFO
- {
- implementation_uid = KUidCoreDummyTestComponent2;
- version_no = 1;
- display_name = "OMX.Symbian.testcomp2";
- default_data = "Encoder,Decoder" ;
- opaque_data = "";
- }
- };
- }
- };
- }
--- a/omxil/omxilunittest/test_plugins/dummy_cp/group/bld.inf Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-// Dummy Content Pipe Implementation using the class inheritance approach
-PRJ_MMPFILES
-../mmpfiles/omxildummycontentpipe.mmp
-
-// Romkit include files
-PRJ_EXPORTS
-omxildummycontentpipe.iby /epoc32/rom/include/omxildummycontentpipe.iby
\ No newline at end of file
--- a/omxil/omxilunittest/test_plugins/dummy_cp/group/omxildummycontentpipe.iby Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-//
-// omxildummycontentpipe.iby
-
-// Copyright (c) 2008-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:
-//
-
-#ifndef OMXILDUMMYCONTENTPIPE_IBY
-#define OMXILDUMMYCONTENTPIPE_IBY
-
-// OMX IL Dummy Content Pipe
-ECOM_PLUGIN(omxildummycontentpipe.dll, omxildummycontentpipe.rsc)
-
-#endif // OMXILDUMMYCONTENTPIPE_IBY
\ No newline at end of file
--- a/omxil/omxilunittest/test_plugins/dummy_cp/mmpfiles/omxildummycontentpipe.mmp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include "../src/omxildummycontentpipe.hrh"
-
-TARGET omxildummycontentpipe.dll
-TARGETTYPE PLUGIN
-CAPABILITY ALL -TCB
-
-UID 0x10009D8D KUidOmxILDummyContentPipeDll
-VENDORID 0x70000001
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-
-USERINCLUDE ../src
-
-SOURCEPATH ../src
-SOURCE omxildummycontentpipe.cpp
-
-RESOURCE omxildummycontentpipe.rss
-
-LIBRARY euser.lib
-LIBRARY ecom.lib
-
-nostrictdef
-
-SMPSAFE
--- a/omxil/omxilunittest/test_plugins/dummy_cp/src/omxildummycontentpipe.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,251 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include <e32base.h>
-
-#include "omxildummycontentpipe.h"
-#include "omxildummycontentpipe.hrh"
-
-// ECOM stuff...
-const TImplementationProxy ImplementationTable[] =
- {
- IMPLEMENTATION_PROXY_ENTRY(KUidOmxILDummyContentPipe, COmxILDummyContentPipe::NewL),
- };
-
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
- {
- aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
- return ImplementationTable;
- }
-
-COmxILDummyContentPipe* COmxILDummyContentPipe::NewL()
- {
- return new (ELeave) COmxILDummyContentPipe();
- }
-
-COmxILDummyContentPipe::COmxILDummyContentPipe()
- {
- // fill in handle structure
-
- CP_PIPETYPE::Open = &COmxILDummyContentPipe::Open;
- CP_PIPETYPE::Close = &COmxILDummyContentPipe::Close;
- CP_PIPETYPE::Create = &COmxILDummyContentPipe::Create;
- CP_PIPETYPE::CheckAvailableBytes = &COmxILDummyContentPipe::CheckAvailableBytes;
- CP_PIPETYPE::SetPosition = &COmxILDummyContentPipe::SetPosition;
- CP_PIPETYPE::GetPosition = &COmxILDummyContentPipe::GetPosition;
- CP_PIPETYPE::Read = &COmxILDummyContentPipe::Read;
- CP_PIPETYPE::ReadBuffer = &COmxILDummyContentPipe::ReadBuffer;
- CP_PIPETYPE::ReleaseReadBuffer = &COmxILDummyContentPipe::ReleaseReadBuffer;
- CP_PIPETYPE::Write = &COmxILDummyContentPipe::Write;
- CP_PIPETYPE::GetWriteBuffer = &COmxILDummyContentPipe::GetWriteBuffer;
- CP_PIPETYPE::WriteBuffer = &COmxILDummyContentPipe::WriteBuffer;
- CP_PIPETYPE::RegisterCallback = &COmxILDummyContentPipe::RegisterCallback;
- }
-
-COmxILDummyContentPipe::~COmxILDummyContentPipe()
- {
- }
-
-TInt COmxILDummyContentPipe::GetHandle(OMX_HANDLETYPE* aContentPipe)
- {
- *aContentPipe = static_cast<CP_PIPETYPE*>(this);
- return KErrNone;
- }
-
-CPresult COmxILDummyContentPipe::Open(CPhandle* hContent, CPstring szURI, CP_ACCESSTYPE eAccess)
- {
- COmxILDummyContentHandle* dummyContentHandle = reinterpret_cast<COmxILDummyContentHandle*>(*hContent);
- TInt err = COmxILDummyContentHandle::Open(dummyContentHandle, _L8(szURI), eAccess);
- *hContent = dummyContentHandle;
- return err;
- }
-
-CPresult COmxILDummyContentPipe::Close(CPhandle hContent)
- {
- COmxILDummyContentHandle* dummyContentHandle = reinterpret_cast<COmxILDummyContentHandle*>(hContent);
- TInt err = dummyContentHandle->Close();
- delete dummyContentHandle;
- return err;
- }
-
-CPresult COmxILDummyContentPipe::Create(CPhandle* hContent, CPstring szURI)
- {
- COmxILDummyContentHandle* dummyContentHandle = reinterpret_cast<COmxILDummyContentHandle*>(*hContent);
- TInt err = COmxILDummyContentHandle::Create(dummyContentHandle, _L8(szURI));
- *hContent = dummyContentHandle;
- return err;
- }
-
-CPresult COmxILDummyContentPipe::CheckAvailableBytes(CPhandle hContent, CPuint nBytesRequested, CP_CHECKBYTESRESULTTYPE* eResult)
- {
- return reinterpret_cast<COmxILDummyContentHandle*>(hContent)->CheckAvailableBytes(nBytesRequested, eResult);
- }
-
-CPresult COmxILDummyContentPipe::SetPosition(CPhandle hContent, CPint nOffset, CP_ORIGINTYPE eOrigin)
- {
- return reinterpret_cast<COmxILDummyContentHandle*>(hContent)->SetPosition(nOffset, eOrigin);
- }
-
-CPresult COmxILDummyContentPipe::GetPosition(CPhandle hContent, CPuint* pPosition)
- {
- return reinterpret_cast<COmxILDummyContentHandle*>(hContent)->GetPosition((TUint*)pPosition);
- }
-
-CPresult COmxILDummyContentPipe::Read(CPhandle hContent, CPbyte* pData, CPuint nSize)
- {
- return reinterpret_cast<COmxILDummyContentHandle*>(hContent)->Read((TUint8*)pData, nSize);
- }
-
-CPresult COmxILDummyContentPipe::ReadBuffer(CPhandle hContent, CPbyte** ppBuffer, CPuint* nSize, CPbool bForbidCopy)
- {
- return reinterpret_cast<COmxILDummyContentHandle*>(hContent)->ReadBuffer((TUint8**)ppBuffer, (TUint*)nSize, bForbidCopy);
- }
-
-CPresult COmxILDummyContentPipe::ReleaseReadBuffer(CPhandle hContent, CPbyte* pBuffer)
- {
- return reinterpret_cast<COmxILDummyContentHandle*>(hContent)->ReleaseReadBuffer((TUint8*)pBuffer);
- }
-
-CPresult COmxILDummyContentPipe::Write(CPhandle hContent, CPbyte* data, CPuint nSize)
- {
- return reinterpret_cast<COmxILDummyContentHandle*>(hContent)->Write((TUint8*)data, nSize);
- }
-
-CPresult COmxILDummyContentPipe::GetWriteBuffer(CPhandle hContent, CPbyte** ppBuffer, CPuint nSize)
- {
- return reinterpret_cast<COmxILDummyContentHandle*>(hContent)->GetWriteBuffer((TUint8**)ppBuffer, nSize);
- }
-
-CPresult COmxILDummyContentPipe::WriteBuffer(CPhandle hContent, CPbyte* pBuffer, CPuint nFilledSize)
- {
- return reinterpret_cast<COmxILDummyContentHandle*>(hContent)->WriteBuffer((TUint8*)pBuffer, nFilledSize);
- }
-
-CPresult COmxILDummyContentPipe::RegisterCallback(CPhandle hContent, CPresult (*ClientCallback)(CP_EVENTTYPE eEvent, CPuint iParam))
- {
- return reinterpret_cast<COmxILDummyContentHandle*>(hContent)->RegisterCallback((TUint (*)(CP_EVENTTYPE, TUint))ClientCallback);
- }
-
-COmxILDummyContentPipe::COmxILDummyContentHandle::COmxILDummyContentHandle()
- {
- }
-
-COmxILDummyContentPipe::COmxILDummyContentHandle::~COmxILDummyContentHandle()
- {
- }
-
-TInt COmxILDummyContentPipe::COmxILDummyContentHandle::Open(COmxILDummyContentHandle*& aHandle, const TDesC8& /*aUri*/, CP_ACCESSTYPE /*aAccess*/)
- {
- aHandle = new COmxILDummyContentHandle;
- if (aHandle != NULL)
- {
- return KErrNone;
- }
- else
- {
- return KD_ENOMEM;
- }
- }
-
-TInt COmxILDummyContentPipe::COmxILDummyContentHandle::Close()
- {
- return KErrNone;
- }
-
-TInt COmxILDummyContentPipe::COmxILDummyContentHandle::Create(COmxILDummyContentHandle*& aHandle, const TDesC8& /*aUri*/)
- {
- aHandle = new COmxILDummyContentHandle;
- if (aHandle != NULL)
- {
- return KErrNone;
- }
- else
- {
- return KD_ENOMEM;
- }
- }
-
-TInt COmxILDummyContentPipe::COmxILDummyContentHandle::CheckAvailableBytes(TUint /*aBytesRequested*/, CP_CHECKBYTESRESULTTYPE* /*aResult*/)
- {
- return KD_EINVAL;
- }
-
-TInt COmxILDummyContentPipe::COmxILDummyContentHandle::SetPosition(TInt aOffset, CP_ORIGINTYPE aOrigin)
- {
- switch(aOrigin)
- {
- case CP_OriginBegin:
- {
- if (aOffset < 0)
- return KD_EINVAL;
- iPosition = aOffset;
- break;
- }
-
- case CP_OriginCur:
- case CP_OriginEnd:
- {
- return KD_EINVAL;
- }
-
- default:
- {
- return KD_EINVAL;
- }
- }
-
- return KErrNone;
- }
-
-TInt COmxILDummyContentPipe::COmxILDummyContentHandle::GetPosition(TUint* aPosition)
- {
- *aPosition = iPosition;
- return KErrNone;
- }
-
-TInt COmxILDummyContentPipe::COmxILDummyContentHandle::Read(TUint8* /*aData*/, TUint /*aSize*/)
- {
- return KD_EINVAL;
- }
-
-TInt COmxILDummyContentPipe::COmxILDummyContentHandle::ReadBuffer(TUint8** /*aBuffer*/, TUint* /*aSize*/, TBool /*aForbidCopy*/)
- {
- return KD_EINVAL;
- }
-
-TInt COmxILDummyContentPipe::COmxILDummyContentHandle::ReleaseReadBuffer(TUint8* /*aBuffer*/)
- {
- return KD_EINVAL;
- }
-
-TInt COmxILDummyContentPipe::COmxILDummyContentHandle::Write(TUint8* /*aData*/, TUint /*aSize*/)
- {
- return KD_EINVAL;
- }
-
-TInt COmxILDummyContentPipe::COmxILDummyContentHandle::GetWriteBuffer(TUint8** /*aBuffer*/, TUint /*aSize*/)
- {
- return KD_EINVAL;
- }
-
-TInt COmxILDummyContentPipe::COmxILDummyContentHandle::WriteBuffer(TUint8* /*aBuffer*/, TUint /*aFilledSize*/)
- {
- return KD_EINVAL;
- }
-
-TInt COmxILDummyContentPipe::COmxILDummyContentHandle::RegisterCallback(TUint (* /*ClientCallback*/)(CP_EVENTTYPE aEvent, TUint aParam))
- {
- return KD_EINVAL;
- }
--- a/omxil/omxilunittest/test_plugins/dummy_cp/src/omxildummycontentpipe.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @internalComponent
- @prototype
-*/
-
-#ifndef OMXILDUMMYCONTENTPIPE_H
-#define OMXILDUMMYCONTENTPIPE_H
-
-#include <openmax/il/core/omxilcontentpipeif.h>
-
-NONSHARABLE_CLASS(COmxILDummyContentPipe) : private COmxILContentPipeIf, private CP_PIPETYPE
- {
-public:
- static COmxILDummyContentPipe* NewL();
- ~COmxILDummyContentPipe();
-
- // from COmxILContentPipeIf
- TInt GetHandle(OMX_HANDLETYPE* aContentPipe);
-
- static CPresult Open(CPhandle* hContent, CPstring szURI, CP_ACCESSTYPE eAccess);
-
- static CPresult Close(CPhandle hContent);
-
- static CPresult Create(CPhandle* hContent, CPstring szURI);
-
- static CPresult CheckAvailableBytes(CPhandle hContent, CPuint nBytesRequested, CP_CHECKBYTESRESULTTYPE* eResult);
-
- static CPresult SetPosition(CPhandle hContent, CPint nOffset, CP_ORIGINTYPE eOrigin);
-
- static CPresult GetPosition(CPhandle hContent, CPuint* pPosition);
-
- static CPresult Read(CPhandle hContent, CPbyte* pData, CPuint nSize);
-
- static CPresult ReadBuffer(CPhandle hContent, CPbyte** ppBuffer, CPuint* nSize, CPbool bForbidCopy);
-
- static CPresult ReleaseReadBuffer(CPhandle hContent, CPbyte* pBuffer);
-
- static CPresult Write(CPhandle hContent, CPbyte* data, CPuint nSize);
-
- static CPresult GetWriteBuffer(CPhandle hContent, CPbyte** ppBuffer, CPuint nSize);
-
- static CPresult WriteBuffer(CPhandle hContent, CPbyte* pBuffer, CPuint nFilledSize);
-
- static CPresult RegisterCallback(CPhandle hContent, CPresult (*ClientCallback)(CP_EVENTTYPE eEvent, CPuint iParam));
-
-private:
- COmxILDummyContentPipe();
-
- class COmxILDummyContentHandle : public CBase
- {
- public:
- static TInt Open(COmxILDummyContentHandle*& aHandle, const TDesC8& aUri, CP_ACCESSTYPE aAccess);
-
- TInt Close();
-
- static TInt Create(COmxILDummyContentHandle*& aHandle, const TDesC8& aUri);
-
- TInt CheckAvailableBytes(TUint aBytesRequested, CP_CHECKBYTESRESULTTYPE* aResult);
-
- TInt SetPosition(TInt aOffset, CP_ORIGINTYPE aOrigin);
-
- TInt GetPosition(TUint* aPosition);
-
- TInt Read(TUint8* aData, TUint aSize);
-
- TInt ReadBuffer(TUint8** aBuffer, TUint* aSize, TBool aForbidCopy);
-
- TInt ReleaseReadBuffer(TUint8* aBuffer);
-
- TInt Write(TUint8* aData, TUint aSize);
-
- TInt GetWriteBuffer(TUint8** aBuffer, TUint aSize);
-
- TInt WriteBuffer(TUint8* aBuffer, TUint aFilledSize);
-
- TInt RegisterCallback(TUint (*ClientCallback)(CP_EVENTTYPE aEvent, TUint aParam));
-
- ~COmxILDummyContentHandle();
-
- private:
- COmxILDummyContentHandle();
-
- private:
- TUint iPosition;
- };
- };
-
-#endif // OMXILDUMMYCONTENTPIPE_H
--- a/omxil/omxilunittest/test_plugins/dummy_cp/src/omxildummycontentpipe.hrh Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef OMXILDUMMYCONTENTPIPE_HRH
-#define OMXILDUMMYCONTENTPIPE_HRH
-
-#define KUidOmxILDummyContentPipe 0x102834BB
-#define KUidOmxILDummyContentPipeDll 0x102834B9
-
-#endif // OMXILDUMMYCONTENTPIPE_HRH
-
--- a/omxil/omxilunittest/test_plugins/dummy_cp/src/omxildummycontentpipe.rss Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include <openmax/il/core/omxilcontentpipeif.hrh>
-#include "omxildummycontentpipe.hrh"
-#include <ecom/registryinfo.rh>
-
-RESOURCE REGISTRY_INFO theInfo
- {
- dll_uid = KUidOmxILDummyContentPipeDll;
- interfaces =
- {
- INTERFACE_INFO
- {
- interface_uid = KUidOmxILContentPipeIf;
- implementations =
- {
- IMPLEMENTATION_INFO
- {
- implementation_uid = KUidOmxILDummyContentPipe;
- version_no = 1;
- display_name = "Symbian OpenMax IL Dummy Content Pipe"; // not used
- default_data = "rtsp,http" ; // URI-schemes supported by content pipes,
- // separated with commas
- opaque_data = ""; // not used
- }
- };
- }
- };
- }
--- a/omxil/omxilunittest/test_plugins/dummy_cp_2/group/bld.inf Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-// Dummy Content Pipe Implementation using the static linking approach
-PRJ_MMPFILES
-../mmpfiles/omxildummycontentpipe2.mmp
-
-// Romkit include files
-PRJ_EXPORTS
-omxildummycontentpipe2.iby /epoc32/rom/include/omxildummycontentpipe2.iby
--- a/omxil/omxilunittest/test_plugins/dummy_cp_2/group/omxildummycontentpipe2.iby Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-//
-// omxildummycontentpipe2.iby
-
-// Copyright (c) 2008-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:
-//
-
-#ifndef OMXILDUMMYCONTENTPIPE2_IBY
-#define OMXILDUMMYCONTENTPIPE2_IBY
-
-// OMX IL Dummy Content Pipe 2
-ECOM_PLUGIN(omxildummycontentpipe2.dll, omxildummycontentpipe2.rsc)
-
-#endif // OMXILDUMMYCONTENTPIPE2_IBY
\ No newline at end of file
--- a/omxil/omxilunittest/test_plugins/dummy_cp_2/mmpfiles/omxildummycontentpipe2.mmp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include "../src/omxildummycontentpipe2.hrh"
-
-TARGET omxildummycontentpipe2.dll
-TARGETTYPE PLUGIN
-CAPABILITY ALL -TCB
-
-UID 0x10009D8D KUidOmxILDummyContentPipe2Dll
-VENDORID 0x70000001
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-
-USERINCLUDE ../src
-
-SOURCEPATH ../src
-SOURCE omxildummycontentpipe2.cpp
-
-RESOURCE omxildummycontentpipe2.rss
-
-LIBRARY euser.lib
-LIBRARY ecom.lib
-STATICLIBRARY omxilsymbiancontentpipeif.lib
-
-nostrictdef
-
-SMPSAFE
--- a/omxil/omxilunittest/test_plugins/dummy_cp_2/src/omxildummycontentpipe2.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,250 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include <e32base.h>
-
-#include "omxildummycontentpipe2.h"
-#include "omxildummycontentpipe2.hrh"
-
-OMXIL_CONTENTPIPE_ECOM_ENTRYPOINT(KUidOmxILDummyContentPipe2)
-
-/* Content Pipe Entry Point */
-TInt ContentPipeInit(OMX_HANDLETYPE* aContentPipe)
- {
- TRAPD(err, *aContentPipe = COmxILDummyContentPipe2::NewL());
- return err;
- }
-
-/* Content Pipe Exit Point */
-TInt ContentPipeDeInit(OMX_HANDLETYPE aContentPipe)
- {
- delete static_cast<COmxILDummyContentPipe2*>(reinterpret_cast<CP_PIPETYPE*>(aContentPipe));
- return KErrNone;
- }
-
-
-COmxILDummyContentPipe2* COmxILDummyContentPipe2::NewL()
- {
- return new (ELeave) COmxILDummyContentPipe2();
- }
-
-COmxILDummyContentPipe2::COmxILDummyContentPipe2()
- {
- // fill in handle structure
-
- CP_PIPETYPE::Open = &COmxILDummyContentPipe2::Open;
- CP_PIPETYPE::Close = &COmxILDummyContentPipe2::Close;
- CP_PIPETYPE::Create = &COmxILDummyContentPipe2::Create;
- CP_PIPETYPE::CheckAvailableBytes = &COmxILDummyContentPipe2::CheckAvailableBytes;
- CP_PIPETYPE::SetPosition = &COmxILDummyContentPipe2::SetPosition;
- CP_PIPETYPE::GetPosition = &COmxILDummyContentPipe2::GetPosition;
- CP_PIPETYPE::Read = &COmxILDummyContentPipe2::Read;
- CP_PIPETYPE::ReadBuffer = &COmxILDummyContentPipe2::ReadBuffer;
- CP_PIPETYPE::ReleaseReadBuffer = &COmxILDummyContentPipe2::ReleaseReadBuffer;
- CP_PIPETYPE::Write = &COmxILDummyContentPipe2::Write;
- CP_PIPETYPE::GetWriteBuffer = &COmxILDummyContentPipe2::GetWriteBuffer;
- CP_PIPETYPE::WriteBuffer = &COmxILDummyContentPipe2::WriteBuffer;
- CP_PIPETYPE::RegisterCallback = &COmxILDummyContentPipe2::RegisterCallback;
- }
-
-COmxILDummyContentPipe2::~COmxILDummyContentPipe2()
- {
- }
-
-CPresult COmxILDummyContentPipe2::Open(CPhandle* hContent, CPstring szURI, CP_ACCESSTYPE eAccess)
- {
- COmxILDummyContentHandle* dummyContentHandle = reinterpret_cast<COmxILDummyContentHandle*>(*hContent);
- TInt err = COmxILDummyContentHandle::Open(dummyContentHandle, _L8(szURI), eAccess);
- *hContent = dummyContentHandle;
- return err;
- }
-
-CPresult COmxILDummyContentPipe2::Close(CPhandle hContent)
- {
- COmxILDummyContentHandle* dummyContentHandle = reinterpret_cast<COmxILDummyContentHandle*>(hContent);
- TInt err = dummyContentHandle->Close();
- delete dummyContentHandle;
- return err;
- }
-
-CPresult COmxILDummyContentPipe2::Create(CPhandle* hContent, CPstring szURI)
- {
- COmxILDummyContentHandle* dummyContentHandle = reinterpret_cast<COmxILDummyContentHandle*>(*hContent);
- TInt err = COmxILDummyContentHandle::Create(dummyContentHandle, _L8(szURI));
- *hContent = dummyContentHandle;
- return err;
- }
-
-CPresult COmxILDummyContentPipe2::CheckAvailableBytes(CPhandle hContent, CPuint nBytesRequested, CP_CHECKBYTESRESULTTYPE* eResult)
- {
- return reinterpret_cast<COmxILDummyContentHandle*>(hContent)->CheckAvailableBytes(nBytesRequested, eResult);
- }
-
-CPresult COmxILDummyContentPipe2::SetPosition(CPhandle hContent, CPint nOffset, CP_ORIGINTYPE eOrigin)
- {
- return reinterpret_cast<COmxILDummyContentHandle*>(hContent)->SetPosition(nOffset, eOrigin);
- }
-
-CPresult COmxILDummyContentPipe2::GetPosition(CPhandle hContent, CPuint* pPosition)
- {
- return reinterpret_cast<COmxILDummyContentHandle*>(hContent)->GetPosition((TUint*)pPosition);
- }
-
-CPresult COmxILDummyContentPipe2::Read(CPhandle hContent, CPbyte* pData, CPuint nSize)
- {
- return reinterpret_cast<COmxILDummyContentHandle*>(hContent)->Read((TUint8*)pData, nSize);
- }
-
-CPresult COmxILDummyContentPipe2::ReadBuffer(CPhandle hContent, CPbyte** ppBuffer, CPuint* nSize, CPbool bForbidCopy)
- {
- return reinterpret_cast<COmxILDummyContentHandle*>(hContent)->ReadBuffer((TUint8**)ppBuffer, (TUint*)nSize, bForbidCopy);
- }
-
-CPresult COmxILDummyContentPipe2::ReleaseReadBuffer(CPhandle hContent, CPbyte* pBuffer)
- {
- return reinterpret_cast<COmxILDummyContentHandle*>(hContent)->ReleaseReadBuffer((TUint8*)pBuffer);
- }
-
-CPresult COmxILDummyContentPipe2::Write(CPhandle hContent, CPbyte* data, CPuint nSize)
- {
- return reinterpret_cast<COmxILDummyContentHandle*>(hContent)->Write((TUint8*)data, nSize);
- }
-
-CPresult COmxILDummyContentPipe2::GetWriteBuffer(CPhandle hContent, CPbyte** ppBuffer, CPuint nSize)
- {
- return reinterpret_cast<COmxILDummyContentHandle*>(hContent)->GetWriteBuffer((TUint8**)ppBuffer, nSize);
- }
-
-CPresult COmxILDummyContentPipe2::WriteBuffer(CPhandle hContent, CPbyte* pBuffer, CPuint nFilledSize)
- {
- return reinterpret_cast<COmxILDummyContentHandle*>(hContent)->WriteBuffer((TUint8*)pBuffer, nFilledSize);
- }
-
-CPresult COmxILDummyContentPipe2::RegisterCallback(CPhandle hContent, CPresult (*ClientCallback)(CP_EVENTTYPE eEvent, CPuint iParam))
- {
- return reinterpret_cast<COmxILDummyContentHandle*>(hContent)->RegisterCallback((TUint (*)(CP_EVENTTYPE, TUint))ClientCallback);
- }
-
-COmxILDummyContentPipe2::COmxILDummyContentHandle::COmxILDummyContentHandle()
- {
- }
-
-COmxILDummyContentPipe2::COmxILDummyContentHandle::~COmxILDummyContentHandle()
- {
- }
-
-TInt COmxILDummyContentPipe2::COmxILDummyContentHandle::Open(COmxILDummyContentHandle*& aHandle, const TDesC8& /*aUri*/, CP_ACCESSTYPE /*aAccess*/)
- {
- aHandle = new COmxILDummyContentHandle;
- if (aHandle != NULL)
- {
- return KErrNone;
- }
- else
- {
- return KD_ENOMEM;
- }
- }
-
-TInt COmxILDummyContentPipe2::COmxILDummyContentHandle::Close()
- {
- return KErrNone;
- }
-
-TInt COmxILDummyContentPipe2::COmxILDummyContentHandle::Create(COmxILDummyContentHandle*& aHandle, const TDesC8& /*aUri*/)
- {
- aHandle = new COmxILDummyContentHandle;
- if (aHandle != NULL)
- {
- return KErrNone;
- }
- else
- {
- return KD_ENOMEM;
- }
- }
-
-TInt COmxILDummyContentPipe2::COmxILDummyContentHandle::CheckAvailableBytes(TUint /*aBytesRequested*/, CP_CHECKBYTESRESULTTYPE* /*aResult*/)
- {
- return KD_EINVAL;
- }
-
-TInt COmxILDummyContentPipe2::COmxILDummyContentHandle::SetPosition(TInt aOffset, CP_ORIGINTYPE aOrigin)
- {
- switch(aOrigin)
- {
- case CP_OriginBegin:
- {
- if (aOffset < 0)
- return KD_EINVAL;
- iPosition = aOffset;
- break;
- }
-
- case CP_OriginCur:
- case CP_OriginEnd:
- {
- return KD_EINVAL;
- }
-
- default:
- {
- return KD_EINVAL;
- }
- }
-
- return KErrNone;
- }
-
-TInt COmxILDummyContentPipe2::COmxILDummyContentHandle::GetPosition(TUint* aPosition)
- {
- *aPosition = iPosition;
- return KErrNone;
- }
-
-TInt COmxILDummyContentPipe2::COmxILDummyContentHandle::Read(TUint8* /*aData*/, TUint /*aSize*/)
- {
- return KD_EINVAL;
- }
-
-TInt COmxILDummyContentPipe2::COmxILDummyContentHandle::ReadBuffer(TUint8** /*aBuffer*/, TUint* /*aSize*/, TBool /*aForbidCopy*/)
- {
- return KD_EINVAL;
- }
-
-TInt COmxILDummyContentPipe2::COmxILDummyContentHandle::ReleaseReadBuffer(TUint8* /*aBuffer*/)
- {
- return KD_EINVAL;
- }
-
-TInt COmxILDummyContentPipe2::COmxILDummyContentHandle::Write(TUint8* /*aData*/, TUint /*aSize*/)
- {
- return KD_EINVAL;
- }
-
-TInt COmxILDummyContentPipe2::COmxILDummyContentHandle::GetWriteBuffer(TUint8** /*aBuffer*/, TUint /*aSize*/)
- {
- return KD_EINVAL;
- }
-
-TInt COmxILDummyContentPipe2::COmxILDummyContentHandle::WriteBuffer(TUint8* /*aBuffer*/, TUint /*aFilledSize*/)
- {
- return KD_EINVAL;
- }
-
-TInt COmxILDummyContentPipe2::COmxILDummyContentHandle::RegisterCallback(TUint (* /*ClientCallback*/)(CP_EVENTTYPE aEvent, TUint aParam))
- {
- return KD_EINVAL;
- }
--- a/omxil/omxilunittest/test_plugins/dummy_cp_2/src/omxildummycontentpipe2.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @internalComponent
- @prototype
-*/
-
-#ifndef OMXILDUMMYCONTENTPIPE2_H
-#define OMXILDUMMYCONTENTPIPE2_H
-
-#include <openmax/il/core/omxilsymbiancontentpipeif.h>
-
-NONSHARABLE_CLASS(COmxILDummyContentPipe2) : public CP_PIPETYPE
- {
-public:
- static COmxILDummyContentPipe2* NewL();
- ~COmxILDummyContentPipe2();
-
- static CPresult Open(CPhandle* hContent, CPstring szURI, CP_ACCESSTYPE eAccess);
-
- static CPresult Close(CPhandle hContent);
-
- static CPresult Create(CPhandle* hContent, CPstring szURI);
-
- static CPresult CheckAvailableBytes(CPhandle hContent, CPuint nBytesRequested, CP_CHECKBYTESRESULTTYPE* eResult);
-
- static CPresult SetPosition(CPhandle hContent, CPint nOffset, CP_ORIGINTYPE eOrigin);
-
- static CPresult GetPosition(CPhandle hContent, CPuint* pPosition);
-
- static CPresult Read(CPhandle hContent, CPbyte* pData, CPuint nSize);
-
- static CPresult ReadBuffer(CPhandle hContent, CPbyte** ppBuffer, CPuint* nSize, CPbool bForbidCopy);
-
- static CPresult ReleaseReadBuffer(CPhandle hContent, CPbyte* pBuffer);
-
- static CPresult Write(CPhandle hContent, CPbyte* data, CPuint nSize);
-
- static CPresult GetWriteBuffer(CPhandle hContent, CPbyte** ppBuffer, CPuint nSize);
-
- static CPresult WriteBuffer(CPhandle hContent, CPbyte* pBuffer, CPuint nFilledSize);
-
- static CPresult RegisterCallback(CPhandle hContent, CPresult (*ClientCallback)(CP_EVENTTYPE eEvent, CPuint iParam));
-
-private:
- COmxILDummyContentPipe2();
-
- class COmxILDummyContentHandle : public CBase
- {
- public:
- static TInt Open(COmxILDummyContentHandle*& aHandle, const TDesC8& aUri, CP_ACCESSTYPE aAccess);
-
- TInt Close();
-
- static TInt Create(COmxILDummyContentHandle*& aHandle, const TDesC8& aUri);
-
- TInt CheckAvailableBytes(TUint aBytesRequested, CP_CHECKBYTESRESULTTYPE* aResult);
-
- TInt SetPosition(TInt aOffset, CP_ORIGINTYPE aOrigin);
-
- TInt GetPosition(TUint* aPosition);
-
- TInt Read(TUint8* aData, TUint aSize);
-
- TInt ReadBuffer(TUint8** aBuffer, TUint* aSize, TBool aForbidCopy);
-
- TInt ReleaseReadBuffer(TUint8* aBuffer);
-
- TInt Write(TUint8* aData, TUint aSize);
-
- TInt GetWriteBuffer(TUint8** aBuffer, TUint aSize);
-
- TInt WriteBuffer(TUint8* aBuffer, TUint aFilledSize);
-
- TInt RegisterCallback(TUint (*ClientCallback)(CP_EVENTTYPE aEvent, TUint aParam));
-
- ~COmxILDummyContentHandle();
-
- private:
- COmxILDummyContentHandle();
-
- private:
- TUint iPosition;
- };
- };
-
-#endif // OMXILDUMMYCONTENTPIPE2_H
--- a/omxil/omxilunittest/test_plugins/dummy_cp_2/src/omxildummycontentpipe2.hrh Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef OMXILDUMMYCONTENTPIPE2_HRH
-#define OMXILDUMMYCONTENTPIPE2_HRH
-
-#define KUidOmxILDummyContentPipe2 0x102834C9
-#define KUidOmxILDummyContentPipe2Dll 0x102834C8
-
-#endif // OMXILDUMMYCONTENTPIPE2_HRH
-
--- a/omxil/omxilunittest/test_plugins/dummy_cp_2/src/omxildummycontentpipe2.rss Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include <openmax/il/core/omxilcontentpipeif.hrh>
-#include "omxildummycontentpipe2.hrh"
-#include <ecom/registryinfo.rh>
-
-RESOURCE REGISTRY_INFO theInfo
- {
- dll_uid = KUidOmxILDummyContentPipe2Dll;
- interfaces =
- {
- INTERFACE_INFO
- {
- interface_uid = KUidOmxILContentPipeIf;
- implementations =
- {
- IMPLEMENTATION_INFO
- {
- implementation_uid = KUidOmxILDummyContentPipe2;
- version_no = 1;
- display_name = "Symbian OpenMax IL Dummy Content Pipe"; // not used
- default_data = "file" ; // URI-schemes supported by content pipes,
- // separated with commas
- opaque_data = ""; // not used
- }
- };
- }
- };
- }
--- a/omxil/omxilunittest/test_plugins/dummy_loader/group/bld.inf Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-// Dummy Loader Implementation using the static linking approach
-PRJ_MMPFILES
-../mmpfiles/omxildummyloader.mmp
-
-PRJ_EXPORTS
-omxildummyloader.iby /epoc32/rom/include/omxildummyloader.iby
--- a/omxil/omxilunittest/test_plugins/dummy_loader/group/omxildummyloader.iby Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-//
-// omxildummyloader.iby
-
-// Copyright (c) 2008-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:
-//
-
-#ifndef OMXILDUMMYLOADER_IBY
-#define OMXILDUMMYLOADER_IBY
-
-// OMX IL Dummy Loader
-ECOM_PLUGIN(omxildummyloader.dll, omxildummyloader.rsc)
-
-#endif // OMXILDUMMYLOADER_IBY
\ No newline at end of file
--- a/omxil/omxilunittest/test_plugins/dummy_loader/mmpfiles/omxildummyloader.mmp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include "../src/omxildummyloader.hrh"
-
-TARGET omxildummyloader.dll
-TARGETTYPE PLUGIN
-CAPABILITY ALL -TCB
-
-UID 0x10009D8D KUidOmxILDummyLoaderDll
-VENDORID 0x70000001
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-OS_LAYER_ESTLIB_SYSTEMINCLUDE
-
-SOURCEPATH ../src
-SOURCE omxildummyloader.cpp
-RESOURCE omxildummyloader.rss
-
-LIBRARY euser.lib
-LIBRARY ecom.lib
-LIBRARY libc.lib
-STATICLIBRARY omxilsymbianloaderif.lib
-
-SMPSAFE
--- a/omxil/omxilunittest/test_plugins/dummy_loader/src/omxildummyloader.cpp Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,446 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include "omxildummyloader.h"
-#include "omxildummyloader.hrh"
-#include <ecom/ecom.h>
-#include <ecom/implementationproxy.h>
-#include <openmax/il/core/omxilloaderif.h>
-#include <openmax/il/khronos/v1_x/OMX_Core.h>
-#include <openmax/il/khronos/v1_x/OMX_Component.h>
-#include <string.h>
-#include <delimitedparser8.h>
-#include <openmax/il/core/omxilloaderif.hrh>
-#include <openmax/il/loader/omxilcomponentif.hrh>
-
-OMX_ERRORTYPE OmxInitializeComponentLoader(OMX_LOADERTYPE *loader);
-OMX_ERRORTYPE OmxUnInitializeComponentLoader(OMX_LOADERTYPE *loader);
-OMX_ERRORTYPE OmxLoadComponent( OMX_LOADERTYPE *loader,
- OMX_OUT OMX_HANDLETYPE* pHandle,
- OMX_IN OMX_STRING cComponentName,
- OMX_IN OMX_PTR pAppData,
- OMX_IN OMX_CALLBACKTYPE* pCallBacks);
-OMX_ERRORTYPE OmxUnloadComponent( OMX_LOADERTYPE *loader,
- OMX_HANDLETYPE hComponent);
-OMX_ERRORTYPE OmxComponentNameEnum( OMX_LOADERTYPE *loader,
- OMX_OUT OMX_STRING cComponentName,
- OMX_IN OMX_U32 nNameLength,
- OMX_IN OMX_U32 nIndex);
-OMX_ERRORTYPE OmxGetRolesOfComponent( OMX_LOADERTYPE *loader,
- OMX_IN OMX_STRING compName,
- OMX_INOUT OMX_U32 *pNumRoles,
- OMX_OUT OMX_U8 **roles);
-OMX_ERRORTYPE OmxGetComponentsOfRole( OMX_LOADERTYPE *loader,
- OMX_IN OMX_STRING role,
- OMX_INOUT OMX_U32 *pNumComps,
- OMX_INOUT OMX_U8 **compNames);
-
-
-
-OMX_ERRORTYPE OmxInitializeComponentLoader(OMX_LOADERTYPE *loader)
- {
- return ((COmxILDummyLoader*)((OMX_LOADERTYPE*)loader)->pLoaderPrivate)->InitializeComponentLoader();
- }
-
-OMX_ERRORTYPE OmxUnInitializeComponentLoader(OMX_LOADERTYPE *loader)
- {
- COmxILDummyLoader* dummyLoader = (COmxILDummyLoader*)((OMX_LOADERTYPE*)loader)->pLoaderPrivate;
- OMX_ERRORTYPE error = dummyLoader->UnInitializeComponentLoader(loader);
- delete dummyLoader;
- dummyLoader = NULL;
- return error;
- }
-
-OMX_ERRORTYPE OmxLoadComponent( OMX_LOADERTYPE *loader,
- OMX_OUT OMX_HANDLETYPE* pHandle,
- OMX_IN OMX_STRING cComponentName,
- OMX_IN OMX_PTR pAppData,
- OMX_IN OMX_CALLBACKTYPE* pCallBacks)
- {
- return ((COmxILDummyLoader*)((OMX_LOADERTYPE*)loader)->pLoaderPrivate)->LoadComponent(pHandle,cComponentName,pAppData,pCallBacks);
- }
-
-OMX_ERRORTYPE OmxUnloadComponent( OMX_LOADERTYPE *loader,
- OMX_HANDLETYPE hComponent)
- {
- return ((COmxILDummyLoader*)((OMX_LOADERTYPE*)loader)->pLoaderPrivate)->UnloadComponent(hComponent);
- }
-
-OMX_ERRORTYPE OmxComponentNameEnum( OMX_LOADERTYPE *loader,
- OMX_OUT OMX_STRING cComponentName,
- OMX_IN OMX_U32 nNameLength,
- OMX_IN OMX_U32 nIndex)
- {
- return ((COmxILDummyLoader*)((OMX_LOADERTYPE*)loader)->pLoaderPrivate)->ComponentNameEnum(cComponentName,nNameLength,nIndex);
- }
-
-OMX_ERRORTYPE OmxGetRolesOfComponent( OMX_LOADERTYPE *loader,
- OMX_IN OMX_STRING compName,
- OMX_INOUT OMX_U32 *pNumRoles,
- OMX_OUT OMX_U8 **roles)
- {
- return ((COmxILDummyLoader*)((OMX_LOADERTYPE*)loader)->pLoaderPrivate)->GetRolesOfComponent(compName,pNumRoles,roles);
- }
-
-OMX_ERRORTYPE OmxGetComponentsOfRole( OMX_LOADERTYPE *loader,
- OMX_IN OMX_STRING role,
- OMX_INOUT OMX_U32 *pNumComps,
- OMX_INOUT OMX_U8 **compNames)
- {
- return ((COmxILDummyLoader*)((OMX_LOADERTYPE*)loader)->pLoaderPrivate)->GetComponentsOfRole(role,pNumComps,compNames);
- }
-
-COmxILDummyLoader::operator OMX_HANDLETYPE()
- {
- return (OMX_HANDLETYPE)&iHandle;
- }
-
-
-OMX_ERRORTYPE COmxILDummyLoader::InitializeComponentLoader()
- {
- RImplInfoPtrArray ecomArray;
- TRAPD(error,REComSession::ListImplementationsL(TUid::Uid(KUidOmxILDummyComponentIf),ecomArray));
- if( error != KErrNone )
- {
- ecomArray.ResetAndDestroy();
- return OMX_ErrorInsufficientResources;
- }
- TInt index;
- CImplementationInformation* info;
-
- TOmxComponentInfo component;
-
- iComponentNameList.Reset();
-
- const TInt KEcomArrayCount = ecomArray.Count();
- for( index=0; index<KEcomArrayCount && error == KErrNone; ++index )
- {
- info = ecomArray[index];
- component.iUid = info->ImplementationUid();
- if( info->DisplayName().Length() >= OMX_MAX_STRINGNAME_SIZE ||
- info->DataType().Length() >= OMX_MAX_ROLESBUFFER_SIZE )
- {
- error = KErrBadName;
- break;
- }
-
- component.iComponentName.Copy(info->DisplayName());
- component.iRoles.Copy(info->DataType());
-
- error = iComponentNameList.Append(component);
- if(error)
- {
- break;
- }
- }
- ecomArray.ResetAndDestroy();
- if( error != KErrNone )
- {
- if( error == KErrNoMemory )
- {
- return OMX_ErrorInsufficientResources;
- }
-
- return OMX_ErrorUndefined;
- }
- return OMX_ErrorNone;
- }
-
-OMX_ERRORTYPE COmxILDummyLoader::UnInitializeComponentLoader(OMX_LOADERTYPE * /*loader*/)
- {
- iComponentNameList.Reset();
- iComponents.ResetAndDestroy();
- return OMX_ErrorNone;
- }
-
-OMX_ERRORTYPE COmxILDummyLoader::LoadComponent( OMX_HANDLETYPE* pHandle,
- OMX_STRING cComponentName,
- OMX_PTR pAppData,
- OMX_CALLBACKTYPE* pCallBacks)
- {
- TInt index;
- TPtrC8 lComponentName(reinterpret_cast<TUint8 *>(cComponentName), strlen(cComponentName));
- COmxILComponentIf* component = NULL;
- OMX_ERRORTYPE error = OMX_ErrorComponentNotFound;
-
- const TInt KComponentNameListCount = iComponentNameList.Count();
- for( index = 0; index < KComponentNameListCount; ++index )
- {
- TOmxComponentInfo& comp = iComponentNameList[index];
- if( comp.iComponentName.CompareF(lComponentName) == 0 )
- {
- TRAPD(err, component = COmxILComponentIf::CreateImplementationL(iComponentNameList[index].iUid));
- if( err != KErrNone )
- {
- if ( err == KErrNoMemory )
- {
- return OMX_ErrorInsufficientResources;
- }
- else
- {
- return OMX_ErrorInvalidComponent;
- }
- }
-
- *pHandle = component->Handle();
- if( !*pHandle )
- {
- return OMX_ErrorInvalidComponent;
- }
-
- error = (static_cast<OMX_COMPONENTTYPE*>(*pHandle))->SetCallbacks(*pHandle, pCallBacks, pAppData);
- if(error != OMX_ErrorNone)
- {
- (static_cast<OMX_COMPONENTTYPE*>(*pHandle))->ComponentDeInit(*pHandle);
- delete component;
- return error;
- }
- if( iComponents.Append(component) != KErrNone )
- {
- (static_cast<OMX_COMPONENTTYPE*>(*pHandle))->ComponentDeInit(*pHandle);
- delete component;
- return OMX_ErrorInsufficientResources;
- }
- return error;
- }
- }
- return error;
- }
-
-OMX_ERRORTYPE COmxILDummyLoader::UnloadComponent( OMX_HANDLETYPE hComponent)
- {
- TInt index;
- COmxILComponentIf* component;
-
- const TInt KComponentsCount = iComponents.Count();
- for( index = 0; index < KComponentsCount; ++index )
- {
- component = iComponents[index];
- if( component->Handle() == hComponent )
- {
- (static_cast<OMX_COMPONENTTYPE*>(hComponent))->ComponentDeInit( hComponent );
- delete component;
- iComponents.Remove(index);
- return OMX_ErrorNone;
- }
- }
- return OMX_ErrorComponentNotFound;
- }
-
-OMX_ERRORTYPE COmxILDummyLoader::ComponentNameEnum( OMX_STRING aComponentName,
- OMX_U32 aNameLength,
- OMX_U32 aIndex)
- {
- if( !aComponentName )
- {
- return OMX_ErrorBadParameter;
- }
-
- const TInt KIndexForPopulateList = 0;
- if ( aIndex == KIndexForPopulateList )
- {
- RImplInfoPtrArray ecomArray;
- TRAPD(error, REComSession::ListImplementationsL(TUid::Uid(KUidOmxILDummyComponentIf), ecomArray));
- if (error != KErrNone)
- {
- return OMX_ErrorUndefined;
- }
- TInt index;
- iComponentNameList.Reset();
-
- const TInt KEcomArrayCount = ecomArray.Count();
- // Create Controller Implementation Information for each entry
- for (index=0; index<KEcomArrayCount; ++index)
- {
- CImplementationInformation& info = *(ecomArray[index]);
- TOmxComponentInfo component;
-
- component.iUid = info.ImplementationUid();
- if( info.DisplayName().Length() >= OMX_MAX_STRINGNAME_SIZE ||
- info.DataType().Length() >= OMX_MAX_ROLESBUFFER_SIZE )
- {
- error = KErrBadName;
- break;
- }
- component.iComponentName.Copy(info.DisplayName());
- component.iRoles.Copy(info.DataType());
- error = iComponentNameList.Append(component);
- if( error != KErrNone )
- {
- break;
- }
- }
- ecomArray.ResetAndDestroy();
- if( error != KErrNone )
- {
- return OMX_ErrorUndefined;
- }
- }
- if (aIndex<iComponentNameList.Count())
- {
- TOmxComponentInfo& comp = iComponentNameList[aIndex];
- TPtr8 ptr((TUint8*)aComponentName, 0, aNameLength);
- ptr.Copy(comp.iComponentName);
- ptr.PtrZ();
- }
- else
- {
- return OMX_ErrorNoMore;
- }
- return OMX_ErrorNone;
- }
-
-OMX_ERRORTYPE COmxILDummyLoader::GetRolesOfComponent( OMX_STRING compName,
- OMX_U32 *pNumRoles,
- OMX_U8 **roles)
- {
- TInt index, roleindex;
- TPtrC8 tComponentName(reinterpret_cast<TUint8 *>(compName), strlen(compName));
-
- if( !pNumRoles || !compName )
- {
- return OMX_ErrorBadParameter;
- }
-
- OMX_ERRORTYPE error = OMX_ErrorInvalidComponentName;
- const TInt KComponentNameListCount = iComponentNameList.Count();
- for( index = 0, roleindex = 0; index < KComponentNameListCount; ++index )
- {
- if( iComponentNameList[index].iComponentName.Compare(tComponentName) == 0 )
- {
- char parser[OMX_MAX_ROLESBUFFER_SIZE], *p;
- size_t size;
- TInt i, j;
-
- size = iComponentNameList[index].iRoles.Length();
-
- strncpy(parser,
- reinterpret_cast<char*>(const_cast<unsigned char*>(iComponentNameList[index].iRoles.Ptr())),
- size);
- parser[size]=0;
-
- for( i=0, j=0, p=parser; i<size; ++i, ++j, ++p )
- {
- if( *p == ',' )
- {
- if( roles && (roleindex < *pNumRoles) )
- {
- roles[roleindex][j] = 0;
- }
- if( i < size )
- {
- ++roleindex;
- j=-1;
- }
- }
- else
- {
- if( roles && (roleindex < *pNumRoles) )
- {
- roles[roleindex][j] = *p;
- }
- }
- }
- if( roles && (roleindex < *pNumRoles) )
- {
- roles[roleindex][j] = 0;
- }
- ++roleindex;
- error = OMX_ErrorNone;
- break;
- }
- }
- *pNumRoles = roleindex;
- return error;
- }
-
-OMX_ERRORTYPE COmxILDummyLoader::GetComponentsOfRole( OMX_STRING role,
- OMX_U32 *pNumComps,
- OMX_U8 **compNames)
- {
- TInt index, compindex;
- TPtrC8 lRole(reinterpret_cast<TUint8 *>(role), strlen(role));
-
- if( !pNumComps )
- {
- return OMX_ErrorBadParameter;
- }
-
- TInt KComponentNameListCount = iComponentNameList.Count();
- for( index = 0, compindex = 0; index < KComponentNameListCount; ++index )
- {
- if( iComponentNameList[index].iRoles.Find(lRole) != KErrNotFound )
- {
- if( compNames != NULL )
- {
- if( compNames[compindex]!= NULL )
- {
- strncpy((char*)compNames[compindex],(char*)iComponentNameList[index].iComponentName.Ptr(),iComponentNameList[index].iComponentName.Length());
- compNames[compindex][iComponentNameList[index].iComponentName.Size()]=0;
- }
- else
- {
- return OMX_ErrorBadParameter;
- }
- }
- ++compindex;
- }
- }
- *pNumComps = compindex;
- return OMX_ErrorNone;
- }
-
-OMX_HANDLETYPE COmxILDummyLoader::Handle()
- {
- return iHandle;
- }
-
-COmxILDummyLoader::COmxILDummyLoader(OMX_HANDLETYPE hComponent)
- {
- iHandle = static_cast<OMX_LOADERTYPE*>(hComponent);
-
- iHandle->InitializeComponentLoader = &::OmxInitializeComponentLoader;
- iHandle->UnInitializeComponentLoader = &::OmxUnInitializeComponentLoader;
- iHandle->LoadComponent = &::OmxLoadComponent;
- iHandle->UnloadComponent = &::OmxUnloadComponent;
- iHandle->ComponentNameEnum = &::OmxComponentNameEnum;
- iHandle->GetRolesOfComponent = &::OmxGetRolesOfComponent;
- iHandle->GetComponentsOfRole = &::OmxGetComponentsOfRole;
-
- iHandle->pLoaderPrivate = this;
- }
-
-COmxILDummyLoader::~COmxILDummyLoader()
- {
- }
-
-void COmxILDummyLoader::ConstructL()
- {
- }
-
-
-// ECOM
-OMX_LOADER_ECOM_ENTRYPOINT(KUidOmxILDummyLoader)
-
-/* Content Pipe Entry Point */
-OMX_ERRORTYPE OMX_LoaderSetup(OMX_HANDLETYPE aLoader)
- {
- COmxILDummyLoader* self = new COmxILDummyLoader(aLoader);
- if( self == NULL )
- {
- return OMX_ErrorInsufficientResources;
- }
- return OMX_ErrorNone;
- }
--- a/omxil/omxilunittest/test_plugins/dummy_loader/src/omxildummyloader.h Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-/**
- @file
- @internalComponent
- @prototype
-*/
-
-#ifndef OMXILDUMMYLOADER_H
-#define OMXILDUMMYLOADER_H
-
-#include <e32base.h>
-#include <e32des8.h>
-#include <openmax/il/loader/omxilcomponentif.h>
-#include <openmax/il/core/omxilsymbianloaderif.h>
-
-class COmxILDummyLoader : public CBase
- {
-public:
- class TOmxComponentInfo
- {
- public:
- TOmxComponentInfo();
- public:
- TUid iUid;
- TBuf8<OMX_MAX_STRINGNAME_SIZE> iComponentName;
- TBuf8<OMX_MAX_ROLESBUFFER_SIZE> iRoles;
- };
-
-public:
- OMX_HANDLETYPE Handle();
-
- COmxILDummyLoader(OMX_HANDLETYPE aLoader);
- ~COmxILDummyLoader();
-
- OMX_ERRORTYPE InitializeComponentLoader();
- OMX_ERRORTYPE UnInitializeComponentLoader(OMX_LOADERTYPE* loader);
- OMX_ERRORTYPE LoadComponent( OMX_HANDLETYPE* pHandle,
- const OMX_STRING cComponentName,
- OMX_PTR pAppData,
- OMX_CALLBACKTYPE* pCallBacks );
- OMX_ERRORTYPE UnloadComponent( OMX_HANDLETYPE hComponent );
- OMX_ERRORTYPE ComponentNameEnum( OMX_STRING cComponentName,
- OMX_U32 nNameLength,
- const OMX_U32 nIndex );
- OMX_ERRORTYPE GetRolesOfComponent( const OMX_STRING compName,
- OMX_U32* pNumRoles,
- OMX_U8** roles );
- OMX_ERRORTYPE GetComponentsOfRole( const OMX_STRING role,
- OMX_U32* pNumComps,
- OMX_U8** compNames );
-
- operator OMX_HANDLETYPE();
-
-private:
- void ConstructL();
-
-private:
- OMX_LOADERTYPE* iHandle;
-
- RArray<TOmxComponentInfo> iComponentNameList;
- RPointerArray<COmxILComponentIf> iComponents;
- };
-
-inline COmxILDummyLoader::TOmxComponentInfo::TOmxComponentInfo():
- iUid(TUid::Uid(0)),iComponentName(0),iRoles(0)
- {
- }
-
-
-#endif // OMXILDUMMYLOADER_H
--- a/omxil/omxilunittest/test_plugins/dummy_loader/src/omxildummyloader.hrh Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#ifndef OMXILDUMMYLOADER_HRH
-#define OMXILDUMMYLOADER_HRH
-
-#define KUidOmxILDummyLoader 0x10285C05
-#define KUidOmxILDummyLoaderDll 0x10285C06
-#define KUidOmxILDummyComponentIf 0x10285CC0
-
-#endif // OMXILDUMMYLOADER_HRH
-
--- a/omxil/omxilunittest/test_plugins/dummy_loader/src/omxildummyloader.rss Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include <openmax/il/core/omxilloaderif.hrh>
-#include "omxildummyloader.hrh"
-#include <ecom/registryinfo.rh>
-
-RESOURCE REGISTRY_INFO theInfo
- {
- dll_uid = KUidOmxILDummyLoaderDll;
- interfaces =
- {
- INTERFACE_INFO
- {
- interface_uid = KUidOmxILLoaderInterface;
- implementations =
- {
- IMPLEMENTATION_INFO
- {
- implementation_uid = KUidOmxILDummyLoader;
- version_no = 1;
- display_name = ""; // not used
- default_data = "" ; // URI-schemes supported by content pipes,
- opaque_data = ""; // not used
- }
- };
- }
- };
- }
--- a/omxil/openmax/il/group/bld.inf Mon Aug 23 21:48:44 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-// Copyright (c) 2008-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:
-//
-
-#include "../../../omxilapi/group/bld.inf"
-#include "../../../omxilcore/group/bld.inf"
-#include "../../../omxilcomponentcommon/group/bld.inf"
-#include "../../../omxilrefcomps/ref_components/group/bld.inf"
--- a/package_definition.xml Mon Aug 23 21:48:44 2010 +0100
+++ b/package_definition.xml Wed Sep 08 17:15:23 2010 +0100
@@ -471,29 +471,6 @@
<unit mrp="mmtestenv/mmtesttools/Group/multimedia_testtools_source.mrp" bldFile="mmtestenv/mmtesttools/Group"/>
</component>
</collection>
- <collection id="omxil" name="OpenMAX IL" level="hw-if">
- <component id="omxilapi" name="OpenMAX IL API" introduced="^3" purpose="optional">
- <unit version="1" bldFile="omxil/omxilapi/group" mrp="omxil/omxilapi/group/multimedia_omx_il_api.mrp"/>
- </component>
- <component id="omxilcore" name="OpenMAX IL Core" introduced="^3" purpose="optional">
- <unit version="1" bldFile="omxil/omxilcore/group" mrp="omxil/omxilcore/group/multimedia_omx_il_core.mrp"/>
- </component>
- <component id="omxilcomponentcommon" name="OpenMAX IL Component Framework" introduced="^3" purpose="optional">
- <unit version="1" bldFile="omxil/omxilcomponentcommon/group" mrp="omxil/omxilcomponentcommon/group/multimedia_omx_il_comp.mrp"/>
- </component>
- <component id="omxilrefcomps" name="OpenMAX IL Reference Components" introduced="^3" purpose="optional">
- <unit version="1" bldFile="omxil/omxilrefcomps/ref_components/group" mrp="omxil/omxilrefcomps/ref_components/group/multimedia_omx_il_comp_ref.mrp"/>
- </component>
- <component id="omxilunittest" name="OpenMAX IL Unit Tests" introduced="^3" purpose="development" filter="test">
- <unit mrp="omxil/omxilunittest/group/multimedia_unittest_omx_il.mrp" bldFile="omxil/omxilunittest/group"/>
- </component>
- <component id="omxilcoreconftest" name="OpenMAX IL Core Conformance Suite" introduced="^3" purpose="development" filter="test">
- <unit mrp="omxil/omxilcoreconftest/group/multimedia_omx_il_core_loader_conf_suite.mrp" bldFile="omxil/omxilcoreconftest/group"/>
- </component>
- <component id="mmilapi" name="Multimedia Integration Layer API" introduced="^3" purpose="development">
- <unit bldFile="omxil/mmilapi/group" mrp="omxil/mmilapi/group/multimedia_il_api.mrp"/>
- </component>
- </collection>
<collection id="devsound" name="Sound Device" level="devices">
<component id="devsoundapi" name="DevSound API" introduced="7.0s" purpose="mandatory">
<unit bldFile="devsound/devsoundapi/group" mrp="devsound/devsoundapi/group/multimedia_mdf_devsound_api.mrp"/>