summaryrefslogtreecommitdiffstats
path: root/include/media/stagefright/DataSource.h
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2010-08-25 11:09:41 -0700
committerAndreas Huber <andih@google.com>2010-08-25 13:08:38 -0700
commit5a1c3529e4fa2f8a11054181294e0ce79fff8dd3 (patch)
tree06386bceb568bf27c3fff03139ac0745ec1c4eba /include/media/stagefright/DataSource.h
parentfce49325d807c278229a594c1cc866e21da0e155 (diff)
downloadframeworks_av-5a1c3529e4fa2f8a11054181294e0ce79fff8dd3.zip
frameworks_av-5a1c3529e4fa2f8a11054181294e0ce79fff8dd3.tar.gz
frameworks_av-5a1c3529e4fa2f8a11054181294e0ce79fff8dd3.tar.bz2
Allow sniffers to return a packet of opaque data that the corresponding extractor can take advantage of to not duplicate work already done sniffing. The mp3 extractor takes advantage of this now.
Change-Id: Icb77ae3ee95a69c7da25b4d3b8696c0a2d33028a related-to-bug: 2948754
Diffstat (limited to 'include/media/stagefright/DataSource.h')
-rw-r--r--include/media/stagefright/DataSource.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/include/media/stagefright/DataSource.h b/include/media/stagefright/DataSource.h
index 6f7dc38..9d2cff6 100644
--- a/include/media/stagefright/DataSource.h
+++ b/include/media/stagefright/DataSource.h
@@ -28,6 +28,7 @@
namespace android {
+struct AMessage;
class String8;
class DataSource : public RefBase {
@@ -59,10 +60,14 @@ public:
////////////////////////////////////////////////////////////////////////////
- bool sniff(String8 *mimeType, float *confidence);
+ bool sniff(String8 *mimeType, float *confidence, sp<AMessage> *meta);
+ // The sniffer can optionally fill in "meta" with an AMessage containing
+ // a dictionary of values that helps the corresponding extractor initialize
+ // its state without duplicating effort already exerted by the sniffer.
typedef bool (*SnifferFunc)(
- const sp<DataSource> &source, String8 *mimeType, float *confidence);
+ const sp<DataSource> &source, String8 *mimeType,
+ float *confidence, sp<AMessage> *meta);
static void RegisterSniffer(SnifferFunc func);
static void RegisterDefaultSniffers();