Loading libs/ui/BufferHubBuffer.cpp +13 −15 Original line number Original line Diff line number Diff line Loading @@ -95,22 +95,21 @@ LocalChannelHandle BufferHubClient::TakeChannelHandle() { BufferHubBuffer::BufferHubBuffer(uint32_t width, uint32_t height, uint32_t layerCount, BufferHubBuffer::BufferHubBuffer(uint32_t width, uint32_t height, uint32_t layerCount, uint32_t format, uint64_t usage, size_t mUserMetadataSize) { uint32_t format, uint64_t usage, size_t mUserMetadataSize) { ATRACE_CALL(); ATRACE_CALL(); ALOGD("BufferHubBuffer::BufferHubBuffer: width=%u height=%u layerCount=%u, format=%u " ALOGD("%s: width=%u height=%u layerCount=%u, format=%u usage=%" PRIx64 " mUserMetadataSize=%zu", "usage=%" PRIx64 " mUserMetadataSize=%zu", __FUNCTION__, width, height, layerCount, format, usage, mUserMetadataSize); width, height, layerCount, format, usage, mUserMetadataSize); auto status = auto status = mClient.InvokeRemoteMethod<DetachedBufferRPC::Create>(width, height, layerCount, format, mClient.InvokeRemoteMethod<DetachedBufferRPC::Create>(width, height, layerCount, format, usage, mUserMetadataSize); usage, mUserMetadataSize); if (!status) { if (!status) { ALOGE("BufferHubBuffer::BufferHubBuffer: Failed to create detached buffer: %s", ALOGE("%s: Failed to create detached buffer: %s", __FUNCTION__, status.GetErrorMessage().c_str()); status.GetErrorMessage().c_str()); mClient.Close(-status.error()); mClient.Close(-status.error()); } } const int ret = ImportGraphicBuffer(); const int ret = ImportGraphicBuffer(); if (ret < 0) { if (ret < 0) { ALOGE("BufferHubBuffer::BufferHubBuffer: Failed to import buffer: %s", strerror(-ret)); ALOGE("%s: Failed to import buffer: %s", __FUNCTION__, strerror(-ret)); mClient.Close(ret); mClient.Close(ret); } } } } Loading @@ -119,7 +118,7 @@ BufferHubBuffer::BufferHubBuffer(LocalChannelHandle mChannelHandle) : mClient(std::move(mChannelHandle)) { : mClient(std::move(mChannelHandle)) { const int ret = ImportGraphicBuffer(); const int ret = ImportGraphicBuffer(); if (ret < 0) { if (ret < 0) { ALOGE("BufferHubBuffer::BufferHubBuffer: Failed to import buffer: %s", strerror(-ret)); ALOGE("%s: Failed to import buffer: %s", __FUNCTION__, strerror(-ret)); mClient.Close(ret); mClient.Close(ret); } } } } Loading @@ -129,14 +128,14 @@ int BufferHubBuffer::ImportGraphicBuffer() { auto status = mClient.InvokeRemoteMethod<DetachedBufferRPC::Import>(); auto status = mClient.InvokeRemoteMethod<DetachedBufferRPC::Import>(); if (!status) { if (!status) { ALOGE("BufferHubBuffer::BufferHubBuffer: Failed to import GraphicBuffer: %s", ALOGE("%s: Failed to import GraphicBuffer: %s", __FUNCTION__, status.GetErrorMessage().c_str()); status.GetErrorMessage().c_str()); return -status.error(); return -status.error(); } } BufferTraits<LocalHandle> bufferTraits = status.take(); BufferTraits<LocalHandle> bufferTraits = status.take(); if (bufferTraits.id() < 0) { if (bufferTraits.id() < 0) { ALOGE("BufferHubBuffer::BufferHubBuffer: Received an invalid id!"); ALOGE("%s: Received an invalid id!", __FUNCTION__); return -EIO; return -EIO; } } Loading @@ -149,20 +148,19 @@ int BufferHubBuffer::ImportGraphicBuffer() { mMetadata = BufferHubMetadata::Import(std::move(metadataFd)); mMetadata = BufferHubMetadata::Import(std::move(metadataFd)); if (!mMetadata.IsValid()) { if (!mMetadata.IsValid()) { ALOGE("BufferHubBuffer::ImportGraphicBuffer: invalid metadata."); ALOGE("%s: invalid metadata.", __FUNCTION__); return -ENOMEM; return -ENOMEM; } } if (mMetadata.metadata_size() != bufferTraits.metadata_size()) { if (mMetadata.metadata_size() != bufferTraits.metadata_size()) { ALOGE("BufferHubBuffer::ImportGraphicBuffer: metadata buffer too small: " ALOGE("%s: metadata buffer too small: %zu, expected: %" PRIu64 ".", __FUNCTION__, "%zu, expected: %" PRIu64 ".", mMetadata.metadata_size(), bufferTraits.metadata_size()); mMetadata.metadata_size(), bufferTraits.metadata_size()); return -ENOMEM; return -ENOMEM; } } size_t metadataSize = static_cast<size_t>(bufferTraits.metadata_size()); size_t metadataSize = static_cast<size_t>(bufferTraits.metadata_size()); if (metadataSize < BufferHubDefs::kMetadataHeaderSize) { if (metadataSize < BufferHubDefs::kMetadataHeaderSize) { ALOGE("BufferHubBuffer::ImportGraphicBuffer: metadata too small: %zu", metadataSize); ALOGE("%s: metadata too small: %zu", __FUNCTION__, metadataSize); return -EINVAL; return -EINVAL; } } Loading Loading @@ -191,7 +189,7 @@ int BufferHubBuffer::ImportGraphicBuffer() { mClientStateMask = bufferTraits.client_state_mask(); mClientStateMask = bufferTraits.client_state_mask(); // TODO(b/112012161) Set up shared fences. // TODO(b/112012161) Set up shared fences. ALOGD("BufferHubBuffer::ImportGraphicBuffer: id=%d, buffer_state=%" PRIx32 ".", id(), ALOGD("%s: id=%d, buffer_state=%" PRIx32 ".", __FUNCTION__, id(), buffer_state_->load(std::memory_order_acquire)); buffer_state_->load(std::memory_order_acquire)); return 0; return 0; } } Loading Loading @@ -291,12 +289,12 @@ int BufferHubBuffer::Poll(int timeoutMs) { Status<LocalChannelHandle> BufferHubBuffer::Duplicate() { Status<LocalChannelHandle> BufferHubBuffer::Duplicate() { ATRACE_CALL(); ATRACE_CALL(); ALOGD("BufferHubBuffer::Duplicate: id=%d.", mId); ALOGD("%s: id=%d.", __FUNCTION__, mId); auto statusOrHandle = mClient.InvokeRemoteMethod<DetachedBufferRPC::Duplicate>(); auto statusOrHandle = mClient.InvokeRemoteMethod<DetachedBufferRPC::Duplicate>(); if (!statusOrHandle.ok()) { if (!statusOrHandle.ok()) { ALOGE("BufferHubBuffer::Duplicate: Failed to duplicate buffer (id=%d): %s.", mId, ALOGE("%s: Failed to duplicate buffer (id=%d): %s.", __FUNCTION__, mId, statusOrHandle.GetErrorMessage().c_str()); statusOrHandle.GetErrorMessage().c_str()); } } return statusOrHandle; return statusOrHandle; Loading Loading
libs/ui/BufferHubBuffer.cpp +13 −15 Original line number Original line Diff line number Diff line Loading @@ -95,22 +95,21 @@ LocalChannelHandle BufferHubClient::TakeChannelHandle() { BufferHubBuffer::BufferHubBuffer(uint32_t width, uint32_t height, uint32_t layerCount, BufferHubBuffer::BufferHubBuffer(uint32_t width, uint32_t height, uint32_t layerCount, uint32_t format, uint64_t usage, size_t mUserMetadataSize) { uint32_t format, uint64_t usage, size_t mUserMetadataSize) { ATRACE_CALL(); ATRACE_CALL(); ALOGD("BufferHubBuffer::BufferHubBuffer: width=%u height=%u layerCount=%u, format=%u " ALOGD("%s: width=%u height=%u layerCount=%u, format=%u usage=%" PRIx64 " mUserMetadataSize=%zu", "usage=%" PRIx64 " mUserMetadataSize=%zu", __FUNCTION__, width, height, layerCount, format, usage, mUserMetadataSize); width, height, layerCount, format, usage, mUserMetadataSize); auto status = auto status = mClient.InvokeRemoteMethod<DetachedBufferRPC::Create>(width, height, layerCount, format, mClient.InvokeRemoteMethod<DetachedBufferRPC::Create>(width, height, layerCount, format, usage, mUserMetadataSize); usage, mUserMetadataSize); if (!status) { if (!status) { ALOGE("BufferHubBuffer::BufferHubBuffer: Failed to create detached buffer: %s", ALOGE("%s: Failed to create detached buffer: %s", __FUNCTION__, status.GetErrorMessage().c_str()); status.GetErrorMessage().c_str()); mClient.Close(-status.error()); mClient.Close(-status.error()); } } const int ret = ImportGraphicBuffer(); const int ret = ImportGraphicBuffer(); if (ret < 0) { if (ret < 0) { ALOGE("BufferHubBuffer::BufferHubBuffer: Failed to import buffer: %s", strerror(-ret)); ALOGE("%s: Failed to import buffer: %s", __FUNCTION__, strerror(-ret)); mClient.Close(ret); mClient.Close(ret); } } } } Loading @@ -119,7 +118,7 @@ BufferHubBuffer::BufferHubBuffer(LocalChannelHandle mChannelHandle) : mClient(std::move(mChannelHandle)) { : mClient(std::move(mChannelHandle)) { const int ret = ImportGraphicBuffer(); const int ret = ImportGraphicBuffer(); if (ret < 0) { if (ret < 0) { ALOGE("BufferHubBuffer::BufferHubBuffer: Failed to import buffer: %s", strerror(-ret)); ALOGE("%s: Failed to import buffer: %s", __FUNCTION__, strerror(-ret)); mClient.Close(ret); mClient.Close(ret); } } } } Loading @@ -129,14 +128,14 @@ int BufferHubBuffer::ImportGraphicBuffer() { auto status = mClient.InvokeRemoteMethod<DetachedBufferRPC::Import>(); auto status = mClient.InvokeRemoteMethod<DetachedBufferRPC::Import>(); if (!status) { if (!status) { ALOGE("BufferHubBuffer::BufferHubBuffer: Failed to import GraphicBuffer: %s", ALOGE("%s: Failed to import GraphicBuffer: %s", __FUNCTION__, status.GetErrorMessage().c_str()); status.GetErrorMessage().c_str()); return -status.error(); return -status.error(); } } BufferTraits<LocalHandle> bufferTraits = status.take(); BufferTraits<LocalHandle> bufferTraits = status.take(); if (bufferTraits.id() < 0) { if (bufferTraits.id() < 0) { ALOGE("BufferHubBuffer::BufferHubBuffer: Received an invalid id!"); ALOGE("%s: Received an invalid id!", __FUNCTION__); return -EIO; return -EIO; } } Loading @@ -149,20 +148,19 @@ int BufferHubBuffer::ImportGraphicBuffer() { mMetadata = BufferHubMetadata::Import(std::move(metadataFd)); mMetadata = BufferHubMetadata::Import(std::move(metadataFd)); if (!mMetadata.IsValid()) { if (!mMetadata.IsValid()) { ALOGE("BufferHubBuffer::ImportGraphicBuffer: invalid metadata."); ALOGE("%s: invalid metadata.", __FUNCTION__); return -ENOMEM; return -ENOMEM; } } if (mMetadata.metadata_size() != bufferTraits.metadata_size()) { if (mMetadata.metadata_size() != bufferTraits.metadata_size()) { ALOGE("BufferHubBuffer::ImportGraphicBuffer: metadata buffer too small: " ALOGE("%s: metadata buffer too small: %zu, expected: %" PRIu64 ".", __FUNCTION__, "%zu, expected: %" PRIu64 ".", mMetadata.metadata_size(), bufferTraits.metadata_size()); mMetadata.metadata_size(), bufferTraits.metadata_size()); return -ENOMEM; return -ENOMEM; } } size_t metadataSize = static_cast<size_t>(bufferTraits.metadata_size()); size_t metadataSize = static_cast<size_t>(bufferTraits.metadata_size()); if (metadataSize < BufferHubDefs::kMetadataHeaderSize) { if (metadataSize < BufferHubDefs::kMetadataHeaderSize) { ALOGE("BufferHubBuffer::ImportGraphicBuffer: metadata too small: %zu", metadataSize); ALOGE("%s: metadata too small: %zu", __FUNCTION__, metadataSize); return -EINVAL; return -EINVAL; } } Loading Loading @@ -191,7 +189,7 @@ int BufferHubBuffer::ImportGraphicBuffer() { mClientStateMask = bufferTraits.client_state_mask(); mClientStateMask = bufferTraits.client_state_mask(); // TODO(b/112012161) Set up shared fences. // TODO(b/112012161) Set up shared fences. ALOGD("BufferHubBuffer::ImportGraphicBuffer: id=%d, buffer_state=%" PRIx32 ".", id(), ALOGD("%s: id=%d, buffer_state=%" PRIx32 ".", __FUNCTION__, id(), buffer_state_->load(std::memory_order_acquire)); buffer_state_->load(std::memory_order_acquire)); return 0; return 0; } } Loading Loading @@ -291,12 +289,12 @@ int BufferHubBuffer::Poll(int timeoutMs) { Status<LocalChannelHandle> BufferHubBuffer::Duplicate() { Status<LocalChannelHandle> BufferHubBuffer::Duplicate() { ATRACE_CALL(); ATRACE_CALL(); ALOGD("BufferHubBuffer::Duplicate: id=%d.", mId); ALOGD("%s: id=%d.", __FUNCTION__, mId); auto statusOrHandle = mClient.InvokeRemoteMethod<DetachedBufferRPC::Duplicate>(); auto statusOrHandle = mClient.InvokeRemoteMethod<DetachedBufferRPC::Duplicate>(); if (!statusOrHandle.ok()) { if (!statusOrHandle.ok()) { ALOGE("BufferHubBuffer::Duplicate: Failed to duplicate buffer (id=%d): %s.", mId, ALOGE("%s: Failed to duplicate buffer (id=%d): %s.", __FUNCTION__, mId, statusOrHandle.GetErrorMessage().c_str()); statusOrHandle.GetErrorMessage().c_str()); } } return statusOrHandle; return statusOrHandle; Loading