Loading headers/media_plugin/media/drm/DrmAPI.h +3 −0 Original line number Diff line number Diff line Loading @@ -148,6 +148,9 @@ namespace android { enum SecurityLevel { // Failure to access security level, an error occurred kSecurityLevelUnknown, // The maximum security level of the device. This is the default when // a session is opened if no security level is specified kSecurityLevelMax, // Software-based whitebox crypto kSecurityLevelSwSecureCrypto, // Software-based whitebox crypto and an obfuscated decoder Loading include/audiomanager/IAudioManager.h +4 −84 Original line number Diff line number Diff line Loading @@ -32,90 +32,10 @@ public: // These transaction IDs must be kept in sync with the method order from // IAudioService.aidl. enum { // transaction IDs for the unsupported methods are commented out /* ADJUSTSUGGESTEDSTREAMVOLUME = IBinder::FIRST_CALL_TRANSACTION, ADJUSTSTREAMVOLUME = IBinder::FIRST_CALL_TRANSACTION + 1, SETSTREAMVOLUME = IBinder::FIRST_CALL_TRANSACTION + 2, ISSTREAMMUTE = IBinder::FIRST_CALL_TRANSACTION + 3, FORCEREMOTESUBMIXFULLVOLUME = IBinder::FIRST_CALL_TRANSACTION + 4, ISMASTERMUTE = IBinder::FIRST_CALL_TRANSACTION + 5, SETMASTERMUTE = IBinder::FIRST_CALL_TRANSACTION + 6, GETSTREAMVOLUME = IBinder::FIRST_CALL_TRANSACTION + 7, GETSTREAMMINVOLUME = IBinder::FIRST_CALL_TRANSACTION + 8, GETSTREAMMAXVOLUME = IBinder::FIRST_CALL_TRANSACTION + 9, GETLASTAUDIBLESTREAMVOLUME = IBinder::FIRST_CALL_TRANSACTION + 10, SETMICROPHONEMUTE = IBinder::FIRST_CALL_TRANSACTION + 11, SETRINGERMODEEXTERNAL = IBinder::FIRST_CALL_TRANSACTION + 12, SETRINGERMODEINTERNAL = IBinder::FIRST_CALL_TRANSACTION + 13, GETRINGERMODEEXTERNAL = IBinder::FIRST_CALL_TRANSACTION + 14, GETRINGERMODEINTERNAL = IBinder::FIRST_CALL_TRANSACTION + 15, ISVALIDRINGERMODE = IBinder::FIRST_CALL_TRANSACTION + 16, SETVIBRATESETTING = IBinder::FIRST_CALL_TRANSACTION + 17, GETVIBRATESETTING = IBinder::FIRST_CALL_TRANSACTION + 18, SHOULDVIBRATE = IBinder::FIRST_CALL_TRANSACTION + 19, SETMODE = IBinder::FIRST_CALL_TRANSACTION + 20, GETMODE = IBinder::FIRST_CALL_TRANSACTION + 21, PLAYSOUNDEFFECT = IBinder::FIRST_CALL_TRANSACTION + 22, PLAYSOUNDEFFECTVOLUME = IBinder::FIRST_CALL_TRANSACTION + 23, LOADSOUNDEFFECTS = IBinder::FIRST_CALL_TRANSACTION + 24, UNLOADSOUNDEFFECTS = IBinder::FIRST_CALL_TRANSACTION + 25, RELOADAUDIOSETTINGS = IBinder::FIRST_CALL_TRANSACTION + 26, AVRCPSUPPORTSABSOLUTEVOLUME = IBinder::FIRST_CALL_TRANSACTION + 27, SETSPEAKERPHONEON = IBinder::FIRST_CALL_TRANSACTION + 28, ISSPEAKERPHONEON = IBinder::FIRST_CALL_TRANSACTION + 29, SETBLUETOOTHSCOON = IBinder::FIRST_CALL_TRANSACTION + 30, ISBLUETOOTHSCOON = IBinder::FIRST_CALL_TRANSACTION + 31, SETBLUETOOTHA2DPON = IBinder::FIRST_CALL_TRANSACTION + 32, ISBLUETOOTHA2DPON = IBinder::FIRST_CALL_TRANSACTION + 33, REQUESTAUDIOFOCUS = IBinder::FIRST_CALL_TRANSACTION + 34, ABANDONAUDIOFOCUS = IBinder::FIRST_CALL_TRANSACTION + 35, UNREGISTERAUDIOFOCUSCLIENT = IBinder::FIRST_CALL_TRANSACTION + 36, GETCURRENTAUDIOFOCUS = IBinder::FIRST_CALL_TRANSACTION + 37, STARTBLUETOOTHSCO = IBinder::FIRST_CALL_TRANSACTION + 38, STARTBLUETOOTHSCOVIRTUALCALL = IBinder::FIRST_CALL_TRANSACTION + 39, STOPBLUETOOTHSCO = IBinder::FIRST_CALL_TRANSACTION + 40, FORCEVOLUMECONTROLSTREAM = IBinder::FIRST_CALL_TRANSACTION + 41, SETRINGTONEPLAYER = IBinder::FIRST_CALL_TRANSACTION + 42, GETRINGTONEPLAYER = IBinder::FIRST_CALL_TRANSACTION + 43, GETUISOUNDSSTREAMTYPE = IBinder::FIRST_CALL_TRANSACTION + 44, SETWIREDDEVICECONNECTIONSTATE = IBinder::FIRST_CALL_TRANSACTION + 45, SETBLUETOOTHA2DPDEVICECONNECTIONSTATE = IBinder::FIRST_CALL_TRANSACTION + 46, HANDLEBLUETOOTHA2DPDEVICECONFIGCHANGE = IBinder::FIRST_CALL_TRANSACTION + 47, STARTWATCHINGROUTES = IBinder::FIRST_CALL_TRANSACTION + 48, ISCAMERASOUNDFORCED = IBinder::FIRST_CALL_TRANSACTION + 49, SETVOLUMECONTROLLER = IBinder::FIRST_CALL_TRANSACTION + 50, NOTIFYVOLUMECONTROLLERVISIBLE = IBinder::FIRST_CALL_TRANSACTION + 51, ISSTREAMAFFECTEDBYRINGERMODE = IBinder::FIRST_CALL_TRANSACTION + 52, ISSTREAMAFFECTEDBYMUTE = IBinder::FIRST_CALL_TRANSACTION + 53, DISABLESAFEMEDIAVOLUME = IBinder::FIRST_CALL_TRANSACTION + 54, SETHDMISYSTEMAUDIOSUPPORTED = IBinder::FIRST_CALL_TRANSACTION + 55, ISHDMISYSTEMAUDIOSUPPORTED = IBinder::FIRST_CALL_TRANSACTION + 56, REGISTERAUDIOPOLICY = IBinder::FIRST_CALL_TRANSACTION + 57, UNREGISTERAUDIOPOLICYASYNC = IBinder::FIRST_CALL_TRANSACTION + 58, SETFOCUSPROPERTIESFORPOLICY = IBinder::FIRST_CALL_TRANSACTION + 59, SETVOLUMEPOLICY = IBinder::FIRST_CALL_TRANSACTION + 60, REGISTERRECORDINGCALLBACK = IBinder::FIRST_CALL_TRANSACTION + 61, UNREGISTERRECORDINGCALLBACK = IBinder::FIRST_CALL_TRANSACTION + 62, GETACTIVERECORDINGCONFIGURATIONS = IBinder::FIRST_CALL_TRANSACTION + 63, REGISTERPLAYBACKCALLBACK = IBinder::FIRST_CALL_TRANSACTION + 64, UNREGISTERPLAYBACKCALLBACK = IBinder::FIRST_CALL_TRANSACTION + 65, GETACTIVEPLAYBACKCONFIGURATIONS = IBinder::FIRST_CALL_TRANSACTION + 66, */ TRACK_PLAYER = IBinder::FIRST_CALL_TRANSACTION + 67, PLAYER_ATTRIBUTES = IBinder::FIRST_CALL_TRANSACTION + 68, PLAYER_EVENT = IBinder::FIRST_CALL_TRANSACTION + 69, RELEASE_PLAYER = IBinder::FIRST_CALL_TRANSACTION + 70, /* DISABLE_RINGTONE_SYNC = IBinder::FIRST_CALL_TRANSACTION + 71, GET_FOCUS_RAMP_TIME_MS = IBinder::FIRST_CALL_TRANSACTION + 72, DISPATCH_FOCUS_CHANGE = IBinder::FIRST_CALL_TRANSACTION + 73, PLAYER_HAS_OP_PLAY_AUDIO = IBinder::FIRST_CALL_TRANSACTION + 74, SET_BLUETOOTH_A2DP_DEVICE_CONNECTION_STATE_SUPPRESS_NOISY_INTENT = IBinder::FIRST_CALL_TRANSACTION + 75, */ TRACK_PLAYER = IBinder::FIRST_CALL_TRANSACTION, PLAYER_ATTRIBUTES = IBinder::FIRST_CALL_TRANSACTION + 1, PLAYER_EVENT = IBinder::FIRST_CALL_TRANSACTION + 2, RELEASE_PLAYER = IBinder::FIRST_CALL_TRANSACTION + 3, }; DECLARE_META_INTERFACE(AudioManager) Loading libs/gui/BufferQueueProducer.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -1331,6 +1331,7 @@ void BufferQueueProducer::allocateBuffers(uint32_t width, uint32_t height, uint32_t allocHeight = 0; PixelFormat allocFormat = PIXEL_FORMAT_UNKNOWN; uint64_t allocUsage = 0; std::string allocName; { // Autolock scope Mutex::Autolock lock(mCore->mMutex); mCore->waitWhileAllocatingLocked(); Loading @@ -1350,6 +1351,7 @@ void BufferQueueProducer::allocateBuffers(uint32_t width, uint32_t height, allocHeight = height > 0 ? height : mCore->mDefaultHeight; allocFormat = format != 0 ? format : mCore->mDefaultBufferFormat; allocUsage = usage | mCore->mConsumerUsageBits; allocName.assign(mCore->mConsumerName.string(), mCore->mConsumerName.size()); mCore->mIsAllocating = true; } // Autolock scope Loading @@ -1358,7 +1360,7 @@ void BufferQueueProducer::allocateBuffers(uint32_t width, uint32_t height, for (size_t i = 0; i < newBufferCount; ++i) { sp<GraphicBuffer> graphicBuffer = new GraphicBuffer( allocWidth, allocHeight, allocFormat, BQ_LAYER_COUNT, allocUsage, {mConsumerName.string(), mConsumerName.size()}); allocUsage, allocName); status_t result = graphicBuffer->initCheck(); Loading libs/gui/Surface.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -881,6 +881,10 @@ int Surface::query(int what, int* value) const { *value = mGraphicBufferProducer != nullptr ? 1 : 0; return NO_ERROR; } case NATIVE_WINDOW_DATASPACE: { *value = static_cast<int>(mDataSpace); return NO_ERROR; } } } return mGraphicBufferProducer->query(what, value); Loading libs/nativewindow/ANativeWindow.cpp +43 −4 Original line number Diff line number Diff line Loading @@ -33,6 +33,27 @@ static int32_t query(ANativeWindow* window, int what) { return res < 0 ? res : value; } static bool isDataSpaceValid(ANativeWindow* window, int32_t dataSpace) { bool supported = false; switch (dataSpace) { case HAL_DATASPACE_UNKNOWN: case HAL_DATASPACE_V0_SRGB: return true; // These data space need wide gamut support. case HAL_DATASPACE_V0_SCRGB_LINEAR: case HAL_DATASPACE_V0_SCRGB: case HAL_DATASPACE_DISPLAY_P3: native_window_get_wide_color_support(window, &supported); return supported; // These data space need HDR support. case HAL_DATASPACE_BT2020_PQ: native_window_get_hdr_support(window, &supported); return supported; default: return false; } } /************************************************************************************************** * NDK **************************************************************************************************/ Loading Loading @@ -101,6 +122,28 @@ int32_t ANativeWindow_setBuffersTransform(ANativeWindow* window, int32_t transfo return native_window_set_buffers_transform(window, transform); } int32_t ANativeWindow_setBuffersDataSpace(ANativeWindow* window, int32_t dataSpace) { static_assert(ADATASPACE_UNKNOWN == HAL_DATASPACE_UNKNOWN); static_assert(ADATASPACE_SCRGB_LINEAR == HAL_DATASPACE_V0_SCRGB_LINEAR); static_assert(ADATASPACE_SRGB == HAL_DATASPACE_V0_SRGB); static_assert(ADATASPACE_SCRGB == HAL_DATASPACE_V0_SCRGB); static_assert(ADATASPACE_DISPLAY_P3 == HAL_DATASPACE_DISPLAY_P3); static_assert(ADATASPACE_BT2020_PQ == HAL_DATASPACE_BT2020_PQ); if (!window || !query(window, NATIVE_WINDOW_IS_VALID) || !isDataSpaceValid(window, dataSpace)) { return -EINVAL; } return native_window_set_buffers_data_space(window, static_cast<android_dataspace_t>(dataSpace)); } int32_t ANativeWindow_getBuffersDataSpace(ANativeWindow* window) { if (!window || !query(window, NATIVE_WINDOW_IS_VALID)) return -EINVAL; return query(window, NATIVE_WINDOW_DATASPACE); } /************************************************************************************************** * vndk-stable **************************************************************************************************/ Loading Loading @@ -209,10 +252,6 @@ int ANativeWindow_setBuffersTimestamp(ANativeWindow* window, int64_t timestamp) return native_window_set_buffers_timestamp(window, timestamp); } int ANativeWindow_setBufferDataSpace(ANativeWindow* window, android_dataspace_t dataSpace) { return native_window_set_buffers_data_space(window, dataSpace); } int ANativeWindow_setSharedBufferMode(ANativeWindow* window, bool sharedBufferMode) { return native_window_set_shared_buffer_mode(window, sharedBufferMode); } Loading Loading
headers/media_plugin/media/drm/DrmAPI.h +3 −0 Original line number Diff line number Diff line Loading @@ -148,6 +148,9 @@ namespace android { enum SecurityLevel { // Failure to access security level, an error occurred kSecurityLevelUnknown, // The maximum security level of the device. This is the default when // a session is opened if no security level is specified kSecurityLevelMax, // Software-based whitebox crypto kSecurityLevelSwSecureCrypto, // Software-based whitebox crypto and an obfuscated decoder Loading
include/audiomanager/IAudioManager.h +4 −84 Original line number Diff line number Diff line Loading @@ -32,90 +32,10 @@ public: // These transaction IDs must be kept in sync with the method order from // IAudioService.aidl. enum { // transaction IDs for the unsupported methods are commented out /* ADJUSTSUGGESTEDSTREAMVOLUME = IBinder::FIRST_CALL_TRANSACTION, ADJUSTSTREAMVOLUME = IBinder::FIRST_CALL_TRANSACTION + 1, SETSTREAMVOLUME = IBinder::FIRST_CALL_TRANSACTION + 2, ISSTREAMMUTE = IBinder::FIRST_CALL_TRANSACTION + 3, FORCEREMOTESUBMIXFULLVOLUME = IBinder::FIRST_CALL_TRANSACTION + 4, ISMASTERMUTE = IBinder::FIRST_CALL_TRANSACTION + 5, SETMASTERMUTE = IBinder::FIRST_CALL_TRANSACTION + 6, GETSTREAMVOLUME = IBinder::FIRST_CALL_TRANSACTION + 7, GETSTREAMMINVOLUME = IBinder::FIRST_CALL_TRANSACTION + 8, GETSTREAMMAXVOLUME = IBinder::FIRST_CALL_TRANSACTION + 9, GETLASTAUDIBLESTREAMVOLUME = IBinder::FIRST_CALL_TRANSACTION + 10, SETMICROPHONEMUTE = IBinder::FIRST_CALL_TRANSACTION + 11, SETRINGERMODEEXTERNAL = IBinder::FIRST_CALL_TRANSACTION + 12, SETRINGERMODEINTERNAL = IBinder::FIRST_CALL_TRANSACTION + 13, GETRINGERMODEEXTERNAL = IBinder::FIRST_CALL_TRANSACTION + 14, GETRINGERMODEINTERNAL = IBinder::FIRST_CALL_TRANSACTION + 15, ISVALIDRINGERMODE = IBinder::FIRST_CALL_TRANSACTION + 16, SETVIBRATESETTING = IBinder::FIRST_CALL_TRANSACTION + 17, GETVIBRATESETTING = IBinder::FIRST_CALL_TRANSACTION + 18, SHOULDVIBRATE = IBinder::FIRST_CALL_TRANSACTION + 19, SETMODE = IBinder::FIRST_CALL_TRANSACTION + 20, GETMODE = IBinder::FIRST_CALL_TRANSACTION + 21, PLAYSOUNDEFFECT = IBinder::FIRST_CALL_TRANSACTION + 22, PLAYSOUNDEFFECTVOLUME = IBinder::FIRST_CALL_TRANSACTION + 23, LOADSOUNDEFFECTS = IBinder::FIRST_CALL_TRANSACTION + 24, UNLOADSOUNDEFFECTS = IBinder::FIRST_CALL_TRANSACTION + 25, RELOADAUDIOSETTINGS = IBinder::FIRST_CALL_TRANSACTION + 26, AVRCPSUPPORTSABSOLUTEVOLUME = IBinder::FIRST_CALL_TRANSACTION + 27, SETSPEAKERPHONEON = IBinder::FIRST_CALL_TRANSACTION + 28, ISSPEAKERPHONEON = IBinder::FIRST_CALL_TRANSACTION + 29, SETBLUETOOTHSCOON = IBinder::FIRST_CALL_TRANSACTION + 30, ISBLUETOOTHSCOON = IBinder::FIRST_CALL_TRANSACTION + 31, SETBLUETOOTHA2DPON = IBinder::FIRST_CALL_TRANSACTION + 32, ISBLUETOOTHA2DPON = IBinder::FIRST_CALL_TRANSACTION + 33, REQUESTAUDIOFOCUS = IBinder::FIRST_CALL_TRANSACTION + 34, ABANDONAUDIOFOCUS = IBinder::FIRST_CALL_TRANSACTION + 35, UNREGISTERAUDIOFOCUSCLIENT = IBinder::FIRST_CALL_TRANSACTION + 36, GETCURRENTAUDIOFOCUS = IBinder::FIRST_CALL_TRANSACTION + 37, STARTBLUETOOTHSCO = IBinder::FIRST_CALL_TRANSACTION + 38, STARTBLUETOOTHSCOVIRTUALCALL = IBinder::FIRST_CALL_TRANSACTION + 39, STOPBLUETOOTHSCO = IBinder::FIRST_CALL_TRANSACTION + 40, FORCEVOLUMECONTROLSTREAM = IBinder::FIRST_CALL_TRANSACTION + 41, SETRINGTONEPLAYER = IBinder::FIRST_CALL_TRANSACTION + 42, GETRINGTONEPLAYER = IBinder::FIRST_CALL_TRANSACTION + 43, GETUISOUNDSSTREAMTYPE = IBinder::FIRST_CALL_TRANSACTION + 44, SETWIREDDEVICECONNECTIONSTATE = IBinder::FIRST_CALL_TRANSACTION + 45, SETBLUETOOTHA2DPDEVICECONNECTIONSTATE = IBinder::FIRST_CALL_TRANSACTION + 46, HANDLEBLUETOOTHA2DPDEVICECONFIGCHANGE = IBinder::FIRST_CALL_TRANSACTION + 47, STARTWATCHINGROUTES = IBinder::FIRST_CALL_TRANSACTION + 48, ISCAMERASOUNDFORCED = IBinder::FIRST_CALL_TRANSACTION + 49, SETVOLUMECONTROLLER = IBinder::FIRST_CALL_TRANSACTION + 50, NOTIFYVOLUMECONTROLLERVISIBLE = IBinder::FIRST_CALL_TRANSACTION + 51, ISSTREAMAFFECTEDBYRINGERMODE = IBinder::FIRST_CALL_TRANSACTION + 52, ISSTREAMAFFECTEDBYMUTE = IBinder::FIRST_CALL_TRANSACTION + 53, DISABLESAFEMEDIAVOLUME = IBinder::FIRST_CALL_TRANSACTION + 54, SETHDMISYSTEMAUDIOSUPPORTED = IBinder::FIRST_CALL_TRANSACTION + 55, ISHDMISYSTEMAUDIOSUPPORTED = IBinder::FIRST_CALL_TRANSACTION + 56, REGISTERAUDIOPOLICY = IBinder::FIRST_CALL_TRANSACTION + 57, UNREGISTERAUDIOPOLICYASYNC = IBinder::FIRST_CALL_TRANSACTION + 58, SETFOCUSPROPERTIESFORPOLICY = IBinder::FIRST_CALL_TRANSACTION + 59, SETVOLUMEPOLICY = IBinder::FIRST_CALL_TRANSACTION + 60, REGISTERRECORDINGCALLBACK = IBinder::FIRST_CALL_TRANSACTION + 61, UNREGISTERRECORDINGCALLBACK = IBinder::FIRST_CALL_TRANSACTION + 62, GETACTIVERECORDINGCONFIGURATIONS = IBinder::FIRST_CALL_TRANSACTION + 63, REGISTERPLAYBACKCALLBACK = IBinder::FIRST_CALL_TRANSACTION + 64, UNREGISTERPLAYBACKCALLBACK = IBinder::FIRST_CALL_TRANSACTION + 65, GETACTIVEPLAYBACKCONFIGURATIONS = IBinder::FIRST_CALL_TRANSACTION + 66, */ TRACK_PLAYER = IBinder::FIRST_CALL_TRANSACTION + 67, PLAYER_ATTRIBUTES = IBinder::FIRST_CALL_TRANSACTION + 68, PLAYER_EVENT = IBinder::FIRST_CALL_TRANSACTION + 69, RELEASE_PLAYER = IBinder::FIRST_CALL_TRANSACTION + 70, /* DISABLE_RINGTONE_SYNC = IBinder::FIRST_CALL_TRANSACTION + 71, GET_FOCUS_RAMP_TIME_MS = IBinder::FIRST_CALL_TRANSACTION + 72, DISPATCH_FOCUS_CHANGE = IBinder::FIRST_CALL_TRANSACTION + 73, PLAYER_HAS_OP_PLAY_AUDIO = IBinder::FIRST_CALL_TRANSACTION + 74, SET_BLUETOOTH_A2DP_DEVICE_CONNECTION_STATE_SUPPRESS_NOISY_INTENT = IBinder::FIRST_CALL_TRANSACTION + 75, */ TRACK_PLAYER = IBinder::FIRST_CALL_TRANSACTION, PLAYER_ATTRIBUTES = IBinder::FIRST_CALL_TRANSACTION + 1, PLAYER_EVENT = IBinder::FIRST_CALL_TRANSACTION + 2, RELEASE_PLAYER = IBinder::FIRST_CALL_TRANSACTION + 3, }; DECLARE_META_INTERFACE(AudioManager) Loading
libs/gui/BufferQueueProducer.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -1331,6 +1331,7 @@ void BufferQueueProducer::allocateBuffers(uint32_t width, uint32_t height, uint32_t allocHeight = 0; PixelFormat allocFormat = PIXEL_FORMAT_UNKNOWN; uint64_t allocUsage = 0; std::string allocName; { // Autolock scope Mutex::Autolock lock(mCore->mMutex); mCore->waitWhileAllocatingLocked(); Loading @@ -1350,6 +1351,7 @@ void BufferQueueProducer::allocateBuffers(uint32_t width, uint32_t height, allocHeight = height > 0 ? height : mCore->mDefaultHeight; allocFormat = format != 0 ? format : mCore->mDefaultBufferFormat; allocUsage = usage | mCore->mConsumerUsageBits; allocName.assign(mCore->mConsumerName.string(), mCore->mConsumerName.size()); mCore->mIsAllocating = true; } // Autolock scope Loading @@ -1358,7 +1360,7 @@ void BufferQueueProducer::allocateBuffers(uint32_t width, uint32_t height, for (size_t i = 0; i < newBufferCount; ++i) { sp<GraphicBuffer> graphicBuffer = new GraphicBuffer( allocWidth, allocHeight, allocFormat, BQ_LAYER_COUNT, allocUsage, {mConsumerName.string(), mConsumerName.size()}); allocUsage, allocName); status_t result = graphicBuffer->initCheck(); Loading
libs/gui/Surface.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -881,6 +881,10 @@ int Surface::query(int what, int* value) const { *value = mGraphicBufferProducer != nullptr ? 1 : 0; return NO_ERROR; } case NATIVE_WINDOW_DATASPACE: { *value = static_cast<int>(mDataSpace); return NO_ERROR; } } } return mGraphicBufferProducer->query(what, value); Loading
libs/nativewindow/ANativeWindow.cpp +43 −4 Original line number Diff line number Diff line Loading @@ -33,6 +33,27 @@ static int32_t query(ANativeWindow* window, int what) { return res < 0 ? res : value; } static bool isDataSpaceValid(ANativeWindow* window, int32_t dataSpace) { bool supported = false; switch (dataSpace) { case HAL_DATASPACE_UNKNOWN: case HAL_DATASPACE_V0_SRGB: return true; // These data space need wide gamut support. case HAL_DATASPACE_V0_SCRGB_LINEAR: case HAL_DATASPACE_V0_SCRGB: case HAL_DATASPACE_DISPLAY_P3: native_window_get_wide_color_support(window, &supported); return supported; // These data space need HDR support. case HAL_DATASPACE_BT2020_PQ: native_window_get_hdr_support(window, &supported); return supported; default: return false; } } /************************************************************************************************** * NDK **************************************************************************************************/ Loading Loading @@ -101,6 +122,28 @@ int32_t ANativeWindow_setBuffersTransform(ANativeWindow* window, int32_t transfo return native_window_set_buffers_transform(window, transform); } int32_t ANativeWindow_setBuffersDataSpace(ANativeWindow* window, int32_t dataSpace) { static_assert(ADATASPACE_UNKNOWN == HAL_DATASPACE_UNKNOWN); static_assert(ADATASPACE_SCRGB_LINEAR == HAL_DATASPACE_V0_SCRGB_LINEAR); static_assert(ADATASPACE_SRGB == HAL_DATASPACE_V0_SRGB); static_assert(ADATASPACE_SCRGB == HAL_DATASPACE_V0_SCRGB); static_assert(ADATASPACE_DISPLAY_P3 == HAL_DATASPACE_DISPLAY_P3); static_assert(ADATASPACE_BT2020_PQ == HAL_DATASPACE_BT2020_PQ); if (!window || !query(window, NATIVE_WINDOW_IS_VALID) || !isDataSpaceValid(window, dataSpace)) { return -EINVAL; } return native_window_set_buffers_data_space(window, static_cast<android_dataspace_t>(dataSpace)); } int32_t ANativeWindow_getBuffersDataSpace(ANativeWindow* window) { if (!window || !query(window, NATIVE_WINDOW_IS_VALID)) return -EINVAL; return query(window, NATIVE_WINDOW_DATASPACE); } /************************************************************************************************** * vndk-stable **************************************************************************************************/ Loading Loading @@ -209,10 +252,6 @@ int ANativeWindow_setBuffersTimestamp(ANativeWindow* window, int64_t timestamp) return native_window_set_buffers_timestamp(window, timestamp); } int ANativeWindow_setBufferDataSpace(ANativeWindow* window, android_dataspace_t dataSpace) { return native_window_set_buffers_data_space(window, dataSpace); } int ANativeWindow_setSharedBufferMode(ANativeWindow* window, bool sharedBufferMode) { return native_window_set_shared_buffer_mode(window, sharedBufferMode); } Loading