Revision: 201017 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 11 May 2010 17:37:08 +0300
branchRCL_3
changeset 19 8184f75a63d4
parent 14 cd271b19d824
child 20 67584cc761d1
Revision: 201017 Kit: 201019
devsound/devsoundapi/group/bld.inf
devsound/devsoundpluginsupport/mmpfiles/MMFDevSoundCIFileBlockLength.mmp
devsound/devsoundpluginsupport/mmpfiles/aacdecoderconfigci.mmp
devsound/devsoundpluginsupport/mmpfiles/advancedaacencodesettingsci.mmp
devsound/devsoundpluginsupport/mmpfiles/audiobufferprefillci.mmp
devsound/devsoundpluginsupport/mmpfiles/audiovibracontrolci.mmp
devsound/devsoundpluginsupport/mmpfiles/bufferframesconfigci.mmp
devsound/devsoundpluginsupport/mmpfiles/dspcontrolci.mmp
devsound/devsoundpluginsupport/mmpfiles/eaacplusdecoderci.mmp
devsound/devsoundpluginsupport/mmpfiles/errorconcealmentci.mmp
devsound/devsoundpluginsupport/mmpfiles/g711decoderconfigci.mmp
devsound/devsoundpluginsupport/mmpfiles/g711encoderconfigci.mmp
devsound/devsoundpluginsupport/mmpfiles/g729decoderconfigci.mmp
devsound/devsoundpluginsupport/mmpfiles/g729encoderconfigci.mmp
devsound/devsoundpluginsupport/mmpfiles/gettimestampsci.mmp
devsound/devsoundpluginsupport/mmpfiles/gsmconfigci.mmp
devsound/devsoundpluginsupport/mmpfiles/ilbcdecoderconfigci.mmp
devsound/devsoundpluginsupport/mmpfiles/ilbcencoderconfigci.mmp
devsound/devsoundpluginsupport/mmpfiles/playbackstatusci.mmp
devsound/devsoundpluginsupport/mmpfiles/sbcencoderci.mmp
devsound/devsoundpluginsupport/mmpfiles/setdrmprotectedci.mmp
devsound/devsoundpluginsupport/mmpfiles/speechencoderconfigci.mmp
devsound/devsoundpluginsupport/mmpfiles/underflowautostopcontrolci.mmp
devsound/devsoundrefplugin/group/bld.inf
devsound/devsoundrefplugin/mmpfiles/plugin/Gsm610HwDevices.mmp
devsound/devsoundrefplugin/mmpfiles/plugin/mmfAudioHwDevices.mmp
devsound/hwdevapi/group/bld.inf
mdfdevvideoextensions/nga_mdf_postprocessor/group/nga_mdf_postprocessor.pkg
mdfdevvideoextensions/nga_mdf_postprocessor/inc/NGAPostProcHwDevice.h
mdfdevvideoextensions/nga_mdf_postprocessor/src/NGAPostProcHwDevice.cpp
mm_info/mmdocs/Test_Specs/3GP_Library_InteroperabilityTestSpec.xls
mm_info/mmdocs/Test_Specs/3GP_Library_UnitTestSpec.xls
mm_info/mmdocs/Test_Specs/A3F_DevSound_ComplianceSuite_TestSpecification.xls
mm_info/mmdocs/Test_Specs/A3F_DevSound_Integration_TestSpecification.xls
mm_info/mmdocs/Test_Specs/A3F_IntTestSpec_DevSound.xls
mm_info/mmdocs/Test_Specs/ECAM_UnitTestSpec_Plugin.xls
mm_info/mmdocs/Test_Specs/GT0396.111 MMF_CTLFRM_SecureDRM Unit Test Specification.xls
mm_info/mmdocs/Test_Specs/GT0396.112 MMF_UnitTestSpec_DrmPluginServer.xls
mm_info/mmdocs/Test_Specs/ICL_IntTestSpec_Codecs.xls
mm_info/mmdocs/Test_Specs/ICL_IntTestSpec_ImageDecoder.xls
mm_info/mmdocs/Test_Specs/ICL_IntTestSpec_ImageEncoder.xls
mm_info/mmdocs/Test_Specs/ICL_IntegrationTestSpec_BitmapTransform.xls
mm_info/mmdocs/Test_Specs/ICL_IntegrationTestSpec_Framework.xls
mm_info/mmdocs/Test_Specs/ICL_IntegrationTestSpec_ImageDisplay.xls
mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_BitmapTransform.xls
mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_Codecs.xls
mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_ExifImageDisplay.xls
mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_Framework.xls
mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_GenericICLImageDisplay.xls
mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_ImageDisplay.xls
mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_ImageFrame.xls
mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_ImageTransform.xls
mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_MngImageDisplay.xls
mm_info/mmdocs/Test_Specs/MDF_UnitTestSpec_CodecAPI.xls
mm_info/mmdocs/Test_Specs/MDF_UnitTestSpec_OmxVorbisCodecs v1.0.xls
mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_ACLNT_Ogg-Vorbis.xls
mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_DevSound.xls
mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_DevVideo.xls
mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_MIDI_Client.xls
mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_Recognizer.xls
mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_SecureDRM.xls
mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_SecureDevSound.xls
mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_VCLNT_AVI.xls
mm_info/mmdocs/Test_Specs/MMF_TestSpec_Chararacterization_AudioPlayer.xls
mm_info/mmdocs/Test_Specs/MMF_TestSpec_Chararacterization_AudioRecorder.xls
mm_info/mmdocs/Test_Specs/MMF_TestSpec_Chararacterization_VideoPlayer.xls
mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_ BASECL.xls
mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_A2DP_BLUETOOTH.xls
mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_A2DP_BLUETOOTH_SVR.xls
mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_ACLNT.xls
mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_ASRCL.xls
mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_Audio_Bitrate.xls
mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_AviVideoController.xls
mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_CTLFRM_SDRM.xls
mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_CustomInterfaceDevVideo.xls
mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_CustomInterfaceUnificationDevSound.xls
mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_DEVMIDI_API.xls
mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_DevSound.xls
mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_DevVideo.xls
mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_GlobalEffect.xls
mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_MIDI_Client.xls
mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_OggController.xls
mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_Performance.xls
mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_Performance_Check.xls
mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_RecognizeUnsupportedFormats.xls
mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_SWCDWRAP.xls
mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_SbcCodec.xls
mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_SourceSink.xls
mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_SwCodecDevices.xls
mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_Video_Clients.xls
mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_XviD.xls
mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_XviD_PU.xls
mm_info/mmdocs/Test_Specs/MM^MVS^v0.1^TestScript.xls
mm_info/mmdocs/Test_Specs/MVS_IntTestSpec_Agents.xls
mm_info/mmdocs/Test_Specs/MVS_ManualTestSpec_UI.xls
mm_info/mmdocs/Test_Specs/SGL.GT0137.103 Rev1.01 MMF ACOD Unit Test Specification.xls
mm_info/mmdocs/Test_Specs/SGL.GT0137.110 Rev1.01 MMF BASECL Unit Test Specification.xls
mm_info/mmdocs/Test_Specs/SGL.GT0137.111 Rev1.01 MMF CTLFRM Unit Test Specification.xls
mm_info/mmdocs/Test_Specs/SGL.GT0137.113 Rev1.03 MMF AFMT Unit Test Specification.xls
mm_info/mmdocs/Test_Specs/SGL.GT0137.115 Rev1.03 ICL Integration Test Specification.xls
mm_info/mmdocs/Test_Specs/SGL.GT0137.116 Rev1.21 MMF Controller Integration Test Specification.xls
mm_info/mmdocs/Test_Specs/SGL.GT0137.117 Rev1.11 Bitmap Transform Integration Test Specification.xls
mm_info/mmdocs/Test_Specs/SGL.GT0137.119 Rev1.12 MMF Video Clients Integration Test Specification.xls
mm_info/mmdocs/Test_Specs/SGL.GT0137.120 Rev1.08 MMF Audio Clients Integration Test Specification.xls
mm_info/mmdocs/Test_Specs/SGL.GT0137.127 Rev1.01 MMFAudioControllerPlugin_Unit_Test_Specification.xls
mm_info/mmdocs/Test_Specs/SGL.GT0137.128 Rev1.01 Multimedia Test Framework Unit Test Specification.xls
mm_info/mmdocs/Test_Specs/SGL.GT0137.136 Rev1.01 Bitmap Transform Unit Test Specification.xls
mm_info/mmdocs/Test_Specs/SGL.GT0343.132_MobileTV_UnitTestSpec_DVBH_HAI_Stub.xls
mm_info/mmdocs/Test_Specs/SGL.GT0413_MMF_DevSubtitle_Unit_Test_Specification.xls
mm_info/mmdocs/Test_Specs/SGL.GT0413_MMF_SubtitleGraphic_Unit_Test_Specification.xls
mm_info/mmdocs/Test_Specs/SGL.GT0413_PREQ1939_MMF_SRTDECODER_Unit_Test_Specification.xls
mm_info/mmdocs/multimedia_documentation.mrp
mm_pub/drm_audio_player_api/tsrc/data/mmc/drm/test3gp.dcf
mm_pub/drm_audio_player_api/tsrc/data/mmc/drm/testmp3.dcf
mmlibs/mmfw/MMPFiles/client/MediaClientVideo.mmp
mmlibs/mmfw/MMPFiles/client/mediaclientvideodisplay.mmp
mmlibs/mmfw/inc/mmf/PLUGIN/mmfmediaclientextdisplayinterface.h
mmlibs/mmfw/src/Client/Utility/mmfclientutility.cpp
mmlibs/mmfw/src/Client/Video/mediaclientextdisplayhandler.cpp
mmlibs/mmfw/src/Client/Video/mediaclientextdisplayhandler.h
mmlibs/mmfw/src/Client/Video/mediaclientvideodisplaybody.cpp
mmlibs/mmfw/src/Client/Video/mediaclientvideodisplaybody.h
mmlibs/mmfw/src/Plugin/Codec/audio/MMFImaAdPcmToPcm16Codec.h
mmlibs/mmfw/src/Plugin/Codec/audio/MmfimaadpcmTopcm16codec.cpp
mmlibs/mmfw/tsrc/mmfunittest/MmpFiles/TSU_MMF_VCLNT_01.mmp
mmlibs/mmfw/tsrc/mmfunittest/aclnt/TSU_MMF_ACLNT_01/TestStepConvertOpen.cpp
--- 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	
 
