X-Git-Url: https://git.piment-noir.org/?p=deb_ffmpeg.git;a=blobdiff_plain;f=ffmpeg%2Flibavformat%2Frdt.c;h=158a8212e1444e945fb95d18d80416e4c4cf5014;hp=e8dc8f5892f6316a53309f94f2c45a09ca1f9e76;hb=f6fa7814ccfe3e76514b36cf04f5cd3cb657c8cf;hpb=2ba45a602cbfa7b771effba9b11bb4245c21bc00 diff --git a/ffmpeg/libavformat/rdt.c b/ffmpeg/libavformat/rdt.c index e8dc8f5..158a821 100644 --- a/ffmpeg/libavformat/rdt.c +++ b/ffmpeg/libavformat/rdt.c @@ -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 \ }