summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDeep Thought <deeptho@gmail.com>2017-08-10 20:28:09 +0200
committerwm4 <1387750+wm4@users.noreply.github.com>2019-09-13 14:01:00 +0200
commit66de9bc04f76641e9ad9064489bd193f8af86f13 (patch)
tree71b31b02f5ca623e5ccda807e63984559fc39932
parent926f883c60653bcc5a6c54316d62dd031e4dd0b5 (diff)
downloadmpv-examples-66de9bc04f76641e9ad9064489bd193f8af86f13.tar.bz2
mpv-examples-66de9bc04f76641e9ad9064489bd193f8af86f13.tar.xz
Fixes issue #7: seeking in simple-streamcb does not work
-rw-r--r--libmpv/streamcb/simple-streamcb.c12
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;