summaryrefslogtreecommitdiffstats
path: root/include/media
diff options
context:
space:
mode:
authorNicolas Catania <niko@google.com>2009-07-08 08:57:42 -0700
committerNicolas Catania <niko@google.com>2009-07-09 11:46:02 -0700
commitb2c693919be966f179080a9ec70a7a82dbf57627 (patch)
treebc67f2a85c74a41a2151950b6393e6a291aeaa5c /include/media
parent3ff23c46978adfb691507baa3d2bf04b3f5ca001 (diff)
downloadframeworks_base-b2c693919be966f179080a9ec70a7a82dbf57627.zip
frameworks_base-b2c693919be966f179080a9ec70a7a82dbf57627.tar.gz
frameworks_base-b2c693919be966f179080a9ec70a7a82dbf57627.tar.bz2
Implemented the metadata changed notification filters.
IMediaPlayer: new setMetadataFilter method so set a filter (2 lists of allowed and blocked metadata type) serialized in a Parcel. MediaPlayer.java/android_media_MediaPlayer.cpp/mediaplayer.cpp new setMetadataFilter that passes the filter down to the MediaPlayerService's binder interface. MediaPlayerService.cpp The Client inner class holds the allowed and blocked metadata types. These are in 2 vectors that get populated in the setMetadataFilter. A new shourldDropMetadata method returns true if a type of metadata should be dropped according to the filters. The notify method in run the metadata update notifications thru the filter and possibly drop them.
Diffstat (limited to 'include/media')
-rw-r--r--include/media/IMediaPlayer.h7
-rw-r--r--include/media/mediaplayer.h3
2 files changed, 9 insertions, 1 deletions
diff --git a/include/media/IMediaPlayer.h b/include/media/IMediaPlayer.h
index 85aeb30..074125f 100644
--- a/include/media/IMediaPlayer.h
+++ b/include/media/IMediaPlayer.h
@@ -52,8 +52,13 @@ public:
// @param request Parcel that must start with the media player
// interface token.
// @param[out] reply Parcel to hold the reply data. Cannot be null.
- // @return OK if the invocation was made. PERMISSION_DENIED otherwise.
+ // @return OK if the invocation was made successfully.
virtual status_t invoke(const Parcel& request, Parcel *reply) = 0;
+
+ // Set a new metadata filter.
+ // @param filter A set of allow and drop rules serialized in a Parcel.
+ // @return OK if the invocation was made successfully.
+ virtual status_t setMetadataFilter(const Parcel& filter) = 0;
};
// ----------------------------------------------------------------------------
diff --git a/include/media/mediaplayer.h b/include/media/mediaplayer.h
index dd8ea19..8326a21 100644
--- a/include/media/mediaplayer.h
+++ b/include/media/mediaplayer.h
@@ -97,6 +97,8 @@ enum media_info_type {
MEDIA_INFO_BAD_INTERLEAVING = 800,
// The media is not seekable (e.g live stream).
MEDIA_INFO_NOT_SEEKABLE = 801,
+ // New media metadata is available.
+ MEDIA_INFO_METADATA_UPDATE = 802,
};
@@ -152,6 +154,7 @@ public:
static sp<IMemory> decode(const char* url, uint32_t *pSampleRate, int* pNumChannels, int* pFormat);
static sp<IMemory> decode(int fd, int64_t offset, int64_t length, uint32_t *pSampleRate, int* pNumChannels, int* pFormat);
status_t invoke(const Parcel& request, Parcel *reply);
+ status_t setMetadataFilter(const Parcel& filter);
private:
void clear_l();
status_t seekTo_l(int msec);