diff --git a/design/codec_hdi/adapt_hdi_2.0.md b/design/codec_hdi/adapt_hdi_2.0.md index ae3b34057eafe51aa9bfff2890ed78c1ba5833c8..e09e3da49af10b6569fa21cd46051921fe372d76 100644 --- a/design/codec_hdi/adapt_hdi_2.0.md +++ b/design/codec_hdi/adapt_hdi_2.0.md @@ -25,16 +25,42 @@ RegisterOneCodecPackage -- 注册一系列插件 ``` plantuml -class Hdi2Adapter +class HdiAdapter { - // call GetComponentManager - // call manager->GetComponentCapbilityList() - // call manager->create component - // manager create CodecComponentType 对象, 直接操作它 - // call manager->destroy component - // adapte to component interface : codec plugin intf ---> hdi 2.0 interface + -std::shared_ptr inBufMgr_ + -std::shared_ptr outBufMgr_ + -std::shared_ptr stateMgr_ + -std::shared_ptr vdecParamsMgr_ } +class HdiVdecParamsMgr { + Init() + SetParameter() + GetParameter() +} + +class HdiVdecBufferMgr { + +} + +class HdiVdecInBufferMgr { + +} + +class HdiVdecOutBufferMgr { + +} + +class HdiVdecStateMgr { + +} + +HdiVdecBufferMgr <|-- HdiVdecInBufferMgr +HdiVdecBufferMgr <|-- HdiVdecOutBufferMgr +HdiAdapter o-- HdiVdecBufferMgr +HdiAdapter o-- HdiVdecParamsMgr +HdiAdapter o-- HdiVdecStateMgr + ``` ## Demo @@ -116,9 +142,9 @@ HdiAdapter -> ComponentCallback : CreateComponentCallback() HdiAdapter -> Component : GetComponentVersion() CodecFilter -> HdiAdapter : filter.Configure() : plugin -> SetParameter() HdiAdapter -> HdiAdapter : save tag value used to config omx port -CodecFilter -> HdiAdapter : filter.Configure() : plugin -> GetParameter() HdiAdapter -> Component : ConfigOmx() HdiAdapter -> Component : GetBufferInfoOnPort( get buffer size and count from omx ) +CodecFilter -> HdiAdapter : filter.Configure() : plugin -> GetParameter() HdiAdapter -> CodecFilter : send omx buffer count and size to filter CodecFilter -> HdiAdapter : filter.Configure() : plugin -> QueueOutputBuffer() // queue all output buffer down HdiAdapter -> HdiAdapter : outBufferQ_.Push(outputBuffers)