am c6a16327
: am 3c16154a
: am 2723e092
: 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
This commit is contained in:
@ -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) {
|
if (gPlaybackAudio) {
|
||||||
AudioPlayer *player = new AudioPlayer(NULL);
|
AudioPlayer *player = new AudioPlayer(NULL);
|
||||||
|
@ -822,7 +822,12 @@ status_t AwesomePlayer::initVideoDecoder() {
|
|||||||
CHECK(mVideoTrack->getFormat()->findInt32(kKeyWidth, &mVideoWidth));
|
CHECK(mVideoTrack->getFormat()->findInt32(kKeyWidth, &mVideoWidth));
|
||||||
CHECK(mVideoTrack->getFormat()->findInt32(kKeyHeight, &mVideoHeight));
|
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;
|
return mVideoSource != NULL ? OK : UNKNOWN_ERROR;
|
||||||
|
@ -120,7 +120,11 @@ static VideoFrame *extractVideoFrameWithCodecFlags(
|
|||||||
return NULL;
|
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
|
// Read one output buffer, ignore format change notifications
|
||||||
// and spurious empty buffers.
|
// and spurious empty buffers.
|
||||||
@ -134,7 +138,6 @@ static VideoFrame *extractVideoFrameWithCodecFlags(
|
|||||||
}
|
}
|
||||||
|
|
||||||
MediaBuffer *buffer = NULL;
|
MediaBuffer *buffer = NULL;
|
||||||
status_t err;
|
|
||||||
do {
|
do {
|
||||||
if (buffer != NULL) {
|
if (buffer != NULL) {
|
||||||
buffer->release();
|
buffer->release();
|
||||||
|
@ -120,9 +120,16 @@ status_t M4vH263Decoder::start(MetaData *) {
|
|||||||
vol_size = 0;
|
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 (vol_data[0]) free(vol_data[0]);
|
||||||
|
|
||||||
|
if (success != PV_TRUE) {
|
||||||
|
LOGW("PVInitVideoDecoder failed. Unsupported content?");
|
||||||
|
return ERROR_UNSUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
MP4DecodingMode actualMode = PVGetDecBitstreamMode(mHandle);
|
MP4DecodingMode actualMode = PVGetDecBitstreamMode(mHandle);
|
||||||
CHECK_EQ(mode, actualMode);
|
CHECK_EQ(mode, actualMode);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user