1744f5739019d1fd917f981e740b353c3d73fd1a8David Smith/* 2744f5739019d1fd917f981e740b353c3d73fd1a8David Smith * Copyright (C) 2014 The Android Open Source Project 3744f5739019d1fd917f981e740b353c3d73fd1a8David Smith * 4744f5739019d1fd917f981e740b353c3d73fd1a8David Smith * Licensed under the Apache License, Version 2.0 (the "License"); 5744f5739019d1fd917f981e740b353c3d73fd1a8David Smith * you may not use this file except in compliance with the License. 6744f5739019d1fd917f981e740b353c3d73fd1a8David Smith * You may obtain a copy of the License at 7744f5739019d1fd917f981e740b353c3d73fd1a8David Smith * 8744f5739019d1fd917f981e740b353c3d73fd1a8David Smith * http://www.apache.org/licenses/LICENSE-2.0 9744f5739019d1fd917f981e740b353c3d73fd1a8David Smith * 10744f5739019d1fd917f981e740b353c3d73fd1a8David Smith * Unless required by applicable law or agreed to in writing, software 11744f5739019d1fd917f981e740b353c3d73fd1a8David Smith * distributed under the License is distributed on an "AS IS" BASIS, 12744f5739019d1fd917f981e740b353c3d73fd1a8David Smith * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13744f5739019d1fd917f981e740b353c3d73fd1a8David Smith * See the License for the specific language governing permissions and 14744f5739019d1fd917f981e740b353c3d73fd1a8David Smith * limitations under the License. 15744f5739019d1fd917f981e740b353c3d73fd1a8David Smith */ 16744f5739019d1fd917f981e740b353c3d73fd1a8David Smith 17744f5739019d1fd917f981e740b353c3d73fd1a8David Smith#ifndef SIMPLE_FILTER_H_ 18744f5739019d1fd917f981e740b353c3d73fd1a8David Smith#define SIMPLE_FILTER_H_ 19744f5739019d1fd917f981e740b353c3d73fd1a8David Smith 20744f5739019d1fd917f981e740b353c3d73fd1a8David Smith#include <stdint.h> 21744f5739019d1fd917f981e740b353c3d73fd1a8David Smith#include <utils/Errors.h> 22744f5739019d1fd917f981e740b353c3d73fd1a8David Smith#include <utils/RefBase.h> 23744f5739019d1fd917f981e740b353c3d73fd1a8David Smith 24744f5739019d1fd917f981e740b353c3d73fd1a8David Smithnamespace android { 25744f5739019d1fd917f981e740b353c3d73fd1a8David Smith 267e34bf5af26f8752d4786d3098740cdf51e2438fWonsik Kimstruct AMessage; 277e34bf5af26f8752d4786d3098740cdf51e2438fWonsik Kimclass MediaCodecBuffer; 287e34bf5af26f8752d4786d3098740cdf51e2438fWonsik Kim 29744f5739019d1fd917f981e740b353c3d73fd1a8David Smithstruct SimpleFilter : public RefBase { 30744f5739019d1fd917f981e740b353c3d73fd1a8David Smithpublic: 31744f5739019d1fd917f981e740b353c3d73fd1a8David Smith SimpleFilter() : mWidth(0), mHeight(0), mStride(0), mSliceHeight(0), 32744f5739019d1fd917f981e740b353c3d73fd1a8David Smith mColorFormatIn(0), mColorFormatOut(0) {}; 33744f5739019d1fd917f981e740b353c3d73fd1a8David Smith 346dad9ad21ff547fab7f192956e4a3732fd78488bDavid Smith virtual status_t configure(const sp<AMessage> &msg); 35744f5739019d1fd917f981e740b353c3d73fd1a8David Smith 36744f5739019d1fd917f981e740b353c3d73fd1a8David Smith virtual status_t start() = 0; 37744f5739019d1fd917f981e740b353c3d73fd1a8David Smith virtual void reset() = 0; 38744f5739019d1fd917f981e740b353c3d73fd1a8David Smith virtual status_t setParameters(const sp<AMessage> &msg) = 0; 39744f5739019d1fd917f981e740b353c3d73fd1a8David Smith virtual status_t processBuffers( 407e34bf5af26f8752d4786d3098740cdf51e2438fWonsik Kim const sp<MediaCodecBuffer> &srcBuffer, const sp<MediaCodecBuffer> &outBuffer) = 0; 41744f5739019d1fd917f981e740b353c3d73fd1a8David Smith 42744f5739019d1fd917f981e740b353c3d73fd1a8David Smithprotected: 43744f5739019d1fd917f981e740b353c3d73fd1a8David Smith int32_t mWidth, mHeight; 44744f5739019d1fd917f981e740b353c3d73fd1a8David Smith int32_t mStride, mSliceHeight; 45744f5739019d1fd917f981e740b353c3d73fd1a8David Smith int32_t mColorFormatIn, mColorFormatOut; 46744f5739019d1fd917f981e740b353c3d73fd1a8David Smith 47744f5739019d1fd917f981e740b353c3d73fd1a8David Smith virtual ~SimpleFilter() {}; 48744f5739019d1fd917f981e740b353c3d73fd1a8David Smith}; 49744f5739019d1fd917f981e740b353c3d73fd1a8David Smith 50744f5739019d1fd917f981e740b353c3d73fd1a8David Smith} // namespace android 51744f5739019d1fd917f981e740b353c3d73fd1a8David Smith 52744f5739019d1fd917f981e740b353c3d73fd1a8David Smith#endif // SIMPLE_FILTER_H_ 53