Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0eee7820 authored by Wonsik Kim's avatar Wonsik Kim Committed by Gerrit Code Review
Browse files

Merge "MediaCodec: add log around Handler.removeMessages" into main

parents e9e7e78f ff8446f8
Loading
Loading
Loading
Loading
+37 −4
Original line number Diff line number Diff line
@@ -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) {
                    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) {