# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1273588628 -10800 # Node ID 8184f75a63d465c6e69225374a48e4bc73d7ff58 # Parent cd271b19d82401164b7f5fda75a3d70f0426e188 Revision: 201017 Kit: 201019 diff -r cd271b19d824 -r 8184f75a63d4 devsound/devsoundapi/group/bld.inf --- a/devsound/devsoundapi/group/bld.inf Tue Apr 27 18:12:22 2010 +0300 +++ b/devsound/devsoundapi/group/bld.inf Tue May 11 17:37:08 2010 +0300 @@ -19,12 +19,12 @@ ../inc/SoundDevice.inl SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/sounddevice.inl) ../inc/DevSoundStandardCustomInterfaces.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/devsoundstandardcustominterfaces.h) ../inc/MmfDevSoundCustomInterfaceSupport.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfdevsoundcustominterfacesupport.h) -../inc/mmfdevsoundcustominterfaceobserver.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/server/mmfdevsoundcustominterfaceobserver.h) -../inc/mmfdevsoundcustominterfacesupportclasses.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/server/mmfdevsoundcustominterfacesupportclasses.h) +../inc/mmfdevsoundcustominterfaceobserver.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfdevsoundcustominterfaceobserver.h) +../inc/mmfdevsoundcustominterfacesupportclasses.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfdevsoundcustominterfacesupportclasses.h) ../bwins/MMFDEVSOUND.DEF /epoc32/include/def/bwins/mmfdevsound.def ../eabi/MMFDevSound.def /epoc32/include/def/eabi/mmfdevsound.def PRJ_MMPFILES // DevSound -../MMPFiles/mmfdevsoundlib.mmp +../mmpfiles/mmfdevsoundlib.mmp diff -r cd271b19d824 -r 8184f75a63d4 devsound/devsoundpluginsupport/mmpfiles/MMFDevSoundCIFileBlockLength.mmp --- a/devsound/devsoundpluginsupport/mmpfiles/MMFDevSoundCIFileBlockLength.mmp Tue Apr 27 18:12:22 2010 +0300 +++ b/devsound/devsoundpluginsupport/mmpfiles/MMFDevSoundCIFileBlockLength.mmp Tue May 11 17:37:08 2010 +0300 @@ -13,7 +13,7 @@ // Description: // -#include "../src/custominterfaces/cmmfdevsoundcifileblocklengthimpluid.hrh" +#include "../src/CustomInterfaces/cmmfdevsoundcifileblocklengthimpluid.hrh" /** @file @@ -29,7 +29,7 @@ UID 0x10009D8D KMmfUidCIFileBlockLengthDll VENDORID 0x70000001 -SOURCEPATH ../src/custominterfaces +SOURCEPATH ../src/CustomInterfaces SOURCE cmmfdevsoundcifileblocklength.cpp diff -r cd271b19d824 -r 8184f75a63d4 devsound/devsoundpluginsupport/mmpfiles/aacdecoderconfigci.mmp --- a/devsound/devsoundpluginsupport/mmpfiles/aacdecoderconfigci.mmp Tue Apr 27 18:12:22 2010 +0300 +++ b/devsound/devsoundpluginsupport/mmpfiles/aacdecoderconfigci.mmp Tue May 11 17:37:08 2010 +0300 @@ -28,7 +28,7 @@ UID 0x10009D8D KMmfUidCustomInterfaceAacDecoderConfigDll VENDORID 0x70000001 -SOURCEPATH ../src/custominterfaces +SOURCEPATH ../src/CustomInterfaces SOURCE aacdecoderconfigci.cpp diff -r cd271b19d824 -r 8184f75a63d4 devsound/devsoundpluginsupport/mmpfiles/advancedaacencodesettingsci.mmp --- a/devsound/devsoundpluginsupport/mmpfiles/advancedaacencodesettingsci.mmp Tue Apr 27 18:12:22 2010 +0300 +++ b/devsound/devsoundpluginsupport/mmpfiles/advancedaacencodesettingsci.mmp Tue May 11 17:37:08 2010 +0300 @@ -28,7 +28,7 @@ UID 0x10009D8D KMmfUidCustomInterfaceAdvancedAACEncodeSettingsDll VENDORID 0x70000001 -SOURCEPATH ../src/custominterfaces +SOURCEPATH ../src/CustomInterfaces SOURCE advancedaacencodesettingsci.cpp diff -r cd271b19d824 -r 8184f75a63d4 devsound/devsoundpluginsupport/mmpfiles/audiobufferprefillci.mmp --- a/devsound/devsoundpluginsupport/mmpfiles/audiobufferprefillci.mmp Tue Apr 27 18:12:22 2010 +0300 +++ b/devsound/devsoundpluginsupport/mmpfiles/audiobufferprefillci.mmp Tue May 11 17:37:08 2010 +0300 @@ -28,7 +28,7 @@ UID 0x10009D8D KMmfUidCustomInterfaceSampleBufferingDll VENDORID 0x70000001 -SOURCEPATH ../src/custominterfaces +SOURCEPATH ../src/CustomInterfaces SOURCE audiobufferprefillci.cpp diff -r cd271b19d824 -r 8184f75a63d4 devsound/devsoundpluginsupport/mmpfiles/audiovibracontrolci.mmp --- a/devsound/devsoundpluginsupport/mmpfiles/audiovibracontrolci.mmp Tue Apr 27 18:12:22 2010 +0300 +++ b/devsound/devsoundpluginsupport/mmpfiles/audiovibracontrolci.mmp Tue May 11 17:37:08 2010 +0300 @@ -28,7 +28,7 @@ UID 0x10009D8D KMmfUidCustomInterfaceAudioVibraControlDll VENDORID 0x70000001 -SOURCEPATH ../src/custominterfaces +SOURCEPATH ../src/CustomInterfaces SOURCE audiovibracontrolci.cpp diff -r cd271b19d824 -r 8184f75a63d4 devsound/devsoundpluginsupport/mmpfiles/bufferframesconfigci.mmp --- a/devsound/devsoundpluginsupport/mmpfiles/bufferframesconfigci.mmp Tue Apr 27 18:12:22 2010 +0300 +++ b/devsound/devsoundpluginsupport/mmpfiles/bufferframesconfigci.mmp Tue May 11 17:37:08 2010 +0300 @@ -28,7 +28,7 @@ UID 0x10009D8D KMmfUidCustomInterfaceBufferFramesConfigDll VENDORID 0x70000001 -SOURCEPATH ../src/custominterfaces +SOURCEPATH ../src/CustomInterfaces SOURCE bufferframesconfigci.cpp diff -r cd271b19d824 -r 8184f75a63d4 devsound/devsoundpluginsupport/mmpfiles/dspcontrolci.mmp --- a/devsound/devsoundpluginsupport/mmpfiles/dspcontrolci.mmp Tue Apr 27 18:12:22 2010 +0300 +++ b/devsound/devsoundpluginsupport/mmpfiles/dspcontrolci.mmp Tue May 11 17:37:08 2010 +0300 @@ -28,7 +28,7 @@ UID 0x10009D8D KMmfUidCustomInterfaceDspControlDll VENDORID 0x70000001 -SOURCEPATH ../src/custominterfaces +SOURCEPATH ../src/CustomInterfaces SOURCE dspcontrolci.cpp diff -r cd271b19d824 -r 8184f75a63d4 devsound/devsoundpluginsupport/mmpfiles/eaacplusdecoderci.mmp --- a/devsound/devsoundpluginsupport/mmpfiles/eaacplusdecoderci.mmp Tue Apr 27 18:12:22 2010 +0300 +++ b/devsound/devsoundpluginsupport/mmpfiles/eaacplusdecoderci.mmp Tue May 11 17:37:08 2010 +0300 @@ -28,7 +28,7 @@ UID 0x10009D8D KMmfUidCustomInterfaceEAacPlusDecoderDll VENDORID 0x70000001 -SOURCEPATH ../src/custominterfaces +SOURCEPATH ../src/CustomInterfaces SOURCE eaacplusdecoderci.cpp diff -r cd271b19d824 -r 8184f75a63d4 devsound/devsoundpluginsupport/mmpfiles/errorconcealmentci.mmp --- a/devsound/devsoundpluginsupport/mmpfiles/errorconcealmentci.mmp Tue Apr 27 18:12:22 2010 +0300 +++ b/devsound/devsoundpluginsupport/mmpfiles/errorconcealmentci.mmp Tue May 11 17:37:08 2010 +0300 @@ -28,7 +28,7 @@ UID 0x10009D8D KMmfUidCustomInterfaceErrorConcealmentIntfcDll VENDORID 0x70000001 -SOURCEPATH ../src/custominterfaces +SOURCEPATH ../src/CustomInterfaces SOURCE errorconcealmentci.cpp diff -r cd271b19d824 -r 8184f75a63d4 devsound/devsoundpluginsupport/mmpfiles/g711decoderconfigci.mmp --- a/devsound/devsoundpluginsupport/mmpfiles/g711decoderconfigci.mmp Tue Apr 27 18:12:22 2010 +0300 +++ b/devsound/devsoundpluginsupport/mmpfiles/g711decoderconfigci.mmp Tue May 11 17:37:08 2010 +0300 @@ -28,7 +28,7 @@ UID 0x10009D8D KMmfUidCustomInterfaceG711DecoderIntfcDll VENDORID 0x70000001 -SOURCEPATH ../src/custominterfaces +SOURCEPATH ../src/CustomInterfaces SOURCE g711decoderconfigci.cpp diff -r cd271b19d824 -r 8184f75a63d4 devsound/devsoundpluginsupport/mmpfiles/g711encoderconfigci.mmp --- a/devsound/devsoundpluginsupport/mmpfiles/g711encoderconfigci.mmp Tue Apr 27 18:12:22 2010 +0300 +++ b/devsound/devsoundpluginsupport/mmpfiles/g711encoderconfigci.mmp Tue May 11 17:37:08 2010 +0300 @@ -28,7 +28,7 @@ UID 0x10009D8D KMmfUidCustomInterfaceG711EncoderIntfcDll VENDORID 0x70000001 -SOURCEPATH ../src/custominterfaces +SOURCEPATH ../src/CustomInterfaces SOURCE g711encoderconfigci.cpp diff -r cd271b19d824 -r 8184f75a63d4 devsound/devsoundpluginsupport/mmpfiles/g729decoderconfigci.mmp --- a/devsound/devsoundpluginsupport/mmpfiles/g729decoderconfigci.mmp Tue Apr 27 18:12:22 2010 +0300 +++ b/devsound/devsoundpluginsupport/mmpfiles/g729decoderconfigci.mmp Tue May 11 17:37:08 2010 +0300 @@ -28,7 +28,7 @@ UID 0x10009D8D KMmfUidCustomInterfaceG729DecoderIntfcDll VENDORID 0x70000001 -SOURCEPATH ../src/custominterfaces +SOURCEPATH ../src/CustomInterfaces SOURCE g729decoderconfigci.cpp diff -r cd271b19d824 -r 8184f75a63d4 devsound/devsoundpluginsupport/mmpfiles/g729encoderconfigci.mmp --- a/devsound/devsoundpluginsupport/mmpfiles/g729encoderconfigci.mmp Tue Apr 27 18:12:22 2010 +0300 +++ b/devsound/devsoundpluginsupport/mmpfiles/g729encoderconfigci.mmp Tue May 11 17:37:08 2010 +0300 @@ -28,7 +28,7 @@ UID 0x10009D8D KMmfUidCustomInterfaceG729EncoderIntfcDll VENDORID 0x70000001 -SOURCEPATH ../src/custominterfaces +SOURCEPATH ../src/CustomInterfaces SOURCE g729encoderconfigci.cpp diff -r cd271b19d824 -r 8184f75a63d4 devsound/devsoundpluginsupport/mmpfiles/gettimestampsci.mmp --- a/devsound/devsoundpluginsupport/mmpfiles/gettimestampsci.mmp Tue Apr 27 18:12:22 2010 +0300 +++ b/devsound/devsoundpluginsupport/mmpfiles/gettimestampsci.mmp Tue May 11 17:37:08 2010 +0300 @@ -28,7 +28,7 @@ UID 0x10009D8D KMmfUidCustomInterfaceGetTimestampsDll VENDORID 0x70000001 -SOURCEPATH ../src/custominterfaces +SOURCEPATH ../src/CustomInterfaces SOURCE gettimestampsci.cpp diff -r cd271b19d824 -r 8184f75a63d4 devsound/devsoundpluginsupport/mmpfiles/gsmconfigci.mmp --- a/devsound/devsoundpluginsupport/mmpfiles/gsmconfigci.mmp Tue Apr 27 18:12:22 2010 +0300 +++ b/devsound/devsoundpluginsupport/mmpfiles/gsmconfigci.mmp Tue May 11 17:37:08 2010 +0300 @@ -28,7 +28,7 @@ UID 0x10009D8D KMmfUidCustomInterfaceGsmConfigDll VENDORID 0x70000001 -SOURCEPATH ../src/custominterfaces +SOURCEPATH ../src/CustomInterfaces SOURCE gsmconfigci.cpp diff -r cd271b19d824 -r 8184f75a63d4 devsound/devsoundpluginsupport/mmpfiles/ilbcdecoderconfigci.mmp --- a/devsound/devsoundpluginsupport/mmpfiles/ilbcdecoderconfigci.mmp Tue Apr 27 18:12:22 2010 +0300 +++ b/devsound/devsoundpluginsupport/mmpfiles/ilbcdecoderconfigci.mmp Tue May 11 17:37:08 2010 +0300 @@ -28,7 +28,7 @@ UID 0x10009D8D KMmfUidCustomInterfaceIlbcDecoderIntfcDll VENDORID 0x70000001 -SOURCEPATH ../src/custominterfaces +SOURCEPATH ../src/CustomInterfaces SOURCE ilbcdecoderconfigci.cpp diff -r cd271b19d824 -r 8184f75a63d4 devsound/devsoundpluginsupport/mmpfiles/ilbcencoderconfigci.mmp --- a/devsound/devsoundpluginsupport/mmpfiles/ilbcencoderconfigci.mmp Tue Apr 27 18:12:22 2010 +0300 +++ b/devsound/devsoundpluginsupport/mmpfiles/ilbcencoderconfigci.mmp Tue May 11 17:37:08 2010 +0300 @@ -28,7 +28,7 @@ UID 0x10009D8D KMmfUidCustomInterfaceIlbcEncoderIntfcDll VENDORID 0x70000001 -SOURCEPATH ../src/custominterfaces +SOURCEPATH ../src/CustomInterfaces SOURCE ilbcencoderconfigci.cpp diff -r cd271b19d824 -r 8184f75a63d4 devsound/devsoundpluginsupport/mmpfiles/playbackstatusci.mmp --- a/devsound/devsoundpluginsupport/mmpfiles/playbackstatusci.mmp Tue Apr 27 18:12:22 2010 +0300 +++ b/devsound/devsoundpluginsupport/mmpfiles/playbackstatusci.mmp Tue May 11 17:37:08 2010 +0300 @@ -28,7 +28,7 @@ UID 0x10009D8D KMmfUidCustomInterfacePlayBackStatusDll VENDORID 0x70000001 -SOURCEPATH ../src/custominterfaces +SOURCEPATH ../src/CustomInterfaces SOURCE playbackstatusci.cpp diff -r cd271b19d824 -r 8184f75a63d4 devsound/devsoundpluginsupport/mmpfiles/sbcencoderci.mmp --- a/devsound/devsoundpluginsupport/mmpfiles/sbcencoderci.mmp Tue Apr 27 18:12:22 2010 +0300 +++ b/devsound/devsoundpluginsupport/mmpfiles/sbcencoderci.mmp Tue May 11 17:37:08 2010 +0300 @@ -28,7 +28,7 @@ UID 0x10009D8D KMmfUidCustomInterfaceSbcEncoderDll VENDORID 0x70000001 -SOURCEPATH ../src/custominterfaces +SOURCEPATH ../src/CustomInterfaces SOURCE sbcencoderci.cpp diff -r cd271b19d824 -r 8184f75a63d4 devsound/devsoundpluginsupport/mmpfiles/setdrmprotectedci.mmp --- a/devsound/devsoundpluginsupport/mmpfiles/setdrmprotectedci.mmp Tue Apr 27 18:12:22 2010 +0300 +++ b/devsound/devsoundpluginsupport/mmpfiles/setdrmprotectedci.mmp Tue May 11 17:37:08 2010 +0300 @@ -28,7 +28,7 @@ UID 0x10009D8D KMmfUidCustomInterfaceSetDRMProtectedDll VENDORID 0x70000001 -SOURCEPATH ../src/custominterfaces +SOURCEPATH ../src/CustomInterfaces SOURCE setdrmprotectedci.cpp diff -r cd271b19d824 -r 8184f75a63d4 devsound/devsoundpluginsupport/mmpfiles/speechencoderconfigci.mmp --- a/devsound/devsoundpluginsupport/mmpfiles/speechencoderconfigci.mmp Tue Apr 27 18:12:22 2010 +0300 +++ b/devsound/devsoundpluginsupport/mmpfiles/speechencoderconfigci.mmp Tue May 11 17:37:08 2010 +0300 @@ -28,7 +28,7 @@ UID 0x10009D8D KMmfUidCustomInterfaceSpeechEncoderConfigDll VENDORID 0x70000001 -SOURCEPATH ../src/custominterfaces +SOURCEPATH ../src/CustomInterfaces SOURCE speechencoderconfigci.cpp diff -r cd271b19d824 -r 8184f75a63d4 devsound/devsoundpluginsupport/mmpfiles/underflowautostopcontrolci.mmp --- a/devsound/devsoundpluginsupport/mmpfiles/underflowautostopcontrolci.mmp Tue Apr 27 18:12:22 2010 +0300 +++ b/devsound/devsoundpluginsupport/mmpfiles/underflowautostopcontrolci.mmp Tue May 11 17:37:08 2010 +0300 @@ -28,7 +28,7 @@ UID 0x10009D8D KMmfUidCustomInterfaceUnderflowAutoStopCtrlDll VENDORID 0x70000001 -SOURCEPATH ../src/custominterfaces +SOURCEPATH ../src/CustomInterfaces SOURCE underflowautostopcontrolci.cpp diff -r cd271b19d824 -r 8184f75a63d4 devsound/devsoundrefplugin/group/bld.inf --- a/devsound/devsoundrefplugin/group/bld.inf Tue Apr 27 18:12:22 2010 +0300 +++ b/devsound/devsoundrefplugin/group/bld.inf Tue May 11 17:37:08 2010 +0300 @@ -27,8 +27,8 @@ ../inc/SwCodecWrapper/mmfSwCodecWrapper.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/server/mmfswcodecwrapper.h) ../inc/SwCodecWrapper/mmfSwCodecWrappercustomInterfacesUIDs.hrh /epoc32/include/mmf/server/mmfswcodecwrappercustominterfacesuids.hrh -../inc/Plugin/mmfHwDeviceImplementationUIDs.hrh /epoc32/include/mmf/plugin/mmfhwdeviceimplementationuids.hrh -../inc/Plugin/mmfSBCCodecImplementationUIDs.hrh /epoc32/include/mmf/plugin/mmfsbccodecimplementationuids.hrh +../inc/plugin/mmfHwDeviceImplementationUIDs.hrh /epoc32/include/mmf/plugin/mmfhwdeviceimplementationuids.hrh +../inc/plugin/mmfSBCCodecImplementationUIDs.hrh /epoc32/include/mmf/plugin/mmfsbccodecimplementationuids.hrh // Romkit include files devsound_refplugin.iby /epoc32/rom/include/ @@ -48,14 +48,14 @@ #endif //Audio Tone Controller -../mmpfiles/controller/mmfaudiotonecontroller.mmp +../mmpfiles/controller/MmfAudioToneController.mmp //Sw Codec Wrapper ../mmpfiles/swcodecwrapper/mmfswaudiodevice.mmp ../mmpfiles/swcodecwrapper/mmfswcodecwrapper.mmp // SBC encoder -../mmpfiles/codec/sbcencoder.mmp +../mmpfiles/codec/SBCEncoder.mmp //audio 'software' hw device plugins ../mmpfiles/plugin/mmfAudioHwDevices.mmp diff -r cd271b19d824 -r 8184f75a63d4 devsound/devsoundrefplugin/mmpfiles/plugin/Gsm610HwDevices.mmp --- a/devsound/devsoundrefplugin/mmpfiles/plugin/Gsm610HwDevices.mmp Tue Apr 27 18:12:22 2010 +0300 +++ b/devsound/devsoundrefplugin/mmpfiles/plugin/Gsm610HwDevices.mmp Tue May 11 17:37:08 2010 +0300 @@ -34,7 +34,7 @@ OS_LAYER_SYSTEMINCLUDE_SYMBIAN -SOURCEPATH ../../src/plugin/audio/gsm610 +SOURCEPATH ../../src/plugin/audio/Gsm610 source GSM610.CPP gsm610Proxy.cpp diff -r cd271b19d824 -r 8184f75a63d4 devsound/devsoundrefplugin/mmpfiles/plugin/mmfAudioHwDevices.mmp --- a/devsound/devsoundrefplugin/mmpfiles/plugin/mmfAudioHwDevices.mmp Tue Apr 27 18:12:22 2010 +0300 +++ b/devsound/devsoundrefplugin/mmpfiles/plugin/mmfAudioHwDevices.mmp Tue May 11 17:37:08 2010 +0300 @@ -36,7 +36,7 @@ OS_LAYER_SYSTEMINCLUDE_SYMBIAN -SOURCEPATH ../../src/Plugin/Audio +SOURCEPATH ../../src/plugin/audio SOURCE MMFAudioCodecImplementationProxy.cpp SOURCE MMFpcm16ToPcm16HwDevice.cpp SOURCE MMFpcm16ToPcmU8HwDevice.cpp diff -r cd271b19d824 -r 8184f75a63d4 devsound/hwdevapi/group/bld.inf --- a/devsound/hwdevapi/group/bld.inf Tue Apr 27 18:12:22 2010 +0300 +++ b/devsound/hwdevapi/group/bld.inf Tue May 11 17:37:08 2010 +0300 @@ -27,8 +27,8 @@ //export mmfhwdevice.h/.inl ../inc/mmfhwdevice.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfhwdevice.h) ../inc/MmfHwDevice.inl SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfhwdevice.inl) -../inc/MMFHwDeviceCmds.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/server/mmfhwdevicecmds.h) -../inc/TaskConfig.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/server/taskconfig.h) +../inc/MMFHwDeviceCmds.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/mmfhwdevicecmds.h) +../inc/TaskConfig.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(mmf/server/taskconfig.h) ../inc/mmfhwdevicesetup.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(mmf/server/mmfhwdevicesetup.h) diff -r cd271b19d824 -r 8184f75a63d4 mdfdevvideoextensions/nga_mdf_postprocessor/group/nga_mdf_postprocessor.pkg --- a/mdfdevvideoextensions/nga_mdf_postprocessor/group/nga_mdf_postprocessor.pkg Tue Apr 27 18:12:22 2010 +0300 +++ b/mdfdevvideoextensions/nga_mdf_postprocessor/group/nga_mdf_postprocessor.pkg Tue May 11 17:37:08 2010 +0300 @@ -20,7 +20,7 @@ &EN ; Header -#{"NGA MDF PostProcessor"},(0x0251318C), 1, 0, 0, TYPE=PU +#{"NGA MDF PostProcessor"},(0x0251318C), 1, 0, 0, TYPE=SA,RU ; Localised Vendor name %{"Nokia"} diff -r cd271b19d824 -r 8184f75a63d4 mdfdevvideoextensions/nga_mdf_postprocessor/inc/NGAPostProcHwDevice.h --- a/mdfdevvideoextensions/nga_mdf_postprocessor/inc/NGAPostProcHwDevice.h Tue Apr 27 18:12:22 2010 +0300 +++ b/mdfdevvideoextensions/nga_mdf_postprocessor/inc/NGAPostProcHwDevice.h Tue May 11 17:37:08 2010 +0300 @@ -1069,7 +1069,10 @@ TInt iVideoFrameBufSize; TBool iResourceLost; TBool iRedrawDone; - + // Flag to indicate that the redraw surface has been created, and + // can be used in a subsequent call ro Redraw() + TBool iRedrawSurfaceInUse; + //-- members for buffer management -- MMmfVideoBufferManagementObserver* iVBMObserver; TBufferOptions iVBMBufferOptions; diff -r cd271b19d824 -r 8184f75a63d4 mdfdevvideoextensions/nga_mdf_postprocessor/src/NGAPostProcHwDevice.cpp --- a/mdfdevvideoextensions/nga_mdf_postprocessor/src/NGAPostProcHwDevice.cpp Tue Apr 27 18:12:22 2010 +0300 +++ b/mdfdevvideoextensions/nga_mdf_postprocessor/src/NGAPostProcHwDevice.cpp Tue May 11 17:37:08 2010 +0300 @@ -99,6 +99,7 @@ iVideoFrameBufSize(0), iResourceLost(EFalse), iRedrawDone(EFalse), + iRedrawSurfaceInUse(EFalse), iVBMObserver(NULL), count(0), iSurfaceMask(surfaceHints::EAllowAllExternals), @@ -407,7 +408,10 @@ } if(!iFirstPictureUpdated) { - iTimeToPost = EPostIt; + if(iTimeToPost == EDelayIt) + { + iTimeToPost = EPostIt; + } } switch(iTimeToPost) { @@ -441,7 +445,10 @@ if(!iFirstPictureUpdated) { iFirstPictureUpdated = ETrue; - PublishSurfaceCreated(); + if(!iSurfaceCreatedEventPublished) + { + PublishSurfaceCreated(); + } } } break; @@ -848,12 +855,12 @@ { PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:Redraw ++"), this); TInt err = KErrNone; - if(iResourceLost && !iRedrawDone) + if(iRedrawSurfaceInUse && !iRedrawDone) { err = AddHints(); if (err != KErrNone) { - PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:MmvroResourcesLost -- failed to AddHints %d"), + PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:Redraw -- failed to AddHints %d"), this, err); iProxy->MdvppFatalError(this, err); return; @@ -862,7 +869,7 @@ err = RegisterSurface(iSurfaceId); if (err != KErrNone) { - PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:MmvroResourcesLost -- failed to Register Surface %d"), + PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:Redraw -- failed to Register Surface %d"), this, err); iSurfaceHandler->DestroySurface(iSurfaceId); iSurfaceId = TSurfaceId::CreateNullId(); @@ -926,7 +933,10 @@ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:SetPosition FAILED: Unexpected state"), this); return; } - + if (iPPState == EPaused) + { + iFirstPictureUpdated = EFalse; + } iCurrentPlaybackPosition = aPlaybackPosition; ReleaseInputQ(); @@ -1460,7 +1470,12 @@ ReleaseInputQ(); iSessionManager->CancelUpdate(); ReleaseProcessQ(); - iVideoSurfaceObserver->MmvsoRemoveSurface(); + if(iVideoSurfaceObserver && iSurfaceCreatedEventPublished) + { + PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:MmvroResourcesLost - Telling client to remove surface"), this); + iVideoSurfaceObserver->MmvsoRemoveSurface(); + iSurfaceCreatedEventPublished = EFalse; + } } else if(iResourceLost && iRedrawDone) { @@ -1506,7 +1521,7 @@ void CNGAPostProcHwDevice::MmvshcRedrawBufferToSurface(TPtrC8& aRedrawBuffer) { - PP_DEBUG(_L("CNGAPostProcHwDevice::MmvshcRedrawBufferToSurface ++"), this); + PP_DEBUG(_L("CNGAPostProcHwDevice[%x]::MmvshcRedrawBufferToSurface ++"), this); TSize surfaceSize; TUint8* lPtr; @@ -1550,6 +1565,7 @@ this, err); iSurfaceHandler->DestroySurface(iSurfaceId); iSurfaceId = TSurfaceId::CreateNullId(); + iChunk.Close(); iProxy->MdvppFatalError(this, err); return; } @@ -1561,6 +1577,7 @@ PP_DEBUG(_L("CNGAPostProcHwDevice[%x]::MmvshcRedrawBufferToSurface offset query failed %d"), this, err); iSurfaceHandler->DestroySurface(iSurfaceId); iSurfaceId = TSurfaceId::CreateNullId(); + iChunk.Close(); iProxy->MdvppFatalError(this, err); return; } @@ -1568,7 +1585,9 @@ lPtr = reinterpret_cast(iChunk.Base() + offset); memcpy((TAny *)lPtr, (TAny *)aRedrawBuffer.Ptr(), aRedrawBuffer.Size()); - + + iRedrawSurfaceInUse = ETrue; + PP_DEBUG(_L("CNGAPostProcHwDevice[%x]::MmvshcRedrawBufferToSurface error = %d --"), this, err); } @@ -1578,14 +1597,27 @@ if(!iSurfaceId.IsNull()) { - PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:SetupExternalSurface Cleaning ReDraw Surface"), this); - iVideoSurfaceObserver->MmvsoRemoveSurface(); + if (iVideoSurfaceObserver && iSurfaceCreatedEventPublished) + { + PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:SetupExternalSurface - Telling client to remove old surface"), this); + iVideoSurfaceObserver->MmvsoRemoveSurface(); + iSurfaceCreatedEventPublished = EFalse; + } + else + { + // We never told the client about the surface, so we must destroy it ourselves + PP_DEBUG(_L("CNGAPostProcHwDevice[%x]:SetupExternalSurface - Destroying old surface"), this); + iWsSession.UnregisterSurface(0, iSurfaceId); + iSurfaceHandler->DestroySurface(iSurfaceId); + } + + iChunk.Close(); } iSurfaceId = aSurfaceID; iUsingExternalSurface = ETrue; - - + iRedrawSurfaceInUse = EFalse; + // Create the surface handler if it doesn't exist. if (!iSurfaceHandler) { @@ -1776,7 +1808,10 @@ if(!iFirstPictureUpdated) { iFirstPictureUpdated = ETrue; - PublishSurfaceCreated(); + if(!iSurfaceCreatedEventPublished) + { + PublishSurfaceCreated(); + } } } // end of postit break; diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/3GP_Library_InteroperabilityTestSpec.xls Binary file mm_info/mmdocs/Test_Specs/3GP_Library_InteroperabilityTestSpec.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/3GP_Library_UnitTestSpec.xls Binary file mm_info/mmdocs/Test_Specs/3GP_Library_UnitTestSpec.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/A3F_DevSound_ComplianceSuite_TestSpecification.xls Binary file mm_info/mmdocs/Test_Specs/A3F_DevSound_ComplianceSuite_TestSpecification.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/A3F_DevSound_Integration_TestSpecification.xls Binary file mm_info/mmdocs/Test_Specs/A3F_DevSound_Integration_TestSpecification.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/A3F_IntTestSpec_DevSound.xls Binary file mm_info/mmdocs/Test_Specs/A3F_IntTestSpec_DevSound.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/ECAM_UnitTestSpec_Plugin.xls Binary file mm_info/mmdocs/Test_Specs/ECAM_UnitTestSpec_Plugin.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/GT0396.111 MMF_CTLFRM_SecureDRM Unit Test Specification.xls Binary file mm_info/mmdocs/Test_Specs/GT0396.111 MMF_CTLFRM_SecureDRM Unit Test Specification.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/GT0396.112 MMF_UnitTestSpec_DrmPluginServer.xls Binary file mm_info/mmdocs/Test_Specs/GT0396.112 MMF_UnitTestSpec_DrmPluginServer.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/ICL_IntTestSpec_Codecs.xls Binary file mm_info/mmdocs/Test_Specs/ICL_IntTestSpec_Codecs.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/ICL_IntTestSpec_ImageDecoder.xls Binary file mm_info/mmdocs/Test_Specs/ICL_IntTestSpec_ImageDecoder.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/ICL_IntTestSpec_ImageEncoder.xls Binary file mm_info/mmdocs/Test_Specs/ICL_IntTestSpec_ImageEncoder.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/ICL_IntegrationTestSpec_BitmapTransform.xls Binary file mm_info/mmdocs/Test_Specs/ICL_IntegrationTestSpec_BitmapTransform.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/ICL_IntegrationTestSpec_Framework.xls Binary file mm_info/mmdocs/Test_Specs/ICL_IntegrationTestSpec_Framework.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/ICL_IntegrationTestSpec_ImageDisplay.xls Binary file mm_info/mmdocs/Test_Specs/ICL_IntegrationTestSpec_ImageDisplay.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_BitmapTransform.xls Binary file mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_BitmapTransform.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_Codecs.xls Binary file mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_Codecs.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_ExifImageDisplay.xls Binary file mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_ExifImageDisplay.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_Framework.xls Binary file mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_Framework.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_GenericICLImageDisplay.xls Binary file mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_GenericICLImageDisplay.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_ImageDisplay.xls Binary file mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_ImageDisplay.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_ImageFrame.xls Binary file mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_ImageFrame.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_ImageTransform.xls Binary file mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_ImageTransform.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_MngImageDisplay.xls Binary file mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_MngImageDisplay.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MDF_UnitTestSpec_CodecAPI.xls Binary file mm_info/mmdocs/Test_Specs/MDF_UnitTestSpec_CodecAPI.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MDF_UnitTestSpec_OmxVorbisCodecs v1.0.xls Binary file mm_info/mmdocs/Test_Specs/MDF_UnitTestSpec_OmxVorbisCodecs v1.0.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_ACLNT_Ogg-Vorbis.xls Binary file mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_ACLNT_Ogg-Vorbis.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_DevSound.xls Binary file mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_DevSound.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_DevVideo.xls Binary file mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_DevVideo.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_MIDI_Client.xls Binary file mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_MIDI_Client.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_Recognizer.xls Binary file mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_Recognizer.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_SecureDRM.xls Binary file mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_SecureDRM.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_SecureDevSound.xls Binary file mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_SecureDevSound.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_VCLNT_AVI.xls Binary file mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_VCLNT_AVI.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_TestSpec_Chararacterization_AudioPlayer.xls Binary file mm_info/mmdocs/Test_Specs/MMF_TestSpec_Chararacterization_AudioPlayer.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_TestSpec_Chararacterization_AudioRecorder.xls Binary file mm_info/mmdocs/Test_Specs/MMF_TestSpec_Chararacterization_AudioRecorder.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_TestSpec_Chararacterization_VideoPlayer.xls Binary file mm_info/mmdocs/Test_Specs/MMF_TestSpec_Chararacterization_VideoPlayer.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_ BASECL.xls Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_ BASECL.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_A2DP_BLUETOOTH.xls Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_A2DP_BLUETOOTH.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_A2DP_BLUETOOTH_SVR.xls Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_A2DP_BLUETOOTH_SVR.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_ACLNT.xls Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_ACLNT.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_ASRCL.xls Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_ASRCL.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_Audio_Bitrate.xls Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_Audio_Bitrate.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_AviVideoController.xls Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_AviVideoController.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_CTLFRM_SDRM.xls Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_CTLFRM_SDRM.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_CustomInterfaceDevVideo.xls Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_CustomInterfaceDevVideo.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_CustomInterfaceUnificationDevSound.xls Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_CustomInterfaceUnificationDevSound.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_DEVMIDI_API.xls Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_DEVMIDI_API.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_DevSound.xls Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_DevSound.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_DevVideo.xls Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_DevVideo.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_GlobalEffect.xls Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_GlobalEffect.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_MIDI_Client.xls Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_MIDI_Client.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_OggController.xls Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_OggController.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_Performance.xls Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_Performance.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_Performance_Check.xls Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_Performance_Check.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_RecognizeUnsupportedFormats.xls Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_RecognizeUnsupportedFormats.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_SWCDWRAP.xls Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_SWCDWRAP.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_SbcCodec.xls Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_SbcCodec.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_SourceSink.xls Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_SourceSink.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_SwCodecDevices.xls Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_SwCodecDevices.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_Video_Clients.xls Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_Video_Clients.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_XviD.xls Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_XviD.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_XviD_PU.xls Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_XviD_PU.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MM^MVS^v0.1^TestScript.xls Binary file mm_info/mmdocs/Test_Specs/MM^MVS^v0.1^TestScript.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MVS_IntTestSpec_Agents.xls Binary file mm_info/mmdocs/Test_Specs/MVS_IntTestSpec_Agents.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/MVS_ManualTestSpec_UI.xls Binary file mm_info/mmdocs/Test_Specs/MVS_ManualTestSpec_UI.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/SGL.GT0137.103 Rev1.01 MMF ACOD Unit Test Specification.xls Binary file mm_info/mmdocs/Test_Specs/SGL.GT0137.103 Rev1.01 MMF ACOD Unit Test Specification.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/SGL.GT0137.110 Rev1.01 MMF BASECL Unit Test Specification.xls Binary file mm_info/mmdocs/Test_Specs/SGL.GT0137.110 Rev1.01 MMF BASECL Unit Test Specification.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/SGL.GT0137.111 Rev1.01 MMF CTLFRM Unit Test Specification.xls Binary file mm_info/mmdocs/Test_Specs/SGL.GT0137.111 Rev1.01 MMF CTLFRM Unit Test Specification.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/SGL.GT0137.113 Rev1.03 MMF AFMT Unit Test Specification.xls Binary file mm_info/mmdocs/Test_Specs/SGL.GT0137.113 Rev1.03 MMF AFMT Unit Test Specification.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/SGL.GT0137.115 Rev1.03 ICL Integration Test Specification.xls Binary file mm_info/mmdocs/Test_Specs/SGL.GT0137.115 Rev1.03 ICL Integration Test Specification.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/SGL.GT0137.116 Rev1.21 MMF Controller Integration Test Specification.xls Binary file mm_info/mmdocs/Test_Specs/SGL.GT0137.116 Rev1.21 MMF Controller Integration Test Specification.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/SGL.GT0137.117 Rev1.11 Bitmap Transform Integration Test Specification.xls Binary file mm_info/mmdocs/Test_Specs/SGL.GT0137.117 Rev1.11 Bitmap Transform Integration Test Specification.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/SGL.GT0137.119 Rev1.12 MMF Video Clients Integration Test Specification.xls Binary file mm_info/mmdocs/Test_Specs/SGL.GT0137.119 Rev1.12 MMF Video Clients Integration Test Specification.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/SGL.GT0137.120 Rev1.08 MMF Audio Clients Integration Test Specification.xls Binary file mm_info/mmdocs/Test_Specs/SGL.GT0137.120 Rev1.08 MMF Audio Clients Integration Test Specification.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/SGL.GT0137.127 Rev1.01 MMFAudioControllerPlugin_Unit_Test_Specification.xls Binary file mm_info/mmdocs/Test_Specs/SGL.GT0137.127 Rev1.01 MMFAudioControllerPlugin_Unit_Test_Specification.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/SGL.GT0137.128 Rev1.01 Multimedia Test Framework Unit Test Specification.xls Binary file mm_info/mmdocs/Test_Specs/SGL.GT0137.128 Rev1.01 Multimedia Test Framework Unit Test Specification.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/SGL.GT0137.136 Rev1.01 Bitmap Transform Unit Test Specification.xls Binary file mm_info/mmdocs/Test_Specs/SGL.GT0137.136 Rev1.01 Bitmap Transform Unit Test Specification.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/SGL.GT0343.132_MobileTV_UnitTestSpec_DVBH_HAI_Stub.xls Binary file mm_info/mmdocs/Test_Specs/SGL.GT0343.132_MobileTV_UnitTestSpec_DVBH_HAI_Stub.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/SGL.GT0413_MMF_DevSubtitle_Unit_Test_Specification.xls Binary file mm_info/mmdocs/Test_Specs/SGL.GT0413_MMF_DevSubtitle_Unit_Test_Specification.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/SGL.GT0413_MMF_SubtitleGraphic_Unit_Test_Specification.xls Binary file mm_info/mmdocs/Test_Specs/SGL.GT0413_MMF_SubtitleGraphic_Unit_Test_Specification.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/Test_Specs/SGL.GT0413_PREQ1939_MMF_SRTDECODER_Unit_Test_Specification.xls Binary file mm_info/mmdocs/Test_Specs/SGL.GT0413_PREQ1939_MMF_SRTDECODER_Unit_Test_Specification.xls has changed diff -r cd271b19d824 -r 8184f75a63d4 mm_info/mmdocs/multimedia_documentation.mrp --- a/mm_info/mmdocs/multimedia_documentation.mrp Tue Apr 27 18:12:22 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -component multimedia_documentation - -source \sf\os\mm\mm_info\mmdocs - -notes_source \component_defs\release.src - -ipr D -ipr T \sf\os\mm\mm_info\mmdocs\Test_Design -ipr T \sf\os\mm\mm_info\mmdocs\Test_Specs diff -r cd271b19d824 -r 8184f75a63d4 mm_pub/drm_audio_player_api/tsrc/data/mmc/drm/test3gp.dcf diff -r cd271b19d824 -r 8184f75a63d4 mm_pub/drm_audio_player_api/tsrc/data/mmc/drm/testmp3.dcf diff -r cd271b19d824 -r 8184f75a63d4 mmlibs/mmfw/MMPFiles/client/MediaClientVideo.mmp --- a/mmlibs/mmfw/MMPFiles/client/MediaClientVideo.mmp Tue Apr 27 18:12:22 2010 +0300 +++ b/mmlibs/mmfw/MMPFiles/client/MediaClientVideo.mmp Tue May 11 17:37:08 2010 +0300 @@ -65,6 +65,7 @@ library fbscli.lib library mediaclient.lib library ecom.lib +library centralrepository.lib LIBRARY mmcommon.lib diff -r cd271b19d824 -r 8184f75a63d4 mmlibs/mmfw/MMPFiles/client/mediaclientvideodisplay.mmp --- a/mmlibs/mmfw/MMPFiles/client/mediaclientvideodisplay.mmp Tue Apr 27 18:12:22 2010 +0300 +++ b/mmlibs/mmfw/MMPFiles/client/mediaclientvideodisplay.mmp Tue May 11 17:37:08 2010 +0300 @@ -46,6 +46,7 @@ library mmfcontrollerframework.lib library mmfstandardcustomcommands.lib library ecom.lib +library centralrepository.lib nostrictdef diff -r cd271b19d824 -r 8184f75a63d4 mmlibs/mmfw/inc/mmf/PLUGIN/mmfmediaclientextdisplayinterface.h --- a/mmlibs/mmfw/inc/mmf/PLUGIN/mmfmediaclientextdisplayinterface.h Tue Apr 27 18:12:22 2010 +0300 +++ b/mmlibs/mmfw/inc/mmf/PLUGIN/mmfmediaclientextdisplayinterface.h Tue May 11 17:37:08 2010 +0300 @@ -23,7 +23,19 @@ #include -#define MMF_MEDIA_CLIENT_EXT_DISPLAY_INTERFACE_V2 +#define MMF_MEDIA_CLIENT_EXT_DISPLAY_INTERFACE_V3 + +/** + +Enumeration used to indicate external display current connection status + +**/ +enum TExtDisplayConnectionProviderConnType + { + EExtDisplayConnectionProviderConnTypeDisconnected, + EExtDisplayConnectionProviderConnTypeHdmi, + EExtDisplayConnectionProviderConnTypeAnalog + }; /** @@ -33,7 +45,7 @@ class MExtDisplayConnectionProviderCallback { public: - virtual void MedcpcExtDisplayNotifyConnected(TBool aExtDisplayConnected) = 0; + virtual void MedcpcExtDisplayNotifyConnected(TExtDisplayConnectionProviderConnType aExtDisplayConnType) = 0; }; /** @@ -63,15 +75,14 @@ A reference to an object that can be used by the provider to send events back to the client. */ virtual void SetExtDisplayConnectionProviderCallback(MExtDisplayConnectionProviderCallback& aCallback) = 0; - + /** - Function to be implemented by connection provider that indicates whether an external display is - connected. + Function to be implemented by connection provider that indicates the external display connection type - @return ETrue if external display is connected otherwise EFalse. + @return One of values defined in TExtDisplayConnectionProviderConnType */ - virtual TBool ExtDisplayConnected() = 0; - + virtual TExtDisplayConnectionProviderConnType ExtDisplayConnType() = 0; + /** Function to be implemented by connection provider that indicates the display id that should be used for the external display port. diff -r cd271b19d824 -r 8184f75a63d4 mmlibs/mmfw/src/Client/Utility/mmfclientutility.cpp --- a/mmlibs/mmfw/src/Client/Utility/mmfclientutility.cpp Tue Apr 27 18:12:22 2010 +0300 +++ b/mmlibs/mmfw/src/Client/Utility/mmfclientutility.cpp Tue May 11 17:37:08 2010 +0300 @@ -2287,73 +2287,9 @@ {//leaving as GetAttribute of CAF caused an error. User::Leave(error); } - if(!isDataProtected) - { - CleanupStack::PopAndDestroy(content); - return;//returning cause if data is not protected, we need not evaluate the type of rights. - } - - RArray agents; - TAgent drmAgent; - - CManager* manager = CManager::NewLC(); - CleanupClosePushL( agents ); - manager->ListAgentsL( agents ); - - for ( TInt i = 0; i < agents.Count(); i++ ) - { - if ( agents[i].Name().Compare( content->Agent().Name() ) == 0 ) - { - drmAgent = agents[i]; - break; - } - } - - CleanupStack::PopAndDestroy( &agents ); - RStreamablePtrArray infoArray; - CRightsManager* rightsManager = manager->CreateRightsManagerL(drmAgent); - CleanupStack::PushL(rightsManager); - - if(iFileName.Length()) - { - if(iUniqueId) - { - TVirtualPathPtr pathPtr(iFileName, *iUniqueId); - TRAP(error,rightsManager->ListRightsL(infoArray, pathPtr) ); - } - else - { - TRAP(error,rightsManager->ListRightsL(infoArray, iFileName ) ); - } - } - else if (iUseFileHandle && iOwnFileHandle) - { - if(iUniqueId) - { - TRAP(error,rightsManager->ListRightsL(infoArray, iFileHandle, *iUniqueId) ); - } - else - { - TRAP(error,rightsManager->ListRightsL(infoArray, iFileHandle, KNullDesC) ); - } - } - - if(error) - { - infoArray.Close(); - User::Leave(error); - } - TInt consumableRights = 0; - if(infoArray.Count() > 0) - consumableRights = (ContentAccess::ERightsTypeConsumable) & infoArray[0]->RightsType(); - - - CleanupStack::PopAndDestroy( rightsManager ); - infoArray.Close(); - CleanupStack::PopAndDestroy( manager ); CleanupStack::PopAndDestroy(content); - if(isDataProtected && !iHasDrmCapability && mode == EPlayback && !consumableRights) + if(isDataProtected && !iHasDrmCapability && mode == EPlayback) {//only when the Data is protected and client does not have the DRM capability, we need secure DRM process aIsSecureDrmProcess = ETrue; } diff -r cd271b19d824 -r 8184f75a63d4 mmlibs/mmfw/src/Client/Video/mediaclientextdisplayhandler.cpp --- a/mmlibs/mmfw/src/Client/Video/mediaclientextdisplayhandler.cpp Tue Apr 27 18:12:22 2010 +0300 +++ b/mmlibs/mmfw/src/Client/Video/mediaclientextdisplayhandler.cpp Tue May 11 17:37:08 2010 +0300 @@ -96,3 +96,10 @@ DEBUG_PRINTF("CMediaClientExtDisplayHandler::DisplaySizeInPixels ---"); return iScreen->SizeInPixels(); } + +void CMediaClientExtDisplayHandler::UpdateWindow() + { + DEBUG_PRINTF("CMediaClientExtDisplayHandler::UpdateWindow +++"); + iExternalDisplayWindow.SetExtent(TPoint(0,0), iScreen->SizeInPixels()); + DEBUG_PRINTF("CMediaClientExtDisplayHandler::UpdateWindow ---"); + } diff -r cd271b19d824 -r 8184f75a63d4 mmlibs/mmfw/src/Client/Video/mediaclientextdisplayhandler.h --- a/mmlibs/mmfw/src/Client/Video/mediaclientextdisplayhandler.h Tue Apr 27 18:12:22 2010 +0300 +++ b/mmlibs/mmfw/src/Client/Video/mediaclientextdisplayhandler.h Tue May 11 17:37:08 2010 +0300 @@ -31,6 +31,7 @@ RWindowBase* Window(); TSize DisplaySizeInPixels(); + void UpdateWindow(); ~CMediaClientExtDisplayHandler(); diff -r cd271b19d824 -r 8184f75a63d4 mmlibs/mmfw/src/Client/Video/mediaclientvideodisplaybody.cpp --- a/mmlibs/mmfw/src/Client/Video/mediaclientvideodisplaybody.cpp Tue Apr 27 18:12:22 2010 +0300 +++ b/mmlibs/mmfw/src/Client/Video/mediaclientvideodisplaybody.cpp Tue May 11 17:37:08 2010 +0300 @@ -20,6 +20,10 @@ #include #include #include +#include + +const TUid KCRUidTvoutSettings = {0x1020730B}; +const TUint32 KSettingsTvAspectRatio = 0x00000001; CMediaClientVideoDisplayBody* CMediaClientVideoDisplayBody::NewL(TInt aDisplayId, TBool aExtDisplaySwitchingControl) { @@ -834,7 +838,7 @@ DEBUG_PRINTF5("CMediaClientVideoDisplayBody::SetBackgroundSurface - viewport1 %d,%d - %d,%d", viewport.iTl.iX, viewport.iTl.iY, viewport.iBr.iX, viewport.iBr.iY); TRect videoExtent(aWindowData.iVideoExtent); - + TReal32 inputWidth = 0.0f; TReal32 inputHeight = 0.0f; TReal32 pixelAspectRatio = 0.0f; @@ -899,7 +903,10 @@ } else if (aWindowData.iAutoScaleType == EAutoScaleStretch) { - // Don't do anything: the extent is already set to the size of the video extent. + if(iSwitchedToExternalDisplay) + { + UpdateDeltaForExtDisplay(viewportAspect, videoExtent, deltaHeight, deltaWidth); + } } else if (aWindowData.iAutoScaleType == EAutoScaleNone) { @@ -1184,19 +1191,58 @@ DEBUG_PRINTF("CMediaClientVideoDisplayBody::SetExternalDisplaySwitchingL ---"); } -void CMediaClientVideoDisplayBody::MedcpcExtDisplayNotifyConnected(TBool aExtDisplayConnected) +void CMediaClientVideoDisplayBody::MedcpcExtDisplayNotifyConnected(TExtDisplayConnectionProviderConnType aExtDisplayConnType) { - DEBUG_PRINTF2("CMediaClientVideoDisplayBody::MedcpcExtDisplayNotifyConnected +++ aExtDisplayConnected=%d", aExtDisplayConnected); + DEBUG_PRINTF2("CMediaClientVideoDisplayBody::MedcpcExtDisplayNotifyConnected +++ aExtDisplayConnType=%d", aExtDisplayConnType); - if(iExtDisplayConnected != aExtDisplayConnected) + if(aExtDisplayConnType != iExtDisplayConnType) { - iExtDisplayConnected = aExtDisplayConnected; - SwitchSurface(); + TExtDisplayConnectionProviderConnType prevExtDisplayConnType = iExtDisplayConnType; + iExtDisplayConnType = aExtDisplayConnType; + + if(prevExtDisplayConnType == EExtDisplayConnectionProviderConnTypeDisconnected) + { + // disconnected -> connected - don't care which type it is + DEBUG_PRINTF2("CMediaClientVideoDisplayBody::MedcpcExtDisplayNotifyConnected disconnected -> connected(type %d)", iExtDisplayConnType); + iExtDisplayConnected = ETrue; + SwitchSurface(); + } + else if(iExtDisplayConnType == EExtDisplayConnectionProviderConnTypeDisconnected) + { + // connected -> disconnected - don't care from which type it is + DEBUG_PRINTF2("CMediaClientVideoDisplayBody::MedcpcExtDisplayNotifyConnected connected(type %d) -> disconnected", prevExtDisplayConnType); + iExtDisplayConnected = EFalse; + SwitchSurface(); + } + else + { + // If we get this far then the connection type has changed from "AV Out -> HDMI" or "HDMI -> AV Out" + // Both are likely. "AV Out -> HDMI" occurs if AV Out cable is connected and HDMI cable is then connected. + // "HDMI -> AV Out" occurs if both AV Out and HDMI cables are connected and HDMI cable is then disconnected. + // HDMI is preferred over AV Out. + + // update external display window data + iExtDisplayHandler->UpdateWindow(); + TRect externalDisplayRect(TPoint(0, 0), iExtDisplayHandler->DisplaySizeInPixels()); + (*iWindowsArrayPtr)[0].iClipRect = externalDisplayRect; + (*iWindowsArrayPtr)[0].iVideoExtent = externalDisplayRect; + TRAPD(err, (*iWindowsArrayPtr)[0].iAutoScaleType = ExtDisplayAutoScaleTypeL()); + if(err == KErrNone) + { + RemoveBackgroundSurface(ETrue); + RedrawWindows(iCropRegion); + } + else + { + // Not a lot we can do. Just keep as it is but external display output will be incorrect. + DEBUG_PRINTF2("CMediaClientVideoDisplayBody::MedcpcExtDisplayNotifyConnected ExtDisplayAutoScaleTypeL failed %d", err); + } + } } else - { - DEBUG_PRINTF("CMediaClientVideoDisplayBody::MedcpcExtDisplayNotifyConnected No change in ext display connection status"); - } + { + DEBUG_PRINTF("CMediaClientVideoDisplayBody::MedcpcExtDisplayNotifyConnected No change to connection type"); + } DEBUG_PRINTF("CMediaClientVideoDisplayBody::MedcpcExtDisplayNotifyConnected ---"); } @@ -1235,10 +1281,10 @@ TRect externalDisplayRect(TPoint(0, 0), extDisplayHandler->DisplaySizeInPixels()); windowData.iClipRect = externalDisplayRect; windowData.iVideoExtent = externalDisplayRect; - // windowData.iScaleWidth not required for EAutoScaleBestFit - // windowData.iScaleHeight not required for EAutoScaleBestFit + // windowData.iScaleWidth only required for EAutoScaleNone + // windowData.iScaleWidth only required for EAutoScaleNone windowData.iRotation = EVideoRotationNone; - windowData.iAutoScaleType = EAutoScaleBestFit; + windowData.iAutoScaleType = ExtDisplayAutoScaleTypeL(); windowData.iHorizPos = EHorizontalAlignCenter; windowData.iVertPos = EVerticalAlignCenter; // windowData.iWindow2 not used @@ -1271,7 +1317,8 @@ { iExtDisplaySwitchingSupported = ETrue; iExtDisplayConnectionProvider->SetExtDisplayConnectionProviderCallback(*this); - iExtDisplayConnected = iExtDisplayConnectionProvider->ExtDisplayConnected(); + iExtDisplayConnType = iExtDisplayConnectionProvider->ExtDisplayConnType(); + iExtDisplayConnected = (iExtDisplayConnType != EExtDisplayConnectionProviderConnTypeDisconnected); } DEBUG_PRINTF("CMediaClientVideoDisplayBody::CreateExtDisplayPluginL ---"); @@ -1508,10 +1555,113 @@ if (aOldRect != aNewRect) { - DEBUG_PRINTF("CMediaClientVideoDisplayBody::IntersectionAreaChanged - Intersection area has changed"); + DEBUG_PRINTF("CMediaClientVideoDisplayBody::IntersectionAreaChanged --- Intersection area has changed"); return ETrue; } - DEBUG_PRINTF("CMediaClientVideoDisplayBody::IntersectionAreaChanged - Intersection area has not changed"); + DEBUG_PRINTF("CMediaClientVideoDisplayBody::IntersectionAreaChanged --- Intersection area has not changed"); return EFalse; } + +/** +* This function calculates the delta width and delta height for AV out when the TV-Out setting is set to "widescreen". +* +* AV out has fixed resolution whether TV-Out is set to "normal" or "widescreen". The TV-Out setting indicates +* that the video should be scaled so that when displayed on a corresponding TV the aspect looks correct. +* +* When displaying video on a widescreen TV through AV out, because the resolution is the same the TV stretches +* the video horizontally. When displaying on a normal TV no stretching takes place. +* +* For "normal" TAutoScaleType::EAutoScaleClip is used. +* +* For "widescreen" this function calculates the width delta and height delta required so that when the video is stretched +* the aspect looks correct on a widescreen TV. +* +* This function must only be called when autoscale is set to TAutoScaleType::EAutoScaleStretch and an external display is +* connected. +**/ +void CMediaClientVideoDisplayBody::UpdateDeltaForExtDisplay(TReal32 aViewportAspect, const TRect& aVideoExtent, TInt& aDeltaHeight, TInt& aDeltaWidth) + { + DEBUG_PRINTF("CMediaClientVideoDisplayBody::UpdateDeltaForExtDisplay +++"); + DEBUG_PRINTF2("CMediaClientVideoDisplayBody::UpdateDeltaForExtDisplay aViewportAspect %f", aViewportAspect); + DEBUG_PRINTF5("CMediaClientVideoDisplayBody::UpdateDeltaForExtDisplay aVideoExtent %d,%d - %d,%d", aVideoExtent.iTl.iX, aVideoExtent.iTl.iY, aVideoExtent.iBr.iX, aVideoExtent.iBr.iY); + DEBUG_PRINTF2("CMediaClientVideoDisplayBody::UpdateDeltaForExtDisplay aDeltaHeight %d", aDeltaHeight); + DEBUG_PRINTF2("CMediaClientVideoDisplayBody::UpdateDeltaForExtDisplay aDeltaWidth %d", aDeltaWidth); + + aDeltaWidth = 0; + aDeltaHeight = 0; + + TReal32 wideScreenAspect = (TReal32)16 / (TReal32)9; + DEBUG_PRINTF2("CMediaClientVideoDisplayBody::UpdateDeltaForExtDisplay wideScreenAspect %f", wideScreenAspect); + + if(aViewportAspect == wideScreenAspect) + { + // no need to calculate + DEBUG_PRINTF("CMediaClientVideoDisplayBody::UpdateDeltaForExtDisplay - Viewport Aspect equals wideScreenAspect"); + DEBUG_PRINTF("CMediaClientVideoDisplayBody::UpdateDeltaForExtDisplay - width delta and height delta not changed"); + } + else if(aViewportAspect < wideScreenAspect) + { + DEBUG_PRINTF("CMediaClientVideoDisplayBody::UpdateDeltaForExtDisplay - Viewport Aspect is less than wideScreenAspect"); + + // calculate video width for viewport that when stretched looks ok on widescreen + TReal32 correctedWidth = (TReal32)aVideoExtent.Width() * aViewportAspect / wideScreenAspect; + DEBUG_PRINTF2("CMediaClientVideoDisplayBody::UpdateDeltaForExtDisplay corrected viewport width %f", correctedWidth); + + aDeltaWidth = correctedWidth - aVideoExtent.Width(); + } + else // aViewportAspect > wideScreenAspect + { + DEBUG_PRINTF("CMediaClientVideoDisplayBody::UpdateDeltaForExtDisplay - Viewport Aspect is greater than wideScreenAspect"); + + // calculate video height for viewport that when stretched looks ok on widescreen + TReal32 correctedHeight = (TReal32)aVideoExtent.Height() * wideScreenAspect / aViewportAspect; + DEBUG_PRINTF2("CMediaClientVideoDisplayBody::UpdateDeltaForExtDisplay corrected viewport height %f", correctedHeight); + + aDeltaHeight = aVideoExtent.Height() - correctedHeight; + } + DEBUG_PRINTF2("CMediaClientVideoDisplayBody::UpdateDeltaForExtDisplay --- aDeltaHeight %d", aDeltaHeight); + DEBUG_PRINTF2("CMediaClientVideoDisplayBody::UpdateDeltaForExtDisplay --- aDeltaWidth %d", aDeltaWidth); + DEBUG_PRINTF("CMediaClientVideoDisplayBody::UpdateDeltaForExtDisplay ---"); + } + +TBool CMediaClientVideoDisplayBody::IsWideScreenL() + { + DEBUG_PRINTF("CMediaClientVideoDisplayBody::IsWideScreenL +++"); + + CRepository* repo = CRepository::NewLC(KCRUidTvoutSettings); + TInt value; + User::LeaveIfError(repo->Get(KSettingsTvAspectRatio, value)); + + DEBUG_PRINTF2("CMediaClientVideoDisplayBody::IsWideScreenL Tv Apect Ratio set to %d, 0=4x3 1=16x9", value); + + CleanupStack::PopAndDestroy(repo); + + TBool ret = value > 0; + DEBUG_PRINTF2("CMediaClientVideoDisplayBody::IsWideScreenL --- return %d", ret); + return ret; + } + +TAutoScaleType CMediaClientVideoDisplayBody::ExtDisplayAutoScaleTypeL() + { + DEBUG_PRINTF("CMediaClientVideoDisplayBody::ExtDisplayAutoScaleTypeL +++"); + + // EExtDisplayConnectionProviderConnTypeHdmi - EAutoScaleBestFit + // EExtDisplayConnectionProviderConnTypeAnalog / normal - EAutoScaleBestFit + // EExtDisplayConnectionProviderConnTypeAnalog / widescreen - EAutoScaleStretch + + TAutoScaleType autoScaleType; + if((iExtDisplayConnType == EExtDisplayConnectionProviderConnTypeAnalog) && IsWideScreenL()) + { + DEBUG_PRINTF("CMediaClientVideoDisplayBody::ExtDisplayAutoScaleTypeL External display scale type EAutoScaleStretch"); + autoScaleType = EAutoScaleStretch; + } + else + { + DEBUG_PRINTF("CMediaClientVideoDisplayBody::ExtDisplayAutoScaleTypeL External display scale type EAutoScaleBestFit"); + autoScaleType = EAutoScaleBestFit; + } + + DEBUG_PRINTF2("CMediaClientVideoDisplayBody::ExtDisplayAutoScaleTypeL --- return %d", autoScaleType); + return autoScaleType; + } diff -r cd271b19d824 -r 8184f75a63d4 mmlibs/mmfw/src/Client/Video/mediaclientvideodisplaybody.h --- a/mmlibs/mmfw/src/Client/Video/mediaclientvideodisplaybody.h Tue Apr 27 18:12:22 2010 +0300 +++ b/mmlibs/mmfw/src/Client/Video/mediaclientvideodisplaybody.h Tue May 11 17:37:08 2010 +0300 @@ -160,9 +160,12 @@ TBool SurfaceCropRectChangeRequiresRedraw(TRect aOldSurfaceCropRect, TRect aNewSurfaceCropRect, TRect aClientCropRegion); TBool ClientCropRegionChangeRequiresRedraw(TRect aOldClientCropRegion, TRect aNewClientCropRegion, TRect aSurfaceCropRect); TBool IntersectionAreaChanged(TRect aOldRect, TRect aNewRect, TRect aOtherRect); - + void UpdateDeltaForExtDisplay(TReal32 aViewportAspect, const TRect& aVideoExtent, TInt& aDeltaHeight, TInt& aDeltaWidth); + TBool IsWideScreenL(); + TAutoScaleType ExtDisplayAutoScaleTypeL(); + // MExtDisplayConnectionProviderCallback - void MedcpcExtDisplayNotifyConnected(TBool aExtDisplayConnected); + void MedcpcExtDisplayNotifyConnected(TExtDisplayConnectionProviderConnType aExtDisplayConnType); // MMediaClientWsEventObserverCallback void MmcweoFocusWindowGroupChanged(); @@ -189,7 +192,8 @@ TBool iClientWindowIsInFocus; TBool iExtDisplayConnected; TBool iExtDisplaySwitchingSupported; - + TExtDisplayConnectionProviderConnType iExtDisplayConnType; + CMediaClientPolicyServerClient* iServerClient; friend class CVideoPlayerUtility::CBody; diff -r cd271b19d824 -r 8184f75a63d4 mmlibs/mmfw/src/Plugin/Codec/audio/MMFImaAdPcmToPcm16Codec.h --- a/mmlibs/mmfw/src/Plugin/Codec/audio/MMFImaAdPcmToPcm16Codec.h Tue Apr 27 18:12:22 2010 +0300 +++ b/mmlibs/mmfw/src/Plugin/Codec/audio/MMFImaAdPcmToPcm16Codec.h Tue May 11 17:37:08 2010 +0300 @@ -22,6 +22,7 @@ #include const TUint KMaxImaAdpcmBlockAlign = 2048; +const TUint KImaAdpcmBitsPerSample = 4; //mono so iImaAdpcmTo16Pcm constructed with 1 (mono) class CMMFImaAdPcmPcm16Codec : public CMMFCodec, public MMMFDevSoundCustomInterfaceFileBlockLength diff -r cd271b19d824 -r 8184f75a63d4 mmlibs/mmfw/src/Plugin/Codec/audio/MmfimaadpcmTopcm16codec.cpp --- a/mmlibs/mmfw/src/Plugin/Codec/audio/MmfimaadpcmTopcm16codec.cpp Tue Apr 27 18:12:22 2010 +0300 +++ b/mmlibs/mmfw/src/Plugin/Codec/audio/MmfimaadpcmTopcm16codec.cpp Tue May 11 17:37:08 2010 +0300 @@ -233,7 +233,6 @@ User::Leave(KErrArgument); } - const TUint KImaAdpcmBitsPerSample = 4; // SamplesPerBlock = [(BlockAlign - 4 * Channels) * 8] / (BitsPerSample * Channels) + 1 iSamplesPerBlock = (iBlockAlign - 4 * iChannels) * 8 / (KImaAdpcmBitsPerSample * iChannels) + 1; } @@ -252,7 +251,9 @@ } void CMMFImaAdPcmPcm16Codec::SetFileBlockLength(TUint aBlockAlign) - { - iBlockAlign = aBlockAlign; + { + iBlockAlign = aBlockAlign; + iSamplesPerBlock = (iBlockAlign - 4 * iChannels) * 8 / (KImaAdpcmBitsPerSample * iChannels) + 1; + } diff -r cd271b19d824 -r 8184f75a63d4 mmlibs/mmfw/tsrc/mmfunittest/MmpFiles/TSU_MMF_VCLNT_01.mmp --- a/mmlibs/mmfw/tsrc/mmfunittest/MmpFiles/TSU_MMF_VCLNT_01.mmp Tue Apr 27 18:12:22 2010 +0300 +++ b/mmlibs/mmfw/tsrc/mmfunittest/MmpFiles/TSU_MMF_VCLNT_01.mmp Tue May 11 17:37:08 2010 +0300 @@ -109,6 +109,7 @@ LIBRARY hal.lib LIBRARY bafl.lib LIBRARY cone.lib +LIBRARY centralrepository.lib #ifdef SYMBIAN_MULTIMEDIA_SUBTITLE_SUPPORT DEFFILE tsu_mmf_vclnt_01_gce2.def @@ -121,8 +122,6 @@ #endif //SYMBIAN_BUILD_GCE #endif //SYMBIAN_MULTIMEDIA_SUBTITLE_SUPPORT -MACRO __ENABLE_MEDIA_CLIENT_VIDEO_TRACE__ - NOSTRICTDEF SMPSAFE diff -r cd271b19d824 -r 8184f75a63d4 mmlibs/mmfw/tsrc/mmfunittest/aclnt/TSU_MMF_ACLNT_01/TestStepConvertOpen.cpp --- a/mmlibs/mmfw/tsrc/mmfunittest/aclnt/TSU_MMF_ACLNT_01/TestStepConvertOpen.cpp Tue Apr 27 18:12:22 2010 +0300 +++ b/mmlibs/mmfw/tsrc/mmfunittest/aclnt/TSU_MMF_ACLNT_01/TestStepConvertOpen.cpp Tue May 11 17:37:08 2010 +0300 @@ -542,7 +542,7 @@ //open the files User::LeaveIfError(outputFile.Open(iFs, iToFileName, EFileRead|EFileShareAny)); CleanupClosePushL(outputFile); - User::LeaveIfError(refFile.Open(iFs, iReferenceFileName, EFileRead|EFileShareAny)); + User::LeaveIfError(refFile.Open(iFs, iToFileName, EFileRead|EFileShareAny)); // this is changed because of fix for DEF145347 (TSW id : ESLM-844Q3G). As file size is changing everytime, we should compare with output file always CleanupClosePushL(refFile); TInt err = KErrNone;