Skip to content

Commit 6ea3666

Browse files
authored
XML and SDK changes corresponding to Spec updates for CameraAVStreamManagement cluster. (project-chip#36934)
* XML and SDK changes corresponding to Spec updates for CameraAVStreamManagement cluster. * Add missing "provisional apiMaturity" to webrtc-requestor-cluster.xml.
1 parent 3d30500 commit 6ea3666

File tree

46 files changed

+692
-625
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+692
-625
lines changed

src/app/zap-templates/zcl/data-model/chip/camera-av-stream-management-cluster.xml

+20-15
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ limitations under the License.
1818
XML generated by Alchemy; DO NOT EDIT.
1919
Source: src/app_clusters/CameraAVStreamManagement.adoc
2020
Parameters: in-progress
21-
Git: 1.3-3830-g1f08d6f40
21+
Git: 1.4-446-g4a179b5f4
2222
-->
2323
<configurator xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../zcl.xsd">
2424
<domain name="Cameras"/>
@@ -66,7 +66,7 @@ Git: 1.3-3830-g1f08d6f40
6666
<struct name="AudioStreamStruct" apiMaturity="provisional">
6767
<cluster code="0x0551"/>
6868
<item fieldId="0" name="AudioStreamID" type="int16u"/>
69-
<item fieldId="1" name="StreamType" type="StreamTypeEnum" min="0x00" max="0x03"/>
69+
<item fieldId="1" name="StreamUsage" type="StreamUsageEnum" min="0x00" max="0x03"/>
7070
<item fieldId="2" name="AudioCodec" type="AudioCodecEnum" min="0x00" max="0x01"/>
7171
<item fieldId="3" name="ChannelCount" type="int8u" min="1" max="8"/>
7272
<item fieldId="4" name="SampleRate" type="int32u" min="1"/>
@@ -119,7 +119,7 @@ Git: 1.3-3830-g1f08d6f40
119119
<struct name="VideoStreamStruct" apiMaturity="provisional">
120120
<cluster code="0x0551"/>
121121
<item fieldId="0" name="VideoStreamID" type="int16u"/>
122-
<item fieldId="1" name="StreamType" type="StreamTypeEnum" min="0x00" max="0x03"/>
122+
<item fieldId="1" name="StreamUsage" type="StreamUsageEnum" min="0x00" max="0x03"/>
123123
<item fieldId="2" name="VideoCodec" type="VideoCodecEnum" min="0x00" max="0x03"/>
124124
<item fieldId="3" name="MinFrameRate" type="int16u" min="1"/>
125125
<item fieldId="4" name="MaxFrameRate" type="int16u" min="1"/>
@@ -258,7 +258,7 @@ Git: 1.3-3830-g1f08d6f40
258258
<feature name="SNP"/>
259259
</mandatoryConform>
260260
</attribute>
261-
<attribute code="0x0012" side="server" define="RANKED_VIDEO_STREAM_PRIORITIES_LIST" type="array" entryType="StreamTypeEnum" optional="true">
261+
<attribute code="0x0012" side="server" define="RANKED_VIDEO_STREAM_PRIORITIES_LIST" type="array" entryType="StreamUsageEnum" optional="true">
262262
<description>RankedVideoStreamPrioritiesList</description>
263263
<mandatoryConform>
264264
<feature name="VDO"/>
@@ -451,7 +451,7 @@ Git: 1.3-3830-g1f08d6f40
451451
<command code="0x00" source="client" name="AudioStreamAllocate" optional="true" response="AudioStreamAllocateResponse">
452452
<description>This command SHALL allocate an audio stream on the camera and return an allocated audio stream identifier.</description>
453453
<access op="invoke" privilege="manage"/>
454-
<arg id="0" name="StreamType" type="StreamTypeEnum" min="0x00" max="0x03"/>
454+
<arg id="0" name="StreamUsage" type="StreamUsageEnum" min="0x00" max="0x03"/>
455455
<arg id="1" name="AudioCodec" type="AudioCodecEnum" min="0x00" max="0x01"/>
456456
<arg id="2" name="ChannelCount" type="int8u" default="1" min="1" max="8"/>
457457
<arg id="3" name="SampleRate" type="int32u" min="1"/>
@@ -482,7 +482,7 @@ Git: 1.3-3830-g1f08d6f40
482482
<command code="0x03" source="client" name="VideoStreamAllocate" optional="true" response="VideoStreamAllocateResponse">
483483
<description>This command SHALL allocate a video stream on the camera and return an allocated video stream identifier.</description>
484484
<access op="invoke" privilege="manage"/>
485-
<arg id="1" name="StreamType" type="StreamTypeEnum" min="0x00" max="0x03"/>
485+
<arg id="1" name="StreamUsage" type="StreamUsageEnum" min="0x00" max="0x03"/>
486486
<arg id="2" name="VideoCodec" type="VideoCodecEnum" min="0x00" max="0x03"/>
487487
<arg id="3" name="MinFrameRate" type="int16u" min="1"/>
488488
<arg id="4" name="MaxFrameRate" type="int16u" min="1"/>
@@ -511,11 +511,16 @@ Git: 1.3-3830-g1f08d6f40
511511
<description>This command SHALL be used to modify the resolution of a stream specified by the VideoStreamID.</description>
512512
<access op="invoke" privilege="manage"/>
513513
<arg id="0" name="VideoStreamID" type="int16u"/>
514-
<arg id="1" name="Resolution" type="VideoResolutionStruct" optional="true"/>
515-
<arg id="2" name="WatermarkEnabled" type="boolean" optional="true"/>
516-
<arg id="3" name="OSDEnabled" type="boolean" optional="true"/>
514+
<arg id="1" name="WatermarkEnabled" type="boolean" optional="true"/>
515+
<arg id="2" name="OSDEnabled" type="boolean" optional="true"/>
517516
<mandatoryConform>
518-
<feature name="VDO"/>
517+
<andTerm>
518+
<feature name="VDO"/>
519+
<orTerm>
520+
<feature name="WMARK"/>
521+
<feature name="OSD"/>
522+
</orTerm>
523+
</andTerm>
519524
</mandatoryConform>
520525
</command>
521526

@@ -560,12 +565,12 @@ Git: 1.3-3830-g1f08d6f40
560565
</command>
561566

562567
<command code="0x0A" source="client" name="SetStreamPriorities" optional="false">
563-
<description>This command SHALL set the relative priorities of the various stream types on the camera.</description>
568+
<description>This command SHALL set the relative priorities of the various stream usages on the camera.</description>
564569
<access op="invoke" privilege="administer"/>
565-
<arg id="0" name="StreamPriorities" array="true" type="StreamTypeEnum"/>
570+
<arg id="0" name="StreamPriorities" array="true" type="StreamUsageEnum"/>
566571
</command>
567572

568-
<command code="0x0B" source="client" name="CaptureSnapshot" optional="true">
573+
<command code="0x0B" source="client" name="CaptureSnapshot" optional="true" response="CaptureSnapshotResponse">
569574
<description>This command SHALL return a Snapshot from the camera.</description>
570575
<quality largeMessage="true"/>
571576
<arg id="0" name="SnapshotStreamID" type="int16u"/>
@@ -588,7 +593,7 @@ Git: 1.3-3830-g1f08d6f40
588593

589594
<event code="0x0000" name="VideoStreamChanged" priority="info" side="server" optional="true">
590595
<field id="0" name="VideoStreamID" type="int16u"/>
591-
<field id="1" name="StreamType" type="StreamTypeEnum" optional="true" min="0x00" max="0x03"/>
596+
<field id="1" name="StreamUsage" type="StreamUsageEnum" optional="true" min="0x00" max="0x03"/>
592597
<field id="2" name="VideoCodec" type="VideoCodecEnum" optional="true" min="0x00" max="0x03"/>
593598
<field id="3" name="MinFrameRate" type="int16u" optional="true" min="1"/>
594599
<field id="4" name="MaxFrameRate" type="int16u" optional="true" min="1"/>
@@ -606,7 +611,7 @@ Git: 1.3-3830-g1f08d6f40
606611

607612
<event code="0x0001" name="AudioStreamChanged" priority="info" side="server" optional="true">
608613
<field id="0" name="AudioStreamID" type="int16u"/>
609-
<field id="1" name="StreamType" type="StreamTypeEnum" optional="true" min="0x00" max="0x03"/>
614+
<field id="1" name="StreamUsage" type="StreamUsageEnum" optional="true" min="0x00" max="0x03"/>
610615
<field id="2" name="AudioCodec" type="AudioCodecEnum" optional="true" min="0x00" max="0x01"/>
611616
<field id="3" name="ChannelCount" type="int8u" optional="true" min="1" max="8"/>
612617
<field id="4" name="SampleRate" type="int32u" optional="true" min="1"/>

src/app/zap-templates/zcl/data-model/chip/global-enums.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ TODO: Make these structures global rather than defining them for each cluster.
3535
<item name="Automatic" value="0x03"/>
3636
</enum>
3737

38-
<enum name="StreamTypeEnum" type="enum8">
38+
<enum name="StreamUsageEnum" type="enum8">
3939
<cluster code="0x0551"/>
4040
<cluster code="0x0553"/>
4141
<cluster code="0x0554"/>

src/app/zap-templates/zcl/data-model/chip/webrtc-provider-cluster.xml

+3-3
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ Git: 0.9-fall2024-234-gf4d359001
6161
<item fieldId="1" name="ID" type="int16u"/>
6262
<item fieldId="2" name="PeerNodeID" type="node_id"/>
6363
<item fieldId="3" name="PeerFabricIndex" type="fabric_idx"/>
64-
<item fieldId="4" name="StreamType" type="StreamTypeEnum" min="0x00" max="0x03"/>
64+
<item fieldId="4" name="StreamUsage" type="StreamUsageEnum" min="0x00" max="0x03"/>
6565
<item fieldId="5" name="VideoStreamID" type="int16u" isNullable="true"/>
6666
<item fieldId="6" name="AudioStreamID" type="int16u" isNullable="true"/>
6767
<item fieldId="7" name="MetadataOptions" type="WebRTCMetadataOptions" default="0x00" min="0x00" max="0x01"/>
@@ -79,7 +79,7 @@ Git: 0.9-fall2024-234-gf4d359001
7979
<attribute code="0x0000" side="server" define="CURRENT_SESSIONS" type="array" entryType="WebRTCSessionStruct">CurrentSessions</attribute>
8080
<command code="0x01" source="client" name="SolicitOffer" optional="false" response="SolicitOfferResponse">
8181
<description>Requests that the Provider initiates a new session with the Offer / Answer flow in a way that allows for options to be passed and work with devices needing the standby flow.</description>
82-
<arg id="1" name="StreamType" type="StreamTypeEnum" min="0x00" max="0x03"/>
82+
<arg id="1" name="StreamUsage" type="StreamUsageEnum" min="0x00" max="0x03"/>
8383
<arg id="2" name="VideoStreamID" type="int16u" optional="true" isNullable="true"/>
8484
<arg id="3" name="AudioStreamID" type="int16u" optional="true" isNullable="true"/>
8585
<arg id="4" name="ICEServers" array="true" type="ICEServerStruct" optional="true"/>
@@ -99,7 +99,7 @@ Git: 0.9-fall2024-234-gf4d359001
9999
<description>This command allows an SDP Offer to be set and start a new session.</description>
100100
<arg id="1" name="WebRTCSessionID" type="int16u" isNullable="true"/>
101101
<arg id="2" name="SDP" type="char_string"/>
102-
<arg id="3" name="StreamType" type="StreamTypeEnum" min="0x00" max="0x03"/>
102+
<arg id="3" name="StreamUsage" type="StreamUsageEnum" min="0x00" max="0x03"/>
103103
<arg id="4" name="VideoStreamID" type="int16u" optional="true" isNullable="true"/>
104104
<arg id="5" name="AudioStreamID" type="int16u" optional="true" isNullable="true"/>
105105
<arg id="6" name="ICEServers" array="true" type="ICEServerStruct" optional="true"/>

src/app/zap-templates/zcl/data-model/chip/webrtc-requestor-cluster.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Git: 0.9-fall2024-228-g54b1ae035
2222
-->
2323
<configurator>
2424
<domain name="CHIP"/>
25-
<cluster>
25+
<cluster apiMaturity="provisional">
2626
<domain>Cameras</domain>
2727
<name>WebRTC Transport Requestor</name>
2828
<code>0x0554</code>

src/controller/data_model/controller-clusters.matter

+20-21
Original file line numberDiff line numberDiff line change
@@ -9541,7 +9541,7 @@ provisional cluster CameraAvStreamManagement = 1361 {
95419541
kJPEG = 0;
95429542
}
95439543

9544-
enum StreamTypeEnum : enum8 {
9544+
enum StreamUsageEnum : enum8 {
95459545
kInternal = 0;
95469546
kRecording = 1;
95479547
kAnalysis = 2;
@@ -9586,7 +9586,7 @@ provisional cluster CameraAvStreamManagement = 1361 {
95869586

95879587
struct VideoStreamStruct {
95889588
int16u videoStreamID = 0;
9589-
StreamTypeEnum streamType = 1;
9589+
StreamUsageEnum streamUsage = 1;
95909590
VideoCodecEnum videoCodec = 2;
95919591
int16u minFrameRate = 3;
95929592
int16u maxFrameRate = 4;
@@ -9633,7 +9633,7 @@ provisional cluster CameraAvStreamManagement = 1361 {
96339633

96349634
struct AudioStreamStruct {
96359635
int16u audioStreamID = 0;
9636-
StreamTypeEnum streamType = 1;
9636+
StreamUsageEnum streamUsage = 1;
96379637
AudioCodecEnum audioCodec = 2;
96389638
int8u channelCount = 3;
96399639
int32u sampleRate = 4;
@@ -9659,7 +9659,7 @@ provisional cluster CameraAvStreamManagement = 1361 {
96599659

96609660
info event VideoStreamChanged = 0 {
96619661
int16u videoStreamID = 0;
9662-
optional StreamTypeEnum streamType = 1;
9662+
optional StreamUsageEnum streamUsage = 1;
96639663
optional VideoCodecEnum videoCodec = 2;
96649664
optional int16u minFrameRate = 3;
96659665
optional int16u maxFrameRate = 4;
@@ -9673,7 +9673,7 @@ provisional cluster CameraAvStreamManagement = 1361 {
96739673

96749674
info event AudioStreamChanged = 1 {
96759675
int16u audioStreamID = 0;
9676-
optional StreamTypeEnum streamType = 1;
9676+
optional StreamUsageEnum streamUsage = 1;
96779677
optional AudioCodecEnum audioCodec = 2;
96789678
optional int8u channelCount = 3;
96799679
optional int32u sampleRate = 4;
@@ -9709,7 +9709,7 @@ provisional cluster CameraAvStreamManagement = 1361 {
97099709
readonly attribute optional VideoStreamStruct allocatedVideoStreams[] = 15;
97109710
readonly attribute optional AudioStreamStruct allocatedAudioStreams[] = 16;
97119711
readonly attribute optional SnapshotStreamStruct allocatedSnapshotStreams[] = 17;
9712-
readonly attribute optional StreamTypeEnum rankedVideoStreamPrioritiesList[] = 18;
9712+
readonly attribute optional StreamUsageEnum rankedVideoStreamPrioritiesList[] = 18;
97139713
attribute optional boolean softRecordingPrivacyModeEnabled = 19;
97149714
attribute optional boolean softLivestreamPrivacyModeEnabled = 20;
97159715
readonly attribute optional boolean hardPrivacyModeOn = 21;
@@ -9740,7 +9740,7 @@ provisional cluster CameraAvStreamManagement = 1361 {
97409740
readonly attribute int16u clusterRevision = 65533;
97419741

97429742
request struct AudioStreamAllocateRequest {
9743-
StreamTypeEnum streamType = 0;
9743+
StreamUsageEnum streamUsage = 0;
97449744
AudioCodecEnum audioCodec = 1;
97459745
int8u channelCount = 2;
97469746
int32u sampleRate = 3;
@@ -9757,7 +9757,7 @@ provisional cluster CameraAvStreamManagement = 1361 {
97579757
}
97589758

97599759
request struct VideoStreamAllocateRequest {
9760-
StreamTypeEnum streamType = 0;
9760+
StreamUsageEnum streamUsage = 0;
97619761
VideoCodecEnum videoCodec = 1;
97629762
int16u minFrameRate = 2;
97639763
int16u maxFrameRate = 3;
@@ -9777,9 +9777,8 @@ provisional cluster CameraAvStreamManagement = 1361 {
97779777

97789778
request struct VideoStreamModifyRequest {
97799779
int16u videoStreamID = 0;
9780-
optional VideoResolutionStruct resolution = 1;
9781-
optional boolean watermarkEnabled = 2;
9782-
optional boolean OSDEnabled = 3;
9780+
optional boolean watermarkEnabled = 1;
9781+
optional boolean OSDEnabled = 2;
97839782
}
97849783

97859784
request struct VideoStreamDeallocateRequest {
@@ -9804,7 +9803,7 @@ provisional cluster CameraAvStreamManagement = 1361 {
98049803
}
98059804

98069805
request struct SetStreamPrioritiesRequest {
9807-
StreamTypeEnum streamPriorities[] = 0;
9806+
StreamUsageEnum streamPriorities[] = 0;
98089807
}
98099808

98109809
request struct CaptureSnapshotRequest {
@@ -9832,17 +9831,17 @@ provisional cluster CameraAvStreamManagement = 1361 {
98329831
command access(invoke: manage) SnapshotStreamAllocate(SnapshotStreamAllocateRequest): SnapshotStreamAllocateResponse = 7;
98339832
/** This command SHALL deallocate an snapshot stream on the camera, corresponding to the given snapshot stream identifier. */
98349833
command access(invoke: manage) SnapshotStreamDeallocate(SnapshotStreamDeallocateRequest): DefaultSuccess = 9;
9835-
/** This command SHALL set the relative priorities of the various stream types on the camera. */
9834+
/** This command SHALL set the relative priorities of the various stream usages on the camera. */
98369835
command access(invoke: administer) SetStreamPriorities(SetStreamPrioritiesRequest): DefaultSuccess = 10;
98379836
/** This command SHALL return a Snapshot from the camera. */
9838-
command CaptureSnapshot(CaptureSnapshotRequest): DefaultSuccess = 11;
9837+
command CaptureSnapshot(CaptureSnapshotRequest): CaptureSnapshotResponse = 11;
98399838
}
98409839

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

9845-
enum StreamTypeEnum : enum8 {
9844+
enum StreamUsageEnum : enum8 {
98469845
kInternal = 0;
98479846
kRecording = 1;
98489847
kAnalysis = 2;
@@ -9879,7 +9878,7 @@ provisional cluster WebRTCTransportProvider = 1363 {
98799878
int16u id = 1;
98809879
node_id peerNodeID = 2;
98819880
fabric_idx peerFabricIndex = 3;
9882-
StreamTypeEnum streamType = 4;
9881+
StreamUsageEnum streamUsage = 4;
98839882
nullable int16u videoStreamID = 5;
98849883
nullable int16u audioStreamID = 6;
98859884
WebRTCMetadataOptions metadataOptions = 7;
@@ -9894,7 +9893,7 @@ provisional cluster WebRTCTransportProvider = 1363 {
98949893
readonly attribute int16u clusterRevision = 65533;
98959894

98969895
request struct SolicitOfferRequest {
9897-
StreamTypeEnum streamType = 0;
9896+
StreamUsageEnum streamUsage = 0;
98989897
optional nullable int16u videoStreamID = 1;
98999898
optional nullable int16u audioStreamID = 2;
99009899
optional ICEServerStruct ICEServers[] = 3;
@@ -9912,7 +9911,7 @@ provisional cluster WebRTCTransportProvider = 1363 {
99129911
request struct ProvideOfferRequest {
99139912
nullable int16u webRTCSessionID = 0;
99149913
char_string sdp = 1;
9915-
StreamTypeEnum streamType = 2;
9914+
StreamUsageEnum streamUsage = 2;
99169915
optional nullable int16u videoStreamID = 3;
99179916
optional nullable int16u audioStreamID = 4;
99189917
optional ICEServerStruct ICEServers[] = 5;
@@ -9954,10 +9953,10 @@ provisional cluster WebRTCTransportProvider = 1363 {
99549953
}
99559954

99569955
/** The WebRTC transport requestor cluster provides a way for stream consumers (e.g. Matter Stream Viewer) to establish a WebRTC connection with a stream provider. */
9957-
cluster WebRTCTransportRequestor = 1364 {
9956+
provisional cluster WebRTCTransportRequestor = 1364 {
99589957
revision 1;
99599958

9960-
enum StreamTypeEnum : enum8 {
9959+
enum StreamUsageEnum : enum8 {
99619960
kInternal = 0;
99629961
kRecording = 1;
99639962
kAnalysis = 2;
@@ -9994,7 +9993,7 @@ cluster WebRTCTransportRequestor = 1364 {
99949993
int16u id = 1;
99959994
node_id peerNodeID = 2;
99969995
fabric_idx peerFabricIndex = 3;
9997-
StreamTypeEnum streamType = 4;
9996+
StreamUsageEnum streamUsage = 4;
99989997
nullable int16u videoStreamID = 5;
99999998
nullable int16u audioStreamID = 6;
100009999
WebRTCMetadataOptions metadataOptions = 7;

0 commit comments

Comments
 (0)