Snap for 5447620 from b94a3d3e5461e6148bcb3be96f51e51c8f57c7e2 to pi-qpr3-b-release

Change-Id: I90eab65f6030a2c9a12985804cc81fc569bf2c71
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerCCDecoder.cpp b/media/libmediaplayerservice/nuplayer/NuPlayerCCDecoder.cpp
index 7b2b6fb..fb12360 100644
--- a/media/libmediaplayerservice/nuplayer/NuPlayerCCDecoder.cpp
+++ b/media/libmediaplayerservice/nuplayer/NuPlayerCCDecoder.cpp
@@ -316,11 +316,6 @@
     const size_t *userData = (size_t *)mpegUserData->data();
 
     for (size_t i = 0; i < mpegUserData->size() / sizeof(size_t); ++i) {
-        if (accessUnit->size() < userData[i]) {
-            ALOGW("b/129068792, skip invalid offset for user data");
-            android_errorWriteLog(0x534e4554, "129068792");
-            continue;
-        }
         trackAdded |= parseMPEGUserDataUnit(
                 timeUs, accessUnit->data() + userData[i], accessUnit->size() - userData[i]);
     }
@@ -330,12 +325,6 @@
 
 // returns true if a new CC track is found
 bool NuPlayer::CCDecoder::parseMPEGUserDataUnit(int64_t timeUs, const uint8_t *data, size_t size) {
-    if (size < 9) {
-        ALOGW("b/129068792, MPEG user data size too small %zu", size);
-        android_errorWriteLog(0x534e4554, "129068792");
-        return false;
-    }
-
     ABitReader br(data + 4, 5);
 
     uint32_t user_identifier = br.getBits(32);
@@ -388,14 +377,8 @@
                 mDTVCCPacket->setRange(0, mDTVCCPacket->size() + 2);
                 br.skipBits(16);
             } else if (mDTVCCPacket->size() > 0 && cc_type == 2) {
-                if (mDTVCCPacket->capacity() - mDTVCCPacket->size() >= 2) {
-                    memcpy(mDTVCCPacket->data() + mDTVCCPacket->size(), br.data(), 2);
-                    mDTVCCPacket->setRange(0, mDTVCCPacket->size() + 2);
-                } else {
-                    ALOGW("b/129068792, skip CC due to too much data(%zu, %zu)",
-                          mDTVCCPacket->capacity(), mDTVCCPacket->size());
-                    android_errorWriteLog(0x534e4554, "129068792");
-                }
+                memcpy(mDTVCCPacket->data() + mDTVCCPacket->size(), br.data(), 2);
+                mDTVCCPacket->setRange(0, mDTVCCPacket->size() + 2);
                 br.skipBits(16);
             } else if (cc_type == 0 || cc_type == 1) {
                 uint8_t cc_data_1 = br.getBits(8) & 0x7f;
@@ -482,11 +465,6 @@
             size_t trackIndex = getTrackIndex(kTrackTypeCEA708, service_number, &trackAdded);
             if (mSelectedTrack == (ssize_t)trackIndex) {
                 sp<ABuffer> ccPacket = new ABuffer(block_size);
-                if (ccPacket->capacity() == 0) {
-                    ALOGW("b/129068792, no memory available, %zu", block_size);
-                    android_errorWriteLog(0x534e4554, "129068792");
-                    return false;
-                }
                 memcpy(ccPacket->data(), br.data(), block_size);
                 mCCMap.add(timeUs, ccPacket);
             }
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp
index c77d082..687b5a6 100644
--- a/services/audioflinger/AudioFlinger.cpp
+++ b/services/audioflinger/AudioFlinger.cpp
@@ -3102,13 +3102,9 @@
             }
             // look for the thread where the specified audio session is present
             for (size_t i = 0; i < mPlaybackThreads.size(); i++) {
-                uint32_t sessionType = mPlaybackThreads.valueAt(i)->hasAudioSession(sessionId);
-                if (sessionType != 0) {
+                if (mPlaybackThreads.valueAt(i)->hasAudioSession(sessionId) != 0) {
                     io = mPlaybackThreads.keyAt(i);
-                    // thread with same effect session is preferable
-                    if ((sessionType & ThreadBase::EFFECT_SESSION) != 0) {
-                        break;
-                    }
+                    break;
                 }
             }
             if (io == AUDIO_IO_HANDLE_NONE) {
@@ -3134,21 +3130,6 @@
                 io = mPlaybackThreads.keyAt(0);
             }
             ALOGV("createEffect() got io %d for effect %s", io, desc.name);
-        } else if (checkPlaybackThread_l(io) != nullptr) {
-            // allow only one effect chain per sessionId on mPlaybackThreads.
-            for (size_t i = 0; i < mPlaybackThreads.size(); i++) {
-                const audio_io_handle_t checkIo = mPlaybackThreads.keyAt(i);
-                if (io == checkIo) continue;
-                const uint32_t sessionType =
-                        mPlaybackThreads.valueAt(i)->hasAudioSession(sessionId);
-                if ((sessionType & ThreadBase::EFFECT_SESSION) != 0) {
-                    ALOGE("%s: effect %s io %d denied because session %d effect exists on io %d",
-                            __func__, desc.name, (int)io, (int)sessionId, (int)checkIo);
-                    android_errorWriteLog(0x534e4554, "123237974");
-                    lStatus = BAD_VALUE;
-                    goto Exit;
-                }
-            }
         }
         ThreadBase *thread = checkRecordThread_l(io);
         if (thread == NULL) {