[prev in list] [next in list] [prev in thread] [next in thread] 

List:       helix-datatype-cvs
Subject:    [Datatype-cvs] mdf/video/renderer mdfpluginarchive.cpp, 1.1.2.4,
From:       jwei () helixcommunity ! org
Date:       2007-06-28 21:55:23
Message-ID: 200706282155.l5SLtiON026694 () mailer ! progressive-comp ! com
[Download RAW message or body]

Update of /cvsroot/datatype/mdf/video/renderer
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv23873/video/renderer

Modified Files:
      Tag: hxclient_2_1_0_cayennes
	mdfpluginarchive.cpp mdfpluginmanager.cpp mdfpluginpackage.cpp 
	mdfvideoadapter.cpp 
Log Message:

Nokia submits this code under the terms of a commercial contribution agreement with \
RealNetworks, and I am authorized to contribute this code under said agreement."

Modified by:  john.wei@nokia.com

Reviewed by:

Date: 18-June-2007

Project: SymbianMmf_Rel

TSW: TBD

Synopsis: MDF Video Renderer - fix decoder and postprocessor mismatch

In the file \datatype\mdf\video\format\common\mdfpayloadformat.cpp,

Before 4/7/07, following method was declared as 

==================================================
XBOOL CMdfPluginManager::IsDecoderSupportMimeTypeL( const CVideoDecoderInfo* \
pDecoderInfo, const TDesC8& aMimeType, const CCompressedVideoFormat*& \
pCCompressedVideoFormat ) const ==================================================


After 4/7/07, it is modified as following to accommodate WM:

==================================================
HXBOOL CMdfPluginManager::IsDecoderSupportMimeTypeL( const CVideoDecoderInfo* \
pDecoderInfo, const CPayloadFormatInfo* aPayloadInfo , const CCompressedVideoFormat*& \
pCCompressedVideoFormat ) const ==================================================

This method is used in the way as follows:

==================================================

for( TInt m = 0; m < payloadformatCount; m++ ) 

