The summary is that what we would ideally like is every camera in MAVLink to be a mavlink camera, with a heartbeat and appropriate type. But autopilots don't want to expose their cameras as separate components, so we're allowing them to include an extra camera id (1-6) in CAMERA_INFORMATION and other camera messages that is used only from the autopilot to identify the attached camera.
Camera commands have an id too, which you can use to specify the mavlink component id OR this device id. You can no longer give a MAVLINk camera component id of 1-6.
The main change for an API would be that you also have to query the autopilot for CAMERA_INFORMATION, and store mapping for up to 6 extra cameras associated with the autopilot.
Just FYI we're making some changes to camera APIs to allow addressing of non-MAVLink cameras attached to autopilot component and to allow specific cameras to be targeted in missions. Docs in progress in https://github.com/mavlink/mavlink-devguide/pull/517#issuecomment-2290360512
The summary is that what we would ideally like is every camera in MAVLink to be a mavlink camera, with a heartbeat and appropriate type. But autopilots don't want to expose their cameras as separate components, so we're allowing them to include an extra camera id (1-6) in CAMERA_INFORMATION and other camera messages that is used only from the autopilot to identify the attached camera. Camera commands have an id too, which you can use to specify the mavlink component id OR this device id. You can no longer give a MAVLINk camera component id of 1-6.
The main change for an API would be that you also have to query the autopilot for CAMERA_INFORMATION, and store mapping for up to 6 extra cameras associated with the autopilot.
Cheerio