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

Commit 04b5d667 authored by Sungtak Lee's avatar Sungtak Lee Committed by Gerrit Code Review
Browse files

Merge changes from topic "bufferpool2-V2" into main

* changes:
  media.c2 aidl: Use bufferpool2 V2
  media.bufferpool2: support AHardwareBuffer based buffer
parents 78265377 f36c31c9
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -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,

}
+2 −1
Original line number Diff line number Diff line
@@ -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;
}
+6 −1
Original line number Diff line number Diff line
@@ -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;
}
+3 −2
Original line number Diff line number Diff line
@@ -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: [
+7 −1
Original line number Diff line number Diff line
@@ -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>();
Loading