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

Commit 33e76e05 authored by Chong Zhang's avatar Chong Zhang Committed by android-build-merger
Browse files

Merge "stagefright: fix crash due to bad timestamp index" into mnc-dev am:...

Merge "stagefright: fix crash due to bad timestamp index" into mnc-dev am: 7da8bef6 am: 99852155 am: 0b542a37 am: e1e8ea6a am: a29bd6a7 am: d7c144c5
am: 3fd727d7

Change-Id: I4e7d44aae1663f1bc0f3d3954cccc8a6fc79bb18
parents ee04f896 3fd727d7
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -95,10 +95,10 @@ SoftMPEG2::~SoftMPEG2() {
}


static size_t getMinTimestampIdx(OMX_S64 *pNTimeStamp, bool *pIsTimeStampValid) {
static ssize_t getMinTimestampIdx(OMX_S64 *pNTimeStamp, bool *pIsTimeStampValid) {
    OMX_S64 minTimeStamp = LLONG_MAX;
    int idx = -1;
    for (size_t i = 0; i < MAX_TIME_STAMPS; i++) {
    ssize_t idx = -1;
    for (ssize_t i = 0; i < MAX_TIME_STAMPS; i++) {
        if (pIsTimeStampValid[i]) {
            if (pNTimeStamp[i] < minTimeStamp) {
                minTimeStamp = pNTimeStamp[i];
@@ -793,10 +793,15 @@ void SoftMPEG2::onQueueFilled(OMX_U32 portIndex) {
            }

            if (s_dec_op.u4_output_present) {
                size_t timeStampIdx;
                ssize_t timeStampIdx;
                outHeader->nFilledLen = (mWidth * mHeight * 3) / 2;

                timeStampIdx = getMinTimestampIdx(mTimeStamps, mTimeStampsValid);
                if (timeStampIdx < 0) {
                    ALOGE("b/62872863, Invalid timestamp index!");
                    android_errorWriteLog(0x534e4554, "62872863");
                    return;
                }
                outHeader->nTimeStamp = mTimeStamps[timeStampIdx];
                mTimeStampsValid[timeStampIdx] = false;