[FFmpeg-cvslog] r15483 - in trunk/libavformat: rdt.c rdt.h rtsp.c
rbultje
subversion
Tue Sep 30 15:23:33 CEST 2008
Author: rbultje
Date: Tue Sep 30 15:23:33 2008
New Revision: 15483
Log:
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.
Modified:
trunk/libavformat/rdt.c
trunk/libavformat/rdt.h
trunk/libavformat/rtsp.c
Modified: trunk/libavformat/rdt.c
==============================================================================
--- trunk/libavformat/rdt.c (original)
+++ trunk/libavformat/rdt.c Tue Sep 30 15:23:33 2008
@@ -234,15 +234,20 @@ ff_rdt_parse_packet(RTPDemuxContext *s,
}
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);
+}
- rdt_load_mdpr(rdt, s->st, 0);
+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, rule_nr * 2);
}
static unsigned char *
Modified: trunk/libavformat/rdt.h
==============================================================================
--- trunk/libavformat/rdt.h (original)
+++ trunk/libavformat/rdt.h Tue Sep 30 15:23:33 2008
@@ -45,14 +45,16 @@ void av_register_rdt_dynamic_payload_han
/**
* 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).
Modified: trunk/libavformat/rtsp.c
==============================================================================
--- trunk/libavformat/rtsp.c (original)
+++ trunk/libavformat/rtsp.c Tue Sep 30 15:23:33 2008
@@ -1324,7 +1324,8 @@ static int rtsp_read_packet(AVFormatCont
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);
}
More information about the ffmpeg-cvslog
mailing list