diff options
author | Hiroshi Takekawa <sian@big.or.jp> | 2010-11-06 18:28:11 +0900 |
---|---|---|
committer | Hiroshi Takekawa <sian@big.or.jp> | 2010-11-19 12:14:37 +0900 |
commit | dc1a26eb7870cfafe4774d0db4613025c427db23 (patch) | |
tree | 041df5281e3d48ebf2974d4760532127aef41004 | |
parent | 14ac9546367d4df37eead55f6762b944b49f33b2 (diff) | |
download | frameworks_base-dc1a26eb7870cfafe4774d0db4613025c427db23.zip frameworks_base-dc1a26eb7870cfafe4774d0db4613025c427db23.tar.gz frameworks_base-dc1a26eb7870cfafe4774d0db4613025c427db23.tar.bz2 |
StagefrightMediaScanner: Call endFile() for MIDI and OGG files.
addStringTag() caches non-ascii metadata strings for later
processing, and then endFile() will be called at the end of
processFile() to convert non-ascii strings from locale's charset
to utf-8 if required.
Stagefright's processFile() failed to call endFile() when the
processing file is a MIDI file or an OGG file. This patch fixes
this problem to populate metadata correctly.
Reviewed by: Brad Fitzpatrick, Marco Nelissen.
Change-Id: I072e79d81dce1fec63297d2b5d2b870a72e5b66e
-rw-r--r-- | media/libstagefright/StagefrightMediaScanner.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/media/libstagefright/StagefrightMediaScanner.cpp b/media/libstagefright/StagefrightMediaScanner.cpp index 03287dd1..2318844 100644 --- a/media/libstagefright/StagefrightMediaScanner.cpp +++ b/media/libstagefright/StagefrightMediaScanner.cpp @@ -172,14 +172,16 @@ status_t StagefrightMediaScanner::processFile( || !strcasecmp(extension, ".rtttl") || !strcasecmp(extension, ".rtx") || !strcasecmp(extension, ".ota")) { - return HandleMIDI(path, &client); - } - - if (!strcasecmp(extension, ".ogg")) { - return HandleOGG(path, &client); - } - - if (mRetriever->setDataSource(path) == OK + status_t status = HandleMIDI(path, &client); + if (status != OK) { + return status; + } + } else if (!strcasecmp(extension, ".ogg")) { + status_t status = HandleOGG(path, &client); + if (status != OK) { + return status; + } + } else if (mRetriever->setDataSource(path) == OK && mRetriever->setMode( METADATA_MODE_METADATA_RETRIEVAL_ONLY) == OK) { const char *value; |