[prev in list] [next in list] [prev in thread] [next in thread]
List: helix-video-cvs
Subject: [Video-cvs] sitelib/platform/unix miniandroidsite.cpp, 1.1.2.1,
From: xzhao () helixcommunity ! org
Date: 2010-07-09 3:18:24
Message-ID: 201007090318.o693IWui025352 () mailer ! progressive-comp ! com
[Download RAW message or body]
Update of /cvsroot/video/sitelib/platform/unix
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv21999/sitelib/platform/unix
Modified Files:
Tag: hxclient_3_1_0_atlas
miniandroidsite.cpp miniandroidsurf_omap3.cpp
Log Message:
CR: Render Optimization for TI Omap3 platform
Index: miniandroidsite.cpp
===================================================================
RCS file: /cvsroot/video/sitelib/platform/unix/miniandroidsite.cpp,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -d -r1.1.2.1 -r1.1.2.2
--- miniandroidsite.cpp 6 Feb 2009 20:51:44 -0000 1.1.2.1
+++ miniandroidsite.cpp 9 Jul 2010 03:18:21 -0000 1.1.2.2
@@ -107,3 +107,49 @@
return TRUE;
}
+#ifdef HELIX_FEATURE_USE_SITEBUFFERS
+INT32 CHXAndroidSite::GetNumberOfCustomBuffers(UINT32 ulSize)
+{
+ LOGD("Enter CHXAndroidSite::GetNumberOfCustomBuffers");
+ int ret = 0;
+ if (m_pVideoSurface)
+ {
+ ret = m_pVideoSurface->GetNumOfBuffer(ulSize);
+ }
+ return ret;
+}
+
+HX_RESULT CHXAndroidSite::CreateCustomBuffers(INT32 nNumBuffers, INT32 nWidth, INT32 \
nHeight, INT32 nColorID) +{
+ LOGD("Enter CHXAndroidSite::CreateCustomBuffers");
+ HX_RESULT res = HXR_OK;
+ if (m_pVideoSurface)
+ {
+ m_pVideoSurface->m_nSrcCID = nColorID;
+ res = m_pVideoSurface->AllocateDestBuffers((int)nWidth, (int)nHeight, \
(int)nNumBuffers); + }
+ return res;
+}
+
+HX_RESULT CHXAndroidSite::GetCustomBuffers(BYTE** ppBuffers)
+{
+ LOGD("Enter CHXAndroidSite::GetCustomBuffers");
+ if (m_pVideoSurface && ppBuffers)
+ {
+ m_pVideoSurface->GetBuffer(ppBuffers);
+ }
+ return HXR_OK;
+}
+
+HX_RESULT CHXAndroidSite::ReleaseCustomBuffers()
+{
+ LOGD("Enter CHXAndroidSite::ReleaseCustomBuffers");
+ HX_RESULT res = HXR_OK;
+ if (m_pVideoSurface)
+ {
+ res = m_pVideoSurface->DestroyDestBuffers(0);
+ }
+ return res;
+}
+#endif
+
Index: miniandroidsurf_omap3.cpp
===================================================================
RCS file: /cvsroot/video/sitelib/platform/unix/miniandroidsurf_omap3.cpp,v
retrieving revision 1.1.4.2
retrieving revision 1.1.4.3
diff -u -d -r1.1.4.2 -r1.1.4.3
--- miniandroidsurf_omap3.cpp 2 Mar 2010 20:24:48 -0000 1.1.4.2
+++ miniandroidsurf_omap3.cpp 9 Jul 2010 03:18:21 -0000 1.1.4.3
@@ -221,12 +221,14 @@
CMiniAndroidSurface::_CreateDestBuffer(int cidIn, int nWidth, int nHeight, int& \
nCount) {
HX_RESULT retVal = HXR_OK;
+#ifdef HELIX_FEATURE_USE_SITEBUFFERS
+ GetDstCID(cidIn);
+#endif
// fix site size
HXxSize size;
size.cx = nWidth; size.cy = nHeight;
m_pSite->SetSize(size);
- m_pSite->GetSize(size);
// get the bitmap information
HXBitmapInfo bmiTemp;
@@ -282,7 +284,8 @@
mapping_data_t* pUserdata = NULL;
m_nMAXBuffers = m_spOverlay->getBufferCount();
- m_nMAXBuffers = m_nMAXBuffers > MAX_OVERLAY_BUFFERS ? \
MAX_OVERLAY_BUFFERS : m_nMAXBuffers; + m_nMAXBuffers = m_nMAXBuffers > \
nCount ? nCount : m_nMAXBuffers; + LOGD("m_nMAXBuffers %d", \
m_nMAXBuffers); for (int i=0; i<m_nMAXBuffers; i++)
{
pUserdata = (mapping_data_t \
*)m_spOverlay->getBufferAddress((void*)i); @@ -398,7 +401,17 @@
memcpy(pDstBuffer, pSrcBuffer, m_ulFrameSize);
break;
case TRANS_OMX_BUFFER :
+#ifdef HELIX_FEATURE_USE_SITEBUFFERS
+ for (int i = 0; i < m_nMAXBuffers; i++)
+ {
+ if (m_buffer_address[i] == pSrcBuffer)
+ {
+ m_nBufferIndex = i;
+ }
+ }
+#else
retVal = CMiniBaseSurface::_TransferToDestBuffer(pSrcBuffer, pBitmapInfo, \
prSrcRect, prDstRect, pDstBuffer, nDstPitch); +#endif
break;
case TRANS_YUV420P_TO_YCbCr422I :
I420_to_YCbCr422I(pSrcBuffer, pDstBuffer, pBitmapInfo->biWidth, \
pBitmapInfo->biHeight, m_nStride); @@ -419,7 +432,7 @@
HX_RESULT
CMiniAndroidSurface::_RenderDestBuffer(HXxRect* prSrcRect, HXxRect* prDestRect, int \
nIndex) {
- HX_RESULT retVal = HXR_FAIL;
+ HX_RESULT retVal = HXR_OK;
if (m_bUseTIOverlay && m_spOverlay != NULL)
{
@@ -432,6 +445,7 @@
else
{
LOGE("overlay queue buffer(%d) failed, m_nInQueue=%d", m_nBufferIndex, \
m_nInQueue); + retVal = HXR_FAIL;
}
// dequeue
@@ -445,6 +459,7 @@
else
{
LOGE("overlay dequeue buffer failed");
+ retVal = HXR_FAIL;
}
}
@@ -458,7 +473,6 @@
// post surface buffer
m_pISurface->postBuffer(m_nBufferIndex * m_ulFrameSize);
m_nBufferIndex = (m_nBufferIndex + 1) % m_nMAXBuffers;
- retVal = HXR_OK;
}
return retVal;
@@ -553,6 +567,11 @@
m_eTransferMode = TRANS_YUV420P_TO_YCbCr422I;
#endif
break;
+ case CID_UYVY:
+ m_nOverlayFmt = OVERLAY_FORMAT_YCbYCr_422_I;
+ m_cidOut = CID_UYVY;
+ m_eTransferMode = TRANS_OMX_BUFFER;
+ break;
case CID_I420:
m_nOverlayFmt = OVERLAY_FORMAT_YCbYCr_422_I;
m_cidOut = CID_UYVY;
@@ -588,3 +607,11 @@
LOGD("ISurface = %p", m_pISurface);
return HXR_OK;
}
+
+void CMiniAndroidSurface::GetBuffer(THIS_ void** pBuff)
+{
+ memcpy(pBuff, m_buffer_address, sizeof(m_buffer_address));
+ m_nInQueue = 0;
+ m_nBufferIndex = 0;
+}
+
_______________________________________________
Video-cvs mailing list
Video-cvs@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/video-cvs
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic