summaryrefslogtreecommitdiff
path: root/libavformat/rtsp.h
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2013-01-01 23:41:29 +0200
committerMartin Storsjö <martin@martin.st>2013-01-03 15:15:27 +0200
commite96406eda4f143f101bd44372f7b2d542183000a (patch)
tree736ef477e160701b05627f562bb533c83f0e26a5 /libavformat/rtsp.h
parent3f95f0dda55fca74b646937095a02a8fa9776622 (diff)
rtsp: Add support for depacketizing RTP data via custom IO
To use this, set sdpflags=custom_io to the sdp demuxer. During the avformat_open_input call, the SDP is read from the AVFormatContext AVIOContext (ctx->pb) - after the avformat_open_input call, during the av_read_frame() calls, the same ctx->pb is used for reading packets (and sending back RTCP RR packets). Normally, one would use this with a read-only AVIOContext for the SDP during the avformat_open_input call, then close that one and replace it with a read-write one for the packets after the avformat_open_input call has returned. This allows using the RTP depacketizers as "pure" demuxers, without having them tied to the libavformat network IO. Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavformat/rtsp.h')
-rw-r--r--libavformat/rtsp.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/libavformat/rtsp.h b/libavformat/rtsp.h
index 043b67aa6f..3260f6c92d 100644
--- a/libavformat/rtsp.h
+++ b/libavformat/rtsp.h
@@ -42,6 +42,10 @@ enum RTSPLowerTransport {
RTSP_LOWER_TRANSPORT_HTTP = 8, /**< HTTP tunneled - not a proper
transport mode as such,
only for use via AVOptions */
+ RTSP_LOWER_TRANSPORT_CUSTOM = 16, /**< Custom IO - not a public
+ option for lower_transport_mask,
+ but set in the SDP demuxer based
+ on a flag. */
};
/**
@@ -396,6 +400,7 @@ typedef struct RTSPState {
receive packets only from the right
source address and port. */
#define RTSP_FLAG_LISTEN 0x2 /**< Wait for incoming connections. */
+#define RTSP_FLAG_CUSTOM_IO 0x4 /**< Do all IO via the AVIOContext. */
/**
* Describe a single stream, as identified by a single m= line block in the