back to index

picoEXIF library


Problem
Solution approach
EXIF structure
Library structure
Testing/demo
Download
TODO

Problem

Many cameras provide output in MJPEG format, without ability to put in metadata.

All sorts of metadata may be needed, from telemetry to actual camera setting to millisecond timestamps. These can be placed into the MJPEG headers, or into the JPEG frames themselves, using EXIF format.

As the intended cameras are mostly ESP32-based, the code needed MUST be extra-lightweight and extra-easy to integreate.


Solution approach


EXIF structure

TODO: better writeup


Library structure

see comments in the source, TODO: better writeup

Code uses static memory buffer (can be runtime-allocated too), with adjustable size.

Defines:

Total size of the buffer is then 20+4+(12*EXIF_MAXITEMS)+EXIF_MAXVARBUFLEN bytes.

As the number of tags and length of strings is usually known in advance, this can be optimized for a given application.

User functions:

Output:

The two arrays/buffers with their lengths then can be outputted, copied, sent to a socket, whatever.


Testing/demo

The test.sh file:


Download

Archive:

Sources:

Support:

Additional utilities:


TODO


If you have any comments or questions about the topic, please let me know here:
Your name:
Your email:
Spambait
Leave this empty!
Only spambots enter stuff here.
Feedback: