diff options
Diffstat (limited to 'media/libstagefright')
-rw-r--r-- | media/libstagefright/AwesomePlayer.cpp | 7 | ||||
-rw-r--r-- | media/libstagefright/StagefrightMetadataRetriever.cpp | 7 | ||||
-rw-r--r-- | media/libstagefright/codecs/m4v_h263/dec/M4vH263Decoder.cpp | 11 |
3 files changed, 20 insertions, 5 deletions
diff --git a/media/libstagefright/AwesomePlayer.cpp b/media/libstagefright/AwesomePlayer.cpp index f668caa..274dad9 100644 --- a/media/libstagefright/AwesomePlayer.cpp +++ b/media/libstagefright/AwesomePlayer.cpp @@ -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; diff --git a/media/libstagefright/StagefrightMetadataRetriever.cpp b/media/libstagefright/StagefrightMetadataRetriever.cpp index 2968917..258be74 100644 --- a/media/libstagefright/StagefrightMetadataRetriever.cpp +++ b/media/libstagefright/StagefrightMetadataRetriever.cpp @@ -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(); diff --git a/media/libstagefright/codecs/m4v_h263/dec/M4vH263Decoder.cpp b/media/libstagefright/codecs/m4v_h263/dec/M4vH263Decoder.cpp index 40009f8..8350f7a 100644 --- a/media/libstagefright/codecs/m4v_h263/dec/M4vH263Decoder.cpp +++ b/media/libstagefright/codecs/m4v_h263/dec/M4vH263Decoder.cpp @@ -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); |