/* * 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