Raw Video Container Format - GSoC 2018
This repository hosts a working proof of concept for proposed MLV file containerising systems for the AXIOM Beta's RAW12 frames.
For a wholesome analysis of this GSoC work, please visit gsoc.supragyaraj.com
What does the code do?
The source code compiles a few binaries and runs them to emulate the usage scenario of the camera. The following are some important modules:
- Generator: This compiles two files - rawinfo and rawdata that models the two streams coming out of the camera - rawdata being the high speed video frame transport and rawinfo being low speed meta transport.
- Stream Handler: This application models the primary interface code for the recording unit. Uses two threads to store two streams on disk as fast as it can. Highly I/O based application with very little processing involved.
- Joiner: Joins the high speed output (video frames) and low speed output (metadata) into one MLV file. Uses
catinternally to join. However, there are a few considerations on whether this module may really be needed. See gsoc.supragyaraj.com for more details.
- MLV_dump / MLVFS: Final "publisher" system (3rd party) which is used to convert mlv files into corresponding DNG files.
1, 2 and 3 model the
cam2mlv portion of the system while 4 is solely responsible for
A few changes to
mlv2dng are proposed for
- Removing the Joiner altogether
- Allowing PLR data to be used for linearization table calculations while mlv2dng conversion.
The information regarding the above proposals are given at: gsoc.supragyaraj.com
Getting the code and setting up
For getting started with this codebase, consider checking out: gsoc.supragyaraj.com for all the analysis and the ideology behind the code seen in this repository.
- Get the code using
git clone github.com/supragya/AXIOM_RawStreamHandler
cd AXIOM_RawStreamHandlerafter this should put you in the project directory.
- Make sure you have all the dependencies by running
./scripts/get_dependencies_apt.sh(for debian based linux distributions).
- Build the system using
- Run the emulation using
- DNG exports should now be available in
- Clean the project directory using
Note: You can check your current dependencies version with
Get in touch