rtpdec: Free depacketizers if the init function failed
[ffmpeg.git] / libavformat / rtpdec_ilbc.c
index 7159dcf..f47abc1 100644 (file)
@@ -23,8 +23,9 @@
 #include "rtpdec_formats.h"
 #include "libavutil/avstring.h"
 
-static int ilbc_parse_fmtp(AVStream *stream, PayloadContext *data,
-                           char *attr, char *value)
+static int ilbc_parse_fmtp(AVFormatContext *s,
+                           AVStream *stream, PayloadContext *data,
+                           const char *attr, const char *value)
 {
     if (!strcmp(attr, "mode")) {
         int mode = atoi(value);
@@ -36,7 +37,7 @@ static int ilbc_parse_fmtp(AVStream *stream, PayloadContext *data,
             stream->codec->block_align = 50;
             break;
         default:
-            av_log(NULL, AV_LOG_ERROR, "Unsupported iLBC mode %d\n", mode);
+            av_log(s, AV_LOG_ERROR, "Unsupported iLBC mode %d\n", mode);
             return AVERROR(EINVAL);
         }
     }
@@ -54,7 +55,7 @@ static int ilbc_parse_sdp_line(AVFormatContext *s, int st_index,
     st = s->streams[st_index];
 
     if (av_strstart(line, "fmtp:", &p)) {
-        int ret = ff_parse_fmtp(st, data, p, ilbc_parse_fmtp);
+        int ret = ff_parse_fmtp(s, st, data, p, ilbc_parse_fmtp);
         if (ret < 0)
             return ret;
         if (!st->codec->block_align) {
@@ -68,6 +69,6 @@ static int ilbc_parse_sdp_line(AVFormatContext *s, int st_index,
 RTPDynamicProtocolHandler ff_ilbc_dynamic_handler = {
     .enc_name         = "iLBC",
     .codec_type       = AVMEDIA_TYPE_AUDIO,
-    .codec_id         = CODEC_ID_ILBC,
+    .codec_id         = AV_CODEC_ID_ILBC,
     .parse_sdp_a_line = ilbc_parse_sdp_line,
 };