Commit 6a3515a5 authored by Jan Sebechlebsky's avatar Jan Sebechlebsky Committed by Marton Balint

avformat/utils: Add ff_format_output_open() function

Add ff_format_output_open utility function to wrap
io_open callback of AVFormatContext structure.
Signed-off-by: 's avatarJan Sebechlebsky <sebechlebskyjan@gmail.com>
Signed-off-by: 's avatarMarton Balint <cus@passwd.hu>
parent e144b86f
...@@ -572,6 +572,16 @@ int ffio_open2_wrapper(struct AVFormatContext *s, AVIOContext **pb, const char * ...@@ -572,6 +572,16 @@ int ffio_open2_wrapper(struct AVFormatContext *s, AVIOContext **pb, const char *
*/ */
#define FFERROR_REDO FFERRTAG('R','E','D','O') #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 * A wrapper around AVFormatContext.io_close that should be used
* instead of calling the pointer directly. * instead of calling the pointer directly.
......
...@@ -5169,6 +5169,16 @@ int av_apply_bitstream_filters(AVCodecContext *codec, AVPacket *pkt, ...@@ -5169,6 +5169,16 @@ int av_apply_bitstream_filters(AVCodecContext *codec, AVPacket *pkt,
FF_ENABLE_DEPRECATION_WARNINGS FF_ENABLE_DEPRECATION_WARNINGS
#endif #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) void ff_format_io_close(AVFormatContext *s, AVIOContext **pb)
{ {
if (*pb) if (*pb)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment