summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/MediaExtractor.cpp
diff options
context:
space:
mode:
authorGlenn Kasten <gkasten@google.com>2011-01-13 11:17:00 -0800
committerGlenn Kasten <gkasten@google.com>2011-02-03 13:39:10 -0800
commit856990b491d84b7ed4fefe337485c8997ba9dd02 (patch)
tree1f0630295fd40c55a6826dd562dee0d346767a10 /media/libstagefright/MediaExtractor.cpp
parent31c52e7c8c01e1db6ff9bcf66135c72544b1235a (diff)
downloadframeworks_av-856990b491d84b7ed4fefe337485c8997ba9dd02.zip
frameworks_av-856990b491d84b7ed4fefe337485c8997ba9dd02.tar.gz
frameworks_av-856990b491d84b7ed4fefe337485c8997ba9dd02.tar.bz2
Bug 1804058 FLAC extractor
Note: dependent on external/flac for libFLAC Implemented and tested: * FLAC container * mono and stereo * standard sample rates * standard bit depths * sniffer * media scanner * Vorbis comment metadata including album art * random access seeking with "torture test" * web browser integration for audio/flac (not audio/x-flac), but note that most web servers don't correctly report the MIME type Not implemented: * 24-bit to 16-bit dither or noise shaping in AudioFlinger * 96 kHz to 44.1 or 48 kHz downsampling low pass filter in AudioFlinger * replay gain is better done in AudioFlinger * multi-channel, would need AudioFlinger support * Ogg container, does not seem to be very popular yet Change-Id: I300873e8c0cfc2e95403d9adb5064d16a2923f17
Diffstat (limited to 'media/libstagefright/MediaExtractor.cpp')
-rw-r--r--media/libstagefright/MediaExtractor.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/media/libstagefright/MediaExtractor.cpp b/media/libstagefright/MediaExtractor.cpp
index d12ac64..08ed206 100644
--- a/media/libstagefright/MediaExtractor.cpp
+++ b/media/libstagefright/MediaExtractor.cpp
@@ -26,6 +26,7 @@
#include "include/MPEG2TSExtractor.h"
#include "include/DRMExtractor.h"
#include "include/WVMExtractor.h"
+#include "include/FLACExtractor.h"
#include "matroska/MatroskaExtractor.h"
@@ -85,6 +86,8 @@ sp<MediaExtractor> MediaExtractor::Create(
} else if (!strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_AMR_NB)
|| !strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_AMR_WB)) {
return new AMRExtractor(source);
+ } else if (!strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_FLAC)) {
+ return new FLACExtractor(source);
} else if (!strcasecmp(mime, MEDIA_MIMETYPE_CONTAINER_WAV)) {
return new WAVExtractor(source);
} else if (!strcasecmp(mime, MEDIA_MIMETYPE_CONTAINER_OGG)) {