diff options
author | Deep Thought <deeptho@gmail.com> | 2017-08-10 20:28:09 +0200 |
---|---|---|
committer | wm4 <1387750+wm4@users.noreply.github.com> | 2019-09-13 14:01:00 +0200 |
commit | 66de9bc04f76641e9ad9064489bd193f8af86f13 (patch) | |
tree | 71b31b02f5ca623e5ccda807e63984559fc39932 /libmpv | |
parent | 926f883c60653bcc5a6c54316d62dd031e4dd0b5 (diff) | |
download | mpv-examples-66de9bc04f76641e9ad9064489bd193f8af86f13.tar.bz2 mpv-examples-66de9bc04f76641e9ad9064489bd193f8af86f13.tar.xz |
Fixes issue #7: seeking in simple-streamcb does not work
Diffstat (limited to 'libmpv')
-rw-r--r-- | libmpv/streamcb/simple-streamcb.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/libmpv/streamcb/simple-streamcb.c b/libmpv/streamcb/simple-streamcb.c index cec7725..0f904f8 100644 --- a/libmpv/streamcb/simple-streamcb.c +++ b/libmpv/streamcb/simple-streamcb.c @@ -3,10 +3,21 @@ #include <stddef.h> #include <stdio.h> #include <stdlib.h> +#include <sys/stat.h> #include <mpv/client.h> #include <mpv/stream_cb.h> +static int64_t size_fn(void *cookie) +{ + FILE *fp = (FILE*) cookie; + struct stat st; + if(fstat(fileno(fp),&st)) { + return MPV_ERROR_UNSUPPORTED; + } + return st.st_size; +} + static int64_t read_fn(void *cookie, char *buf, uint64_t nbytes) { FILE *fp = cookie; @@ -35,6 +46,7 @@ static int open_fn(void *user_data, char *uri, mpv_stream_cb_info *info) { FILE *fp = fopen((char *)user_data, "r"); info->cookie = fp; + info->size_fn = size_fn; info->read_fn = read_fn; info->seek_fn = seek_fn; info->close_fn = close_fn; |