blob: 5b7f6acb3635d58160f9ad874505087293667a0b [file] [log] [blame]
/*
* DecoderTop.cpp
*
* Copyright 2021 HIMSA II K/S - www.himsa.com. Represented by EHIMA -
* www.ehima.com
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "DecoderTop.hpp"
namespace Lc3Dec {
DecoderTop::DecoderTop(uint16_t fs_, DatapointContainer* datapoints_)
: DecoderTop(Lc3Config(fs_, Lc3Config::FrameDuration::d10ms, 1),
datapoints_) {}
DecoderTop::DecoderTop(Lc3Config lc3Config_, DatapointContainer* datapoints_)
: lc3Config(lc3Config_),
datapoints(datapoints_),
decoderCurrentFrame(nullptr),
decoderPreviousFrame(nullptr),
residualSpectrum(lc3Config_.NE),
spectralNoiseShaping(lc3Config),
packetLossConcealment(lc3Config_.NE),
mdctDec(lc3Config) {
if (nullptr != datapoints) {
residualSpectrum.registerDatapoints(datapoints);
spectralNoiseShaping.registerDatapoints(datapoints);
packetLossConcealment.registerDatapoints(datapoints);
mdctDec.registerDatapoints(datapoints);
}
}
DecoderTop::~DecoderTop() {
if (nullptr != decoderPreviousFrame) {
delete decoderPreviousFrame;
}
if (nullptr != decoderCurrentFrame) {
delete decoderCurrentFrame;
}
}
} // namespace Lc3Dec