RTSP: Shrink SDP fmtp parsing buffer size
authorJosh Allmann <joshua.allmann@gmail.com>
Mon, 14 Jun 2010 08:23:59 +0000 (08:23 +0000)
committerMartin Storsjö <martin@martin.st>
Mon, 14 Jun 2010 08:23:59 +0000 (08:23 +0000)
Since the parsing of Vorbis/Theora fmtp headers is handled by the
parse_sdp_a_line function pointer now, the buffer in sdp_parse_fmtp
doesn't need to be this large any longer.

Patch by Josh Allmann, joshua dot allmann at gmail

Originally committed as revision 23599 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/rtsp.c

index fc422aa..f1bd870 100644 (file)
@@ -273,9 +273,7 @@ int ff_rtsp_next_attr_and_value(const char **p, char *attr, int attr_size,
 static void sdp_parse_fmtp(AVStream *st, const char *p)
 {
     char attr[256];
-    /* Vorbis setup headers can be up to 12KB and are sent base64
-     * encoded, giving a 12KB * (4/3) = 16KB FMTP line. */
-    char value[16384];
+    char value[4096];
     int i;
     RTSPStream *rtsp_st = st->priv_data;
     AVCodecContext *codec = st->codec;
@@ -541,7 +539,8 @@ static int sdp_parse(AVFormatContext *s, const char *content)
      * "rulebooks" describing their properties. Therefore, the SDP line
      * buffer is large.
      *
-     * The Vorbis FMTP line can be up to 16KB - see sdp_parse_fmtp. */
+     * The Vorbis FMTP line can be up to 16KB - see xiph_parse_sdp_line
+     * in rtpdec_xiph.c. */
     char buf[16384], *q;
     SDPParseState sdp_parse_state, *s1 = &sdp_parse_state;