Lines Matching refs:slot
47 status_t BufferHubProducer::requestBuffer(int slot, sp<GraphicBuffer>* buf) { in requestBuffer() argument
48 ALOGV("requestBuffer: slot=%d", slot); in requestBuffer()
57 if (slot < 0 || slot >= max_buffer_count_) { in requestBuffer()
58 ALOGE("requestBuffer: slot index %d out of range [0, %d)", slot, max_buffer_count_); in requestBuffer()
60 } else if (!buffers_[slot].mBufferState.isDequeued()) { in requestBuffer()
61 ALOGE("requestBuffer: slot %d is not owned by the producer (state = %s)", slot, in requestBuffer()
62 buffers_[slot].mBufferState.string()); in requestBuffer()
64 } else if (buffers_[slot].mGraphicBuffer != nullptr) { in requestBuffer()
65 ALOGE("requestBuffer: slot %d is not empty.", slot); in requestBuffer()
67 } else if (buffers_[slot].mProducerBuffer == nullptr) { in requestBuffer()
68 ALOGE("requestBuffer: slot %d is not dequeued.", slot); in requestBuffer()
72 const auto& producer_buffer = buffers_[slot].mProducerBuffer; in requestBuffer()
75 buffers_[slot].mGraphicBuffer = graphic_buffer; in requestBuffer()
76 buffers_[slot].mRequestBufferCalled = true; in requestBuffer()
160 size_t slot = 0; in dequeueBuffer() local
165 auto buffer_status = queue_->Dequeue(dequeue_timeout_ms_, &slot, &fence); in dequeueBuffer()
182 width, height, format, slot, producer_buffer->width(), producer_buffer->height(), in dequeueBuffer()
186 buffers_[slot].mIsReallocating = true; in dequeueBuffer()
190 RemoveBuffer(slot); in dequeueBuffer()
205 LOG_ALWAYS_FATAL_IF((!buffers_[slot].mBufferState.isFree() && in dequeueBuffer()
206 !buffers_[slot].mBufferState.isQueued()), in dequeueBuffer()
207 "dequeueBuffer: slot %zu is not free or queued, actual state: %s.", slot, in dequeueBuffer()
208 buffers_[slot].mBufferState.string()); in dequeueBuffer()
210 buffers_[slot].mBufferState.freeQueued(); in dequeueBuffer()
211 buffers_[slot].mBufferState.dequeue(); in dequeueBuffer()
212 ALOGV("dequeueBuffer: slot=%zu", slot); in dequeueBuffer()
217 *out_slot = int(slot); in dequeueBuffer()
220 if (buffers_[slot].mIsReallocating) { in dequeueBuffer()
222 buffers_[slot].mIsReallocating = false; in dequeueBuffer()
228 status_t BufferHubProducer::detachBuffer(int slot) { in detachBuffer() argument
229 ALOGV("detachBuffer: slot=%d", slot); in detachBuffer()
232 return DetachBufferLocked(static_cast<size_t>(slot)); in detachBuffer()
235 status_t BufferHubProducer::DetachBufferLocked(size_t slot) { in DetachBufferLocked() argument
241 if (slot >= static_cast<size_t>(max_buffer_count_)) { in DetachBufferLocked()
242 ALOGE("detachBuffer: slot index %zu out of range [0, %d)", slot, max_buffer_count_); in DetachBufferLocked()
244 } else if (!buffers_[slot].mBufferState.isDequeued()) { in DetachBufferLocked()
245 ALOGE("detachBuffer: slot %zu is not owned by the producer (state = %s)", slot, in DetachBufferLocked()
246 buffers_[slot].mBufferState.string()); in DetachBufferLocked()
248 } else if (!buffers_[slot].mRequestBufferCalled) { in DetachBufferLocked()
249 ALOGE("detachBuffer: buffer in slot %zu has not been requested", slot); in DetachBufferLocked()
252 std::shared_ptr<ProducerBuffer> producer_buffer = queue_->GetBuffer(slot); in DetachBufferLocked()
254 ALOGE("detachBuffer: Invalid ProducerBuffer at slot %zu.", slot); in DetachBufferLocked()
259 ALOGE("detachBuffer: Invalid GraphicBuffer at slot %zu.", slot); in DetachBufferLocked()
264 status_t error = RemoveBuffer(slot); in DetachBufferLocked()
266 ALOGE("detachBuffer: Failed to remove buffer, slot=%zu, error=%d.", slot, error); in DetachBufferLocked()
274 ALOGE("detachBuffer: Failed to detach from a ProducerBuffer at slot %zu, error=%d.", slot, in DetachBufferLocked()
308 size_t slot = 0; in detachNextBuffer() local
313 auto status_or_buffer = queue_->Dequeue(/*timeout=*/0, &slot, &fence); in detachNextBuffer()
329 if (!buffers_[slot].mBufferState.isFree() && !buffers_[slot].mBufferState.isQueued()) { in detachNextBuffer()
330 ALOGE("detachNextBuffer: slot %zu is not free or queued, actual state: %s.", slot, in detachNextBuffer()
331 buffers_[slot].mBufferState.string()); in detachNextBuffer()
334 if (buffers_[slot].mProducerBuffer == nullptr) { in detachNextBuffer()
335 ALOGE("detachNextBuffer: ProducerBuffer at slot %zu is null.", slot); in detachNextBuffer()
338 if (buffers_[slot].mProducerBuffer->id() != producer_buffer->id()) { in detachNextBuffer()
341 slot, buffers_[slot].mProducerBuffer->id(), producer_buffer->id()); in detachNextBuffer()
345 ALOGV("detachNextBuffer: slot=%zu", slot); in detachNextBuffer()
346 buffers_[slot].mBufferState.freeQueued(); in detachNextBuffer()
347 buffers_[slot].mBufferState.dequeue(); in detachNextBuffer()
351 buffers_[slot].mGraphicBuffer = producer_buffer->buffer()->buffer(); in detachNextBuffer()
354 status_t error = DetachBufferLocked(slot); in detachNextBuffer()
397 status_t BufferHubProducer::queueBuffer(int slot, const QueueBufferInput& input, in queueBuffer() argument
399 ALOGV("queueBuffer: slot %d", slot); in queueBuffer()
441 if (slot < 0 || slot >= max_buffer_count_) { in queueBuffer()
442 ALOGE("queueBuffer: slot index %d out of range [0, %d)", slot, max_buffer_count_); in queueBuffer()
444 } else if (!buffers_[slot].mBufferState.isDequeued()) { in queueBuffer()
445 ALOGE("queueBuffer: slot %d is not owned by the producer (state = %s)", slot, in queueBuffer()
446 buffers_[slot].mBufferState.string()); in queueBuffer()
448 } else if ((!buffers_[slot].mRequestBufferCalled || buffers_[slot].mGraphicBuffer == nullptr)) { in queueBuffer()
451 slot, buffers_[slot].mRequestBufferCalled, buffers_[slot].mGraphicBuffer.get()); in queueBuffer()
456 const auto& producer_buffer = buffers_[slot].mProducerBuffer; in queueBuffer()
463 ALOGE("queueBuffer: slot %d has out-of-boundary crop.", slot); in queueBuffer()
481 buffers_[slot].mBufferState.queue(); in queueBuffer()
500 status_t BufferHubProducer::cancelBuffer(int slot, const sp<Fence>& fence) { in cancelBuffer() argument
510 if (slot < 0 || slot >= max_buffer_count_) { in cancelBuffer()
511 ALOGE("cancelBuffer: slot index %d out of range [0, %d)", slot, max_buffer_count_); in cancelBuffer()
513 } else if (!buffers_[slot].mBufferState.isDequeued()) { in cancelBuffer()
514 ALOGE("cancelBuffer: slot %d is not owned by the producer (state = %s)", slot, in cancelBuffer()
515 buffers_[slot].mBufferState.string()); in cancelBuffer()
522 auto producer_buffer = buffers_[slot].mProducerBuffer; in cancelBuffer()
523 queue_->Enqueue(producer_buffer, size_t(slot), 0U); in cancelBuffer()
524 buffers_[slot].mBufferState.cancel(); in cancelBuffer()
525 buffers_[slot].mFence = fence; in cancelBuffer()
526 ALOGV("cancelBuffer: slot %d", slot); in cancelBuffer()
793 size_t slot = status.get(); in AllocateBuffer() local
794 auto producer_buffer = queue_->GetBuffer(slot); in AllocateBuffer()
797 "Failed to get the producer buffer at slot: %zu", slot); in AllocateBuffer()
799 buffers_[slot].mProducerBuffer = producer_buffer; in AllocateBuffer()
804 status_t BufferHubProducer::RemoveBuffer(size_t slot) { in RemoveBuffer() argument
805 auto status = queue_->RemoveBuffer(slot); in RemoveBuffer()
808 slot, status.GetErrorMessage().c_str()); in RemoveBuffer()
813 buffers_[slot].mProducerBuffer = nullptr; in RemoveBuffer()
814 buffers_[slot].mBufferState.detachProducer(); in RemoveBuffer()
815 buffers_[slot].mFence = Fence::NO_FENCE; in RemoveBuffer()
816 buffers_[slot].mGraphicBuffer = nullptr; in RemoveBuffer()
817 buffers_[slot].mRequestBufferCalled = false; in RemoveBuffer()
822 for (size_t slot = 0; slot < BufferHubQueue::kMaxQueueCapacity; slot++) { in FreeAllBuffers() local
824 buffers_[slot].mProducerBuffer = nullptr; in FreeAllBuffers()
825 buffers_[slot].mBufferState.reset(); in FreeAllBuffers()
826 buffers_[slot].mFence = Fence::NO_FENCE; in FreeAllBuffers()
827 buffers_[slot].mGraphicBuffer = nullptr; in FreeAllBuffers()
828 buffers_[slot].mRequestBufferCalled = false; in FreeAllBuffers()