Skip to content

Commit

Permalink
Auto-generated files from zap-regen for Camera AV Stream Management.
Browse files Browse the repository at this point in the history
  • Loading branch information
pidarped committed Oct 13, 2024
1 parent c5b2879 commit 8638d24
Show file tree
Hide file tree
Showing 73 changed files with 49,912 additions and 4,596 deletions.
1 change: 1 addition & 0 deletions docs/zap_clusters.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ Generally regenerate using one of:
| 1295 | 0x50F | ContentControl |
| 1296 | 0x510 | ContentAppObserver |
| 1360 | 0x550 | ZoneManagement |
| 1361 | 0x551 | CameraAvStreamManagement |
| 1363 | 0x553 | WebRTCTransportProvider |
| 1364 | 0x554 | WebRTCTransportRequestor |
| 1366 | 0x556 | Chime |
Expand Down
340 changes: 340 additions & 0 deletions src/controller/data_model/controller-clusters.matter
Original file line number Diff line number Diff line change
Expand Up @@ -9534,6 +9534,346 @@ provisional cluster ZoneManagement = 1360 {
command access(invoke: manage) RemoveZone(RemoveZoneRequest): DefaultSuccess = 5;
}

/** The Camera AV Stream Management cluster is used to allow clients to manage, control, and configure various audio, video, and snapshot streams on a camera. */
cluster CameraAvStreamManagement = 1361 {
revision 1;

enum AudioCodecEnum : enum8 {
kOPUS = 0;
kAACLC = 1;
}

enum ImageCodecEnum : enum8 {
kJPEG = 0;
}

enum StreamTypeEnum : enum8 {
kInternal = 0;
kRecording = 1;
kAnalysis = 2;
kLiveView = 3;
}

enum TriStateAutoEnum : enum8 {
kOff = 0;
kOn = 1;
kAuto = 2;
}

enum TwoWayTalkSupportTypeEnum : enum8 {
kNotSupported = 0;
kHalfDuplex = 1;
kFullDuplex = 2;
}

enum VideoCodecEnum : enum8 {
kH264 = 0;
kHEVC = 1;
kVVC = 2;
kAV1 = 3;
}

bitmap Feature : bitmap32 {
kPrivacy = 0x1;
kAudio = 0x2;
kSpeaker = 0x4;
kImageControl = 0x8;
kVideo = 0x10;
kSnapshot = 0x20;
kWatermark = 0x40;
kOnScreenDisplay = 0x80;
kLocalStorage = 0x100;
}

struct VideoResolutionStruct {
int16u width = 0;
int16u height = 1;
}

struct VideoStreamStruct {
int16u videoStreamID = 0;
StreamTypeEnum streamType = 1;
VideoCodecEnum videoCodec = 2;
int16u minFrameRate = 3;
int16u maxFrameRate = 4;
VideoResolutionStruct minResolution = 5;
VideoResolutionStruct maxResolution = 6;
int32u minBitRate = 7;
int32u maxBitRate = 8;
int16u minFragmentLen = 9;
int16u maxFragmentLen = 10;
optional boolean watermarkEnabled = 11;
optional boolean OSDEnabled = 12;
int8u referenceCount = 13;
}

struct SnapshotStreamStruct {
int16u snapshotStreamID = 0;
ImageCodecEnum imageCodec = 1;
int16u frameRate = 2;
int32u bitRate = 3;
VideoResolutionStruct minResolution = 4;
VideoResolutionStruct maxResolution = 5;
int8u quality = 6;
int8u referenceCount = 7;
}

struct SnapshotParamsStruct {
VideoResolutionStruct resolution = 0;
int16u maxFrameRate = 1;
ImageCodecEnum imageCodec = 2;
}

struct RateDistortionTradeOffPointsStruct {
VideoCodecEnum codec = 0;
VideoResolutionStruct resolution = 1;
int32u minBitRate = 2;
}

struct AudioCapabilitiesStruct {
int8u maxNumberOfChannels = 0;
AudioCodecEnum supportedCodecs[] = 1;
int32u supportedSampleRates[] = 2;
int8u supportedBitDepths[] = 3;
}

struct AudioStreamStruct {
int16u audioStreamID = 0;
StreamTypeEnum streamType = 1;
AudioCodecEnum audioCodec = 2;
int8u channelCount = 3;
int32u sampleRate = 4;
int32u bitRate = 5;
int8u bitDepth = 6;
int8u referenceCount = 7;
}

struct VideoSensorParamsStruct {
int16u sensorWidth = 0;
int16u sensorHeight = 1;
boolean HDRCapable = 2;
int16u maxFPS = 3;
int16u maxHDRFPS = 4;
}

struct ViewportStruct {
int16u x1 = 0;
int16u y1 = 1;
int16u x2 = 2;
int16u y2 = 3;
}

info event VideoStreamChanged = 0 {
int16u videoStreamID = 0;
optional StreamTypeEnum streamType = 1;
optional VideoCodecEnum videoCodec = 2;
optional int16u minFrameRate = 3;
optional int16u maxFrameRate = 4;
optional VideoResolutionStruct minResolution = 5;
optional VideoResolutionStruct maxResolution = 6;
optional int32u minBitRate = 7;
optional int32u maxBitRate = 8;
optional int16u minFragmentLen = 9;
optional int16u maxFragmentLen = 10;
}

info event AudioStreamChanged = 1 {
int16u audioStreamID = 0;
optional StreamTypeEnum streamType = 1;
optional AudioCodecEnum audioCodec = 2;
optional int8u channelCount = 3;
optional int32u sampleRate = 4;
optional int32u bitRate = 5;
optional int8u bitDepth = 6;
}

info event SnapshotStreamChanged = 2 {
int16u snapshotStreamID = 0;
optional ImageCodecEnum imageCodec = 1;
optional int16u frameRate = 2;
optional int32u bitRate = 3;
optional VideoResolutionStruct minResolution = 4;
optional VideoResolutionStruct maxResolution = 5;
optional int8u quality = 6;
}

readonly attribute optional int8u maxConcurrentVideoEncoders = 0;
readonly attribute optional int32u maxEncodedPixelRate = 1;
readonly attribute optional VideoSensorParamsStruct videoSensorParams = 2;
readonly attribute optional boolean nightVisionCapable = 3;
readonly attribute optional VideoResolutionStruct minViewport = 4;
readonly attribute optional RateDistortionTradeOffPointsStruct rateDistortionTradeOffPoints[] = 5;
readonly attribute optional int32u maxPreRollBufferSize = 6;
readonly attribute optional AudioCapabilitiesStruct microphoneCapabilities = 7;
readonly attribute optional AudioCapabilitiesStruct speakerCapabilities = 8;
readonly attribute optional TwoWayTalkSupportTypeEnum twoWayTalkSupport = 9;
readonly attribute optional SnapshotParamsStruct supportedSnapshotParams[] = 10;
readonly attribute int32u maxNetworkBandwidth = 11;
readonly attribute optional int16u currentFrameRate = 12;
attribute access(read: manage, write: manage) optional boolean HDRModeEnabled = 13;
readonly attribute optional VideoCodecEnum currentVideoCodecs[] = 14;
readonly attribute optional SnapshotParamsStruct currentSnapshotConfig = 15;
readonly attribute fabric_idx fabricsUsingCamera[] = 16;
readonly attribute optional VideoStreamStruct allocatedVideoStreams[] = 17;
readonly attribute optional AudioStreamStruct allocatedAudioStreams[] = 18;
readonly attribute optional SnapshotStreamStruct allocatedSnapshotStreams[] = 19;
attribute access(read: administer, write: administer) optional StreamTypeEnum rankedVideoStreamPrioritiesList[] = 20;
attribute optional boolean softRecordingPrivacyModeEnabled = 21;
attribute optional boolean softLivestreamPrivacyModeEnabled = 22;
readonly attribute optional boolean hardPrivacyModeOn = 23;
attribute access(read: manage, write: manage) optional TriStateAutoEnum nightVision = 24;
attribute access(read: manage, write: manage) optional TriStateAutoEnum nightVisionIllum = 25;
attribute access(read: manage, write: manage) optional boolean AWBEnabled = 26;
attribute access(read: manage, write: manage) optional boolean autoShutterSpeedEnabled = 27;
attribute access(read: manage, write: manage) optional boolean autoISOEnabled = 28;
readonly attribute optional ViewportStruct viewport = 29;
attribute access(read: manage, write: manage) optional boolean speakerMuted = 30;
attribute access(read: manage, write: manage) optional int8u speakerVolumeLevel = 31;
attribute access(read: manage, write: manage) optional int8u speakerMaxLevel = 32;
attribute access(read: manage, write: manage) optional int8u speakerMinLevel = 33;
attribute access(read: manage, write: manage) optional boolean microphoneMuted = 34;
attribute access(read: manage, write: manage) optional int8u microphoneVolumeLevel = 35;
attribute access(read: manage, write: manage) optional int8u microphoneMaxLevel = 36;
attribute access(read: manage, write: manage) optional int8u microphoneMinLevel = 37;
attribute access(read: manage, write: manage) optional boolean microphoneAGCEnabled = 38;
readonly attribute optional int16u imageRotation = 39;
readonly attribute optional boolean imageFlipHorizontal = 40;
readonly attribute optional boolean imageFlipVertical = 41;
attribute access(read: manage, write: manage) optional boolean localVideoRecordingEnabled = 42;
attribute access(read: manage, write: manage) optional boolean localSnapshotRecordingEnabled = 43;
attribute access(read: manage, write: manage) optional boolean statusLightEnabled = 44;
attribute access(read: manage, write: manage) optional ThreeLevelAutoEnum statusLightBrightness = 45;
attribute access(read: manage, write: manage) optional TriStateAutoEnum depthSensorStatus = 46;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;

request struct AudioStreamAllocateRequest {
StreamTypeEnum streamType = 0;
AudioCodecEnum audioCodec = 1;
int8u channelCount = 2;
int32u sampleRate = 3;
int32u bitRate = 4;
int8u bitDepth = 5;
}

response struct AudioStreamAllocateResponse = 1 {
int16u audioStreamID = 0;
}

request struct AudioStreamDeallocateRequest {
int16u audioStreamID = 0;
}

request struct VideoStreamAllocateRequest {
StreamTypeEnum streamType = 0;
VideoCodecEnum videoCodec = 1;
int16u minFrameRate = 2;
int16u maxFrameRate = 3;
VideoResolutionStruct minResolution = 4;
VideoResolutionStruct maxResolution = 5;
int32u minBitRate = 6;
int32u maxBitRate = 7;
int16u minFragmentLen = 8;
int16u maxFragmentLen = 9;
optional boolean watermarkEnabled = 10;
optional boolean OSDEnabled = 11;
}

response struct VideoStreamAllocateResponse = 4 {
int16u videoStreamID = 0;
}

request struct VideoStreamModifyRequest {
int16u videoStreamID = 0;
optional VideoResolutionStruct resolution = 1;
optional boolean watermarkEnabled = 2;
optional boolean OSDEnabled = 3;
}

request struct VideoStreamDeallocateRequest {
int16u videoStreamID = 0;
}

request struct SnapshotStreamAllocateRequest {
ImageCodecEnum imageCodec = 0;
int16u frameRate = 1;
int32u bitRate = 2;
VideoResolutionStruct minResolution = 3;
VideoResolutionStruct maxResolution = 4;
int8u quality = 5;
}

response struct SnapshotStreamAllocateResponse = 8 {
int16u snapshotStreamID = 0;
}

request struct SnapshotStreamDeallocateRequest {
int16u snapshotStreamID = 0;
}

request struct SetStreamPrioritiesRequest {
StreamTypeEnum streamPriorities[] = 0;
}

request struct CaptureSnapshotRequest {
int16u snapshotStreamID = 0;
VideoResolutionStruct requestedResolution = 1;
}

response struct CaptureSnapshotResponse = 12 {
octet_string data = 0;
ImageCodecEnum imageCodec = 1;
VideoResolutionStruct resolution = 2;
}

request struct SetViewportRequest {
ViewportStruct viewport = 0;
}

request struct SetImageRotationRequest {
int16u angle = 0;
}

request struct SetImageFlipHorizontalRequest {
boolean enabled = 0;
}

request struct SetImageFlipVerticalRequest {
boolean enabled = 0;
}

/** This command SHALL allocate an audio stream on the camera and return an allocated audio stream identifier. */
command access(invoke: manage) AudioStreamAllocate(AudioStreamAllocateRequest): AudioStreamAllocateResponse = 0;
/** This command SHALL deallocate an audio stream on the camera, corresponding to the given audio stream identifier. */
command access(invoke: manage) AudioStreamDeallocate(AudioStreamDeallocateRequest): DefaultSuccess = 2;
/** This command SHALL allocate a video stream on the camera and return an allocated video stream identifier. */
command access(invoke: manage) VideoStreamAllocate(VideoStreamAllocateRequest): VideoStreamAllocateResponse = 3;
/** This command SHALL be used to modify the resolution of a stream specified by the VideoStreamID. */
command access(invoke: manage) VideoStreamModify(VideoStreamModifyRequest): DefaultSuccess = 5;
/** This command SHALL deallocate a video stream on the camera, corresponding to the given video stream identifier. */
command access(invoke: manage) VideoStreamDeallocate(VideoStreamDeallocateRequest): DefaultSuccess = 6;
/** This command SHALL allocate a snapshot stream on the device and return an allocated snapshot stream identifier. */
command access(invoke: manage) SnapshotStreamAllocate(SnapshotStreamAllocateRequest): SnapshotStreamAllocateResponse = 7;
/** This command SHALL deallocate an snapshot stream on the camera, corresponding to the given snapshot stream identifier. */
command access(invoke: manage) SnapshotStreamDeallocate(SnapshotStreamDeallocateRequest): DefaultSuccess = 9;
/** This command SHALL set the relative priorities of the various stream types on the camera. */
command access(invoke: administer) SetStreamPriorities(SetStreamPrioritiesRequest): DefaultSuccess = 10;
/** This command SHALL return a Snapshot from the camera. */
command access(invoke: manage) CaptureSnapshot(CaptureSnapshotRequest): DefaultSuccess = 11;
/** This command sets the viewport in all video streams. */
command access(invoke: manage) SetViewport(SetViewportRequest): DefaultSuccess = 13;
/** The data fields for this command SHALL be as follows: */
command access(invoke: manage) SetImageRotation(SetImageRotationRequest): DefaultSuccess = 14;
/** The data fields for this command SHALL be as follows: */
command access(invoke: manage) SetImageFlipHorizontal(SetImageFlipHorizontalRequest): DefaultSuccess = 15;
/** The data fields for this command SHALL be as follows: */
command access(invoke: manage) SetImageFlipVertical(SetImageFlipVerticalRequest): DefaultSuccess = 16;
}

/** The WebRTC transport provider cluster provides a way for stream providers (e.g. Cameras) to stream or receive their data through WebRTC. */
provisional cluster WebRTCTransportProvider = 1363 {
revision 1;
Expand Down
Loading

0 comments on commit 8638d24

Please sign in to comment.