[datatype-dev] RE: [Helix-client-dev] CR: Fixed the build depedency (bif) and streamtype mismatch for avi fileformat plugin

[datatype-dev] RE: [Helix-client-dev] CR: Fixed the build depedency (bif) and streamtype mismatch for avi fileformat plugin

Eric Hyche ehyche at real.com
Fri Sep 14 06:44:11 PDT 2007


Looks good.

=============================================
Eric Hyche (ehyche at real.com)
Technical Lead
RealNetworks, Inc.  

> -----Original Message-----
> From: Zhao, Halley [mailto:halley.zhao at intel.com] 
> Sent: Thursday, September 13, 2007 10:50 PM
> To: ehyche at real.com; datatype-dev
> Cc: helix-client-dev at helixcommunity.org
> Subject: RE: [Helix-client-dev] CR: Fixed the build depedency 
> (bif) and streamtype mismatch for avi fileformat plugin
> 
>   Re-send diff file with acceptation of Eric's correction.
>   
>   It needs "#if defined(HELIX_FEATURE_SERVER)" to pass 
> compile for JPEGPayloadFormat.
>   
>   Pass Test.
>   
>   
>   >-----Original Message-----
>   >From: Eric Hyche [mailto:ehyche at real.com]
>   >Sent: 2007年9月13日 21:29
>   >To: Zhao, Halley; 'datatype-dev'
>   >Cc: helix-client-dev at helixcommunity.org
>   >Subject: RE: [Helix-client-dev] CR: Fixed the build 
> depedency (bif) and
>   >streamtype mismatch for avi fileformat plugin
>   >
>   >
>   >My comments on these changes:
>   >
>   > if project.IsDefined("HELIX_FEATURE_SERVER"):
>   >-    MultiTargetMake("aviffdll")
>   >+    MultiTargetMake("avifflib","aviffdll")
>   >
>   >No need to change if HELIX_FEATURE_SERVER is defined -
>   >this does not affect the client, and we should not
>   >change the server builds.
>   >
>   >-#if 0 // JPEGPayloadFormat not supported (yet)
>   >+// #if 0 // JPEGPayloadFormat not supported (yet)
>   >
>   >No need to keep this - just remove it.
>   >
>   >                         if (!m_bLocalPlayback)
>   >                         {
>   >+                            // ASSERT(0);
>   >+#if 0 // JPEGPayloadFormat not supported (yet)
>   >
>   >                             m_pPayloadFormatter = new
>   >JPEGPayloadFormat();
>   >
>   >This should not be ifdef'd out. if (!m_bLocalPlayback)
>   >means that this will only get executed when running on
>   >the server, so it should never get executed on the client.
>   >If there is a compilation issue with JPEGPayloadFormat,
>   >then the whole if (!m_bLocalPlayback) clause should be
>   >put inside #if defined(HELIX_FEATURE_SERVER).
>   >
>   >-#endif // 0
>   >+//#endif // 0
>   >
>   >Again, no reason to keep this.
>   >
>   >
>   >Rest looks good.
>   >
>   >Eric
>   >
>   >=============================================
>   >Eric Hyche (ehyche at real.com)
>   >Technical Lead
>   >RealNetworks, Inc.
>   >
>   >> -----Original Message-----
>   >> From: helix-client-dev-bounces at helixcommunity.org
>   >> [mailto:helix-client-dev-bounces at helixcommunity.org] On
>   >> Behalf Of Zhao, Halley
>   >> Sent: Thursday, September 13, 2007 3:06 AM
>   >> To: datatype-dev
>   >> Cc: helix-client-dev at helixcommunity.org
>   >> Subject: [Helix-client-dev] CR: Fixed the build depedency
>   >> (bif) and streamtype mismatch for avi fileformat plugin
>   >>
>   >> Bug Number:
>   >>
>   >>     7204
>   >>
>   >> Bug URL:
>   >>
>   >>     https://bugs.helixcommunity.org/show_bug.cgi?id=7204
>   >>
>   >> Synopsis:
>   >>
>   >>     fix a bug for endian type mismatch of avi file format module.
>   >>
>   >> Overview:
>   >>
>   >>     1.  Add  module dependlist in hxclient_3_1_0_atlas.bif
>   >> for avi fileformat target.
>   >>
>   >>     2.  avifformat.so plugin can't parse a valid avi stream ;
>   >> some confliction for little endian or big endian.
>   >>
>   >>     For 4-characters stream type string, such as "AVI
>   >> ","MJPEG","H263", helix transform it to an integer value,.
>   >> however sometimes it check the endian type of platform,
>   >> sometimes it use MACRO HX_MAKE4CC regardless endian type of
>   >> platform. it will cause mismatch.
>   >>
>   >>         a.  in aviffpln.cpp, there is check of the media stream:
>   >>
>   >>             if (m_pGeneralReader->FileSubtype() !=
>   >> HX_MAKE4CC('A', 'V', 'I', ' '))
>   >>
>   >>             FileSubtype defined in common module, it uses
>   >> platform dependent endian type, but HX_Make4CC use fixed
>   >> little endian. I think it's better to change to:
>   >>
>   >>             if (m_pGeneralReader->FileSubtype() !=
>   >> m_pGeneralReader->GetLong("AVI "))
>   >>
>   >>             FileSubtype() and GetLong() is both defined in
>   >> common module, and have the same endian type.
>   >>
>   >>         b.  avistrm.cpp
>   >>
>   >>             m_header.ulType                 =
>   >> LE32_TO_HOST(*(UINT32*) &buf[0])
>   >>
>   >>             LE32_TO_HOST depend on platfrom's endian type,
>   >> AVI_VIDS_TYPE, AVI_AUDS_TYPE, AVI_MJPG_VIDEO are defined by
>   >> HX_MAKE4CC regardless of endian type. there will be mismatch
>   >> when compare them.
>   >>
>   >>             the absolute value of ulType is not important, we
>   >> can modify as following to make them be consistent with 
> each other.
>   >>
>   >>             m_header.ulType = HX_MAKE4CC( buf[0], buf[1],
>   >> buf[2], buf[3])
>   >>
>   >>         c). mjpeg is supported by helix community now
>   >>
>   >>             Change the #if defined to enable mjpeg support.
>   >>
>   >>
>   >>
>   >> Files Added:
>   >>
>   >>        No file added
>   >>
>   >> Files Modified:
>   >>
>   >>     aviffpln.cpp: (datatype/avi/fileformat/aviffpln.cpp)
>   >>
>   >>         when compare with FileSubtype which defined in common
>   >> module, use GetLong (which also defined in common module) to
>   >> transform media type string to integer.
>   >>
>   >>     avistrm:    (datatype/avi/fileformat/avistrm.cpp)
>   >>
>   >>         use HX_MAKE4CC() to get ulType from media type
>   >> string, since it used inside avistrm.cpp only, and
>   >> AVI_VIDS_TYPE, AVI_AUDS_TYPE, AVI_MJPG_VIDEO are defined by
>   >> HX_MAKE4CC().
>   >>
>   >>
>   >>
>   >>         another solution is to redefine AVI_VIDS_TYPE,
>   >> AVI_AUDS_TYPE, AVI_MJPG_VIDEO by LE32_TO_HOST.
>   >>
>   >>
>   >>
>   >> Image Size and Heap Use impact (Client -Only):
>   >>
>   >>     little
>   >>
>   >> Platforms and Profiles Affected:
>   >>
>   >>     platform:   linux-2.2-libc6-gcc32-i586
>   >>
>   >>     profile:    helix-client-all-defines
>   >>
>   >> Distribution Libraries Affected:
>   >>
>   >>     avifformat.so
>   >>
>   >> Distribution library impact and planned action:
>   >>
>   >>     None
>   >>
>   >> Platforms and Profiles Build Verified:
>   >>
>   >>     Set BIF branch  -> hxclient_3_1_0_atlas_restricted
>   >>
>   >>     Set Target(s)   -> datatype_avi_fileformat
>   >>
>   >>     Set Profile     -> helix-client-all-defines
>   >>
>   >>     System ID       -> linux-2.2-libc6-gcc32-i586
>   >>
>   >> Branch:
>   >>
>   >>     HEAD, hxclient_3_1_0_atlas
>   >>
>   >> Copyright assignment: <MUST be one of the following statements >
>   >>
>   >>    3.      My company (company name here) submits this code
>   >> under the terms
>   >>
>   >>            of a commercial contribution agreement with 
> RealNetworks,
>   >>
>   >>            and I am authorized to contribute this code under
>   >> said agreement.
>   >>
>   >>
>   >>
>   >> Files Attached:
>   >>
>   >>     datatype-avi.diff
>   >>
>   >>     bif-avi.diff
>   >>
>   >>
>   >>
>   >> ZHAO, Halley (Aihua)
>   >>
>   >> Email: halley.zhao at intel.com <mailto:aihua.zhao at intel.com>
>   >>
>   >> Tel: +86(21)61166476
>   >>
>   >> iNet: 8821-6476
>   >>
>   >> SSG/OTC/UMD
>   >>
>   >>
>   >>
>   >>
> 




More information about the Datatype-dev mailing list
 

Site Map   |   Terms of Use   |   Privacy Policy   |   Contact Us

Copyright © 1995-2007 RealNetworks, Inc. All rights reserved. RealNetworks and Helix are trademarks of RealNetworks.
All other trademarks or registered trademarks are the property of their respective holders.