Home | History | Annotate | Download | only in jni

Lines Matching refs:buffer

84     void returnLockedBuffer(CpuConsumer::LockedBuffer* buffer);
120 CpuConsumer::LockedBuffer *buffer = new CpuConsumer::LockedBuffer;
121 mBuffers.push_back(buffer);
156 CpuConsumer::LockedBuffer* buffer = *it;
158 return buffer;
161 void JNIImageReaderContext::returnLockedBuffer(CpuConsumer::LockedBuffer* buffer) {
162 mBuffers.push_back(buffer);
258 const CpuConsumer::LockedBuffer* buffer)
260 env->SetLongField(thiz, gSurfaceImageClassInfo.mLockedBuffer, reinterpret_cast<jlong>(buffer));
292 static uint32_t Image_getJpegSize(CpuConsumer::LockedBuffer* buffer)
294 ALOG_ASSERT(buffer != NULL, "Input buffer is NULL!!!");
296 uint32_t width = buffer->width;
297 uint8_t* jpegBuffer = buffer->data;
299 // First check for JPEG transport header at the end of the buffer
307 // failed to find size, default to whole buffer
315 static void Image_getLockedBufferInfo(JNIEnv* env, CpuConsumer::LockedBuffer* buffer, int idx,
318 ALOG_ASSERT(buffer != NULL, "Input buffer is NULL!!!");
323 ALOGV("%s: buffer: %p", __FUNCTION__, buffer);
331 int32_t fmt = buffer->format;
336 buffer->data :
338 buffer->dataCb :
339 buffer->dataCr;
341 dataSize = buffer->stride * buffer->height;
343 dataSize = buffer->chromaStride * buffer->height / 2;
348 cr = buffer->data + (buffer->stride * buffer->height);
350 ySize = buffer->width * buffer->height;
351 cSize = buffer->width * buffer->height / 2;
355 buffer->data :
364 LOG_ALWAYS_FATAL_IF(buffer->stride % 16,
365 "Stride is not 16 pixel aligned %d", buffer->stride);
367 ySize = buffer->stride * buffer->height;
368 cStride = ALIGN(buffer->stride / 2, 16);
369 cr = buffer->data + ySize;
370 cSize = cStride * buffer->height / 2;
375 buffer->data :
385 pData = buffer->data;
386 dataSize = buffer->stride * buffer->height;
392 pData = buffer->data;
393 dataSize = buffer->stride * buffer->height * 2;
398 ALOG_ASSERT(buffer->height == 1, "JPEG should has height value %d", buffer->height);
400 pData = buffer->data;
401 dataSize = Image_getJpegSize(buffer);
406 pData = buffer->data;
407 dataSize = buffer->width * 2 * buffer->height;
414 pData = buffer->data;
415 dataSize = buffer->stride * buffer->height * bytesPerPixel;
421 pData = buffer->data;
422 dataSize = buffer->stride * buffer->height * bytesPerPixel;
428 pData = buffer->data;
429 dataSize = buffer->stride * buffer->height * bytesPerPixel;
441 static jint Image_imageGetPixelStride(JNIEnv* env, CpuConsumer::LockedBuffer* buffer, int idx)
443 ALOGV("%s: buffer index: %d", __FUNCTION__, idx);
447 ALOG_ASSERT(buffer != NULL, "buffer is NULL");
449 int32_t fmt = buffer->format;
452 pixelStride = (idx == 0) ? 1 : buffer->chromaStep;
496 static jint Image_imageGetRowStride(JNIEnv* env, CpuConsumer::LockedBuffer* buffer, int idx)
498 ALOGV("%s: buffer index: %d", __FUNCTION__, idx);
502 ALOG_ASSERT(buffer != NULL, "buffer is NULL");
504 buffer->format;
508 rowStride = (idx == 0) ? buffer->stride : buffer->chromaStride;
511 rowStride = buffer->width;
514 LOG_ALWAYS_FATAL_IF(buffer->stride % 16,
515 "Stride is not 16 pixel aligned %d", buffer->stride);
516 rowStride = (idx == 0) ? buffer->stride : ALIGN(buffer->stride / 2, 16);
525 LOG_ALWAYS_FATAL_IF(buffer->stride % 16,
526 "Stride is not 16 pixel aligned %d", buffer->stride);
527 rowStride = buffer->stride;
535 LOG_ALWAYS_FATAL_IF(buffer->stride % 16,
536 "Stride is not 16 pixel aligned %d", buffer->stride);
537 rowStride = buffer->stride * 2;
541 rowStride = buffer->stride * 2;
546 rowStride = buffer->stride * 4;
551 rowStride = buffer->stride * 3;
556 "unsupported buffer format");
643 "Failed to set CpuConsumer buffer size");
649 "Failed to set CpuConsumer buffer format");
681 CpuConsumer::LockedBuffer* buffer = Image_getLockedBuffer(env, image);
682 if (!buffer) {
686 consumer->unlockBuffer(*buffer);
688 ctx->returnLockedBuffer(buffer);
702 CpuConsumer::LockedBuffer* buffer = ctx->getLockedBuffer();
703 if (buffer == NULL) {
708 status_t res = consumer->lockNextBuffer(buffer);
717 "Unknown error (%d) when we tried to lock buffer.",
724 if (buffer->format == HAL_PIXEL_FORMAT_YCrCb_420_SP) {
732 Point lt = buffer->crop.leftTop();
739 // Check if the producer buffer configurations match what ImageReader configured.
741 int outputWidth = buffer->width;
742 int outputHeight = buffer->height;
745 if (!buffer->crop.isEmpty()) {
746 outputWidth = buffer->crop.getWidth();
747 outputHeight = buffer->crop.getHeight();
752 if ((buffer->format != HAL_PIXEL_FORMAT_BLOB) &&
755 * For video decoder, the buffer height is actually the vertical stride,
759 * check. Right now, only make sure buffer height is no less than ImageReader
763 "Producer buffer size: %dx%d, doesn't match ImageReader configured size: %dx%d",
768 if (ctx->getBufferFormat() != buffer->format) {
769 // Return the buffer to the queue.
770 consumer->unlockBuffer(*buffer);
771 ctx->returnLockedBuffer(buffer);
774 ALOGE("Producer output buffer format: 0x%x, ImageReader configured format: 0x%x",
775 buffer->format, ctx->getBufferFormat());
777 msg.appendFormat("The producer output buffer format 0x%x doesn't "
778 "match the ImageReader's configured buffer format 0x%x.",
779 buffer->format, ctx->getBufferFormat());
785 Image_setBuffer(env, image, buffer);
787 static_cast<jlong>(buffer->timestamp));
809 ALOGV("%s: buffer index: %d", __FUNCTION__, idx);
811 CpuConsumer::LockedBuffer* buffer = Image_getLockedBuffer(env, thiz);
813 ALOG_ASSERT(buffer != NULL);
814 if (buffer == NULL) {
817 rowStride = Image_imageGetRowStride(env, buffer, idx);
818 pixelStride = Image_imageGetPixelStride(env, buffer, idx);
832 ALOGV("%s: buffer index: %d", __FUNCTION__, idx);
834 CpuConsumer::LockedBuffer* buffer = Image_getLockedBuffer(env, thiz);
836 if (buffer == NULL) {
840 // Create byteBuffer from native buffer
841 Image_getLockedBufferInfo(env, buffer, idx, &base, &size);