--- 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;
--- 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());
--- 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)
--- 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
--- 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.
--- 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<CMMFDataBuffer*>(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
--- 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:
/**
--- 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
--- 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:
--- 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
--- 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<TInt>& aCodecConfigData);
TInt CodecCmd(TCodecCmd aCmd);
-
+
+ TBool IsDecodingSufficient();
+
+
private: // Functions from base classes
void ResetL();
--- 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
--- 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
--- 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<TFileName> pckg(iDestFileName);
iCustomCommand->CustomCommandSync( iSourceHandle, ESetUpdateFileName, pckg, KNullDesC8 );
}
--- 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);
--- 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
--- 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;
}
--- 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
--- 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...
};
--- 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;
--- 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 )
{
--- 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
--- 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
--- 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
Binary file mmserv/audioeffectsui/equalizer/help/data/xhtml.zip has changed
--- 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 * *)
--- 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 ; #<TI>#
_ZTV13C3GPExtParser @ 5 NONAME ; #<VT>#
- _ZN13C3GPExtParser13GetilstBoxesLERK6TDesC816TMetaDataFieldIdPP6HBufC8 @ 6 NONAME
+ _ZN13C3GPExtParser13GetilstBoxesLE16TMetaDataFieldIdPP7HBufC16 @ 6 NONAME
--- 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);
}
--- 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
--- 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
--- 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);
--- 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
--- 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
--- 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;
}
--- 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 <e32base.h>
#include <e32msgqueue.h>
#include "VoIPAudioClientServer.h" // for TVoIPMsgBuf
-// FORWARD DECLARATIONS
-
/**
* MQueueHandlerObserver
--- 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 <e32msgqueue.h>
#include <sounddevice.h>
@@ -281,6 +281,6 @@
};
-#endif // __VOIPAUDIOSERVERTHREAD_H
+#endif // VOIPAUDIOSERVERTHREAD_H
// End of file
--- 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 @@
<component id="mmmw_plat" filter="s60" name="Multimedia Middleware Platform Interfaces" class="api">
<unit bldFile="mmmw_plat/group"/>
</component>
- <component id="mmmw_metadata" name="Multimedia Middleware Metadata" class="config" introduced="^2" purpose="development" target="desktop">
- <unit mrp="mmmw_info/mmmw_metadata/mmmw_metadata.mrp"/>
- </component>
</collection>
</package>
</SystemDefinition>