提交 f1ef2cd9 编写于 作者: A Anton Khirnov 提交者: Ronald S. Bultje

avio: move ff_rewind_with_probe_data from avio.h to avio_internal.h

also change its prefix to ffio
Signed-off-by: NRonald S. Bultje <rsbultje@gmail.com>
上级 e8bb2e24
...@@ -600,21 +600,6 @@ int url_setbufsize(AVIOContext *s, int buf_size); ...@@ -600,21 +600,6 @@ int url_setbufsize(AVIOContext *s, int buf_size);
int url_resetbuf(AVIOContext *s, int flags); int url_resetbuf(AVIOContext *s, int flags);
#endif #endif
/**
* Rewind the AVIOContext using the specified buffer containing the first buf_size bytes of the file.
* Used after probing to avoid seeking.
* Joins buf and s->buffer, taking any overlap into consideration.
* @note s->buffer must overlap with buf or they can't be joined and the function fails
* @note This function is NOT part of the public API
*
* @param s The read-only AVIOContext to rewind
* @param buf The probe buffer containing the first buf_size bytes of the file
* @param buf_size The size of buf
* @return 0 in case of success, a negative value corresponding to an
* AVERROR code in case of failure
*/
int ff_rewind_with_probe_data(AVIOContext *s, unsigned char *buf, int buf_size);
/** /**
* Create and initialize a AVIOContext for accessing the * Create and initialize a AVIOContext for accessing the
* resource indicated by url. * resource indicated by url.
......
...@@ -47,4 +47,18 @@ static av_always_inline void ffio_wfourcc(AVIOContext *pb, const uint8_t *s) ...@@ -47,4 +47,18 @@ static av_always_inline void ffio_wfourcc(AVIOContext *pb, const uint8_t *s)
avio_wl32(pb, MKTAG(s[0], s[1], s[2], s[3])); avio_wl32(pb, MKTAG(s[0], s[1], s[2], s[3]));
} }
/**
* Rewind the AVIOContext using the specified buffer containing the first buf_size bytes of the file.
* Used after probing to avoid seeking.
* Joins buf and s->buffer, taking any overlap into consideration.
* @note s->buffer must overlap with buf or they can't be joined and the function fails
*
* @param s The read-only AVIOContext to rewind
* @param buf The probe buffer containing the first buf_size bytes of the file
* @param buf_size The size of buf
* @return 0 in case of success, a negative value corresponding to an
* AVERROR code in case of failure
*/
int ffio_rewind_with_probe_data(AVIOContext *s, unsigned char *buf, int buf_size);
#endif // AVFORMAT_AVIO_INTERNAL_H #endif // AVFORMAT_AVIO_INTERNAL_H
...@@ -837,7 +837,7 @@ static int url_resetbuf(AVIOContext *s, int flags) ...@@ -837,7 +837,7 @@ static int url_resetbuf(AVIOContext *s, int flags)
return 0; return 0;
} }
int ff_rewind_with_probe_data(AVIOContext *s, unsigned char *buf, int buf_size) int ffio_rewind_with_probe_data(AVIOContext *s, unsigned char *buf, int buf_size)
{ {
int64_t buffer_start; int64_t buffer_start;
int buffer_size; int buffer_size;
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#include "avformat.h" #include "avformat.h"
#include "avio_internal.h"
#include "internal.h" #include "internal.h"
#include "libavcodec/internal.h" #include "libavcodec/internal.h"
#include "libavutil/opt.h" #include "libavutil/opt.h"
...@@ -585,7 +586,7 @@ int av_probe_input_buffer(AVIOContext *pb, AVInputFormat **fmt, ...@@ -585,7 +586,7 @@ int av_probe_input_buffer(AVIOContext *pb, AVInputFormat **fmt,
} }
/* rewind. reuse probe buffer to avoid seeking */ /* rewind. reuse probe buffer to avoid seeking */
if ((ret = ff_rewind_with_probe_data(pb, buf, pd.buf_size)) < 0) if ((ret = ffio_rewind_with_probe_data(pb, buf, pd.buf_size)) < 0)
av_free(buf); av_free(buf);
return ret; return ret;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册