1ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber/* 2ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber * Copyright (C) 2012 The Android Open Source Project 3ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber * 4ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber * Licensed under the Apache License, Version 2.0 (the "License"); 5ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber * you may not use this file except in compliance with the License. 6ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber * You may obtain a copy of the License at 7ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber * 8ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber * http://www.apache.org/licenses/LICENSE-2.0 9ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber * 10ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber * Unless required by applicable law or agreed to in writing, software 11ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber * distributed under the License is distributed on an "AS IS" BASIS, 12ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber * See the License for the specific language governing permissions and 14ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber * limitations under the License. 15ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber */ 16ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber 17ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber#ifndef SOFT_RAW_H_ 18ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber 19ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber#define SOFT_RAW_H_ 20ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber 21ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber#include "SimpleSoftOMXComponent.h" 22ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber 23ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huberstruct tPVMP4AudioDecoderExternal; 24ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber 25ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Hubernamespace android { 26ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber 27ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huberstruct SoftRaw : public SimpleSoftOMXComponent { 28ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber SoftRaw(const char *name, 29ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber const OMX_CALLBACKTYPE *callbacks, 30ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber OMX_PTR appData, 31ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber OMX_COMPONENTTYPE **component); 32ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber 33ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huberprotected: 34ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber virtual ~SoftRaw(); 35ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber 36ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber virtual OMX_ERRORTYPE internalGetParameter( 37ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber OMX_INDEXTYPE index, OMX_PTR params); 38ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber 39ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber virtual OMX_ERRORTYPE internalSetParameter( 40ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber OMX_INDEXTYPE index, const OMX_PTR params); 41ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber 42ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber virtual void onQueueFilled(OMX_U32 portIndex); 43ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber 44ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huberprivate: 45ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber enum { 46ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber kNumBuffers = 4 47ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber }; 48ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber 49ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber bool mSignalledError; 50ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber 51ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber int32_t mChannelCount; 52ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber int32_t mSampleRate; 53ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber 54ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber void initPorts(); 55ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber status_t initDecoder(); 56ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber 57ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber DISALLOW_EVIL_CONSTRUCTORS(SoftRaw); 58ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber}; 59ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber 60ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber} // namespace android 61ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber 62ecdd39c5af016e2fa57cbfd837aa670b706dabd3Andreas Huber#endif // SOFT_RAW_H_ 63