#include "TunerDemux.h" namespace aml_mp { TunerDemux::TunerDemux(sp demux) : mDemux(demux) { } TunerDemux::~TunerDemux() { close(); } sptr TunerDemux::openDvr(DvrType dvrType, int bufferSize, sptr tunerDvrCallback) { sptr tunerDvr = nullptr; Result res; sp callback = new TunerDvr::DvrCallback(tunerDvrCallback); sp hidlDvr; mDemux->openDvr(dvrType, bufferSize, callback, [&](Result r, const sp& dvr) { hidlDvr = dvr; res = r; }); if (res != Result::SUCCESS) { //coverity[leaked_storage] return nullptr; } tunerDvr = new TunerDvr(hidlDvr); return tunerDvr; } sptr TunerDemux::openFilter(DemuxFilterType filterType, int bufferSize, const sptr tunerFilterCallback) { sptr tunerFilter = nullptr; Result res; sp filterSp; sp cbSp = new TunerFilter::FilterCallback(tunerFilterCallback); mDemux->openFilter(filterType, bufferSize, cbSp, [&](Result r, const sp& filter) { filterSp = filter; res = r; }); if (res != Result::SUCCESS) { //coverity[leaked_storage] return nullptr; } tunerFilter = new TunerFilter(filterSp); return tunerFilter; } int TunerDemux::getAvSyncHwId(sptr tunerFilter) { uint32_t avSyncHwId = 0; Result res; sp halFilter = tunerFilter->getHalFilter(); mDemux->getAvSyncHwId(halFilter, [&](Result r, uint32_t id) { res = r; avSyncHwId = id; }); if (res != Result::SUCCESS) { return -1; } return avSyncHwId; } void TunerDemux::close() { if (mDemux) { mDemux->close(); mDemux = nullptr; } } } // namespace aml_mp