From 68c813081b48aaa910cd2e7832314a529c4c4a36 Mon Sep 17 00:00:00 2001 From: Martin Storsjö Date: Fri, 25 May 2012 22:26:00 +0300 Subject: rtpenc_chain: Return an error code instead of just a plain pointer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Also check the return value in sapenc. Signed-off-by: Martin Storsjö --- libavformat/rtpenc_chain.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'libavformat/rtpenc_chain.c') diff --git a/libavformat/rtpenc_chain.c b/libavformat/rtpenc_chain.c index 3b5ea6c586..3742099314 100644 --- a/libavformat/rtpenc_chain.c +++ b/libavformat/rtpenc_chain.c @@ -25,8 +25,8 @@ #include "avio_internal.h" #include "libavutil/opt.h" -AVFormatContext *ff_rtp_chain_mux_open(AVFormatContext *s, AVStream *st, - URLContext *handle, int packet_size) +int ff_rtp_chain_mux_open(AVFormatContext **out, AVFormatContext *s, + AVStream *st, URLContext *handle, int packet_size) { AVFormatContext *rtpctx = NULL; int ret; @@ -34,17 +34,23 @@ AVFormatContext *ff_rtp_chain_mux_open(AVFormatContext *s, AVStream *st, uint8_t *rtpflags; AVDictionary *opts = NULL; - if (!rtp_format) + if (!rtp_format) { + ret = AVERROR(ENOSYS); goto fail; + } /* Allocate an AVFormatContext for each output stream */ rtpctx = avformat_alloc_context(); - if (!rtpctx) + if (!rtpctx) { + ret = AVERROR(ENOMEM); goto fail; + } rtpctx->oformat = rtp_format; - if (!avformat_new_stream(rtpctx, NULL)) + if (!avformat_new_stream(rtpctx, NULL)) { + ret = AVERROR(ENOMEM); goto fail; + } /* Pass the interrupt callback on */ rtpctx->interrupt_callback = s->interrupt_callback; /* Copy the max delay setting; the rtp muxer reads this. */ @@ -76,14 +82,15 @@ AVFormatContext *ff_rtp_chain_mux_open(AVFormatContext *s, AVStream *st, av_free(ptr); } avformat_free_context(rtpctx); - return NULL; + return ret; } - return rtpctx; + *out = rtpctx; + return 0; fail: av_free(rtpctx); if (handle) ffurl_close(handle); - return NULL; + return ret; } -- cgit v1.2.3