Loading media/jni/android_media_MediaCodec.cpp +12 −4 Original line number Diff line number Diff line Loading @@ -233,10 +233,12 @@ void JMediaCodec::release() { } void JMediaCodec::releaseAsync() { std::call_once(mAsyncReleaseFlag, [this] { if (mCodec != NULL) { mCodec->releaseAsync(); mCodec->releaseAsync(new AMessage(kWhatAsyncReleaseComplete, this)); } mInitStatus = NO_INIT; }); } JMediaCodec::~JMediaCodec() { Loading Loading @@ -1084,6 +1086,12 @@ void JMediaCodec::onMessageReceived(const sp<AMessage> &msg) { handleFrameRenderedNotification(msg); break; } case kWhatAsyncReleaseComplete: { mCodec.clear(); mLooper->stop(); break; } default: TRESPASS(); } Loading media/jni/android_media_MediaCodec.h +2 −0 Original line number Diff line number Diff line Loading @@ -173,6 +173,7 @@ private: enum { kWhatCallbackNotify, kWhatFrameRendered, kWhatAsyncReleaseComplete, }; jclass mClass; Loading @@ -185,6 +186,7 @@ private: bool mGraphicOutput{false}; bool mHasCryptoOrDescrambler{false}; std::once_flag mReleaseFlag; std::once_flag mAsyncReleaseFlag; sp<AMessage> mCallbackNotification; sp<AMessage> mOnFrameRenderedNotification; Loading Loading
media/jni/android_media_MediaCodec.cpp +12 −4 Original line number Diff line number Diff line Loading @@ -233,10 +233,12 @@ void JMediaCodec::release() { } void JMediaCodec::releaseAsync() { std::call_once(mAsyncReleaseFlag, [this] { if (mCodec != NULL) { mCodec->releaseAsync(); mCodec->releaseAsync(new AMessage(kWhatAsyncReleaseComplete, this)); } mInitStatus = NO_INIT; }); } JMediaCodec::~JMediaCodec() { Loading Loading @@ -1084,6 +1086,12 @@ void JMediaCodec::onMessageReceived(const sp<AMessage> &msg) { handleFrameRenderedNotification(msg); break; } case kWhatAsyncReleaseComplete: { mCodec.clear(); mLooper->stop(); break; } default: TRESPASS(); } Loading
media/jni/android_media_MediaCodec.h +2 −0 Original line number Diff line number Diff line Loading @@ -173,6 +173,7 @@ private: enum { kWhatCallbackNotify, kWhatFrameRendered, kWhatAsyncReleaseComplete, }; jclass mClass; Loading @@ -185,6 +186,7 @@ private: bool mGraphicOutput{false}; bool mHasCryptoOrDescrambler{false}; std::once_flag mReleaseFlag; std::once_flag mAsyncReleaseFlag; sp<AMessage> mCallbackNotification; sp<AMessage> mOnFrameRenderedNotification; Loading