diff options
author | Vijay Venkatraman <vijaykv@google.com> | 2017-02-04 03:22:41 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-02-04 03:22:41 +0000 |
commit | 61050a01c800b1948a0b02f6a487b8fb1c957e40 (patch) | |
tree | 69e06f9e5dc402477e35d5f9b686b86ebb53f55f | |
parent | 521f60ed8b868f8b98ff0c691559956b142e5178 (diff) | |
parent | 6b9b06d89fd0e01037d3138c71886f2c315ae9ee (diff) | |
download | utils-61050a01c800b1948a0b02f6a487b8fb1c957e40.tar.gz |
Moved header files from include/media_resource_manager to include/ am: 965cc1b6ef am: 08bb89bcc7 am: d8f9c94393
am: 6b9b06d89f
Change-Id: Ib6739e13cf65a87eccc242bf58eaac6439652ac3
l--------- | media_resource_manager/arbitrator/MediaResourceArbitrator.h | 2 | ||||
-rw-r--r-- | media_resource_manager/include/MediaResourceArbitrator.h (renamed from media_resource_manager/include/media_resource_manager/MediaResourceArbitrator.h) | 0 | ||||
-rw-r--r-- | media_resource_manager/include/OMX_adaptor.h (renamed from media_resource_manager/include/media_resource_manager/OMX_adaptor.h) | 0 | ||||
-rw-r--r--[l---------] | media_resource_manager/omx_adaptor/OMX_adaptor.h | 118 |
4 files changed, 118 insertions, 2 deletions
diff --git a/media_resource_manager/arbitrator/MediaResourceArbitrator.h b/media_resource_manager/arbitrator/MediaResourceArbitrator.h index ac6380d..3e68a87 120000 --- a/media_resource_manager/arbitrator/MediaResourceArbitrator.h +++ b/media_resource_manager/arbitrator/MediaResourceArbitrator.h @@ -1 +1 @@ -../include/media_resource_manager/MediaResourceArbitrator.h
\ No newline at end of file +../include/MediaResourceArbitrator.h
\ No newline at end of file diff --git a/media_resource_manager/include/media_resource_manager/MediaResourceArbitrator.h b/media_resource_manager/include/MediaResourceArbitrator.h index abb7b1a..abb7b1a 100644 --- a/media_resource_manager/include/media_resource_manager/MediaResourceArbitrator.h +++ b/media_resource_manager/include/MediaResourceArbitrator.h diff --git a/media_resource_manager/include/media_resource_manager/OMX_adaptor.h b/media_resource_manager/include/OMX_adaptor.h index 145233d..145233d 100644 --- a/media_resource_manager/include/media_resource_manager/OMX_adaptor.h +++ b/media_resource_manager/include/OMX_adaptor.h diff --git a/media_resource_manager/omx_adaptor/OMX_adaptor.h b/media_resource_manager/omx_adaptor/OMX_adaptor.h index 989467d..145233d 120000..100644 --- a/media_resource_manager/omx_adaptor/OMX_adaptor.h +++ b/media_resource_manager/omx_adaptor/OMX_adaptor.h @@ -1 +1,117 @@ -../include/media_resource_manager/OMX_adaptor.h
\ No newline at end of file +/* +* Copyright (c) 2015 Intel Corporation. All rights reserved. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + + +#ifndef OMX_WRAPPER_H_ +#define OMX_WRAPPER_H_ + +#include <unistd.h> +#include <OMX_Core.h> +#include <OMX_Component.h> +#include <utils/threads.h> +#include <utils/KeyedVector.h> +#include <utils/String8.h> +#include "MediaResourceArbitrator.h" + +using namespace android; + +typedef KeyedVector <OMX_HANDLETYPE, String8> ComponentNameMap; +typedef KeyedVector <OMX_HANDLETYPE, uint> ComponentFramerateMap; + +typedef struct _AdaptorCodecInfo { + CodecType codecType; + bool isEncoder; + bool isSecured; + ResolutionType resolution; + uint frameRate; +} AdaptorCodecInfo; + +typedef KeyedVector <OMX_HANDLETYPE, AdaptorCodecInfo> ComponentInfoMap; + +class MRM_OMX_Adaptor { +public: + // Returns the singleton instance + static MRM_OMX_Adaptor* getInstance(); + + ~MRM_OMX_Adaptor() { + if (sInstance) { + delete sInstance; + sInstance = NULL; + } + }; + + // create and configure the MRM arbitrator + OMX_ERRORTYPE MRM_OMX_Init(void); + + + // check with MRM arbitrator if codec resource + // is under full load status. + // this should be called before OMX_GetHandle + // return OMX_ErrorInsufficientResources if true. + OMX_ERRORTYPE MRM_OMX_CheckIfFullLoad(OMX_STRING cComponentName); + + + // Set component name and component handle + // keeps this mapping but not adds resource yet. + // this intends to be called after OMX_GetHandle + void MRM_OMX_SetComponent( + OMX_HANDLETYPE pComponentHandle, + OMX_STRING cComponentName); + + + // handle the index 'OMX_IndexParamPortDefinition' + // when codec is configured, with resolution and + // frame rate. this actually adds resource + // to the MRM arbitrator. + // return OMX_ErrorInsufficientResources if failed. + OMX_ERRORTYPE MRM_OMX_SetParameter( + OMX_HANDLETYPE hComponent, + OMX_INDEXTYPE nIndex, + OMX_PTR pComponentParameterStructure); + + + // check grahpic buffer resource + // return OMX_ErrorInsufficientResources if under full load status. + OMX_ERRORTYPE MRM_OMX_UseBuffer( + OMX_HANDLETYPE hComponent, + OMX_BUFFERHEADERTYPE **ppBufferHdr, + OMX_U32 nPortIndex, + OMX_PTR pAppPrivate, + OMX_U32 nSizeBytes, + OMX_U8 *pBuffer); + + + // Remove the component + OMX_ERRORTYPE MRM_OMX_RemoveComponent(OMX_HANDLETYPE pComponentHandle); + +private: + MRM_OMX_Adaptor() { mArbitrator = new MediaResourceArbitrator(); } + MRM_OMX_Adaptor& operator=(const MRM_OMX_Adaptor&); // Don't call me + MRM_OMX_Adaptor(const MRM_OMX_Adaptor&); // Don't call me + + + void ParseCodecInfoFromComponentName(const char* componentName, + AdaptorCodecInfo* codecInfo); + + MediaResourceArbitrator* mArbitrator; + static Mutex sLock; + static MRM_OMX_Adaptor* sInstance; + + ComponentNameMap mComponentNameMap; + ComponentFramerateMap mComponentFramerateMap; + ComponentInfoMap mComponentInfoMap; +}; +#endif /* OMX_WRAPPER_H_ */ |