List Info

Thread: RE: CN: add bmp plugin for Helix




RE: CN: add bmp plugin for Helix
user name
2007-11-28 02:12:25
  Commit to HEAD & Atlas branch. And update the
hxclient_3_1_0_atlas.bif.
  
  Now it can be built from the configuration:
  [0] Set BIF branch (hxclient_3_1_0_atlas_restricted)
  [1] Set Target(s) (datatype_image_bmp)
  [2] Set Profile (helix-client-all-defines)
  [3] run: build -trelease
  
  Thanks.
  
  
  >-----Original Message-----
  >From: Eric Hyche [mailto:ehychereal.com]
  >Sent: 2007定11埖27晩 0:10
  >To: Zhao, Halley; datatype-devhelixcommunity.org
  >Cc: Shen, Cathy; Chen, Weian
  >Subject: RE: [datatype-dev] CR: add bmp plugin for
Helix
  >
  >
  >Further comments:
  >
  >1) RGBQUAD also needs a prefix to not conflict with
existing Windows API
  >struct.
  >
  >2) BITMAPINFO also needs a prefix to not conflict
with existing Windows API
  >struct.
  >
  >Rest looks good.
  >
  >Eric
  >
  >=============================================
  >Eric Hyche (ehychereal.com)
  >Technical Lead
  >RealNetworks, Inc.
  >
  >> -----Original Message-----
  >> From: Zhao, Halley [mailto:halley.zhaointel.com]
  >> Sent: Friday, November 23, 2007 4:17 AM
  >> To: ehychereal.com; datatype-devhelixcommunity.org
  >> Cc: Shen, Cathy; Zhao, Halley; Chen, Weian
  >> Subject: RE: [datatype-dev] CR: add bmp plugin
for Helix
  >>
  >>   Hi Eric:
  >>   Update the package following you
suggestion.
  >>   I also include the bif patch file.
  >>
  >>   Thanks.
  >>
  >>
  >>   >-----Original Message-----
  >>   >From: Eric Hyche [mailto:ehychereal.com]
  >>   >Sent: 2007定11埖19晩 23:52
  >>   >To: Zhao, Halley; datatype-devhelixcommunity.org
  >>   >Cc: Shen, Cathy
  >>   >Subject: RE: [datatype-dev] CR: add bmp
plugin for Helix
  >>   >
  >>   >
  >>   >Here are my comments:
  >>   >
  >>   >1) In bmphdr.h, the BITMAPFILEHEADER,
BITMAPINFOHEADER,
  >>   >   RGBQUAD, and BITMAPINFO structs
should be renamed
  >>   >   so that there is no conflict with
Windows API structs
  >>   >   with the same names. Perhaps you
just add a HXBMP_
  >>   >   to the beginning of each one.
  >>   >
  >>   >2) In bmpff.cpp:
  >>   >
  >>   >  
memcpy(&m_bmpFileHeader,pBuffer->GetBuffer(),14);
  >>   >
  >>
  >>
>memcpy(&m_bmpInfoHeader,pBuffer->GetBuffer()+14,s
izeof(BITMAP
  >> INFOHEADER
  >>   >));
  >>   >  
m_ulImageWidth=m_bmpInfoHeader.biWidth;
  >>   >  
m_ulImageHeight=m_bmpInfoHeader.biHeight;
  >>   >
  >>   >   This will only work correctly when
running on little-endian
  >>   >   machines. Instead of just
memcpy'ing, you will have to
  >>   >   using the little-endian unpacking
functions in
  >> common/util/pckunpck.cpp
  >>   >   to make this work on both little-
and big- endian machines.
  >>   >
  >>   >3) Here:
  >>   >
  >>   >		       
if(m_bmpInfoHeader.biBitCount!=1 &&
  >>   >m_bmpInfoHeader.biBitCount!=4
&&
  >>   >		         
m_bmpInfoHeader.biBitCount!=8 &&
  >>   >m_bmpInfoHeader.biBitCount!=24)
  >>   >		       {
  >>   >				// Set the state
  >>   >				m_ulState =
  >> kStateFileHeaderCloseDonePending;
  >>   >				// Close the file
  >>   >				m_pFileObject->Close();
  >>   >		       }
  >>   >
  >>   >   you call Close() which results in a
  >> FileHeaderReady(HXR_FAIL,NULL),
  >>   >   so this is an error condition.
However, you still have
  >> code below this
  >>   >   that will get executed which will
result in ANOTHER
  >> FileHeaderReady()
  >>   >call.
  >>   >   This should be corrected. If the
