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

Commit 2723e092 authored by Andreas Huber's avatar Andreas Huber Committed by Android (Google) Code Review
Browse files

Merge "Better handling of codec initialization failure in the player and...

Merge "Better handling of codec initialization failure in the player and thumbnail extractor. Return a runtime error instead of asserting if the software MPEG4/H.263 decoder fails to initialize." into froyo
parents 06906796 1919e5af
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -75,7 +75,12 @@ static void playSource(OMXClient *client, const sp<MediaSource> &source) {
        }
    }

    rawSource->start();
    status_t err = rawSource->start();

    if (err != OK) {
        fprintf(stderr, "rawSource returned error %d (0x%08x)\n", err, err);
        return;
    }

    if (gPlaybackAudio) {
        AudioPlayer *player = new AudioPlayer(NULL);
+6 −1
Original line number Diff line number Diff line
@@ -822,7 +822,12 @@ status_t AwesomePlayer::initVideoDecoder() {
        CHECK(mVideoTrack->getFormat()->findInt32(kKeyWidth, &mVideoWidth));
        CHECK(mVideoTrack->getFormat()->findInt32(kKeyHeight, &mVideoHeight));

        mVideoSource->start();
        status_t err = mVideoSource->start();

        if (err != OK) {
            mVideoSource.clear();
            return err;
        }
    }

    return mVideoSource != NULL ? OK : UNKNOWN_ERROR;
+5 −2
Original line number Diff line number Diff line
@@ -120,7 +120,11 @@ static VideoFrame *extractVideoFrameWithCodecFlags(
        return NULL;
    }

    decoder->start();
    status_t err = decoder->start();
    if (err != OK) {
        LOGW("OMXCodec::start returned error %d (0x%08x)\n", err, err);
        return NULL;
    }

    // Read one output buffer, ignore format change notifications
    // and spurious empty buffers.
@@ -134,7 +138,6 @@ static VideoFrame *extractVideoFrameWithCodecFlags(
    }

    MediaBuffer *buffer = NULL;
    status_t err;
    do {
        if (buffer != NULL) {
            buffer->release();
+9 −2
Original line number Diff line number Diff line
@@ -120,9 +120,16 @@ status_t M4vH263Decoder::start(MetaData *) {
        vol_size = 0;

    }
    CHECK_EQ(PV_TRUE, PVInitVideoDecoder(
            mHandle, vol_data, &vol_size, 1, mWidth, mHeight, mode));

    Bool success = PVInitVideoDecoder(
            mHandle, vol_data, &vol_size, 1, mWidth, mHeight, mode);
    if (vol_data[0]) free(vol_data[0]);

    if (success != PV_TRUE) {
        LOGW("PVInitVideoDecoder failed. Unsupported content?");
        return ERROR_UNSUPPORTED;
    }

    MP4DecodingMode actualMode = PVGetDecBitstreamMode(mHandle);
    CHECK_EQ(mode, actualMode);