Home | History | Annotate | Download | only in jni

Lines Matching refs:buffer

87     void returnLockedBuffer(CpuConsumer::LockedBuffer* buffer);
123 CpuConsumer::LockedBuffer *buffer = new CpuConsumer::LockedBuffer;
124 mBuffers.push_back(buffer);
159 CpuConsumer::LockedBuffer* buffer = *it;
161 return buffer;
164 void JNIImageReaderContext::returnLockedBuffer(CpuConsumer::LockedBuffer* buffer) {
165 mBuffers.push_back(buffer);
261 const CpuConsumer::LockedBuffer* buffer)
263 env->SetLongField(thiz, gSurfaceImageClassInfo.mLockedBuffer, reinterpret_cast<jlong>(buffer));
289 static uint32_t Image_getJpegSize(CpuConsumer::LockedBuffer* buffer, bool usingRGBAOverride)
291 ALOG_ASSERT(buffer != NULL, "Input buffer is NULL!!!");
293 uint32_t width = buffer->width;
294 uint8_t* jpegBuffer = buffer->data;
297 width = (buffer->width + buffer->stride * (buffer->height - 1)) * 4;
300 // First check for JPEG transport header at the end of the buffer
308 // failed to find size, default to whole buffer
338 static void Image_getLockedBufferInfo(JNIEnv* env, CpuConsumer::LockedBuffer* buffer, int idx,
341 ALOG_ASSERT(buffer != NULL, "Input buffer is NULL!!!");
346 ALOGV("%s: buffer: %p", __FUNCTION__, buffer);
354 int32_t fmt = buffer->format;
362 buffer->data :
364 buffer->dataCb :
365 buffer->dataCr;
367 dataSize = buffer->stride * buffer->height;
369 dataSize = buffer->chromaStride * buffer->height / 2;
374 cr = buffer->data + (buffer->stride * buffer->height);
376 ySize = buffer->width * buffer->height;
377 cSize = buffer->width * buffer->height / 2;
381 buffer->data :
390 LOG_ALWAYS_FATAL_IF(buffer->stride % 16,
391 "Stride is not 16 pixel aligned %d", buffer->stride);
393 ySize = buffer->stride * buffer->height;
394 cStride = ALIGN(buffer->stride / 2, 16);
395 cr = buffer->data + ySize;
396 cSize = cStride * buffer->height / 2;
401 buffer->data :
411 pData = buffer->data;
412 dataSize = buffer->stride * buffer->height;
419 pData = buffer->data;
420 dataSize = buffer->stride * buffer->height * bytesPerPixel;
425 ALOG_ASSERT(buffer->height == 1, "JPEG should has height value %d", buffer->height);
427 pData = buffer->data;
428 dataSize = Image_getJpegSize(buffer, usingRGBAOverride);
434 pData = buffer->data;
435 dataSize = buffer->stride * buffer->height * bytesPerPixel;
440 LOG_ALWAYS_FATAL_IF(buffer->width % 4,
441 "Width is not multiple of 4 %d", buffer->width);
442 LOG_ALWAYS_FATAL_IF(buffer->height % 2,
443 "Height is not even %d", buffer->height);
444 LOG_ALWAYS_FATAL_IF(buffer->stride < (buffer->width * 10 / 8),
446 buffer->stride, buffer->width * 10 / 8);
447 pData = buffer->data;
448 dataSize = buffer->stride * buffer->height;
455 pData = buffer->data;
456 dataSize = buffer->stride * buffer->height * bytesPerPixel;
462 pData = buffer->data;
463 dataSize = buffer->stride * buffer->height * bytesPerPixel;
469 pData = buffer->data;
470 dataSize = buffer->stride * buffer->height * bytesPerPixel;
482 static jint Image_imageGetPixelStride(JNIEnv* env, CpuConsumer::LockedBuffer* buffer, int idx,
485 ALOGV("%s: buffer index: %d", __FUNCTION__, idx);
489 ALOG_ASSERT(buffer != NULL, "buffer is NULL");
491 int32_t fmt = buffer->format;
497 pixelStride = (idx == 0) ? 1 : buffer->chromaStep;
543 static jint Image_imageGetRowStride(JNIEnv* env, CpuConsumer::LockedBuffer* buffer, int idx,
546 ALOGV("%s: buffer index: %d", __FUNCTION__, idx);
550 ALOG_ASSERT(buffer != NULL, "buffer is NULL");
552 int32_t fmt = buffer->format;
558 rowStride = (idx == 0) ? buffer->stride : buffer->chromaStride;
561 rowStride = buffer->width;
564 LOG_ALWAYS_FATAL_IF(buffer->stride % 16,
565 "Stride is not 16 pixel aligned %d", buffer->stride);
566 rowStride = (idx == 0) ? buffer->stride : ALIGN(buffer->stride / 2, 16);
576 rowStride = buffer->stride;
580 LOG_ALWAYS_FATAL_IF(buffer->stride % 16,
581 "Stride is not 16 pixel aligned %d", buffer->stride);
582 rowStride = buffer->stride;
590 LOG_ALWAYS_FATAL_IF(buffer->stride % 16,
591 "Stride is not 16 pixel aligned %d", buffer->stride);
592 rowStride = buffer->stride * 2;
596 rowStride = buffer->stride * 2;
601 rowStride = buffer->stride * 4;
606 rowStride = buffer->stride * 3;
611 "unsupported buffer format");
700 "Failed to set CpuConsumer buffer size");
706 "Failed to set CpuConsumer buffer format");
738 CpuConsumer::LockedBuffer* buffer = Image_getLockedBuffer(env, image);
739 if (!buffer) {
743 consumer->unlockBuffer(*buffer);
745 ctx->returnLockedBuffer(buffer);
759 CpuConsumer::LockedBuffer* buffer = ctx->getLockedBuffer();
760 if (buffer == NULL) {
765 status_t res = consumer->lockNextBuffer(buffer);
767 ctx->returnLockedBuffer(buffer);
775 "Unknown error (%d) when we tried to lock buffer.",
782 if (buffer->format == HAL_PIXEL_FORMAT_YCrCb_420_SP) {
790 Point lt = buffer->crop.leftTop();
797 // Check if the producer buffer configurations match what ImageReader configured.
799 int outputWidth = buffer->width;
800 int outputHeight = buffer->height;
803 if (!buffer->crop.isEmpty()) {
804 outputWidth = buffer->crop.getWidth();
805 outputHeight = buffer->crop.getHeight();
811 if ((buffer->format != HAL_PIXEL_FORMAT_BLOB) && (imgReaderFmt != HAL_PIXEL_FORMAT_BLOB) &&
814 * For video decoder, the buffer height is actually the vertical stride,
818 * check. Right now, only make sure buffer height is no less than ImageReader
822 "Producer buffer size: %dx%d, doesn't match ImageReader configured size: %dx%d",
827 int bufFmt = buffer->format;
835 ALOGD("%s: Overriding buffer format YUV_420_888 to %x.", __FUNCTION__, bufFmt);
839 ALOGD("%s: Receiving JPEG in HAL_PIXEL_FORMAT_RGBA_8888 buffer.", __FUNCTION__);
841 // Return the buffer to the queue.
842 consumer->unlockBuffer(*buffer);
843 ctx->returnLockedBuffer(buffer);
846 ALOGE("Producer output buffer format: 0x%x, ImageReader configured format: 0x%x",
847 buffer->format, ctx->getBufferFormat());
849 msg.appendFormat("The producer output buffer format 0x%x doesn't "
850 "match the ImageReader's configured buffer format 0x%x.",
851 buffer->format, ctx->getBufferFormat());
858 Image_setBuffer(env, image, buffer);
860 static_cast<jlong>(buffer->timestamp));
882 ALOGV("%s: buffer index: %d", __FUNCTION__, idx);
884 CpuConsumer::LockedBuffer* buffer = Image_getLockedBuffer(env, thiz);
886 ALOG_ASSERT(buffer != NULL);
887 if (buffer == NULL) {
893 rowStride = Image_imageGetRowStride(env, buffer, idx, readerFormat);
894 pixelStride = Image_imageGetPixelStride(env, buffer, idx, readerFormat);
908 ALOGV("%s: buffer index: %d", __FUNCTION__, idx);
910 CpuConsumer::LockedBuffer* buffer = Image_getLockedBuffer(env, thiz);
912 if (buffer == NULL) {
918 // Create byteBuffer from native buffer
919 Image_getLockedBufferInfo(env, buffer, idx, &base, &size, readerFormat);
922 // Byte buffer have 'int capacity', so check the range