1ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen/* 2ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen* Copyright (c) 2012 Intel Corporation. All rights reserved. 3ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen* 4ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen* Licensed under the Apache License, Version 2.0 (the "License"); 5ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen* you may not use this file except in compliance with the License. 6ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen* You may obtain a copy of the License at 7ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen* 8ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen* http://www.apache.org/licenses/LICENSE-2.0 9ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen* 10ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen* Unless required by applicable law or agreed to in writing, software 11ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen* distributed under the License is distributed on an "AS IS" BASIS, 12ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen* See the License for the specific language governing permissions and 14ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen* limitations under the License. 15ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen*/ 16ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen 17ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen 18ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen 19ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen#ifndef OMX_VIDEO_DECODER_VP8_H_ 20ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen#define OMX_VIDEO_DECODER_VP8_H_ 21ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen 22ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen 23ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen#include "OMXVideoDecoderBase.h" 240541f11be2f78b558476772f1f877e140f9d844bywan#include <OMX_VideoExt.h> 25ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen 26ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chenclass OMXVideoDecoderVP8 : public OMXVideoDecoderBase { 27ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chenpublic: 28ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen OMXVideoDecoderVP8(); 29ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen virtual ~OMXVideoDecoderVP8(); 30ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen 31ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chenprotected: 32ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen virtual OMX_ERRORTYPE InitInputPortFormatSpecific(OMX_PARAM_PORTDEFINITIONTYPE *paramPortDefinitionInput); 33ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen virtual OMX_ERRORTYPE ProcessorInit(void); 34ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen virtual OMX_ERRORTYPE ProcessorDeinit(void); 35ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen virtual OMX_ERRORTYPE ProcessorProcess( 36ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen OMX_BUFFERHEADERTYPE ***pBuffers, 37ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen buffer_retain_t *retains, 38ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen OMX_U32 numberBuffers); 39ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen 40ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen virtual OMX_ERRORTYPE PrepareConfigBuffer(VideoConfigBuffer *p); 41ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen virtual OMX_ERRORTYPE PrepareDecodeBuffer(OMX_BUFFERHEADERTYPE *buffer, buffer_retain_t *retain, VideoDecodeBuffer *p); 42ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen 43ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen virtual OMX_ERRORTYPE BuildHandlerList(void); 446c36d9722df768cfe63e015193459d870f3cdaa9Tianmi Chen virtual OMX_ERRORTYPE SetMaxOutputBufferCount(OMX_PARAM_PORTDEFINITIONTYPE *p); 450541f11be2f78b558476772f1f877e140f9d844bywan virtual OMX_COLOR_FORMATTYPE GetOutputColorFormat(int width); 46ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen DECLARE_HANDLER(OMXVideoDecoderVP8, ParamVideoVp8); 47ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen 48ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chenprivate: 49ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen enum { 50ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen // OMX_PARAM_PORTDEFINITIONTYPE 51ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen INPORT_MIN_BUFFER_COUNT = 1, 52ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen INPORT_ACTUAL_BUFFER_COUNT = 5, 53ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen INPORT_BUFFER_SIZE = 1382400, 5403118b9de04779e0aca0da6fe6fe5b0b0704a11cTianmi Chen 5503118b9de04779e0aca0da6fe6fe5b0b0704a11cTianmi Chen OUTPORT_NATIVE_BUFFER_COUNT = 8, 56ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen }; 57ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen 58ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen OMX_VIDEO_PARAM_VP8TYPE mParamVp8; 59ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen}; 60ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen 61ab82a0fd294f033d336bc53cdffe8d1708d947ccTianmi Chen#endif /* OMX_VIDEO_DECODER_VP8_H_ */ 62