{ 

if( payloadformatinfo->SupportMimeType( aMimeType ) ) 

{

for( TInt j = 0; j < decoderCount; j++ ) 

{

if( IsDecoderSupportMimeTypeL( decoderInfo, *convertedMimeType, format ) ) //before \
4/7/07 

if( IsDecoderSupportMimeTypeL( decoderInfo, payloadformatinfo, format ) )  //after \
4/7/07 

{ 

==================================================

IsDecoderSupportMimeTypeL() is meant to check if decoder supports a particular \
mimetype. However modified version is made to check if decoder and payloadformat have \
common mimetype, instead of this particular mimetype. This causes decoders could be \
paired wrongly with postprocessors, which resulting in video not played at all for \
affected mimetypes.

This CR proposes to fix the bug stated above.

Files Modified:

/cvsroot/datatype/mdf/video/format/common/mdfpayloadformat.cpp
/cvsroot/datatype/mdf/video/format/common/pub/mdfpayloadformat.h
/cvsroot/datatype/mdf/video/format/h263/mdfh263payloadformat.cpp
/cvsroot/datatype/mdf/video/format/h264/mdfh264payloadformat.cpp
/cvsroot/datatype/mdf/video/format/mp4/mdfmp4payloadformat.cpp
/cvsroot/datatype/mdf/video/format/rm/mdfrvxpayloadformat.cpp
/cvsroot/datatype/mdf/video/format/wmv/mdfwmvpayloadformat.cpp
/cvsroot/datatype/mdf/video/renderer/mdfpluginmanager.cpp
/cvsroot/datatype/mdf/video/renderer/pub/mdfpluginmanager.h
/cvsroot/datatype/mdf/video/renderer/mdfpluginarchive.cpp
/cvsroot/datatype/mdf/video/renderer/pub/mdfpluginpackage.h
/cvsroot/datatype/mdf/video/renderer/mdfpluginpackage.cpp
/cvsroot/datatype/mdf/video/renderer/mdfvideoadapter.cpp

======================================================
Image Size and Heap Use impact: minor

Module Release testing (STIF) :  Passed

Test case(s) Added  :  None

Memory leak check performed : Yes.  No new leaks introduced.  

Platforms and Profiles Build Verified: helix-client-s60-32-mmf-mdf-arm

Platforms and Profiles Functionality verified: armv5, winscw 

Branch: Head & 210CayS


Index: mdfpluginmanager.cpp
===================================================================
RCS file: /cvsroot/datatype/mdf/video/renderer/mdfpluginmanager.cpp,v
retrieving revision 1.2.2.11
retrieving revision 1.2.2.12
diff -u -d -r1.2.2.11 -r1.2.2.12
--- mdfpluginmanager.cpp	7 Apr 2007 22:08:29 -0000	1.2.2.11
+++ mdfpluginmanager.cpp	28 Jun 2007 21:55:21 -0000	1.2.2.12
@@ -282,8 +282,7 @@
         CPluginPackage* newPackage = CPluginPackage::NewL( aMimeType );
         m_PluginPackageArray.Append( newPackage );  //transfer the ownership
         m_bPluginArchiveMatchPackageArray = EFalse;
-        
-        
+                
         TInt decoderCount       = m_HwDecoderArray.Count();
         TInt postprocessorCount = m_HwPostProcessorArray.Count();
         TInt payloadformatCount = m_PayloadFormatArray.Count();
@@ -297,14 +296,17 @@
             if( payloadformatinfo->SupportMimeType( aMimeType ) )
             {
                 MDFVIDEOLOG_INOUTFN( "Selected payload do support mimetype" );
+                const TDesC8& mimetypekey =  payloadformatinfo->GetMimeTypeKey( \
                aMimeType );
                 TVideoDataUnitType  unitType = \
                payloadformatinfo->GetVideoDataUnitType();
                 TVideoDataUnitEncapsulation unitEncapsulation = \
payloadformatinfo->GetVideoDataUnitEncapsulation();  TUid plId = \
                payloadformatinfo->Uid();
-                
+          
+                newPackage->SetMimeTypeKeyL( mimetypekey );
                 newPackage->SetVideoDataUnitType( unitType );
                 newPackage->SetVideoDataUnitEncapsulation( unitEncapsulation );
                 newPackage->SetPayloadFormatId( plId );
-                
+         
+
                 MDFVIDEOLOG_INOUTFN( "Payload matches, check for decoder ..." );
                 for( TInt j = 0; j < decoderCount; j++ )
                 {
@@ -313,7 +315,7 @@
                 
                     const CCompressedVideoFormat* format = NULL;
 
-                    if( IsDecoderSupportMimeTypeL( decoderInfo, payloadformatinfo, \
format ) ) +                    if( IsDecoderSupportMimeTypeL( decoderInfo, \
mimetypekey, format ) )  {
                         MDFVIDEOLOG_INOUTFN( "Selected decoder do support mimetype" \
);  TUid decoderUid = decoderInfo->Uid();
@@ -381,12 +383,13 @@
                             MDFVIDEOLOG_INOUTFN( "dev->SetInputFormatL leaves" );
                         }
                         CleanupStack::PopAndDestroy(dev);
-                    } //if( IsDecoderSupportMimeTypeL( decoderInfo, \
*convertedMimeType, format ) ) +                    } //if( \
IsDecoderSupportMimeTypeL( decoderInfo, mimetypekey, format ) )  else
                     {
                         MDFVIDEOLOG_INOUTFN( "Decoder do NOT support mimetype" );
                     }
                 } //for( TInt j = 0; j < decoderCount; j++ )
+        
             } //if( payloadformatinfo->SupportMimeType( aMimeType ) )
             else
             {
@@ -527,53 +530,6 @@
     return pMimeType;
 }
 
-HBufC8* CMdfPluginManager::ConvertToStandardMimeTypeL( const TDesC8& aMimeType ) \
                const
