@@ -453,3 +453,43 @@ def get_atom_fields(self) -> set[str]:
453453 "audio_encoding" ,
454454 "aac_bitrate_mode" ,
455455 } | super ().get_atom_fields ()
456+
457+
458+ @dataclass
459+ class SRT (BoomboxEndpoint ):
460+ """Endpoint for communication over Secure Reliable Transport (SRT) protocol.
461+
462+ When using this endpoint as input, Boombox will act as an SRT server and expect
463+ connections from clients at the provided address. When using as output,
464+ Boombox will act as an SRT client and try to connect to a server under the
465+ provided address.
466+
467+ Attributes
468+ ----------
469+ url : str
470+ Address of the SRT server in the form of <ip>:<port>. When using this
471+ endpoint as input, this field determines on which address the server
472+ will listen for connections. When using for output, it will determine
473+ to what address to connect.
474+ stream_id : str, optional
475+ ID of the stream. When using this endpoint as input, this field
476+ determines the ID of the stream which the server will accept. When
477+ using for output, it will determine ID of the stream being sent.
478+ password : str, optional
479+ Password used to authenticate the connection. When using this endpoint
480+ as input, this field determines the password the server will require
481+ from clients when connecting. When using for output, it will determine
482+ what password the client will use to authenticate.
483+ """
484+
485+ url : str
486+ _ : KW_ONLY
487+ stream_id : str
488+ password : str
489+
490+
491+ @dataclass
492+ class Player (BoomboxEndpoint ):
493+ """Endpoint that plays the output stream with the SDL2 media player."""
494+
495+ pass
0 commit comments