@@ -6650,6 +6650,176 @@ provisional cluster CameraAvSettingsUserLevelManagement = 1362 {
66506650 command DPTZRelativeMove(DPTZRelativeMoveRequest): DefaultSuccess = 6;
66516651}
66526652
6653+ /** This cluster implements the upload of Audio and Video streams from the Push AV Stream Transport Cluster using suitable push-based transports. */
6654+ provisional cluster PushAvStreamTransport = 1365 {
6655+ revision 1;
6656+
6657+ enum ContainerFormatEnum : enum8 {
6658+ kCMAF = 0 [spec_name = "CMAF"];
6659+ }
6660+
6661+ enum IngestMethodsEnum : enum8 {
6662+ kCMAFIngest = 0;
6663+ }
6664+
6665+ enum StatusCodeEnum : enum8 {
6666+ kInvalidTLSEndpoint = 2;
6667+ kInvalidStream = 3;
6668+ kInvalidURL = 4;
6669+ kInvalidZone = 5;
6670+ kInvalidCombination = 6;
6671+ kInvalidTriggerType = 7;
6672+ kInvalidTransportStatus = 8;
6673+ }
6674+
6675+ enum TransportStatusEnum : enum8 {
6676+ kActive = 0;
6677+ kInactive = 1;
6678+ }
6679+
6680+ enum TransportTriggerTypeEnum : enum8 {
6681+ kCommand = 0;
6682+ kMotion = 1;
6683+ kContinuous = 2;
6684+ }
6685+
6686+ enum TriggerActivationReasonEnum : enum8 {
6687+ kUserInitiated = 0;
6688+ kAutomation = 1;
6689+ kEmergency = 2;
6690+ }
6691+
6692+ bitmap Feature : bitmap32 {
6693+ kPerZoneSensitivity = 0x1;
6694+ kMetadata = 0x2;
6695+ }
6696+
6697+ struct TransportMotionTriggerTimeControlStruct {
6698+ int16u initialDuration = 0;
6699+ int16u augmentationDuration = 1;
6700+ elapsed_s maxDuration = 2;
6701+ int16u blindDuration = 3;
6702+ }
6703+
6704+ struct TransportZoneOptionsStruct {
6705+ nullable int16u zone = 0;
6706+ optional int8u sensitivity = 1;
6707+ }
6708+
6709+ struct TransportTriggerOptionsStruct {
6710+ TransportTriggerTypeEnum triggerType = 0;
6711+ optional nullable TransportZoneOptionsStruct motionZones[] = 1;
6712+ optional nullable int8u motionSensitivity = 2;
6713+ optional TransportMotionTriggerTimeControlStruct motionTimeControl = 3;
6714+ optional int16u maxPreRollLen = 4;
6715+ }
6716+
6717+ struct CMAFContainerOptionsStruct {
6718+ int16u chunkDuration = 0;
6719+ optional octet_string<16> CENCKey = 1;
6720+ optional boolean metadataEnabled = 2;
6721+ optional octet_string<16> CENCKeyID = 3;
6722+ }
6723+
6724+ struct ContainerOptionsStruct {
6725+ ContainerFormatEnum containerType = 0;
6726+ optional CMAFContainerOptionsStruct CMAFContainerOptions = 1;
6727+ }
6728+
6729+ struct TransportOptionsStruct {
6730+ StreamUsageEnum streamUsage = 0;
6731+ optional nullable int16u videoStreamID = 1;
6732+ optional nullable int16u audioStreamID = 2;
6733+ int16u endpointID = 3;
6734+ long_char_string<2000> url = 4;
6735+ TransportTriggerOptionsStruct triggerOptions = 5;
6736+ IngestMethodsEnum ingestMethod = 6;
6737+ ContainerOptionsStruct containerOptions = 7;
6738+ optional epoch_s expiryTime = 8;
6739+ }
6740+
6741+ fabric_scoped struct TransportConfigurationStruct {
6742+ int16u connectionID = 0;
6743+ TransportStatusEnum transportStatus = 1;
6744+ optional TransportOptionsStruct transportOptions = 2;
6745+ fabric_idx fabricIndex = 254;
6746+ }
6747+
6748+ struct SupportedFormatStruct {
6749+ ContainerFormatEnum containerFormat = 0;
6750+ IngestMethodsEnum ingestMethod = 1;
6751+ }
6752+
6753+ info event PushTransportBegin = 0 {
6754+ int16u connectionID = 0;
6755+ TransportTriggerTypeEnum triggerType = 1;
6756+ optional TriggerActivationReasonEnum activationReason = 2;
6757+ }
6758+
6759+ info event PushTransportEnd = 1 {
6760+ int16u connectionID = 0;
6761+ TransportTriggerTypeEnum triggerType = 1;
6762+ optional TriggerActivationReasonEnum activationReason = 2;
6763+ }
6764+
6765+ readonly attribute SupportedFormatStruct supportedFormats[] = 0;
6766+ readonly attribute TransportConfigurationStruct currentConnections[] = 1;
6767+ readonly attribute command_id generatedCommandList[] = 65528;
6768+ readonly attribute command_id acceptedCommandList[] = 65529;
6769+ readonly attribute attrib_id attributeList[] = 65531;
6770+ readonly attribute bitmap32 featureMap = 65532;
6771+ readonly attribute int16u clusterRevision = 65533;
6772+
6773+ request struct AllocatePushTransportRequest {
6774+ TransportOptionsStruct transportOptions = 0;
6775+ }
6776+
6777+ response struct AllocatePushTransportResponse = 1 {
6778+ TransportConfigurationStruct transportConfiguration = 0;
6779+ }
6780+
6781+ request struct DeallocatePushTransportRequest {
6782+ int16u connectionID = 0;
6783+ }
6784+
6785+ request struct ModifyPushTransportRequest {
6786+ int16u connectionID = 0;
6787+ TransportOptionsStruct transportOptions = 1;
6788+ }
6789+
6790+ request struct SetTransportStatusRequest {
6791+ nullable int16u connectionID = 0;
6792+ TransportStatusEnum transportStatus = 1;
6793+ }
6794+
6795+ request struct ManuallyTriggerTransportRequest {
6796+ int16u connectionID = 0;
6797+ TriggerActivationReasonEnum activationReason = 1;
6798+ optional TransportMotionTriggerTimeControlStruct timeControl = 2;
6799+ }
6800+
6801+ request struct FindTransportRequest {
6802+ optional nullable int16u connectionID = 0;
6803+ }
6804+
6805+ response struct FindTransportResponse = 7 {
6806+ TransportConfigurationStruct transportConfigurations[] = 0;
6807+ }
6808+
6809+ /** This command SHALL allocate a transport and return a PushTransportConnectionID. */
6810+ fabric command access(invoke: manage) AllocatePushTransport(AllocatePushTransportRequest): AllocatePushTransportResponse = 0;
6811+ /** This command SHALL be generated to request the Node deallocates the specified transport. */
6812+ fabric command access(invoke: manage) DeallocatePushTransport(DeallocatePushTransportRequest): DefaultSuccess = 2;
6813+ /** This command is used to request the Node modifies the configuration of the specified push transport. */
6814+ fabric command access(invoke: manage) ModifyPushTransport(ModifyPushTransportRequest): DefaultSuccess = 3;
6815+ /** This command SHALL be generated to request the Node modifies the Transport Status of a specified transport or all transports. */
6816+ fabric command access(invoke: manage) SetTransportStatus(SetTransportStatusRequest): DefaultSuccess = 4;
6817+ /** This command SHALL be generated to request the Node to manually start the specified push transport. */
6818+ fabric command ManuallyTriggerTransport(ManuallyTriggerTransportRequest): DefaultSuccess = 5;
6819+ /** This command SHALL return the Transport Configuration for the specified push transport or all allocated transports for the fabric if null. */
6820+ fabric command FindTransport(FindTransportRequest): FindTransportResponse = 6;
6821+ }
6822+
66536823/** This cluster provides facilities to configure and play Chime sounds, such as those used in a doorbell. */
66546824provisional cluster Chime = 1366 {
66556825 revision 1;
@@ -8924,6 +9094,27 @@ endpoint 1 {
89249094 handle command DPTZRelativeMove;
89259095 }
89269096
9097+ server cluster PushAvStreamTransport {
9098+ emits event PushTransportBegin;
9099+ emits event PushTransportEnd;
9100+ callback attribute supportedFormats;
9101+ callback attribute currentConnections;
9102+ callback attribute generatedCommandList;
9103+ callback attribute acceptedCommandList;
9104+ callback attribute attributeList;
9105+ ram attribute featureMap default = 0;
9106+ ram attribute clusterRevision default = 1;
9107+
9108+ handle command AllocatePushTransport;
9109+ handle command AllocatePushTransportResponse;
9110+ handle command DeallocatePushTransport;
9111+ handle command ModifyPushTransport;
9112+ handle command SetTransportStatus;
9113+ handle command ManuallyTriggerTransport;
9114+ handle command FindTransport;
9115+ handle command FindTransportResponse;
9116+ }
9117+
89279118 server cluster Chime {
89289119 callback attribute installedChimeSounds;
89299120 callback attribute selectedChime;
0 commit comments