summaryrefslogtreecommitdiff
path: root/libavformat/internal.h
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2016-01-16 17:53:43 +0100
committerAnton Khirnov <anton@khirnov.net>2016-01-24 16:45:32 +0100
commit9f61abc8111c7c43f49ca012e957a108b9cc7610 (patch)
tree87af58cf56a1298f4b9b6a242d9c3a9451388ec8 /libavformat/internal.h
parent68395f8c99393c281a08139d20a7a04398b2fd04 (diff)
lavf: allow custom IO for all files
Some (de)muxers open additional files beyond the main IO context. Currently, they call avio_open() directly, which prevents the caller from using custom IO for such streams. This commit adds callbacks to AVFormatContext that default to avio_open2()/avio_close(), but can be overridden by the caller. All muxers and demuxers using AVIO are switched to using those callbacks instead of calling avio_open()/avio_close() directly. (de)muxers that use the URLProtocol layer directly instead of AVIO remain unconverted for now. This should be fixed in later commits.
Diffstat (limited to 'libavformat/internal.h')
-rw-r--r--libavformat/internal.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/libavformat/internal.h b/libavformat/internal.h
index 17c45f6dab..ed9893033a 100644
--- a/libavformat/internal.h
+++ b/libavformat/internal.h
@@ -419,4 +419,10 @@ static inline int ff_rename(const char *oldpath, const char *newpath)
return 0;
}
+/**
+ * A wrapper around AVFormatContext.io_close that should be used
+ * intead of calling the pointer directly.
+ */
+void ff_format_io_close(AVFormatContext *s, AVIOContext **pb);
+
#endif /* AVFORMAT_INTERNAL_H */