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

Commit 1302e8c5 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Adding atrace block for mediacodec queueInputs" into main am: a9ad25eb am: e8a32257

parents d6783aaf e8a32257
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -48,6 +48,7 @@ import android.os.IHwBinder;
import android.os.Looper;
import android.os.Message;
import android.os.PersistableBundle;
import android.os.Trace;
import android.view.Surface;

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

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

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

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

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

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

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

#include <type_traits>

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

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

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

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

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

    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,
        jlong presentationTimeUs, jint flags, jobject keys, jobject values) {
    ALOGV("android_media_MediaCodec_native_queueHardwareBuffer");
    ScopedTrace trace(ATRACE_TAG, "MediaCodec::queueHardwareBuffer#jni");

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