- 1、本文档共29页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
台湾清华RTlab实验室Bellagio OpenMax的Code_Trace
RTLAB Bellagio Data Processing Flow 清大資工 RTLAB 許宏榮 Outline Bellagio Code Trace (Video) Buffer Allocate and Management Data Flow Between Ports (Tunneled) Dynamic Port Reconfiguration Bellagio Code TraceBuffer 架構 A = Video Decoder B= Color Converter C= Sink Buffer Supplier: A[1] , B[1] ports Buffer Non-Supplier: A[0] , B[0] , C[0] ports Setup Tunnel ComponentTunnelRequest( * openmaxStandPort, hTunneledComp, nTunneledPort , *pTunnelSetup) If (port is Input Port eg.B[0] ) 認定A[1]為自己的Supplier 認定自己為Non-supplier OMX_GetParameter(A[1],…) OMX_SetParameter(A[1],…) Else (A[1]) 認定B[0]是Tunnel的另一端 認定自己是Supplier Tunneled Buffer Allocate(Load_State ? Idle_State) State transition to Idle in the case of Tunneled Components Message_Handler::DoStateSet( ) Load to Idle OMX_ERRORTYPE base_port_UseBuffer( omx_base_PortType *openmaxStandPort, OMX_BUFFERHEADERTYPE** ppBufferHdr, OMX_U32 nPortIndex, OMX_PTR , OMX_U32 nSizeBytes, OMX_U8 * pBuffer) openmaxStandPort: B[0] ppBufferHdr: A[1]的pInternalBufferStorage nPortIndex: nTunneledPort = 0 pAppPrivate: NULL nSizeBytes: Size of A[1] buffer pBuffer: Pointer to actual block of memory that is acting as the buffer struct OMX_BUFFERHEADERTYPE OMX_BUFFERHEADERTYPE** ppBufferHdr Buffer Default Size A[0] = 4096 bytes A[1] = 460800 bytes //640*480*1.5 B[0] = 460800 bytes B[1] = 460800 * 3 bytes C[0] = 由video.nFrameWidth (初始為0) video.nFrameHeight(初始為0)決定 (Buffer size後來可能會因為Port Reconfigure而改變) Tunneled Data Flow IL Client Level IL Client call OMX_AllocateBuffer() 配置 4096 bytes to A[0]並填入相關值給 pBuffer1 header. IL Client call OMX_SendCommand() to video decoder component to go to executing state. tsem_down(appPriv-decoderEventSem); Wait for callback. (等待state change 完成). Message_Handler::DoStateSet( ) Idle ? Executing state Check all of the Tunneled port. If port is Tunneled and Supplier, then signal Buffer management thread. (之後FillThisBuffer()來做signal的動作) IL Client Level 利用fread
您可能关注的文档
最近下载
- 【社会层面】社会主义核心价值观.ppt VIP
- 回话有招高情商回话术书本.doc VIP
- 【社会层面】社会主义核心价值观精品课件.ppt VIP
- 沪教8AUnit6Ancientstories more practice-The story of 100,000 arrows 公开课优质课教案教学设计.doc
- 小学《科学》新教材培训研讨会:技术与工程领域总体介绍.pptx
- 2024年中考英语复习 并列复合句 讲义学案(解析版).pdf VIP
- 血常规结果解释ppt课件.pptx VIP
- 第16课 课件 2022-2023学年高中新经典日本语基础教程第二册.pptx VIP
- 软件工程专业生涯发展展示.pptx
- 成人脑室外引流护理——中华护理学会团体标准解读.pptx
文档评论(0)