summaryrefslogtreecommitdiff
path: root/libavformat/rtpenc_chain.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavformat/rtpenc_chain.c')
-rw-r--r--libavformat/rtpenc_chain.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/libavformat/rtpenc_chain.c b/libavformat/rtpenc_chain.c
index 19ea98f643..09b4ebd7c3 100644
--- a/libavformat/rtpenc_chain.c
+++ b/libavformat/rtpenc_chain.c
@@ -50,11 +50,7 @@ AVFormatContext *ff_rtp_chain_mux_open(AVFormatContext *s, AVStream *st,
/* Set the synchronized start time. */
rtpctx->start_time_realtime = s->start_time_realtime;
- /* Remove the local codec, link to the original codec
- * context instead, to give the rtp muxer access to
- * codec parameters. */
- av_free(rtpctx->streams[0]->codec);
- rtpctx->streams[0]->codec = st->codec;
+ avcodec_copy_context(rtpctx->streams[0]->codec, st->codec);
if (handle) {
url_fdopen(&rtpctx->pb, handle);
@@ -70,6 +66,8 @@ AVFormatContext *ff_rtp_chain_mux_open(AVFormatContext *s, AVStream *st,
url_close_dyn_buf(rtpctx->pb, &ptr);
av_free(ptr);
}
+ av_free(rtpctx->streams[0]->codec->extradata);
+ av_free(rtpctx->streams[0]->codec);
av_free(rtpctx->streams[0]->info);
av_free(rtpctx->streams[0]);
av_free(rtpctx);