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

List:       helix-datatype-cvs
Subject:    [Datatype-cvs] tools/metadataeng/engine metadataengbase.cpp,
From:       yuryrp () helixcommunity ! org
Date:       2010-06-28 15:30:26
Message-ID: 201006281531.o5SFVDGB011390 () mailer ! progressive-comp ! com
[Download RAW message or body]

Update of /cvsroot/datatype/tools/metadataeng/engine
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv23620

Modified Files:
      Tag: hxclient_4_2_0_brizo
	metadataengbase.cpp 
Log Message:
Modified by:  yury.ramanovich@nokia.com

Reviewed by: junhong.liu@nokia.com, qluo@real.com

Date: 06/28/2010

Project: symbian_client_apps 

ErrorId: ESLM-869FPK, ou1cimx1#423894

Synopsis: No thumbnails created for H263.3gp and H263.3gpp videos

Overview: for this clip, mp4 fileformat gets Width=320 Height=240 from tkhd atom and \
FrameWidth=176 and FrameHeight=144 - from stsd atom. \
CHXMetaDataEngBase::ExtendMetaData() gives preference to Width and Height and reports \
320x240 as HXMetaDataKeys::EHXFrameSize to Thumbnail server. Therefore, the code in \
CtneSession::PacketReady() rejects this clip as unsupported because the actual frame \
datasize is much less than expected. This only happens on 420Brizo, because on \
210Cays CVideoSourceHandler::MakeStreamHeader() obtains Width=176 and Height=144 from \
HXBitmapInfoHeader and resets Width and Height metadata in the streamheader before \
CHXMetaDataEngBase::ExtendMetaData() accesses it.

Solution:  usually Width and Height values from the header are the same as FrameWidth \
and FrameHeight of the actual video frame in the clip, but in this case they are \
different. So the fix is to prefer FrameWidth and FrameHeight over Width and Height \
when setting HXMetaDataKeys::EHXFrameSize metadata entry for thumbnail generation. 

Files Added: 
None.

Files Modified:
/datatype/tools/metadataeng/engine/metadataengbase.cpp


Image Size and Heap Use impact: minor

Module Release testing (STIF) :  ongoing

Test case(s) Added  :  No.

Memory leak check performed : Yes. No new leaks introduced 

Platforms and Profiles Build Verified: 
helix-client-symbian-4

Platforms and Profiles Functionality verified: armv5, winscw 

Branch: 420Brizo, HEAD




Index: metadataengbase.cpp
===================================================================
RCS file: /cvsroot/datatype/tools/metadataeng/engine/metadataengbase.cpp,v
retrieving revision 1.6.14.2
retrieving revision 1.6.14.3
diff -u -d -r1.6.14.2 -r1.6.14.3
--- metadataengbase.cpp	17 Mar 2010 21:17:55 -0000	1.6.14.2
+++ metadataengbase.cpp	28 Jun 2010 15:30:23 -0000	1.6.14.3
@@ -488,24 +488,19 @@
 
                 UINT32 width=0;
                 UINT32 height=0;
-                if ( GetPropertyUINT32(pHeader, "Width", width) == HXR_OK &&
-                GetPropertyUINT32(pHeader, "Height", height)  == HXR_OK)
-                {
-                CHXString str;
-                str.Format("%dx%d",  (int)width, (int)height);
-                AddMetaDataEntryString(HXMetaDataKeys::EHXFrameSize, str);
-                }
-
-                if (width == 0 || height == 0)
-                {
-                if ( GetPropertyUINT32(pHeader, "FrameWidth", width) == HXR_OK &&
-                GetPropertyUINT32(pHeader, "FrameHeight", height)  == HXR_OK)
+                
+                // FrameWidth and FrameHeight get priority
+                if (GetPropertyUINT32(pHeader, "FrameWidth", width) == HXR_OK &&
+                    GetPropertyUINT32(pHeader, "FrameHeight", height)  == HXR_OK);
+                else if (GetPropertyUINT32(pHeader, "Width", width) == HXR_OK &&
+                         GetPropertyUINT32(pHeader, "Height", height)  == HXR_OK);
+                
+                if (width > 0 && height > 0)
                 {
-                CHXString str;
-                str.Format("%dx%d",  (int)width, (int)height);
-                AddMetaDataEntryString(HXMetaDataKeys::EHXFrameSize, str);
-                }
-                }
+                    CHXString str;
+                    str.Format("%dx%d",  (int)width, (int)height);
+                    AddMetaDataEntryString(HXMetaDataKeys::EHXFrameSize, str);
+                } 
             }
 
             uClipBitRate += uBitRate;


_______________________________________________
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