diff options
| author | 2024-04-17 23:50:22 +0000 | |
|---|---|---|
| committer | 2024-04-17 23:50:22 +0000 | |
| commit | 5bb1e04b97c91d21f29fb56f989d8689f7360837 (patch) | |
| tree | c7bb2df835f09f5af23646a86b506d71637f45cf | |
| parent | 89d3bb5a1c910c795e3640bd2e42e1d379e751da (diff) | |
| parent | 0eee78203e52c4d41448d5abd4289c34dbec9d24 (diff) | |
Merge "MediaCodec: add log around Handler.removeMessages" into main am: 0eee78203e
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/3034852
Change-Id: I1876252b75f6f913ac9cd8bff61bce476ae2a1ee
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | media/java/android/media/MediaCodec.java | 41 |
1 files changed, 37 insertions, 4 deletions
diff --git a/media/java/android/media/MediaCodec.java b/media/java/android/media/MediaCodec.java index 17c4a7792b88..4708db27765e 100644 --- a/media/java/android/media/MediaCodec.java +++ b/media/java/android/media/MediaCodec.java @@ -5230,6 +5230,13 @@ final public class MediaCodec { setParameters(keys, values); } + private void logAndRun(String message, Runnable r) { + final String TAG = "MediaCodec"; + android.util.Log.d(TAG, "enter: " + message); + r.run(); + android.util.Log.d(TAG, "exit : " + message); + } + /** * Sets an asynchronous callback for actionable MediaCodec events. * @@ -5259,14 +5266,40 @@ final public class MediaCodec { // even if we were to extend this to be callable dynamically, it must // be called when codec is flushed, so no messages are pending. if (newHandler != mCallbackHandler) { - mCallbackHandler.removeMessages(EVENT_SET_CALLBACK); - mCallbackHandler.removeMessages(EVENT_CALLBACK); + if (android.media.codec.Flags.setCallbackStall()) { + logAndRun( + "[new handler] removeMessages(SET_CALLBACK)", + () -> { + mCallbackHandler.removeMessages(EVENT_SET_CALLBACK); + }); + logAndRun( + "[new handler] removeMessages(CALLBACK)", + () -> { + mCallbackHandler.removeMessages(EVENT_CALLBACK); + }); + } else { + mCallbackHandler.removeMessages(EVENT_SET_CALLBACK); + mCallbackHandler.removeMessages(EVENT_CALLBACK); + } mCallbackHandler = newHandler; } } } else if (mCallbackHandler != null) { - mCallbackHandler.removeMessages(EVENT_SET_CALLBACK); - mCallbackHandler.removeMessages(EVENT_CALLBACK); + if (android.media.codec.Flags.setCallbackStall()) { + logAndRun( + "[null handler] removeMessages(SET_CALLBACK)", + () -> { + mCallbackHandler.removeMessages(EVENT_SET_CALLBACK); + }); + logAndRun( + "[null handler] removeMessages(CALLBACK)", + () -> { + mCallbackHandler.removeMessages(EVENT_CALLBACK); + }); + } else { + mCallbackHandler.removeMessages(EVENT_SET_CALLBACK); + mCallbackHandler.removeMessages(EVENT_CALLBACK); + } } if (mCallbackHandler != null) { |