On Mon, 4 Jul 2016, sebechlebsky...@gmail.com wrote:
From: Jan Sebechlebsky <sebechlebsky...@gmail.com> Add ff_format_output_open utility function to wrap io_open callback of AVFormatContext structure. Signed-off-by: Jan Sebechlebsky <sebechlebsky...@gmail.com> --- libavformat/internal.h | 10 ++++++++++ libavformat/utils.c | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/libavformat/internal.h b/libavformat/internal.h index 1b44bea..0119749 100644 --- a/libavformat/internal.h +++ b/libavformat/internal.h @@ -572,6 +572,16 @@ int ffio_open2_wrapper(struct AVFormatContext *s, AVIOContext **pb, const char * */ #define FFERROR_REDO FFERRTAG('R','E','D','O') +/** + * Utility function to open IO stream of output format. + * + * @param s AVFormatContext + * @param url URL or file name to open for writing + * @options optional options which will be passed to io_open callback + * @return >=0 on success, negative AVERROR in case of failure + */ +int ff_format_output_open(AVFormatContext *s, const char *url, AVDictionary **options); + /* * A wrapper around AVFormatContext.io_close that should be used * instead of calling the pointer directly. diff --git a/libavformat/utils.c b/libavformat/utils.c index 8c16374..d728ca3 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -5168,6 +5168,16 @@ int av_apply_bitstream_filters(AVCodecContext *codec, AVPacket *pkt, FF_ENABLE_DEPRECATION_WARNINGS #endif +int ff_format_output_open(AVFormatContext *s, const char *url, AVDictionary **options) +{ + if (!s->oformat) + return AVERROR(EINVAL); + + if (!(s->oformat->flags & AVFMT_NOFILE)) + return s->io_open(s, &s->pb, url, AVIO_FLAG_WRITE, options); + return 0; +} + void ff_format_io_close(AVFormatContext *s, AVIOContext **pb) {
LGTM, will apply in a few days. Regards, Marton _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel