1 /* 2 * Copyright (C) 2014 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 #pragma once 17 #include "aacdecoder_lib.h" 18 19 typedef enum 20 { 21 DRC_PRES_MODE_WRAP_DESIRED_TARGET = 0x0000, 22 DRC_PRES_MODE_WRAP_DESIRED_ATT_FACTOR = 0x0001, 23 DRC_PRES_MODE_WRAP_DESIRED_BOOST_FACTOR = 0x0002, 24 DRC_PRES_MODE_WRAP_DESIRED_HEAVY = 0x0003, 25 DRC_PRES_MODE_WRAP_ENCODER_TARGET = 0x0004 26 } DRC_PRES_MODE_WRAP_PARAM; 27 28 29 class CDrcPresModeWrapper { 30 public: 31 CDrcPresModeWrapper(); 32 ~CDrcPresModeWrapper(); 33 void setDecoderHandle(const HANDLE_AACDECODER handle); 34 void setParam(const DRC_PRES_MODE_WRAP_PARAM param, const int value); 35 void submitStreamData(CStreamInfo*); 36 void update(); 37 38 protected: 39 HANDLE_AACDECODER mHandleDecoder; 40 int mDesTarget; 41 int mDesAttFactor; 42 int mDesBoostFactor; 43 int mDesHeavy; 44 45 int mEncoderTarget; 46 47 int mLastTarget; 48 int mLastAttFactor; 49 int mLastBoostFactor; 50 int mLastHeavy; 51 52 SCHAR mStreamPRL; 53 SCHAR mStreamDRCPresMode; 54 INT mStreamNrAACChan; 55 INT mStreamNrOutChan; 56 57 bool mIsDownmix; 58 bool mIsMonoDownmix; 59 bool mIsStereoDownmix; 60 61 bool mDataUpdate; 62 }; 63