Merge "libmpeg2extractor : Remove libmedia_headers dependency" am: 6f01fb530c

Original change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1336078

Change-Id: I5dd55fd2cb76313e705eaf31e269117e865a7bec
diff --git a/media/extractors/midi/Android.bp b/media/extractors/midi/Android.bp
index 8c6f20d..592ffa9 100644
--- a/media/extractors/midi/Android.bp
+++ b/media/extractors/midi/Android.bp
@@ -11,9 +11,7 @@
     static_libs: [
         "libmedia_midiiowrapper",
         "libsonivox",
-        "libstagefright_foundation",
-        "libwatchdog",
-        "libbase",
+        "libstagefright_foundation"
     ],
 
 
diff --git a/media/extractors/midi/MidiExtractor.cpp b/media/extractors/midi/MidiExtractor.cpp
index d0efb2f..9f4f9e6 100644
--- a/media/extractors/midi/MidiExtractor.cpp
+++ b/media/extractors/midi/MidiExtractor.cpp
@@ -26,7 +26,6 @@
 #include <media/stagefright/MediaDefs.h>
 #include <media/stagefright/MediaErrors.h>
 #include <libsonivox/eas_reverb.h>
-#include <watchdog/Watchdog.h>
 
 namespace android {
 
@@ -117,7 +116,6 @@
         MediaBufferHelper **outBuffer, const ReadOptions *options)
 {
     ALOGV("MidiSource::read");
-
     MediaBufferHelper *buffer;
     // process an optional seek request
     int64_t seekTimeUs;
@@ -141,8 +139,6 @@
 }
 
 // MidiEngine
