diff options
author | Elliott Hughes <enh@google.com> | 2014-06-12 00:06:25 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-06-12 00:06:25 +0000 |
commit | 2a8270e6944fb3addfcba87f6885aaad196b8b88 (patch) | |
tree | 991b282008b0b02747b7b29c929e9d157dc08e62 /include/media | |
parent | ca44dc79b5a163030ab0963f80aa771871de092d (diff) | |
parent | c323737dd46d724b4c1ec230b283f26ae2a22b4f (diff) | |
download | frameworks_av-2a8270e6944fb3addfcba87f6885aaad196b8b88.zip frameworks_av-2a8270e6944fb3addfcba87f6885aaad196b8b88.tar.gz frameworks_av-2a8270e6944fb3addfcba87f6885aaad196b8b88.tar.bz2 |
am c323737d: Merge "Offer a type-safe album art interface."
* commit 'c323737dd46d724b4c1ec230b283f26ae2a22b4f':
Offer a type-safe album art interface.
Diffstat (limited to 'include/media')
-rw-r--r-- | include/media/MediaMetadataRetrieverInterface.h | 1 | ||||
-rw-r--r-- | include/media/mediascanner.h | 28 | ||||
-rw-r--r-- | include/media/stagefright/StagefrightMediaScanner.h | 2 |
3 files changed, 28 insertions, 3 deletions
diff --git a/include/media/MediaMetadataRetrieverInterface.h b/include/media/MediaMetadataRetrieverInterface.h index ecc3b65..cd5bf88 100644 --- a/include/media/MediaMetadataRetrieverInterface.h +++ b/include/media/MediaMetadataRetrieverInterface.h @@ -20,6 +20,7 @@ #include <utils/RefBase.h> #include <media/mediametadataretriever.h> +#include <media/mediascanner.h> #include <private/media/VideoFrame.h> namespace android { diff --git a/include/media/mediascanner.h b/include/media/mediascanner.h index a73403b..a7bb6c1 100644 --- a/include/media/mediascanner.h +++ b/include/media/mediascanner.h @@ -41,6 +41,31 @@ enum MediaScanResult { MEDIA_SCAN_RESULT_ERROR, }; +struct MediaAlbumArt { +public: + static MediaAlbumArt *fromData(int32_t size, const void* data); + + static void init(MediaAlbumArt* instance, int32_t size, const void* data); + + MediaAlbumArt *clone(); + + const char *data() { + return &mData[0]; + } + + int32_t size() { + return mSize; + } + +private: + int32_t mSize; + char mData[0]; + + // You can't construct instances of this class directly because this is a + // variable-sized object passed through the binder. + MediaAlbumArt(); +} __packed; + struct MediaScanner { MediaScanner(); virtual ~MediaScanner(); @@ -53,8 +78,7 @@ struct MediaScanner { void setLocale(const char *locale); - // extracts album art as a block of data - virtual char *extractAlbumArt(int fd) = 0; + virtual MediaAlbumArt *extractAlbumArt(int fd) = 0; protected: const char *locale() const; diff --git a/include/media/stagefright/StagefrightMediaScanner.h b/include/media/stagefright/StagefrightMediaScanner.h index 6510a59..eb3accc 100644 --- a/include/media/stagefright/StagefrightMediaScanner.h +++ b/include/media/stagefright/StagefrightMediaScanner.h @@ -30,7 +30,7 @@ struct StagefrightMediaScanner : public MediaScanner { const char *path, const char *mimeType, MediaScannerClient &client); - virtual char *extractAlbumArt(int fd); + virtual MediaAlbumArt *extractAlbumArt(int fd); private: StagefrightMediaScanner(const StagefrightMediaScanner &); |