* returned
*/
char reason[256];
-
- /** The "Content-Base:" field.
- */
- char content_base[4096];
} RTSPMessageHeader;
/**
* of RTSPMessageHeader->real_challenge */
enum RTSPServerType server_type;
+ /** the "RealChallenge1:" field from the server */
+ char real_challenge[64];
+
/** plaintext authorization line (username:password) */
char auth[128];
/** Reusable buffer for receiving packets */
uint8_t* recvbuf;
+
+ /** Filter incoming UDP packets - receive packets only from the right
+ * source address and port. */
+ int filter_source;
+
+ /**
+ * A mask with all requested transport methods
+ */
+ int lower_transport_mask;
+
+ /**
+ * The number of returned packets
+ */
+ uint64_t packets;
} RTSPState;
/**
} RTSPStream;
void ff_rtsp_parse_line(RTSPMessageHeader *reply, const char *buf,
- RTSPState *rt);
+ RTSPState *rt, const char *method);
extern int rtsp_rtp_port_min;
extern int rtsp_rtp_port_max;
*/
int ff_rtsp_fetch_packet(AVFormatContext *s, AVPacket *pkt);
+/**
+ * Do the SETUP requests for each stream for the chosen
+ * lower transport mode.
+ */
+int ff_rtsp_make_setup_request(AVFormatContext *s, const char *host, int port,
+ int lower_transport, const char *real_challenge);
+
+/**
+ * Undo the effect of ff_rtsp_make_setup_request, close the
+ * transport_priv and rtp_handle fields.
+ */
+void ff_rtsp_undo_setup(AVFormatContext *s);
+
#endif /* AVFORMAT_RTSP_H */