summaryrefslogtreecommitdiffstats
path: root/media/libmedia/mediaplayer.cpp
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
commita7e0e8b4c429fc68eb1bd5b5a30f5b91352288f9 (patch)
tree526ea0a90e0fead7c9b5ef56dbb16631ac075504 /media/libmedia/mediaplayer.cpp
parent814914cd0858cafaa6ad625e3012de97d213636d (diff)
downloadframeworks_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.cpp11
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)
{