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

Commit 34beb7a0 authored by Peiyong Lin's avatar Peiyong Lin
Browse files

[SurfaceFlinger] Replace android_dataspace with Dataspace.

This patch replaces all android_dataspace in SurfaceFlinger with Dataspace
V1.1. 3 commands in sequence are used to do the conversion:

find ./ -type f -exec sed -i -e 's/android_dataspace_t/Dataspace/g' {} \;
find ./ -type f -exec sed -i -e 's/android_dataspace/Dataspace/g' {} \;
find ./ -type f -exec sed -i -e 's/HAL_DATASPACE_/Dataspace::/g' {} \;

With some minor tweak because most of the APIs in frameworks/native are still
accepting android_dataspace/android_dataspace_t.

Next step is to convert the rest of android_dataspace usage to Dataspace in
frameworks/native as well as frameworks/base.

BUG: 77156734
Test: Build and flash
Change-Id: I2304c7014cb49a1c9f67c4563603fb55e8dbd679
parent 0cab4a53
Loading
Loading
Loading
Loading
+8 −7
Original line number Original line Diff line number Diff line
@@ -45,6 +45,7 @@
namespace android {
namespace android {


using ui::ColorMode;
using ui::ColorMode;
using ui::Dataspace;


Surface::Surface(const sp<IGraphicBufferProducer>& bufferProducer, bool controlledByApp)
Surface::Surface(const sp<IGraphicBufferProducer>& bufferProducer, bool controlledByApp)
      : mGraphicBufferProducer(bufferProducer),
      : mGraphicBufferProducer(bufferProducer),
@@ -80,7 +81,7 @@ Surface::Surface(const sp<IGraphicBufferProducer>& bufferProducer, bool controll
    mReqFormat = 0;
    mReqFormat = 0;
    mReqUsage = 0;
    mReqUsage = 0;
    mTimestamp = NATIVE_WINDOW_TIMESTAMP_AUTO;
    mTimestamp = NATIVE_WINDOW_TIMESTAMP_AUTO;
    mDataSpace = HAL_DATASPACE_UNKNOWN;
    mDataSpace = Dataspace::UNKNOWN;
    mScalingMode = NATIVE_WINDOW_SCALING_MODE_FREEZE;
    mScalingMode = NATIVE_WINDOW_SCALING_MODE_FREEZE;
    mTransform = 0;
    mTransform = 0;
    mStickyTransform = 0;
    mStickyTransform = 0;
@@ -666,8 +667,9 @@ int Surface::queueBuffer(android_native_buffer_t* buffer, int fenceFd) {
    sp<Fence> fence(fenceFd >= 0 ? new Fence(fenceFd) : Fence::NO_FENCE);
    sp<Fence> fence(fenceFd >= 0 ? new Fence(fenceFd) : Fence::NO_FENCE);
    IGraphicBufferProducer::QueueBufferOutput output;
    IGraphicBufferProducer::QueueBufferOutput output;
    IGraphicBufferProducer::QueueBufferInput input(timestamp, isAutoTimestamp,
    IGraphicBufferProducer::QueueBufferInput input(timestamp, isAutoTimestamp,
            mDataSpace, crop, mScalingMode, mTransform ^ mStickyTransform,
            static_cast<android_dataspace>(mDataSpace), crop, mScalingMode,
            fence, mStickyTransform, mEnableFrameTimestamps);
            mTransform ^ mStickyTransform, fence, mStickyTransform,
            mEnableFrameTimestamps);


    // we should send HDR metadata as needed if this becomes a bottleneck
    // we should send HDR metadata as needed if this becomes a bottleneck
    input.setHdrMetadata(mHdrMetadata);
    input.setHdrMetadata(mHdrMetadata);
@@ -1098,8 +1100,7 @@ int Surface::dispatchSetSidebandStream(va_list args) {
}
}


int Surface::dispatchSetBuffersDataSpace(va_list args) {
int Surface::dispatchSetBuffersDataSpace(va_list args) {
    android_dataspace dataspace =
    Dataspace dataspace = static_cast<Dataspace>(va_arg(args, int));
            static_cast<android_dataspace>(va_arg(args, int));
    return setBuffersDataSpace(dataspace);
    return setBuffersDataSpace(dataspace);
}
}


@@ -1531,7 +1532,7 @@ int Surface::setBuffersTimestamp(int64_t timestamp)
    return NO_ERROR;
    return NO_ERROR;
}
}


int Surface::setBuffersDataSpace(android_dataspace dataSpace)
int Surface::setBuffersDataSpace(Dataspace dataSpace)
{
{
    ALOGV("Surface::setBuffersDataSpace");
    ALOGV("Surface::setBuffersDataSpace");
    Mutex::Autolock lock(mMutex);
    Mutex::Autolock lock(mMutex);
@@ -1563,7 +1564,7 @@ int Surface::setBuffersCta8613Metadata(const android_cta861_3_metadata* metadata
    return NO_ERROR;
    return NO_ERROR;
}
}


android_dataspace_t Surface::getBuffersDataSpace() {
Dataspace Surface::getBuffersDataSpace() {
    ALOGV("Surface::getBuffersDataSpace");
    ALOGV("Surface::getBuffersDataSpace");
    Mutex::Autolock lock(mMutex);
    Mutex::Autolock lock(mMutex);
    return mDataSpace;
    return mDataSpace;
+5 −4
Original line number Original line Diff line number Diff line
@@ -22,6 +22,7 @@
#include <gui/IGraphicBufferProducer.h>
#include <gui/IGraphicBufferProducer.h>


#include <ui/ANativeObjectBase.h>
#include <ui/ANativeObjectBase.h>
#include <ui/GraphicTypes.h>
#include <ui/Region.h>
#include <ui/Region.h>


#include <utils/Condition.h>
#include <utils/Condition.h>
@@ -245,7 +246,7 @@ protected:
    virtual int setBuffersTransform(uint32_t transform);
    virtual int setBuffersTransform(uint32_t transform);
    virtual int setBuffersStickyTransform(uint32_t transform);
    virtual int setBuffersStickyTransform(uint32_t transform);
    virtual int setBuffersTimestamp(int64_t timestamp);
    virtual int setBuffersTimestamp(int64_t timestamp);
    virtual int setBuffersDataSpace(android_dataspace dataSpace);
    virtual int setBuffersDataSpace(ui::Dataspace dataSpace);
    virtual int setBuffersSmpte2086Metadata(const android_smpte2086_metadata* metadata);
    virtual int setBuffersSmpte2086Metadata(const android_smpte2086_metadata* metadata);
    virtual int setBuffersCta8613Metadata(const android_cta861_3_metadata* metadata);
    virtual int setBuffersCta8613Metadata(const android_cta861_3_metadata* metadata);
    virtual int setCrop(Rect const* rect);
    virtual int setCrop(Rect const* rect);
@@ -286,7 +287,7 @@ public:
    // detachNextBuffer, or attachBuffer call.
    // detachNextBuffer, or attachBuffer call.
    status_t getAndFlushRemovedBuffers(std::vector<sp<GraphicBuffer>>* out);
    status_t getAndFlushRemovedBuffers(std::vector<sp<GraphicBuffer>>* out);


    android_dataspace_t getBuffersDataSpace();
    ui::Dataspace getBuffersDataSpace();


    static status_t attachAndQueueBuffer(Surface* surface, sp<GraphicBuffer> buffer);
    static status_t attachAndQueueBuffer(Surface* surface, sp<GraphicBuffer> buffer);


@@ -340,9 +341,9 @@ protected:
    int64_t mTimestamp;
    int64_t mTimestamp;


    // mDataSpace is the buffer dataSpace that will be used for the next buffer
    // mDataSpace is the buffer dataSpace that will be used for the next buffer
    // queue operation. It defaults to HAL_DATASPACE_UNKNOWN, which
    // queue operation. It defaults to Dataspace::UNKNOWN, which
    // means that the buffer contains some type of color data.
    // means that the buffer contains some type of color data.
    android_dataspace mDataSpace;
    ui::Dataspace mDataSpace;


    // mHdrMetadata is the HDR metadata that will be used for the next buffer
    // mHdrMetadata is the HDR metadata that will be used for the next buffer
    // queue operation.  There is no HDR metadata by default.
    // queue operation.  There is no HDR metadata by default.
+2 −0
Original line number Original line Diff line number Diff line
@@ -25,6 +25,8 @@ namespace android {
namespace ui {
namespace ui {


using android::hardware::graphics::common::V1_0::ColorMode;
using android::hardware::graphics::common::V1_0::ColorMode;
using android::hardware::graphics::common::V1_1::Dataspace;
using android::hardware::graphics::common::V1_1::PixelFormat;


}  // namespace ui
}  // namespace ui
}  // namespace android
}  // namespace android
+1 −1
Original line number Original line Diff line number Diff line
@@ -829,7 +829,7 @@ void BufferLayer::drawWithOpenGL(const RenderArea& renderArea, bool useIdentityT
                              getColor());
                              getColor());
    engine.setSourceDataSpace(mCurrentState.dataSpace);
    engine.setSourceDataSpace(mCurrentState.dataSpace);


    if (mCurrentState.dataSpace == HAL_DATASPACE_BT2020_ITU_PQ &&
    if (mCurrentState.dataSpace == ui::Dataspace::BT2020_ITU_PQ &&
        mConsumer->getCurrentApi() == NATIVE_WINDOW_API_MEDIA &&
        mConsumer->getCurrentApi() == NATIVE_WINDOW_API_MEDIA &&
        getBE().compositionInfo.mBuffer->getPixelFormat() == HAL_PIXEL_FORMAT_RGBA_1010102) {
        getBE().compositionInfo.mBuffer->getPixelFormat() == HAL_PIXEL_FORMAT_RGBA_1010102) {
        engine.setSourceY410BT2020(true);
        engine.setSourceY410BT2020(true);
+3 −3
Original line number Original line Diff line number Diff line
@@ -65,7 +65,7 @@ BufferLayerConsumer::BufferLayerConsumer(const sp<IGraphicBufferConsumer>& bq,
        mCurrentScalingMode(NATIVE_WINDOW_SCALING_MODE_FREEZE),
        mCurrentScalingMode(NATIVE_WINDOW_SCALING_MODE_FREEZE),
        mCurrentFence(Fence::NO_FENCE),
        mCurrentFence(Fence::NO_FENCE),
        mCurrentTimestamp(0),
        mCurrentTimestamp(0),
        mCurrentDataSpace(HAL_DATASPACE_UNKNOWN),
        mCurrentDataSpace(ui::Dataspace::UNKNOWN),
        mCurrentFrameNumber(0),
        mCurrentFrameNumber(0),
        mCurrentTransformToDisplayInverse(false),
        mCurrentTransformToDisplayInverse(false),
        mCurrentSurfaceDamage(),
        mCurrentSurfaceDamage(),
@@ -341,7 +341,7 @@ status_t BufferLayerConsumer::updateAndReleaseLocked(const BufferItem& item,
    mCurrentTransform = item.mTransform;
    mCurrentTransform = item.mTransform;
    mCurrentScalingMode = item.mScalingMode;
    mCurrentScalingMode = item.mScalingMode;
    mCurrentTimestamp = item.mTimestamp;
    mCurrentTimestamp = item.mTimestamp;
    mCurrentDataSpace = item.mDataSpace;
    mCurrentDataSpace = static_cast<ui::Dataspace>(item.mDataSpace);
    mCurrentHdrMetadata = item.mHdrMetadata;
    mCurrentHdrMetadata = item.mHdrMetadata;
    mCurrentFence = item.mFence;
    mCurrentFence = item.mFence;
    mCurrentFenceTime = item.mFenceTime;
    mCurrentFenceTime = item.mFenceTime;
@@ -445,7 +445,7 @@ nsecs_t BufferLayerConsumer::getTimestamp() {
    return mCurrentTimestamp;
    return mCurrentTimestamp;
}
}


android_dataspace BufferLayerConsumer::getCurrentDataSpace() {
ui::Dataspace BufferLayerConsumer::getCurrentDataSpace() {
    BLC_LOGV("getCurrentDataSpace");
    BLC_LOGV("getCurrentDataSpace");
    Mutex::Autolock lock(mMutex);
    Mutex::Autolock lock(mMutex);
    return mCurrentDataSpace;
    return mCurrentDataSpace;
Loading