## gstrtspextension gstrtspextension — Interface for extending RTSP protocols |

## Synopsis

    #include <gst/rtsp/gstrtspextension.h>

                        GstRTSPExtension;
    struct              GstRTSPExtensionInterface;

## Description

This interface is implemented e.g. by the Windows Media Streaming RTSP exentension (rtspwms) and the RealMedia RTSP extension (rtspreal).

Last reviewed on 2007-07-25 (0.10.14)

## Details

### GstRTSPExtension

    typedef struct _GstRTSPExtension GstRTSPExtension;

### struct GstRTSPExtensionInterface

    struct GstRTSPExtensionInterface {
      GTypeInterface parent;

      /* vfunctions */
      gboolean      (*detect_server)    (GstRTSPExtension *ext, GstRTSPMessage *resp);

      GstRTSPResult (*before_send)      (GstRTSPExtension *ext, GstRTSPMessage *req);
      GstRTSPResult (*after_send)       (GstRTSPExtension *ext, GstRTSPMessage *req, GstRTSPMessage *resp);

      GstRTSPResult (*parse_sdp)        (GstRTSPExtension *ext, GstSDPMessage *sdp, GstStructure *s);
      GstRTSPResult (*setup_media)      (GstRTSPExtension *ext, GstSDPMedia *media);

      gboolean      (*configure_stream) (GstRTSPExtension *ext, GstCaps *caps);

      GstRTSPResult (*get_transports)   (GstRTSPExtension *ext, GstRTSPLowerTrans protocols, gchar **transport);

      GstRTSPResult (*stream_select)    (GstRTSPExtension *ext, GstRTSPUrl *url);

      /* signals */
      GstRTSPResult (*send)             (GstRTSPExtension *ext, GstRTSPMessage *req, GstRTSPMessage *resp);

      /* ABI: more vfunctions added later */
      GstRTSPResult (*receive_request)  (GstRTSPExtension *ext, GstRTSPMessage *req);
    };