1#![allow(unreachable_pub, missing_docs)]
5
6use derive_more::{Display, Error};
7use serde::{Deserialize, Serialize};
8use serde_repr::{Deserialize_repr, Serialize_repr};
9
10pub const GST_SPLIT_MUX_SINK_FRAGMENT_MESSAGE_CLOSED: &str = "splitmuxsink-fragment-closed";
11pub const GST_SPLIT_MUX_SINK_FRAGMENT_MESSAGE_OPENED: &str = "splitmuxsink-fragment-opened";
12
13#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
17pub struct Response {
18 pub code: ResponseCode,
20 pub description: String,
23 pub response: ResponseT,
25}
26
27#[derive(Serialize_repr, Deserialize_repr, PartialEq, Eq, Debug, Clone, Copy, Error, Display)]
31#[repr(u8)]
32pub enum ResponseCode {
33 Success = 0,
35 NullArgument = 1,
37 BadDescription = 2,
39 ExistingName = 3,
41 MissingInitialization = 4,
43 NoPipeline = 5,
45 NoResource = 6,
47 NoCreate = 7,
49 ExistingResource = 8,
51 NoUpdate = 9,
53 BadCommand = 10,
55 NoRead = 11,
57 NoConnection = 12,
59 BadValue = 13,
61 StateError = 14,
63 IpcError = 15,
65 EventError = 16,
67 MissingArgument = 17,
69 MissingName = 18,
71}
72
73#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
74#[serde(untagged)]
75pub enum ResponseT {
76 Bus(Option<Bus>),
77 Properties(Properties),
78 Property(Property),
79 GstSplitMuxSinkFragmentOpened(GstSplitMuxSinkFragmentOpened),
80 GstSplitMuxSinkFragmentClosed(GstSplitMuxSinkFragmentClosed),
81}
82
83#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
84pub struct Param {
85 pub description: String,
86 #[serde(rename = "type")]
87 pub _type: String,
88 pub access: String,
89}
90
91#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
94pub struct Properties {
95 pub properties: Vec<Property>,
96 #[serde(skip_serializing_if = "Option::is_none")]
97 pub nodes: Option<Vec<Node>>,
98}
99
100#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
101pub struct Node {
102 pub name: String,
107}
108
109#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
112pub struct Property {
113 pub name: String,
114 pub value: PropertyValue,
115 pub param: Param,
116}
117
118#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
119#[serde(untagged)]
120pub enum PropertyValue {
121 String(String),
122 Integer(i32),
123 Bool(bool),
124}
125
126#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
129pub struct Bus {
130 pub r#type: String,
131 pub source: String,
132 pub timestamp: String,
133 pub seqnum: i64,
134 pub message: String,
135 pub debug: String,
136}
137
138#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
139pub struct GstSplitMuxSinkFragmentMessage {
140 pub location: String,
141 #[serde(rename = "running-time")]
142 pub running_time: u64,
143 pub sink: String,
144}
145
146#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
147pub struct GstSplitMuxSinkFragmentOpened {
148 pub r#type: String,
149 pub source: String,
150 pub timestamp: String,
151 pub seqnum: i64,
152 #[serde(rename = "splitmuxsink-fragment-opened")]
153 pub message: GstSplitMuxSinkFragmentMessage,
154}
155
156#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
157pub struct GstSplitMuxSinkFragmentClosed {
158 pub r#type: String,
159 pub source: String,
160 pub timestamp: String,
161 pub seqnum: i64,
162 #[serde(rename = "splitmuxsink-fragment-closed")]
163 pub message: GstSplitMuxSinkFragmentMessage,
164}