Hello community, here is the log from the commit of package libbluray for openSUSE:Factory checked in at 2012-09-17 16:58:12 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libbluray (Old) and /work/SRC/openSUSE:Factory/.libbluray.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libbluray", Maintainer is "" Changes: -------- --- /work/SRC/openSUSE:Factory/libbluray/libbluray.changes 2012-05-26 09:26:21.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.libbluray.new/libbluray.changes 2012-09-17 16:58:14.000000000 +0200 @@ -1,0 +2,8 @@ +Sat Sep 15 22:27:06 UTC 2012 - [email protected] + +- Update to version 0.2.3: + + Default to stream 0 when language not found + + Bug fixes +- Add tools subpackage, with the new command line utilities. + +------------------------------------------------------------------- Old: ---- libbluray-0.2.2.tar.bz2 New: ---- libbluray-0.2.3.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libbluray.spec ++++++ --- /var/tmp/diff_new_pack.iFwQ86/_old 2012-09-17 16:58:15.000000000 +0200 +++ /var/tmp/diff_new_pack.iFwQ86/_new 2012-09-17 16:58:15.000000000 +0200 @@ -18,11 +18,11 @@ Name: libbluray -Version: 0.2.2 +Version: 0.2.3 Release: 0 Summary: Library to access Blu-Ray disk License: LGPL-2.1+ -Group: System/Libraries +Group: Productivity/Multimedia/Other Url: http://bd.videolan.org Source: ftp://ftp.videolan.org/pub/videolan/%{name}/%{version}/%{name}-%{version}.tar.bz2 Source99: baselibs.conf @@ -36,13 +36,22 @@ %package -n libbluray1 Summary: Library to access Blu-Ray disk -Group: System/Libraries +Group: Productivity/Multimedia/Other %description -n libbluray1 This library is written for the purpose of playing Blu-ray movies. It is intended for software that want to support Blu-ray playback (such as VLC and MPlayer). We, the authors of this library, do not condone nor endorse piracy. +%package tools +Summary: Library to access Blu-Ray disk - Utilities +Group: System/Libraries + +%description tools +This library is written for the purpose of playing Blu-ray movies. It is +intended for software that want to support Blu-ray playback (such as VLC and +MPlayer). We, the authors of this library, do not condone nor endorse piracy. + %package devel Summary: Library to access Blu-Ray disks - Development files Group: Development/Languages/C and C++ @@ -68,6 +77,10 @@ %postun -n libbluray1 -p /sbin/ldconfig +%files tools +%defattr(-,root,root) +%{_bindir}/bd_info + %files -n libbluray1 %defattr(-, root, root) %doc COPYING ++++++ libbluray-0.2.2.tar.bz2 -> libbluray-0.2.3.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libbluray-0.2.2/ChangeLog new/libbluray-0.2.3/ChangeLog --- old/libbluray-0.2.2/ChangeLog 2012-03-19 15:23:58.000000000 +0100 +++ new/libbluray-0.2.3/ChangeLog 2012-08-17 13:27:32.000000000 +0200 @@ -1,3 +1,12 @@ +2012-08-17: Version 0.2.3 + - Fixed memory leaks + - Automatic language selection: disable subtitles when audio is in the same language + - Fixed accessing outside of array bounds + - Default to stream 0 when requested language not found + - Install bd_info + - Added disc ID and AACS MKB version to BD_DISC_INFO + - Added extended AACS error codes + 2012-03-19: Version 0.2.2 - Fixed displaying of single-loop animated buttons when not using animations - Added events for pop-up menu availability and IG menu status diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libbluray-0.2.2/Makefile.in new/libbluray-0.2.3/Makefile.in --- old/libbluray-0.2.2/Makefile.in 2012-03-19 15:53:36.000000000 +0100 +++ new/libbluray-0.2.3/Makefile.in 2012-08-17 13:31:47.000000000 +0200 @@ -175,7 +175,7 @@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ -DLOPEN_LDFLAGS = @DLOPEN_LDFLAGS@ +DLOPEN_LIBS = @DLOPEN_LIBS@ DOXYGEN_PAPER_SIZE = @DOXYGEN_PAPER_SIZE@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libbluray-0.2.2/configure new/libbluray-0.2.3/configure --- old/libbluray-0.2.2/configure 2012-03-19 15:53:34.000000000 +0100 +++ new/libbluray-0.2.3/configure 2012-08-17 13:31:41.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68 for libbluray 0.2.2. +# Generated by GNU Autoconf 2.68 for libbluray 0.2.3. # # Report bugs to <http://www.videolan.org/developers/libbluray.html>. # @@ -570,8 +570,8 @@ # Identity of this package. PACKAGE_NAME='libbluray' PACKAGE_TARNAME='libbluray' -PACKAGE_VERSION='0.2.2' -PACKAGE_STRING='libbluray 0.2.2' +PACKAGE_VERSION='0.2.3' +PACKAGE_STRING='libbluray 0.2.3' PACKAGE_BUGREPORT='http://www.videolan.org/developers/libbluray.html' PACKAGE_URL='' @@ -618,7 +618,7 @@ SET_DEBUG_OPTS SET_OPTIMIZATIONS SET_WARNINGS -DLOPEN_LDFLAGS +DLOPEN_LIBS BDJAVA_CFLAGS LT_VERSION_INFO BLURAY_VERSION_MICRO @@ -1380,7 +1380,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libbluray 0.2.2 to adapt to many kinds of systems. +\`configure' configures libbluray 0.2.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1451,7 +1451,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libbluray 0.2.2:";; + short | recursive ) echo "Configuration of libbluray 0.2.3:";; esac cat <<\_ACEOF @@ -1584,7 +1584,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libbluray configure 0.2.2 +libbluray configure 0.2.3 generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. @@ -2010,7 +2010,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libbluray $as_me 0.2.2, which was +It was created by libbluray $as_me 0.2.3, which was generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -2937,7 +2937,7 @@ # Define the identity of the package. PACKAGE='libbluray' - VERSION='0.2.2' + VERSION='0.2.3' cat >>confdefs.h <<_ACEOF @@ -12216,7 +12216,7 @@ cat >>confdefs.h <<_ACEOF #define HAVE_DLOPEN 1 _ACEOF - DLOPEN_LDFLAGS="" + DLOPEN_LIBS="" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } @@ -12255,7 +12255,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : - DLOPEN_LDFLAGS="-ldl" + DLOPEN_LIBS="-ldl" else as_fn_error $? "$library_not_found" "$LINENO" 5 fi @@ -12543,6 +12543,10 @@ check_cc_options -Wundef && \ SET_WARNINGS="$SET_WARNINGS -Wundef" +# no implicit function declarations +check_cc_options -Werror-implicit-function-declaration && \ + SET_WARNINGS="$SET_WARNINGS -Werror-implicit-function-declaration" + # use -Werror if [ $use_werror = "yes" ]; then check_cc_options -Werror && \ @@ -14557,11 +14561,11 @@ BLURAY_VERSION_MINOR=2 -BLURAY_VERSION_MICRO=2 +BLURAY_VERSION_MICRO=3 # export library (.so) version -LT_VERSION_INFO="2:0:1" +LT_VERSION_INFO="3:0:2" # generate output files @@ -15202,7 +15206,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libbluray $as_me 0.2.2, which was +This file was extended by libbluray $as_me 0.2.3, which was generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -15268,7 +15272,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -libbluray config.status 0.2.2 +libbluray config.status 0.2.3 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libbluray-0.2.2/configure.ac new/libbluray-0.2.3/configure.ac --- old/libbluray-0.2.2/configure.ac 2012-03-19 15:23:58.000000000 +0100 +++ new/libbluray-0.2.3/configure.ac 2012-08-17 13:27:32.000000000 +0200 @@ -1,7 +1,7 @@ # library version number m4_define([bluray_major], 0) m4_define([bluray_minor], 2) -m4_define([bluray_micro], 2) +m4_define([bluray_micro], 3) m4_define([bluray_version],[bluray_major.bluray_minor.bluray_micro]) # shared library version (.so version) @@ -12,9 +12,9 @@ # # Library file name will be libbluray.so.(current-age).age.revision # -m4_define([lt_current], 2) +m4_define([lt_current], 3) m4_define([lt_revision], 0) -m4_define([lt_age], 1) +m4_define([lt_age], 2) # initilization AC_INIT([libbluray], bluray_version, [http://www.videolan.org/developers/libbluray.html]) @@ -139,9 +139,9 @@ if test "${SYS}" != "mingw32" ; then AC_CHECK_FUNCS( [dlopen], - [DLOPEN_LDFLAGS=""], + [DLOPEN_LIBS=""], [AC_CHECK_LIB([dl], [dlopen], - [DLOPEN_LDFLAGS="-ldl"], + [DLOPEN_LIBS="-ldl"], [AC_MSG_ERROR($library_not_found)])]) fi @@ -198,6 +198,10 @@ check_cc_options -Wundef && \ SET_WARNINGS="$SET_WARNINGS -Wundef" +# no implicit function declarations +check_cc_options -Werror-implicit-function-declaration && \ + SET_WARNINGS="$SET_WARNINGS -Werror-implicit-function-declaration" + # use -Werror if [[ $use_werror = "yes" ]]; then check_cc_options -Werror && \ @@ -272,7 +276,7 @@ # generate output files AC_SUBST(BDJAVA_CFLAGS) -AC_SUBST(DLOPEN_LDFLAGS) +AC_SUBST(DLOPEN_LIBS) AC_SUBST(SET_WARNINGS) AC_SUBST(SET_OPTIMIZATIONS) AC_SUBST(SET_DEBUG_OPTS) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libbluray-0.2.2/src/Makefile.am new/libbluray-0.2.3/src/Makefile.am --- old/libbluray-0.2.2/src/Makefile.am 2012-03-15 17:02:31.000000000 +0100 +++ new/libbluray-0.2.3/src/Makefile.am 2012-08-17 13:27:32.000000000 +0200 @@ -88,8 +88,8 @@ util/bits.h \ util/logging.h libbluray_la_HEADERS= libbluray/bluray.h file/filesystem.h util/log_control.h libbluray/keys.h libbluray/decoders/overlay.h libbluray/bdnav/meta_data.h libbluray/bdnav/clpi_data.h libbluray/bluray-version.h -libbluray_la_LDFLAGS= -version-info $(LIB_VERSION_INFO) $(DLOPEN_LDFLAGS) -libbluray_la_LIBADD= $(LIBXML2_LIBS) +libbluray_la_LDFLAGS= -version-info $(LIB_VERSION_INFO) +libbluray_la_LIBADD= $(LIBXML2_LIBS) $(DLOPEN_LIBS) if USING_BDJAVA libbluray_la_SOURCES+=$(SOURCES_bdj) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libbluray-0.2.2/src/Makefile.in new/libbluray-0.2.3/src/Makefile.in --- old/libbluray-0.2.2/src/Makefile.in 2012-03-19 15:53:36.000000000 +0100 +++ new/libbluray-0.2.3/src/Makefile.in 2012-08-17 13:31:46.000000000 +0200 @@ -85,7 +85,8 @@ "$(DESTDIR)$(libbluray_ladir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = -libbluray_la_DEPENDENCIES = $(am__DEPENDENCIES_1) +libbluray_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) am__libbluray_la_SOURCES_DIST = libbluray/bluray.h libbluray/bluray.c \ libbluray/register.h libbluray/register.c libbluray/keys.h \ libbluray/bdnav libbluray/bdnav/bdparse.h \ @@ -212,7 +213,7 @@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ -DLOPEN_LDFLAGS = @DLOPEN_LDFLAGS@ +DLOPEN_LIBS = @DLOPEN_LIBS@ DOXYGEN_PAPER_SIZE = @DOXYGEN_PAPER_SIZE@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ @@ -399,8 +400,8 @@ util/mutex.h util/logging.c util/log_control.h util/bits.h \ util/logging.h $(am__append_1) libbluray_la_HEADERS = libbluray/bluray.h file/filesystem.h util/log_control.h libbluray/keys.h libbluray/decoders/overlay.h libbluray/bdnav/meta_data.h libbluray/bdnav/clpi_data.h libbluray/bluray-version.h -libbluray_la_LDFLAGS = -version-info $(LIB_VERSION_INFO) $(DLOPEN_LDFLAGS) -libbluray_la_LIBADD = $(LIBXML2_LIBS) +libbluray_la_LDFLAGS = -version-info $(LIB_VERSION_INFO) +libbluray_la_LIBADD = $(LIBXML2_LIBS) $(DLOPEN_LIBS) pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libbluray.pc all: all-recursive diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libbluray-0.2.2/src/examples/Makefile.am new/libbluray-0.2.3/src/examples/Makefile.am --- old/libbluray-0.2.2/src/examples/Makefile.am 2012-01-19 10:22:21.000000000 +0100 +++ new/libbluray-0.2.3/src/examples/Makefile.am 2012-08-17 13:27:32.000000000 +0200 @@ -11,7 +11,8 @@ if USING_EXAMPLES noinst_PROGRAMS=bdsplice mpls_dump clpi_dump index_dump mobj_dump sound_dump \ - libbluray_test bd_info list_titles hdmv_test + libbluray_test list_titles hdmv_test +bin_PROGRAMS=bd_info BLURAY_LIB = $(top_builddir)/src/libbluray.la diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libbluray-0.2.2/src/examples/Makefile.in new/libbluray-0.2.3/src/examples/Makefile.in --- old/libbluray-0.2.2/src/examples/Makefile.in 2012-03-19 15:53:36.000000000 +0100 +++ new/libbluray-0.2.3/src/examples/Makefile.in 2012-08-17 13:31:47.000000000 +0200 @@ -39,9 +39,10 @@ @USING_EXAMPLES_TRUE@ mpls_dump$(EXEEXT) clpi_dump$(EXEEXT) \ @USING_EXAMPLES_TRUE@ index_dump$(EXEEXT) mobj_dump$(EXEEXT) \ @USING_EXAMPLES_TRUE@ sound_dump$(EXEEXT) \ -@USING_EXAMPLES_TRUE@ libbluray_test$(EXEEXT) bd_info$(EXEEXT) \ +@USING_EXAMPLES_TRUE@ libbluray_test$(EXEEXT) \ @USING_EXAMPLES_TRUE@ list_titles$(EXEEXT) hdmv_test$(EXEEXT) \ @USING_EXAMPLES_TRUE@ $(am__EXEEXT_1) +@USING_EXAMPLES_TRUE@bin_PROGRAMS = bd_info$(EXEEXT) @USING_BDJAVA_TRUE@@USING_EXAMPLES_TRUE@am__append_1 = @BDJAVA_CFLAGS@ @USING_BDJAVA_TRUE@@USING_EXAMPLES_TRUE@am__append_2 = bdj_test subdir = src/examples @@ -58,9 +59,10 @@ CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +am__installdirs = "$(DESTDIR)$(bindir)" @USING_BDJAVA_TRUE@@USING_EXAMPLES_TRUE@am__EXEEXT_1 = \ @USING_BDJAVA_TRUE@@USING_EXAMPLES_TRUE@ bdj_test$(EXEEXT) -PROGRAMS = $(noinst_PROGRAMS) +PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) am__bd_info_SOURCES_DIST = bd_info.c @USING_EXAMPLES_TRUE@am_bd_info_OBJECTS = bd_info.$(OBJEXT) bd_info_OBJECTS = $(am_bd_info_OBJECTS) @@ -180,7 +182,7 @@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ -DLOPEN_LDFLAGS = @DLOPEN_LDFLAGS@ +DLOPEN_LIBS = @DLOPEN_LIBS@ DOXYGEN_PAPER_SIZE = @DOXYGEN_PAPER_SIZE@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ @@ -413,6 +415,49 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p || test -f $$p1; \ + then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(bindir)" && rm -f $$files + +clean-binPROGRAMS: + @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ @@ -753,6 +798,9 @@ check: check-am all-am: Makefile $(PROGRAMS) installdirs: + for dir in "$(DESTDIR)$(bindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done install: install-am install-exec: install-exec-am install-data: install-data-am @@ -785,8 +833,8 @@ @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ - mostlyclean-am +clean-am: clean-binPROGRAMS clean-generic clean-libtool \ + clean-noinstPROGRAMS mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) @@ -812,7 +860,7 @@ install-dvi-am: -install-exec-am: +install-exec-am: install-binPROGRAMS install-html: install-html-am @@ -852,22 +900,23 @@ ps-am: -uninstall-am: +uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstPROGRAMS ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ + clean-generic clean-libtool clean-noinstPROGRAMS ctags \ + distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-binPROGRAMS \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-binPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libbluray-0.2.2/src/examples/bd_info.c new/libbluray-0.2.3/src/examples/bd_info.c --- old/libbluray-0.2.2/src/examples/bd_info.c 2011-12-20 09:28:44.000000000 +0100 +++ new/libbluray-0.2.3/src/examples/bd_info.c 2012-08-17 13:27:32.000000000 +0200 @@ -50,6 +50,34 @@ return "<undefined>"; } +static const char *_hex2str(const uint8_t *data, size_t len) +{ + static char *str = NULL; + size_t i; + + str = realloc(str, 2*len + 1); + *str = 0; + + for (i = 0; i < len; i++) { + sprintf(str+2*i, "%02X", data[i]); + } + + return str; +} + +static const char *_aacs_error2str(int error_code) +{ + switch (error_code) { + case BD_AACS_CORRUPTED_DISC: return "corrupted BluRay disc"; + case BD_AACS_NO_CONFIG: return "AACS configuration file missing"; + case BD_AACS_NO_PK: return "no matching processing key"; + case BD_AACS_NO_CERT: return "no valid AACS certificate"; + case BD_AACS_CERT_REVOKED: return "AACS certificate revoked"; + case BD_AACS_MMC_FAILED: return "MMC authentication failed"; + } + return "unknown error"; +} + static const char *_res2str(int x, int y) { if (x > 0 && y > 0 && x < 0xffff && y < 0xffff) { @@ -130,7 +158,14 @@ printf("\nAACS detected : %s\n", _yes_no(info->aacs_detected)); if (info->aacs_detected) { printf("libaacs detected : %s\n", _yes_no(info->libaacs_detected)); - printf("AACS handled : %s\n", _yes_no(info->aacs_handled)); + if (info->libaacs_detected) { + printf("Disc ID : %s\n", _hex2str(info->disc_id, sizeof(info->disc_id))); + printf("AACS MKB version : %d\n", info->aacs_mkbv); + printf("AACS handled : %s\n", _yes_no(info->aacs_handled)); + if (!info->aacs_handled) { + printf(" (%s)\n", _aacs_error2str(info->aacs_error_code)); + } + } } printf("\nBD+ detected : %s\n", _yes_no(info->bdplus_detected)); @@ -141,5 +176,7 @@ _print_meta(bd_get_meta(bd)); + bd_close(bd); + return 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libbluray-0.2.2/src/examples/list_titles.c new/libbluray-0.2.3/src/examples/list_titles.c --- old/libbluray-0.2.2/src/examples/list_titles.c 2011-06-13 22:23:12.000000000 +0200 +++ new/libbluray-0.2.3/src/examples/list_titles.c 2012-08-17 13:27:32.000000000 +0200 @@ -96,5 +96,6 @@ ); bd_free_title_info(ti); } + bd_close(bd); return 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libbluray-0.2.2/src/libbluray/bdnav/meta_parse.c new/libbluray-0.2.3/src/libbluray/bdnav/meta_parse.c --- old/libbluray-0.2.2/src/libbluray/bdnav/meta_parse.c 2012-01-19 10:22:21.000000000 +0100 +++ new/libbluray-0.2.3/src/libbluray/bdnav/meta_parse.c 2012-08-17 13:27:32.000000000 +0200 @@ -43,44 +43,52 @@ #include <libxml/tree.h> #endif +#define BAD_CAST_CONST (const xmlChar *) + + #ifdef HAVE_LIBXML2 static void _parseManifestNode(xmlNode * a_node, META_DL *disclib) { xmlNode *cur_node = NULL; + xmlChar *tmp; for (cur_node = a_node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { - if (xmlStrEqual(cur_node->parent->name, xmlCharStrdup("title"))) { - if (xmlStrEqual(cur_node->name, xmlCharStrdup("name"))) { - disclib->di_name = (char*)xmlStrdup(xmlNodeGetContent(cur_node)); + if (xmlStrEqual(cur_node->parent->name, BAD_CAST_CONST "title")) { + if (xmlStrEqual(cur_node->name, BAD_CAST_CONST "name")) { + disclib->di_name = (char*)xmlNodeGetContent(cur_node); } - if (xmlStrEqual(cur_node->name, xmlCharStrdup("alternative"))) { - disclib->di_alternative = (char*)xmlStrdup(xmlNodeGetContent(cur_node)); + if (xmlStrEqual(cur_node->name, BAD_CAST_CONST "alternative")) { + disclib->di_alternative = (char*)xmlNodeGetContent(cur_node); } - if (xmlStrEqual(cur_node->name, xmlCharStrdup("numSets"))) { - disclib->di_num_sets = atoi((char*)xmlNodeGetContent(cur_node)); + if (xmlStrEqual(cur_node->name, BAD_CAST_CONST "numSets")) { + disclib->di_num_sets = atoi((char*)(tmp = xmlNodeGetContent(cur_node))); + xmlFree(tmp); } - if (xmlStrEqual(cur_node->name, xmlCharStrdup("setNumber"))) { - disclib->di_set_number = atoi((char*)xmlNodeGetContent(cur_node)); + if (xmlStrEqual(cur_node->name, BAD_CAST_CONST "setNumber")) { + disclib->di_set_number = atoi((char*)(tmp = xmlNodeGetContent(cur_node))); + xmlFree(tmp); } } - else if (xmlStrEqual(cur_node->parent->name, xmlCharStrdup("tableOfContents"))) { - if (xmlStrEqual(cur_node->name, xmlCharStrdup("titleName")) && xmlGetProp(cur_node, xmlCharStrdup("titleNumber"))) { + else if (xmlStrEqual(cur_node->parent->name, BAD_CAST_CONST "tableOfContents")) { + if (xmlStrEqual(cur_node->name, BAD_CAST_CONST "titleName") && (tmp = xmlGetProp(cur_node, BAD_CAST_CONST "titleNumber"))) { int i = disclib->toc_count; disclib->toc_count++; disclib->toc_entries = realloc(disclib->toc_entries, (disclib->toc_count*sizeof(META_TITLE))); - disclib->toc_entries[i].title_number = atoi((const char*)xmlGetProp(cur_node, xmlCharStrdup("titleNumber"))); - disclib->toc_entries[i].title_name = (char*)xmlStrdup(xmlNodeGetContent(cur_node)); + disclib->toc_entries[i].title_number = atoi((const char*)tmp); + disclib->toc_entries[i].title_name = (char*)xmlNodeGetContent(cur_node); + X_FREE(tmp); } } - else if (xmlStrEqual(cur_node->parent->name, xmlCharStrdup("description"))) { - if (xmlStrEqual(cur_node->name, xmlCharStrdup("thumbnail")) && xmlGetProp(cur_node, xmlCharStrdup("href"))) { + else if (xmlStrEqual(cur_node->parent->name, BAD_CAST_CONST "description")) { + if (xmlStrEqual(cur_node->name, BAD_CAST_CONST "thumbnail") && (tmp = xmlGetProp(cur_node, BAD_CAST_CONST "href"))) { uint8_t i = disclib->thumb_count; disclib->thumb_count++; disclib->thumbnails = realloc(disclib->thumbnails, (disclib->thumb_count*sizeof(META_THUMBNAIL))); - disclib->thumbnails[i].path = strdup((const char*)xmlGetProp(cur_node, xmlCharStrdup("href"))); - if (xmlGetProp(cur_node, xmlCharStrdup("size"))) { - sscanf((const char*)xmlGetProp(cur_node, xmlCharStrdup("size")), "%ix%i", &disclib->thumbnails[i].xres, &disclib->thumbnails[i].yres); + disclib->thumbnails[i].path = (char *)tmp; + if ((tmp = xmlGetProp(cur_node, BAD_CAST_CONST "size"))) { + sscanf((const char*)tmp, "%ix%i", &disclib->thumbnails[i].xres, &disclib->thumbnails[i].yres); + X_FREE(tmp); } else { disclib->thumbnails[i].xres = disclib->thumbnails[i].yres = -1; @@ -142,6 +150,8 @@ BD_FILE_H *handle = file_open(path, "rb"); if (handle == NULL) { BD_DEBUG(DBG_DIR, "Failed to open meta file (%s)\n", path); + X_FREE(path); + X_FREE(base); continue; } @@ -155,6 +165,8 @@ doc = xmlReadMemory((char*)data, size_read, base, NULL, 0); if (doc == NULL) { BD_DEBUG(DBG_DIR, "Failed to parse %s\n", path); + X_FREE(path); + X_FREE(base); continue; } xmlNode *root_element = NULL; @@ -169,6 +181,8 @@ X_FREE(data); } file_close(handle); + X_FREE(path); + X_FREE(base); } xmlCleanupParser(); return root; @@ -214,18 +228,19 @@ uint8_t i; for (i = 0; i < (*p)->dl_count; i++) { uint32_t t; - for (t=0; i < (*p)->dl_entries[i].toc_count; t++) { + for (t = 0; t < (*p)->dl_entries[i].toc_count; t++) { X_FREE((*p)->dl_entries[i].toc_entries[t].title_name); - X_FREE((*p)->dl_entries[i].toc_entries); } - for (t = 0; i < (*p)->dl_entries[i].thumb_count; t++) { + for (t = 0; t < (*p)->dl_entries[i].thumb_count; t++) { X_FREE((*p)->dl_entries[i].thumbnails[t].path); - X_FREE((*p)->dl_entries[i].thumbnails); } + X_FREE((*p)->dl_entries[i].toc_entries); + X_FREE((*p)->dl_entries[i].thumbnails); X_FREE((*p)->dl_entries[i].filename); X_FREE((*p)->dl_entries[i].di_name); X_FREE((*p)->dl_entries[i].di_alternative); } + X_FREE((*p)->dl_entries); X_FREE(*p); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libbluray-0.2.2/src/libbluray/bdnav/mpls_parse.c new/libbluray-0.2.3/src/libbluray/bdnav/mpls_parse.c --- old/libbluray-0.2.2/src/libbluray/bdnav/mpls_parse.c 2011-10-22 23:07:05.000000000 +0200 +++ new/libbluray-0.2.3/src/libbluray/bdnav/mpls_parse.c 2012-08-17 13:27:32.000000000 +0200 @@ -401,6 +401,14 @@ static void _clean_stn(MPLS_STN *stn) { + if(stn->secondary_audio) { + X_FREE(stn->secondary_audio->sa_primary_audio_ref); + } + if(stn->secondary_video) { + X_FREE(stn->secondary_video->sv_secondary_audio_ref); + X_FREE(stn->secondary_video->sv_pip_pg_ref); + } + X_FREE(stn->video); X_FREE(stn->audio); X_FREE(stn->pg); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libbluray-0.2.2/src/libbluray/bluray-version.h new/libbluray-0.2.3/src/libbluray/bluray-version.h --- old/libbluray-0.2.2/src/libbluray/bluray-version.h 2012-03-19 15:53:56.000000000 +0100 +++ new/libbluray-0.2.3/src/libbluray/bluray-version.h 2012-08-17 13:32:04.000000000 +0200 @@ -27,9 +27,9 @@ #define BLURAY_VERSION_MAJOR 0 #define BLURAY_VERSION_MINOR 2 -#define BLURAY_VERSION_MICRO 2 +#define BLURAY_VERSION_MICRO 3 -#define BLURAY_VERSION_STRING "0.2.2" +#define BLURAY_VERSION_STRING "0.2.3" #define BLURAY_VERSION \ BLURAY_VERSION_CODE(BLURAY_VERSION_MAJOR, BLURAY_VERSION_MINOR, BLURAY_VERSION_MICRO) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libbluray-0.2.2/src/libbluray/bluray.c new/libbluray-0.2.3/src/libbluray/bluray.c --- old/libbluray-0.2.2/src/libbluray/bluray.c 2012-03-19 15:23:58.000000000 +0100 +++ new/libbluray-0.2.3/src/libbluray/bluray.c 2012-08-17 13:27:32.000000000 +0200 @@ -258,8 +258,9 @@ static void _update_stream_psr_by_lang(BD_REGISTERS *regs, uint32_t psr_lang, uint32_t psr_stream, - uint32_t enable_flag, uint32_t undefined_val, - MPLS_STREAM *streams, unsigned num_streams) + uint32_t enable_flag, + MPLS_STREAM *streams, unsigned num_streams, + uint32_t *lang, uint32_t blacklist) { uint32_t psr_val; int stream_idx = -1; @@ -283,13 +284,21 @@ if (stream_idx < 0) { /* requested language not found */ - stream_idx = undefined_val - 1; + stream_idx = 0; enable_flag = 0; + + } else { + if (lang) { + *lang = psr_val; + } + if (blacklist == psr_val) { + enable_flag = 0; + } } /* update PSR */ - BD_DEBUG(DBG_BLURAY, "Selected stream %d (language %s)\n", ii, streams[ii].lang); + BD_DEBUG(DBG_BLURAY, "Selected stream %d (language %s)\n", stream_idx, streams[stream_idx].lang); bd_psr_lock(regs); @@ -310,13 +319,16 @@ */ if (bd->title_type == title_undef) { MPLS_STN *stn = &clip->title->pl->play_item[clip->ref].stn; + uint32_t audio_lang = 0; _update_stream_psr_by_lang(bd->regs, - PSR_AUDIO_LANG, PSR_PRIMARY_AUDIO_ID, 0, 0xff, - stn->audio, stn->num_audio); + PSR_AUDIO_LANG, PSR_PRIMARY_AUDIO_ID, 0, + stn->audio, stn->num_audio, + &audio_lang, 0); _update_stream_psr_by_lang(bd->regs, - PSR_PG_AND_SUB_LANG, PSR_PG_STREAM, 0x80000000, 0xfff, - stn->pg, stn->num_pg); + PSR_PG_AND_SUB_LANG, PSR_PG_STREAM, 0x80000000, + stn->pg, stn->num_pg, + NULL, audio_lang); } } @@ -701,17 +713,59 @@ return 0; } - bd->aacs = bd->libaacs_open(bd->device_path, keyfile_path); + int error_code = 0; + fptr_p_void aacs_open2 = (fptr_p_void)dl_dlsym(bd->h_libaacs, "aacs_open2"); + if (!aacs_open2) { + BD_DEBUG(DBG_BLURAY, "Using old aacs_open(), no verbose error reporting available (%p)\n", bd->aacs); + bd->aacs = bd->libaacs_open(bd->device_path, keyfile_path); + } else { + bd->aacs = aacs_open2(bd->device_path, keyfile_path, &error_code); + } if (bd->aacs) { - BD_DEBUG(DBG_BLURAY, "Opened libaacs (%p)\n", bd->aacs); - bd->disc_info.aacs_handled = 1; - return 1; + fptr_int aacs_get_mkb_version = (fptr_int) dl_dlsym(bd->h_libaacs, "aacs_get_mkb_version"); + fptr_p_void aacs_get_disc_id = (fptr_p_void) dl_dlsym(bd->h_libaacs, "aacs_get_disc_id"); + if (aacs_get_mkb_version) { + bd->disc_info.aacs_mkbv = aacs_get_mkb_version(bd->aacs); + } + if (aacs_get_disc_id) { + memcpy(bd->disc_info.disc_id, aacs_get_disc_id(bd->aacs), 20); + } + + if (!error_code) { + BD_DEBUG(DBG_BLURAY, "Opened libaacs (%p)\n", bd->aacs); + bd->disc_info.aacs_handled = 1; + return 1; + } } BD_DEBUG(DBG_BLURAY, "aacs_open() failed!\n"); bd->disc_info.aacs_handled = 0; + switch (error_code) { + case 0: /* AACS_SUCCESS */ + break; + case -1: /* AACS_ERROR_CORRUPTED_DISC */ + bd->disc_info.aacs_error_code = BD_AACS_CORRUPTED_DISC; + break; + case -2: /* AACS_ERROR_NO_CONFIG */ + bd->disc_info.aacs_error_code = BD_AACS_NO_CONFIG; + break; + case -3: /* AACS_ERROR_NO_PK */ + bd->disc_info.aacs_error_code = BD_AACS_NO_PK; + break; + case -4: /* AACS_ERROR_NO_CERT */ + bd->disc_info.aacs_error_code = BD_AACS_NO_CERT; + break; + case -5: /* AACS_ERROR_CERT_REVOKED */ + bd->disc_info.aacs_error_code = BD_AACS_CERT_REVOKED; + break; + case -6: /* AACS_ERROR_MMC_OPEN */ + case -7: /* AACS_ERROR_MMC_FAILURE */ + bd->disc_info.aacs_error_code = BD_AACS_MMC_FAILED; + break; + } + _libaacs_unload(bd); return 0; } @@ -1048,6 +1102,7 @@ gc_free(&bd->graphics_controller); indx_free(&bd->index); + meta_free(&bd->meta); sound_free(&bd->sound_effects); bd_registers_free(bd->regs); @@ -1307,15 +1362,15 @@ } } } + if (st->clip == NULL) { + // We previously reached the last clip. Nothing + // else to read. + _queue_event(bd, (BD_EVENT){BD_EVENT_END_OF_TITLE, 0}); + return 0; + } if (st->int_buf_off == 6144 || clip_pkt >= st->clip->end_pkt) { // Do we need to get the next clip? - if (st->clip == NULL) { - // We previously reached the last clip. Nothing - // else to read. - _queue_event(bd, (BD_EVENT){BD_EVENT_END_OF_TITLE, 0}); - return 0; - } if (clip_pkt >= st->clip->end_pkt) { // split read()'s at clip boundary diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libbluray-0.2.2/src/libbluray/bluray.h new/libbluray-0.2.3/src/libbluray/bluray.h --- old/libbluray-0.2.2/src/libbluray/bluray.h 2012-03-19 15:23:58.000000000 +0100 +++ new/libbluray-0.2.3/src/libbluray/bluray.h 2012-08-17 13:27:32.000000000 +0200 @@ -407,6 +407,14 @@ * Disc info */ +/* AACS error codes */ +#define BD_AACS_CORRUPTED_DISC -1 +#define BD_AACS_NO_CONFIG -2 +#define BD_AACS_NO_PK -3 +#define BD_AACS_NO_CERT -4 +#define BD_AACS_CERT_REVOKED -5 +#define BD_AACS_MMC_FAILED -6 + typedef struct { uint8_t bluray_detected; @@ -425,6 +433,14 @@ uint8_t libbdplus_detected; uint8_t bdplus_handled; + /* aacs error code */ + int aacs_error_code; + /* aacs MKB version */ + int aacs_mkbv; + + /* Disc ID */ + uint8_t disc_id[20]; + } BLURAY_DISC_INFO; /** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libbluray-0.2.2/src/libbluray/decoders/graphics_controller.c new/libbluray-0.2.3/src/libbluray/decoders/graphics_controller.c --- old/libbluray-0.2.2/src/libbluray/decoders/graphics_controller.c 2012-01-27 17:45:40.000000000 +0100 +++ new/libbluray-0.2.3/src/libbluray/decoders/graphics_controller.c 2012-08-17 13:27:32.000000000 +0200 @@ -711,7 +711,7 @@ /* make sure we won't wipe other buttons */ unsigned ii, skip = 0; for (ii = 0; &gc->bog_data[ii] != bog_data; ii++) { - if (_areas_overlap(bog_data, &bog_data[ii])) + if (_areas_overlap(bog_data, &gc->bog_data[ii])) skip = 1; /* FIXME: clean non-overlapping area */ } -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
