mmappcomponents/harvester/metadataextractor/src/mpxmetadataextractor.cpp
changeset 61 3b098142db83
parent 57 f4fd77a452f2
--- a/mmappcomponents/harvester/metadataextractor/src/mpxmetadataextractor.cpp	Thu Sep 02 20:56:29 2010 +0300
+++ b/mmappcomponents/harvester/metadataextractor/src/mpxmetadataextractor.cpp	Fri Sep 17 08:33:08 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description:  Extracts metadata from a file
-*  Version     : %version: da1mmcf#38.1.4.2.6.1.5.3.8 % << Don't touch! Updated by Synergy at check-out.
+*  Version     : %version: da1mmcf#38.1.4.2.6.1.5.3.9 % << Don't touch! Updated by Synergy at check-out.
 *
 */
 
@@ -460,12 +460,12 @@
                 const TDesC& mimeType = iMedia->ValueText( KMPXMediaGeneralMimeType );
                 MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL, mimeType = %S", &mimeType);
 
-                // Verify if WMA, get the duration
+                // Verify if WMA, get the bit rate
                 if( mimeType.Compare(KWmaMimeType) == 0 || mimeType.Compare(KWmaCafMimeType) == 0 )
                     {
                     MPX_DEBUG1("CMPXMetadataExtractor::SetMediaPropertiesL- WMA");
 
-                    // Perform the duration conversion
+                    // Perform the bit rate conversion
                     TLex lexer( *value );
                     TInt32 bitRate ( 0 );
                     lexer.Val( bitRate );
@@ -473,7 +473,7 @@
                     iMedia->SetTObjectValueL<TUint>( KMPXMediaAudioBitrate,
                                                      bitRate );
 
-                    MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL- duration = %i", bitRate);
+                    MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL- bit rate = %i", bitRate);
                     }
                 break;
                 }
@@ -549,13 +549,17 @@
                 MPX_DEBUG2("CMPXMetadataExtractor::SetExtMediaPropertiesL, file info util error %i", err2);
                 if( KErrNone == err2 )
                     {
+                    // Get duration prior getting sample and bit rates
+                    // MMF blocks for accumulating audio data to calculate duration
+					// but MMF does not block for calculating sample rate or bit rate 
+                    TInt64 duration = (TInt64) iFileInfoUtil->Duration().Int64() / 1000; // ms
+                    iMedia->SetTObjectValueL<TInt32>( KMPXMediaGeneralDuration,
+                                                    duration );
+                                                    
                     iMedia->SetTObjectValueL<TUint>( KMPXMediaAudioBitrate,
                                                    iFileInfoUtil->BitRate() );
                     iMedia->SetTObjectValueL<TUint>( KMPXMediaAudioSamplerate,
                                                    iFileInfoUtil->SampleRate() );
-                    TInt64 duration = (TInt64) iFileInfoUtil->Duration().Int64() / 1000; // ms
-                    iMedia->SetTObjectValueL<TInt32>( KMPXMediaGeneralDuration,
-                                                    duration );
 
                     MPX_DEBUG2("CMPXMetadataExtractor::SetExtMediaPropertiesL -- duration %i", duration);
                     }