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

List:       helix-datatype-cvs
Subject:    [Datatype-cvs] mp4/filewriter mp4sm.cpp,1.32.2.7,1.32.2.8
From:       yuxinliu () helixcommunity ! org
Date:       2013-10-23 2:47:25
[Download RAW message or body]

Update of /cvsroot/datatype/mp4/filewriter
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv8774

Modified Files:
      Tag: PRODUCER_14_0_RN
	mp4sm.cpp 
Log Message:
Synopsis
========
This CR Fix Bug HLXPROD-123 HMP produces 3gs6 files, when setup to create mp4 files.

Branch : PRODUCER_14_0_RN

Reviewed by Gang

Repro Steps:
When HMP is set up with a job to create mp4 files, once encoding is completed, the \
file will have an .mp4 file extension. However if you analyze or interrogate the file \
with a media analyzer such as mediainfo, the file will actually display as 3gs6.

Root Cause:
If EnableHintTracks is true, HMP will set ftype to 3gs6 for both of MP4 and 3GP file.
If EnableProgressiveDownload is true, HMP will set ftype to 3gr6 for both of MP4 and \
3GP file.

My fix:
For mp4 file, HMP will not change ftype to 3gs6 or 3gr6 when EnableHintTracks  or \
EnableProgressiveDownload is true.


Files affected:
=========
datatype/mp4/filewriter/mp4sm.cpp

Testing Performed:
================
Unit Tests: None

Leak Tests: None
Performance Tests: N/A

Platforms Tested: win32-i386-vc9
Builds Verified: win32-i386-vc9

QA Hints
==========
None



Index: mp4sm.cpp
===================================================================
RCS file: /cvsroot/datatype/mp4/filewriter/mp4sm.cpp,v
retrieving revision 1.32.2.7
retrieving revision 1.32.2.8
diff -u -d -r1.32.2.7 -r1.32.2.8
--- mp4sm.cpp	25 Apr 2011 20:32:44 -0000	1.32.2.7
+++ mp4sm.cpp	23 Oct 2013 02:47:20 -0000	1.32.2.8
@@ -1815,6 +1815,7 @@
     {
         m_pRootAtom->AddChild( pFtyp );
         retVal = HXR_OK;
+        HXBOOL bIsMP4 = TRUE;
 
         //try to guess file branding info by file extension
 
@@ -1837,6 +1838,7 @@
                 pFtyp->SetCompatibleBrands("3gp73gp6isom");
 
                 m_eMetaFlavor = META_3GPP;
+                bIsMP4 = FALSE;
             }
             else
                 if (stricmp(fileExt, ".3g2") == 0)
@@ -1847,6 +1849,7 @@
                     pFtyp->SetMinorVersion(0);
 
                     m_eMetaFlavor = META_3GPP;
+                    bIsMP4 = FALSE;
                 }
 #if defined(HELIX_FEATURE_RMFF_ISO_BASED)
                 else
@@ -1856,6 +1859,7 @@
                         pFtyp->SetCompatibleBrands(HX_RMNG_COMPATIBLE_BRANDS);
                         pFtyp->SetMinorVersion(0);
                         m_eMetaFlavor = META_RMNG;
+                        bIsMP4 = FALSE;
                     }
 #endif
                     else
@@ -1873,45 +1877,49 @@
         // When in proper 3GPP-mode, only include rel6/rel5 definitions.
         // Note that we don't even check that everything is conformant,
         // just adjust those things we can affect.
-        switch (m_e3gpMode)
+        if(!bIsMP4)
         {
-        case M3GPP_GENERAL:
-            pFtyp->SetMajorBrand("3gg6");
-            pFtyp->SetMinorVersion(0);
-            pFtyp->SetCompatibleBrands("3gg63gp6isom");
-            m_eMetaFlavor = META_3GPP;
-            break;
-        case M3GPP_BASIC:
-            pFtyp->SetMajorBrand("3gp6");
-            pFtyp->SetMinorVersion(0);
-            pFtyp->SetCompatibleBrands("3gp63gp5isom");
-            m_eMetaFlavor = META_3GPP;
-            break;
-        case M3GPP_STREAMING:
-            pFtyp->SetMajorBrand("3gs6");
-            pFtyp->SetMinorVersion(0);
-            pFtyp->SetCompatibleBrands("3gs63gg63gp5isom");
-            m_eMetaFlavor = META_3GPP;
-            break;
-        case M3GPP_PROGDL:
-            pFtyp->SetMajorBrand("3gr6");
-            pFtyp->SetMinorVersion(0);
-            pFtyp->SetCompatibleBrands("3gr63gp63gg63gp5isom");
-            m_eMetaFlavor = META_3GPP;
-            break;
-        case M3GPP_STREAMDL:
-            pFtyp->SetMajorBrand("3gs6");
-            pFtyp->SetMinorVersion(0);
-            pFtyp->SetCompatibleBrands("3gs63gr63gg63gp5isom");
-            m_eMetaFlavor = META_3GPP;
-            break;
-        case M3GPP_REL5:
-            pFtyp->SetMajorBrand("3gp5");
-            pFtyp->SetMinorVersion(0);
-            pFtyp->SetCompatibleBrands("3gp53gp4isom");
-            m_eMetaFlavor = META_3GPP;
-            break;
+            switch (m_e3gpMode)
+            {
+            case M3GPP_GENERAL:
+                pFtyp->SetMajorBrand("3gg6");
+                pFtyp->SetMinorVersion(0);
+                pFtyp->SetCompatibleBrands("3gg63gp6isom");
+                m_eMetaFlavor = META_3GPP;
+                break;
+            case M3GPP_BASIC:
+                pFtyp->SetMajorBrand("3gp6");
+                pFtyp->SetMinorVersion(0);
+                pFtyp->SetCompatibleBrands("3gp63gp5isom");
+                m_eMetaFlavor = META_3GPP;
+                break;
+            case M3GPP_STREAMING:
+                pFtyp->SetMajorBrand("3gs6");
+                pFtyp->SetMinorVersion(0);
+                pFtyp->SetCompatibleBrands("3gs63gg63gp5isom");
+                m_eMetaFlavor = META_3GPP;
+                break;
+            case M3GPP_PROGDL:
+                pFtyp->SetMajorBrand("3gr6");
+                pFtyp->SetMinorVersion(0);
+                pFtyp->SetCompatibleBrands("3gr63gp63gg63gp5isom");
+                m_eMetaFlavor = META_3GPP;
+                break;
+            case M3GPP_STREAMDL:
+                pFtyp->SetMajorBrand("3gs6");
+                pFtyp->SetMinorVersion(0);
+                pFtyp->SetCompatibleBrands("3gs63gr63gg63gp5isom");
+                m_eMetaFlavor = META_3GPP;
+                break;
+            case M3GPP_REL5:
+                pFtyp->SetMajorBrand("3gp5");
+                pFtyp->SetMinorVersion(0);
+                pFtyp->SetCompatibleBrands("3gp53gp4isom");
+                m_eMetaFlavor = META_3GPP;
+                break;
+            }
         }
+        
     }
 
     if (m_strOutputType.CompareNoCase("isma2")==0 || 


_______________________________________________
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