Loading media/java/android/media/MediaCodec.java +37 −4 Original line number Diff line number Diff line Loading @@ -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. * Loading Loading @@ -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) { 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) { 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) { Loading Loading
media/java/android/media/MediaCodec.java +37 −4 Original line number Diff line number Diff line Loading @@ -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. * Loading Loading @@ -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) { 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) { 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) { Loading