summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cmds/stagefright/stagefright.cpp7
-rw-r--r--media/libstagefright/AwesomePlayer.cpp7
-rw-r--r--media/libstagefright/StagefrightMetadataRetriever.cpp7
-rw-r--r--media/libstagefright/codecs/m4v_h263/dec/M4vH263Decoder.cpp11
4 files changed, 26 insertions, 6 deletions
diff --git a/cmds/stagefright/stagefright.cpp b/cmds/stagefright/stagefright.cpp
index 4405da6..b838f32 100644
--- a/cmds/stagefright/stagefright.cpp
+++ b/cmds/stagefright/stagefright.cpp
@@ -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);
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);