blob: f0b6cf2d34cbce208ffc110f1b4fe527b814ed93 [file] [log] [blame]
Pawin Vongmasa36653902018-11-15 00:10:25 -08001/*
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
19typedef 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
29class CDrcPresModeWrapper {
30public:
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
38protected:
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};