Merge changes Ib70e7c51,I4ccf05f3

* changes:
  transcoding: use builtin_available macro instead of __ANDROID_APEX__
  transcoding: use __ANDROID_API_FUTURE__ in __builtin_available check
diff --git a/media/libmediatranscoding/TranscodingClientManager.cpp b/media/libmediatranscoding/TranscodingClientManager.cpp
index adc8bdb..46d1da2 100644
--- a/media/libmediatranscoding/TranscodingClientManager.cpp
+++ b/media/libmediatranscoding/TranscodingClientManager.cpp
@@ -302,7 +302,7 @@
     }
 
     int32_t result;
-    if (__builtin_available(android 31, *)) {
+    if (__builtin_available(android __TRANSCODING_MIN_API__, *)) {
         if (APermissionManager_checkPermission("android.permission.WRITE_MEDIA_STORAGE", pid, uid,
                                                &result) == PERMISSION_MANAGER_STATUS_OK &&
             result == PERMISSION_MANAGER_PERMISSION_GRANTED) {
diff --git a/media/libmediatranscoding/TranscodingUidPolicy.cpp b/media/libmediatranscoding/TranscodingUidPolicy.cpp
index b0fa545..feaecc6 100644
--- a/media/libmediatranscoding/TranscodingUidPolicy.cpp
+++ b/media/libmediatranscoding/TranscodingUidPolicy.cpp
@@ -48,7 +48,7 @@
 }
 
 void TranscodingUidPolicy::registerSelf() {
-    if (__builtin_available(android 31, *)) {
+    if (__builtin_available(android __TRANSCODING_MIN_API__, *)) {
         mUidObserver = AActivityManager_addUidImportanceListener(&OnUidImportance, -1, (void*)this);
     }
 
@@ -63,7 +63,7 @@
 }
 
 void TranscodingUidPolicy::unregisterSelf() {
-    if (__builtin_available(android 31, *)) {
+    if (__builtin_available(android __TRANSCODING_MIN_API__, *)) {
         AActivityManager_removeUidImportanceListener(mUidObserver);
         mUidObserver = nullptr;
 
@@ -91,7 +91,7 @@
     }
 
     int32_t state = IMPORTANCE_UNKNOWN;
-    if (__builtin_available(android 31, *)) {
+    if (__builtin_available(android __TRANSCODING_MIN_API__, *)) {
         if (mRegistered && AActivityManager_isUidActive(uid)) {
             state = AActivityManager_getUidImportance(uid);
         }
diff --git a/media/libmediatranscoding/include/media/TranscodingUidPolicy.h b/media/libmediatranscoding/include/media/TranscodingUidPolicy.h
index 4dde5a6..dcb22df 100644
--- a/media/libmediatranscoding/include/media/TranscodingUidPolicy.h
+++ b/media/libmediatranscoding/include/media/TranscodingUidPolicy.h
@@ -28,6 +28,9 @@
 #include <unordered_map>
 #include <unordered_set>
 
+// TODO: replace __ANDROID_API_FUTURE__with 31 when it's official (b/178144708)
+#define __TRANSCODING_MIN_API__ __ANDROID_API_FUTURE__
+
 struct AActivityManager_UidImportanceListener;
 
 namespace android {
diff --git a/media/libmediatranscoding/transcoder/VideoTrackTranscoder.cpp b/media/libmediatranscoding/transcoder/VideoTrackTranscoder.cpp
index 21d60ea..45e25ac 100644
--- a/media/libmediatranscoding/transcoder/VideoTrackTranscoder.cpp
+++ b/media/libmediatranscoding/transcoder/VideoTrackTranscoder.cpp
@@ -260,12 +260,15 @@
         return AMEDIA_ERROR_INVALID_PARAMETER;
     }
 
-#if !defined(__ANDROID_APEX__)
-    // TODO(jiyong): replace this #ifdef with a __builtin_available check.
-    AMediaCodec* encoder = AMediaCodec_createEncoderByTypeForClient(destinationMime, mPid, mUid);
-#else
-    AMediaCodec* encoder = AMediaCodec_createEncoderByType(destinationMime);
-#endif
+    // TODO: replace __ANDROID_API_FUTURE__with 31 when it's official (b/178144708)
+    #define __TRANSCODING_MIN_API__ __ANDROID_API_FUTURE__
+
+    AMediaCodec* encoder;
+    if (__builtin_available(android __TRANSCODING_MIN_API__, *)) {
+        encoder = AMediaCodec_createEncoderByTypeForClient(destinationMime, mPid, mUid);
+    } else {
+        encoder = AMediaCodec_createEncoderByType(destinationMime);
+    }
     if (encoder == nullptr) {
         LOG(ERROR) << "Unable to create encoder for type " << destinationMime;
         return AMEDIA_ERROR_UNSUPPORTED;
@@ -295,12 +298,11 @@
         return AMEDIA_ERROR_INVALID_PARAMETER;
     }
 
-#if !defined(__ANDROID_APEX__)
-    // TODO(jiyong): replace this #ifdef with a __builtin_available check.
-    mDecoder = AMediaCodec_createDecoderByTypeForClient(sourceMime, mPid, mUid);
-#else
-    mDecoder = AMediaCodec_createDecoderByType(sourceMime);
-#endif
+    if (__builtin_available(android __TRANSCODING_MIN_API__, *)) {
+        mDecoder = AMediaCodec_createDecoderByTypeForClient(sourceMime, mPid, mUid);
+    } else {
+        mDecoder = AMediaCodec_createDecoderByType(sourceMime);
+    }
     if (mDecoder == nullptr) {
         LOG(ERROR) << "Unable to create decoder for type " << sourceMime;
         return AMEDIA_ERROR_UNSUPPORTED;
diff --git a/media/libmediatranscoding/transcoder/include/media/VideoTrackTranscoder.h b/media/libmediatranscoding/transcoder/include/media/VideoTrackTranscoder.h
index e3f3f4f..d2ffb01 100644
--- a/media/libmediatranscoding/transcoder/include/media/VideoTrackTranscoder.h
+++ b/media/libmediatranscoding/transcoder/include/media/VideoTrackTranscoder.h
@@ -97,12 +97,8 @@
     BlockingQueue<std::function<void()>> mCodecMessageQueue;
     std::shared_ptr<AMediaFormat> mDestinationFormat;
     std::shared_ptr<AMediaFormat> mActualOutputFormat;
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wunused-private-field"
-    // These could be unused on older platforms
     pid_t mPid;
     uid_t mUid;
-#pragma clang diagnostic pop
 };
 
 }  // namespace android
diff --git a/media/ndk/include_platform/media/NdkMediaCodecPlatform.h b/media/ndk/include_platform/media/NdkMediaCodecPlatform.h
index 608346d..6edd712 100644
--- a/media/ndk/include_platform/media/NdkMediaCodecPlatform.h
+++ b/media/ndk/include_platform/media/NdkMediaCodecPlatform.h
@@ -41,8 +41,6 @@
     AMEDIACODEC_CALLING_PID = -1,
 };
 
-#if __ANDROID_API__ >= 31
-
 /**
  * Create codec by name on behalf of a client.
  *
@@ -91,8 +89,6 @@
                                                       pid_t pid,
                                                       uid_t uid) __INTRODUCED_IN(31);
 
-#endif // __ANDROID_API__ >= 31
-
 __END_DECLS
 
 #endif //_NDK_MEDIA_CODEC_PLATFORM_H
diff --git a/services/mediatranscoding/MediaTranscodingService.cpp b/services/mediatranscoding/MediaTranscodingService.cpp
index 74477a8..b94dd01 100644
--- a/services/mediatranscoding/MediaTranscodingService.cpp
+++ b/services/mediatranscoding/MediaTranscodingService.cpp
@@ -62,7 +62,7 @@
 
     uid_t callingUid = AIBinder_getCallingUid();
     pid_t callingPid = AIBinder_getCallingPid();
-    if (__builtin_available(android 31, *)) {
+    if (__builtin_available(android __TRANSCODING_MIN_API__, *)) {
         int32_t permissionResult;
         if (APermissionManager_checkPermission("android.permission.DUMP", callingPid, callingUid,
                                                &permissionResult) != PERMISSION_MANAGER_STATUS_OK ||