| /* |
| * Copyright (c) 2018 The Linux Foundation. All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions are |
| * met: |
| * * Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * * Redistributions in binary form must reproduce the above |
| * copyright notice, this list of conditions and the following |
| * disclaimer in the documentation and/or other materials provided |
| * with the distribution. |
| * * Neither the name of The Linux Foundation. nor the names of its |
| * contributors may be used to endorse or promote products derived |
| * from this software without specific prior written permission. |
| * |
| * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED |
| * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT |
| * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS |
| * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
| * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
| * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR |
| * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
| * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE |
| * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN |
| * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| */ |
| |
| package vendor.qti.hardware.display.mapper@1.0; |
| |
| import android.hardware.graphics.mapper@2.1; |
| |
| interface IQtiMapper extends IMapper { |
| |
| /* |
| * Check if the secure buffer can be mapped |
| */ |
| @callflow(next="*") |
| getMapSecureBufferFlag(pointer buffer) generates (Error error, bool mapSecureBuffer); |
| |
| /* |
| * Check if the buffer is interlaced |
| */ |
| @callflow(next="*") |
| getInterlacedFlag(pointer buffer) generates (Error error, bool interlaced); |
| |
| /* |
| * Get custom dimensions from handle |
| * Uses information in the metadata to return |
| * custom stride and height |
| */ |
| @callflow(next="*") |
| getCustomDimensions(pointer buffer) generates |
| (Error error, int32_t stride, int32_t height); |
| |
| /* |
| * Get RGB Data address |
| */ |
| @callflow(next="*") |
| getRgbDataAddress(pointer buffer) generates (Error error, pointer rgb_data); |
| |
| /* |
| * Calculate aligned width, aligned height and if UBWC is enabled from |
| * the given width, height, format and gralloc usage |
| */ |
| @callflow(next="*") |
| calculateBufferAttributes(int32_t width, int32_t height, int32_t format, uint64_t usage) |
| generates (Error error, int32_t aligned_width, int32_t aligned_height, bool ubwc_enabled); |
| |
| /* |
| * Gets the color space from the gralloc metadata |
| */ |
| @callflow(next="*") |
| getColorSpace(pointer buffer) generates (Error error, int32_t color_space); |
| |
| /* |
| * Get YUV plane info |
| * Returns a vector of YCbCrLayouts of size 2 |
| * The second member in the vector is populated if the buffer is interlaced |
| */ |
| @callflow(next="*") |
| getYuvPlaneInfo(pointer buffer) generates (Error error, vec<YCbCrLayout> layout); |
| |
| |
| /* |
| * Set Single buffer mode |
| */ |
| @callflow(next="*") |
| setSingleBufferMode(pointer buffer, bool enable) generates (Error error); |
| |
| /* |
| * Get custom format and private handle flags for a given combination of |
| * format and usage flags. |
| */ |
| @callflow(next="*") |
| getCustomFormatFlags(int32_t format, uint64_t usage) |
| generates (Error error, int32_t format, uint64_t priv_flags); |
| }; |
| |