From 5a1e278683de3700dc119a99a6b57cc1fc1463b8 Mon Sep 17 00:00:00 2001 From: Haynes Mathew George Date: Fri, 4 Dec 2015 11:02:47 -0800 Subject: 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 --- media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) 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. -- cgit v1.1