Appendix D: Minimal RTSP implementation (Implémentation RTSP minimale)
Appendix D: Minimal RTSP implementation (Implémentation RTSP minimale)
D.1 Client
Une implémentation client DOIT pouvoir :
- Générer les requêtes SETUP, TEARDOWN et soit PLAY (client de lecture minimal), soit RECORD (client d'enregistrement minimal). Si RECORD est implémenté, ANNOUNCE DOIT l'être aussi.
- Inclure les en-têtes CSeq, Connection, Session, Transport. Si ANNOUNCE est implémenté, pouvoir inclure Content-Language, Content-Encoding, Content-Length, Content-Type.
- Analyser et comprendre dans les réponses : CSeq, Connection, Session, Transport, Content-Language, Content-Encoding, Content-Length, Content-Type. Si RECORD est implémenté, comprendre Location. Les implémentations conformes RTP devraient aussi implémenter RTP-Info.
- Comprendre la classe de chaque code d'erreur et informer l'utilisateur final des classes 4xx et 5xx si présent ; l'exigence peut être assouplie si l'utilisateur refuse explicitement certaines notifications.
- S'attendre aux requêtes asynchrones du serveur (ex. ANNOUNCE) et y répondre ; cela n'implique pas nécessairement d'implémenter ANNOUNCE, mais toute requête du serveur DOIT recevoir une réponse positive ou négative.
Fortement recommandé pour l'interopérabilité : RTP/AVP/UDP, User-Agent, SDP selon l'annexe C, formats d'initialisation en entrée standard ou ligne de commande comme application « helper ». Les exigences ci-dessus ne sont que des lignes directrices si l'application diffère de la vision initiale.
D.1.1 Basic Playback
Pour la lecture à la demande, le client DOIT en outre : générer PAUSE ; implémenter REDIRECT et l'en-tête Location.
D.1.2 Authentication-enabled
Pour les serveurs exigeant l'authentification, le client DOIT en outre : reconnaître 401 ; analyser et inclure WWW-Authenticate ; implémenter Basic et Digest Authentication.
D.2 Server
Une implémentation serveur minimale DOIT :
- Implémenter SETUP, TEARDOWN, OPTIONS et soit PLAY (serveur de lecture minimal), soit RECORD (serveur d'enregistrement minimal). Si RECORD est implémenté, ANNOUNCE devrait l'être.
- Inclure dans les réponses : Connection, Content-Length, Content-Type, Content-Language, Content-Encoding, Transport, Public ; Location si RECORD ; RTP-Info si conforme RTP.
- Analyser et répondre correctement à Connection, Session, Transport, Require dans les requêtes.
Recommandé : RTP/AVP/UDP, en-tête Server, DESCRIBE, génération SDP (annexe C).
D.2.1 Basic Playback
Pour la lecture à la demande, le serveur DOIT en outre : reconnaître Range et renvoyer une erreur si le seek n'est pas pris en charge ; implémenter PAUSE. Fortement recommandé : Range avec unités NPT (SMPTE recommandé), durée de la présentation dans l'initialisation, mappages timestamp → NPT (rtptime dans RTP-Info pour RTP).
D.2.2 Authentication-enabled
Le serveur DOIT en outre : générer 401 si nécessaire ; analyser et inclure WWW-Authenticate ; implémenter Basic et Digest Authentication.