diff options
author | Marco Nelissen <marcone@google.com> | 2012-02-28 16:07:44 -0800 |
---|---|---|
committer | Marco Nelissen <marcone@google.com> | 2012-03-13 13:13:14 -0700 |
commit | 84b832054552e00257bb04997143ca33d6d100be (patch) | |
tree | cf04f15f15da2d9ddbd2112b2b89542f6270b4ce /include | |
parent | f19d5f0271a9e0cdf3a79c6ccab5aa151b0b3239 (diff) | |
download | frameworks_base-84b832054552e00257bb04997143ca33d6d100be.zip frameworks_base-84b832054552e00257bb04997143ca33d6d100be.tar.gz frameworks_base-84b832054552e00257bb04997143ca33d6d100be.tar.bz2 |
Gapless playback, step 1.
Currently able to play Ogg Vorbis, PCM WAV and other lossless files seamlessly
by reusing the initial AudioTrack for subsequent players.
Change-Id: Ie7cf6b9076bdf4f9211574456d192c02c04fecc7
Diffstat (limited to 'include')
-rw-r--r-- | include/media/IMediaPlayer.h | 1 | ||||
-rw-r--r-- | include/media/MediaPlayerInterface.h | 1 | ||||
-rw-r--r-- | include/media/mediaplayer.h | 4 |
3 files changed, 6 insertions, 0 deletions
diff --git a/include/media/IMediaPlayer.h b/include/media/IMediaPlayer.h index 39d58ab..00facc5 100644 --- a/include/media/IMediaPlayer.h +++ b/include/media/IMediaPlayer.h @@ -64,6 +64,7 @@ public: virtual status_t setParameter(int key, const Parcel& request) = 0; virtual status_t getParameter(int key, Parcel* reply) = 0; virtual status_t setRetransmitEndpoint(const struct sockaddr_in* endpoint) = 0; + virtual status_t setNextPlayer(const sp<IMediaPlayer>& next) = 0; // Invoke a generic method on the player by using opaque parcels // for the request and reply. diff --git a/include/media/MediaPlayerInterface.h b/include/media/MediaPlayerInterface.h index 8168dff..d4aa233 100644 --- a/include/media/MediaPlayerInterface.h +++ b/include/media/MediaPlayerInterface.h @@ -107,6 +107,7 @@ public: virtual void close() = 0; virtual status_t setPlaybackRatePermille(int32_t rate) { return INVALID_OPERATION; } + virtual bool needsTrailingPadding() { return true; } }; MediaPlayerBase() : mCookie(0), mNotify(0) {} diff --git a/include/media/mediaplayer.h b/include/media/mediaplayer.h index 9cd5f9f..662dd13 100644 --- a/include/media/mediaplayer.h +++ b/include/media/mediaplayer.h @@ -96,6 +96,9 @@ enum media_error_type { enum media_info_type { // 0xx MEDIA_INFO_UNKNOWN = 1, + // The player was started because it was used as the next player for another + // player, which just completed playback + MEDIA_INFO_STARTED_AS_NEXT = 2, // 7xx // The video is too complex for the decoder: it can't decode frames fast // enough. Possibly only the audio plays fine at this stage. @@ -207,6 +210,7 @@ public: status_t setParameter(int key, const Parcel& request); status_t getParameter(int key, Parcel* reply); status_t setRetransmitEndpoint(const char* addrString, uint16_t port); + status_t setNextMediaPlayer(const sp<MediaPlayer>& player); private: void clear_l(); |