[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