diff options
author | Ravishankar Sarawadi <crsaraw@codeaurora.org> | 2013-02-27 18:47:54 +0100 |
---|---|---|
committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2013-03-04 23:35:32 -0800 |
commit | 720055270a0412311d39ca77ff1c0e6d744d6b5e (patch) | |
tree | b28146c1cb226734c35e14ce3c1225c486ee159c /media/libstagefright/TunnelPlayer.cpp | |
parent | ab5138fa0d9bf3c149e3b586d7640f0d2fb90685 (diff) | |
download | frameworks_av-720055270a0412311d39ca77ff1c0e6d744d6b5e.zip frameworks_av-720055270a0412311d39ca77ff1c0e6d744d6b5e.tar.gz frameworks_av-720055270a0412311d39ca77ff1c0e6d744d6b5e.tar.bz2 |
audio: Subsystem Restart changes
- Handle new ADSP status parameter
- media/libmedia: Add new ADSP status audio parameter
- framework/av: Add handling of new key-pair value in
Audio Flinger
- Handle Tunnel mode SubSys Restart
- framework/av: Post SSR event to Audio Flinger
- media/libmedia: Post SSR event to AudioTrack
- media/libmediaplayerservice: Post SSR event to
MediaPlayerService
- media/libstagefright: Post SSR event to TunnelPlayer
Change-Id: I8c8385af45be91caf7d7160ab2e0236d6591b159
Diffstat (limited to 'media/libstagefright/TunnelPlayer.cpp')
-rw-r--r-- | media/libstagefright/TunnelPlayer.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/media/libstagefright/TunnelPlayer.cpp b/media/libstagefright/TunnelPlayer.cpp index 3b45db4..f9d0976 100644 --- a/media/libstagefright/TunnelPlayer.cpp +++ b/media/libstagefright/TunnelPlayer.cpp @@ -501,6 +501,28 @@ void TunnelPlayer::resume() { size_t TunnelPlayer::AudioSinkCallback( MediaPlayerBase::AudioSink *audioSink, void *buffer, size_t size, void *cookie) { +#ifdef QCOM_HARDWARE + TunnelPlayer *me = (TunnelPlayer *)cookie; + if(me != NULL) { + ALOGV("postAudioEOS mSeeking %d", me->mSeeking); + if (buffer == NULL && size == AudioTrack::EVENT_UNDERRUN) { + if(me->mReachedEOS == true) { + //in the case of seek all these flags will be reset + me->mReachedOutputEOS = true; + ALOGV("postAudioEOS mSeeking %d", me->mSeeking); + me->mObserver->postAudioEOS(0); + }else { + ALOGV("postAudioEOS ignored since %d", me->mSeeking); + } + } else if (size == AudioTrack::EVENT_HW_FAIL) { + ALOGV("postAudioEOS in SSR " ); + me->mReachedOutputEOS = true; + me->mReachedEOS = true; + me->killExtractorThread = true; + me->mObserver->postAudioEOS(0); + } + } +#else if (buffer == NULL && size == AudioTrack::EVENT_UNDERRUN) { TunnelPlayer *me = (TunnelPlayer *)cookie; if(me->mReachedEOS == true) { @@ -512,6 +534,7 @@ size_t TunnelPlayer::AudioSinkCallback( ALOGV("postAudioEOS ignored since %d", me->mSeeking); } } +#endif return 1; } |