summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwm4 <nfxjfg@googlemail.com>2014-09-30 18:46:49 +0200
committerMichael Niedermayer <michaelni@gmx.at>2015-03-05 00:09:26 +0100
commitcca44764b9def05d90d051b24a84369f9891a460 (patch)
tree30b6187baa1ff54514b48b4ffae443646fac768b
parent83808ee7e9e89b0c83d5ecd94b35952c44716b68 (diff)
avformat: add avformat_flush()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--doc/APIchanges3
-rw-r--r--libavformat/avformat.h17
-rw-r--r--libavformat/utils.c6
-rw-r--r--libavformat/version.h4
4 files changed, 28 insertions, 2 deletions
diff --git a/doc/APIchanges b/doc/APIchanges
index 6875aede93..7ceee3e6c5 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -15,6 +15,9 @@ libavutil: 2014-08-09
API changes, most recent first:
+2015-03-04 - xxxxxxx - lavf 56.25.100
+ Add avformat_flush()
+
2015-03-xx - xxxxxxx - lavf 56.24.100
Add avio_put_str16be()
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index a5d2dd9d2b..e47df0511b 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -2137,6 +2137,23 @@ int av_seek_frame(AVFormatContext *s, int stream_index, int64_t timestamp,
int avformat_seek_file(AVFormatContext *s, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags);
/**
+ * Discard all internally buffered data. This can be useful when dealing with
+ * discontinuities in the byte stream. Generally works only with headerless
+ * formats.
+ *
+ * The set of streams, the detected duration, stream parameters and codecs do
+ * not change when calling this function. If you want a complete reset, it's
+ * better to open a new AVFormatContext.
+ *
+ * This does not flush the AVIOContext (s->pb). If necessary, call
+ * avio_flush(s->pb) before calling this function.
+ *
+ * @param s media file handle
+ * @return >=0 on success, error code otherwise
+ */
+int avformat_flush(AVFormatContext *s);
+
+/**
* Start playing a network-based stream (e.g. RTSP stream) at the
* current position.
*/
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 917f8ceaf0..17ae300a8f 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -2201,6 +2201,12 @@ int avformat_seek_file(AVFormatContext *s, int stream_index, int64_t min_ts,
return -1; //unreachable
}
+int avformat_flush(AVFormatContext *s)
+{
+ ff_read_frame_flush(s);
+ return 0;
+}
+
/*******************************************************/
/**
diff --git a/libavformat/version.h b/libavformat/version.h
index 6a5c3d53e0..90ed8447c7 100644
--- a/libavformat/version.h
+++ b/libavformat/version.h
@@ -30,8 +30,8 @@
#include "libavutil/version.h"
#define LIBAVFORMAT_VERSION_MAJOR 56
-#define LIBAVFORMAT_VERSION_MINOR 24
-#define LIBAVFORMAT_VERSION_MICRO 101
+#define LIBAVFORMAT_VERSION_MINOR 25
+#define LIBAVFORMAT_VERSION_MICRO 100
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
LIBAVFORMAT_VERSION_MINOR, \