OSDN Git Service

rtpdec: Change enc_name to a pointer instead of a fixed-size buffer
authorMartin Storsjö <martin@martin.st>
Mon, 23 Feb 2015 19:53:19 +0000 (21:53 +0200)
committerMartin Storsjö <martin@martin.st>
Tue, 24 Feb 2015 14:21:18 +0000 (16:21 +0200)
This avoids allocating space for a too large buffer for all the
name strings.

Signed-off-by: Martin Storsjö <martin@martin.st>
libavformat/rtpdec.c
libavformat/rtpdec.h

index f040ea6..d0b25bc 100644 (file)
@@ -113,7 +113,8 @@ RTPDynamicProtocolHandler *ff_rtp_handler_find_by_name(const char *name,
     RTPDynamicProtocolHandler *handler;
     for (handler = rtp_first_dynamic_payload_handler;
          handler; handler = handler->next)
-        if (!av_strcasecmp(name, handler->enc_name) &&
+        if (handler->enc_name &&
+            !av_strcasecmp(name, handler->enc_name) &&
             codec_type == handler->codec_type)
             return handler;
     return NULL;
index 46b08ce..9f1a475 100644 (file)
@@ -113,7 +113,7 @@ typedef int (*DynamicPayloadPacketHandlerProc)(AVFormatContext *ctx,
                                                int len, uint16_t seq, int flags);
 
 struct RTPDynamicProtocolHandler {
-    const char enc_name[50];
+    const char *enc_name;
     enum AVMediaType codec_type;
     enum AVCodecID codec_id;
     int static_payload_id; /* 0 means no payload id is set. 0 is a valid