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