mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 05:49:27 +00:00
Merge changes from topic "bufferpool2-V2" into main
* changes: media.c2 aidl: Use bufferpool2 V2 media.bufferpool2: support AHardwareBuffer based buffer
This commit is contained in:
@@ -26,6 +26,9 @@ aidl_interface {
|
||||
vendor_available: true,
|
||||
double_loadable: true,
|
||||
srcs: ["android/hardware/media/bufferpool2/*.aidl"],
|
||||
headers: [
|
||||
"HardwareBuffer_aidl",
|
||||
],
|
||||
imports: [
|
||||
"android.hardware.common-V2",
|
||||
"android.hardware.common.fmq-V1",
|
||||
@@ -44,10 +47,13 @@ aidl_interface {
|
||||
"//apex_available:platform",
|
||||
"com.android.media.swcodec",
|
||||
],
|
||||
additional_shared_libraries: [
|
||||
"libnativewindow",
|
||||
],
|
||||
min_sdk_version: "29",
|
||||
},
|
||||
rust: {
|
||||
enabled: true,
|
||||
enabled: false,
|
||||
},
|
||||
},
|
||||
versions_with_info: [
|
||||
@@ -59,6 +65,6 @@ aidl_interface {
|
||||
],
|
||||
},
|
||||
],
|
||||
frozen: true,
|
||||
frozen: false,
|
||||
|
||||
}
|
||||
|
||||
@@ -35,5 +35,6 @@ package android.hardware.media.bufferpool2;
|
||||
@VintfStability
|
||||
parcelable Buffer {
|
||||
int id;
|
||||
android.hardware.common.NativeHandle buffer;
|
||||
@nullable android.hardware.common.NativeHandle buffer;
|
||||
@nullable android.hardware.HardwareBuffer hwbBuffer;
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package android.hardware.media.bufferpool2;
|
||||
|
||||
import android.hardware.common.NativeHandle;
|
||||
import android.hardware.HardwareBuffer;
|
||||
|
||||
/**
|
||||
* Generic buffer for fast recycling for media/stagefright.
|
||||
@@ -26,10 +27,14 @@ import android.hardware.common.NativeHandle;
|
||||
* by a buffer pool, and are recycled to the buffer pool when they are
|
||||
* no longer referenced by the clients.
|
||||
*
|
||||
* Initially all buffers in media HAL should be NativeHandle(actually native_handle_t).
|
||||
* HardwareBuffer(actually AHardwareBuffer) for GraphicBuffer is added from V2.
|
||||
*
|
||||
* E.g. ion or gralloc buffer
|
||||
*/
|
||||
@VintfStability
|
||||
parcelable Buffer {
|
||||
int id;
|
||||
NativeHandle buffer;
|
||||
@nullable NativeHandle buffer;
|
||||
@nullable HardwareBuffer hwbBuffer;
|
||||
}
|
||||
|
||||
@@ -33,15 +33,16 @@ cc_library {
|
||||
"libcutils",
|
||||
"libfmq",
|
||||
"liblog",
|
||||
"libnativewindow",
|
||||
"libutils",
|
||||
"android.hardware.media.bufferpool2-V1-ndk",
|
||||
"android.hardware.media.bufferpool2-V2-ndk",
|
||||
],
|
||||
static_libs: [
|
||||
"libaidlcommonsupport",
|
||||
],
|
||||
export_shared_lib_headers: [
|
||||
"libfmq",
|
||||
"android.hardware.media.bufferpool2-V1-ndk",
|
||||
"android.hardware.media.bufferpool2-V2-ndk",
|
||||
],
|
||||
double_loadable: true,
|
||||
cflags: [
|
||||
|
||||
@@ -757,7 +757,13 @@ BufferPoolStatus BufferPoolClient::Impl::fetchBufferHandle(
|
||||
return svcSpecific ? svcSpecific : ResultStatus::CRITICAL_ERROR;
|
||||
}
|
||||
if (results[0].getTag() == FetchResult::buffer) {
|
||||
*handle = ::android::dupFromAidl(results[0].get<FetchResult::buffer>().buffer);
|
||||
if (results[0].get<FetchResult::buffer>().buffer.has_value()) {
|
||||
*handle = ::android::dupFromAidl(results[0].get<FetchResult::buffer>().buffer.value());
|
||||
} else {
|
||||
// TODO: Support HardwareBuffer
|
||||
ALOGW("handle nullptr");
|
||||
*handle = nullptr;
|
||||
}
|
||||
return ResultStatus::OK;
|
||||
}
|
||||
return results[0].get<FetchResult::failure>();
|
||||
|
||||
@@ -36,8 +36,9 @@ cc_test {
|
||||
"libcutils",
|
||||
"libfmq",
|
||||
"liblog",
|
||||
"libnativewindow",
|
||||
"libutils",
|
||||
"android.hardware.media.bufferpool2-V1-ndk",
|
||||
"android.hardware.media.bufferpool2-V2-ndk",
|
||||
],
|
||||
static_libs: [
|
||||
"libaidlcommonsupport",
|
||||
@@ -59,8 +60,9 @@ cc_test {
|
||||
"libcutils",
|
||||
"libfmq",
|
||||
"liblog",
|
||||
"libnativewindow",
|
||||
"libutils",
|
||||
"android.hardware.media.bufferpool2-V1-ndk",
|
||||
"android.hardware.media.bufferpool2-V2-ndk",
|
||||
],
|
||||
static_libs: [
|
||||
"libaidlcommonsupport",
|
||||
@@ -82,8 +84,9 @@ cc_test {
|
||||
"libcutils",
|
||||
"libfmq",
|
||||
"liblog",
|
||||
"libnativewindow",
|
||||
"libutils",
|
||||
"android.hardware.media.bufferpool2-V1-ndk",
|
||||
"android.hardware.media.bufferpool2-V2-ndk",
|
||||
],
|
||||
static_libs: [
|
||||
"libaidlcommonsupport",
|
||||
|
||||
@@ -20,7 +20,7 @@ aidl_interface {
|
||||
],
|
||||
imports: [
|
||||
"android.hardware.common-V2",
|
||||
"android.hardware.media.bufferpool2-V1",
|
||||
"android.hardware.media.bufferpool2-V2",
|
||||
],
|
||||
include_dirs: [
|
||||
"frameworks/native/aidl/gui",
|
||||
|
||||
Reference in New Issue
Block a user