Skip to content
Snippets Groups Projects
Commit 11153a93 authored by Michael Niedermayer's avatar Michael Niedermayer
Browse files

avio: Collect and print statistics of bytes read & seeks

parent f77a695d
Branches
Tags
No related merge requests found
...@@ -128,6 +128,18 @@ typedef struct { ...@@ -128,6 +128,18 @@ typedef struct {
* call the underlying seek function directly. * call the underlying seek function directly.
*/ */
int direct; int direct;
/**
* Bytes read statistic
* This field is internal to libavformat and access from outside is not allowed.
*/
int64_t bytes_read;
/**
* seek statistic
* This field is internal to libavformat and access from outside is not allowed.
*/
int seek_count;
} AVIOContext; } AVIOContext;
/* unbuffered I/O */ /* unbuffered I/O */
......
...@@ -237,6 +237,7 @@ int64_t avio_seek(AVIOContext *s, int64_t offset, int whence) ...@@ -237,6 +237,7 @@ int64_t avio_seek(AVIOContext *s, int64_t offset, int whence)
return AVERROR(EPIPE); return AVERROR(EPIPE);
if ((res = s->seek(s->opaque, offset, SEEK_SET)) < 0) if ((res = s->seek(s->opaque, offset, SEEK_SET)) < 0)
return res; return res;
s->seek_count ++;
if (!s->write_flag) if (!s->write_flag)
s->buf_end = s->buffer; s->buf_end = s->buffer;
s->buf_ptr = s->buffer; s->buf_ptr = s->buffer;
...@@ -423,6 +424,7 @@ static void fill_buffer(AVIOContext *s) ...@@ -423,6 +424,7 @@ static void fill_buffer(AVIOContext *s)
s->pos += len; s->pos += len;
s->buf_ptr = dst; s->buf_ptr = dst;
s->buf_end = dst + len; s->buf_end = dst + len;
s->bytes_read += len;
} }
} }
...@@ -792,6 +794,8 @@ int avio_close(AVIOContext *s) ...@@ -792,6 +794,8 @@ int avio_close(AVIOContext *s)
h = s->opaque; h = s->opaque;
av_free(s->buffer); av_free(s->buffer);
if (!s->write_flag)
av_log(s, AV_LOG_DEBUG, "Statistics: %"PRId64" bytes read, %d seeks\n", s->bytes_read, s->seek_count);
av_free(s); av_free(s);
return ffurl_close(h); return ffurl_close(h);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment