/* * Copyright (c) 2009-2011 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 __VIDEO_ENCODER_UTILS_H__ #define __VIDEO_ENCODER_UTILS_H__ #include #include #include "VideoEncoderDef.h" #include "IntelMetadataBuffer.h" #ifdef IMG_GFX #include #endif #define MAP_ACTION_COPY 0x00000001 //mem copy #define MAP_ACTION_ALIGN64 0x00000002 //align 64 #define MAP_ACTION_COLORCONVERT 0x00000004 //color convert #define MAP_ACTION_RESIZE 0x00000008 //resize class VASurfaceMap { public: VASurfaceMap(VADisplay display, int hwcap); ~VASurfaceMap(); Encode_Status doMapping(); VASurfaceID getVASurface() {return mVASurface;} intptr_t getValue() {return mValue;} ValueInfo* getValueInfo() {return &mVinfo;} void setVASurface(VASurfaceID surface) {mVASurface = surface;} void setValue(intptr_t value) {mValue = value;} void setValueInfo(ValueInfo& vinfo) {memcpy(&mVinfo, &vinfo, sizeof(ValueInfo));} void setTracked() {mTracked = true;} void setAction(int32_t action) {mAction = action;} private: Encode_Status doActionCopy(); Encode_Status doActionColConv(); Encode_Status MappingToVASurface(); Encode_Status MappingSurfaceID(intptr_t value); Encode_Status MappingGfxHandle(intptr_t value); Encode_Status MappingKbufHandle(intptr_t value); Encode_Status MappingMallocPTR(intptr_t value); VASurfaceID CreateSurfaceFromExternalBuf(intptr_t value, ValueInfo& vinfo); VADisplay mVADisplay; intptr_t mValue; VASurfaceID mVASurface; int32_t mVASurfaceWidth; int32_t mVASurfaceHeight; int32_t mVASurfaceStride; // MetadataBufferType mType; ValueInfo mVinfo; bool mTracked; int32_t mAction; int32_t mSupportedSurfaceMemType; #ifdef IMG_GFX //special for gfx color format converter buffer_handle_t mGfxHandle; #endif }; VASurfaceID CreateNewVASurface(VADisplay display, int32_t width, int32_t height); #endif