Using API v2.0 or v.2.1?


#1

As API v.2.1 requires an additional step, why use it? Someone on the official forum asked this question. The question and my response are below.

Question

Instead of doing:

  1. Start session
  2. Set API version
  3. Acquire status prior to shooting
  4. Acquire/Set properties
  5. Shoot still image
  6. REPEAT: Confirm file save
  7. Acquire file

can we do:

  1. Start session
  2. Shoot still image
  3. REPEAT: check status of the takePicture command
    (osc/commands/status with id that was acquired when takePicture was called)
    If status of this is “done”, doesnt it mean that it was saved?
  4. Acquire file

This seems to work, am I missing some edge cases?

My opinion

Your method will work.

However, it will only work with the v2.0 API, which the THETA S supports.

The v2.1 API is compliant with the Google OSC API version 2.0.

The edge case is if you want to support future cameras that don’t support the OSC level 1 (THETA API v2.0).

I suspect that this is unlikely with THETA products. So, you should be okay. What we don’t know is if the next-generation THETA exposes API v2.0 or API v.2.1 immediately after the camera boots.

If you’re building your app for your own camera or for a controlled set of cameras (like in a factory you’re under contract to optimize with 360 workflows), then you should be okay with your method. If you are releasing your app to the general public, you should check in again after the next generation camera is released and see if the default is API v2.0.


#2

I always start with a State command and check _apiVersion to see what the API version is. If it is not v.2.1 I set it to v.2.1with a Start session and Set API. If the State command comes back with an API version of v.2.1 I move on to Shooting a still image without doing a Start session and Set API.


#3

I believe that the THETA V may offer up the v2.1 API by default. Hopefully, we’ll get more info soon on how an application can support both the THETA S and the THETA V with a simple API version check.