diff options
author | Chong Zhang <chz@google.com> | 2014-08-26 09:56:52 -0700 |
---|---|---|
committer | Chong Zhang <chz@google.com> | 2014-08-26 09:56:52 -0700 |
commit | afc0a87cc92a474bb14fb2a4093c74d04e4efd1b (patch) | |
tree | 2602596fcc9389418dacbb4277637a1363aee2a9 /media/libmediaplayerservice | |
parent | 111333eaab12448f45927464c8aeacbbf9a578a1 (diff) | |
download | frameworks_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.cpp | 8 |
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; |