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