182b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON/* 282b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON* Copyright (c) 2009-2011 Intel Corporation. All rights reserved. 382b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON* 482b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON* Licensed under the Apache License, Version 2.0 (the "License"); 582b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON* you may not use this file except in compliance with the License. 682b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON* You may obtain a copy of the License at 782b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON* 882b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON* http://www.apache.org/licenses/LICENSE-2.0 982b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON* 1082b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON* Unless required by applicable law or agreed to in writing, software 1182b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON* distributed under the License is distributed on an "AS IS" BASIS, 1282b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1382b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON* See the License for the specific language governing permissions and 1482b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON* limitations under the License. 1582b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON*/ 1682b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON 1782b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON 1882b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON#ifndef VIDEO_DECODER_INTERFACE_H_ 1982b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON#define VIDEO_DECODER_INTERFACE_H_ 2082b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON 2182b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON#include "VideoDecoderDefs.h" 2282b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON 2382b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTONclass IVideoDecoder { 2482b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTONpublic: 2582b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON virtual ~IVideoDecoder() {} 2682b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON virtual Decode_Status start(VideoConfigBuffer *buffer) = 0; 2782b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON virtual Decode_Status reset(VideoConfigBuffer *buffer) = 0; 2882b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON virtual void stop(void) = 0; 2982b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON virtual void flush() = 0; 3082b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON virtual Decode_Status decode(VideoDecodeBuffer *buffer) = 0; 3182b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON virtual void freeSurfaceBuffers(void) = 0; 3282b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON virtual const VideoRenderBuffer* getOutput(bool draining = false, VideoErrorBuffer *output_buf = NULL) = 0; 3382b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON virtual const VideoFormatInfo* getFormatInfo(void) = 0; 3482b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON virtual Decode_Status signalRenderDone(void * graphichandler) = 0; 3582b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON virtual bool checkBufferAvail() = 0; 3682b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON virtual Decode_Status getRawDataFromSurface(VideoRenderBuffer *renderBuffer = NULL, uint8_t *pRawData = NULL, uint32_t *pSize = NULL, bool internal = true) = 0; 3782b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON virtual void enableErrorReport(bool enabled) = 0; 3882b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON}; 3982b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON 4082b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON#endif /* VIDEO_DECODER_INTERFACE_H_ */ 41