-using namespace std::chrono_literals;
-static constexpr auto kTimeout = 10s;
 
 MidiEngine::MidiEngine(CDataSource *dataSource,
         AMediaFormat *fileMetadata,
@@ -151,8 +147,6 @@
             mEasHandle(NULL),
             mEasConfig(NULL),
             mIsInitialized(false) {
-    Watchdog watchdog(kTimeout);
-
     mIoWrapper = new MidiIoWrapper(dataSource);
     // spin up a new EAS engine
     EAS_I32 temp;
@@ -192,8 +186,6 @@
 }
 
 MidiEngine::~MidiEngine() {
-    Watchdog watchdog(kTimeout);
-
     if (mEasHandle) {
         EAS_CloseFile(mEasData, mEasHandle);
     }
@@ -225,16 +217,12 @@
 }
 
 status_t MidiEngine::seekTo(int64_t positionUs) {
-    Watchdog watchdog(kTimeout);
-
     ALOGV("seekTo %lld", (long long)positionUs);
     EAS_RESULT result = EAS_Locate(mEasData, mEasHandle, positionUs / 1000, false);
     return result == EAS_SUCCESS ? OK : UNKNOWN_ERROR;
 }
 
 MediaBufferHelper* MidiEngine::readBuffer() {
-    Watchdog watchdog(kTimeout);
-
     EAS_STATE state;
     EAS_State(mEasData, mEasHandle, &state);
     if ((state == EAS_STATE_STOPPED) || (state == EAS_STATE_ERROR)) {
diff --git a/media/extractors/tests/Android.bp b/media/extractors/tests/Android.bp
index fa39b64..059c308 100644
--- a/media/extractors/tests/Android.bp
+++ b/media/extractors/tests/Android.bp
@@ -33,7 +33,6 @@
         "libmp4extractor",
         "libaudioutils",
         "libdatasource",
-        "libwatchdog",
 
         "libstagefright",
         "libstagefright_id3",
@@ -66,7 +65,6 @@
         "libcrypto",
         "libhidlmemory",
         "libhidlbase",
-        "libbase",
     ],
 
     include_dirs: [
diff --git a/media/libwatchdog/Android.bp b/media/libwatchdog/Android.bp
deleted file mode 100644
index 849623a..0000000
--- a/media/libwatchdog/Android.bp
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2020 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-cc_library {
-    name: "libwatchdog",
-    srcs: [
-        "Watchdog.cpp",
-    ],
-    export_include_dirs: ["include"],
-    shared_libs: [
-        "liblog",
-    ],
-    static_libs: [
-        "libbase",
-    ],
-    target: {
-        windows: {
-            enabled: false,
-        },
-        darwin: {
-            enabled: false,
-        },
-    },
-    apex_available: ["com.android.media"],
-}
diff --git a/media/libwatchdog/Watchdog.cpp b/media/libwatchdog/Watchdog.cpp
deleted file mode 100644
index bb012b9..0000000
--- a/media/libwatchdog/Watchdog.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#define LOG_TAG "Watchdog"
-
-#include <watchdog/Watchdog.h>
-
-#include <android-base/logging.h>
-#include <android-base/threads.h>
-#include <signal.h>
-#include <time.h>
-#include <cstring>
-#include <utils/Log.h>
-
-namespace android {
-
-Watchdog::Watchdog(::std::chrono::steady_clock::duration timeout) {
-    // Create the timer.
-    struct sigevent sev;
-    sev.sigev_notify = SIGEV_THREAD_ID;
-    sev.sigev_notify_thread_id = base::GetThreadId();
-    sev.sigev_signo = SIGABRT;
-    sev.sigev_value.sival_ptr = &mTimerId;
-    int err = timer_create(CLOCK_MONOTONIC, &sev, &mTimerId);
-    if (err != 0) {
-        PLOG(FATAL) << "Failed to create timer";
-    }
-
-    // Start the timer.
-    struct itimerspec spec;
-    memset(&spec, 0, sizeof(spec));
-    auto ns = std::chrono::duration_cast<std::chrono::nanoseconds>(timeout);
-    LOG_ALWAYS_FATAL_IF(timeout.count() <= 0, "Duration must be positive");
-    spec.it_value.tv_sec = ns.count() / 1000000000;
-    spec.it_value.tv_nsec = ns.count() % 1000000000;
-    err = timer_settime(mTimerId, 0, &spec, nullptr);
-    if (err != 0) {
-        PLOG(FATAL) << "Failed to start timer";
-    }
-}
-
-Watchdog::~Watchdog() {
-    // Delete the timer.
-    int err = timer_delete(mTimerId);
-    if (err != 0) {
-        PLOG(FATAL) << "Failed to delete timer";
-    }
-}
-
-}  // namespace android
diff --git a/media/libwatchdog/include/watchdog/Watchdog.h b/media/libwatchdog/include/watchdog/Watchdog.h
deleted file mode 100644
index 2819f8a..0000000
--- a/media/libwatchdog/include/watchdog/Watchdog.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ANDROID_WATCHDOG_H
-#define ANDROID_WATCHDOG_H
-
-#include <chrono>
-#include <time.h>
-
-namespace android {
-
-/*
- * An RAII-style object, which would crash the process if a timeout expires
- * before the object is destroyed.
- * The calling thread would be sent a SIGABORT, which would typically result in
- * a stack trace.
- *
- * Sample usage:
- * {
- *     Watchdog watchdog(std::chrono::milliseconds(10));
- *     DoSomething();
- * }
- * // If we got here, the function completed in time.
- */
-class Watchdog final {
-public:
-    Watchdog(std::chrono::steady_clock::duration timeout);
-    ~Watchdog();
-
-private:
-    timer_t mTimerId;
-};
-
-}  // namespace android
-
-#endif  // ANDROID_WATCHDOG_H
diff --git a/services/mediaextractor/seccomp_policy/mediaextractor-arm.policy b/services/mediaextractor/seccomp_policy/mediaextractor-arm.policy
index b062775..02de431 100644
--- a/services/mediaextractor/seccomp_policy/mediaextractor-arm.policy
+++ b/services/mediaextractor/seccomp_policy/mediaextractor-arm.policy
@@ -41,9 +41,6 @@
 getgroups32: 1
 nanosleep: 1
 getrandom: 1
-timer_create: 1
-timer_settime: 1
-timer_delete: 1
 
 # for dynamically loading extractors
 pread64: 1
diff --git a/services/mediaextractor/seccomp_policy/mediaextractor-arm64.policy b/services/mediaextractor/seccomp_policy/mediaextractor-arm64.policy
index 481e29e..8fd8787 100644
--- a/services/mediaextractor/seccomp_policy/mediaextractor-arm64.policy
+++ b/services/mediaextractor/seccomp_policy/mediaextractor-arm64.policy
@@ -30,9 +30,6 @@
 getrlimit: 1
 nanosleep: 1
 getrandom: 1
-timer_create: 1
-timer_settime: 1
-timer_delete: 1
 
 # for FileSource
 readlinkat: 1
diff --git a/services/mediaextractor/seccomp_policy/mediaextractor-x86.policy b/services/mediaextractor/seccomp_policy/mediaextractor-x86.policy
index 15fb24e..05915d1 100644
--- a/services/mediaextractor/seccomp_policy/mediaextractor-x86.policy
+++ b/services/mediaextractor/seccomp_policy/mediaextractor-x86.policy
@@ -39,9 +39,6 @@
 getgroups32: 1
 nanosleep: 1
 getrandom: 1
-timer_create: 1
-timer_settime: 1
-timer_delete: 1
 
 # for dynamically loading extractors
 getdents64: 1
diff --git a/services/mediaextractor/seccomp_policy/mediaextractor-x86_64.policy b/services/mediaextractor/seccomp_policy/mediaextractor-x86_64.policy
index 4f2646c..e6a55d0 100644
--- a/services/mediaextractor/seccomp_policy/mediaextractor-x86_64.policy
+++ b/services/mediaextractor/seccomp_policy/mediaextractor-x86_64.policy
@@ -34,9 +34,6 @@
 getrlimit: 1
 nanosleep: 1
 getrandom: 1
-timer_create: 1
-timer_settime: 1
-timer_delete: 1
 
 # for dynamically loading extractors
 getdents64: 1