--- 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
 
--- 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
 
--- 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
 
--- 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
 
--- 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
 
--- 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
 
--- 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
 
--- 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
 
--- 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
 
--- 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
 
--- 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
 
--- 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
 
--- 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
 
--- 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
 
--- 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
 
--- 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
 
--- 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
 
--- 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
 
--- 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
 
--- 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
 
--- 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
 
--- 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
 
--- 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
--- 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
 
 
--- 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
--- 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)
 
 
--- 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"}
--- 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;
--- 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<TUint8*>(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;
Binary file mm_info/mmdocs/Test_Specs/3GP_Library_InteroperabilityTestSpec.xls has changed
Binary file mm_info/mmdocs/Test_Specs/3GP_Library_UnitTestSpec.xls has changed
Binary file mm_info/mmdocs/Test_Specs/A3F_DevSound_ComplianceSuite_TestSpecification.xls has changed
Binary file mm_info/mmdocs/Test_Specs/A3F_DevSound_Integration_TestSpecification.xls has changed
Binary file mm_info/mmdocs/Test_Specs/A3F_IntTestSpec_DevSound.xls has changed
Binary file mm_info/mmdocs/Test_Specs/ECAM_UnitTestSpec_Plugin.xls has changed
Binary file mm_info/mmdocs/Test_Specs/GT0396.111  MMF_CTLFRM_SecureDRM Unit Test Specification.xls has changed
Binary file mm_info/mmdocs/Test_Specs/GT0396.112 MMF_UnitTestSpec_DrmPluginServer.xls has changed
Binary file mm_info/mmdocs/Test_Specs/ICL_IntTestSpec_Codecs.xls has changed
Binary file mm_info/mmdocs/Test_Specs/ICL_IntTestSpec_ImageDecoder.xls has changed
Binary file mm_info/mmdocs/Test_Specs/ICL_IntTestSpec_ImageEncoder.xls has changed
Binary file mm_info/mmdocs/Test_Specs/ICL_IntegrationTestSpec_BitmapTransform.xls has changed
Binary file mm_info/mmdocs/Test_Specs/ICL_IntegrationTestSpec_Framework.xls has changed
Binary file mm_info/mmdocs/Test_Specs/ICL_IntegrationTestSpec_ImageDisplay.xls has changed
Binary file mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_BitmapTransform.xls has changed
Binary file mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_Codecs.xls has changed
Binary file mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_ExifImageDisplay.xls has changed
Binary file mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_Framework.xls has changed
Binary file mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_GenericICLImageDisplay.xls has changed
Binary file mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_ImageDisplay.xls has changed
Binary file mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_ImageFrame.xls has changed
Binary file mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_ImageTransform.xls has changed
Binary file mm_info/mmdocs/Test_Specs/ICL_UnitTestSpec_MngImageDisplay.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MDF_UnitTestSpec_CodecAPI.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MDF_UnitTestSpec_OmxVorbisCodecs v1.0.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_ACLNT_Ogg-Vorbis.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_DevSound.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_DevVideo.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_MIDI_Client.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_Recognizer.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_SecureDRM.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_SecureDevSound.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_IntTestSpec_VCLNT_AVI.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_TestSpec_Chararacterization_AudioPlayer.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_TestSpec_Chararacterization_AudioRecorder.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_TestSpec_Chararacterization_VideoPlayer.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_ BASECL.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_A2DP_BLUETOOTH.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_A2DP_BLUETOOTH_SVR.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_ACLNT.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_ASRCL.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_Audio_Bitrate.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_AviVideoController.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_CTLFRM_SDRM.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_CustomInterfaceDevVideo.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_CustomInterfaceUnificationDevSound.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_DEVMIDI_API.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_DevSound.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_DevVideo.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_GlobalEffect.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_MIDI_Client.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_OggController.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_Performance.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_Performance_Check.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_RecognizeUnsupportedFormats.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_SWCDWRAP.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_SbcCodec.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_SourceSink.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_SwCodecDevices.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_Video_Clients.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_XviD.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MMF_UnitTestSpec_XviD_PU.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MM^MVS^v0.1^TestScript.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MVS_IntTestSpec_Agents.xls has changed
Binary file mm_info/mmdocs/Test_Specs/MVS_ManualTestSpec_UI.xls has changed
Binary file mm_info/mmdocs/Test_Specs/SGL.GT0137.103 Rev1.01 MMF ACOD Unit Test Specification.xls has changed
Binary file mm_info/mmdocs/Test_Specs/SGL.GT0137.110 Rev1.01 MMF BASECL Unit Test Specification.xls has changed
Binary file mm_info/mmdocs/Test_Specs/SGL.GT0137.111 Rev1.01 MMF CTLFRM Unit Test Specification.xls has changed
Binary file mm_info/mmdocs/Test_Specs/SGL.GT0137.113 Rev1.03 MMF AFMT Unit Test Specification.xls has changed
Binary file mm_info/mmdocs/Test_Specs/SGL.GT0137.115 Rev1.03 ICL Integration Test Specification.xls has changed
Binary file mm_info/mmdocs/Test_Specs/SGL.GT0137.116 Rev1.21 MMF Controller Integration Test Specification.xls has changed
Binary file mm_info/mmdocs/Test_Specs/SGL.GT0137.117 Rev1.11 Bitmap Transform Integration Test Specification.xls has changed
Binary file mm_info/mmdocs/Test_Specs/SGL.GT0137.119 Rev1.12 MMF Video Clients Integration Test Specification.xls has changed
Binary file mm_info/mmdocs/Test_Specs/SGL.GT0137.120 Rev1.08 MMF Audio Clients Integration Test Specification.xls has changed
Binary file mm_info/mmdocs/Test_Specs/SGL.GT0137.127 Rev1.01 MMFAudioControllerPlugin_Unit_Test_Specification.xls has changed
Binary file mm_info/mmdocs/Test_Specs/SGL.GT0137.128 Rev1.01 Multimedia Test Framework Unit Test Specification.xls has changed
Binary file mm_info/mmdocs/Test_Specs/SGL.GT0137.136 Rev1.01 Bitmap Transform Unit Test Specification.xls has changed
Binary file mm_info/mmdocs/Test_Specs/SGL.GT0343.132_MobileTV_UnitTestSpec_DVBH_HAI_Stub.xls has changed
Binary file mm_info/mmdocs/Test_Specs/SGL.GT0413_MMF_DevSubtitle_Unit_Test_Specification.xls has changed
Binary file mm_info/mmdocs/Test_Specs/SGL.GT0413_MMF_SubtitleGraphic_Unit_Test_Specification.xls has changed
Binary file mm_info/mmdocs/Test_Specs/SGL.GT0413_PREQ1939_MMF_SRTDECODER_Unit_Test_Specification.xls has changed
--- 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
--- 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
 
--- 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
 
--- 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 <e32base.h>
 
-#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.
--- 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<TAgent> 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<CRightsInfo> 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;
         }
--- 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 ---");
+    }
--- 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();
 
--- 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 <mmf/plugin/mmfmediaclientextdisplayinterface.hrh>
 #include <e32cmn.h>
 #include <ecom/ecom.h>
+#include <centralrepository.h>
+
+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;
+    }
--- 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;	
--- 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 <mmf/server/devsoundstandardcustominterfaces.h>
 
 const TUint KMaxImaAdpcmBlockAlign = 2048;
+const TUint KImaAdpcmBitsPerSample = 4;
 
 //mono so iImaAdpcmTo16Pcm constructed with 1 (mono)
 class CMMFImaAdPcmPcm16Codec : public CMMFCodec, public MMMFDevSoundCustomInterfaceFileBlockLength
--- 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;
+  		    
 	}
 
--- 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
--- 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;