diff --git a/modules/camera/3_4/stream_format.cpp b/modules/camera/3_4/stream_format.cpp
index 43f4cae..5940b71 100644
--- a/modules/camera/3_4/stream_format.cpp
+++ b/modules/camera/3_4/stream_format.cpp
@@ -62,7 +62,8 @@
   switch (v4l2_pixel_format_) {
     case V4L2_PIX_FMT_JPEG:
       return kFormatCategoryStalling;
-    case V4L2_PIX_FMT_YUV420:
+    case V4L2_PIX_FMT_YUV420:  // Fall through.
+    case V4L2_PIX_FMT_BGR32:
       return kFormatCategoryNonStalling;
     default:
       // Note: currently no supported RAW formats.
@@ -92,8 +93,12 @@
     case V4L2_PIX_FMT_YUV420:
       hal_pixel_format = HAL_PIXEL_FORMAT_YCbCr_420_888;
       break;
+    case V4L2_PIX_FMT_BGR32:
+      hal_pixel_format = HAL_PIXEL_FORMAT_RGBA_8888;
+      break;
     default:
       // Unrecognized format.
+      HAL_LOGV("Unrecognized v4l2 pixel format %u", v4l2_pixel_format);
       break;
   }
   return hal_pixel_format;
@@ -104,6 +109,11 @@
   uint32_t v4l2_pixel_format = 0;
   switch (hal_pixel_format) {
     case HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED:  // fall-through.
+    case HAL_PIXEL_FORMAT_RGBA_8888:
+      // Should be RGB32, but RPi doesn't support that.
+      // For now we accept that the colors will be off.
+      v4l2_pixel_format = V4L2_PIX_FMT_BGR32;
+      break;
     case HAL_PIXEL_FORMAT_YCbCr_420_888:
       v4l2_pixel_format = V4L2_PIX_FMT_YUV420;
       break;
@@ -112,6 +122,7 @@
       break;
     default:
       // Unrecognized format.
+      HAL_LOGV("Unrecognized HAL pixel format %d", hal_pixel_format);
       break;
   }
   return v4l2_pixel_format;
diff --git a/modules/camera/3_4/v4l2_gralloc.cpp b/modules/camera/3_4/v4l2_gralloc.cpp
index 5812649..64fa306 100644
--- a/modules/camera/3_4/v4l2_gralloc.cpp
+++ b/modules/camera/3_4/v4l2_gralloc.cpp
@@ -25,6 +25,7 @@
 #include <system/graphics.h>
 
 #include "common.h"
+#include "stream_format.h"
 
 namespace v4l2_camera_hal {
 
@@ -96,9 +97,9 @@
   buffer_handle_t buffer = *camera_buffer->buffer;
   void* data;
   camera3_stream_t* stream = camera_buffer->stream;
-  switch(stream->format) {
+  switch(StreamFormat::HalToV4L2PixelFormat(stream->format)) {
     // TODO(b/30119452): support more YCbCr formats.
-    case HAL_PIXEL_FORMAT_YCbCr_420_888:
+    case V4L2_PIX_FMT_YUV420:
       android_ycbcr yuv_data;
       mModule->lock_ycbcr(mModule, buffer, stream->usage, 0, 0,
                           stream->width, stream->height, &yuv_data);
@@ -127,10 +128,15 @@
         buffer_data->transform_dest.reset(new android_ycbcr(yuv_data));
       }
       break;
-    case HAL_PIXEL_FORMAT_BLOB:
+    case V4L2_PIX_FMT_JPEG:
       // Jpeg buffers are just contiguous blobs; lock length * 1.
       mModule->lock(mModule, buffer, stream->usage, 0, 0, device_buffer->length, 1, &data);
       break;
+    case V4L2_PIX_FMT_BGR32:  // Fall-through.
+    case V4L2_PIX_FMT_RGB32:
+      // RGB formats have nice agreed upon representation. Unless using android flex formats.
+      mModule->lock(mModule, buffer, stream->usage, 0, 0, stream->width, stream->height, &data);
+      break;
     default:
       return -EINVAL;
   }
