Camera abstraction layer

Issue #81 resolved
AusOcean developer repo owner created an issue

As we add support for new cameras (such as RTSP cameras) it will be beneficial to have a camera abstraction layer.

Different cameras will support (1) different capabilities, (2) different mechanisms for setting those capabilities and (3) different parameter names and values for those capabilities.

For example, whereas the Pi Camera is configured entirely via command line flags, RTSP cameras are configured by the RTSP SETUP command.

The Android camera hardware abstraction layer may provide some pointers:

https://source.android.com/devices/camera/camera3

Comments (5)

  1. Alan Noble
    • edited description

    As we add support for new cameras (such as RTSP cameras) it will be beneficial to have a camera abstraction layer.

    Different cameras will support (1) different capabilities, (2) different mechanisms for setting those capabilities and (3) different parameter names and values for those capabilities.

    For example, whereas the Pi Camera is configured entirely via command line flags, RTSP cameras are configured by the RTSP SETUP command.

  2. Saxon Milton

    My thoughts are that we should have an input interface with methods like Setup, Start and Read. Then we have a camera struct that implements this. I say that it might be good to have input interface, because we have inputs other than cameras, like files or microphones, which would have their own implementations of the input interface.

  3. Log in to comment