diff options
author | Andreas Huber <andih@google.com> | 2009-11-20 09:32:46 -0800 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2009-11-23 10:44:30 -0800 |
commit | bfa6b2d7a1be1832ac40ed90aece1834f720b5c6 (patch) | |
tree | 5b4948c52fde583d593d088ffc4a7f772c904a86 /media/libstagefright/AudioPlayer.cpp | |
parent | bf89c099fc97717e3008a481aeddc76c1ac5e00d (diff) | |
download | frameworks_av-bfa6b2d7a1be1832ac40ed90aece1834f720b5c6.zip frameworks_av-bfa6b2d7a1be1832ac40ed90aece1834f720b5c6.tar.gz frameworks_av-bfa6b2d7a1be1832ac40ed90aece1834f720b5c6.tar.bz2 |
Squashed commit of the following:
commit 1efc38dc3c33fef57b759002db3965ed07a28cb0
Author: Andreas Huber <andih@google.com>
Date: Thu Nov 19 14:36:14 2009 -0800
Sending the SEEK-COMPLETE notification temporarily broke seeking backwards in time behaviour. This is now fixed.
Also, get rid of the semi-random delay after posting buffers to surface flinger in favour of delaying the buffer release until the next frame is displayed.
commit 51973062eb5ee63fd64b845d72bac517cc3369cf
Author: Andreas Huber <andih@google.com>
Date: Wed Nov 18 14:01:43 2009 -0800
Fix one more unit test, properly send seek-complete notification only after seek actually completed.
commit cb22250b34b1fcfe1bf459723a761fd003950229
Author: Andreas Huber <andih@google.com>
Date: Wed Nov 18 12:31:36 2009 -0800
Fix seek-while-paused in AwesomePlayer, revert to using FileSource if MmapSource fails.
commit 25eb9241138ddf7bb27ce90657116c5f8a94d880
Author: Andreas Huber <andih@google.com>
Date: Wed Nov 18 12:30:40 2009 -0800
Support seeking and duration in AMRExtractor, assuming all frames are the same size.
commit 44192f2ebb7ea3bbd3ba5910025692dbc6a08faa
Author: Andreas Huber <andih@google.com>
Date: Wed Nov 18 10:21:44 2009 -0800
MediaPlayerImpl is dead, long live AwesomePlayer.
commit c5b52d3c0674f5dc94db506afbce52401cceddac
Author: Andreas Huber <andih@google.com>
Date: Wed Nov 18 09:42:23 2009 -0800
New implementation of the stagefright mediaplayer.
Diffstat (limited to 'media/libstagefright/AudioPlayer.cpp')
-rw-r--r-- | media/libstagefright/AudioPlayer.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/media/libstagefright/AudioPlayer.cpp b/media/libstagefright/AudioPlayer.cpp index d7e3f66..4280683 100644 --- a/media/libstagefright/AudioPlayer.cpp +++ b/media/libstagefright/AudioPlayer.cpp @@ -47,6 +47,12 @@ AudioPlayer::~AudioPlayer() { } } +void AudioPlayer::setListenerCallback( + void (*notify)(void *cookie, int what), void *cookie) { + mListenerCallback = notify; + mListenerCookie = cookie; +} + void AudioPlayer::setSource(const sp<MediaSource> &source) { CHECK_EQ(mSource, NULL); mSource = source; @@ -195,7 +201,6 @@ void AudioPlayer::fillBuffer(void *data, size_t size) { mInputBuffer->release(); mInputBuffer = NULL; } - mSeeking = false; } } @@ -205,7 +210,19 @@ void AudioPlayer::fillBuffer(void *data, size_t size) { CHECK((err == OK && mInputBuffer != NULL) || (err != OK && mInputBuffer == NULL)); + if (mSeeking) { + mSeeking = false; + + if (mListenerCallback) { + (*mListenerCallback)(mListenerCookie, SEEK_COMPLETE); + } + } + if (err != OK) { + if (mListenerCallback) { + (*mListenerCallback)(mListenerCookie, REACHED_EOS); + } + memset((char *)data + size_done, 0, size_remaining); break; } |