avformat/rdt: Forward whitelists to rdt demuxer
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 23 Oct 2014 22:23:52 +0000 (00:23 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 25 Oct 2014 19:17:27 +0000 (21:17 +0200)
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/rdt.c

index e8dc8f5..158a821 100644 (file)
@@ -523,18 +523,27 @@ static PayloadContext *
 rdt_new_context (void)
 {
     PayloadContext *rdt = av_mallocz(sizeof(PayloadContext));
-    int ret;
     if (!rdt)
         return NULL;
-    ret = avformat_open_input(&rdt->rmctx, "", &ff_rdt_demuxer, NULL);
-    if (ret < 0) {
-        av_free(rdt);
-        return NULL;
-    }
+
+    rdt->rmctx = avformat_alloc_context();
+    if (!rdt->rmctx)
+        av_freep(&rdt);
 
     return rdt;
 }
 
+static int
+rdt_init_context (AVFormatContext *s, int st_index, PayloadContext *rdt)
+{
+    int ret;
+
+    if ((ret = ff_copy_whitelists(rdt->rmctx, s)) < 0)
+        return ret;
+
+    return avformat_open_input(&rdt->rmctx, "", &ff_rdt_demuxer, NULL);
+}
+
 static void
 rdt_free_context (PayloadContext *rdt)
 {
@@ -559,6 +568,7 @@ static RTPDynamicProtocolHandler rdt_ ## n ## _handler = { \
     .codec_id         = AV_CODEC_ID_NONE, \
     .parse_sdp_a_line = rdt_parse_sdp_line, \
     .alloc            = rdt_new_context, \
+    .init             = rdt_init_context, \
     .free             = rdt_free_context, \
     .parse_packet     = rdt_parse_packet \
 }