summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorRonald S. Bultje <rsbultje@gmail.com>2008-09-30 13:23:33 +0000
committerRonald S. Bultje <rsbultje@gmail.com>2008-09-30 13:23:33 +0000
commitab63fb0360f1f5ce5cd7199786940d56c7a10632 (patch)
treebe1d9bdc2fe83f1ddd9dad4386ca7ed857242b3a /libavformat
parenteee2cbff77d957e19c8e7d4407a27a5f42fef5f6 (diff)
Remove access to rdt_data struct in functions called outside of the
DynamicProtocol* context. Doing so could lead to problems if we're accessing Real servers serving non-RDT data (or the other way around). Temporarily, this patch adds a _subscribe2() function which will soon be removed in one of the subsequent commits. OK'ed by Luca in "Realmedia patch" thread on ML. Originally committed as revision 15483 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/rdt.c15
-rw-r--r--libavformat/rdt.h6
-rw-r--r--libavformat/rtsp.c3
3 files changed, 16 insertions, 8 deletions
diff --git a/libavformat/rdt.c b/libavformat/rdt.c
index 2007566b3a..c1238b2d46 100644
--- a/libavformat/rdt.c
+++ b/libavformat/rdt.c
@@ -234,15 +234,20 @@ ff_rdt_parse_packet(RTPDemuxContext *s, AVPacket *pkt,
}
void
-ff_rdt_subscribe_rule (RTPDemuxContext *s, char *cmd, int size,
+ff_rdt_subscribe_rule (char *cmd, int size,
int stream_nr, int rule_nr)
{
- rdt_data *rdt = s->dynamic_protocol_context;
-
av_strlcatf(cmd, size, "stream=%d;rule=%d,stream=%d;rule=%d",
- stream_nr, rule_nr, stream_nr, rule_nr + 1);
+ stream_nr, rule_nr * 2, stream_nr, rule_nr * 2 + 1);
+}
+
+void
+ff_rdt_subscribe_rule2 (RTPDemuxContext *s, char *cmd, int size,
+ int stream_nr, int rule_nr)
+{
+ rdt_data *rdt = s->dynamic_protocol_context;
- rdt_load_mdpr(rdt, s->st, 0);
+ rdt_load_mdpr(rdt, s->st, rule_nr * 2);
}
static unsigned char *
diff --git a/libavformat/rdt.h b/libavformat/rdt.h
index fe2f4f484b..5a13127fb5 100644
--- a/libavformat/rdt.h
+++ b/libavformat/rdt.h
@@ -45,14 +45,16 @@ void av_register_rdt_dynamic_payload_handlers(void);
/**
* Add subscription information to Subscribe parameter string.
*
- * @param s RDT context
* @param cmd string to write the subscription information into.
* @param size size of cmd.
* @param stream_nr stream number.
* @param rule_nr rule number to conform to.
*/
-void ff_rdt_subscribe_rule(RTPDemuxContext *s, char *cmd, int size,
+void ff_rdt_subscribe_rule(char *cmd, int size,
int stream_nr, int rule_nr);
+// FIXME this will be removed ASAP
+void ff_rdt_subscribe_rule2(RTPDemuxContext *s, char *cmd, int size,
+ int stream_nr, int rule_nr);
/**
* Parse RDT-style packet data (header + media data).
diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index cfe4e644b5..6e4d36a6a6 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -1324,7 +1324,8 @@ static int rtsp_read_packet(AVFormatContext *s,
s->filename);
for (i = 0; i < rt->nb_rtsp_streams; i++) {
if (i != 0) av_strlcat(cmd, ",", sizeof(cmd));
- ff_rdt_subscribe_rule(
+ ff_rdt_subscribe_rule(cmd, sizeof(cmd), i, 0);
+ ff_rdt_subscribe_rule2(
rt->rtsp_streams[i]->rtp_ctx,
cmd, sizeof(cmd), i, 0);
}