# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1282202771 -10800 # Node ID a36789189b53c7b6bf0264824ed6fe93f6a47a13 # Parent 60e492b28869dd44cfa8bba55194735ea245e68a Revision: 201031 Kit: 201033 diff -r 60e492b28869 -r a36789189b53 mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/3gpaudioplaycontroller/Data/3GPAudioPlayControllerResource.rss --- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/3gpaudioplaycontroller/Data/3GPAudioPlayControllerResource.rss Thu Jul 15 19:13:36 2010 +0300 +++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/3gpaudioplaycontroller/Data/3GPAudioPlayControllerResource.rss Thu Aug 19 10:26:11 2010 +0300 @@ -32,7 +32,9 @@ { shared_buffer_max_num = 2; shared_buffer_max_size = 20480; - shared_buffer_max_size_non_seekable_source = 20480; + + shared_buffer_max_size_non_seekable_source = 8192; + sampling_rate = EAapSampleRate16000Hz; stereo_support = 2; metadata_support = EAapMetadataSupportTrue; diff -r 60e492b28869 -r a36789189b53 mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/3gpaudioplaycontroller/Src/3GPAudioPlayControllerPlugin.cpp --- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/3gpaudioplaycontroller/Src/3GPAudioPlayControllerPlugin.cpp Thu Jul 15 19:13:36 2010 +0300 +++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/3gpaudioplaycontroller/Src/3GPAudioPlayControllerPlugin.cpp Thu Aug 19 10:26:11 2010 +0300 @@ -277,7 +277,13 @@ { iSharedBufferMaxNum = 3; } - + + if (iSourceType != KUidMmfFileSource) + { + DP0(_L("CAACAudioPlayControllerPlugin::DoAddDataSourceL not file source,changing buffer size")); + + iSharedBufferMaxSize = iSharedBufferMaxSizeForNonSeekableSrc; + } CMMFDataBuffer* tempBuffer = CreateSourceBufferOfSizeLC(KFirstBufferSize); tempBuffer->Data().Copy(iSharedBuffers[0]->Data()); diff -r 60e492b28869 -r a36789189b53 mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Bwins/AdvancedAudioControllerU.DEF --- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Bwins/AdvancedAudioControllerU.DEF Thu Jul 15 19:13:36 2010 +0300 +++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Bwins/AdvancedAudioControllerU.DEF Thu Aug 19 10:26:11 2010 +0300 @@ -291,4 +291,5 @@ ?MapcSetRepeats@CAdvancedAudioPlayController@@MAEHHABVTTimeIntervalMicroSeconds@@@Z @ 290 NONAME ; int CAdvancedAudioPlayController::MapcSetRepeats(int, class TTimeIntervalMicroSeconds const &) ?TrailingSilenceTimerComplete@CAdvancedAudioPlayController@@UAEXXZ @ 291 NONAME ; void CAdvancedAudioPlayController::TrailingSilenceTimerComplete(void) ?QueueThisBuffer@CAdvancedAudioDecoder@@UAEXI@Z @ 292 NONAME ; void CAdvancedAudioDecoder::QueueThisBuffer(unsigned int) + ?IsDecodingSufficient@CAdvancedAudioDecoder@@UAEHXZ @ 293 NONAME ; int CAdvancedAudioDecoder::IsDecodingSufficient(void) diff -r 60e492b28869 -r a36789189b53 mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/EABI/AdvancedAudioControllerU.DEF --- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/EABI/AdvancedAudioControllerU.DEF Thu Jul 15 19:13:36 2010 +0300 +++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/EABI/AdvancedAudioControllerU.DEF Thu Aug 19 10:26:11 2010 +0300 @@ -468,4 +468,5 @@ _ZThn4_N21CAdvancedAudioUtility19SeekPositionReachedEj @ 467 NONAME _ZThn4_N21CAdvancedAudioUtility28PlayWindowEndPositionReachedEv @ 468 NONAME _ZThn56_N24CAdvancedAudioController26GetCustomInterfaceBuilderLEv @ 469 NONAME + _ZN21CAdvancedAudioDecoder20IsDecodingSufficientEv @ 470 NONAME diff -r 60e492b28869 -r a36789189b53 mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Inc/AdvancedAudioDecoder.h --- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Inc/AdvancedAudioDecoder.h Thu Jul 15 19:13:36 2010 +0300 +++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Inc/AdvancedAudioDecoder.h Thu Aug 19 10:26:11 2010 +0300 @@ -98,6 +98,12 @@ * @return void */ virtual void SendEvent(const TMMFEvent& aEvent) = 0; + /** + * Callback function from CAdvancedAudioDecoder to check if source is position and time seekable + * @param None + * @return TBool + */ + virtual TBool IsTimePosSeekable() = 0; }; /** @@ -331,7 +337,8 @@ IMPORT_C virtual void ParseL(TUint8* aSrc, TInt& aSrcUsed, TUint8* aDst, TInt& aDstLen); virtual TInt SeekSync(TUint8* aBuf, TInt aBufLen); virtual TInt FrameLength(const TUint8* aBuf, TInt aBufLen, TInt& aFrameLength); - + public: + IMPORT_C virtual TBool IsDecodingSufficient(); private: /** * Completes own request. diff -r 60e492b28869 -r a36789189b53 mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Src/AdvancedAudioDecoder.cpp --- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Src/AdvancedAudioDecoder.cpp Thu Jul 15 19:13:36 2010 +0300 +++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Src/AdvancedAudioDecoder.cpp Thu Aug 19 10:26:11 2010 +0300 @@ -593,6 +593,13 @@ // it will be sent for refill later by NextSharedBufferL(). static_cast(iNextBuffer)->SetStatus(EBeingEmptied); NextSharedBufferL(); + //added to send only 8kb of data to devsound for aac during progressive download,fix for ou1cimx1#447299 + if(IsDecodingSufficient() && !(iObserver->IsTimePosSeekable())) + { + + moreProcessing=EFalse; + } + // length can only be <= maxlength if (dstlength == dstmaxlength) { @@ -802,5 +809,11 @@ return stat; } +EXPORT_C TBool CAdvancedAudioDecoder::IsDecodingSufficient() + { + DP0(_L("CAdvancedAudioDecoder::IsDecodingSufficient")); + return EFalse; + } +//added // End of file diff -r 60e492b28869 -r a36789189b53 mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/DevSoundAudioOutput/Inc/DevSoundAudioOutput.h --- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/DevSoundAudioOutput/Inc/DevSoundAudioOutput.h Thu Jul 15 19:13:36 2010 +0300 +++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/DevSoundAudioOutput/Inc/DevSoundAudioOutput.h Thu Aug 19 10:26:11 2010 +0300 @@ -392,7 +392,14 @@ * @return - */ virtual void SendEvent(const TMMFEvent& aEvent); - + /** + * From MAdvancedAudioDecoderObserver + * Callback function from CAdvancedAudioDecoder to check if the source is time or position seekable + * + * @param None + * @return TBool + */ + virtual TBool IsTimePosSeekable(); private: /** diff -r 60e492b28869 -r a36789189b53 mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/DevSoundAudioOutput/Src/DevSoundAudioOutput.cpp --- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/DevSoundAudioOutput/Src/DevSoundAudioOutput.cpp Thu Jul 15 19:13:36 2010 +0300 +++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/DevSoundAudioOutput/Src/DevSoundAudioOutput.cpp Thu Aug 19 10:26:11 2010 +0300 @@ -990,7 +990,13 @@ { iObserver->SendEvent(aEvent); } - +TBool CDevSoundAudioOutput::IsTimePosSeekable() + { + if(!iDataSourceAdapter->IsTimeSeekable()&& (!iDataSourceAdapter->IsPositonSeekable())) + return EFalse; + else + return ETrue; + } // ----------------------------------------------------------------------------- // CDevSoundAudioOutput::ConvertFromDevSoundCapsToSampleRatesL // Internal function to convert sampling rate from DevSound representation to diff -r 60e492b28869 -r a36789189b53 mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/FileAudioOutput/Inc/FileAudioOutput.h --- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/FileAudioOutput/Inc/FileAudioOutput.h Thu Jul 15 19:13:36 2010 +0300 +++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/FileAudioOutput/Inc/FileAudioOutput.h Thu Aug 19 10:26:11 2010 +0300 @@ -300,7 +300,17 @@ * @param aError a system-wide error code. * @return - */ + virtual void IOError(TInt aError); + + /** + * From MAdvancedAudioDecoderObserver + * Callback function from CAdvancedAudioDecoder to return if source is position or time seekable + * + * @param None + * @return TBool + */ + virtual TBool IsTimePosSeekable(); private: diff -r 60e492b28869 -r a36789189b53 mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/FileAudioOutput/Src/FileAudioOutput.cpp --- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/FileAudioOutput/Src/FileAudioOutput.cpp Thu Jul 15 19:13:36 2010 +0300 +++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/FileAudioOutput/Src/FileAudioOutput.cpp Thu Aug 19 10:26:11 2010 +0300 @@ -547,7 +547,10 @@ { return EFalse; } - +TBool CFileAudioOutput::IsTimePosSeekable() + { + return EFalse; + } // ========================== OTHER EXPORTED FUNCTIONS ========================= // End of file diff -r 60e492b28869 -r a36789189b53 mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/aacaudioplaycontroller/Src/AACAudioPlayControllerDecoder.h --- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/aacaudioplaycontroller/Src/AACAudioPlayControllerDecoder.h Thu Jul 15 19:13:36 2010 +0300 +++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/aacaudioplaycontroller/Src/AACAudioPlayControllerDecoder.h Thu Aug 19 10:26:11 2010 +0300 @@ -61,7 +61,10 @@ TCodecProcessResult ProcessL(CMMFBuffer& aSrc, CMMFBuffer& aDst); TInt CodecConfig(RArray& aCodecConfigData); TInt CodecCmd(TCodecCmd aCmd); - + + TBool IsDecodingSufficient(); + + private: // Functions from base classes void ResetL(); diff -r 60e492b28869 -r a36789189b53 mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/aacaudioplaycontroller/Src/AACAudioPlayControllerHwDecoder.cpp --- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/aacaudioplaycontroller/Src/AACAudioPlayControllerHwDecoder.cpp Thu Jul 15 19:13:36 2010 +0300 +++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/aacaudioplaycontroller/Src/AACAudioPlayControllerHwDecoder.cpp Thu Aug 19 10:26:11 2010 +0300 @@ -383,5 +383,10 @@ { return KErrNotSupported; } +TBool CAACAudioPlayControllerDecoder::IsDecodingSufficient() + { + RDebug::Printf("CAACAudioPlayControllerDecoder::IsDecodingSufficient"); + return ETrue; + } // End of file diff -r 60e492b28869 -r a36789189b53 mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/aacaudioplaycontroller/Src/AACAudioPlayControllerSwDecoder.cpp --- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/aacaudioplaycontroller/Src/AACAudioPlayControllerSwDecoder.cpp Thu Jul 15 19:13:36 2010 +0300 +++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/aacaudioplaycontroller/Src/AACAudioPlayControllerSwDecoder.cpp Thu Aug 19 10:26:11 2010 +0300 @@ -251,5 +251,8 @@ { return KErrNotSupported; } - +TBool CAACAudioPlayControllerDecoder::IsDecodingSufficient() + { + return CAdvancedAudioDecoder::IsDecodingSufficient(); + } // End of file diff -r 60e492b28869 -r a36789189b53 mmfenh/enhancedmediaclient/Client/src/Components/ClientProgDLSource/ClientProgDLSource.cpp --- a/mmfenh/enhancedmediaclient/Client/src/Components/ClientProgDLSource/ClientProgDLSource.cpp Thu Jul 15 19:13:36 2010 +0300 +++ b/mmfenh/enhancedmediaclient/Client/src/Components/ClientProgDLSource/ClientProgDLSource.cpp Thu Aug 19 10:26:11 2010 +0300 @@ -177,6 +177,10 @@ TInt CClientProgDLSource::MoveFile(const TDesC& aDestFileName ) { TInt status(KErrNone); + + if (iServerSourceExists) + iCustomCommand->CustomCommandSync( iSourceHandle, ESetFileMoving, KNullDesC8, KNullDesC8 ); + iDestFileName.Copy(aDestFileName); status = iDownloadGateway->MoveFile(iDownloadId,aDestFileName); return status; @@ -414,10 +418,11 @@ { des.Copy(iDestFileName); } - else + else if (aError == KErrAlreadyExists) { iDownloadGateway->GetLocalFileName(iDownloadId,des); } + iDestFileName.Copy(des); TPckgBuf pckg(iDestFileName); iCustomCommand->CustomCommandSync( iSourceHandle, ESetUpdateFileName, pckg, KNullDesC8 ); } diff -r 60e492b28869 -r a36789189b53 mmfenh/enhancedmediaclient/Plugins/ProgDLSource/inc/ProgDLMultimediaSource.h --- a/mmfenh/enhancedmediaclient/Plugins/ProgDLSource/inc/ProgDLMultimediaSource.h Thu Jul 15 19:13:36 2010 +0300 +++ b/mmfenh/enhancedmediaclient/Plugins/ProgDLSource/inc/ProgDLMultimediaSource.h Thu Aug 19 10:26:11 2010 +0300 @@ -64,7 +64,7 @@ // From CMultimediaDataSource ends TInt GetDRMProtection( TBool& aIsProtected ); - TInt EvaluateIntent( ContentAccess::TIntent aIntent ) const; + TInt EvaluateIntent( ContentAccess::TIntent aIntent ); TInt ExecuteIntent( ContentAccess::TIntent aIntent ); TInt SetAgentProperty( ContentAccess::TAgentProperty aProperty, TInt aValue); diff -r 60e492b28869 -r a36789189b53 mmfenh/enhancedmediaclient/Plugins/ProgDLSource/inc/ProgDLSourceCustomCommands.h --- a/mmfenh/enhancedmediaclient/Plugins/ProgDLSource/inc/ProgDLSourceCustomCommands.h Thu Jul 15 19:13:36 2010 +0300 +++ b/mmfenh/enhancedmediaclient/Plugins/ProgDLSource/inc/ProgDLSourceCustomCommands.h Thu Aug 19 10:26:11 2010 +0300 @@ -28,7 +28,8 @@ ESetDownloadState, EGetBitRate, EGetPercentageBuffered, - ESetUpdateFileName + ESetUpdateFileName, + ESetFileMoving }; #endif // PROGDLSOURCECUSTOMCOMMANDS_H diff -r 60e492b28869 -r a36789189b53 mmfenh/enhancedmediaclient/Plugins/ProgDLSource/src/ProgDLSource.cpp --- a/mmfenh/enhancedmediaclient/Plugins/ProgDLSource/src/ProgDLSource.cpp Thu Jul 15 19:13:36 2010 +0300 +++ b/mmfenh/enhancedmediaclient/Plugins/ProgDLSource/src/ProgDLSource.cpp Thu Aug 19 10:26:11 2010 +0300 @@ -767,7 +767,7 @@ @return An error code indicating if the function call was successful. KErrNone on success, otherwise another of the system-wide error codes. */ -TInt CProgDLMultimediaSource::EvaluateIntent(ContentAccess::TIntent aIntent) const +TInt CProgDLMultimediaSource::EvaluateIntent(ContentAccess::TIntent aIntent) { if (!iFile) { @@ -1114,8 +1114,8 @@ { TInt pos = 0; CancelRequests(); - // we should not delete the iFile, it causes the CAF to delete the rights if they are expired. - + if (iFile) + iFile->Seek(ESeekStart,0); // Since the requests will not be deleted if it is still inside RunL() (iState is EProcessing), // iReadRequestPending should not be initialized to 0 always iReadRequestPending = iRequests.Count(); @@ -1225,6 +1225,20 @@ if ( err == KErrNone ) { iFullFileName = sizePckg(); + if (iFile) + { + delete iFile; + iFile = NULL; + } + if (iFileHandle) + { + TRAPD(err,iFile = CContentFile::NewL(iHandle, UniqueId(), iCAFParameters->iEnableUI)); + } + else + { + // Open for read-only access + TRAPD(err,iFile = CContentFile::NewL(iFsSession, iFullFileName, UniqueId(), EFileShareAny, iCAFParameters->iEnableUI)); + } } aMessage.Complete(KErrNone); @@ -1395,8 +1409,17 @@ aMessage.WriteDataToClient(perBufPckg); aMessage.Complete(KErrNone); } - break; - + break; + case ESetFileMoving: + { + if (iFile) + { + delete iFile; + iFile = NULL; + } + aMessage.Complete(KErrNone); + } + break; default: err = KErrArgument; break; @@ -1475,13 +1498,7 @@ request->SetActive(); // iSnkBytes += requestSize; - - if ((iSnkBytes + request->Buffer()->RequestSize()) >= iDownloadSize && isDownloadComplete) - { - request->Buffer()->SetLastBuffer(ETrue); - DEBPRN1(_L("CProgDLMultimediaSource::ServiceFillBuffer() LastBuffer$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$")); - } - + request->Buffer()->SetLastBuffer(EFalse); iFile->Read(request->BufferDes(), requestSize, request->iStatus); } @@ -1633,6 +1650,13 @@ DEBPRN4(_L("CProgDLMultimediaSource::ReadRequestStatus Buffer[%x] BufferSize[%d] RequestSize[%d]"),aRequest->Buffer(),aRequest->Buffer()->BufferSize(),aRequest->Buffer()->RequestSize()); DEBPRN3(_L("CProgDLMultimediaSource::ReadRequestStatus Buffer[%x] LastBuffer[%d]"),aRequest->Buffer(),aRequest->Buffer()->LastBuffer()); + //Moved from CProgDLMultimediaSource::ServiceFillBuffer to handle deadlock situations + if ((iSnkBytes + aRequest->Buffer()->RequestSize()) >= iDownloadSize && isDownloadComplete) + { + aRequest->Buffer()->SetLastBuffer(ETrue); + DEBPRN1(_L("CProgDLMultimediaSource::ReadRequestStatus() LastBuffer$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$")); + } + TBool lastBuffer = aRequest->Buffer()->LastBuffer(); if((aRequest->Buffer()->BufferSize() != aRequest->Buffer()->RequestSize()) && !lastBuffer) @@ -1697,7 +1721,7 @@ TInt CProgDLMultimediaSource::ReOpenCAF() { TInt status(KErrNone); - DEBPRN2(_L("CProgDLMultimediaSource::StateChanged ReOpenCAF[%d]"),iSnkBytes); + DEBPRN2(_L("CProgDLMultimediaSource::ReOpenCAF ReOpenCAF[%d]"),iSnkBytes); delete iFile; iFile = NULL; @@ -1741,7 +1765,7 @@ } iReOpenCAF = ETrue; - DEBPRN3(_L("CProgDLMultimediaSource::StateChanged Exit status[%d] iFileSize[%d]"),status,iFileSize); + DEBPRN3(_L("CProgDLMultimediaSource::ReOpenCAF Exit status[%d] iFileSize[%d]"),status,iFileSize); return status; } diff -r 60e492b28869 -r a36789189b53 mmfenh/profilesettingsmonitor/group/ProfileSettingsMonitor.mmp --- a/mmfenh/profilesettingsmonitor/group/ProfileSettingsMonitor.mmp Thu Jul 15 19:13:36 2010 +0300 +++ b/mmfenh/profilesettingsmonitor/group/ProfileSettingsMonitor.mmp Thu Aug 19 10:26:11 2010 +0300 @@ -42,6 +42,10 @@ LIBRARY centralrepository.lib LIBRARY euser.lib +#ifdef WINSCW +EPOCHEAPSIZE 0x1000 0x40000 +#endif + epocprocesspriority background SMPSAFE diff -r 60e492b28869 -r a36789189b53 mmmw_plat/audio_metadata_reader_api/inc/MetaDataField.hrh --- a/mmmw_plat/audio_metadata_reader_api/inc/MetaDataField.hrh Thu Jul 15 19:13:36 2010 +0300 +++ b/mmmw_plat/audio_metadata_reader_api/inc/MetaDataField.hrh Thu Aug 19 10:26:11 2010 +0300 @@ -44,7 +44,9 @@ EMetaDataDuration, EMetaDataDate, EMetaDataUnsyncLyrics, - EMetaDataProtected // get the Protected info, "0"=non protected, "1"=protected + EMetaDataProtected, // get the Protected info, "0"=non protected, "1"=protected + EMetaDataSampleRate, // Hz + EMetaDataBitRate // Bps // More later... }; diff -r 60e492b28869 -r a36789189b53 mmmw_plat/audio_metadata_reader_api/tsrc/MetaDataDisplay/inc/MetaDataDisplay.h --- a/mmmw_plat/audio_metadata_reader_api/tsrc/MetaDataDisplay/inc/MetaDataDisplay.h Thu Jul 15 19:13:36 2010 +0300 +++ b/mmmw_plat/audio_metadata_reader_api/tsrc/MetaDataDisplay/inc/MetaDataDisplay.h Thu Aug 19 10:26:11 2010 +0300 @@ -42,7 +42,7 @@ const TInt KErrExecuted = KErrNone; const TInt KErrLeft = -1503; const TInt KBadParameter = 1004; -const TInt KNumMetaDataField = 19; +const TInt KNumMetaDataField = 23; // MACROS //#define ?macro ?macro_def #define TEST_CLASS_VERSION_MAJOR 0 @@ -304,7 +304,6 @@ HBufC* iMetaDataField[KNumMetaDataField]; TBuf<50> iMetaDataFieldName[KNumMetaDataField]; - TMetaDataFieldId iMetaDataFieldID[KNumMetaDataField]; // For X-pcs Metadata HBufC* iArtistXpcs; diff -r 60e492b28869 -r a36789189b53 mmmw_plat/audio_metadata_reader_api/tsrc/MetaDataDisplay/src/MetaDataDisplayBlocks.cpp --- a/mmmw_plat/audio_metadata_reader_api/tsrc/MetaDataDisplay/src/MetaDataDisplayBlocks.cpp Thu Jul 15 19:13:36 2010 +0300 +++ b/mmmw_plat/audio_metadata_reader_api/tsrc/MetaDataDisplay/src/MetaDataDisplayBlocks.cpp Thu Aug 19 10:26:11 2010 +0300 @@ -295,7 +295,7 @@ iLog->Log(_L("Input file [%S]"), &FileNamePtr); while( aItem.GetNextInt( wantedField ) == KErrNone ) { - aWantedFields.Append(iMetaDataFieldID[wantedField]); + aWantedFields.Append( (TMetaDataFieldId)wantedField ); } TRAP(err, iMetaData->OpenFileL( FileName, aWantedFields )); aWantedFields.Close(); @@ -375,7 +375,7 @@ User::LeaveIfError(file.Open( fs, FileName, EFileRead)); while( aItem.GetNextInt( wantedField ) == KErrNone ) { - aWantedFields.Append(iMetaDataFieldID[wantedField]); + aWantedFields.Append((TMetaDataFieldId)wantedField); } TRAP(err, iMetaData->OpenFileL( file, aWantedFields )); fs.Close(); @@ -523,7 +523,7 @@ // Get aWantedFields while( aItem.GetNextInt( wantedField ) == KErrNone ) { - aWantedFields.Append(iMetaDataFieldID[wantedField]); + aWantedFields.Append((TMetaDataFieldId)wantedField); } TRAP(err, iMetaData->OpenDesL(*SoundFile, aWantedFields)); CleanupStack::PopAndDestroy(SoundFile); @@ -802,7 +802,7 @@ while( !aItem.GetNextInt( wantedField ) ) { - aWantedFields.Append( iMetaDataFieldID[wantedField] ); + aWantedFields.Append( (TMetaDataFieldId)wantedField ); } if( SoundFileDes && SoundFile ) { @@ -950,7 +950,7 @@ while( !aItem.GetNextInt( wantedField ) ) { - aWantedFields.Append( iMetaDataFieldID[wantedField] ); + aWantedFields.Append( (TMetaDataFieldId)wantedField ); } if( SoundFile ) { @@ -1114,7 +1114,7 @@ while( !aItem.GetNextInt( wantedField ) ) { - aWantedFields.Append( iMetaDataFieldID[wantedField] ); + aWantedFields.Append( (TMetaDataFieldId)wantedField ); } if( SoundFile ) { diff -r 60e492b28869 -r a36789189b53 mmmw_plat/audio_metadata_reader_api/tsrc/conf/MetaDataDisplay.cfg --- a/mmmw_plat/audio_metadata_reader_api/tsrc/conf/MetaDataDisplay.cfg Thu Jul 15 19:13:36 2010 +0300 +++ b/mmmw_plat/audio_metadata_reader_api/tsrc/conf/MetaDataDisplay.cfg Thu Aug 19 10:26:11 2010 +0300 @@ -93,6 +93,17 @@ [Endtest] [Test] +title MetadataUtility.3.7 - OpenFile GodRest.WMA +create MetaDataDisplay Utility +Utility TestCreateUtility +pause 1000 +Utility TestOpenFile GodRest.WMA +pause 1000 +Utility TestDeleteUtility +delete Utility +[Endtest] + +[Test] title MetadataUtility.4.1 - OpenFileWithField test3gp.3gp create MetaDataDisplay Utility Utility TestCreateUtility @@ -158,6 +169,17 @@ delete Utility [Endtest] +[Test] +title MetadataUtility.4.7 - OpenFileWithField GodRest.WMA +create MetaDataDisplay Utility +Utility TestCreateUtility +pause 1000 +Utility TestOpenFileWithFieldL GodRest.WMA 1 7 10 2 5 1 3 21 22 +pause 1000 +Utility TestDeleteUtility +delete Utility +[Endtest] + [Test] title MetadataUtility.5.1 - OpenRFile test3gp.3gp @@ -226,6 +248,17 @@ [Endtest] [Test] +title MetadataUtility.5.7 - OpenRFile GodRest.WMA +create MetaDataDisplay Utility +Utility TestCreateUtility +pause 1000 +Utility TestOpenRFile GodRest.WMA +pause 1000 +Utility TestDeleteUtility +delete Utility +[Endtest] + +[Test] title MetadataUtility.6.1 - OpenRFileWithField test3gp.3gp create MetaDataDisplay Utility Utility TestCreateUtility @@ -292,6 +325,17 @@ [Endtest] [Test] +title MetadataUtility.6.7 - OpenRFileWithField GodRest.WMA +create MetaDataDisplay Utility +Utility TestCreateUtility +pause 1000 +Utility TestOpenRFileWithFieldL GodRest.WMA 1 7 10 2 5 1 3 21 22 +pause 1000 +Utility TestDeleteUtility +delete Utility +[Endtest] + +[Test] title MetadataUtility.7.1 - OpenDesFile test3gp.3gp create MetaDataDisplay Utility Utility TestCreateUtility @@ -468,7 +512,18 @@ [Endtest] [Test] -title MetadataUtility.10 - MetaDataFields testmp4.mp4 +title MetadataUtility.9.7 - MetaDataCount GodRest.WMA +create MetaDataDisplay Utility +Utility TestCreateUtility +pause 1000 +Utility TestMetaDataCountL GodRest.WMA 4 +pause 1000 +Utility TestDeleteUtility +delete Utility +[Endtest] + +[Test] +title MetadataUtility.10.1 - MetaDataFields testmp4.mp4 create MetaDataDisplay Utility Utility TestCreateUtility pause 1000 @@ -479,6 +534,17 @@ [Endtest] [Test] +title MetadataUtility.10.2 - MetaDataFields GodRest.WMA +create MetaDataDisplay Utility +Utility TestCreateUtility +pause 1000 +Utility TestMetaDataFieldsL GodRest.WMA 4 +pause 1000 +Utility TestDeleteUtility +delete Utility +[Endtest] + +[Test] title MetadataUtility.11 - OpenDesLWith3paras create MetaDataDisplay Utility Utility TestCreateUtility @@ -640,7 +706,7 @@ [Endtest] [Test] -title MetadataUtility.22-1 - TestProcessChunkData +title MetadataUtility.22.1 - TestProcessChunkData create MetaDataDisplay Utility Utility CreateChunkDataTester Utility TestProcessChunkData JepJep.mp3 MimeUsed @@ -651,7 +717,7 @@ [Endtest] [Test] -title MetadataUtility.22-2 - TestProcessChunkData +title MetadataUtility.22.2 - TestProcessChunkData create MetaDataDisplay Utility Utility CreateChunkDataTester Utility TestProcessChunkData testmp4.mp4 MimeUsed @@ -662,7 +728,7 @@ [Endtest] [Test] -title MetadataUtility.22-3 - TestProcessChunkData +title MetadataUtility.22.3 - TestProcessChunkData create MetaDataDisplay Utility Utility CreateChunkDataTester Utility TestProcessChunkData testm4a.m4a MimeUsed @@ -698,6 +764,9 @@ EDuration 17 EDate 18 EUnsyncLyrics 19 +EMetaDataProtected 20 +EMetaDataSampleRate 21 +EMetaDataBitRate 22 // More later... [Enddefine] @@ -859,7 +928,7 @@ //Utility TestOpenFile testmp4.mp4 Utility GetContainerViaMetaDataUtility pause 1000 - //0 stands for that you want to append 0 metadata field, you could append 0-19 fields + //0 stands for that you want to append 0 metadata field, you could append 0-19 fields Utility ContainerAppendLTDesCL 0 pause 1000 Utility TestDeleteUtility @@ -922,7 +991,7 @@ //Utility TestOpenFile testmp4.mp4 Utility GetContainerViaMetaDataUtility Utility ContainerAppendLTDesCL 5 ESongTitle testmp4 EArtist Nicholas EAlbum Nic EYear 2008 EComment Nice-song - //more choices could be added here + //more choices could be added here Utility TestDeleteUtility delete Utility pause 1000 @@ -935,7 +1004,7 @@ //Utility TestOpenFile testmp4.mp4 Utility GetContainerViaMetaDataUtility Utility ContainerAppendLTDesCL 6 ESongTitle testmp4 EArtist Nicholas EAlbum Nic EYear 2008 EComment Nice-song EDate 20081217 - //more choices could be added here + //more choices could be added here Utility TestDeleteUtility delete Utility pause 1000 @@ -947,7 +1016,7 @@ Utility TestCreateUtility //Utility TestOpenFile testmp4.mp4 Utility GetContainerViaMetaDataUtility - //0 stands for that you want to append 0 metadata field, you could append 0-19 fields + //0 stands for that you want to append 0 metadata field, you could append 0-19 fields Utility ContainerAppendLTDesC8L 0 Utility TestDeleteUtility delete Utility @@ -1009,7 +1078,7 @@ //Utility TestOpenFile testmp4.mp4 Utility GetContainerViaMetaDataUtility Utility ContainerAppendLTDesC8L 5 ESongTitle testmp4 EArtist Nicholas EAlbum Nic EYear 2008 EComment Nice-song - //more choices could be added here + //more choices could be added here Utility TestDeleteUtility delete Utility pause 1000 @@ -1022,7 +1091,7 @@ //Utility TestOpenFile testmp4.mp4 Utility GetContainerViaMetaDataUtility Utility ContainerAppendLTDesC8L 6 ESongTitle testmp4 EArtist Nicholas EAlbum Nic EYear 2008 EComment Nice-song EDate 20081217 - //more choices could be added here + //more choices could be added here Utility TestDeleteUtility delete Utility pause 1000 @@ -1046,7 +1115,7 @@ Utility TestCreateUtility Utility TestOpenFile testmp4.mp4 Utility GetContainerViaMetaDataUtility - //When MetaData existed,should be careful about the position,make sure it doesn't get out of bound + //When MetaData existed,should be careful about the position,make sure it doesn't get out of bound Utility ContainerAt 0 Utility TestDeleteUtility delete Utility @@ -1059,7 +1128,7 @@ Utility TestCreateUtility Utility TestOpenFile testmp4.mp4 Utility GetContainerViaMetaDataUtility - //When MetaData existed,should be careful about the position,make sure it doesn't get out of bound + //When MetaData existed,should be careful about the position,make sure it doesn't get out of bound Utility ContainerAppendLTDesCL 6 ESongTitle testmp4 EArtist Nicholas EAlbum Nic EYear 2008 EComment Nice-song EDate 20081217 Utility ContainerAt 0 1 2 3 4 5 6 Utility TestDeleteUtility @@ -1085,7 +1154,7 @@ Utility TestCreateUtility Utility TestOpenFile testmp4.mp4 Utility GetContainerViaMetaDataUtility - //When MetaData existed,should be careful about the position,make sure it doesn't get out of bound + //When MetaData existed,should be careful about the position,make sure it doesn't get out of bound Utility ContainerFieldIdAt 0 Utility TestDeleteUtility delete Utility @@ -1098,7 +1167,7 @@ Utility TestCreateUtility Utility TestOpenFile testmp4.mp4 Utility GetContainerViaMetaDataUtility - //When MetaData existed,should be careful about the position,make sure it doesn't get out of bound + //When MetaData existed,should be careful about the position,make sure it doesn't get out of bound Utility ContainerAppendLTDesCL 6 ESongTitle testmp4 EArtist Nicholas EAlbum Nic EYear 2008 EComment Nice-song EDate 20081217 Utility ContainerFieldIdAt 0 1 2 3 4 5 6 Utility TestDeleteUtility diff -r 60e492b28869 -r a36789189b53 mmmw_plat/audio_metadata_reader_api/tsrc/group/bld.inf --- a/mmmw_plat/audio_metadata_reader_api/tsrc/group/bld.inf Thu Jul 15 19:13:36 2010 +0300 +++ b/mmmw_plat/audio_metadata_reader_api/tsrc/group/bld.inf Thu Aug 19 10:26:11 2010 +0300 @@ -37,7 +37,20 @@ PRJ_TESTEXPORTS +..\init\TestFramework.ini \epoc32\winscw\c\testframework\TestFramework.ini +..\conf\MetaDataDisplay.cfg \epoc32\winscw\c\testframework\MetaDataDisplay.cfg + +..\data\mmc\GodRest.WMA \epoc32\winscw\c\testing\data\GodRest.WMA +..\data\mmc\DRM_NRTmeta.dcf \epoc32\winscw\c\testing\data\DRM_NRTmeta.dcf +..\data\mmc\DownUnder_remix.aac \epoc32\winscw\c\testing\data\DownUnder_remix.aac +..\data\mmc\JapJap.mp3 \epoc32\winscw\c\testing\data\JapJap.mp3 +..\data\mmc\JepJep.mp3 \epoc32\winscw\c\testing\data\JepJep.mp3 +..\data\mmc\JipJip.mp3 \epoc32\winscw\c\testing\data\JipJip.mp3 +..\data\mmc\MP3_MD.mp3 \epoc32\winscw\c\testing\data\MP3_MD.mp3 +..\data\mmc\test3gp.3gp \epoc32\winscw\c\testing\data\test3gp.3gp +..\data\mmc\testm4a.m4a \epoc32\winscw\c\testing\data\testm4a.m4a +..\data\mmc\testmp4.mp4 \epoc32\winscw\c\testing\data\testmp4.mp4 PRJ_MMPFILES diff -r 60e492b28869 -r a36789189b53 mmmw_plat/audio_metadata_reader_api/tsrc/init/TestFramework.ini --- a/mmmw_plat/audio_metadata_reader_api/tsrc/init/TestFramework.ini Thu Jul 15 19:13:36 2010 +0300 +++ b/mmmw_plat/audio_metadata_reader_api/tsrc/init/TestFramework.ini Thu Aug 19 10:26:11 2010 +0300 @@ -43,8 +43,7 @@ [Engine_Defaults] -TestReportMode= FullReport # Possible values are: 'Empty', 'Summary', 'Environment', - 'TestCases' or 'FullReport' +TestReportMode= FullReport # Possible values are: 'Empty', 'Summary', 'Environment', 'TestCases' or 'FullReport' CreateTestReport= YES # Possible values: YES or NO diff -r 60e492b28869 -r a36789189b53 mmserv/audioeffectsui/equalizer/help/data/xhtml.zip Binary file mmserv/audioeffectsui/equalizer/help/data/xhtml.zip has changed diff -r 60e492b28869 -r a36789189b53 mmserv/metadatautility/3GPExtParserLib_stub/BWINS/3GPExtParserU.DEF --- a/mmserv/metadatautility/3GPExtParserLib_stub/BWINS/3GPExtParserU.DEF Thu Jul 15 19:13:36 2010 +0300 +++ b/mmserv/metadatautility/3GPExtParserLib_stub/BWINS/3GPExtParserU.DEF Thu Aug 19 10:26:11 2010 +0300 @@ -1,7 +1,7 @@ EXPORTS ??1C3GPExtParser@@UAE@XZ @ 1 NONAME ; C3GPExtParser::~C3GPExtParser(void) - ?GetilstBoxesL@C3GPExtParser@@QAEXABVTDesC8@@W4TMetaDataFieldId@@PAPAVHBufC16@@@Z @ 2 NONAME ; void C3GPExtParser::GetilstBoxesL(class TDesC8 const &, enum TMetaDataFieldId, class HBufC16 * *) + ?GetilstBoxesL@C3GPExtParser@@QAEXW4TMetaDataFieldId@@PAPAVHBufC8@@@Z @ 2 NONAME ; void C3GPExtParser::GetilstBoxesL(enum TMetaDataFieldId, class HBufC8 * *) ?Is3GPExtMetadataL@C3GPExtParser@@QAEHXZ @ 3 NONAME ; int C3GPExtParser::Is3GPExtMetadataL(void) ?NewL@C3GPExtParser@@SAPAV1@AAPAJ@Z @ 4 NONAME ; class C3GPExtParser * C3GPExtParser::NewL(long * &) - ?GetilstBoxesL@C3GPExtParser@@QAEXABVTDesC8@@W4TMetaDataFieldId@@PAPAVHBufC8@@@Z @ 5 NONAME ; void C3GPExtParser::GetilstBoxesL(class TDesC8 const &, enum TMetaDataFieldId, class HBufC8 * *) + ?GetilstBoxesL@C3GPExtParser@@QAEXW4TMetaDataFieldId@@PAPAVHBufC16@@@Z @ 5 NONAME ; void C3GPExtParser::GetilstBoxesL(enum TMetaDataFieldId, class HBufC16 * *) diff -r 60e492b28869 -r a36789189b53 mmserv/metadatautility/3GPExtParserLib_stub/EABI/3GPExtParserU.DEF --- a/mmserv/metadatautility/3GPExtParserLib_stub/EABI/3GPExtParserU.DEF Thu Jul 15 19:13:36 2010 +0300 +++ b/mmserv/metadatautility/3GPExtParserLib_stub/EABI/3GPExtParserU.DEF Thu Aug 19 10:26:11 2010 +0300 @@ -1,8 +1,8 @@ EXPORTS - _ZN13C3GPExtParser13GetilstBoxesLERK6TDesC816TMetaDataFieldIdPP7HBufC16 @ 1 NONAME + _ZN13C3GPExtParser13GetilstBoxesLE16TMetaDataFieldIdPP6HBufC8 @ 1 NONAME _ZN13C3GPExtParser17Is3GPExtMetadataLEv @ 2 NONAME _ZN13C3GPExtParser4NewLERPl @ 3 NONAME _ZTI13C3GPExtParser @ 4 NONAME ; ## _ZTV13C3GPExtParser @ 5 NONAME ; ## - _ZN13C3GPExtParser13GetilstBoxesLERK6TDesC816TMetaDataFieldIdPP6HBufC8 @ 6 NONAME + _ZN13C3GPExtParser13GetilstBoxesLE16TMetaDataFieldIdPP7HBufC16 @ 6 NONAME diff -r 60e492b28869 -r a36789189b53 mmserv/metadatautility/3GPExtParserLib_stub/src/3GPExtParserLib_stub.cpp --- a/mmserv/metadatautility/3GPExtParserLib_stub/src/3GPExtParserLib_stub.cpp Thu Jul 15 19:13:36 2010 +0300 +++ b/mmserv/metadatautility/3GPExtParserLib_stub/src/3GPExtParserLib_stub.cpp Thu Aug 19 10:26:11 2010 +0300 @@ -61,7 +61,7 @@ // 3GPExtParser::GetilstBoxesL // ----------------------------------------------------------------------------- // -EXPORT_C void C3GPExtParser::GetilstBoxesL(const TDesC8 &/*aBox*/, TMetaDataFieldId /*aFieldId*/, HBufC** /*aBuf*/) +EXPORT_C void C3GPExtParser::GetilstBoxesL(TMetaDataFieldId /*aFieldId*/, HBufC** /*aBuf*/) { User::Leave(KErrNotSupported); } @@ -69,7 +69,7 @@ // 3GPExtParser::GetilstBoxesL for 8-bit descriptor fields // ----------------------------------------------------------------------------- // -EXPORT_C void C3GPExtParser::GetilstBoxesL(const TDesC8 &/*aBox*/, TMetaDataFieldId /*aFieldId*/, HBufC8** /*aBuf*/) +EXPORT_C void C3GPExtParser::GetilstBoxesL(TMetaDataFieldId /*aFieldId*/, HBufC8** /*aBuf*/) { User::Leave(KErrNotSupported); } diff -r 60e492b28869 -r a36789189b53 mmserv/metadatautility/Group/bld.inf --- a/mmserv/metadatautility/Group/bld.inf Thu Jul 15 19:13:36 2010 +0300 +++ b/mmserv/metadatautility/Group/bld.inf Thu Aug 19 10:26:11 2010 +0300 @@ -37,9 +37,11 @@ PRJ_MMPFILES -#ifndef __3GP_EXTENTION +#ifdef __3GP_EXTENTION +#include "../3GPExtParserLib/group/bld.inf" +#else #include "../3GPExtParserLib_stub/group/bld.inf" -#endif +#endif MetaDataUtility.mmp diff -r 60e492b28869 -r a36789189b53 mmserv/metadatautility/Src/3GPExtParser.h --- a/mmserv/metadatautility/Src/3GPExtParser.h Thu Jul 15 19:13:36 2010 +0300 +++ b/mmserv/metadatautility/Src/3GPExtParser.h Thu Aug 19 10:26:11 2010 +0300 @@ -27,19 +27,6 @@ #include "MetaDataFieldContainer.h" #include "MetaDataField.hrh" -// CONSTANTS - -_LIT8 (K3GPExtMetaTitleFormat, "%cnam"); -_LIT8 (K3GPExtMetaArtistFormat, "%cART"); -_LIT8 (K3GPExtMetaComposerFormat, "%cwrt"); -_LIT8 (K3GPExtMetaAlbumFormat, "%calb"); -_LIT8 (K3GPExtMetaCommentFormat, "%ccmt"); -_LIT8 (K3GPExtMetaCustomGenreFormat, "%cgen"); // mapped to rating -_LIT8 (K3GPExtMetaYearFormat, "%cday"); -_LIT8 (K3GPExtMetaGenre, "gnre"); -_LIT8 (K3GPExtMetaTrack, "trkn"); -_LIT8 (K3GPExtMetaJpeg, "covr"); - // CLASS DECLARATION @@ -67,20 +54,18 @@ /** * Extract meta data boxes from ilst * @since 3.0 - * @param aBox wanted metadata box * @param aFieldId metadata field in 3GPExtParser * @return void */ - IMPORT_C void GetilstBoxesL(const TDesC8& aBox, TMetaDataFieldId aFieldId, HBufC** aBuf); + IMPORT_C void GetilstBoxesL(TMetaDataFieldId aFieldId, HBufC** aBuf); /** * Extract meta data boxes from ilst * 8-bit version to support international languages in string metadata * @since 3.1 - * @param aBox wanted metadata box * @param aFieldId metadata field in 3GPExtParser * @return void */ - IMPORT_C void GetilstBoxesL(const TDesC8& aBox, TMetaDataFieldId aFieldId, HBufC8** aBuf); + IMPORT_C void GetilstBoxesL(TMetaDataFieldId aFieldId, HBufC8** aBuf); /** * Checks if file has 3GPExt metadata diff -r 60e492b28869 -r a36789189b53 mmserv/metadatautility/Src/MetaDataParser3GPExt.cpp --- a/mmserv/metadatautility/Src/MetaDataParser3GPExt.cpp Thu Jul 15 19:13:36 2010 +0300 +++ b/mmserv/metadatautility/Src/MetaDataParser3GPExt.cpp Thu Aug 19 10:26:11 2010 +0300 @@ -111,55 +111,55 @@ if ( aWantedFields.Count() == 0 ) { - TRAP(err, i3GPExtParser->GetilstBoxesL(K3GPExtMetaTitleFormat, EMetaDataSongTitle, &buf8)); + TRAP(err, i3GPExtParser->GetilstBoxesL(EMetaDataSongTitle, &buf8)); if (KErrNone == err) { ConvertAndAppendL(&buf8, EMetaDataSongTitle); } - TRAP(err, i3GPExtParser->GetilstBoxesL(K3GPExtMetaArtistFormat, EMetaDataArtist, &buf8)); + TRAP(err, i3GPExtParser->GetilstBoxesL(EMetaDataArtist, &buf8)); if (KErrNone == err) { ConvertAndAppendL(&buf8, EMetaDataArtist); } - TRAP(err, i3GPExtParser->GetilstBoxesL(K3GPExtMetaComposerFormat, EMetaDataComposer, &buf8)); + TRAP(err, i3GPExtParser->GetilstBoxesL(EMetaDataComposer, &buf8)); if (KErrNone == err) { ConvertAndAppendL(&buf8, EMetaDataComposer); } - TRAP(err, i3GPExtParser->GetilstBoxesL(K3GPExtMetaAlbumFormat, EMetaDataAlbum, &buf8)); + TRAP(err, i3GPExtParser->GetilstBoxesL(EMetaDataAlbum, &buf8)); if (KErrNone == err) { ConvertAndAppendL(&buf8, EMetaDataAlbum); } - TRAP(err, i3GPExtParser->GetilstBoxesL(K3GPExtMetaCommentFormat, EMetaDataComment, &buf8)); + TRAP(err, i3GPExtParser->GetilstBoxesL(EMetaDataComment, &buf8)); if (KErrNone == err) { ConvertAndAppendL(&buf8, EMetaDataComment); } - TRAP(err, i3GPExtParser->GetilstBoxesL(K3GPExtMetaGenre, EMetaDataGenre, &buf)); + TRAP(err, i3GPExtParser->GetilstBoxesL(EMetaDataGenre, &buf)); if (KErrNone == err) { AppendL(&buf, EMetaDataGenre); } - TRAP(err, i3GPExtParser->GetilstBoxesL(K3GPExtMetaYearFormat, EMetaDataYear, &buf)); + TRAP(err, i3GPExtParser->GetilstBoxesL(EMetaDataYear, &buf)); if (KErrNone == err) { AppendL(&buf, EMetaDataYear); } - TRAP(err, i3GPExtParser->GetilstBoxesL(K3GPExtMetaCustomGenreFormat, EMetaDataRating, &buf8)); + TRAP(err, i3GPExtParser->GetilstBoxesL(EMetaDataRating, &buf8)); if (KErrNone == err) { ConvertAndAppendL(&buf8, EMetaDataGenre); } - TRAP(err, i3GPExtParser->GetilstBoxesL(K3GPExtMetaTrack, EMetaDataAlbumTrack, &buf)); + TRAP(err, i3GPExtParser->GetilstBoxesL(EMetaDataAlbumTrack, &buf)); if (KErrNone == err) { AppendL(&buf, EMetaDataAlbumTrack); @@ -167,7 +167,7 @@ TRAP(err, GetDurationL(EMetaDataDuration)); - TRAP(err, i3GPExtParser->GetilstBoxesL(K3GPExtMetaJpeg, EMetaDataJpeg, &buf8)); + TRAP(err, i3GPExtParser->GetilstBoxesL(EMetaDataJpeg, &buf8)); if (KErrNone == err) { AppendL(&buf8, EMetaDataJpeg); @@ -183,7 +183,7 @@ switch ( aWantedFields[ i ] ) { case EMetaDataSongTitle: - TRAP(err, i3GPExtParser->GetilstBoxesL(K3GPExtMetaTitleFormat, EMetaDataSongTitle, &buf8)); + TRAP(err, i3GPExtParser->GetilstBoxesL(EMetaDataSongTitle, &buf8)); if (KErrNone == err) { ConvertAndAppendL(&buf8, EMetaDataSongTitle); @@ -191,7 +191,7 @@ break; case EMetaDataComment: - TRAP(err, i3GPExtParser->GetilstBoxesL(K3GPExtMetaCommentFormat, EMetaDataComment, &buf8)); + TRAP(err, i3GPExtParser->GetilstBoxesL(EMetaDataComment, &buf8)); if (KErrNone == err) { ConvertAndAppendL(&buf8, EMetaDataComment); @@ -199,7 +199,7 @@ break; case EMetaDataAlbumTrack: - TRAP(err, i3GPExtParser->GetilstBoxesL(K3GPExtMetaTrack, EMetaDataAlbumTrack, &buf)); + TRAP(err, i3GPExtParser->GetilstBoxesL(EMetaDataAlbumTrack, &buf)); if (KErrNone == err) { AppendL(&buf, EMetaDataAlbumTrack); @@ -207,7 +207,7 @@ break; case EMetaDataArtist: - TRAP(err, i3GPExtParser->GetilstBoxesL(K3GPExtMetaArtistFormat, EMetaDataArtist, &buf8)); + TRAP(err, i3GPExtParser->GetilstBoxesL(EMetaDataArtist, &buf8)); if (KErrNone == err) { ConvertAndAppendL(&buf8, EMetaDataArtist); @@ -215,7 +215,7 @@ break; case EMetaDataComposer: - TRAP(err, i3GPExtParser->GetilstBoxesL(K3GPExtMetaComposerFormat, EMetaDataComposer, &buf8)); + TRAP(err, i3GPExtParser->GetilstBoxesL(EMetaDataComposer, &buf8)); if (KErrNone == err) { ConvertAndAppendL(&buf8, EMetaDataComposer); @@ -223,7 +223,7 @@ break; case EMetaDataAlbum: - TRAP(err, i3GPExtParser->GetilstBoxesL(K3GPExtMetaAlbumFormat, EMetaDataAlbum, &buf8)); + TRAP(err, i3GPExtParser->GetilstBoxesL(EMetaDataAlbum, &buf8)); if (KErrNone == err) { ConvertAndAppendL(&buf8, EMetaDataAlbum); @@ -231,7 +231,7 @@ break; case EMetaDataGenre: - TRAP(err, i3GPExtParser->GetilstBoxesL(K3GPExtMetaGenre, EMetaDataGenre, &buf)); + TRAP(err, i3GPExtParser->GetilstBoxesL(EMetaDataGenre, &buf)); if (KErrNone == err) { AppendL(&buf, EMetaDataGenre); @@ -243,7 +243,7 @@ break; case EMetaDataYear: - TRAP(err, i3GPExtParser->GetilstBoxesL(K3GPExtMetaYearFormat, EMetaDataYear, &buf)); + TRAP(err, i3GPExtParser->GetilstBoxesL(EMetaDataYear, &buf)); if (KErrNone == err) { AppendL(&buf, EMetaDataYear); @@ -251,7 +251,7 @@ break; case EMetaDataRating: - TRAP(err, i3GPExtParser->GetilstBoxesL(K3GPExtMetaCustomGenreFormat, EMetaDataRating, &buf8)); + TRAP(err, i3GPExtParser->GetilstBoxesL(EMetaDataRating, &buf8)); if (KErrNone == err) { ConvertAndAppendL(&buf8, EMetaDataGenre); @@ -259,7 +259,7 @@ break; case EMetaDataJpeg: - TRAP(err, i3GPExtParser->GetilstBoxesL(K3GPExtMetaJpeg, EMetaDataJpeg, &buf8)); + TRAP(err, i3GPExtParser->GetilstBoxesL(EMetaDataJpeg, &buf8)); if (KErrNone == err) { AppendL(&buf8, EMetaDataJpeg); diff -r 60e492b28869 -r a36789189b53 mmserv/metadatautility/Src/MetaDataParserWMA.cpp --- a/mmserv/metadatautility/Src/MetaDataParserWMA.cpp Thu Jul 15 19:13:36 2010 +0300 +++ b/mmserv/metadatautility/Src/MetaDataParserWMA.cpp Thu Aug 19 10:26:11 2010 +0300 @@ -11,8 +11,7 @@ * * Contributors: * -* Description: This class implements an ID3v1 and v1.1 parser as specified in -* www.id3.org. +* Description: This class implements a wma parser * */ @@ -42,9 +41,12 @@ * Preroll, QWORD, 64 * Flags, DWORD, 32 */ -const TInt KDurationOffset = 64; // duration offset from File Property object -const TInt KPrerollOffset = 80; // preRoll offset from File Property object -const TInt KFlagsOffset = 88; // flags offset from File Property object +const TInt KDurationOffset = 64; // duration offset in File Property object +const TInt KPrerollOffset = 80; // preRoll offset in File Property object +const TInt KFlagsOffset = 88; // flags offset in File Property object +const TInt KSampleRateOffset = 82; // sample rate offset in stream properties object +const TInt KBitRateOffset = 86; // bit rate offset in stream properties object + // ASF Header Object GUIDs @@ -70,6 +72,7 @@ #ifdef __WINDOWS_MEDIA _LIT(KWMProvider, "WM/Provider\0"); #endif +_LIT8 (KASFStreamPropertiesObject, "B7DC0791A9B711CF8EE600C00C205365"); // ============================ MEMBER FUNCTIONS =============================== @@ -125,10 +128,10 @@ // Destructor CMetaDataParserWMA::~CMetaDataParserWMA() - { - delete iHeaderData; - delete iCharacterSet; - iFs.Close(); + { + delete iHeaderData; + delete iCharacterSet; + iFs.Close(); } // ----------------------------------------------------------------------------- @@ -183,6 +186,8 @@ #ifdef __WINDOWS_MEDIA TRAP(err, GetExtContDesEntryL(EMetaDataVendor, iProviderOffset)); #endif + TRAP(err, GetSampleRateL()); + TRAP(err, GetBitRateL()); } else { @@ -244,6 +249,12 @@ case EMetaDataVendor: TRAP(err, GetExtContDesEntryL(EMetaDataVendor, iProviderOffset)); #endif + case EMetaDataSampleRate: + TRAP(err, GetSampleRateL()); + break; + case EMetaDataBitRate: + TRAP(err, GetBitRateL()); + break; default: break; } @@ -336,6 +347,12 @@ iHeaderExtensionObjectExists = ETrue; iHeaderExtensionOffset = objOffset; } + if(!iStreamPropertiesObjectExists && objGUID == + KASFStreamPropertiesObject) + { + iStreamPropertiesObjectExists = ETrue; + iStreamPropertiesOffset = objOffset; + } TBuf8<8> size = iHeaderData->Mid(objOffset + 16, 8); TInt objSize = ConvertToInt64(size); // upper 32 bits? if(0 > objSize) @@ -345,7 +362,8 @@ objOffset += objSize; if(objOffset >= headerSize - 30 || (iContentDescriptionObjectExists && iFilePropertiesObjectExists - && iExtendedContentDescriptionObjectExists && iHeaderExtensionObjectExists) ) + && iExtendedContentDescriptionObjectExists && iHeaderExtensionObjectExists + && iStreamPropertiesObjectExists) ) { loop = EFalse; } @@ -374,7 +392,7 @@ // ----------------------------------------------------------------------------- // void CMetaDataParserWMA::FormatGUID(TDes8 &aGUID) -{ + { TBuf8<16> copyGUID(aGUID); TInt i; for(i = 0; i < 4; i++) @@ -396,16 +414,16 @@ aGUID.Delete(0, 32); for(i = 0; i <16; i++) { - aGUID.AppendNumFixedWidthUC(copyGUID[i], EHex, 2); + aGUID.AppendNumFixedWidthUC(copyGUID[i], EHex, 2); } -} + } // ----------------------------------------------------------------------------- // CMetaDataParserWMA::ConvertToInt64 // ----------------------------------------------------------------------------- // TInt64 CMetaDataParserWMA::ConvertToInt64(TDesC8& aDes) -{ + { TInt64 num = 0; TInt i; for(i = 7 ; i >= 0; i--) @@ -414,14 +432,14 @@ num |= aDes[i]; } return num; -} + } // ----------------------------------------------------------------------------- // CMetaDataParserWMA::ConvertToInt32 // ----------------------------------------------------------------------------- // TInt CMetaDataParserWMA::ConvertToInt32(TDesC8& aDes) -{ + { TInt num = 0; for(TInt i = 3 ; i >= 0; i--) { @@ -429,7 +447,7 @@ num |= aDes[i]; } return num; -} + } // ----------------------------------------------------------------------------- @@ -437,7 +455,7 @@ // ----------------------------------------------------------------------------- // TInt CMetaDataParserWMA::ConvertToInt16(TDesC8& aDes) -{ + { TInt num = 0; for(TInt i = 1 ; i >= 0; i--) { @@ -445,7 +463,7 @@ num |= aDes[i]; } return num; -} + } // ----------------------------------------------------------------------------- // CMetaDataParserWMA::ConvertDes8toDes16 @@ -573,15 +591,15 @@ // ----------------------------------------------------------------------------- // void CMetaDataParserWMA::GetJpegL() -{ + { if (iPictureOffset <= 0) - { - return; - } + { + return; + } TInt offset = iPictureOffset; if(!iMetadatLibraryObjectJpegExists) - { + { TPtrC8 dataType = iHeaderData->Mid(offset, 2); offset += 2; TInt dataTypeInt = ConvertToInt16(dataType); @@ -603,28 +621,28 @@ TInt picType = 0; picType |= picData[0]; if(picType != 3) - { + { return; // only Front Album Cover supported - } + } TPtrC8 picLengthData = iHeaderData->Mid(offset, 4); offset += 4; TInt picLength = ConvertToInt32(picLengthData); if(picLength <= 0) - { + { return; - } + } _LIT8(KNULL, "\0\0"); TPtrC8 data = iHeaderData->Mid(offset, picLength); TInt pos = data.Find(KNULL); if(pos != 0) - { + { pos++; // for unicode coding for strings. - } + } // check mime type if(pos != KErrNotFound) - { + { HBufC8 *mimeType = iHeaderData->Mid(offset, pos + 2).AllocLC(); offset += pos + 2; HBufC* name16 = HBufC::NewLC( (pos+2)/2); @@ -633,26 +651,26 @@ _LIT(KJPEG, "image/jpeg\0"); _LIT(KJPG, "image/jpg\0"); if(mimeType16.Compare(KJPEG) != 0 && mimeType16.Compare(KJPG) != 0) - { + { CleanupStack::PopAndDestroy(2, mimeType); return; // only JPEG & JPG supported - } + } CleanupStack::PopAndDestroy(2); // mimeType16, mimeType - } + } // skip the picture description TPtrC8 picDesc = iHeaderData->Mid(offset, picLength); pos = picDesc.Find(KNULL); if(pos != 0) - { + { pos++; // for unicode coding for strings. - } + } offset += pos + 2; // picture data TPtrC8 pic8 = iHeaderData->Mid(offset, picLength); iContainer->AppendL( EMetaDataJpeg, pic8 ); -} + } // ----------------------------------------------------------------------------- @@ -660,7 +678,7 @@ // ----------------------------------------------------------------------------- // TBool CMetaDataParserWMA::GetExtContDesEntryL(TMetaDataFieldId aFieldId, TInt aOffset) -{ + { TBool ret = EFalse; if(iExtendedContentDescriptionCount == 0) { @@ -705,7 +723,7 @@ ret = ETrue; } return ret; -} + } // ----------------------------------------------------------------------------- // CMetaDataParserWMA::GetDurationL @@ -757,7 +775,7 @@ TDes16& aUnicode ) { TPtrC8 unicodeData; - TUint characterSetId = 0; + TUint characterSetId = 0; CCnvCharacterSetConverter* charSetConv = CCnvCharacterSetConverter::NewLC(); TInt state = CCnvCharacterSetConverter::KStateDefault; @@ -784,17 +802,17 @@ // void CMetaDataParserWMA::ParseContentDescriptionObject() { - TBuf8<2> data = iHeaderData->Mid(iContentDescriptionOffset + 24, 2); - iTitleLength = ConvertToInt16(data); - data = iHeaderData->Mid(iContentDescriptionOffset + 26, 2); - iAuthorLength = ConvertToInt16(data); - data = iHeaderData->Mid(iContentDescriptionOffset + 28, 2); - iCopyrightLength = ConvertToInt16(data); - data = iHeaderData->Mid(iContentDescriptionOffset + 30, 2); - iDescriptionLength = ConvertToInt16(data); - data = iHeaderData->Mid(iContentDescriptionOffset + 32, 2); - iRatingLength = ConvertToInt16(data); - return; + TBuf8<2> data = iHeaderData->Mid(iContentDescriptionOffset + 24, 2); + iTitleLength = ConvertToInt16(data); + data = iHeaderData->Mid(iContentDescriptionOffset + 26, 2); + iAuthorLength = ConvertToInt16(data); + data = iHeaderData->Mid(iContentDescriptionOffset + 28, 2); + iCopyrightLength = ConvertToInt16(data); + data = iHeaderData->Mid(iContentDescriptionOffset + 30, 2); + iDescriptionLength = ConvertToInt16(data); + data = iHeaderData->Mid(iContentDescriptionOffset + 32, 2); + iRatingLength = ConvertToInt16(data); + return; } @@ -1006,4 +1024,65 @@ } } +// ----------------------------------------------------------------------------- +// CMetaDataParserWMA::GetSampleRateL +// ----------------------------------------------------------------------------- +// +void CMetaDataParserWMA::GetSampleRateL() + { +#ifdef _DEBUG + RDebug::Print(_L("CMetaDataParserWMA::GetSampleRateL")); +#endif + if(!iStreamPropertiesObjectExists) + { + return; + } + TInt offset = iStreamPropertiesOffset + KSampleRateOffset; + TPtrC8 sampleRate = iHeaderData->Mid(offset, 4); + if(offset+4 > iHeaderData->Length()) //Header Size is too small + { + return ; + } + + TInt sampleRateValue = ConvertToInt32(sampleRate); + TBuf16<20> des16; + des16.Num(sampleRateValue); // convert to string + + iContainer->AppendL( EMetaDataSampleRate, des16 ); + +#ifdef _DEBUG + RDebug::Print(_L("CMetaDataParserWMA::GetSampleRateL(), SampleRate=%S"), &des16); +#endif + } + +// ----------------------------------------------------------------------------- +// CMetaDataParserWMA::GetBitRateL +// ----------------------------------------------------------------------------- +// +void CMetaDataParserWMA::GetBitRateL() + { +#ifdef _DEBUG + RDebug::Print(_L("CMetaDataParserWMA::GetBitRateL")); +#endif + if(!iStreamPropertiesObjectExists) + { + return; + } + TInt offset = iStreamPropertiesOffset + KBitRateOffset; + if(offset+4 > iHeaderData->Length()) //Header Size is too small + { + return ; + } + TPtrC8 byteRate = iHeaderData->Mid(offset, 4); // byte rate + + TInt bitRateValue = ConvertToInt32(byteRate) * 8; // multiply by 8 to get bit rate + TBuf16<20> des16; + des16.Num(bitRateValue); // convert to string + + iContainer->AppendL( EMetaDataBitRate, des16 ); +#ifdef _DEBUG + RDebug::Print(_L("CMetaDataParserWMA::GetBitRateL(), bitRate=%S"), &des16); +#endif + } + // End of File diff -r 60e492b28869 -r a36789189b53 mmserv/metadatautility/Src/MetaDataParserWMA.h --- a/mmserv/metadatautility/Src/MetaDataParserWMA.h Thu Jul 15 19:13:36 2010 +0300 +++ b/mmserv/metadatautility/Src/MetaDataParserWMA.h Thu Aug 19 10:26:11 2010 +0300 @@ -11,8 +11,7 @@ * * Contributors: * -* Description: This class implements an ID3v1 and v1.1 parser as specified in -* www.id3.org. +* Description: This class implements a wma parser * */ @@ -119,6 +118,18 @@ * @return void */ void GetDurationL(); + + /** + * Append sample rate to the container, if found. + * @return void + */ + void GetSampleRateL(); + + /** + * Append bit rate to the container, if found. + * @return void + */ + void GetBitRateL(); /** * Parses all entries in Content Description Object @@ -240,6 +251,9 @@ TBool iHeaderExtensionObjectExists; TBool iMetadataLibraryObjectExists; TBool iMetadatLibraryObjectJpegExists; + TBool iStreamPropertiesObjectExists; + + TInt iStreamPropertiesOffset; }; #endif // CMetaDataParserWMA_H diff -r 60e492b28869 -r a36789189b53 mmserv/voipaudioservices/VoIPIntfc/src/VoIPUtilityFactoryImpl.cpp --- a/mmserv/voipaudioservices/VoIPIntfc/src/VoIPUtilityFactoryImpl.cpp Thu Jul 15 19:13:36 2010 +0300 +++ b/mmserv/voipaudioservices/VoIPIntfc/src/VoIPUtilityFactoryImpl.cpp Thu Aug 19 10:26:11 2010 +0300 @@ -71,7 +71,7 @@ // deny access to audio resources. iPriorityDn.iPref = KAudioPrefVoipAudioDownlink; iPriorityDn.iPriority = KAudioPriorityVoipAudioDownlink; - iPriorityUp.iPref = KAudioPrefVoipAudioUplink; + iPriorityUp.iPref = KAudioPrefVoipAudioUplinkNonSignal; //for DTMF mixing iPriorityUp.iPriority = KAudioPriorityVoipAudioUplink; } diff -r 60e492b28869 -r a36789189b53 mmserv/voipaudioservices/VoIPServer/inc/VoIPQueueHandlerSrv.h --- a/mmserv/voipaudioservices/VoIPServer/inc/VoIPQueueHandlerSrv.h Thu Jul 15 19:13:36 2010 +0300 +++ b/mmserv/voipaudioservices/VoIPServer/inc/VoIPQueueHandlerSrv.h Thu Aug 19 10:26:11 2010 +0300 @@ -22,8 +22,6 @@ #include #include #include "VoIPAudioClientServer.h" // for TVoIPMsgBuf -// FORWARD DECLARATIONS - /** * MQueueHandlerObserver diff -r 60e492b28869 -r a36789189b53 mmserv/voipaudioservices/VoIPServer/inc/VoIPServerThread.h --- a/mmserv/voipaudioservices/VoIPServer/inc/VoIPServerThread.h Thu Jul 15 19:13:36 2010 +0300 +++ b/mmserv/voipaudioservices/VoIPServer/inc/VoIPServerThread.h Thu Aug 19 10:26:11 2010 +0300 @@ -16,8 +16,8 @@ * */ -#ifndef __VOIPAUDIOSERVERTHREAD_H -#define __VOIPAUDIOSERVERTHREAD_H +#ifndef VOIPAUDIOSERVERTHREAD_H +#define VOIPAUDIOSERVERTHREAD_H #include #include @@ -281,6 +281,6 @@ }; -#endif // __VOIPAUDIOSERVERTHREAD_H +#endif // VOIPAUDIOSERVERTHREAD_H // End of file diff -r 60e492b28869 -r a36789189b53 package_definition.xml --- a/package_definition.xml Thu Jul 15 19:13:36 2010 +0300 +++ b/package_definition.xml Thu Aug 19 10:26:11 2010 +0300 @@ -63,9 +63,6 @@ - - -