-{
-    MDFVIDEOLOG_ENTERFN( "ConvertToStandardMimeTypeL" );
-
-    _LIT8( KH263,   "h263" );
-    _LIT8( KMP4,    "mp4"  );
-    _LIT8( KRVX,    "real" );
-    _LIT8( KH264,   "h264" );
-    _LIT8( KAVC,    "avc" );
-
-    HBufC8* convertedMimeType = NULL;
-    HBufC8* inMimeType = aMimeType.AllocLC();
-    
-    TPtr8 tptr8 = inMimeType->Des();
-    tptr8.LowerCase();
-    
-    if( tptr8.Find( KH263 ) != KErrNotFound )
-    {
-        convertedMimeType = KH263().AllocL();
-    }
-    else if( tptr8.Find( KMP4 ) != KErrNotFound )
-    {
-        convertedMimeType = KMP4().AllocL();
-    }
-    else if( tptr8.Find( KH264 ) != KErrNotFound )
-    {
-        convertedMimeType = KH264().AllocL();
-    }
-    else if( tptr8.Find( KAVC ) != KErrNotFound )
-    {
-        convertedMimeType = KH264().AllocL();
-    }
-    else if( tptr8.Find( KRVX ) != KErrNotFound )
-    {
-        convertedMimeType = KRVX().AllocL();
-    }
-    else
-    {
-        convertedMimeType = aMimeType.AllocL();
-    }
-    
-    CleanupStack::PopAndDestroy( inMimeType );
-    
-    MDFVIDEOLOG_LEAVEFN( "ConvertToStandardMimeTypeL" );
-    return convertedMimeType;
-}
-
 HX_RESULT CMdfPluginManager::SelectPackageByCodecRule( const TDesC8& aMimeType, TUid \
                decUidNeeded,
                                                        TUid ppUidNeeded, \
CPluginPackage& pluginPackage ) const  {
@@ -633,14 +589,12 @@
     MDFVIDEOLOG_LEAVEFN( "RemoveRule" );
 }
 
-HXBOOL CMdfPluginManager::IsDecoderSupportMimeTypeL( const CVideoDecoderInfo* \
pDecoderInfo, const CPayloadFormatInfo* aPayloadInfo , const CCompressedVideoFormat*& \
pCCompressedVideoFormat ) const +HXBOOL CMdfPluginManager::IsDecoderSupportMimeTypeL( \
const CVideoDecoderInfo* pDecoderInfo, const TDesC8& aMimeType, const \
CCompressedVideoFormat*& pCCompressedVideoFormat ) const  {
     MDFVIDEOLOG_ENTERFN( "IsDecoderSupportMimeTypeL" );
     
     const RPointerArray<CCompressedVideoFormat>& supportedFormats = \
pDecoderInfo->SupportedFormats();  
-    TArray<HBufC8*> mimeKeywordArray = aPayloadInfo->GetSupportedMimetypeKeywords();
-    UINT keywordCount = mimeKeywordArray.Count();
     HXBOOL found( FALSE );
     UINT count = supportedFormats.Count();
     pCCompressedVideoFormat = NULL;
@@ -653,16 +607,12 @@
         TPtr8 tptr8 = mimetype->Des();
         tptr8.LowerCase();
         
-        for (UINT j=0; j < keywordCount; j++)
+        if (tptr8.Find( aMimeType ) != KErrNotFound )
         {
-            const TDesC8& mimeKey = *(mimeKeywordArray[j]);
-            if (tptr8.Find( mimeKey ) != KErrNotFound )
-            {
-                pCCompressedVideoFormat = format;
-                found = TRUE;
-                break;
-            }
+            pCCompressedVideoFormat = format;
+            found = TRUE;
         }
+
         CleanupStack::PopAndDestroy( mimetype );
     }
     MDFVIDEOLOG_RETURNFN( "IsDecoderSupportMimeTypeL", found );

Index: mdfpluginpackage.cpp
===================================================================
RCS file: /cvsroot/datatype/mdf/video/renderer/mdfpluginpackage.cpp,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.5
diff -u -d -r1.1.2.4 -r1.1.2.5
--- mdfpluginpackage.cpp	27 Mar 2007 16:00:48 -0000	1.1.2.4
+++ mdfpluginpackage.cpp	28 Jun 2007 21:55:21 -0000	1.1.2.5
@@ -84,6 +84,7 @@
 {
     delete m_pMimeTypeHelix;
     delete m_pMimeTypeVidHw;
+    delete m_pMimeTypeKey;
 #ifdef SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT
     m_lSupportedScreens.Close();
     m_lScreenIndex = -1;
@@ -101,6 +102,11 @@
     return *m_pMimeTypeVidHw;
 }
 
+const TDesC8& CPluginPackage::GetMimeTypeKey() const
+{
+    return *m_pMimeTypeKey;
+}
+
 TUid CPluginPackage::GetHwDecoderId() const
 {
     return m_HwDecoderId;
@@ -140,6 +146,13 @@
     m_pMimeTypeVidHw = aMimeType.AllocL();
 }
 
