PageRenderTime 69ms CodeModel.GetById 28ms RepoModel.GetById 1ms app.codeStats 0ms

/packages/multimedia/libbluray/patches/libbluray-02-add-mvc-support.patch

http://github.com/OpenELEC/OpenELEC.tv
Patch | 6409 lines | 6292 code | 117 blank | 0 comment | 0 complexity | 55a24966b92c556ea67aecad7826064c MD5 | raw file
Possible License(s): CC0-1.0

Large files files are truncated, but you can click here to view the full file

  1. diff --git a/Makefile.am b/Makefile.am
  2. index 300deec..5c77a05 100644
  3. --- a/Makefile.am
  4. +++ b/Makefile.am
  5. @@ -186,10 +186,12 @@ endif
  6. if USING_BDJAVA
  7. +if USING_BDJAVA_BUILD_JAR
  8. jardir=$(datadir)/java/
  9. jar_DATA=$(top_builddir)/.libs/libbluray-$(BDJ_TYPE)-$(VERSION).jar
  10. $(top_builddir)/.libs/libbluray-$(BDJ_TYPE)-$(VERSION).jar: all-local
  11. +endif
  12. libbluray_la_SOURCES += \
  13. src/libbluray/bdj/bdj.h \
  14. @@ -214,6 +216,7 @@ libbluray_la_SOURCES += \
  15. AM_CFLAGS += $(BDJAVA_CFLAGS)
  16. +if USING_BDJAVA_BUILD_JAR
  17. all-local:
  18. ant -f $(top_srcdir)/src/libbluray/bdj/build.xml \
  19. -Dbuild='$(abs_builddir)/src/libbluray/bdj/build' \
  20. @@ -229,6 +232,7 @@ clean-local:
  21. -Dversion='$(BDJ_TYPE)-$(VERSION)' \
  22. clean
  23. endif
  24. +endif
  25. pkgconfigdir = $(libdir)/pkgconfig
  26. pkgconfig_DATA = src/libbluray.pc
  27. @@ -266,20 +270,20 @@ bd_info_LDADD = libbluray.la
  28. bdsplice_SOURCES = src/examples/bdsplice.c
  29. bdsplice_LDADD = libbluray.la
  30. -bdj_test_SOURCES = src/examples/bdj_test.c
  31. +bdj_test_SOURCES = src/devtools/bdj_test.c
  32. bdj_test_LDADD = libbluray.la
  33. -bdjo_dump_SOURCES = src/examples/bdjo_dump.c
  34. +bdjo_dump_SOURCES = src/devtools/bdjo_dump.c
  35. bdjo_dump_LDADD = libbluray.la
  36. clpi_dump_CFLAGS = $(AM_CFLAGS)
  37. clpi_dump_SOURCES = \
  38. - src/examples/clpi_dump.c \
  39. - src/examples/util.c \
  40. - src/examples/util.h
  41. + src/devtools/clpi_dump.c \
  42. + src/devtools/util.c \
  43. + src/devtools/util.h
  44. clpi_dump_LDADD = libbluray.la
  45. -hdmv_test_SOURCES = src/examples/hdmv_test.c
  46. +hdmv_test_SOURCES = src/devtools/hdmv_test.c
  47. hdmv_test_LDADD = libbluray.la
  48. index_dump_SOURCES = src/examples/index_dump.c
  49. @@ -292,15 +296,15 @@ list_titles_SOURCES = src/examples/list_titles.c
  50. list_titles_LDADD = libbluray.la
  51. mobj_dump_CFLAGS = $(AM_CFLAGS)
  52. -mobj_dump_SOURCES = src/examples/mobj_dump.c \
  53. +mobj_dump_SOURCES = src/devtools/mobj_dump.c \
  54. src/libbluray/hdmv/mobj_print.c
  55. mobj_dump_LDADD = libbluray.la
  56. mpls_dump_CFLAGS = $(AM_CFLAGS)
  57. mpls_dump_SOURCES = \
  58. - src/examples/mpls_dump.c \
  59. - src/examples/util.c \
  60. - src/examples/util.h
  61. + src/devtools/mpls_dump.c \
  62. + src/devtools/util.c \
  63. + src/devtools/util.h
  64. mpls_dump_LDADD = libbluray.la
  65. sound_dump_SOURCES = src/examples/sound_dump.c
  66. diff --git a/config.h b/config.h
  67. new file mode 100644
  68. index 0000000..6764704
  69. --- /dev/null
  70. +++ b/config.h
  71. @@ -0,0 +1,157 @@
  72. +/* config.h. Generated from config.h.in by configure. */
  73. +/* config.h.in. Generated from configure.ac by autoheader. */
  74. +
  75. +/* Define to 1 if libudfread is to be used for disc image access */
  76. +/* #undef ENABLE_UDF */
  77. +
  78. +/* Define to 1 if using libbluray J2ME stack */
  79. +/* #undef HAVE_BDJ_J2ME */
  80. +
  81. +/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
  82. + */
  83. +/* #undef HAVE_DIRENT_H */
  84. +
  85. +/* Define to 1 if you have the <dlfcn.h> header file. */
  86. +/* #undef HAVE_DLFCN_H */
  87. +
  88. +/* Define to 1 if you have the <errno.h> header file. */
  89. +#define HAVE_ERRNO_H 1
  90. +
  91. +/* Define to 1 if you have the <fcntl.h> header file. */
  92. +/* #undef HAVE_FCNTL_H */
  93. +
  94. +/* Define this if you have fontconfig library */
  95. +/* #undef HAVE_FONTCONFIG */
  96. +
  97. +/* Define this if you have FreeType2 library */
  98. +/* #undef HAVE_FT2 */
  99. +
  100. +/* Define to 1 if you have the <inttypes.h> header file. */
  101. +#define HAVE_INTTYPES_H 1
  102. +
  103. +/* Define to 1 if you have the <jni.h> header file. */
  104. +/* #undef HAVE_JNI_H */
  105. +
  106. +/* Define to 1 if you have the <libgen.h> header file. */
  107. +#define HAVE_LIBGEN_H 1
  108. +
  109. +/* Define to 1 if libxml2 is to be used for metadata parsing */
  110. +/* #undef HAVE_LIBXML2 */
  111. +
  112. +/* Define to 1 if you have the <linux/cdrom.h> header file. */
  113. +/* #undef HAVE_LINUX_CDROM_H */
  114. +
  115. +/* Define to 1 if you have the <malloc.h> header file. */
  116. +#define HAVE_MALLOC_H 1
  117. +
  118. +/* Define to 1 if you have the <memory.h> header file. */
  119. +#define HAVE_MEMORY_H 1
  120. +
  121. +/* Define to 1 if you have the <mntent.h> header file. */
  122. +/* #undef HAVE_MNTENT_H */
  123. +
  124. +/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
  125. +/* #undef HAVE_NDIR_H */
  126. +
  127. +/* Define to 1 if you have the <pthread.h> header file. */
  128. +/* #undef HAVE_PTHREAD_H */
  129. +
  130. +/* Define to 1 if you have the <stdarg.h> header file. */
  131. +#define HAVE_STDARG_H 1
  132. +
  133. +/* Define to 1 if you have the <stdint.h> header file. */
  134. +#define HAVE_STDINT_H 1
  135. +
  136. +/* Define to 1 if you have the <stdlib.h> header file. */
  137. +#define HAVE_STDLIB_H 1
  138. +
  139. +/* Define to 1 if you have the <strings.h> header file. */
  140. +/* #undef HAVE_STRINGS_H */
  141. +
  142. +/* Define to 1 if you have the <string.h> header file. */
  143. +#define HAVE_STRING_H 1
  144. +
  145. +/* Define to 1 if `d_type' is a member of `struct dirent'. */
  146. +/* #undef HAVE_STRUCT_DIRENT_D_TYPE */
  147. +
  148. +/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
  149. + */
  150. +/* #undef HAVE_SYS_DIR_H */
  151. +
  152. +/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
  153. + */
  154. +/* #undef HAVE_SYS_NDIR_H */
  155. +
  156. +/* Define to 1 if you have the <sys/stat.h> header file. */
  157. +#define HAVE_SYS_STAT_H 1
  158. +
  159. +/* Define to 1 if you have the <sys/time.h> header file. */
  160. +#define HAVE_SYS_TIME_H 1
  161. +
  162. +/* Define to 1 if you have the <sys/types.h> header file. */
  163. +#define HAVE_SYS_TYPES_H 1
  164. +
  165. +/* Define to 1 if you have the <time.h> header file. */
  166. +#define HAVE_TIME_H 1
  167. +
  168. +/* Define to 1 if you have the <unistd.h> header file. */
  169. +/* #undef HAVE_UNISTD_H */
  170. +
  171. +/* "Defines the architecture of the java vm." */
  172. +/* #undef JAVA_ARCH */
  173. +
  174. +/* "" */
  175. +/* #undef JDK_HOME */
  176. +
  177. +/* Define to the sub-directory where libtool stores uninstalled libraries. */
  178. +#define LT_OBJDIR ".libs/"
  179. +
  180. +/* Name of package */
  181. +#define PACKAGE "libbluray"
  182. +
  183. +/* Define to the address where bug reports for this package should be sent. */
  184. +#define PACKAGE_BUGREPORT "http://www.videolan.org/developers/libbluray.html"
  185. +
  186. +/* Define to the full name of this package. */
  187. +#define PACKAGE_NAME "libbluray"
  188. +
  189. +/* Define to the full name and version of this package. */
  190. +#define PACKAGE_STRING "libbluray 0.9.2"
  191. +
  192. +/* Define to the one symbol short name of this package. */
  193. +#define PACKAGE_TARNAME "libbluray"
  194. +
  195. +/* Define to the home page for this package. */
  196. +#define PACKAGE_URL ""
  197. +
  198. +/* Define to the version of this package. */
  199. +#define PACKAGE_VERSION "0.9.2"
  200. +
  201. +/* Define as the return type of signal handlers (`int' or `void'). */
  202. +#define RETSIGTYPE void
  203. +
  204. +/* Define to 1 if you have the ANSI C header files. */
  205. +#define STDC_HEADERS 1
  206. +
  207. +/* "Define to 1 if using BD-Java" */
  208. +/* #undef USING_BDJAVA */
  209. +
  210. +/* Version number of package */
  211. +#define VERSION "0.9.2"
  212. +
  213. +/* Enable large inode numbers on Mac OS X 10.5. */
  214. +#ifndef _DARWIN_USE_64_BIT_INODE
  215. +# define _DARWIN_USE_64_BIT_INODE 1
  216. +#endif
  217. +
  218. +/* Number of bits in a file offset, on hosts where this is settable. */
  219. +#define _FILE_OFFSET_BITS 64
  220. +
  221. +/* Define for large files, on AIX-style hosts. */
  222. +/* #undef _LARGE_FILES */
  223. +
  224. +/* Define to '0x0501' for IE 5.01. */
  225. +#define _WIN32_IE 0x0501
  226. +
  227. +/* Define to '0x0502' for Windows XP SP2 APIs. */
  228. +#define _WIN32_WINNT 0x0502
  229. diff --git a/configure.ac b/configure.ac
  230. index e0da375..ed08c96 100644
  231. --- a/configure.ac
  232. +++ b/configure.ac
  233. @@ -87,7 +87,15 @@ AC_ARG_ENABLE([bdjava],
  234. [use_bdjava=yes])
  235. AC_ARG_ENABLE([udf],
  236. - [AS_HELP_STRING([--enable-udf], [enable UDF support @<:@default=disabled@:>@])])
  237. + [AS_HELP_STRING([--disable-udf], [disable UDF support @<:@default=enabled@:>@])],
  238. + [enable_udf=$enableval],
  239. + [enable_udf=yes])
  240. +
  241. +AC_ARG_ENABLE([bdjava-jar],
  242. + [AS_HELP_STRING([--disable-bdjava-jar],
  243. + [disable building of BD-Java JAR file @<:@default=enabled@:>@])],
  244. + [use_bdjava_jar=$enableval],
  245. + [use_bdjava_jar=yes])
  246. AC_ARG_WITH([libxml2],
  247. [AS_HELP_STRING([--without-libxml2], [build without libxml2 support @<:@default=with@:>@])])
  248. @@ -224,7 +232,7 @@ if [[ $use_bdjava = "yes" ]]; then
  249. ])
  250. AC_CHECK_PROG(HAVE_ANT, [ant], yes, no)
  251. - if test "x$HAVE_ANT" = "xno"; then
  252. + if test "x$use_bdjava_jar" = "xyes" && test "x$HAVE_ANT" = "xno"; then
  253. AC_MSG_ERROR([BD-J requires ANT, but ant was not found. Please install it.])
  254. fi
  255. @@ -233,6 +241,7 @@ if [[ $use_bdjava = "yes" ]]; then
  256. AC_DEFINE_UNQUOTED([JDK_HOME], ["$JDK_HOME"], [""])
  257. fi
  258. AM_CONDITIONAL([USING_BDJAVA], [ test $use_bdjava = "yes" ])
  259. +AM_CONDITIONAL([USING_BDJAVA_BUILD_JAR], [ test $use_bdjava_jar = "yes" ])
  260. dnl BD-J type
  261. if test "$BDJ_TYPE" = "j2me"; then
  262. @@ -292,6 +301,7 @@ echo " --------"
  263. echo " BD-J support: $use_bdjava"
  264. if [[ $use_bdjava = "yes" ]]; then
  265. echo " BD-J type: $BDJ_TYPE"
  266. +echo " build JAR: $use_bdjava_jar"
  267. if test x"$BDJ_BOOTCLASSPATH" != x""; then
  268. echo " BD-J bootclasspath: $BDJ_BOOTCLASSPATH"
  269. fi
  270. diff --git a/includes/inttypes.h b/includes/inttypes.h
  271. new file mode 100644
  272. index 0000000..ead903f
  273. --- /dev/null
  274. +++ b/includes/inttypes.h
  275. @@ -0,0 +1,305 @@
  276. +// ISO C9x compliant inttypes.h for Microsoft Visual Studio
  277. +// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
  278. +//
  279. +// Copyright (c) 2006 Alexander Chemeris
  280. +//
  281. +// Redistribution and use in source and binary forms, with or without
  282. +// modification, are permitted provided that the following conditions are met:
  283. +//
  284. +// 1. Redistributions of source code must retain the above copyright notice,
  285. +// this list of conditions and the following disclaimer.
  286. +//
  287. +// 2. Redistributions in binary form must reproduce the above copyright
  288. +// notice, this list of conditions and the following disclaimer in the
  289. +// documentation and/or other materials provided with the distribution.
  290. +//
  291. +// 3. The name of the author may be used to endorse or promote products
  292. +// derived from this software without specific prior written permission.
  293. +//
  294. +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
  295. +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  296. +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
  297. +// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  298. +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  299. +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
  300. +// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  301. +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
  302. +// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
  303. +// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  304. +//
  305. +///////////////////////////////////////////////////////////////////////////////
  306. +
  307. +#ifndef _MSC_VER // [
  308. +#error "Use this header only with Microsoft Visual C++ compilers!"
  309. +#endif // _MSC_VER ]
  310. +
  311. +#ifndef _MSC_INTTYPES_H_ // [
  312. +#define _MSC_INTTYPES_H_
  313. +
  314. +#if _MSC_VER > 1000
  315. +#pragma once
  316. +#endif
  317. +
  318. +#include "stdint.h"
  319. +
  320. +// 7.8 Format conversion of integer types
  321. +
  322. +typedef struct {
  323. + intmax_t quot;
  324. + intmax_t rem;
  325. +} imaxdiv_t;
  326. +
  327. +// 7.8.1 Macros for format specifiers
  328. +
  329. +#if !defined(__cplusplus) || defined(__STDC_FORMAT_MACROS) // [ See footnote 185 at page 198
  330. +
  331. +// The fprintf macros for signed integers are:
  332. +#define PRId8 "d"
  333. +#define PRIi8 "i"
  334. +#define PRIdLEAST8 "d"
  335. +#define PRIiLEAST8 "i"
  336. +#define PRIdFAST8 "d"
  337. +#define PRIiFAST8 "i"
  338. +
  339. +#define PRId16 "hd"
  340. +#define PRIi16 "hi"
  341. +#define PRIdLEAST16 "hd"
  342. +#define PRIiLEAST16 "hi"
  343. +#define PRIdFAST16 "hd"
  344. +#define PRIiFAST16 "hi"
  345. +
  346. +#define PRId32 "I32d"
  347. +#define PRIi32 "I32i"
  348. +#define PRIdLEAST32 "I32d"
  349. +#define PRIiLEAST32 "I32i"
  350. +#define PRIdFAST32 "I32d"
  351. +#define PRIiFAST32 "I32i"
  352. +
  353. +#define PRId64 "I64d"
  354. +#define PRIi64 "I64i"
  355. +#define PRIdLEAST64 "I64d"
  356. +#define PRIiLEAST64 "I64i"
  357. +#define PRIdFAST64 "I64d"
  358. +#define PRIiFAST64 "I64i"
  359. +
  360. +#define PRIdMAX "I64d"
  361. +#define PRIiMAX "I64i"
  362. +
  363. +#define PRIdPTR "Id"
  364. +#define PRIiPTR "Ii"
  365. +
  366. +// The fprintf macros for unsigned integers are:
  367. +#define PRIo8 "o"
  368. +#define PRIu8 "u"
  369. +#define PRIx8 "x"
  370. +#define PRIX8 "X"
  371. +#define PRIoLEAST8 "o"
  372. +#define PRIuLEAST8 "u"
  373. +#define PRIxLEAST8 "x"
  374. +#define PRIXLEAST8 "X"
  375. +#define PRIoFAST8 "o"
  376. +#define PRIuFAST8 "u"
  377. +#define PRIxFAST8 "x"
  378. +#define PRIXFAST8 "X"
  379. +
  380. +#define PRIo16 "ho"
  381. +#define PRIu16 "hu"
  382. +#define PRIx16 "hx"
  383. +#define PRIX16 "hX"
  384. +#define PRIoLEAST16 "ho"
  385. +#define PRIuLEAST16 "hu"
  386. +#define PRIxLEAST16 "hx"
  387. +#define PRIXLEAST16 "hX"
  388. +#define PRIoFAST16 "ho"
  389. +#define PRIuFAST16 "hu"
  390. +#define PRIxFAST16 "hx"
  391. +#define PRIXFAST16 "hX"
  392. +
  393. +#define PRIo32 "I32o"
  394. +#define PRIu32 "I32u"
  395. +#define PRIx32 "I32x"
  396. +#define PRIX32 "I32X"
  397. +#define PRIoLEAST32 "I32o"
  398. +#define PRIuLEAST32 "I32u"
  399. +#define PRIxLEAST32 "I32x"
  400. +#define PRIXLEAST32 "I32X"
  401. +#define PRIoFAST32 "I32o"
  402. +#define PRIuFAST32 "I32u"
  403. +#define PRIxFAST32 "I32x"
  404. +#define PRIXFAST32 "I32X"
  405. +
  406. +#define PRIo64 "I64o"
  407. +#define PRIu64 "I64u"
  408. +#define PRIx64 "I64x"
  409. +#define PRIX64 "I64X"
  410. +#define PRIoLEAST64 "I64o"
  411. +#define PRIuLEAST64 "I64u"
  412. +#define PRIxLEAST64 "I64x"
  413. +#define PRIXLEAST64 "I64X"
  414. +#define PRIoFAST64 "I64o"
  415. +#define PRIuFAST64 "I64u"
  416. +#define PRIxFAST64 "I64x"
  417. +#define PRIXFAST64 "I64X"
  418. +
  419. +#define PRIoMAX "I64o"
  420. +#define PRIuMAX "I64u"
  421. +#define PRIxMAX "I64x"
  422. +#define PRIXMAX "I64X"
  423. +
  424. +#define PRIoPTR "Io"
  425. +#define PRIuPTR "Iu"
  426. +#define PRIxPTR "Ix"
  427. +#define PRIXPTR "IX"
  428. +
  429. +// The fscanf macros for signed integers are:
  430. +#define SCNd8 "d"
  431. +#define SCNi8 "i"
  432. +#define SCNdLEAST8 "d"
  433. +#define SCNiLEAST8 "i"
  434. +#define SCNdFAST8 "d"
  435. +#define SCNiFAST8 "i"
  436. +
  437. +#define SCNd16 "hd"
  438. +#define SCNi16 "hi"
  439. +#define SCNdLEAST16 "hd"
  440. +#define SCNiLEAST16 "hi"
  441. +#define SCNdFAST16 "hd"
  442. +#define SCNiFAST16 "hi"
  443. +
  444. +#define SCNd32 "ld"
  445. +#define SCNi32 "li"
  446. +#define SCNdLEAST32 "ld"
  447. +#define SCNiLEAST32 "li"
  448. +#define SCNdFAST32 "ld"
  449. +#define SCNiFAST32 "li"
  450. +
  451. +#define SCNd64 "I64d"
  452. +#define SCNi64 "I64i"
  453. +#define SCNdLEAST64 "I64d"
  454. +#define SCNiLEAST64 "I64i"
  455. +#define SCNdFAST64 "I64d"
  456. +#define SCNiFAST64 "I64i"
  457. +
  458. +#define SCNdMAX "I64d"
  459. +#define SCNiMAX "I64i"
  460. +
  461. +#ifdef _WIN64 // [
  462. +# define SCNdPTR "I64d"
  463. +# define SCNiPTR "I64i"
  464. +#else // _WIN64 ][
  465. +# define SCNdPTR "ld"
  466. +# define SCNiPTR "li"
  467. +#endif // _WIN64 ]
  468. +
  469. +// The fscanf macros for unsigned integers are:
  470. +#define SCNo8 "o"
  471. +#define SCNu8 "u"
  472. +#define SCNx8 "x"
  473. +#define SCNX8 "X"
  474. +#define SCNoLEAST8 "o"
  475. +#define SCNuLEAST8 "u"
  476. +#define SCNxLEAST8 "x"
  477. +#define SCNXLEAST8 "X"
  478. +#define SCNoFAST8 "o"
  479. +#define SCNuFAST8 "u"
  480. +#define SCNxFAST8 "x"
  481. +#define SCNXFAST8 "X"
  482. +
  483. +#define SCNo16 "ho"
  484. +#define SCNu16 "hu"
  485. +#define SCNx16 "hx"
  486. +#define SCNX16 "hX"
  487. +#define SCNoLEAST16 "ho"
  488. +#define SCNuLEAST16 "hu"
  489. +#define SCNxLEAST16 "hx"
  490. +#define SCNXLEAST16 "hX"
  491. +#define SCNoFAST16 "ho"
  492. +#define SCNuFAST16 "hu"
  493. +#define SCNxFAST16 "hx"
  494. +#define SCNXFAST16 "hX"
  495. +
  496. +#define SCNo32 "lo"
  497. +#define SCNu32 "lu"
  498. +#define SCNx32 "lx"
  499. +#define SCNX32 "lX"
  500. +#define SCNoLEAST32 "lo"
  501. +#define SCNuLEAST32 "lu"
  502. +#define SCNxLEAST32 "lx"
  503. +#define SCNXLEAST32 "lX"
  504. +#define SCNoFAST32 "lo"
  505. +#define SCNuFAST32 "lu"
  506. +#define SCNxFAST32 "lx"
  507. +#define SCNXFAST32 "lX"
  508. +
  509. +#define SCNo64 "I64o"
  510. +#define SCNu64 "I64u"
  511. +#define SCNx64 "I64x"
  512. +#define SCNX64 "I64X"
  513. +#define SCNoLEAST64 "I64o"
  514. +#define SCNuLEAST64 "I64u"
  515. +#define SCNxLEAST64 "I64x"
  516. +#define SCNXLEAST64 "I64X"
  517. +#define SCNoFAST64 "I64o"
  518. +#define SCNuFAST64 "I64u"
  519. +#define SCNxFAST64 "I64x"
  520. +#define SCNXFAST64 "I64X"
  521. +
  522. +#define SCNoMAX "I64o"
  523. +#define SCNuMAX "I64u"
  524. +#define SCNxMAX "I64x"
  525. +#define SCNXMAX "I64X"
  526. +
  527. +#ifdef _WIN64 // [
  528. +# define SCNoPTR "I64o"
  529. +# define SCNuPTR "I64u"
  530. +# define SCNxPTR "I64x"
  531. +# define SCNXPTR "I64X"
  532. +#else // _WIN64 ][
  533. +# define SCNoPTR "lo"
  534. +# define SCNuPTR "lu"
  535. +# define SCNxPTR "lx"
  536. +# define SCNXPTR "lX"
  537. +#endif // _WIN64 ]
  538. +
  539. +#endif // __STDC_FORMAT_MACROS ]
  540. +
  541. +// 7.8.2 Functions for greatest-width integer types
  542. +
  543. +// 7.8.2.1 The imaxabs function
  544. +#define imaxabs _abs64
  545. +
  546. +// 7.8.2.2 The imaxdiv function
  547. +
  548. +// This is modified version of div() function from Microsoft's div.c found
  549. +// in %MSVC.NET%\crt\src\div.c
  550. +#ifdef STATIC_IMAXDIV // [
  551. +static
  552. +#else // STATIC_IMAXDIV ][
  553. +_inline
  554. +#endif // STATIC_IMAXDIV ]
  555. +imaxdiv_t __cdecl imaxdiv(intmax_t numer, intmax_t denom)
  556. +{
  557. + imaxdiv_t result;
  558. +
  559. + result.quot = numer / denom;
  560. + result.rem = numer % denom;
  561. +
  562. + if (numer < 0 && result.rem > 0) {
  563. + // did division wrong; must fix up
  564. + ++result.quot;
  565. + result.rem -= denom;
  566. + }
  567. +
  568. + return result;
  569. +}
  570. +
  571. +// 7.8.2.3 The strtoimax and strtoumax functions
  572. +#define strtoimax _strtoi64
  573. +#define strtoumax _strtoui64
  574. +
  575. +// 7.8.2.4 The wcstoimax and wcstoumax functions
  576. +#define wcstoimax _wcstoi64
  577. +#define wcstoumax _wcstoui64
  578. +
  579. +
  580. +#endif // _MSC_INTTYPES_H_ ]
  581. diff --git a/libbluray.def b/libbluray.def
  582. new file mode 100644
  583. index 0000000..d4c93cb
  584. --- /dev/null
  585. +++ b/libbluray.def
  586. @@ -0,0 +1,63 @@
  587. +; libbluray.def ; declares the exports
  588. +
  589. +LIBRARY "libbluray.dll"
  590. +
  591. +EXPORTS
  592. + ; bluray.h
  593. + bd_get_version
  594. + bd_get_titles
  595. + bd_get_title_info
  596. + bd_get_playlist_info
  597. + bd_free_title_info
  598. + bd_open
  599. + bd_close
  600. + bd_seek
  601. + bd_seek_time
  602. + bd_find_seek_point
  603. + bd_read
  604. + bd_read_skip_still
  605. + bd_seek_chapter
  606. + bd_chapter_pos
  607. + bd_get_current_chapter
  608. + bd_seek_mark
  609. + bd_seek_playitem
  610. + bd_select_playlist
  611. + bd_select_title
  612. + bd_select_angle
  613. + bd_seamless_angle_change
  614. + bd_get_title_size
  615. + bd_get_current_title
  616. + bd_get_current_angle
  617. + bd_tell
  618. + bd_tell_time
  619. + bd_get_disc_info
  620. + bd_set_player_setting
  621. + bd_set_player_setting_str
  622. + bd_start_bdj
  623. + bd_stop_bdj
  624. + bd_get_event
  625. + bd_play
  626. + bd_read_ext
  627. + bd_play_title
  628. + bd_menu_call
  629. + bd_register_overlay_proc
  630. + bd_register_argb_overlay_proc
  631. + bd_set_scr
  632. + bd_user_input
  633. + bd_mouse_select
  634. + bd_get_sound_effect
  635. + bd_get_meta
  636. + bd_get_clpi
  637. + bd_read_clpi
  638. + bd_free_clpi
  639. + bd_read_mpls
  640. + bd_free_mpls
  641. + bd_read_mobj
  642. + bd_free_mobj
  643. + bd_get_clip_infos
  644. + bd_get_title_mpls
  645. +
  646. + ; additional functions
  647. + bd_set_debug_handler
  648. + bd_set_debug_mask
  649. + bd_get_debug_mask
  650. diff --git a/libbluray.vcxproj b/libbluray.vcxproj
  651. new file mode 100644
  652. index 0000000..c778955
  653. --- /dev/null
  654. +++ b/libbluray.vcxproj
  655. @@ -0,0 +1,231 @@
  656. +<?xml version="1.0" encoding="utf-8"?>
  657. +<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  658. + <ItemGroup Label="ProjectConfigurations">
  659. + <ProjectConfiguration Include="DebugRelease|Win32">
  660. + <Configuration>DebugRelease</Configuration>
  661. + <Platform>Win32</Platform>
  662. + </ProjectConfiguration>
  663. + <ProjectConfiguration Include="DebugRelease|x64">
  664. + <Configuration>DebugRelease</Configuration>
  665. + <Platform>x64</Platform>
  666. + </ProjectConfiguration>
  667. + <ProjectConfiguration Include="Debug|Win32">
  668. + <Configuration>Debug</Configuration>
  669. + <Platform>Win32</Platform>
  670. + </ProjectConfiguration>
  671. + <ProjectConfiguration Include="Debug|x64">
  672. + <Configuration>Debug</Configuration>
  673. + <Platform>x64</Platform>
  674. + </ProjectConfiguration>
  675. + <ProjectConfiguration Include="Release|Win32">
  676. + <Configuration>Release</Configuration>
  677. + <Platform>Win32</Platform>
  678. + </ProjectConfiguration>
  679. + <ProjectConfiguration Include="Release|x64">
  680. + <Configuration>Release</Configuration>
  681. + <Platform>x64</Platform>
  682. + </ProjectConfiguration>
  683. + </ItemGroup>
  684. + <ItemGroup>
  685. + <ClInclude Include="src\file\dirs.h" />
  686. + <ClInclude Include="src\file\dl.h" />
  687. + <ClInclude Include="src\file\file.h" />
  688. + <ClInclude Include="src\file\filesystem.h" />
  689. + <ClInclude Include="src\file\mount.h" />
  690. + <ClInclude Include="src\libbluray\bdnav\bdid_parse.h" />
  691. + <ClInclude Include="src\libbluray\bdnav\bdparse.h" />
  692. + <ClInclude Include="src\libbluray\bdnav\clpi_data.h" />
  693. + <ClInclude Include="src\libbluray\bdnav\clpi_parse.h" />
  694. + <ClInclude Include="src\libbluray\bdnav\extdata_parse.h" />
  695. + <ClInclude Include="src\libbluray\bdnav\index_parse.h" />
  696. + <ClInclude Include="src\libbluray\bdnav\meta_data.h" />
  697. + <ClInclude Include="src\libbluray\bdnav\meta_parse.h" />
  698. + <ClInclude Include="src\libbluray\bdnav\mpls_parse.h" />
  699. + <ClInclude Include="src\libbluray\bdnav\navigation.h" />
  700. + <ClInclude Include="src\libbluray\bdnav\sound_parse.h" />
  701. + <ClInclude Include="src\libbluray\bdnav\uo_mask_table.h" />
  702. + <ClInclude Include="src\libbluray\bluray-version.h" />
  703. + <ClInclude Include="src\libbluray\bluray.h" />
  704. + <ClInclude Include="src\libbluray\bluray_internal.h" />
  705. + <ClInclude Include="src\libbluray\decoders\graphics_controller.h" />
  706. + <ClInclude Include="src\libbluray\decoders\graphics_processor.h" />
  707. + <ClInclude Include="src\libbluray\decoders\ig.h" />
  708. + <ClInclude Include="src\libbluray\decoders\ig_decode.h" />
  709. + <ClInclude Include="src\libbluray\decoders\m2ts_demux.h" />
  710. + <ClInclude Include="src\libbluray\decoders\m2ts_filter.h" />
  711. + <ClInclude Include="src\libbluray\decoders\overlay.h" />
  712. + <ClInclude Include="src\libbluray\decoders\pes_buffer.h" />
  713. + <ClInclude Include="src\libbluray\decoders\pg.h" />
  714. + <ClInclude Include="src\libbluray\decoders\pg_decode.h" />
  715. + <ClInclude Include="src\libbluray\decoders\rle.h" />
  716. + <ClInclude Include="src\libbluray\decoders\textst.h" />
  717. + <ClInclude Include="src\libbluray\decoders\textst_decode.h" />
  718. + <ClInclude Include="src\libbluray\decoders\textst_render.h" />
  719. + <ClInclude Include="src\libbluray\disc\aacs.h" />
  720. + <ClInclude Include="src\libbluray\disc\bdplus.h" />
  721. + <ClInclude Include="src\libbluray\disc\dec.h" />
  722. + <ClInclude Include="src\libbluray\disc\disc.h" />
  723. + <ClInclude Include="src\libbluray\disc\enc_info.h" />
  724. + <ClInclude Include="src\libbluray\hdmv\hdmv_insn.h" />
  725. + <ClInclude Include="src\libbluray\hdmv\hdmv_vm.h" />
  726. + <ClInclude Include="src\libbluray\hdmv\mobj_parse.h" />
  727. + <ClInclude Include="src\libbluray\keys.h" />
  728. + <ClInclude Include="src\libbluray\register.h" />
  729. + <ClInclude Include="src\util\array.h" />
  730. + <ClInclude Include="src\util\attributes.h" />
  731. + <ClInclude Include="src\util\bits.h" />
  732. + <ClInclude Include="src\util\logging.h" />
  733. + <ClInclude Include="src\util\log_control.h" />
  734. + <ClInclude Include="src\util\macro.h" />
  735. + <ClInclude Include="src\util\mutex.h" />
  736. + <ClInclude Include="src\util\refcnt.h" />
  737. + <ClInclude Include="src\util\strutl.h" />
  738. + <ClInclude Include="src\util\time.h" />
  739. + </ItemGroup>
  740. + <ItemGroup>
  741. + <ClCompile Include="src\file\dirs_win32.c" />
  742. + <ClCompile Include="src\file\dir_win32.c" />
  743. + <ClCompile Include="src\file\dl_win32.c" />
  744. + <ClCompile Include="src\file\file.c" />
  745. + <ClCompile Include="src\file\filesystem.c" />
  746. + <ClCompile Include="src\file\file_win32.c" />
  747. + <ClCompile Include="src\file\mount.c" />
  748. + <ClCompile Include="src\libbluray\bdnav\bdid_parse.c" />
  749. + <ClCompile Include="src\libbluray\bdnav\clpi_parse.c" />
  750. + <ClCompile Include="src\libbluray\bdnav\extdata_parse.c" />
  751. + <ClCompile Include="src\libbluray\bdnav\index_parse.c" />
  752. + <ClCompile Include="src\libbluray\bdnav\meta_parse.c" />
  753. + <ClCompile Include="src\libbluray\bdnav\mpls_parse.c" />
  754. + <ClCompile Include="src\libbluray\bdnav\navigation.c" />
  755. + <ClCompile Include="src\libbluray\bdnav\sound_parse.c" />
  756. + <ClCompile Include="src\libbluray\bluray.c" />
  757. + <ClCompile Include="src\libbluray\decoders\graphics_controller.c" />
  758. + <ClCompile Include="src\libbluray\decoders\graphics_processor.c" />
  759. + <ClCompile Include="src\libbluray\decoders\ig_decode.c" />
  760. + <ClCompile Include="src\libbluray\decoders\m2ts_demux.c" />
  761. + <ClCompile Include="src\libbluray\decoders\m2ts_filter.c" />
  762. + <ClCompile Include="src\libbluray\decoders\pes_buffer.c" />
  763. + <ClCompile Include="src\libbluray\decoders\pg_decode.c" />
  764. + <ClCompile Include="src\libbluray\decoders\rle.c" />
  765. + <ClCompile Include="src\libbluray\decoders\textst_decode.c" />
  766. + <ClCompile Include="src\libbluray\decoders\textst_render.c" />
  767. + <ClCompile Include="src\libbluray\disc\aacs.c" />
  768. + <ClCompile Include="src\libbluray\disc\bdplus.c" />
  769. + <ClCompile Include="src\libbluray\disc\dec.c" />
  770. + <ClCompile Include="src\libbluray\disc\disc.c" />
  771. + <ClCompile Include="src\libbluray\hdmv\hdmv_vm.c" />
  772. + <ClCompile Include="src\libbluray\hdmv\mobj_parse.c" />
  773. + <ClCompile Include="src\libbluray\hdmv\mobj_print.c" />
  774. + <ClCompile Include="src\libbluray\register.c" />
  775. + <ClCompile Include="src\util\array.c" />
  776. + <ClCompile Include="src\util\bits.c" />
  777. + <ClCompile Include="src\util\logging.c" />
  778. + <ClCompile Include="src\util\mutex.c" />
  779. + <ClCompile Include="src\util\refcnt.c" />
  780. + <ClCompile Include="src\util\strutl.c" />
  781. + <ClCompile Include="src\util\time.c" />
  782. + </ItemGroup>
  783. + <ItemGroup>
  784. + <None Include="libbluray.def" />
  785. + </ItemGroup>
  786. + <PropertyGroup Label="Globals">
  787. + <ProjectGuid>{E1DA1B95-71F1-4C21-A271-121176925062}</ProjectGuid>
  788. + <Keyword>Win32Proj</Keyword>
  789. + <RootNamespace>libbluray</RootNamespace>
  790. + </PropertyGroup>
  791. + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
  792. + <PropertyGroup Label="Configuration" Condition="'$(VisualStudioVersion)' == '11.0'">
  793. + <PlatformToolset>v110_xp</PlatformToolset>
  794. + </PropertyGroup>
  795. + <PropertyGroup Label="Configuration" Condition="'$(VisualStudioVersion)' == '12.0'">
  796. + <PlatformToolset>v120_xp</PlatformToolset>
  797. + </PropertyGroup>
  798. + <PropertyGroup Label="Configuration" Condition="'$(VisualStudioVersion)' == '14.0'">
  799. + <PlatformToolset>v140_xp</PlatformToolset>
  800. + </PropertyGroup>
  801. + <PropertyGroup Condition="'$(Configuration)'=='Debug' Or '$(Configuration)'=='DebugRelease'" Label="Configuration">
  802. + <ConfigurationType>DynamicLibrary</ConfigurationType>
  803. + <UseDebugLibraries>true</UseDebugLibraries>
  804. + <CharacterSet>Unicode</CharacterSet>
  805. + </PropertyGroup>
  806. + <PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
  807. + <ConfigurationType>DynamicLibrary</ConfigurationType>
  808. + <UseDebugLibraries>false</UseDebugLibraries>
  809. + <WholeProgramOptimization>true</WholeProgramOptimization>
  810. + <CharacterSet>Unicode</CharacterSet>
  811. + </PropertyGroup>
  812. + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
  813. + <ImportGroup Label="ExtensionSettings">
  814. + </ImportGroup>
  815. + <ImportGroup Label="PropertySheets">
  816. + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  817. + </ImportGroup>
  818. + <PropertyGroup Label="UserMacros" />
  819. + <PropertyGroup Condition="'$(Configuration)'=='Debug' Or '$(Configuration)'=='DebugRelease'">
  820. + <LinkIncremental>true</LinkIncremental>
  821. + <OutDir>$(SolutionDir)bin_$(PlatformName)d\</OutDir>
  822. + <IntDir>$(SolutionDir)bin_$(PlatformName)d\$(ProjectName)\</IntDir>
  823. + </PropertyGroup>
  824. + <PropertyGroup Condition="'$(Configuration)'=='Release'">
  825. + <LinkIncremental>false</LinkIncremental>
  826. + <OutDir>$(SolutionDir)bin_$(PlatformName)\$(ProjectName)\</OutDir>
  827. + <IntDir>$(SolutionDir)bin_$(PlatformName)\$(ProjectName)\</IntDir>
  828. + </PropertyGroup>
  829. + <ItemDefinitionGroup Condition="'$(Configuration)'=='Debug' Or '$(Configuration)'=='DebugRelease'">
  830. + <ClCompile>
  831. + <PrecompiledHeader>
  832. + </PrecompiledHeader>
  833. + <WarningLevel>Level3</WarningLevel>
  834. + <Optimization>Disabled</Optimization>
  835. + <PreprocessorDefinitions>HAVE_CONFIG_H;WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBBLURAY_EXPORTS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
  836. + <PreprocessorDefinitions Condition="'$(VisualStudioVersion)' == '12.0'">__STDC_FORMAT_MACROS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
  837. + <AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)includes;$(ProjectDir)src;$(ProjectDir)src\libbluray;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
  838. + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
  839. + <CompileAs Condition="'$(VisualStudioVersion)' == '12.0'">CompileAsCpp</CompileAs>
  840. + </ClCompile>
  841. + <Link>
  842. + <SubSystem>Windows</SubSystem>
  843. + <GenerateDebugInformation>true</GenerateDebugInformation>
  844. + <ModuleDefinitionFile>libbluray.def</ModuleDefinitionFile>
  845. + </Link>
  846. + <PostBuildEvent>
  847. + <Command>xcopy /I /Y "$(OutDir)$(TargetName).lib" "$(OutDir)lib\"</Command>
  848. + <Message>Copy .lib into library path</Message>
  849. + </PostBuildEvent>
  850. + </ItemDefinitionGroup>
  851. + <ItemDefinitionGroup Condition="'$(Configuration)'=='DebugRelease'">
  852. + <ClCompile>
  853. + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
  854. + </ClCompile>
  855. + </ItemDefinitionGroup>
  856. + <ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
  857. + <ClCompile>
  858. + <WarningLevel>Level3</WarningLevel>
  859. + <Optimization>MaxSpeed</Optimization>
  860. + <FunctionLevelLinking>true</FunctionLevelLinking>
  861. + <IntrinsicFunctions>true</IntrinsicFunctions>
  862. + <PreprocessorDefinitions>HAVE_CONFIG_H;WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBBLURAY_EXPORTS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
  863. + <PreprocessorDefinitions Condition="'$(VisualStudioVersion)' == '12.0'">__STDC_FORMAT_MACROS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
  864. + <AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)includes;$(ProjectDir)src;$(ProjectDir)src\libbluray;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
  865. + <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
  866. + <EnableEnhancedInstructionSet Condition="'$(Platform)'=='Win32'">StreamingSIMDExtensions</EnableEnhancedInstructionSet>
  867. + <CompileAs Condition="'$(VisualStudioVersion)' == '12.0'">CompileAsCpp</CompileAs>
  868. + </ClCompile>
  869. + <Link>
  870. + <SubSystem>Windows</SubSystem>
  871. + <GenerateDebugInformation>true</GenerateDebugInformation>
  872. + <EnableCOMDATFolding>true</EnableCOMDATFolding>
  873. + <OptimizeReferences>true</OptimizeReferences>
  874. + <ModuleDefinitionFile>libbluray.def</ModuleDefinitionFile>
  875. + <SetChecksum>true</SetChecksum>
  876. + </Link>
  877. + <PostBuildEvent>
  878. + <Command>xcopy /I /Y "$(TargetDir)$(TargetName)$(TargetExt)" "$(OutDir)..\"
  879. +xcopy /I /Y "$(TargetDir)$(TargetName).lib" "$(OutDir)..\lib\"</Command>
  880. + <Message>Copy .dll/.lib into library path</Message>
  881. + </PostBuildEvent>
  882. + </ItemDefinitionGroup>
  883. + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
  884. + <ImportGroup Label="ExtensionTargets">
  885. + </ImportGroup>
  886. +</Project>
  887. \ No newline at end of file
  888. diff --git a/libbluray.vcxproj.filters b/libbluray.vcxproj.filters
  889. new file mode 100644
  890. index 0000000..57ff16c
  891. --- /dev/null
  892. +++ b/libbluray.vcxproj.filters
  893. @@ -0,0 +1,353 @@
  894. +<?xml version="1.0" encoding="utf-8"?>
  895. +<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  896. + <ItemGroup>
  897. + <Filter Include="Source Files">
  898. + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
  899. + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
  900. + </Filter>
  901. + <Filter Include="Header Files">
  902. + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
  903. + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
  904. + </Filter>
  905. + <Filter Include="Resource Files">
  906. + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
  907. + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
  908. + </Filter>
  909. + <Filter Include="Source Files\util">
  910. + <UniqueIdentifier>{1ab0e905-7c04-4090-b385-6363dd1c961c}</UniqueIdentifier>
  911. + </Filter>
  912. + <Filter Include="Header Files\util">
  913. + <UniqueIdentifier>{b8fa3348-a089-461f-9ef5-3d9df997b8e5}</UniqueIdentifier>
  914. + </Filter>
  915. + <Filter Include="Header Files\file">
  916. + <UniqueIdentifier>{125333e9-0b5e-45f9-a444-f0aaaf547d9b}</UniqueIdentifier>
  917. + </Filter>
  918. + <Filter Include="Source Files\file">
  919. + <UniqueIdentifier>{a743058f-f07a-4d0f-bab6-02dc57defda9}</UniqueIdentifier>
  920. + </Filter>
  921. + <Filter Include="Source Files\libbluray">
  922. + <UniqueIdentifier>{7dacc7c4-ef59-452b-9e5b-392c9df07c98}</UniqueIdentifier>
  923. + </Filter>
  924. + <Filter Include="Header Files\libbluray">
  925. + <UniqueIdentifier>{c7895c81-c186-4d5e-a8ff-645c6d55a731}</UniqueIdentifier>
  926. + </Filter>
  927. + <Filter Include="Header Files\libbluray\bdnav">
  928. + <UniqueIdentifier>{c8619466-211b-4c85-9d30-d1b1a822d32e}</UniqueIdentifier>
  929. + </Filter>
  930. + <Filter Include="Source Files\libbluray\bdnav">
  931. + <UniqueIdentifier>{8afb6919-994f-4d1f-9638-ce4a06d0b473}</UniqueIdentifier>
  932. + </Filter>
  933. + <Filter Include="Source Files\libbluray\decoders">
  934. + <UniqueIdentifier>{0e9086a7-eebf-4b8e-a4fe-b1724d148877}</UniqueIdentifier>
  935. + </Filter>
  936. + <Filter Include="Header Files\libbluray\decoders">
  937. + <UniqueIdentifier>{fc5e776b-0f32-493a-b823-240288288502}</UniqueIdentifier>
  938. + </Filter>
  939. + <Filter Include="Header Files\libbluray\hdmv">
  940. + <UniqueIdentifier>{96d2d786-cd45-4856-937d-9e6f85ced241}</UniqueIdentifier>
  941. + </Filter>
  942. + <Filter Include="Source Files\libbluray\hdmv">
  943. + <UniqueIdentifier>{9f4ea4ae-217a-4d97-a5f3-e561ce1e49cd}</UniqueIdentifier>
  944. + </Filter>
  945. + <Filter Include="Source Files\libbluray\disc">
  946. + <UniqueIdentifier>{09e1b1b8-3aa3-4918-b157-3dfc0554ccbb}</UniqueIdentifier>
  947. + </Filter>
  948. + <Filter Include="Header Files\libbluray\disc">
  949. + <UniqueIdentifier>{1e02e503-752e-4765-9dfb-8cc67a7b79f8}</UniqueIdentifier>
  950. + </Filter>
  951. + </ItemGroup>
  952. + <ItemGroup>
  953. + <ClInclude Include="src\util\attributes.h">
  954. + <Filter>Header Files\util</Filter>
  955. + </ClInclude>
  956. + <ClInclude Include="src\util\strutl.h">
  957. + <Filter>Header Files\util</Filter>
  958. + </ClInclude>
  959. + <ClInclude Include="src\util\bits.h">
  960. + <Filter>Header Files\util</Filter>
  961. + </ClInclude>
  962. + <ClInclude Include="src\util\log_control.h">
  963. + <Filter>Header Files\util</Filter>
  964. + </ClInclude>
  965. + <ClInclude Include="src\util\logging.h">
  966. + <Filter>Header Files\util</Filter>
  967. + </ClInclude>
  968. + <ClInclude Include="src\util\macro.h">
  969. + <Filter>Header Files\util</Filter>
  970. + </ClInclude>
  971. + <ClInclude Include="src\util\mutex.h">
  972. + <Filter>Header Files\util</Filter>
  973. + </ClInclude>
  974. + <ClInclude Include="src\file\dl.h">
  975. + <Filter>Header Files\file</Filter>
  976. + </ClInclude>
  977. + <ClInclude Include="src\file\filesystem.h">
  978. + <Filter>Header Files\file</Filter>
  979. + </ClInclude>
  980. + <ClInclude Include="src\file\file.h">
  981. + <Filter>Header Files\file</Filter>
  982. + </ClInclude>
  983. + <ClInclude Include="src\libbluray\bluray.h">
  984. + <Filter>Header Files\libbluray</Filter>
  985. + </ClInclude>
  986. + <ClInclude Include="src\libbluray\register.h">
  987. + <Filter>Header Files\libbluray</Filter>
  988. + </ClInclude>
  989. + <ClInclude Include="src\libbluray\keys.h">
  990. + <Filter>Header Files\libbluray</Filter>
  991. + </ClInclude>
  992. + <ClInclude Include="src\libbluray\bdnav\bdparse.h">
  993. + <Filter>Header Files\libbluray\bdnav</Filter>
  994. + </ClInclude>
  995. + <ClInclude Include="src\libbluray\bdnav\uo_mask_table.h">
  996. + <Filter>Header Files\libbluray\bdnav</Filter>
  997. + </ClInclude>
  998. + <ClInclude Include="src\libbluray\bdnav\clpi_parse.h">
  999. + <Filter>Header Files\libbluray\bdnav</Filter>
  1000. + </ClInclude>
  1001. + <ClInclude Include="src\libbluray\bdnav\index_parse.h">
  1002. + <Filter>Header Files\libbluray\bdnav</Filter>
  1003. + </ClInclude>
  1004. + <ClInclude Include="src\libbluray\bdnav\meta_data.h">
  1005. + <Filter>Header Files\libbluray\bdnav</Filter>
  1006. + </ClInclude>
  1007. + <ClInclude Include="src\libbluray\bdnav\meta_parse.h">
  1008. + <Filter>Header Files\libbluray\bdnav</Filter>
  1009. + </ClInclude>
  1010. + <ClInclude Include="src\libbluray\bdnav\mpls_parse.h">
  1011. + <Filter>Header Files\libbluray\bdnav</Filter>
  1012. + </ClInclude>
  1013. + <ClInclude Include="src\libbluray\bdnav\navigation.h">
  1014. + <Filter>Header Files\libbluray\bdnav</Filter>
  1015. + </ClInclude>
  1016. + <ClInclude Include="src\libbluray\bdnav\sound_parse.h">
  1017. + <Filter>Header Files\libbluray\bdnav</Filter>
  1018. + </ClInclude>
  1019. + <ClInclude Include="src\libbluray\decoders\graphics_controller.h">
  1020. + <Filter>Header Files\libbluray\decoders</Filter>
  1021. + </ClInclude>
  1022. + <ClInclude Include="src\libbluray\decoders\pg_decode.h">
  1023. + <Filter>Header Files\libbluray\decoders</Filter>
  1024. + </ClInclude>
  1025. + <ClInclude Include="src\libbluray\decoders\graphics_processor.h">
  1026. + <Filter>Header Files\libbluray\decoders</Filter>
  1027. + </ClInclude>
  1028. + <ClInclude Include="src\libbluray\decoders\ig.h">
  1029. + <Filter>Header Files\libbluray\decoders</Filter>
  1030. + </ClInclude>
  1031. + <ClInclude Include="src\libbluray\decoders\ig_decode.h">
  1032. + <Filter>Header Files\libbluray\decoders</Filter>
  1033. + </ClInclude>
  1034. + <ClInclude Include="src\libbluray\decoders\m2ts_demux.h">
  1035. + <Filter>Header Files\libbluray\decoders</Filter>
  1036. + </ClInclude>
  1037. + <ClInclude Include="src\libbluray\decoders\overlay.h">
  1038. + <Filter>Header Files\libbluray\decoders</Filter>
  1039. + </ClInclude>
  1040. + <ClInclude Include="src\libbluray\decoders\pes_buffer.h">
  1041. + <Filter>Header Files\libbluray\decoders</Filter>
  1042. + </ClInclude>
  1043. + <ClInclude Include="src\libbluray\decoders\pg.h">
  1044. + <Filter>Header Files\libbluray\decoders</Filter>
  1045. + </ClInclude>
  1046. + <ClInclude Include="src\libbluray\hdmv\hdmv_insn.h">
  1047. + <Filter>Header Files\libbluray\hdmv</Filter>
  1048. + </ClInclude>
  1049. + <ClInclude Include="src\libbluray\hdmv\mobj_parse.h">
  1050. + <Filter>Header Files\libbluray\hdmv</Filter>
  1051. + </ClInclude>
  1052. + <ClInclude Include="src\libbluray\hdmv\hdmv_vm.h">
  1053. + <Filter>Header Files\libbluray\hdmv</Filter>
  1054. + </ClInclude>
  1055. + <ClInclude Include="src\libbluray\bdnav\bdid_parse.h">
  1056. + <Filter>Header Files\libbluray\bdnav</Filter>
  1057. + </ClInclude>
  1058. + <ClInclude Include="src\libbluray\bdnav\clpi_data.h">
  1059. + <Filter>Header Files\libbluray\bdnav</Filter>
  1060. + </ClInclude>
  1061. + <ClInclude Include="src\libbluray\bdnav\extdata_parse.h">
  1062. + <Filter>Header Files\libbluray\bdnav</Filter>
  1063. + </ClInclude>
  1064. + <ClInclude Include="src\libbluray\decoders\textst.h">
  1065. + <Filter>Header Files\libbluray\decoders</Filter>
  1066. + </ClInclude>
  1067. + <ClInclude Include="src\libbluray\decoders\textst_render.h">
  1068. + <Filter>Header Files\libbluray\decoders</Filter>
  1069. + </ClInclude>
  1070. + <ClInclude Include="src\libbluray\decoders\textst_decode.h">
  1071. + <Filter>Header Files\libbluray\decoders</Filter>
  1072. + </ClInclude>
  1073. + <ClInclude Include="src\libbluray\decoders\rle.h">
  1074. + <Filter>Header Files\libbluray\decoders</Filter>
  1075. + </ClInclude>
  1076. + <ClInclude Include="src\util\refcnt.h">
  1077. + <Filter>Header Files\util</Filter>
  1078. + </ClInclude>
  1079. + <ClInclude Include="src\util\time.h">
  1080. + <Filter>Header Files\util</Filter>
  1081. + </ClInclude>
  1082. + <ClInclude Include="src\libbluray\bluray_internal.h">
  1083. + <Filter>Header Files\libbluray</Filter>
  1084. + </ClInclude>
  1085. + <ClInclude Include="src\libbluray\decoders\m2ts_filter.h">
  1086. + <Filter>Header Files\libbluray\decoders</Filter>
  1087. + </ClInclude>
  1088. + <ClInclude Include="src\file\dirs.h">
  1089. + <Filter>Header Files\file</Filter>
  1090. + </ClInclude>
  1091. + <ClInclude Include="src\libbluray\bluray-version.h">
  1092. + <Filter>Header Files\libbluray</Filter>
  1093. + </ClInclude>
  1094. + <ClInclude Include="src\util\array.h">
  1095. + <Filter>Header Files\util</Filter>
  1096. + </ClInclude>
  1097. + <ClInclude Include="src\libbluray\disc\aacs.h">
  1098. + <Filter>Header Files\libbluray\disc</Filter>
  1099. + </ClInclude>
  1100. + <ClInclude Include="src\libbluray\disc\bdplus.h">
  1101. + <Filter>Header Files\libbluray\disc</Filter>
  1102. + </ClInclude>
  1103. + <ClInclude Include="src\libbluray\disc\dec.h">
  1104. + <Filter>Header Files\libbluray\disc</Filter>
  1105. + </ClInclude>
  1106. + <ClInclude Include="src\libbluray\disc\disc.h">
  1107. + <Filter>Header Files\libbluray\disc</Filter>
  1108. + </ClInclude>
  1109. + <ClInclude Include="src\libbluray\disc\enc_info.h">
  1110. + <Filter>Header Files\libbluray\disc</Filter>
  1111. + </ClInclude>
  1112. + <ClInclude Include="src\file\mount.h">
  1113. + <Filter>Header Files\file</Filter>
  1114. + </ClInclude>
  1115. + </ItemGroup>
  1116. + <ItemGroup>
  1117. + <ClCompile Include="src\util\logging.c">
  1118. + <Filter>Source Files\util</Filter>
  1119. + </ClCompile>
  1120. + <ClCompile Include="src\util\strutl.c">
  1121. + <Filter>Source Files\util</Filter>
  1122. + </ClCompile>
  1123. + <ClCompile Include="src\file\filesystem.c">
  1124. + <Filter>Source Files\file</Filter>
  1125. + </ClCompile>
  1126. + <ClCompile Include="src\libbluray\bluray.c">
  1127. + <Filter>Source Files\libbluray</Filter>
  1128. + </ClCompile>
  1129. + <ClCompile Include="src\libbluray\register.c">
  1130. + <Filter>Source Files\libbluray</Filter>
  1131. + </ClCompile>
  1132. + <ClCompile Include="src\libbluray\bdnav\clpi_parse.c">
  1133. + <Filter>Source Files\libbluray\bdnav</Filter>
  1134. + </ClCompile>
  1135. + <ClCompile Include="src\libbluray\bdnav\sound_parse.c">
  1136. + <Filter>Source Files\libbluray\bdnav</Filter>
  1137. + </ClCompile>
  1138. + <ClCompile Include="src\libbluray\bdnav\index_parse.c">
  1139. + <Filter>Source Files\libbluray\bdnav</Filter>
  1140. + </ClCompile>
  1141. + <ClCompile Include="src\libbluray\bdnav\meta_parse.c">
  1142. + <Filter>Source Files\libbluray\bdnav</Filter>
  1143. + </ClCompile>
  1144. + <ClCompile Include="src\libbluray\bdnav\mpls_parse.c">
  1145. + <Filter>Source Files\libbluray\bdnav</Filter>
  1146. + </ClCompile>
  1147. + <ClCompile Include="src\libbluray\bdnav\navigation.c">
  1148. + <Filter>Source Files\libbluray\bdnav</Filter>
  1149. + </ClCompile>
  1150. + <ClCompile Include="src\libbluray\decoders\graphics_controller.c">
  1151. + <Filter>Source Files\libbluray\decoders</Filter>
  1152. + </ClCompile>
  1153. + <ClCompile Include="src\libbluray\decoders\pg_decode.c">
  1154. + <Filter>Source Files\libbluray\decoders</Filter>
  1155. + </ClCompile>
  1156. + <ClCompile Include="src\libbluray\decoders\graphics_processor.c">
  1157. + <Filter>Source Files\libbluray\decoders</Filter>
  1158. + </ClCompile>
  1159. + <ClCompile Include="src\libbluray\decoders\ig_decode.c">
  1160. + <Filter>Source Files\libbluray\decoders</Filter>
  1161. + </ClCompile>
  1162. + <ClCompile Include="src\libbluray\decoders\m2ts_demux.c">
  1163. + <Filter>Source Files\libbluray\decoders</Filter>
  1164. + </ClCompile>
  1165. + <ClCompile Include="src\libbluray\decoders\pes_buffer.c">
  1166. + <Filter>Source Files\libbluray\decoders</Filter>
  1167. + </ClCompile>
  1168. + <ClCompile Include="src\libbluray\hdmv\hdmv_vm.c">
  1169. + <Filter>Source Files\libbluray\hdmv</Filter>
  1170. + </ClCompile>
  1171. + <ClCompile Include="src\libbluray\hdmv\mobj_print.c">
  1172. + <Filter>Source Files\libbluray\hdmv</Filter>
  1173. + </ClCompile>
  1174. + <ClCompile Include="src\libbluray\hdmv\mobj_parse.c">
  1175. + <Filter>Source Files\libbluray\hdmv</Filter>
  1176. + </ClCompile>
  1177. + <ClCompile Include="src\libbluray\bdnav\bdid_parse.c">
  1178. + <Filter>Source Files\libbluray\bdnav</Filter>
  1179. + </ClCompile>
  1180. + <ClCompile Include="src\libbluray\bdnav\extdata_parse.c">
  1181. + <Filter>Source Files\libbluray\bdnav</Filter>
  1182. + </ClCompile>
  1183. + <ClCompile Include="src\util\bits.c">
  1184. + <Filter>Source Files\util</Filter>
  1185. + </ClCompile>
  1186. + <ClCompile Include="src\file\dir_win32.c">
  1187. + <Filter>Source Files\file</Filter>
  1188. + </ClCompile>
  1189. + <ClCompile Include="src\file\dirs_win32.c">
  1190. + <Filter>Source Files\file</Filter>
  1191. + </ClCompile>
  1192. + <ClCompile Include="src\file\dl_win32.c">
  1193. + <Filter>Source Files\file</Filter>
  1194. + </ClCompile>
  1195. + <ClCompile Include="src\libbluray\decoders\textst_decode.c">
  1196. + <Filter>Source Files\libbluray\decoders</Filter>
  1197. + </ClCompile>
  1198. + <ClCompile Include="src\libbluray\decoders\textst_render.c">
  1199. + <Filter>Source Files\libbluray\decoders</Filter>
  1200. + </ClCompile>
  1201. + <ClCompile Include="src\util\refcnt.c">
  1202. + <Filter>Source Files\util</Filter>
  1203. + </ClCompile>
  1204. + <ClCompile Include="src\libbluray\decoders\m2ts_filter.c">
  1205. + <Filter>Source Files\libbluray\decoders</Filter>
  1206. + </ClCompile>
  1207. + <ClCompile Include="src\libbluray\decoders\rle.c">
  1208. + <Filter>Source Files\libbluray\decoders</Filter>
  1209. + </ClCompile>
  1210. + <ClCompile Include="src\file\file_win32.c">
  1211. + <Filter>Source Files\file</Filter>
  1212. + </ClCompile>
  1213. + <ClCompile Include="src\file\file.c">
  1214. + <Filter>Source Files\file</Filter>
  1215. + </ClCompile>
  1216. + <ClCompile Include="src\util\array.c">
  1217. + <Filter>Source Files\util</Filter>
  1218. + </ClCompile>
  1219. + <ClCompile Include="src\util\mutex.c">
  1220. + <Filter>Source Files\util</Filter>
  1221. + </ClCompile>
  1222. + <ClCompile Include="src\libbluray\disc\aacs.c">
  1223. + <Filter>Source Files\libbluray\disc</Filter>
  1224. + </ClCompile>
  1225. + <ClCompile Include="src\libbluray\disc\bdplus.c">
  1226. + <Filter>Source Files\libbluray\disc</Filter>
  1227. + </ClCompile>
  1228. + <ClCompile Include="src\libbluray\disc\dec.c">
  1229. + <Filter>Source Files\libbluray\disc</Filter>
  1230. + </ClCompile>
  1231. + <ClCompile Include="src\libbluray\disc\disc.c">
  1232. + <Filter>Source Files\libbluray\disc</Filter>
  1233. + </ClCompile>
  1234. + <ClCompile Include="src\util\time.c">
  1235. + <Filter>Source Files\util</Filter>
  1236. + </ClCompile>
  1237. + <ClCompile Include="src\file\mount.c">
  1238. + <Filter>Source Files\file</Filter>
  1239. + </ClCompile>
  1240. + </ItemGroup>
  1241. + <ItemGroup>
  1242. + <None Include="libbluray.def">
  1243. + <Filter>Source Files</Filter>
  1244. + </None>
  1245. + </ItemGroup>
  1246. +</Project>
  1247. \ No newline at end of file
  1248. diff --git a/src/devtools/bdj_test.c b/src/devtools/bdj_test.c
  1249. new file mode 100644
  1250. index 0000000..d9ebd16
  1251. --- /dev/null
  1252. +++ b/src/devtools/bdj_test.c
  1253. @@ -0,0 +1,67 @@
  1254. +/*
  1255. + * This file is part of libbluray
  1256. + * Copyright (C) 2010 William Hahne
  1257. + *
  1258. + * This program is free software; you can redistribute it and/or
  1259. + * modify it under the terms of the GNU General Public License
  1260. + * as published by the Free Software Foundation; either version 2
  1261. + * of the License, or (at your option) any later version.
  1262. + *
  1263. + * This program is distributed in the hope that it will be useful,
  1264. + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  1265. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  1266. + * GNU General Public License for more details.
  1267. + *
  1268. + * You should have received a copy of the GNU General Public License
  1269. + * along with this program. If not, see <http://www.gnu.org/licenses/>.
  1270. + *
  1271. + * In addition, as a special exception, the copyright holders of libbluray
  1272. + * gives permission to link the code of its release of libbluray with the
  1273. + * OpenSSL project's "OpenSSL" library (or with modified versions of it
  1274. + * that use the same license as the "OpenSSL" library), and distribute
  1275. + * the linked executables. You must obey the GNU General Public License
  1276. + * in all respects for all of the code used other than "OpenSSL". If you
  1277. + * modify this file, you may extend this exception to your version of the
  1278. + * file, but you are not obligated to do so. If you do not wish to do
  1279. + * so, delete this exception statement from your version.
  1280. + */
  1281. +
  1282. +#include <stdio.h>
  1283. +#include <stdlib.h>
  1284. +#include <unistd.h>
  1285. +
  1286. +#include "libbluray/bluray.h"
  1287. +
  1288. +#if defined(_WIN32)
  1289. +#include <windows.h>
  1290. +#define sleep(x) Sleep(x)
  1291. +#endif
  1292. +
  1293. +static void _usage(void) {
  1294. + printf("Usage: [path to disc] [starting object]\n");
  1295. +}
  1296. +
  1297. +int main(int argc, char** argv)
  1298. +{
  1299. + if (argc < 3) {
  1300. + _usage();
  1301. + return 0;
  1302. + }
  1303. +
  1304. + printf("%s %s\n", argv[1], argv[2]);
  1305. +
  1306. + BLURAY* bd = bd_open(argv[1], NULL);
  1307. +
  1308. + bd_get_titles(bd, TITLES_ALL, 0);
  1309. +
  1310. + if (!bd_start_bdj(bd, argv[2])) {
  1311. + printf("Failed to start BD-J application.\n");
  1312. + } else {
  1313. + while (1) { sleep(20); }
  1314. + bd_stop_bdj(bd);
  1315. + }
  1316. +
  1317. + bd_close(bd);
  1318. +
  1319. + return 0;
  1320. +}
  1321. diff --git a/src/devtools/bdjo_dump.c b/src/devtools/bdjo_dump.c
  1322. new file mode 100644
  1323. index 0000000..c9c8141
  1324. --- /dev/null
  1325. +++ b/src/devtools/bdjo_dump.c
  1326. @@ -0,0 +1,206 @@
  1327. +/*
  1328. + * This file is part of libbluray
  1329. + * Copyright (C) 2014 Petri Hintukainen <phintuka@users.sourceforge.net>
  1330. + *
  1331. + * This library is free software; you can redistribute it and/or
  1332. + * modify it under the terms of the GNU Lesser General Public
  1333. + * License as published by the Free Software Foundation; either
  1334. + * version 2.1 of the License, or (at your option) any later version.
  1335. + *
  1336. + * This library is distributed in the hope that it will be useful,
  1337. + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  1338. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  1339. + * Lesser General Public License for more details.
  1340. + *
  1341. + * You should have received a copy of the GNU Lesser General Public
  1342. + * License along with this library. If not, see
  1343. + * <http://www.gnu.org/li…

Large files files are truncated, but you can click here to view the full file