Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 145ca4be authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 8656341 from b7a86ae0 to tm-d1-release

Change-Id: Ifc527a8c33b7dc0768e4ea39895b8217ab46b79a
parents 73774fb7 b7a86ae0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
{
  "name": "com.android.media",
  "version": 330090000,
  "version": 339990000,
  "requireNativeLibs": [
    "libandroid.so",
    "libbinder_ndk.so",
+1 −1
Original line number Diff line number Diff line
{
  "name": "com.android.media.swcodec",
  "version": 330090000,
  "version": 339990000,
  "requireNativeLibs": [
    ":sphal"
  ]
+13 −6
Original line number Diff line number Diff line
@@ -3889,17 +3889,24 @@ status_t AudioFlinger::createEffect(const media::CreateEffectRequest& request,
            goto Exit;
        }
    } else if (sessionId == AUDIO_SESSION_OUTPUT_STAGE) {
        if (!isAudioServerUid(callingUid)) {
            ALOGE("%s: only APM can create using AUDIO_SESSION_OUTPUT_STAGE", __func__);
            lStatus = PERMISSION_DENIED;
            goto Exit;
        }

        if (io == AUDIO_IO_HANDLE_NONE) {
            ALOGE("%s: APM must specify output when using AUDIO_SESSION_OUTPUT_STAGE", __func__);
            lStatus = BAD_VALUE;
            goto Exit;
        }
        PlaybackThread *thread = checkPlaybackThread_l(io);
        if (thread == nullptr) {
            ALOGE("%s: invalid output %d specified for AUDIO_SESSION_OUTPUT_STAGE", __func__, io);
            lStatus = BAD_VALUE;
            goto Exit;
        }
        if (!modifyDefaultAudioEffectsAllowed(adjAttributionSource)
                && !isAudioServerUid(callingUid)) {
            ALOGE("%s: effect on AUDIO_SESSION_OUTPUT_STAGE not granted for uid %d",
                    __func__, callingUid);
            lStatus = PERMISSION_DENIED;
            goto Exit;
        }
    } else if (sessionId == AUDIO_SESSION_DEVICE) {
        if (!modifyDefaultAudioEffectsAllowed(adjAttributionSource)) {
            ALOGE("%s: device effect permission denied for uid %d", __func__, callingUid);
+4 −2
Original line number Diff line number Diff line
@@ -41,8 +41,10 @@ bool CameraServiceWatchdog::threadLoop()
            tidToCycleCounterMap[currentThreadId]++;

            if (tidToCycleCounterMap[currentThreadId] >= mMaxCycles) {
                ALOGW("CameraServiceWatchdog triggering kill for pid: %d", getpid());
                kill(getpid(), SIGKILL);
                ALOGW("CameraServiceWatchdog triggering abort for pid: %d", getpid());
                // We use abort here so we can get a tombstone for better
                // debugging.
                abort();
            }
        }
    }
+3 −4
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@
 *   and single call monitoring differently. See function documentation for
 *   more details.
 */

#pragma once
#include <chrono>
#include <thread>
#include <time.h>
@@ -61,7 +61,7 @@ public:
    /** Used to wrap monitored calls in start and stop functions using custom timer values */
    template<typename T>
    auto watchThread(T func, uint32_t tid, uint32_t cycles, uint32_t cycleLength) {
        auto res = NULL;
        decltype(func()) res;

        if (cycles != mMaxCycles || cycleLength != mCycleLengthMs) {
            // Create another instance of the watchdog to prevent disruption
@@ -84,10 +84,9 @@ public:
    /** Used to wrap monitored calls in start and stop functions using class timer values */
    template<typename T>
    auto watchThread(T func, uint32_t tid) {
        auto res = NULL;

        start(tid);
        res = func();
        auto res = func();
        stop(tid);

        return res;
Loading