Loading services/tuner/TunerFilter.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -337,6 +337,9 @@ TunerFilter::~TunerFilter() { } } if (mFilterCallback != nullptr) { mFilterCallback->detachCallbacks(); } auto res = mFilter->close(); mFilter = nullptr; mStarted = false; Loading Loading @@ -470,6 +473,12 @@ void TunerFilter::FilterCallback::detachSharedFilterCallback() { } } void TunerFilter::FilterCallback::detachCallbacks() { Mutex::Autolock _l(mCallbackLock); mOriginalCallback = nullptr; mTunerFilterCallback = nullptr; } } // namespace tuner } // namespace tv } // namespace media Loading services/tuner/TunerFilter.h +1 −0 Original line number Diff line number Diff line Loading @@ -67,6 +67,7 @@ public: void sendSharedFilterStatus(int32_t status); void attachSharedFilterCallback(const shared_ptr<ITunerFilterCallback>& in_cb); void detachSharedFilterCallback(); void detachCallbacks(); private: shared_ptr<ITunerFilterCallback> mTunerFilterCallback; Loading services/tuner/hidl/TunerHidlFilter.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -510,6 +510,9 @@ TunerHidlFilter::~TunerHidlFilter() { } } if (mFilterCallback != nullptr) { mFilterCallback->detachCallbacks(); } HidlResult res = mFilter->close(); mFilter = nullptr; mFilter_1_1 = nullptr; Loading Loading @@ -970,6 +973,12 @@ void TunerHidlFilter::FilterCallback::detachSharedFilterCallback() { } } void TunerHidlFilter::FilterCallback::detachCallbacks() { Mutex::Autolock _l(mCallbackLock); mOriginalCallback = nullptr; mTunerFilterCallback = nullptr; } /////////////// FilterCallback Helper Methods /////////////////////// void TunerHidlFilter::FilterCallback::getAidlFilterEvent( const vector<HidlDemuxFilterEvent::Event>& events, Loading services/tuner/hidl/TunerHidlFilter.h +1 −0 Original line number Diff line number Diff line Loading @@ -129,6 +129,7 @@ public: void sendSharedFilterStatus(int32_t status); void attachSharedFilterCallback(const shared_ptr<ITunerFilterCallback>& in_cb); void detachSharedFilterCallback(); void detachCallbacks(); private: void getAidlFilterEvent(const vector<HidlDemuxFilterEvent::Event>& events, Loading Loading
services/tuner/TunerFilter.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -337,6 +337,9 @@ TunerFilter::~TunerFilter() { } } if (mFilterCallback != nullptr) { mFilterCallback->detachCallbacks(); } auto res = mFilter->close(); mFilter = nullptr; mStarted = false; Loading Loading @@ -470,6 +473,12 @@ void TunerFilter::FilterCallback::detachSharedFilterCallback() { } } void TunerFilter::FilterCallback::detachCallbacks() { Mutex::Autolock _l(mCallbackLock); mOriginalCallback = nullptr; mTunerFilterCallback = nullptr; } } // namespace tuner } // namespace tv } // namespace media Loading
services/tuner/TunerFilter.h +1 −0 Original line number Diff line number Diff line Loading @@ -67,6 +67,7 @@ public: void sendSharedFilterStatus(int32_t status); void attachSharedFilterCallback(const shared_ptr<ITunerFilterCallback>& in_cb); void detachSharedFilterCallback(); void detachCallbacks(); private: shared_ptr<ITunerFilterCallback> mTunerFilterCallback; Loading
services/tuner/hidl/TunerHidlFilter.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -510,6 +510,9 @@ TunerHidlFilter::~TunerHidlFilter() { } } if (mFilterCallback != nullptr) { mFilterCallback->detachCallbacks(); } HidlResult res = mFilter->close(); mFilter = nullptr; mFilter_1_1 = nullptr; Loading Loading @@ -970,6 +973,12 @@ void TunerHidlFilter::FilterCallback::detachSharedFilterCallback() { } } void TunerHidlFilter::FilterCallback::detachCallbacks() { Mutex::Autolock _l(mCallbackLock); mOriginalCallback = nullptr; mTunerFilterCallback = nullptr; } /////////////// FilterCallback Helper Methods /////////////////////// void TunerHidlFilter::FilterCallback::getAidlFilterEvent( const vector<HidlDemuxFilterEvent::Event>& events, Loading
services/tuner/hidl/TunerHidlFilter.h +1 −0 Original line number Diff line number Diff line Loading @@ -129,6 +129,7 @@ public: void sendSharedFilterStatus(int32_t status); void attachSharedFilterCallback(const shared_ptr<ITunerFilterCallback>& in_cb); void detachSharedFilterCallback(); void detachCallbacks(); private: void getAidlFilterEvent(const vector<HidlDemuxFilterEvent::Event>& events, Loading