diff options
author | Haynes Mathew George <hgeorge@codeaurora.org> | 2015-12-04 11:02:47 -0800 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2015-12-23 14:28:38 -0800 |
commit | 5a1e278683de3700dc119a99a6b57cc1fc1463b8 (patch) | |
tree | 719ad5adef6b66fda73777f0b6358526aa12f348 /media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp | |
parent | 0c04699de90c89a00eb39256b60f59723f323d05 (diff) | |
download | frameworks_av-5a1e278683de3700dc119a99a6b57cc1fc1463b8.zip frameworks_av-5a1e278683de3700dc119a99a6b57cc1fc1463b8.tar.gz frameworks_av-5a1e278683de3700dc119a99a6b57cc1fc1463b8.tar.bz2 |
NuPlayer: Avoid one more assertion
b/25372978 tracks an assertion in Renderer when the
size of the buffer to be written is not a multiple of audio sink
framesize. Until resolved, avoid assertion and notify an error
back to the player
CRs-Fixed: 941002
Change-Id: Id54b357dcbf7afe90e2290665392275d6dd5eaef
Diffstat (limited to 'media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp')
-rw-r--r-- | media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp index e927767..d959e62 100644 --- a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp +++ b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp @@ -974,7 +974,17 @@ bool NuPlayer::Renderer::onDrainAudioQueue() { // (Case 1) // Must be a multiple of the frame size. If it is not a multiple of a frame size, it // needs to fail, as we should not carry over fractional frames between calls. - CHECK_EQ(copy % mAudioSink->frameSize(), 0); + + if (copy % mAudioSink->frameSize()) { + // CHECK_EQ(copy % mAudioSink->frameSize(), 0); + ALOGE("CHECK_EQ(copy % mAudioSink->frameSize(), 0) failed b/25372978"); + ALOGE("mAudioSink->frameSize() %zu", mAudioSink->frameSize()); + ALOGE("bytes to copy %zu", copy); + ALOGE("entry size %zu, entry offset %zu", entry->mBuffer->size(), + entry->mOffset - written); + notifyEOS(true /*audio*/, UNKNOWN_ERROR); + return false; + } // (Case 2, 3, 4) // Return early to the caller. |