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

Commit 1d33277f authored by Arun Johnson's avatar Arun Johnson
Browse files

Adding atrace block for mediacodec queueInputs

Bug: 385202255
Flag: EXEMPT only adding atrace messages
Change-Id: Ie2635cfbe9468803b1e9265d5caceb9c85304308
parent 15f30d11
Loading
Loading
Loading
Loading
+15 −0
Original line number Original line Diff line number Diff line
@@ -44,6 +44,7 @@ import android.os.IHwBinder;
import android.os.Looper;
import android.os.Looper;
import android.os.Message;
import android.os.Message;
import android.os.PersistableBundle;
import android.os.PersistableBundle;
import android.os.Trace;
import android.view.Surface;
import android.view.Surface;


import java.io.IOException;
import java.io.IOException;
@@ -3103,6 +3104,7 @@ final public class MediaCodec {
            int index,
            int index,
            int offset, int size, long presentationTimeUs, int flags)
            int offset, int size, long presentationTimeUs, int flags)
        throws CryptoException {
        throws CryptoException {
        Trace.traceBegin(Trace.TRACE_TAG_VIDEO, "MediaCodec::queueInputBuffer#java");
        if ((flags & BUFFER_FLAG_DECODE_ONLY) != 0
        if ((flags & BUFFER_FLAG_DECODE_ONLY) != 0
                && (flags & BUFFER_FLAG_END_OF_STREAM) != 0) {
                && (flags & BUFFER_FLAG_END_OF_STREAM) != 0) {
            throw new InvalidBufferFlagsException(EOS_AND_DECODE_ONLY_ERROR_MESSAGE);
            throw new InvalidBufferFlagsException(EOS_AND_DECODE_ONLY_ERROR_MESSAGE);
@@ -3122,6 +3124,8 @@ final public class MediaCodec {
        } catch (CryptoException | IllegalStateException e) {
        } catch (CryptoException | IllegalStateException e) {
            revalidateByteBuffer(mCachedInputBuffers, index, true /* input */);
            revalidateByteBuffer(mCachedInputBuffers, index, true /* input */);
            throw e;
            throw e;
        } finally {
            Trace.traceEnd(Trace.TRACE_TAG_VIDEO);
        }
        }
    }
    }


@@ -3163,6 +3167,7 @@ final public class MediaCodec {
    public final void queueInputBuffers(
    public final void queueInputBuffers(
            int index,
            int index,
            @NonNull ArrayDeque<BufferInfo> bufferInfos) {
            @NonNull ArrayDeque<BufferInfo> bufferInfos) {
        Trace.traceBegin(Trace.TRACE_TAG_VIDEO, "MediaCodec::queueInputBuffers#java");
        synchronized(mBufferLock) {
        synchronized(mBufferLock) {
            if (mBufferMode == BUFFER_MODE_BLOCK) {
            if (mBufferMode == BUFFER_MODE_BLOCK) {
                throw new IncompatibleWithBlockModelException("queueInputBuffers() "
                throw new IncompatibleWithBlockModelException("queueInputBuffers() "
@@ -3178,6 +3183,8 @@ final public class MediaCodec {
        } catch (CryptoException | IllegalStateException | IllegalArgumentException e) {
        } catch (CryptoException | IllegalStateException | IllegalArgumentException e) {
            revalidateByteBuffer(mCachedInputBuffers, index, true /* input */);
            revalidateByteBuffer(mCachedInputBuffers, index, true /* input */);
            throw e;
            throw e;
        } finally {
            Trace.traceEnd(Trace.TRACE_TAG_VIDEO);
        }
        }
    }
    }


@@ -3438,6 +3445,7 @@ final public class MediaCodec {
            @NonNull CryptoInfo info,
            @NonNull CryptoInfo info,
            long presentationTimeUs,
            long presentationTimeUs,
            int flags) throws CryptoException {
            int flags) throws CryptoException {
        Trace.traceBegin(Trace.TRACE_TAG_VIDEO, "MediaCodec::queueSecureInputBuffer#java");
        if ((flags & BUFFER_FLAG_DECODE_ONLY) != 0
        if ((flags & BUFFER_FLAG_DECODE_ONLY) != 0
                && (flags & BUFFER_FLAG_END_OF_STREAM) != 0) {
                && (flags & BUFFER_FLAG_END_OF_STREAM) != 0) {
            throw new InvalidBufferFlagsException(EOS_AND_DECODE_ONLY_ERROR_MESSAGE);
            throw new InvalidBufferFlagsException(EOS_AND_DECODE_ONLY_ERROR_MESSAGE);
@@ -3457,6 +3465,8 @@ final public class MediaCodec {
        } catch (CryptoException | IllegalStateException e) {
        } catch (CryptoException | IllegalStateException e) {
            revalidateByteBuffer(mCachedInputBuffers, index, true /* input */);
            revalidateByteBuffer(mCachedInputBuffers, index, true /* input */);
            throw e;
            throw e;
        } finally {
            Trace.traceEnd(Trace.TRACE_TAG_VIDEO);
        }
        }
    }
    }


@@ -3487,6 +3497,7 @@ final public class MediaCodec {
            int index,
            int index,
            @NonNull ArrayDeque<BufferInfo> bufferInfos,
            @NonNull ArrayDeque<BufferInfo> bufferInfos,
            @NonNull ArrayDeque<CryptoInfo> cryptoInfos) {
            @NonNull ArrayDeque<CryptoInfo> cryptoInfos) {
        Trace.traceBegin(Trace.TRACE_TAG_VIDEO, "MediaCodec::queueSecureInputBuffers#java");
        synchronized(mBufferLock) {
        synchronized(mBufferLock) {
            if (mBufferMode == BUFFER_MODE_BLOCK) {
            if (mBufferMode == BUFFER_MODE_BLOCK) {
                throw new IncompatibleWithBlockModelException("queueSecureInputBuffers() "
                throw new IncompatibleWithBlockModelException("queueSecureInputBuffers() "
@@ -3502,6 +3513,8 @@ final public class MediaCodec {
        } catch (CryptoException | IllegalStateException | IllegalArgumentException e) {
        } catch (CryptoException | IllegalStateException | IllegalArgumentException e) {
            revalidateByteBuffer(mCachedInputBuffers, index, true /* input */);
            revalidateByteBuffer(mCachedInputBuffers, index, true /* input */);
            throw e;
            throw e;
        } finally {
            Trace.traceEnd(Trace.TRACE_TAG_VIDEO);
        }
        }
    }
    }


@@ -3529,6 +3542,7 @@ final public class MediaCodec {
     * @throws MediaCodec.CodecException upon codec error.
     * @throws MediaCodec.CodecException upon codec error.
     */
     */
    public final int dequeueInputBuffer(long timeoutUs) {
    public final int dequeueInputBuffer(long timeoutUs) {
        Trace.traceBegin(Trace.TRACE_TAG_VIDEO, "MediaCodec::dequeueInputBuffer#java");
        synchronized (mBufferLock) {
        synchronized (mBufferLock) {
            if (mBufferMode == BUFFER_MODE_BLOCK) {
            if (mBufferMode == BUFFER_MODE_BLOCK) {
                throw new IncompatibleWithBlockModelException("dequeueInputBuffer() "
                throw new IncompatibleWithBlockModelException("dequeueInputBuffer() "
@@ -3542,6 +3556,7 @@ final public class MediaCodec {
                validateInputByteBufferLocked(mCachedInputBuffers, res);
                validateInputByteBufferLocked(mCachedInputBuffers, res);
            }
            }
        }
        }
        Trace.traceEnd(Trace.TRACE_TAG_VIDEO);
        return res;
        return res;
    }
    }


+9 −1
Original line number Original line Diff line number Diff line
@@ -16,7 +16,9 @@


//#define LOG_NDEBUG 0
//#define LOG_NDEBUG 0
#define LOG_TAG "MediaCodec-JNI"
#define LOG_TAG "MediaCodec-JNI"
#define ATRACE_TAG  ATRACE_TAG_VIDEO
#include <utils/Log.h>
#include <utils/Log.h>
#include <utils/Trace.h>


#include <type_traits>
#include <type_traits>


@@ -2106,7 +2108,7 @@ static void android_media_MediaCodec_queueInputBuffer(
        jlong timestampUs,
        jlong timestampUs,
        jint flags) {
        jint flags) {
    ALOGV("android_media_MediaCodec_queueInputBuffer");
    ALOGV("android_media_MediaCodec_queueInputBuffer");

    ScopedTrace trace(ATRACE_TAG, "MediaCodec::queueInputBuffer#jni");
    sp<JMediaCodec> codec = getMediaCodec(env, thiz);
    sp<JMediaCodec> codec = getMediaCodec(env, thiz);


    if (codec == NULL || codec->initCheck() != OK) {
    if (codec == NULL || codec->initCheck() != OK) {
@@ -2192,6 +2194,7 @@ static void android_media_MediaCodec_queueInputBuffers(
        jint index,
        jint index,
        jobjectArray objArray) {
        jobjectArray objArray) {
    ALOGV("android_media_MediaCodec_queueInputBuffers");
    ALOGV("android_media_MediaCodec_queueInputBuffers");
    ScopedTrace trace(ATRACE_TAG, "MediaCodec::queueInputBuffers#jni");
    sp<JMediaCodec> codec = getMediaCodec(env, thiz);
    sp<JMediaCodec> codec = getMediaCodec(env, thiz);
    if (codec == NULL || codec->initCheck() != OK || objArray == NULL) {
    if (codec == NULL || codec->initCheck() != OK || objArray == NULL) {
        throwExceptionAsNecessary(env, INVALID_OPERATION, codec);
        throwExceptionAsNecessary(env, INVALID_OPERATION, codec);
@@ -2431,6 +2434,7 @@ static void android_media_MediaCodec_queueSecureInputBuffer(
        jobject cryptoInfoObj,
        jobject cryptoInfoObj,
        jlong timestampUs,
        jlong timestampUs,
        jint flags) {
        jint flags) {
    ScopedTrace trace(ATRACE_TAG, "MediaCodec::queueSecureInputBuffer#jni");
    ALOGV("android_media_MediaCodec_queueSecureInputBuffer");
    ALOGV("android_media_MediaCodec_queueSecureInputBuffer");


    sp<JMediaCodec> codec = getMediaCodec(env, thiz);
    sp<JMediaCodec> codec = getMediaCodec(env, thiz);
@@ -2641,6 +2645,7 @@ static void android_media_MediaCodec_queueSecureInputBuffers(
        jint index,
        jint index,
        jobjectArray bufferInfosObjs,
        jobjectArray bufferInfosObjs,
        jobjectArray cryptoInfoObjs) {
        jobjectArray cryptoInfoObjs) {
    ScopedTrace trace(ATRACE_TAG, "MediaCodec::queueSecureInputBuffers#jni");
    ALOGV("android_media_MediaCodec_queueSecureInputBuffers");
    ALOGV("android_media_MediaCodec_queueSecureInputBuffers");


    sp<JMediaCodec> codec = getMediaCodec(env, thiz);
    sp<JMediaCodec> codec = getMediaCodec(env, thiz);
@@ -2685,6 +2690,7 @@ static void android_media_MediaCodec_queueSecureInputBuffers(
}
}


static jobject android_media_MediaCodec_mapHardwareBuffer(JNIEnv *env, jclass, jobject bufferObj) {
static jobject android_media_MediaCodec_mapHardwareBuffer(JNIEnv *env, jclass, jobject bufferObj) {
    ScopedTrace trace(ATRACE_TAG, "MediaCodec::mapHardwareBuffer#jni");
    ALOGV("android_media_MediaCodec_mapHardwareBuffer");
    ALOGV("android_media_MediaCodec_mapHardwareBuffer");
    AHardwareBuffer *hardwareBuffer = android_hardware_HardwareBuffer_getNativeHardwareBuffer(
    AHardwareBuffer *hardwareBuffer = android_hardware_HardwareBuffer_getNativeHardwareBuffer(
            env, bufferObj);
            env, bufferObj);
@@ -3028,6 +3034,7 @@ static void extractBufferFromContext(
static void android_media_MediaCodec_native_queueLinearBlock(
static void android_media_MediaCodec_native_queueLinearBlock(
        JNIEnv *env, jobject thiz, jint index, jobject bufferObj,
        JNIEnv *env, jobject thiz, jint index, jobject bufferObj,
        jobjectArray cryptoInfoArray, jobjectArray objArray, jobject keys, jobject values) {
        jobjectArray cryptoInfoArray, jobjectArray objArray, jobject keys, jobject values) {
    ScopedTrace trace(ATRACE_TAG, "MediaCodec::queueLinearBlock#jni");
    ALOGV("android_media_MediaCodec_native_queueLinearBlock");
    ALOGV("android_media_MediaCodec_native_queueLinearBlock");


    sp<JMediaCodec> codec = getMediaCodec(env, thiz);
    sp<JMediaCodec> codec = getMediaCodec(env, thiz);
@@ -3145,6 +3152,7 @@ static void android_media_MediaCodec_native_queueHardwareBuffer(
        JNIEnv *env, jobject thiz, jint index, jobject bufferObj,
        JNIEnv *env, jobject thiz, jint index, jobject bufferObj,
        jlong presentationTimeUs, jint flags, jobject keys, jobject values) {
        jlong presentationTimeUs, jint flags, jobject keys, jobject values) {
    ALOGV("android_media_MediaCodec_native_queueHardwareBuffer");
    ALOGV("android_media_MediaCodec_native_queueHardwareBuffer");
    ScopedTrace trace(ATRACE_TAG, "MediaCodec::queueHardwareBuffer#jni");


    sp<JMediaCodec> codec = getMediaCodec(env, thiz);
    sp<JMediaCodec> codec = getMediaCodec(env, thiz);