mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
avio: Collect and print statistics of bytes read & seeks
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
f77a695d2e
commit
11153a9371
@ -128,6 +128,18 @@ typedef struct {
|
||||
* call the underlying seek function directly.
|
||||
*/
|
||||
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;
|
||||
|
||||
/* unbuffered I/O */
|
||||
|
@ -237,6 +237,7 @@ int64_t avio_seek(AVIOContext *s, int64_t offset, int whence)
|
||||
return AVERROR(EPIPE);
|
||||
if ((res = s->seek(s->opaque, offset, SEEK_SET)) < 0)
|
||||
return res;
|
||||
s->seek_count ++;
|
||||
if (!s->write_flag)
|
||||
s->buf_end = s->buffer;
|
||||
s->buf_ptr = s->buffer;
|
||||
@ -423,6 +424,7 @@ static void fill_buffer(AVIOContext *s)
|
||||
s->pos += len;
|
||||
s->buf_ptr = dst;
|
||||
s->buf_end = dst + len;
|
||||
s->bytes_read += len;
|
||||
}
|
||||
}
|
||||
|
||||
@ -792,6 +794,8 @@ int avio_close(AVIOContext *s)
|
||||
|
||||
h = s->opaque;
|
||||
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);
|
||||
return ffurl_close(h);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user