From 7abbd4c954e26fb69235831e11090ad61cec7b94 Mon Sep 17 00:00:00 2001 From: joakim johansson Date: Fri, 30 Jan 2015 14:16:03 +0100 Subject: Wrong format used in seamless check The targetFormat that is sent to supportsSeamlessFormatChange function corresponds to the data in mInputFormat but the format provided is the output format, so the check will always return false. Use the input format instead. Bug: 18821145 Change-Id: Iea3cbd59e423da5f2f813e98505b40dc341061b8 --- media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp') diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp b/media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp index 2abd9d6..5d98d98 100644 --- a/media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp +++ b/media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp @@ -823,7 +823,7 @@ bool NuPlayer::Decoder::supportsSeamlessAudioFormatChange( const char * keys[] = { "channel-count", "sample-rate", "is-adts" }; for (unsigned int i = 0; i < sizeof(keys) / sizeof(keys[0]); i++) { int32_t oldVal, newVal; - if (!mOutputFormat->findInt32(keys[i], &oldVal) || + if (!mInputFormat->findInt32(keys[i], &oldVal) || !targetFormat->findInt32(keys[i], &newVal) || oldVal != newVal) { return false; @@ -831,7 +831,7 @@ bool NuPlayer::Decoder::supportsSeamlessAudioFormatChange( } sp oldBuf, newBuf; - if (mOutputFormat->findBuffer("csd-0", &oldBuf) && + if (mInputFormat->findBuffer("csd-0", &oldBuf) && targetFormat->findBuffer("csd-0", &newBuf)) { if (oldBuf->size() != newBuf->size()) { return false; @@ -843,7 +843,7 @@ bool NuPlayer::Decoder::supportsSeamlessAudioFormatChange( } bool NuPlayer::Decoder::supportsSeamlessFormatChange(const sp &targetFormat) const { - if (mOutputFormat == NULL) { + if (mInputFormat == NULL) { return false; } @@ -852,7 +852,7 @@ bool NuPlayer::Decoder::supportsSeamlessFormatChange(const sp &targetF } AString oldMime, newMime; - if (!mOutputFormat->findString("mime", &oldMime) + if (!mInputFormat->findString("mime", &oldMime) || !targetFormat->findString("mime", &newMime) || !(oldMime == newMime)) { return false; -- cgit v1.1