summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwiz <wiz@pkgsrc.org>2014-01-08 23:07:09 +0000
committerwiz <wiz@pkgsrc.org>2014-01-08 23:07:09 +0000
commit2e3b358ee2084bd7717c5049aaecad8359775329 (patch)
treebfdf3c42900614f35e5e095d02aa838e0fdd30b3
parent98c9994762ec56e29d02c20d444a0cff05e3faa2 (diff)
downloadpkgsrc-2e3b358ee2084bd7717c5049aaecad8359775329.tar.gz
Import libbdplus-0.1.0 as multimedia/libbdplus.
BD+ is a part of the Blu-ray Disc DRM system. This library provides an open source implementation of the standard. This library is not complete, in that it will never be complete and will always require updates to stay up to date with the latest Bluray disks released. The general flow on this library is that the higher level 'player' code will call us if there exist a "BDSVM/00000.svm" file on the disk. If this is the case it will call bdplus_init(), connect the library with other parts of BluRay player and call bdplus_start(). BD+ VM executes the DLX assembled code inside the SVM file. This will perform thousands of AES, SHA, file reads and detailed memory checks to guess the authenticity of the player. If all goes well, the SVM will eventually spit out a 'conversion table'. This is a large table (usually about 1-2MB but it varies) which contains offsets into the M2TS video file. (usually the main title).
-rw-r--r--multimedia/libbdplus/DESCR20
-rw-r--r--multimedia/libbdplus/Makefile20
-rw-r--r--multimedia/libbdplus/PLIST5
-rw-r--r--multimedia/libbdplus/distinfo7
-rw-r--r--multimedia/libbdplus/patches/patch-src_libbdplus_bdsvm_segment.c24
-rw-r--r--multimedia/libbdplus/patches/patch-src_libbdplus_bdsvm_trap.c15
6 files changed, 91 insertions, 0 deletions
diff --git a/multimedia/libbdplus/DESCR b/multimedia/libbdplus/DESCR
new file mode 100644
index 00000000000..89a262b843b
--- /dev/null
+++ b/multimedia/libbdplus/DESCR
@@ -0,0 +1,20 @@
+BD+ is a part of the Blu-ray Disc DRM system. This library provides
+an open source implementation of the standard.
+
+This library is not complete, in that it will never be complete
+and will always require updates to stay up to date with the latest
+Bluray disks released.
+
+The general flow on this library is that the higher level 'player'
+code will call us if there exist a "BDSVM/00000.svm" file on the
+disk. If this is the case it will call bdplus_init(), connect the
+library with other parts of BluRay player and call bdplus_start().
+
+BD+ VM executes the DLX assembled code inside the SVM file. This
+will perform thousands of AES, SHA, file reads and detailed memory
+checks to guess the authenticity of the player.
+
+If all goes well, the SVM will eventually spit out a 'conversion
+table'. This is a large table (usually about 1-2MB but it varies)
+which contains offsets into the M2TS video file. (usually the main
+title).
diff --git a/multimedia/libbdplus/Makefile b/multimedia/libbdplus/Makefile
new file mode 100644
index 00000000000..5a6141ecd94
--- /dev/null
+++ b/multimedia/libbdplus/Makefile
@@ -0,0 +1,20 @@
+# $NetBSD: Makefile,v 1.1 2014/01/08 23:07:09 wiz Exp $
+
+DISTNAME= libbdplus-0.1.0
+CATEGORIES= multimedia
+MASTER_SITES= ftp://ftp.videolan.org/pub/videolan/libbdplus/0.1.0/
+EXTRACT_SUFX= .tar.bz2
+
+MAINTAINER= pkgsrc-users@NetBSD.org
+HOMEPAGE= https://www.videolan.org/developers/libbdplus.html
+COMMENT= Research project to implement the BD+ System Specifications
+LICENSE= gnu-lgpl-v2.1
+
+GNU_CONFIGURE= yes
+USE_LIBTOOL= yes
+USE_TOOLS+= pkg-config
+
+PKGCONFIG_OVERRIDE+= src/libbdplus.pc.in
+
+.include "../../multimedia/libaacs/buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/multimedia/libbdplus/PLIST b/multimedia/libbdplus/PLIST
new file mode 100644
index 00000000000..8f54f7b51db
--- /dev/null
+++ b/multimedia/libbdplus/PLIST
@@ -0,0 +1,5 @@
+@comment $NetBSD: PLIST,v 1.1 2014/01/08 23:07:09 wiz Exp $
+include/libbdplus/bdplus-version.h
+include/libbdplus/bdplus.h
+lib/libbdplus.la
+lib/pkgconfig/libbdplus.pc
diff --git a/multimedia/libbdplus/distinfo b/multimedia/libbdplus/distinfo
new file mode 100644
index 00000000000..4c6a626bcf6
--- /dev/null
+++ b/multimedia/libbdplus/distinfo
@@ -0,0 +1,7 @@
+$NetBSD: distinfo,v 1.1 2014/01/08 23:07:09 wiz Exp $
+
+SHA1 (libbdplus-0.1.0.tar.bz2) = 67069a4d70e6c06bda560c2d2b623574880394ab
+RMD160 (libbdplus-0.1.0.tar.bz2) = cc73bf0d4b40925e3f823c7c49cc278118fb689c
+Size (libbdplus-0.1.0.tar.bz2) = 317810 bytes
+SHA1 (patch-src_libbdplus_bdsvm_segment.c) = 2f6a70a98bb740cc9f41c210a9ff76f5e82880c5
+SHA1 (patch-src_libbdplus_bdsvm_trap.c) = a028bbfc8801ddb7675e7aeef0a200d18730acbc
diff --git a/multimedia/libbdplus/patches/patch-src_libbdplus_bdsvm_segment.c b/multimedia/libbdplus/patches/patch-src_libbdplus_bdsvm_segment.c
new file mode 100644
index 00000000000..7c8ead5a514
--- /dev/null
+++ b/multimedia/libbdplus/patches/patch-src_libbdplus_bdsvm_segment.c
@@ -0,0 +1,24 @@
+$NetBSD: patch-src_libbdplus_bdsvm_segment.c,v 1.1 2014/01/08 23:07:09 wiz Exp $
+
+fseeko is a Linuxism.
+
+--- src/libbdplus/bdsvm/segment.c.orig 2013-12-18 12:13:09.000000000 +0000
++++ src/libbdplus/bdsvm/segment.c
+@@ -950,7 +950,7 @@ int32_t segment_patchfile(conv_table_t *
+ offset);
+ }
+
+- if (fseeko(fd, offset, SEEK_SET)) {
++ if (fseek(fd, offset, SEEK_SET)) {
+ printf("Seek to offset %"PRIx64" failed. Stopping at table %d, segment %d, entry %d.\n",
+ offset, table, currseg, currentry);
+ return -1;
+@@ -975,7 +975,7 @@ int32_t segment_patchfile(conv_table_t *
+ offset);
+ }
+
+- if (fseeko(fd, offset, SEEK_SET)) {
++ if (fseek(fd, offset, SEEK_SET)) {
+ printf("Seek to offset %"PRIx64" failed. Stopping at table %d, segment %d, entry %d.\n",
+ offset, table, currseg, currentry);
+ return -1;
diff --git a/multimedia/libbdplus/patches/patch-src_libbdplus_bdsvm_trap.c b/multimedia/libbdplus/patches/patch-src_libbdplus_bdsvm_trap.c
new file mode 100644
index 00000000000..ffda463e556
--- /dev/null
+++ b/multimedia/libbdplus/patches/patch-src_libbdplus_bdsvm_trap.c
@@ -0,0 +1,15 @@
+$NetBSD: patch-src_libbdplus_bdsvm_trap.c,v 1.1 2014/01/08 23:07:09 wiz Exp $
+
+fseeko is a Linuxism.
+
+--- src/libbdplus/bdsvm/trap.c.orig 2013-12-18 12:13:09.000000000 +0000
++++ src/libbdplus/bdsvm/trap.c
+@@ -1310,7 +1310,7 @@ uint32_t TRAP_MediaCheck(const char *dev
+ return j;
+ }
+
+- if (fseeko(fd, seek, SEEK_SET)) {
++ if (fseek(fd, seek, SEEK_SET)) {
+ DEBUG(DBG_BDPLUS|DBG_CRIT, "[TRAP] TRAP_MediaCheck: failed to seek %s to %"PRIu64"\n", (char *)FileName, seek);
+ fclose(fd);
+ return STATUS_INVALID_PARAMETER;