Skip to content

Commit 8cb0813

Browse files
author
hscham
committed
add missing files from same resvision of browser tree
BUILD.gn files are edit with little-effort, so many of the added files are not compiled in. This helps with future uprev. Bug: chromium:1048060 Test: Presubmit Change-Id: I32b77ce2e40425a0a45c6672457ac736ca248ccd (cherry picked from commit 991a472)
1 parent c8fd3f4 commit 8cb0813

File tree

717 files changed

+121156
-5572
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

717 files changed

+121156
-5572
lines changed

BUILD.IGNORE

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
android
2+
components/policy
3+
fuzzer
4+
perftest
5+
power_monitor
6+
test_runner
7+
tests
8+
trace_event
9+
ui/gfx
10+
unittest

BUILD.gn

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
# Copyright 2018 The Chromium OS Authors. All rights reserved.
22
# Use of this source code is governed by a BSD-style license that can be
33
# found in the LICENSE file.
4+
#
5+
# BUILD.gn doesn't compile all files in the directory to reduce build size.
6+
# Missing files can be added if needed.
47

58
import("//common-mk/mojom_bindings_generator.gni")
69
import("//common-mk/pkg_config.gni")
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
// Copyright 2017 The Chromium Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
5+
#ifndef BASE_ANDROID_ANDROID_HARDWARE_BUFFER_ABI_H_
6+
#define BASE_ANDROID_ANDROID_HARDWARE_BUFFER_ABI_H_
7+
8+
// Minimal binary interface definitions for AHardwareBuffer based on
9+
// include/android/hardware_buffer.h from the Android NDK for platform level
10+
// 26+. This is only intended for use from the AndroidHardwareBufferCompat
11+
// wrapper for building without NDK platform level support, it is not a
12+
// general-use header and is not complete.
13+
//
14+
// TODO(crbug.com/771171): Delete this file when third_party/android_ndk/
15+
// is updated to a version that contains the android/hardware_buffer.h file.
16+
//
17+
// Please refer to the API documentation for details:
18+
// https://developer.android.com/ndk/reference/hardware__buffer_8h.html
19+
20+
#include <stdint.h>
21+
22+
// Use "C" linkage to match the original header file. This isn't strictly
23+
// required since the file is not declaring global functions, but the types
24+
// should remain in the global namespace for compatibility, and it's a reminder
25+
// that forward declarations elsewhere should use "extern "C" to avoid
26+
// namespace issues.
27+
extern "C" {
28+
29+
typedef struct AHardwareBuffer AHardwareBuffer;
30+
typedef struct ARect ARect;
31+
32+
enum {
33+
AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM = 1,
34+
AHARDWAREBUFFER_FORMAT_R8G8B8X8_UNORM = 2,
35+
AHARDWAREBUFFER_FORMAT_R8G8B8_UNORM = 3,
36+
AHARDWAREBUFFER_FORMAT_R5G6B5_UNORM = 4,
37+
AHARDWAREBUFFER_FORMAT_R16G16B16A16_FLOAT = 0x16,
38+
AHARDWAREBUFFER_FORMAT_R10G10B10A2_UNORM = 0x2b,
39+
AHARDWAREBUFFER_FORMAT_BLOB = 0x21,
40+
};
41+
42+
enum {
43+
AHARDWAREBUFFER_USAGE_CPU_READ_NEVER = 0UL,
44+
AHARDWAREBUFFER_USAGE_CPU_READ_RARELY = 2UL,
45+
AHARDWAREBUFFER_USAGE_CPU_READ_OFTEN = 3UL,
46+
AHARDWAREBUFFER_USAGE_CPU_READ_MASK = 0xFUL,
47+
AHARDWAREBUFFER_USAGE_CPU_WRITE_NEVER = 0UL << 4,
48+
AHARDWAREBUFFER_USAGE_CPU_WRITE_RARELY = 2UL << 4,
49+
AHARDWAREBUFFER_USAGE_CPU_WRITE_OFTEN = 3UL << 4,
50+
AHARDWAREBUFFER_USAGE_CPU_WRITE_MASK = 0xFUL << 4,
51+
AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE = 1UL << 8,
52+
AHARDWAREBUFFER_USAGE_GPU_COLOR_OUTPUT = 1UL << 9,
53+
AHARDWAREBUFFER_USAGE_PROTECTED_CONTENT = 1UL << 14,
54+
AHARDWAREBUFFER_USAGE_VIDEO_ENCODE = 1UL << 16,
55+
AHARDWAREBUFFER_USAGE_SENSOR_DIRECT_DATA = 1UL << 23,
56+
AHARDWAREBUFFER_USAGE_GPU_DATA_BUFFER = 1UL << 24,
57+
};
58+
59+
typedef struct AHardwareBuffer_Desc {
60+
uint32_t width;
61+
uint32_t height;
62+
uint32_t layers;
63+
uint32_t format;
64+
uint64_t usage;
65+
uint32_t stride;
66+
uint32_t rfu0;
67+
uint64_t rfu1;
68+
} AHardwareBuffer_Desc;
69+
70+
using PFAHardwareBuffer_allocate = void (*)(const AHardwareBuffer_Desc* desc,
71+
AHardwareBuffer** outBuffer);
72+
using PFAHardwareBuffer_acquire = void (*)(AHardwareBuffer* buffer);
73+
using PFAHardwareBuffer_describe = void (*)(const AHardwareBuffer* buffer,
74+
AHardwareBuffer_Desc* outDesc);
75+
using PFAHardwareBuffer_lock = int (*)(AHardwareBuffer* buffer,
76+
uint64_t usage,
77+
int32_t fence,
78+
const ARect* rect,
79+
void** outVirtualAddress);
80+
using PFAHardwareBuffer_recvHandleFromUnixSocket =
81+
int (*)(int socketFd, AHardwareBuffer** outBuffer);
82+
using PFAHardwareBuffer_release = void (*)(AHardwareBuffer* buffer);
83+
using PFAHardwareBuffer_sendHandleToUnixSocket =
84+
int (*)(const AHardwareBuffer* buffer, int socketFd);
85+
using PFAHardwareBuffer_unlock = int (*)(AHardwareBuffer* buffer,
86+
int32_t* fence);
87+
88+
} // extern "C"
89+
90+
#endif // BASE_ANDROID_ANDROID_HARDWARE_BUFFER_ABI_H_
Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
// Copyright 2017 The Chromium Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
5+
#include "base/android/android_hardware_buffer_compat.h"
6+
7+
#include "base/android/build_info.h"
8+
#include "base/lazy_instance.h"
9+
#include "base/logging.h"
10+
11+
#include <dlfcn.h>
12+
13+
namespace base {
14+
15+
namespace {
16+
17+
static base::LazyInstance<AndroidHardwareBufferCompat>::Leaky g_compat =
18+
LAZY_INSTANCE_INITIALIZER;
19+
20+
} // namespace
21+
22+
AndroidHardwareBufferCompat::AndroidHardwareBufferCompat() {
23+
DCHECK(IsSupportAvailable());
24+
25+
// TODO(klausw): If the Chromium build requires __ANDROID_API__ >= 26 at some
26+
// point in the future, we could directly use the global functions instead of
27+
// dynamic loading. However, since this would be incompatible with pre-Oreo
28+
// devices, this is unlikely to happen in the foreseeable future, so just
29+
// unconditionally use dynamic loading.
30+
31+
// cf. base/android/linker/modern_linker_jni.cc
32+
void* main_dl_handle = dlopen(nullptr, RTLD_NOW);
33+
34+
*reinterpret_cast<void**>(&allocate_) =
35+
dlsym(main_dl_handle, "AHardwareBuffer_allocate");
36+
DCHECK(allocate_);
37+
38+
*reinterpret_cast<void**>(&acquire_) =
39+
dlsym(main_dl_handle, "AHardwareBuffer_acquire");
40+
DCHECK(acquire_);
41+
42+
*reinterpret_cast<void**>(&describe_) =
43+
dlsym(main_dl_handle, "AHardwareBuffer_describe");
44+
DCHECK(describe_);
45+
46+
*reinterpret_cast<void**>(&lock_) =
47+
dlsym(main_dl_handle, "AHardwareBuffer_lock");
48+
DCHECK(lock_);
49+
50+
*reinterpret_cast<void**>(&recv_handle_) =
51+
dlsym(main_dl_handle, "AHardwareBuffer_recvHandleFromUnixSocket");
52+
DCHECK(recv_handle_);
53+
54+
*reinterpret_cast<void**>(&release_) =
55+
dlsym(main_dl_handle, "AHardwareBuffer_release");
56+
DCHECK(release_);
57+
58+
*reinterpret_cast<void**>(&send_handle_) =
59+
dlsym(main_dl_handle, "AHardwareBuffer_sendHandleToUnixSocket");
60+
DCHECK(send_handle_);
61+
62+
*reinterpret_cast<void**>(&unlock_) =
63+
dlsym(main_dl_handle, "AHardwareBuffer_unlock");
64+
DCHECK(unlock_);
65+
}
66+
67+
// static
68+
bool AndroidHardwareBufferCompat::IsSupportAvailable() {
69+
return base::android::BuildInfo::GetInstance()->sdk_int() >=
70+
base::android::SDK_VERSION_OREO;
71+
}
72+
73+
// static
74+
AndroidHardwareBufferCompat AndroidHardwareBufferCompat::GetInstance() {
75+
return g_compat.Get();
76+
}
77+
78+
void AndroidHardwareBufferCompat::Allocate(const AHardwareBuffer_Desc* desc,
79+
AHardwareBuffer** out_buffer) {
80+
DCHECK(IsSupportAvailable());
81+
allocate_(desc, out_buffer);
82+
}
83+
84+
void AndroidHardwareBufferCompat::Acquire(AHardwareBuffer* buffer) {
85+
DCHECK(IsSupportAvailable());
86+
acquire_(buffer);
87+
}
88+
89+
void AndroidHardwareBufferCompat::Describe(const AHardwareBuffer* buffer,
90+
AHardwareBuffer_Desc* out_desc) {
91+
DCHECK(IsSupportAvailable());
92+
describe_(buffer, out_desc);
93+
}
94+
95+
int AndroidHardwareBufferCompat::Lock(AHardwareBuffer* buffer,
96+
uint64_t usage,
97+
int32_t fence,
98+
const ARect* rect,
99+
void** out_virtual_address) {
100+
DCHECK(IsSupportAvailable());
101+
return lock_(buffer, usage, fence, rect, out_virtual_address);
102+
}
103+
104+
int AndroidHardwareBufferCompat::RecvHandleFromUnixSocket(
105+
int socket_fd,
106+
AHardwareBuffer** out_buffer) {
107+
DCHECK(IsSupportAvailable());
108+
return recv_handle_(socket_fd, out_buffer);
109+
}
110+
111+
void AndroidHardwareBufferCompat::Release(AHardwareBuffer* buffer) {
112+
DCHECK(IsSupportAvailable());
113+
release_(buffer);
114+
}
115+
116+
int AndroidHardwareBufferCompat::SendHandleToUnixSocket(
117+
const AHardwareBuffer* buffer,
118+
int socket_fd) {
119+
DCHECK(IsSupportAvailable());
120+
return send_handle_(buffer, socket_fd);
121+
}
122+
123+
int AndroidHardwareBufferCompat::Unlock(AHardwareBuffer* buffer,
124+
int32_t* fence) {
125+
DCHECK(IsSupportAvailable());
126+
return unlock_(buffer, fence);
127+
}
128+
129+
} // namespace base
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
// Copyright 2017 The Chromium Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
5+
#ifndef BASE_ANDROID_ANDROID_HARDWARE_BUFFER_COMPAT_H_
6+
#define BASE_ANDROID_ANDROID_HARDWARE_BUFFER_COMPAT_H_
7+
8+
#include "base/android/android_hardware_buffer_abi.h"
9+
#include "base/base_export.h"
10+
#include "base/lazy_instance.h"
11+
12+
namespace base {
13+
14+
// This class provides runtime support for working with AHardwareBuffer objects
15+
// on Android O systems without requiring building for the Android O NDK level.
16+
// Don't call GetInstance() unless IsSupportAvailable() returns true.
17+
class BASE_EXPORT AndroidHardwareBufferCompat {
18+
public:
19+
static bool IsSupportAvailable();
20+
static AndroidHardwareBufferCompat GetInstance();
21+
22+
void Allocate(const AHardwareBuffer_Desc* desc, AHardwareBuffer** outBuffer);
23+
void Acquire(AHardwareBuffer* buffer);
24+
void Describe(const AHardwareBuffer* buffer, AHardwareBuffer_Desc* outDesc);
25+
int Lock(AHardwareBuffer* buffer,
26+
uint64_t usage,
27+
int32_t fence,
28+
const ARect* rect,
29+
void** out_virtual_address);
30+
int RecvHandleFromUnixSocket(int socketFd, AHardwareBuffer** outBuffer);
31+
void Release(AHardwareBuffer* buffer);
32+
int SendHandleToUnixSocket(const AHardwareBuffer* buffer, int socketFd);
33+
int Unlock(AHardwareBuffer* buffer, int32_t* fence);
34+
35+
private:
36+
friend struct base::LazyInstanceTraitsBase<AndroidHardwareBufferCompat>;
37+
AndroidHardwareBufferCompat();
38+
39+
PFAHardwareBuffer_allocate allocate_;
40+
PFAHardwareBuffer_acquire acquire_;
41+
PFAHardwareBuffer_describe describe_;
42+
PFAHardwareBuffer_lock lock_;
43+
PFAHardwareBuffer_recvHandleFromUnixSocket recv_handle_;
44+
PFAHardwareBuffer_release release_;
45+
PFAHardwareBuffer_sendHandleToUnixSocket send_handle_;
46+
PFAHardwareBuffer_unlock unlock_;
47+
};
48+
49+
} // namespace base
50+
51+
#endif // BASE_ANDROID_ANDROID_HARDWARE_BUFFER_COMPAT_H_
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
// Copyright 2018 The Chromium Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
5+
#ifndef BASE_ANDROID_ANDROID_IMAGE_READER_ABI_H_
6+
#define BASE_ANDROID_ANDROID_IMAGE_READER_ABI_H_
7+
8+
// Minimal binary interface definitions for AImage,AImageReader
9+
// and ANativeWindow based on include/media/NdkImage.h,
10+
// include/media/NdkImageReader.h and include/android/native_window_jni.h
11+
// from the Android NDK for platform level 26+. This is only
12+
// intended for use from the AndroidImageReader wrapper for building
13+
// without NDK platform level support, it is not a general-use header
14+
// and is not complete. Only the functions/data types which
15+
// are currently needed by media/gpu/android/image_reader_gl_owner.h are
16+
// included in this ABI
17+
//
18+
// Please refer to the API documentation for details:
19+
// https://developer.android.com/ndk/reference/group/media (AIMage and
20+
// AImageReader)
21+
// https://developer.android.com/ndk/reference/group/native-activity
22+
// (ANativeWindow)
23+
24+
#include <android/native_window.h>
25+
#include <media/NdkMediaError.h>
26+
27+
#include <jni.h>
28+
#include <stdint.h>
29+
30+
// Use "C" linkage to match the original header file. This isn't strictly
31+
// required since the file is not declaring global functions, but the types
32+
// should remain in the global namespace for compatibility, and it's a reminder
33+
// that forward declarations elsewhere should use "extern "C" to avoid
34+
// namespace issues.
35+
extern "C" {
36+
37+
// For AImage
38+
typedef struct AHardwareBuffer AHardwareBuffer;
39+
40+
typedef struct AImage AImage;
41+
42+
enum AIMAGE_FORMATS {
43+
AIMAGE_FORMAT_YUV_420_888 = 0x23,
44+
IMAGE_FORMAT_PRIVATE = 0x22
45+
};
46+
47+
using pAImage_delete = void (*)(AImage* image);
48+
49+
using pAImage_deleteAsync = void (*)(AImage* image, int releaseFenceFd);
50+
51+
using pAImage_getHardwareBuffer = media_status_t (*)(const AImage* image,
52+
AHardwareBuffer** buffer);
53+
54+
using pAImage_getWidth = media_status_t (*)(const AImage* image,
55+
int32_t* width);
56+
57+
using pAImage_getHeight = media_status_t (*)(const AImage* image,
58+
int32_t* height);
59+
60+
// For AImageReader
61+
62+
typedef struct AImageReader AImageReader;
63+
64+
typedef void (*AImageReader_ImageCallback)(void* context, AImageReader* reader);
65+
66+
typedef struct AImageReader_ImageListener {
67+
void* context;
68+
AImageReader_ImageCallback onImageAvailable;
69+
} AImageReader_ImageListener;
70+
71+
using pAImageReader_new = media_status_t (*)(int32_t width,
72+
int32_t height,
73+
int32_t format,
74+
int32_t maxImages,
75+
AImageReader** reader);
76+
77+
using pAImageReader_setImageListener =
78+
media_status_t (*)(AImageReader* reader,
79+
AImageReader_ImageListener* listener);
80+
81+
using pAImageReader_delete = void (*)(AImageReader* reader);
82+
83+
using pAImageReader_getWindow = media_status_t (*)(AImageReader* reader,
84+
ANativeWindow** window);
85+
86+
using pAImageReader_acquireLatestImageAsync =
87+
media_status_t (*)(AImageReader* reader,
88+
AImage** image,
89+
int* acquireFenceFd);
90+
91+
// For ANativeWindow
92+
using pANativeWindow_toSurface = jobject (*)(JNIEnv* env,
93+
ANativeWindow* window);
94+
95+
} // extern "C"
96+
97+
#endif // BASE_ANDROID_ANDROID_IMAGE_READER_ABI_H_

0 commit comments

Comments
 (0)