error condition above
  >> is encountered,
  >>   >then
  >>   >   the file should be closed as above
but no other code
  >> should be executed
  >>   >below it.
  >>   >
  >>   >4) Here:
  >>   >
  >>   >							// Send
  >> the packet
  >>   >
  >> m_pFormatResponse->PacketReady(retVal,
  >>   >pPacket);
  >>   >
  >> m_GetPaletteDone=1;
  >>   >
  >>   >   you set m_GetPaletteDone to 1 after
you call PacketReady, but
  >>   >   PacketReady() could result in an
immediate call to GetPacket()
  >>   >   before PacketReady() returns. So you
should set
  >> m_GetPaletteDone to
  >>   >   1 BEFORE you call PacketReady().
  >>   >
  >>   >5) In bmprend.cpp,
  >>   >
  >>   >		m_pBmpPalette=(UINT32
*)malloc(m_ulPaletteSize);
  >>   >
  >>   >   you should use new/delete rather
than malloc/free in Helix code.
  >>   >
  >>   >6) In bmprend.cpp,
  >>   >
  >>   >
  >>
memcpy(&m_bmpFileHeader,pOpaque->GetBuffer(),14);
  >>   >
  >>
  >	memcpy(&m_bmpInfoHeader,pOpaque->GetBuffer()
+14,40);
  >>   >              
	m_ulImageWidth=m_bmpInfoHeader.biWidth;
  >>   >	       
m_ulImageHeight=m_bmpInfoHeader.biHeight;
  >>   >
  >>   >   Same comment as before. This will
not work on
  >> big-endian processors.
  >>   >
  >>   >7) In both bmpff.cpp and bmprend.cpp, I
believe the
  >>   >   descriptions need to be changed,
since this is no longer
  >>   >   a "Wireless BMP File
Format" or renderer but just a
  >> "BMP File Format"
  >>   >   or renderer.
  >>   >
  >>   >The rest looks good.
  >>   >
  >>   >Eric
  >>   >
  >>   >
  >>
  >=============================================
  >>   >Eric Hyche (ehychereal.com)
  >>   >Technical Lead
  >>   >RealNetworks, Inc.
  >>   >
  >>   >> -----Original Message-----
  >>   >> From: datatype-dev-bounceshelixcommunity.org
  >>   >> [mailto:datatype-dev-bounceshelixcommunity.org] On Behalf Of
  >>   >> Zhao, Halley
  >>   >> Sent: Monday, November 19, 2007
4:42 AM
  >>   >> To: datatype-devhelixcommunity.org
  >>   >> Cc: Shen, Cathy
  >>   >> Subject: [datatype-dev] CR: add
bmp plugin for Helix
  >>   >>
  >>   >> Synopsis:
  >>   >>
  >>   >>     Add bmp datatype support for
image
  >>   >>
  >>   >> Overview:
  >>   >>
  >>   >>     Refer to wbmp plugin, we add
bmp plugin for helix
  >>   >>
  >>   >> Files Added:
  >>   >>
  >>   >>     Some files are in the
attachment, they can be put at
  >>   >> /cvsroot/datatype/image/bmp
  >>   >>
  >>   >>
  >>   >>
  >>   >> Files Modified:
  >>   >>
  >>   >> <No>
  >>   >>
  >>   >>
  >>   >>
  >>   >> 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:
  >>   >>
  >>   >>     bmpfformat.so, bmprend.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_image_bmp
  >>   >>
  >>   >>     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 >
  >>   >>
  >>   >>
  >>   >>
  >>   >>    2.      Intel has signed and
delivered a Joint
  >> Copyright Assignment
  >>   >>
  >>   >>            to RealNetworks, and
received acknowledgment that the
  >>   >>
  >>   >>            agreement was
received.
  >>   >>
  >>   >> Files Attached:
  >>   >>
  >>   >>     datatype-image-bmp.tgz
  >>   >>
  >>   >>
  >>   >>
  >>   >> ZHAO, Halley (Aihua)
  >>   >>
  >>   >> Email: halley.zhaointel.com
<mailto:aihua.zhaointel.com>
  >>   >>
  >>   >> Tel: +86(21)61166476
  >>   >>
  >>   >> iNet: 8821-6476
  >>   >>
  >>   >> SSG/OTC/UMD
  >>   >>
  >>   >>
  >>   >>
  >>   >>
  >>

_______________________________________________
Datatype-dev mailing list
Datatype-devhelixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/da
tatype-dev

[1]

about | contact  Other archives ( Real Estate discussion Medical topics )