diff options
author | Nicolas Catania <niko@google.com> | 2009-07-08 08:57:42 -0700 |
---|---|---|
committer | Nicolas Catania <niko@google.com> | 2009-07-09 11:46:02 -0700 |
commit | a7e0e8b4c429fc68eb1bd5b5a30f5b91352288f9 (patch) | |
tree | 526ea0a90e0fead7c9b5ef56dbb16631ac075504 /media/libmedia/mediaplayer.cpp | |
parent | 814914cd0858cafaa6ad625e3012de97d213636d (diff) | |
download | frameworks_av-a7e0e8b4c429fc68eb1bd5b5a30f5b91352288f9.zip frameworks_av-a7e0e8b4c429fc68eb1bd5b5a30f5b91352288f9.tar.gz frameworks_av-a7e0e8b4c429fc68eb1bd5b5a30f5b91352288f9.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 'media/libmedia/mediaplayer.cpp')
-rw-r--r-- | media/libmedia/mediaplayer.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/media/libmedia/mediaplayer.cpp b/media/libmedia/mediaplayer.cpp index 4683166..d8c622f 100644 --- a/media/libmedia/mediaplayer.cpp +++ b/media/libmedia/mediaplayer.cpp @@ -208,7 +208,16 @@ status_t MediaPlayer::invoke(const Parcel& request, Parcel *reply) return INVALID_OPERATION; } - +status_t MediaPlayer::setMetadataFilter(const Parcel& filter) +{ + LOGD("setMetadataFilter"); + Mutex::Autolock _l(mLock); + if (mPlayer == NULL) + { + return NO_INIT; + } + return mPlayer->setMetadataFilter(filter); +} status_t MediaPlayer::setVideoSurface(const sp<Surface>& surface) { |