From 6ed70d2d41f9929d1c3f5179d947766495f9efe5 Mon Sep 17 00:00:00 2001 From: Hiroshi Takekawa Date: Sat, 6 Nov 2010 18:28:11 +0900 Subject: 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 --- media/libstagefright/StagefrightMediaScanner.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'media/libstagefright/StagefrightMediaScanner.cpp') diff --git a/media/libstagefright/StagefrightMediaScanner.cpp b/media/libstagefright/StagefrightMediaScanner.cpp index 03287dd..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; -- cgit v1.1