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/libmediaplayerservice/MediaPlayerService.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/libmediaplayerservice/MediaPlayerService.cpp')
-rw-r--r-- | media/libmediaplayerservice/MediaPlayerService.cpp | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/media/libmediaplayerservice/MediaPlayerService.cpp b/media/libmediaplayerservice/MediaPlayerService.cpp index 414c262..f238e89 100644 --- a/media/libmediaplayerservice/MediaPlayerService.cpp +++ b/media/libmediaplayerservice/MediaPlayerService.cpp @@ -1,6 +1,6 @@ /* ** -** Copyright (c) 2012, The Linux Foundation. All rights reserved. +** Copyright (c) 2012-2013, The Linux Foundation. All rights reserved. ** Not a Contribution, Apache license notifications and license are retained ** for attribution purposes only. ** @@ -1735,6 +1735,27 @@ void MediaPlayerService::AudioOutput::CallbackWrapper( data->unlock(); return; } + if (event == AudioTrack::EVENT_HW_FAIL) { + ALOGW("Event hardware failure"); + CallbackData *data = (CallbackData*)cookie; + if (data != NULL) { + data->lock(); + AudioOutput *me = data->getOutput(); + if (me == NULL) { + // no output set, likely because the track was + // scheduled to be reused + // by another player, but the format turned out + // to be incompatible. + data->unlock(); + return; + } + ALOGV("Callback!!!"); + (*me->mCallback)(me, NULL, (size_t)AudioTrack::EVENT_HW_FAIL, + me->mCallbackCookie); + data->unlock(); + } + return; + } #endif if (event == AudioTrack::EVENT_MORE_DATA) { CallbackData *data = (CallbackData*)cookie; |