Skip to content
This repository has been archived by the owner on Feb 22, 2024. It is now read-only.
Jon McGuire edited this page Oct 12, 2020 · 8 revisions

MMALSharp Wiki

Introduction

Hi and welcome to MMALSharp. This project aims to provide a C# interface to the Raspberry Pi Camera Module, in an easy to use and extensible way.

MMAL (Multimedia Abstraction Layer) is a C library designed by Broadcom for use with the Videocore IV GPU found on the Raspberry Pi. Providing an abstraction layer upon another C library "OpenMAX", MMAL exposes an API allowing developers to take images and record video from their Raspberry Pi which is easier to understand and consume.

The MMALSharp project brings you the functionality provided by the native MMAL library by using the C# Interop suite, this allows code in a Managed environment to call Native functions in C/C++.

Please see the status of each component below:

  • Camera
  • Camera Info
  • Renderers (Null sink & Video - including static overlay)
  • Resizer
  • Splitter
  • Image Encoder
  • Image Encoder (from FileStream)
  • Image Decoder
  • Image Decoder (from FileStream)
  • Video Encoder
  • Video Decoder

MMALSharp supports the following runtimes:

  1. Mono 5.4+
  2. .NET Core 2.0+

Status

So far, the library has been tested on the following Raspberry Pi devices:

  • Raspberry Pi 1 Model B (512mb)
  • Raspberry Pi Zero
  • Raspberry Pi 2 Model B
  • Raspberry Pi 4 Model B

Both the SUNNY and Sony IMX219 camera modules are working as expected.

Tested image 'still' features:

  • Image width/height
  • Image encoding
  • Brightness
  • Contrast
  • Saturation
  • Sharpness
  • Shutter speed
  • ISO
  • Exposure compensation
  • Exposure mode
  • Exposure metering mode
  • Raspistill supported image effects
  • Rotation
  • Flips
  • Annotate
  • Dynamic range compression
  • Stats Pass
  • Colour effects
  • Crop
  • Auto white balance mode/gains
  • EXIF tags
  • Raw capture