Loading media/jni/android_media_tv_Tuner.cpp +14 −1 Original line number Diff line number Diff line Loading @@ -171,6 +171,12 @@ static int IP_V6_LENGTH = 16; void DestroyCallback(const C2Buffer * /* buf */, void *arg) { android::sp<android::MediaEvent> event = (android::MediaEvent *)arg; if (event->mLinearBlockObj != NULL) { JNIEnv *env = android::AndroidRuntime::getJNIEnv(); env->DeleteWeakGlobalRef(event->mLinearBlockObj); event->mLinearBlockObj = NULL; } event->mAvHandleRefCnt--; event->finalize(); } Loading @@ -182,6 +188,12 @@ LnbCallback::LnbCallback(jobject lnbObj, LnbId id) : mId(id) { mLnb = env->NewWeakGlobalRef(lnbObj); } LnbCallback::~LnbCallback() { JNIEnv *env = AndroidRuntime::getJNIEnv(); env->DeleteWeakGlobalRef(mLnb); mLnb = NULL; } Return<void> LnbCallback::onEvent(LnbEventType lnbEventType) { ALOGD("LnbCallback::onEvent, type=%d", lnbEventType); JNIEnv *env = AndroidRuntime::getJNIEnv(); Loading Loading @@ -305,6 +317,7 @@ MediaEvent::MediaEvent(sp<IFilter> iFilter, hidl_handle avHandle, JNIEnv *env = AndroidRuntime::getJNIEnv(); mMediaEventObj = env->NewWeakGlobalRef(obj); mAvHandle = native_handle_clone(avHandle.getNativeHandle()); mLinearBlockObj = NULL; } MediaEvent::~MediaEvent() { Loading Loading @@ -367,7 +380,7 @@ jobject MediaEvent::getLinearBlock() { true); mLinearBlockObj = env->NewWeakGlobalRef(linearBlock); mAvHandleRefCnt++; return mLinearBlockObj; return linearBlock; } else { native_handle_close(const_cast<native_handle_t*>( reinterpret_cast<const native_handle_t*>(mIonHandle))); Loading media/jni/android_media_tv_Tuner.h +1 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,7 @@ namespace android { struct LnbCallback : public ILnbCallback { LnbCallback(jweak tunerObj, LnbId id); ~LnbCallback(); virtual Return<void> onEvent(LnbEventType lnbEventType); virtual Return<void> onDiseqcMessage(const hidl_vec<uint8_t>& diseqcMessage); jweak mLnb; Loading Loading
media/jni/android_media_tv_Tuner.cpp +14 −1 Original line number Diff line number Diff line Loading @@ -171,6 +171,12 @@ static int IP_V6_LENGTH = 16; void DestroyCallback(const C2Buffer * /* buf */, void *arg) { android::sp<android::MediaEvent> event = (android::MediaEvent *)arg; if (event->mLinearBlockObj != NULL) { JNIEnv *env = android::AndroidRuntime::getJNIEnv(); env->DeleteWeakGlobalRef(event->mLinearBlockObj); event->mLinearBlockObj = NULL; } event->mAvHandleRefCnt--; event->finalize(); } Loading @@ -182,6 +188,12 @@ LnbCallback::LnbCallback(jobject lnbObj, LnbId id) : mId(id) { mLnb = env->NewWeakGlobalRef(lnbObj); } LnbCallback::~LnbCallback() { JNIEnv *env = AndroidRuntime::getJNIEnv(); env->DeleteWeakGlobalRef(mLnb); mLnb = NULL; } Return<void> LnbCallback::onEvent(LnbEventType lnbEventType) { ALOGD("LnbCallback::onEvent, type=%d", lnbEventType); JNIEnv *env = AndroidRuntime::getJNIEnv(); Loading Loading @@ -305,6 +317,7 @@ MediaEvent::MediaEvent(sp<IFilter> iFilter, hidl_handle avHandle, JNIEnv *env = AndroidRuntime::getJNIEnv(); mMediaEventObj = env->NewWeakGlobalRef(obj); mAvHandle = native_handle_clone(avHandle.getNativeHandle()); mLinearBlockObj = NULL; } MediaEvent::~MediaEvent() { Loading Loading @@ -367,7 +380,7 @@ jobject MediaEvent::getLinearBlock() { true); mLinearBlockObj = env->NewWeakGlobalRef(linearBlock); mAvHandleRefCnt++; return mLinearBlockObj; return linearBlock; } else { native_handle_close(const_cast<native_handle_t*>( reinterpret_cast<const native_handle_t*>(mIonHandle))); Loading
media/jni/android_media_tv_Tuner.h +1 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,7 @@ namespace android { struct LnbCallback : public ILnbCallback { LnbCallback(jweak tunerObj, LnbId id); ~LnbCallback(); virtual Return<void> onEvent(LnbEventType lnbEventType); virtual Return<void> onDiseqcMessage(const hidl_vec<uint8_t>& diseqcMessage); jweak mLnb; Loading