9 #include <smolrtsp/priv/compiler_attrs.h>
47 SmolRTSP_Writer w) SMOLRTSP_PRIV_MUST_USE;
63 ...) SMOLRTSP_PRIV_MUST_USE SMOLRTSP_PRIV_GCC_ATTR(format(printf, 3, 4));
113 #define SMOLRTSP_SDP_DESCRIBE(ret, w, ...) \
114 SMOLRTSP_PRIV_SDP_DESCRIBE(ret, w, __VA_ARGS__)
116 #ifndef DOXYGEN_IGNORE
118 #include <metalang99.h>
120 #define SMOLRTSP_PRIV_SDP_DESCRIBE(ret, w, ...) \
122 ssize_t smolrtsp_priv_sdp_ret = 0; \
123 ML99_EVAL(ML99_variadicsForEach( \
125 ML99_appl(v(SMOLRTSP_PRIV_genSdpPrintf), v(ret, w)), \
130 #define SMOLRTSP_PRIV_genSdpPrintf_IMPL(ret, w, ty, ...) \
132 smolrtsp_priv_sdp_ret = smolrtsp_sdp_printf(w, ty, __VA_ARGS__); \
133 if (smolrtsp_priv_sdp_ret < 0) { \
136 ret += smolrtsp_priv_sdp_ret; \
139 #define SMOLRTSP_PRIV_genSdpPrintf_ARITY 2
146 #define SMOLRTSP_SDP_VERSION 'v'
151 #define SMOLRTSP_SDP_ORIGIN 'o'
156 #define SMOLRTSP_SDP_SESSION_NAME 's'
161 #define SMOLRTSP_SDP_INFO 'i'
166 #define SMOLRTSP_SDP_URI 'u'
171 #define SMOLRTSP_SDP_EMAIL 'e'
176 #define SMOLRTSP_SDP_PHONE 'p'
181 #define SMOLRTSP_SDP_CONNECTION 'c'
186 #define SMOLRTSP_SDP_BANDWIDTH 'b'
191 #define SMOLRTSP_SDP_TIME 't'
196 #define SMOLRTSP_SDP_REPEAT 'r'
201 #define SMOLRTSP_SDP_TIME_ZONES 'z'
206 #define SMOLRTSP_SDP_ENCRYPTION_KEYS 'k'
211 #define SMOLRTSP_SDP_ATTR 'a'
216 #define SMOLRTSP_SDP_MEDIA 'm'
char SmolRTSP_SdpType
An SDP type (one character).
Definition: sdp.h:17
ssize_t smolrtsp_sdp_printf(SmolRTSP_Writer w, SmolRTSP_SdpType ty, const char *restrict fmt,...) SMOLRTSP_PRIV_MUST_USE SMOLRTSP_PRIV_GCC_ATTR(format(printf
Printfs a single SDP line to w.
ssize_t SmolRTSP_SdpLine_serialize(const SmolRTSP_SdpLine *restrict self, SmolRTSP_Writer w) SMOLRTSP_PRIV_MUST_USE
Serialises self into w.
An SDP line.
Definition: sdp.h:22
SmolRTSP_SdpType ty
The type of this line.
Definition: sdp.h:26
CharSlice99 value
The value of this line.
Definition: sdp.h:31