+void CPluginPackage::SetMimeTypeKeyL( const TDesC8& aMimeType )
+{
+    delete m_pMimeTypeKey;
+    m_pMimeTypeKey = NULL;
+    m_pMimeTypeKey = aMimeType.AllocL();
+}
+
 void CPluginPackage::SetVideoDataUnitType( TVideoDataUnitType aVideoDataUnitType ) 
 { 
     m_VideoDataUnitType = aVideoDataUnitType; 
@@ -216,12 +229,6 @@
 {
     TBool retVal = ETrue;
 
-    if( m_pMimeTypeHelix != aPluginPackage.m_pMimeTypeHelix
-        || m_pMimeTypeVidHw != aPluginPackage.m_pMimeTypeVidHw )
-    {
-        retVal = EFalse;
-    }
-
     if( retVal )
     {
         if( m_pMimeTypeHelix && m_pMimeTypeHelix->Compare( \
*(aPluginPackage.m_pMimeTypeHelix) ) ) @@ -238,6 +245,14 @@
         }
     }
 
+    if( retVal )
+    {
+        if( m_pMimeTypeKey && m_pMimeTypeKey->Compare( \
*(aPluginPackage.m_pMimeTypeKey) ) ) +        {
+            retVal = EFalse;
+        }
+    }
+
 #ifdef SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT
     if( retVal )
     {
@@ -294,6 +309,7 @@
     {
         delete m_pMimeTypeHelix;
         delete m_pMimeTypeVidHw;
+        delete m_pMimeTypeKey;
         m_pMimeTypeHelix = NULL;
         if( aPluginPackage.m_pMimeTypeHelix )
         {
@@ -304,6 +320,11 @@
         {
             m_pMimeTypeVidHw = (aPluginPackage.m_pMimeTypeVidHw)->Alloc();
         }
+        m_pMimeTypeKey = NULL;
+        if( aPluginPackage.m_pMimeTypeKey )
+        {
+            m_pMimeTypeKey = (aPluginPackage.m_pMimeTypeKey)->Alloc();
+        }
 
 #ifdef SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT
         m_lSupportedScreens.Reset();
@@ -330,6 +351,7 @@
 CPluginPackage::CPluginPackage()
 : m_pMimeTypeHelix( NULL ),
   m_pMimeTypeVidHw( NULL ),
+  m_pMimeTypeKey( NULL ),
   m_HwDecoderId( KUidZero ),
   m_HwPostProcessorId( KUidZero ),
   m_PayloadFormatId( KUidZero ),
@@ -347,6 +369,7 @@
 {
     m_pMimeTypeHelix = aMimeType.AllocL();
     m_pMimeTypeVidHw = KNullDesC8().AllocL();
+    m_pMimeTypeKey   = KNullDesC8().AllocL();
 }
 
 void CPluginPackage::ConstructL( const CPluginPackage& aPluginPackage )
@@ -367,6 +390,14 @@
     {
         m_pMimeTypeVidHw = KNullDesC8().AllocL();
     }
+    if( aPluginPackage.m_pMimeTypeKey )
+    {
+        m_pMimeTypeKey = (aPluginPackage.m_pMimeTypeKey)->AllocL();
+    }
+    else
+    {
+        m_pMimeTypeKey = KNullDesC8().AllocL();
+    }
 
 #ifdef SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT
     m_lSupportedScreens.Reset();
@@ -392,6 +423,7 @@
 {
     m_pMimeTypeHelix = KNullDesC8().AllocL();
     m_pMimeTypeVidHw = KNullDesC8().AllocL();
+    m_pMimeTypeKey   = KNullDesC8().AllocL();
 }
 
 

Index: mdfpluginarchive.cpp
===================================================================
RCS file: /cvsroot/datatype/mdf/video/renderer/mdfpluginarchive.cpp,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.5
diff -u -d -r1.1.2.4 -r1.1.2.5
--- mdfpluginarchive.cpp	27 Mar 2007 16:00:48 -0000	1.1.2.4
+++ mdfpluginarchive.cpp	28 Jun 2007 21:55:21 -0000	1.1.2.5
@@ -62,6 +62,7 @@
 
 _LIT8( KMimeTypeHelix,                       "helix mime type" );
 _LIT8( KMimeTypeVidHw,                       "hardware mime type" );
+_LIT8( KMimeTypeKey,                         "mime type key" );
 _LIT8( KHwDecoderId,                         "decoder id" );
 _LIT8( KHwPostProcessorId,                   "postprocessor id" );
 
@@ -244,6 +245,11 @@
                 aPackage->SetVideoHwMimeTypeL( right );
                 MDFVIDEOLOG_INOUTFN( "MimeTypeVidHw Read Successfully" );
             }
+            else if( !left.Compare( KMimeTypeKey ) )
+            {
+                aPackage->SetMimeTypeKeyL( right );
+                MDFVIDEOLOG_INOUTFN( "MimeTypeKey Read Successfully" );
+            }
             else if( !left.Compare( KHwDecoderId ) )
             {
                 TUint id;
@@ -993,6 +999,11 @@
         WriteOneLine( aPackage.GetVideoHwMimeType() );
         WriteOneLine( KTxtLineDelimiter );
         
+        WriteOneLineWithTrailingSpace( KMimeTypeKey, KNumberOfCharPerArgument );
+        WriteOneLine( KEqualChar );
+        WriteOneLine( aPackage.GetMimeTypeKey() );
+        WriteOneLine( KTxtLineDelimiter );
+
         WriteOneLineWithTrailingSpace( KHwDecoderId, KNumberOfCharPerArgument );
         WriteOneLine( KEqualChar );
         WriteOneLine( aPackage.GetHwDecoderId().iUid, ETrue );

Index: mdfvideoadapter.cpp
===================================================================
RCS file: /cvsroot/datatype/mdf/video/renderer/mdfvideoadapter.cpp,v
retrieving revision 1.3.2.64
retrieving revision 1.3.2.65
diff -u -d -r1.3.2.64 -r1.3.2.65
--- mdfvideoadapter.cpp	2 May 2007 16:16:46 -0000	1.3.2.64
+++ mdfvideoadapter.cpp	28 Jun 2007 21:55:21 -0000	1.3.2.65
@@ -351,73 +351,76 @@
     if ( SUCCEEDED( retVal ) && bUseCodecConfigRules )
     {
         // find codec rule to be applied
-        const TDesC8& aMimeType = m_pPluginPackage->GetHelixMimeType();
+        const TDesC8& aMimeType    = m_pPluginPackage->GetHelixMimeType();
+        const TDesC8& aMimeTypeKey = m_pPluginPackage->GetMimeTypeKey();
         const TDesC8& aProfile  = m_pPayloadFormatPluginDevice->GetVideoProfile();
         MDFVIDEOLOG_WRITE_FORMAT2( "<-> Profile string for video is %s", \
aProfile.Ptr() );  
-        HBufC8* convertedMimeType = NULL;
-        TRAPD( error, convertedMimeType = \
                m_pPluginManager->ConvertToStandardMimeTypeL( aMimeType ) );
-        if( error == KErrNone )
+        HXBOOL foundRule = FALSE;
+        HXBOOL foundType = FALSE;
+        UINT8 count      = m_CodecConfigRuleArray.Count();
+        TUid decUidToUse = KUidZero;
+        TUid ppUidToUse  = KUidZero;
+
+        for( UINT8 i = 0; i < count; i++ )
         {
-            HXBOOL foundRule = FALSE;
-            HXBOOL foundType = FALSE;
-            UINT8 count      = m_CodecConfigRuleArray.Count();
-            TUid decUidToUse = KUidZero;
-            TUid ppUidToUse  = KUidZero;
+            CodecConfigRule* pCodecRule = m_CodecConfigRuleArray[i];
 
-            for( UINT8 i = 0; i < count; i++ )
+            TInt ismimetypefound = KErrNotFound;
+            
+            if( pCodecRule )
             {
-                CodecConfigRule* pCodecRule = m_CodecConfigRuleArray[i];
-                if( ( pCodecRule ) && ( *(pCodecRule->pMimeType) == \
                *convertedMimeType ) )
-                {
-                    foundType = TRUE;
-                    if( ( aProfile                == KNullDesC8() ) ||
-                        ( *(pCodecRule->pProfile) == KNullDesC8() ) ||
-                        ( *(pCodecRule->pProfile) == aProfile ) )
-                    {
-                        UINT32 resolution = \
                m_pPayloadFormatPluginDevice->GetVideoResolution();
-                        MDFVIDEOLOG_WRITE_FORMAT2( "<-> Video resolution is %d", \
                resolution );
-                        if( ( resolution > 0 ) && ( resolution <= \
                pCodecRule->ulFrameResolution ) )
-                        {
-                            decUidToUse = pCodecRule->DecoderUid;
-                            ppUidToUse  = pCodecRule->PostProcessorUid;
-                        }
-                        else
-                        {
-                            decUidToUse = pCodecRule->DefaultDecoderUid;
-                            ppUidToUse  = pCodecRule->DefaultPostProcUid;
-                        }
-                        if( decUidToUse != KUidZero )
-                        {
-                            foundRule = TRUE;
-                            break;
-                        }
-                    }
-                }
+                ismimetypefound = aMimeTypeKey.Find( *(pCodecRule->pMimeType) );
             }
 
-            if( foundRule )
+            if( ( pCodecRule ) && ( ismimetypefound != KErrNotFound ) )
             {
-                if(  ( decUidToUse != m_pPluginPackage->GetHwDecoderId() ) ||
-                    ( ( ppUidToUse != KUidZero ) && ( ppUidToUse != \
m_pPluginPackage->GetHwPostProcessorId() ) ) ) +                foundType = TRUE;
+                if( ( aProfile                == KNullDesC8() ) ||
+                    ( *(pCodecRule->pProfile) == KNullDesC8() ) ||
+                    ( *(pCodecRule->pProfile) == aProfile ) )
                 {
-                    // current package's decoder and/or post processor doesn't match \
                desired
-                    // need to select another package
-                    retVal = m_pPluginManager->SelectPackageByCodecRule( aMimeType, \
                decUidToUse,
-                                                                     ppUidToUse, \
*m_pPluginPackage ); +                    UINT32 resolution = \
m_pPayloadFormatPluginDevice->GetVideoResolution(); +                    \
MDFVIDEOLOG_WRITE_FORMAT2( "<-> Video resolution is %d", resolution ); +              \
if( ( resolution > 0 ) && ( resolution <= pCodecRule->ulFrameResolution ) ) +         \
{ +                        decUidToUse = pCodecRule->DecoderUid;
+                        ppUidToUse  = pCodecRule->PostProcessorUid;
+                    }
+                    else
+                    {
+                        decUidToUse = pCodecRule->DefaultDecoderUid;
+                        ppUidToUse  = pCodecRule->DefaultPostProcUid;
+                    }
+                    if( decUidToUse != KUidZero )
+                    {
+                        foundRule = TRUE;
+                        break;
+                    }
                 }
             }
-            else if ( foundType )
+        }
+        
+        if( foundRule )
+        {
+            if(  ( decUidToUse != m_pPluginPackage->GetHwDecoderId() ) ||
+                ( ( ppUidToUse != KUidZero ) && ( ppUidToUse != \
m_pPluginPackage->GetHwPostProcessorId() ) ) )  {
-                // if some rule exists for mimetype but it does not have valid info, \
                return error
-                // else do nothing, it'll fall back to use plugin package already \
                selected
-                MDFVIDEOLOG_WRITE_FORMAT2( "    Error: Valid codec rule not found \
                for mimetype %s", aMimeType.Ptr() );
-                retVal = HXR_UNSUPPORTED_VIDEO;
+                // current package's decoder and/or post processor doesn't match \
desired +                // need to select another package
+                retVal = m_pPluginManager->SelectPackageByCodecRule( aMimeType, \
decUidToUse, +                    ppUidToUse, *m_pPluginPackage );
             }
         }
-        HX_DELETE( convertedMimeType );
+        else if ( foundType )
+        {
+            // if some rule exists for mimetype but it does not have valid info, \
return error +            // else do nothing, it'll fall back to use plugin package \
already selected +            MDFVIDEOLOG_WRITE_FORMAT2( "    Error: Valid codec rule \
not found for mimetype %s", aMimeType.Ptr() ); +            retVal = \
HXR_UNSUPPORTED_VIDEO; +        }
     }
-
+    
     if ( SUCCEEDED( retVal ) )
     {
         m_pPictureHeader = m_pPayloadFormatPluginDevice->GetPictureHeader();


_______________________________________________
Datatype-cvs mailing list
Datatype-cvs@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/datatype-cvs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic