summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice
diff options
context:
space:
mode:
authorWei Jia <wjia@google.com>2015-03-19 22:39:31 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-03-19 22:39:32 +0000
commitb588cf22b2e44f20921550412d443fba55b1343e (patch)
tree683fc3a8305c308ca70bb240772b22ca82f4905f /media/libmediaplayerservice
parent84b784dd4f340331d36b1be3de05a6c814d9795c (diff)
parent230b188b2c2ed74aa017cb93f847e9a558feba95 (diff)
downloadframeworks_av-b588cf22b2e44f20921550412d443fba55b1343e.zip
frameworks_av-b588cf22b2e44f20921550412d443fba55b1343e.tar.gz
frameworks_av-b588cf22b2e44f20921550412d443fba55b1343e.tar.bz2
Merge "mediaplayer: check existence of AudioTrack before trying to access it."
Diffstat (limited to 'media/libmediaplayerservice')
-rw-r--r--media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp
index 4bccfa8..a2ec51c 100644
--- a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp
+++ b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp
@@ -566,12 +566,22 @@ size_t NuPlayer::Renderer::fillAudioBuffer(void *buffer, size_t size) {
}
bool NuPlayer::Renderer::onDrainAudioQueue() {
-#if 0
+ // TODO: This call to getPosition checks if AudioTrack has been created
+ // in AudioSink before draining audio. If AudioTrack doesn't exist, then
+ // CHECKs on getPosition will fail.
+ // We still need to figure out why AudioTrack is not created when
+ // this function is called. One possible reason could be leftover
+ // audio. Another possible place is to check whether decoder
+ // has received INFO_FORMAT_CHANGED as the first buffer since
+ // AudioSink is opened there, and possible interactions with flush
+ // immediately after start. Investigate error message
+ // "vorbis_dsp_synthesis returned -135", along with RTSP.
uint32_t numFramesPlayed;
if (mAudioSink->getPosition(&numFramesPlayed) != OK) {
return false;
}
+#if 0
ssize_t numFramesAvailableToWrite =
mAudioSink->frameCount() - (mNumFramesWritten - numFramesPlayed);