summaryrefslogtreecommitdiff
path: root/multimedia/libmp4v2/patches/patch-ao
diff options
context:
space:
mode:
Diffstat (limited to 'multimedia/libmp4v2/patches/patch-ao')
-rw-r--r--multimedia/libmp4v2/patches/patch-ao28
1 files changed, 28 insertions, 0 deletions
diff --git a/multimedia/libmp4v2/patches/patch-ao b/multimedia/libmp4v2/patches/patch-ao
new file mode 100644
index 00000000000..e19d25a02c3
--- /dev/null
+++ b/multimedia/libmp4v2/patches/patch-ao
@@ -0,0 +1,28 @@
+$NetBSD: patch-ao,v 1.1 2012/02/24 18:36:48 christos Exp $
+
+--- lib/mp4v2/virtual_io.cpp.orig 2006-10-23 18:26:38.000000000 -0400
++++ lib/mp4v2/virtual_io.cpp 2012-02-24 13:04:41.000000000 -0500
+@@ -39,20 +39,16 @@
+ int FILE_SetPosition(void *user, u_int64_t position)
+ {
+ FILE *fp = (FILE *)user;
+- fpos_t fpos;
+- VAR_TO_FPOS(fpos, position);
+- return fsetpos(fp, &fpos);
++ return fseeko(fp, position, SEEK_SET) == -1 ? -1 : 0;
+ }
+
+ int FILE_GetPosition(void *user, u_int64_t *position)
+ {
+ FILE *fp = (FILE *)user;
+- fpos_t fpos;
+- if (fgetpos(fp, &fpos) < 0) {
++ *position = ftello(fp);
++ if (*position == (u_int64_t)-1) {
+ throw new MP4Error(errno, "MP4GetPosition");
+ }
+-
+- FPOS_TO_VAR(fpos, u_int64_t, *position);
+ return 0;
+ }
+