diff options
author | Apurupa Pattapu <apurupa@codeaurora.org> | 2015-08-21 14:53:35 -0700 |
---|---|---|
committer | Linux Build Service Account <lnxbuild@localhost> | 2015-10-06 03:24:48 -0600 |
commit | 1dced8030c5dc14bee71adde448bcefd5b91af9b (patch) | |
tree | 217b389399940f5e3fa97aed2f9c5f094d960676 /media/libstagefright/StagefrightMetadataRetriever.cpp | |
parent | 49be5fa3b72c3fe0ce80423099057e49335f0178 (diff) | |
download | frameworks_av-1dced8030c5dc14bee71adde448bcefd5b91af9b.zip frameworks_av-1dced8030c5dc14bee71adde448bcefd5b91af9b.tar.gz frameworks_av-1dced8030c5dc14bee71adde448bcefd5b91af9b.tar.bz2 |
stagefright: Stop MediaSource if buffer setup fails
extractVideoFrame can be called multiple times with the same
MediaSource object. This fix will ensure that MediaSource state
is cleared for all failure cases.
CRs-Fixed: 894140
Change-Id: Iecfcae7c78d74a1aa7b5a218b9ba28b2ab1ed4a9
Diffstat (limited to 'media/libstagefright/StagefrightMetadataRetriever.cpp')
-rw-r--r-- | media/libstagefright/StagefrightMetadataRetriever.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/media/libstagefright/StagefrightMetadataRetriever.cpp b/media/libstagefright/StagefrightMetadataRetriever.cpp index d552edf..7cf6591 100644 --- a/media/libstagefright/StagefrightMetadataRetriever.cpp +++ b/media/libstagefright/StagefrightMetadataRetriever.cpp @@ -220,6 +220,7 @@ static VideoFrame *extractVideoFrame( err = decoder->getInputBuffers(&inputBuffers); if (err != OK) { ALOGW("failed to get input buffers: %d (%s)", err, asString(err)); + source->stop(); decoder->release(); return NULL; } @@ -228,6 +229,7 @@ static VideoFrame *extractVideoFrame( err = decoder->getOutputBuffers(&outputBuffers); if (err != OK) { ALOGW("failed to get output buffers: %d (%s)", err, asString(err)); + source->stop(); decoder->release(); return NULL; } |