[FFmpeg-cvslog] rtpenc_chain: Check for errors from ffio_fdopen and ffio_open_dyn_packet_buf

Martin Storsjö git at videolan.org
Wed Aug 7 12:12:36 CEST 2013


ffmpeg | branch: master | Martin Storsjö <martin at martin.st> | Wed Aug  7 10:20:07 2013 +0300| [62572435d4106098c090fb8f129a9090e41ff1eb] | committer: Martin Storsjö

rtpenc_chain: Check for errors from ffio_fdopen and ffio_open_dyn_packet_buf

Signed-off-by: Martin Storsjö <martin at martin.st>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=62572435d4106098c090fb8f129a9090e41ff1eb
---

 libavformat/rtpenc_chain.c |   13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/libavformat/rtpenc_chain.c b/libavformat/rtpenc_chain.c
index 935dd6c..10c4020 100644
--- a/libavformat/rtpenc_chain.c
+++ b/libavformat/rtpenc_chain.c
@@ -75,16 +75,19 @@ int ff_rtp_chain_mux_open(AVFormatContext **out, AVFormatContext *s,
     avcodec_copy_context(rtpctx->streams[0]->codec, st->codec);
 
     if (handle) {
-        ffio_fdopen(&rtpctx->pb, handle);
+        ret = ffio_fdopen(&rtpctx->pb, handle);
+        if (ret < 0)
+            ffurl_close(handle);
     } else
-        ffio_open_dyn_packet_buf(&rtpctx->pb, packet_size);
-    ret = avformat_write_header(rtpctx, &opts);
+        ret = ffio_open_dyn_packet_buf(&rtpctx->pb, packet_size);
+    if (!ret)
+        ret = avformat_write_header(rtpctx, &opts);
     av_dict_free(&opts);
 
     if (ret) {
-        if (handle) {
+        if (handle && rtpctx->pb) {
             avio_close(rtpctx->pb);
-        } else {
+        } else if (rtpctx->pb) {
             uint8_t *ptr;
             avio_close_dyn_buf(rtpctx->pb, &ptr);
             av_free(ptr);



More information about the ffmpeg-cvslog mailing list