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

Commit 866abc15 authored by Jason Macnak's avatar Jason Macnak
Browse files

Support P010 with Gralloc2 on Gralloc1 passthrough

... by updating the toYCbCrLayout function to more closely follow
the requirements found in the comments of `android_flex_plane_t`.

Bug: b/244411455
Test: untested.
Change-Id: I1173253e25583336bf480160d4f6ac9f72882971
parent 0068fccb
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -259,19 +259,22 @@ class Gralloc1HalImpl : public Hal {

        for (int i = 0; i < 3; i++) {
            const auto& plane = flex.planes[i];
            // must have 8-bit depth
            if (plane.bits_per_component != 8 || plane.bits_used != 8) {
            // Must be a positive multiple of 8.
            if (plane.bits_per_component <= 0 || (plane.bits_per_component % 8) != 0) {
                return false;
            }
            // Must be between 1 and bits_per_component, inclusive.
            if (plane.bits_used < 1 || plane.bits_used > plane.bits_per_component) {
                return false;
            }

            if (plane.component == FLEX_COMPONENT_Y) {
                // Y must not be interleaved
                if (plane.h_increment != 1) {
                if (plane.h_increment != 1 && plane.h_increment != 2) {
                    return false;
                }
            } else {
                // Cb and Cr can be interleaved
                if (plane.h_increment != 1 && plane.h_increment != 2) {
                if (plane.h_increment != 1 && plane.h_increment != 2 && plane.h_increment != 4) {
                    return false;
                }
            }