Lines Matching refs:buffer
64 MediaBuffer *buffer = new MediaBuffer(mem);
65 buffer->getSharedControl()->clear();
66 add_buffer(buffer);
73 MediaBuffer *buffer = new MediaBuffer(buffer_size);
74 if (buffer->data() == nullptr) {
75 delete buffer; // don't call release, it's not properly formed
79 add_buffer(buffer);
84 for (MediaBuffer *buffer : mBuffers) {
85 if (buffer->refcount() != 0) {
86 const int localRefcount = buffer->localRefcount();
87 const int remoteRefcount = buffer->remoteRefcount();
91 "buffer(%p) localRefcount %d != 0, remoteRefcount %d",
92 buffer, localRefcount, remoteRefcount);
99 ALOGE("buffer(%p) has residual remoteRefcount %d",
100 buffer, remoteRefcount);
103 buffer->setObserver(nullptr);
104 buffer->release();
108 void MediaBufferGroup::add_buffer(MediaBuffer *buffer) {
125 buffer->setObserver(this);
126 mBuffers.emplace_back(buffer);
133 for (MediaBuffer *buffer : mBuffers) {
134 if (buffer->refcount() == 0) {
146 MediaBuffer *buffer = nullptr;
152 buffer = *it;
161 if (buffer == nullptr
166 buffer = new MediaBuffer(allocateSize);
167 if (buffer->data() == nullptr) {
169 delete buffer; // Invalid alloc, prefer not to call release.
170 buffer = nullptr;
172 buffer->setObserver(this);
174 ALOGV("reallocate buffer, requested size %zu vs available %zu",
178 *free = buffer; // in-place replace
180 ALOGV("allocate buffer, requested size %zu", requestedSize);
181 mBuffers.emplace_back(buffer);
185 if (buffer != nullptr) {
186 buffer->add_ref();
187 buffer->reset();
188 *out = buffer;