blob: 8022524605687d1cb9d752a874cf269cc3d93365 [file] [log] [blame]
/*
* 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);
};