Hello community, here is the log from the commit of package libdvdread for openSUSE:Factory checked in at 2015-04-03 14:32:16 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libdvdread (Old) and /work/SRC/openSUSE:Factory/.libdvdread.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "libdvdread" Changes: -------- --- /work/SRC/openSUSE:Factory/libdvdread/libdvdread.changes 2015-02-06 10:48:09.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.libdvdread.new/libdvdread.changes 2015-04-03 14:32:17.000000000 +0200 @@ -1,0 +2,8 @@ +Sat Mar 28 17:47:08 UTC 2015 - joerg.lorenzen@ki.tng.de + +- Update to version 5.0.3: + * Cache IFO and BUP files (only for ImageFiles) in order to reduce + the number of read/seek access + * Fix compilation warnings for OS/2 + +------------------------------------------------------------------- Old: ---- libdvdread-5.0.2.tar.bz2 New: ---- libdvdread-5.0.3.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libdvdread.spec ++++++ --- /var/tmp/diff_new_pack.ztoK4b/_old 2015-04-03 14:32:18.000000000 +0200 +++ /var/tmp/diff_new_pack.ztoK4b/_new 2015-04-03 14:32:18.000000000 +0200 @@ -21,7 +21,7 @@ License: GPL-2.0+ Group: Productivity/Multimedia/Other Url: http://www.mplayerhq.hu/ -Version: 5.0.2 +Version: 5.0.3 Release: 0 Source0: http://download.videolan.org/videolan/%{name}/%{version}/%{name}-%{version}.tar.bz2 Source1: baselibs.conf ++++++ libdvdread-5.0.2.tar.bz2 -> libdvdread-5.0.3.tar.bz2 ++++++ ++++ 2503 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdvdread-5.0.2/ChangeLog new/libdvdread-5.0.3/ChangeLog --- old/libdvdread-5.0.2/ChangeLog 2015-01-28 17:20:32.000000000 +0100 +++ new/libdvdread-5.0.3/ChangeLog 2015-03-25 14:58:27.000000000 +0100 @@ -1,3 +1,43 @@ +commit 2b8f60f0c4efd85f17116a5443851d4bb4a288b7 +Author: Jean-Baptiste Kempf <jb@videolan.org> +Date: Wed Mar 25 14:55:05 2015 +0100 + + Update NEWS for 5.0.3 + +commit 107ca98775df1eb953881acd8df5471e8bcc88cd +Author: Jean-Baptiste Kempf <jb@videolan.org> +Date: Wed Mar 25 14:32:38 2015 +0100 + + Update dvd_reader version too + +commit a76a31f0f909200a96eecffe6ea3292f3aa2374f +Author: Thomas Guillem <thomas@gllm.fr> +Date: Fri Mar 13 17:03:13 2015 +0100 + + Update NEWS for 5.0.3 + + Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org> + +commit 85b6663a59290f1cda175690daaf89eb433430bc +Author: Thomas Guillem <thomas@gllm.fr> +Date: Fri Mar 13 17:03:12 2015 +0100 + + dvd_reader: cache IFO and BUP files (only for images files) + + It reduces the number of read/seek accesses + + Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org> + +commit af446d463a15fb08f95f8b84bfc89af395b6e1bc +Author: KO Myung-Hun <komh78@gmail.com> +Date: Thu Jan 29 17:29:03 2015 +0900 + + ifo_types.h: fix 'warning: `gcc_struct' attribute directive ignored' + + gcc_struct has been supported since gcc 3.4. + + Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org> + commit 574b886b733e8737e8cf17d9330049289e837ac3 Author: Jean-Baptiste Kempf <jb@videolan.org> Date: Wed Jan 28 17:17:32 2015 +0100 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdvdread-5.0.2/NEWS new/libdvdread-5.0.3/NEWS --- old/libdvdread-5.0.2/NEWS 2015-01-27 16:37:08.000000000 +0100 +++ new/libdvdread-5.0.3/NEWS 2015-03-25 14:55:03.000000000 +0100 @@ -1,3 +1,8 @@ +libdvdread (5.0.3) + * Cache IFO and BUP files (only for ImageFiles) in order to reduce the number + of read/seek access + * Fix compilation warnings for OS/2 + libdvdread (5.0.2) * Add DVDOpenStream to open a dvd from a set of callbacks diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdvdread-5.0.2/compile new/libdvdread-5.0.3/compile --- old/libdvdread-5.0.2/compile 2015-01-03 01:17:26.000000000 +0100 +++ new/libdvdread-5.0.3/compile 2015-03-14 19:08:09.000000000 +0100 @@ -3,7 +3,7 @@ scriptversion=2012-10-14.11; # UTC -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # Written by Tom Tromey <tromey@cygnus.com>. # # This program is free software; you can redistribute it and/or modify diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdvdread-5.0.2/configure.ac new/libdvdread-5.0.3/configure.ac --- old/libdvdread-5.0.2/configure.ac 2015-01-27 16:37:28.000000000 +0100 +++ new/libdvdread-5.0.3/configure.ac 2015-03-14 19:09:18.000000000 +0100 @@ -1,4 +1,4 @@ -AC_INIT(libdvdread, 5.0.2) +AC_INIT(libdvdread, 5.0.3) AC_CONFIG_SRCDIR([src/dvd_reader.c]) AC_PREREQ(2.53) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdvdread-5.0.2/m4/libtool.m4 new/libdvdread-5.0.3/m4/libtool.m4 --- old/libdvdread-5.0.2/m4/libtool.m4 2015-01-03 01:17:22.000000000 +0100 +++ new/libdvdread-5.0.3/m4/libtool.m4 2015-03-14 19:08:05.000000000 +0100 @@ -1,6 +1,6 @@ # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # -# Copyright (C) 1996-2001, 2003-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives @@ -103,19 +103,36 @@ dnl AC_DEFUN([AM_PROG_LIBTOOL], []) +# _LT_PREPARE_CC_BASENAME +# ----------------------- +m4_defun([_LT_PREPARE_CC_BASENAME], [ +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in @S|@*""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} +])# _LT_PREPARE_CC_BASENAME + + # _LT_CC_BASENAME(CC) # ------------------- -# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +# It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME, +# but that macro is also expanded into generated libtool script, which +# arranges for $SED and $ECHO to be set by different means. m4_defun([_LT_CC_BASENAME], -[for cc_temp in $1""; do - case $cc_temp in - compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; - distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +[m4_require([_LT_PREPARE_CC_BASENAME])dnl +AC_REQUIRE([_LT_DECL_SED])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl +func_cc_basename $1 +cc_basename=$func_cc_basename_result ]) @@ -720,6 +737,9 @@ _LT_COPYING _LT_LIBTOOL_TAGS +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} + # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS @@ -727,6 +747,17 @@ _LT_EOF + cat <<'_LT_EOF' >> "$cfgfile" + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +_LT_PREPARE_MUNGE_PATH_LIST +_LT_PREPARE_CC_BASENAME + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +_LT_EOF + case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" @@ -2202,6 +2233,47 @@ ])# _LT_CMD_STRIPLIB +# _LT_PREPARE_MUNGE_PATH_LIST +# --------------------------- +# Make sure func_munge_path_list() is defined correctly. +m4_defun([_LT_PREPARE_MUNGE_PATH_LIST], +[[# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x@S|@2 in + x) + ;; + *:) + eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" + ;; + x:*) + eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" + ;; + *) + eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" + ;; + esac +} +]])# _LT_PREPARE_PATH_LIST + + # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics @@ -2212,6 +2284,7 @@ m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ @@ -2306,6 +2379,9 @@ # flags to be left without arguments need_version=unknown +AC_ARG_VAR([LT_SYS_LIBRARY_PATH], +[User-defined run-time library search path.]) + case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor @@ -2594,6 +2670,7 @@ case $version_type in freebsd-elf*) library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' need_version=no need_lib_prefix=no ;; @@ -2653,10 +2730,11 @@ soname_spec='$libname$release$shared_ext$major' if test 32 = "$HPUX_IA64_MODE"; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' @@ -2789,7 +2867,12 @@ # before this can be enabled. hardcode_into_libs=yes - # Append ld.so.conf contents to the search path + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" @@ -3013,10 +3096,20 @@ if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec fi + if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec fi +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH + _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) @@ -3049,8 +3142,10 @@ [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) -_LT_DECL([], [sys_lib_dlsearch_path_spec], [2], - [Run-time system search path for libraries]) +_LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2], + [Detected run-time system search path for libraries]) +_LT_DECL([], [configure_time_lt_sys_library_path], [2], + [Explicit LT_SYS_LIBRARY_PATH set during ./configure time]) ])# _LT_SYS_DYNAMIC_LINKER @@ -7350,6 +7445,7 @@ } # func_stripname_cnf ])# _LT_FUNC_STRIPNAME_CNF + # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose @@ -7528,51 +7624,6 @@ _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; - -linux*) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes - ;; - esac - - if test yes != "$solaris_use_stlport4"; then - _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' - fi - ;; - esac - ;; - -solaris*) - case $cc_basename in - CC* | sunCC*) - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes - ;; - esac - - # Adding this requires a known-good setup of shared libraries for - # Sun compiler versions before 5.6, else PIC objects from an old - # archive will be linked into the output, leading to subtle bugs. - if test yes != "$solaris_use_stlport4"; then - _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' - fi - ;; - esac - ;; esac ]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdvdread-5.0.2/m4/ltoptions.m4 new/libdvdread-5.0.3/m4/ltoptions.m4 --- old/libdvdread-5.0.2/m4/ltoptions.m4 2015-01-03 01:17:22.000000000 +0100 +++ new/libdvdread-5.0.3/m4/ltoptions.m4 2015-03-14 19:08:05.000000000 +0100 @@ -1,6 +1,6 @@ # Helper functions for option handling. -*- Autoconf -*- # -# Copyright (C) 2004-2005, 2007-2009, 2011-2014 Free Software +# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software # Foundation, Inc. # Written by Gary V. Vaughan, 2004 # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdvdread-5.0.2/m4/ltsugar.m4 new/libdvdread-5.0.3/m4/ltsugar.m4 --- old/libdvdread-5.0.2/m4/ltsugar.m4 2015-01-03 01:17:22.000000000 +0100 +++ new/libdvdread-5.0.3/m4/ltsugar.m4 2015-03-14 19:08:05.000000000 +0100 @@ -1,6 +1,6 @@ # ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # -# Copyright (C) 2004-2005, 2007-2008, 2011-2014 Free Software +# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software # Foundation, Inc. # Written by Gary V. Vaughan, 2004 # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdvdread-5.0.2/m4/ltversion.m4 new/libdvdread-5.0.3/m4/ltversion.m4 --- old/libdvdread-5.0.2/m4/ltversion.m4 2015-01-03 01:17:22.000000000 +0100 +++ new/libdvdread-5.0.3/m4/ltversion.m4 2015-03-14 19:08:05.000000000 +0100 @@ -1,6 +1,6 @@ # ltversion.m4 -- version numbers -*- Autoconf -*- # -# Copyright (C) 2004, 2011-2014 Free Software Foundation, Inc. +# Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives @@ -9,15 +9,15 @@ # @configure_input@ -# serial 4151 ltversion.m4 +# serial 4179 ltversion.m4 # This file is part of GNU Libtool -m4_define([LT_PACKAGE_VERSION], [2.4.4]) -m4_define([LT_PACKAGE_REVISION], [2.4.4]) +m4_define([LT_PACKAGE_VERSION], [2.4.6]) +m4_define([LT_PACKAGE_REVISION], [2.4.6]) AC_DEFUN([LTVERSION_VERSION], -[macro_version='2.4.4' -macro_revision='2.4.4' +[macro_version='2.4.6' +macro_revision='2.4.6' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdvdread-5.0.2/m4/lt~obsolete.m4 new/libdvdread-5.0.3/m4/lt~obsolete.m4 --- old/libdvdread-5.0.2/m4/lt~obsolete.m4 2015-01-03 01:17:22.000000000 +0100 +++ new/libdvdread-5.0.3/m4/lt~obsolete.m4 2015-03-14 19:08:05.000000000 +0100 @@ -1,6 +1,6 @@ # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # -# Copyright (C) 2004-2005, 2007, 2009, 2011-2014 Free Software +# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software # Foundation, Inc. # Written by Scott James Remnant, 2004. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdvdread-5.0.2/missing new/libdvdread-5.0.3/missing --- old/libdvdread-5.0.2/missing 2015-01-03 01:17:26.000000000 +0100 +++ new/libdvdread-5.0.3/missing 2015-03-14 19:08:09.000000000 +0100 @@ -3,7 +3,7 @@ scriptversion=2013-10-28.13; # UTC -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. # This program is free software; you can redistribute it and/or modify diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdvdread-5.0.2/src/dvd_reader.c new/libdvdread-5.0.3/src/dvd_reader.c --- old/libdvdread-5.0.2/src/dvd_reader.c 2015-01-27 16:24:31.000000000 +0100 +++ new/libdvdread-5.0.3/src/dvd_reader.c 2015-03-14 19:09:18.000000000 +0100 @@ -118,6 +118,10 @@ /* Calculated at open-time, size in blocks. */ ssize_t filesize; + + /* Cache of the dvd_file. If not NULL, the cache corresponds to the whole + * dvd_file. Used only for IFO and BUP. */ + unsigned char *cache; }; int InternalUDFReadBlocksRaw( const dvd_reader_t *device, uint32_t lb_number, @@ -647,7 +651,8 @@ /** * Open an unencrypted file on a DVD image file. */ -static dvd_file_t *DVDOpenFileUDF( dvd_reader_t *dvd, char *filename ) +static dvd_file_t *DVDOpenFileUDF( dvd_reader_t *dvd, char *filename, + int do_cache ) { uint32_t start, len; dvd_file_t *dvd_file; @@ -669,6 +674,25 @@ memset( dvd_file->title_sizes, 0, sizeof( dvd_file->title_sizes ) ); memset( dvd_file->title_devs, 0, sizeof( dvd_file->title_devs ) ); dvd_file->filesize = len / DVD_VIDEO_LB_LEN; + dvd_file->cache = NULL; + + /* Read the whole file in cache (unencrypted) if asked and if it doesn't + * exceed 128KB */ + if( do_cache && len < 64 * DVD_VIDEO_LB_LEN ) { + int ret; + + dvd_file->cache = malloc( len ); + if( !dvd_file->cache ) + return dvd_file; + + ret = InternalUDFReadBlocksRaw( dvd, dvd_file->lb_start, + dvd_file->filesize, dvd_file->cache, + DVDINPUT_NOFLAGS ); + if( ret != dvd_file->filesize ) { + free( dvd_file->cache ); + dvd_file->cache = NULL; + } + } return dvd_file; } @@ -766,6 +790,7 @@ memset( dvd_file->title_sizes, 0, sizeof( dvd_file->title_sizes ) ); memset( dvd_file->title_devs, 0, sizeof( dvd_file->title_devs ) ); dvd_file->filesize = 0; + dvd_file->cache = NULL; if( stat( full_path, &fileinfo ) < 0 ) { fprintf( stderr, "libdvdread: Can't stat() %s.\n", filename ); @@ -803,6 +828,7 @@ memset( dvd_file->title_sizes, 0, sizeof( dvd_file->title_sizes ) ); memset( dvd_file->title_devs, 0, sizeof( dvd_file->title_devs ) ); dvd_file->filesize = len / DVD_VIDEO_LB_LEN; + dvd_file->cache = NULL; /* Calculate the complete file size for every file in the VOBS */ if( !menu ) { @@ -845,6 +871,7 @@ memset( dvd_file->title_sizes, 0, sizeof( dvd_file->title_sizes ) ); memset( dvd_file->title_devs, 0, sizeof( dvd_file->title_devs ) ); dvd_file->filesize = 0; + dvd_file->cache = NULL; if( menu ) { dvd_input_t dev; @@ -909,6 +936,7 @@ dvd_read_domain_t domain ) { char filename[ MAX_UDF_FILE_NAME_LEN ]; + int do_cache = 0; /* Check arguments. */ if( dvd == NULL || titlenum < 0 ) @@ -921,6 +949,7 @@ } else { sprintf( filename, "/VIDEO_TS/VTS_%02i_0.IFO", titlenum ); } + do_cache = 1; break; case DVD_READ_INFO_BACKUP_FILE: if( titlenum == 0 ) { @@ -928,6 +957,7 @@ } else { sprintf( filename, "/VIDEO_TS/VTS_%02i_0.BUP", titlenum ); } + do_cache = 1; break; case DVD_READ_MENU_VOBS: if( dvd->isImageFile ) { @@ -950,7 +980,7 @@ } if( dvd->isImageFile ) { - return DVDOpenFileUDF( dvd, filename ); + return DVDOpenFileUDF( dvd, filename, do_cache ); } else { return DVDOpenFilePath( dvd, filename ); } @@ -969,6 +999,7 @@ } } + free( dvd_file->cache ); free( dvd_file ); dvd_file = NULL; } @@ -1182,8 +1213,25 @@ size_t block_count, unsigned char *data, int encrypted ) { - return InternalUDFReadBlocksRaw( dvd_file->dvd, dvd_file->lb_start + offset, - block_count, data, encrypted ); + /* If the cache is present and we don't need to decrypt, use the cache to + * feed the data */ + if( dvd_file->cache && (encrypted & DVDINPUT_READ_DECRYPT) == 0 ) { + /* Check if we don't exceed the cache (or file) size */ + if( block_count + offset > (size_t) dvd_file->filesize ) + return 0; + + /* Copy the cache at a specified offset into data. offset and block_count + * must be converted into bytes */ + memcpy( data, dvd_file->cache + (off_t)offset * (off_t)DVD_VIDEO_LB_LEN, + (off_t)block_count * (off_t)DVD_VIDEO_LB_LEN ); + + /* return the amount of blocks copied */ + return block_count; + } else { + /* use dvdinput access */ + return InternalUDFReadBlocksRaw( dvd_file->dvd, dvd_file->lb_start + offset, + block_count, data, encrypted ); + } } /* This is using possibly several inputs and starting from an offset of '0'. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdvdread-5.0.2/src/dvdread/dvd_reader.h new/libdvdread-5.0.3/src/dvdread/dvd_reader.h --- old/libdvdread-5.0.2/src/dvdread/dvd_reader.h 2015-01-27 16:24:31.000000000 +0100 +++ new/libdvdread-5.0.3/src/dvdread/dvd_reader.h 2015-03-25 14:32:32.000000000 +0100 @@ -43,7 +43,7 @@ /** * The current version. */ -#define DVDREAD_VERSION 50000 +#define DVDREAD_VERSION 50300 /** * The length of one Logical Block of a DVD. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdvdread-5.0.2/src/dvdread/ifo_types.h new/libdvdread-5.0.3/src/dvdread/ifo_types.h --- old/libdvdread-5.0.2/src/dvdread/ifo_types.h 2014-08-28 08:50:25.000000000 +0200 +++ new/libdvdread-5.0.3/src/dvdread/ifo_types.h 2015-01-29 13:37:56.000000000 +0100 @@ -32,7 +32,11 @@ #if defined(__GNUC__) #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) +#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) #define ATTRIBUTE_PACKED __attribute__ ((packed,gcc_struct)) +#else +#define ATTRIBUTE_PACKED __attribute__ ((packed)) +#endif #define PRAGMA_PACK 0 #endif #endif