summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice
diff options
context:
space:
mode:
authorChong Zhang <chz@google.com>2014-08-26 09:56:52 -0700
committerChong Zhang <chz@google.com>2014-08-26 09:56:52 -0700
commitafc0a87cc92a474bb14fb2a4093c74d04e4efd1b (patch)
tree2602596fcc9389418dacbb4277637a1363aee2a9 /media/libmediaplayerservice
parent111333eaab12448f45927464c8aeacbbf9a578a1 (diff)
downloadframeworks_av-afc0a87cc92a474bb14fb2a4093c74d04e4efd1b.zip
frameworks_av-afc0a87cc92a474bb14fb2a4093c74d04e4efd1b.tar.gz
frameworks_av-afc0a87cc92a474bb14fb2a4093c74d04e4efd1b.tar.bz2
do string compare with mime immediately after we get the value
Bug: 17210803 Change-Id: I4d20dd4b95d18251c18a371bd8f89b1320b38879
Diffstat (limited to 'media/libmediaplayerservice')
-rw-r--r--media/libmediaplayerservice/nuplayer/GenericSource.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/media/libmediaplayerservice/nuplayer/GenericSource.cpp b/media/libmediaplayerservice/nuplayer/GenericSource.cpp
index 76e1d54..5a4d131 100644
--- a/media/libmediaplayerservice/nuplayer/GenericSource.cpp
+++ b/media/libmediaplayerservice/nuplayer/GenericSource.cpp
@@ -134,13 +134,17 @@ status_t NuPlayer::GenericSource::initFromDataSource(
}
for (size_t i = 0; i < extractor->countTracks(); ++i) {
+ sp<MediaSource> track = extractor->getTrack(i);
+
sp<MetaData> meta = extractor->getTrackMetaData(i);
const char *mime;
CHECK(meta->findCString(kKeyMIMEType, &mime));
- sp<MediaSource> track = extractor->getTrack(i);
-
+ // Do the string compare immediately with "mime",
+ // we can't assume "mime" would stay valid after another
+ // extractor operation, some extractors might modify meta
+ // during getTrack() and make it invalid.
if (!strncasecmp(mime, "audio/", 6)) {
if (mAudioTrack.mSource == NULL) {
mAudioTrack.mIndex = i;