Hello community,

here is the log from the commit of package libdvdread for openSUSE:Factory 
checked in at 2014-12-21 12:00:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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    2014-07-28 
16:11:22.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libdvdread.new/libdvdread.changes       
2014-12-21 12:00:39.000000000 +0100
@@ -1,0 +2,8 @@
+Wed Dec 17 23:54:43 UTC 2014 - joerg.loren...@ki.tng.de
+
+- Update to version 5.0.0:
+  * added support for Android
+  * fix build support for OS/2
+  * fix crashes in IFO parsing (Shark Week The Great Bites Collection)
+
+-------------------------------------------------------------------

Old:
----
  libdvdread-4.9.9.tar.bz2

New:
----
  libdvdread-5.0.0.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libdvdread.spec ++++++
--- /var/tmp/diff_new_pack.zWEWhI/_old  2014-12-21 12:00:41.000000000 +0100
+++ /var/tmp/diff_new_pack.zWEWhI/_new  2014-12-21 12:00:41.000000000 +0100
@@ -21,7 +21,7 @@
 License:        GPL-2.0+
 Group:          Productivity/Multimedia/Other
 Url:            http://www.mplayerhq.hu/
-Version:        4.9.9
+Version:        5.0.0
 Release:        0
 Source0:        
http://download.videolan.org/videolan/%{name}/%{version}/%{name}-%{version}.tar.bz2
 Source1:        baselibs.conf

++++++ libdvdread-4.9.9.tar.bz2 -> libdvdread-5.0.0.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libdvdread-4.9.9/ChangeLog 
new/libdvdread-5.0.0/ChangeLog
--- old/libdvdread-4.9.9/ChangeLog      2014-04-09 18:04:54.000000000 +0200
+++ new/libdvdread-5.0.0/ChangeLog      2014-07-31 23:54:44.000000000 +0200
@@ -1,3 +1,188 @@
+commit 8999b92630c46435f96bbaad564a2aaf211b2ce9
+Author: Jean-Baptiste Kempf <j...@videolan.org>
+Date:   Thu Jul 31 03:44:30 2014 +0200
+
+    Do not hardcode Tag Identifier
+
+commit 64dfc537f4c2a5f46d1673299c92d95e7f49257b
+Author: Diego Biurrun <di...@biurrun.de>
+Date:   Thu Jul 31 23:39:12 2014 +0200
+
+    build: Remove ChangeLog only on maintainer-clean, not distclean
+    
+    The file is automatically generated with Git, so in a distribution
+    tarball without Git metadata it cannot be regenerated once deleted.
+
+commit 4018b958d1d88c5ad486aca95b0fe1804eadbb98
+Author: Diego Biurrun <di...@biurrun.de>
+Date:   Thu Jul 31 23:37:59 2014 +0200
+
+    Ignore generated 'compile' Automake helper program and release tarballs
+
+commit 839feb210301366fced3be9afa3fde4703339bc1
+Author: Jean-Baptiste Kempf <j...@videolan.org>
+Date:   Wed Jul 30 22:27:51 2014 +0200
+
+    Increase the version in the dvd_reader.h header
+    
+    See Debian #532438
+
+commit f64e1aedae8f746b97037e41f4adc7c78bda9fa5
+Author: Jean-Baptiste Kempf <j...@videolan.org>
+Date:   Sun Jul 27 01:27:28 2014 +0200
+
+    Add -Wextra compilation flags
+
+commit a3a050adae15fe6585d4d2b9a5213e31d360081f
+Author: Jean-Baptiste Kempf <j...@videolan.org>
+Date:   Sun Jul 13 03:42:38 2014 +0200
+
+    On the road to 5.0.0
+
+commit a7cedb037147234e3dec1d75add729fdf98f84bb
+Author: Jean-Baptiste Kempf <j...@videolan.org>
+Date:   Sun Jul 13 01:54:08 2014 +0200
+
+    Update NEWS for 5.0.0
+
+commit 7c6206accb4f039d9171765f239afc48557e455f
+Author: Dominik 'Rathann' Mierzejewski <domi...@greysector.net>
+Date:   Wed Jun 11 12:16:26 2014 +0200
+
+    put changes present in 4.2.1 release in the NEWS file
+
+commit 59332a29770e0bbc4a8b02dfb0b9304fb50551a4
+Author: Jean-Baptiste Kempf <j...@videolan.org>
+Date:   Thu Jun 5 20:28:14 2014 +0200
+
+    Support Android
+    
+    I will not comment more on the stupidity of bionic...
+
+commit 75f8601ee3b19d8914528860f7e1d2906df4a411
+Author: Thomas Petazzoni <thomas.petazz...@free-electrons.com>
+Date:   Sat May 17 10:26:00 2014 +0200
+
+    configure: fix build on NIOS II platform
+    
+    NIOS II is a CPU architecture from Altera, which uses 'nios2' as the
+    architecture part of the tuple. Unfortunately, 'nios2' matches the
+    current '*os2*' test done by libdvdread's configure script to detect
+    the OS/2 operating system. This leads to build issues as the build
+    process of libdvdread then tries to use OS/2 specific compiler
+    options, that do not exist in the gcc used for Linux/NIOS2.
+    
+    To fix this, this patch makes the test for OS/2 a little bit more
+    specific: in the case of the OS/2 operating system, the OS part of the
+    tuple contains just 'os2' (confirmed by looking at config.guess and
+    config.sub in the gnuconfig project). So using '*-os2-*' will properly
+    match the OS/2 operating system but not the NIOS II architecture.
+    
+    Signed-off-by: Thomas Petazzoni <thomas.petazz...@free-electrons.com>
+    Signed-off-by: Jean-Baptiste Kempf <j...@videolan.org>
+
+commit 6733be216f17c75af74e61f0e4e1083492684796
+Author: Steve Dibb <bean...@gentoo.org>
+Date:   Thu May 15 19:20:59 2014 -0600
+
+    Clean up order of variables, display of output.
+    
+    Remove redundant check for video_attr.
+    
+    Rearrange checks for attributes to match same order as declarations.
+    
+    Move video unknown string to last displayed, similar to audio output, and 
use same naming scheme.
+    
+    Signed-off-by: Jean-Baptiste Kempf <j...@videolan.org>
+
+commit d59e891d05c0acda388061645cc033837a92a586
+Author: Steve Dibb <bean...@gentoo.org>
+Date:   Thu May 15 11:58:08 2014 -0600
+
+    Remain consistent with earlier code in function
+    
+    Signed-off-by: Jean-Baptiste Kempf <j...@videolan.org>
+
+commit 15a8100907c0172b6c4f5b47a8264a6bc94432fe
+Author: Steve Dibb <bean...@gentoo.org>
+Date:   Tue May 13 09:46:52 2014 -0600
+
+    Remove unused 'level' parameter
+    
+    Signed-off-by: Jean-Baptiste Kempf <j...@videolan.org>
+
+commit cff267d99196c719017ab4d229eecea35e3e0cd1
+Author: Steve Dibb <bean...@gentoo.org>
+Date:   Tue May 13 09:46:51 2014 -0600
+
+    An IFO without a VTS TMAP is very common, remove warning
+    
+    Signed-off-by: Jean-Baptiste Kempf <j...@videolan.org>
+
+commit c3f1a56caa4f876ed3753935d95d93292cfd5ed7
+Author: Steve Dibb <bean...@gentoo.org>
+Date:   Wed May 7 13:09:15 2014 -0600
+
+    libdvdread: src/ifo_read.c Fix off-by-one error on displaying IFO filename
+    
+    Fixes incorrect warning:
+    
+    libdvdread: Invalid IFO for title 2 (VTS_02_0.BU).
+    
+    to:
+    
+    libdvdread: Invalid IFO for title 2 (VTS_02_0.BUP).
+    
+    Signed-off-by: Jean-Baptiste Kempf <j...@videolan.org>
+
+commit 0cd997af4474b5026308195ecfb33a6016a9e7fb
+Author: Steve Dibb <bean...@gentoo.org>
+Date:   Thu Apr 24 16:42:21 2014 +0200
+
+    Fix crash in ifoRead_VTS_PTT_SRPT()
+    
+    In ifoRead_VTS_PTT_SRPT(), there's a lot of places where the
+    function will exit on a 'goto fail' call if the IFO is invalid.
+    
+    However, the check for the PGN value is only done later.
+    
+    This fixes it so that it fails earlier -- when the PGN is
+    originally set, and doesn't go through the other checks as well, trying to 
set
+    invalid data that will be referenced later.
+    
+    See VLC trac #10459
+
+commit 0538a5dbecc917c409c7ec62a7ff32b02ba1eb73
+Author: Steve Dibb <bean...@gentoo.org>
+Date:   Tue Apr 15 13:28:33 2014 -0600
+
+    libdvdread: remove unused variables; cleanup return syntax
+    
+    Signed-off-by: Jean-Baptiste Kempf <j...@videolan.org>
+
+commit d65889e7ba84799c3155006a7be7ee6a218288fc
+Author: KO Myung-Hun <kom...@gmail.com>
+Date:   Thu Apr 10 22:57:04 2014 +0900
+
+    src/dvd_read.c: fix a compilation warning on OS/2
+    
+    -----
+    src/dvd_reader.c: In function `DVDOpen':
+    src/dvd_reader.c:561: warning: implicit declaration of function `isalpha'
+    -----
+    
+    Signed-off-by: Jean-Baptiste Kempf <j...@videolan.org>
+
+commit 9818650809d02ed9603686232ade3537234e74e8
+Author: KO Myung-Hun <kom...@gmail.com>
+Date:   Thu Apr 10 22:57:03 2014 +0900
+
+    configure: add additional flags to LDFLAGS on OS/2
+    
+    This allows to build a DLL and to open files in binary mode.
+    
+    Signed-off-by: Jean-Baptiste Kempf <j...@videolan.org>
+
 commit 7ab8ba341f9c5c9182413d4727f11c18319ee76c
 Author: Jean-Baptiste Kempf <j...@videolan.org>
 Date:   Wed Apr 9 18:04:39 2014 +0200
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libdvdread-4.9.9/Makefile.am 
new/libdvdread-5.0.0/Makefile.am
--- old/libdvdread-4.9.9/Makefile.am    2014-03-02 11:58:24.000000000 +0100
+++ new/libdvdread-5.0.0/Makefile.am    2014-07-31 23:45:16.000000000 +0200
@@ -4,7 +4,7 @@
 
 dist_doc_DATA = AUTHORS ChangeLog COPYING NEWS README TODO
 
-DISTCLEANFILES = ChangeLog
+MAINTAINERCLEANFILES = ChangeLog
 
 ChangeLog: $(wildcard $(srcdir)/.git/logs/HEAD)
        -cd $(srcdir) && git log > $(abs_builddir)/$(@)-tmp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libdvdread-4.9.9/Makefile.in 
new/libdvdread-5.0.0/Makefile.in
--- old/libdvdread-4.9.9/Makefile.in    2014-04-09 17:52:00.000000000 +0200
+++ new/libdvdread-5.0.0/Makefile.in    2014-07-31 23:54:37.000000000 +0200
@@ -353,7 +353,7 @@
 ACLOCAL_AMFLAGS = -Im4
 AM_CPPFLAGS = -I$(top_srcdir)/src $(CSS_CFLAGS)
 dist_doc_DATA = AUTHORS ChangeLog COPYING NEWS README TODO
-DISTCLEANFILES = ChangeLog
+MAINTAINERCLEANFILES = ChangeLog
 EXTRA_DIST = msvc/ doc/footer.html doc/header.html
 lib_LTLIBRARIES = libdvdread.la
 libdvdread_la_SOURCES = \
@@ -872,11 +872,11 @@
        -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f 
$(CONFIG_CLEAN_VPATH_FILES)
        -rm -f src/$(DEPDIR)/$(am__dirstamp)
        -rm -f src/$(am__dirstamp)
-       -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
 
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
        @echo "it deletes files that may require special tools to rebuild."
+       -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
 @APIDOC_FALSE@install-data-local:
 @APIDOC_FALSE@uninstall-hook:
 clean: clean-am
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libdvdread-4.9.9/NEWS new/libdvdread-5.0.0/NEWS
--- old/libdvdread-4.9.9/NEWS   2014-04-09 18:04:35.000000000 +0200
+++ new/libdvdread-5.0.0/NEWS   2014-07-27 02:11:22.000000000 +0200
@@ -1,13 +1,24 @@
+libdvdread (5.0.0)
+ * added support for Android
+ * fix build support for OS/2
+ * fix crashes in IFO parsing (Shark Week The Great Bites Collection)
+
 libdvdread (4.9.9)
   * major cleanup
   * rewritten build system, including removal of configure2 and dvdread-config
-  * numerous crashes fixed, notably on ARCCOS protected DVDs,
-    like Transformers 3, Brave, The Express, Sherlock Holmes DVDs
+  * fix numerous crashes
   * added QNX support
   * updated to support libdvdcss 1.3.0
   * improved dlopen support for Win32
   * simplify static linking of libdvdcss
 
+libdvdread (4.2.1)
+  * fix huge memory consumption when reading DVDs: "Up" and "Dark Knight"
+  * numerous crashes fixed, notably on ARCCOS protected DVDs,
+    like Transformers 3, Brave, The Express, Sherlock Holmes
+    and Cars 2,
+  * fix packed structures with mingw gcc >= 4.7
+
 libdvdread (4.2.0)
   * added OS/2 support
   * fixed ARM memory alignment issue
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libdvdread-4.9.9/configure 
new/libdvdread-5.0.0/configure
--- old/libdvdread-4.9.9/configure      2014-04-09 17:52:00.000000000 +0200
+++ new/libdvdread-5.0.0/configure      2014-07-27 01:26:19.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for libdvdread 4.9.9.
+# Generated by GNU Autoconf 2.69 for libdvdread 5.0.0.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@
 # Identity of this package.
 PACKAGE_NAME='libdvdread'
 PACKAGE_TARNAME='libdvdread'
-PACKAGE_VERSION='4.9.9'
-PACKAGE_STRING='libdvdread 4.9.9'
+PACKAGE_VERSION='5.0.0'
+PACKAGE_STRING='libdvdread 5.0.0'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1331,7 +1331,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 libdvdread 4.9.9 to adapt to many kinds of systems.
+\`configure' configures libdvdread 5.0.0 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1401,7 +1401,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libdvdread 4.9.9:";;
+     short | recursive ) echo "Configuration of libdvdread 5.0.0:";;
    esac
   cat <<\_ACEOF
 
@@ -1521,7 +1521,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libdvdread configure 4.9.9
+libdvdread configure 5.0.0
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1886,7 +1886,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libdvdread $as_me 4.9.9, which was
+It was created by libdvdread $as_me 5.0.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2827,7 +2827,7 @@
 
 # Define the identity of the package.
  PACKAGE='libdvdread'
- VERSION='4.9.9'
+ VERSION='5.0.0'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -12739,6 +12739,13 @@
      ;;
 esac
 
+case $host in #(
+  *-os2-*) :
+    LDFLAGS="-no-undefined -Zbin-files $LDFLAGS" ;; #(
+  *) :
+     ;;
+esac
+
 
 # Check whether --with-libdvdcss was given.
 if test "${with_libdvdcss+set}" = set; then :
@@ -13063,7 +13070,7 @@
 
 
 
-  for flag in -Wall -Wsign-compare; do
+  for flag in -Wall -Wsign-compare -Wextra; do
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag 
flag" >&5
 $as_echo_n "checking if $CC supports $flag flag... " >&6; }
@@ -13719,7 +13726,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libdvdread $as_me 4.9.9, which was
+This file was extended by libdvdread $as_me 5.0.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -13785,7 +13792,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-libdvdread config.status 4.9.9
+libdvdread config.status 5.0.0
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libdvdread-4.9.9/configure.ac 
new/libdvdread-5.0.0/configure.ac
--- old/libdvdread-4.9.9/configure.ac   2014-04-09 17:49:35.000000000 +0200
+++ new/libdvdread-5.0.0/configure.ac   2014-07-27 01:26:05.000000000 +0200
@@ -1,4 +1,4 @@
-AC_INIT(libdvdread, 4.9.9)
+AC_INIT(libdvdread, 5.0.0)
 AC_CONFIG_SRCDIR([src/dvd_reader.c])
 
 AC_PREREQ(2.53)
@@ -55,6 +55,9 @@
 AS_CASE([$host],
   [*mingw32* | *cygwin*], [AC_CHECK_FUNCS(gettimeofday)])
 
+AS_CASE([$host],
+  [*-os2-*], LDFLAGS="-no-undefined -Zbin-files $LDFLAGS")
+
 AC_ARG_WITH([libdvdcss],
   AS_HELP_STRING([--with-libdvdcss], [Link directly against libdvdcss 
@<:@default=no@:>@]))
 
@@ -81,7 +84,7 @@
 ])
 AC_SUBST([CSS_REQUIRES])
 
-CC_CHECK_CFLAGS_APPEND([-Wall -Wsign-compare])
+CC_CHECK_CFLAGS_APPEND([-Wall -Wsign-compare -Wextra])
 
 
 AC_ARG_ENABLE([apidoc],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libdvdread-4.9.9/src/dvd_input.c 
new/libdvdread-5.0.0/src/dvd_input.c
--- old/libdvdread-4.9.9/src/dvd_input.c        2014-03-02 11:58:24.000000000 
+0100
+++ new/libdvdread-5.0.0/src/dvd_input.c        2014-05-16 17:11:50.000000000 
+0200
@@ -321,6 +321,7 @@
       fprintf(stderr,  "libdvdread: Missing symbols in %s, "
               "this shouldn't happen !\n", CSS_LIB);
       dlclose(dvdcss_library);
+      dvdcss_library = NULL;
     }
   }
 #endif /* HAVE_DVDCSS_DVDCSS_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libdvdread-4.9.9/src/dvd_input.h 
new/libdvdread-5.0.0/src/dvd_input.h
--- old/libdvdread-4.9.9/src/dvd_input.h        2013-11-06 14:38:22.000000000 
+0100
+++ new/libdvdread-5.0.0/src/dvd_input.h        2014-06-05 20:27:55.000000000 
+0200
@@ -42,6 +42,13 @@
 #   define wstat _wstati64
 #endif
 
+#ifdef __ANDROID__
+# undef  lseek
+# define lseek lseek64
+# undef  off_t
+# define off_t off64_t
+#endif
+
 /**
  * Function pointers that will be filled in by the input implementation.
  * These functions provide the main API.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libdvdread-4.9.9/src/dvd_reader.c 
new/libdvdread-5.0.0/src/dvd_reader.c
--- old/libdvdread-4.9.9/src/dvd_reader.c       2014-04-09 17:44:38.000000000 
+0200
+++ new/libdvdread-5.0.0/src/dvd_reader.c       2014-04-12 11:29:59.000000000 
+0200
@@ -32,6 +32,7 @@
 #include <unistd.h>         /* chdir, getcwd */
 #include <limits.h>         /* PATH_MAX */
 #include <dirent.h>         /* opendir, readdir */
+#include <ctype.h>          /* isalpha */
 
 /* misc win32 helpers */
 #ifdef WIN32
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libdvdread-4.9.9/src/dvd_udf.c 
new/libdvdread-5.0.0/src/dvd_udf.c
--- old/libdvdread-4.9.9/src/dvd_udf.c  2014-03-02 11:58:24.000000000 +0100
+++ new/libdvdread-5.0.0/src/dvd_udf.c  2014-07-31 23:53:34.000000000 +0200
@@ -416,12 +416,14 @@
  */
 static int UDFLogVolume( uint8_t *data, char *VolumeDescriptor )
 {
-  uint32_t lbsize, MT_L, N_PM;
+  uint32_t lbsize;
   Unicodedecode(&data[84], 128, VolumeDescriptor);
   lbsize = GETN4(212);  /* should be 2048 */
-  MT_L = GETN4(264);    /* should be 6 */
-  N_PM = GETN4(268);    /* should be 1 */
-  if (lbsize != DVD_VIDEO_LB_LEN) return 1;
+  /* MT_L = GETN4(264);  */  /* should be 6 */
+  /* N_PM = GETN4(268);  */  /* should be 1 */
+  if (lbsize != DVD_VIDEO_LB_LEN)
+    return 1;
+
   return 0;
 }
 
@@ -529,7 +531,7 @@
     else
       UDFDescriptor( LogBlock, &TagID );
 
-    if( TagID == 261 ) {
+    if( TagID == FileEntry ) {
       UDFFileEntry( LogBlock, FileType, partition, File );
       memcpy(&tmpmap.file, File, sizeof(tmpmap.file));
       tmpmap.filetype = *FileType;
@@ -537,7 +539,7 @@
       return 1;
     };
   } while( ( lbnum <= partition->Start + ICB.Location + ( ICB.Length - 1 )
-             / DVD_VIDEO_LB_LEN ) && ( TagID != 261 ) );
+             / DVD_VIDEO_LB_LEN ) && ( TagID != FileEntry ) );
 
   return 0;
 }
@@ -604,7 +606,7 @@
 
     while( p < Dir.Length ) {
       UDFDescriptor( &cached_dir[ p ], &TagID );
-      if( TagID == 257 ) {
+      if( TagID == FileIdentifierDescriptor ) {
         p += UDFFileIdentifier( &cached_dir[ p ], &filechar,
                                 filename, &tmpICB );
         if(cache_file_info && !in_cache) {
@@ -649,7 +651,7 @@
       }
     }
     UDFDescriptor( &directory[ p ], &TagID );
-    if( TagID == 257 ) {
+    if( TagID == FileIdentifierDescriptor ) {
       p += UDFFileIdentifier( &directory[ p ], &filechar,
                               filename, FileICB );
       if( !strcasecmp( FileName, filename ) ) {
@@ -688,7 +690,7 @@
     } else {
       TagID = 0;
     }
-    if (TagID != 2) {
+    if (TagID != AnchorVolumeDescriptorPointer) {
       /* Not an anchor */
       if( terminate ) return 0; /* Final try failed */
 
@@ -762,12 +764,12 @@
       else
         UDFDescriptor( LogBlock, &TagID );
 
-      if( ( TagID == 5 ) && ( !part->valid ) ) {
+      if( ( TagID == PartitionDescriptor ) && ( !part->valid ) ) {
         /* Partition Descriptor */
         UDFPartition( LogBlock, &part->Flags, &part->Number,
                       part->Contents, &part->Start, &part->Length );
         part->valid = ( partnum == part->Number );
-      } else if( ( TagID == 6 ) && ( !volvalid ) ) {
+      } else if( ( TagID == LogicalVolumeDescriptor ) && ( !volvalid ) ) {
         /* Logical Volume Descriptor */
         if( UDFLogVolume( LogBlock, part->VolumeDesc ) ) {
           /* TODO: sector size wrong! */
@@ -776,7 +778,7 @@
       }
 
     } while( ( lbnum <= MVDS_location + ( MVDS_length - 1 )
-               / DVD_VIDEO_LB_LEN ) && ( TagID != 8 )
+               / DVD_VIDEO_LB_LEN ) && ( TagID != TerminatingDescriptor )
              && ( ( !part->valid ) || ( !volvalid ) ) );
 
     if( ( !part->valid) || ( !volvalid ) ) {
@@ -823,13 +825,13 @@
         UDFDescriptor( LogBlock, &TagID );
 
       /* File Set Descriptor */
-      if( TagID == 256 )  /* File Set Descriptor */
+      if( TagID == FileSetDescriptor )  /* File Set Descriptor */
         UDFLongAD( &LogBlock[ 400 ], &RootICB );
     } while( ( lbnum < partition.Start + partition.Length )
-             && ( TagID != 8 ) && ( TagID != 256 ) );
+             && ( TagID != TerminatingDescriptor ) && ( TagID != 
FileSetDescriptor) );
 
     /* Sanity checks. */
-    if( TagID != 256 )
+    if( TagID != FileSetDescriptor )
       return 0;
     if( RootICB.Partition != 0 )
       return 0;
@@ -909,7 +911,7 @@
         /* Descriptor */
         desc_found = 1;
     } while( ( lbnum <= MVDS_location + ( MVDS_length - 1 )
-               / DVD_VIDEO_LB_LEN ) && ( TagID != 8 )
+               / DVD_VIDEO_LB_LEN ) && ( TagID != TerminatingDescriptor )
              && ( !desc_found) );
 
     if( !desc_found ) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libdvdread-4.9.9/src/dvdread/dvd_reader.h 
new/libdvdread-5.0.0/src/dvdread/dvd_reader.h
--- old/libdvdread-4.9.9/src/dvdread/dvd_reader.h       2014-01-09 
11:57:37.000000000 +0100
+++ new/libdvdread-5.0.0/src/dvdread/dvd_reader.h       2014-07-30 
22:27:49.000000000 +0200
@@ -43,7 +43,7 @@
 /**
  * The current version.
  */
-#define DVDREAD_VERSION 904
+#define DVDREAD_VERSION 50000
 
 /**
  * The length of one Logical Block of a DVD.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libdvdread-4.9.9/src/dvdread_internal.h 
new/libdvdread-5.0.0/src/dvdread_internal.h
--- old/libdvdread-4.9.9/src/dvdread_internal.h 2014-04-09 17:44:38.000000000 
+0200
+++ new/libdvdread-5.0.0/src/dvdread_internal.h 2014-07-31 23:45:23.000000000 
+0200
@@ -23,7 +23,7 @@
 #include <sys/types.h>
 
 #ifdef _WIN32
-#include <unistd.h>
+# include <unistd.h>
 #endif /* _WIN32 */
 
 #include "dvdread/dvd_reader.h"
@@ -35,6 +35,31 @@
             __FILE__, __LINE__, # arg );                                \
   }
 
+enum TagIdentifier {
+  /* ECMA 167 3/7.2.1 */
+  PrimaryVolumeDescriptor           = 1,
+  AnchorVolumeDescriptorPointer     = 2,
+  VolumeDescriptorPointer           = 3,
+  ImplementationUseVolumeDescriptor = 4,
+  PartitionDescriptor               = 5,
+  LogicalVolumeDescriptor           = 6,
+  UnallocatedSpaceDescriptor        = 7,
+  TerminatingDescriptor             = 8,
+  LogicalVolumeIntegrityDescriptor  = 9,
+  /* ECMA 167 4/7.2.1 */
+  FileSetDescriptor                 = 256,
+  FileIdentifierDescriptor          = 257,
+  AllocationExtentDescriptor        = 258,
+  IndirectEntry                     = 259,
+  TerminalEntry                     = 260,
+  FileEntry                         = 261,
+  ExtendedAttributeHeaderDescriptor = 262,
+  UnallocatedSpaceEntry             = 263,
+  SpaceBitmapDescriptor             = 264,
+  PartitionIntegrityEntry           = 265,
+  ExtendedFileEntry                 = 266,
+};
+
 int InternalUDFReadBlocksRaw(const dvd_reader_t *device, uint32_t lb_number,
                      size_t block_count, unsigned char *data, int encrypted);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libdvdread-4.9.9/src/ifo_print.c 
new/libdvdread-5.0.0/src/ifo_print.c
--- old/libdvdread-4.9.9/src/ifo_print.c        2014-04-09 17:44:38.000000000 
+0200
+++ new/libdvdread-5.0.0/src/ifo_print.c        2014-05-16 10:30:04.000000000 
+0200
@@ -30,7 +30,7 @@
 #include "dvdread/ifo_print.h"
 
 /* Put this in some other file / package?  It's used in nav_print too. */
-static void ifo_print_time(int level, dvd_time_t *dtime) {
+static void ifo_print_time(dvd_time_t *dtime) {
   const char *rate;
   assert((dtime->hour>>4) < 0xa && (dtime->hour&0xf) < 0xa);
   assert((dtime->minute>>4) < 0x7 && (dtime->minute&0xf) < 0xa);
@@ -61,7 +61,7 @@
 }
 
 void dvdread_print_time(dvd_time_t *dtime) {
-  ifo_print_time(5, dtime);
+  ifo_print_time(dtime);
 }
 
 /* Put this in some other file / package?  It's used in nav_print too.
@@ -80,7 +80,7 @@
   printf("\n");
 }
 
-static void ifo_print_video_attributes(int level, video_attr_t *attr) {
+static void ifo_print_video_attributes(video_attr_t *attr) {
 
   /* The following test is shorter but not correct ISO C,
      memcmp(attr,my_friendly_zeros, sizeof(video_attr_t)) */
@@ -88,10 +88,9 @@
      && attr->video_format == 0
      && attr->display_aspect_ratio == 0
      && attr->permitted_df == 0
-     && attr->unknown1 == 0
      && attr->line21_cc_1 == 0
      && attr->line21_cc_2 == 0
-     && attr->video_format == 0
+     && attr->unknown1 == 0
      && attr->letterboxed == 0
      && attr->film_mode == 0) {
     printf("-- Unspecified --");
@@ -149,9 +148,6 @@
     printf("(please send a bug report), ");
   }
 
-  printf("U%x, ", attr->unknown1);
-  /* assert(!attr->unknown1); */
-
   if(attr->line21_cc_1 || attr->line21_cc_2) {
     printf("NTSC CC ");
     if(attr->line21_cc_1)
@@ -187,13 +183,16 @@
   }
 
   if(attr->film_mode) {
-    printf("film. ");
+    printf("film, ");
   } else {
-    printf("video. "); //camera
+    printf("video, "); //camera
   }
+
+  printf("Unknown1: %x", attr->unknown1);
+
 }
 
-static void ifo_print_audio_attributes(int level, audio_attr_t *attr) {
+static void ifo_print_audio_attributes(audio_attr_t *attr) {
 
   if(attr->audio_format == 0
      && attr->multichannel_extension == 0
@@ -201,9 +200,9 @@
      && attr->application_mode == 0
      && attr->quantization == 0
      && attr->sample_frequency == 0
+     && attr->unknown1 == 0
      && attr->channels == 0
      && attr->lang_extension == 0
-     && attr->unknown1 == 0
      && attr->unknown3 == 0) {
     printf("-- Unspecified --");
     return;
@@ -348,12 +347,12 @@
   printf("Unknown3: %d ", attr->unknown3);
 }
 
-static void ifo_print_subp_attributes(int level, subp_attr_t *attr) {
+static void ifo_print_subp_attributes(subp_attr_t *attr) {
 
   if(attr->type == 0
-     && attr->lang_code == 0
      && attr->zero1 == 0
      && attr->zero2 == 0
+     && attr->lang_code == 0
      && attr->lang_extension== 0) {
     printf("-- Unspecified --");
     return;
@@ -527,20 +526,20 @@
   printf("Start sector of VMGM_VOBU_ADMAP: %08x\n",
          vmgi_mat->vmgm_vobu_admap);
   printf("Video attributes of VMGM_VOBS: ");
-  ifo_print_video_attributes(5, &vmgi_mat->vmgm_video_attr);
+  ifo_print_video_attributes(&vmgi_mat->vmgm_video_attr);
   printf("\n");
   printf("VMGM Number of Audio attributes: %i\n",
          vmgi_mat->nr_of_vmgm_audio_streams);
   if(vmgi_mat->nr_of_vmgm_audio_streams > 0) {
     printf("\tstream %i status: ", 1);
-    ifo_print_audio_attributes(5, &vmgi_mat->vmgm_audio_attr);
+    ifo_print_audio_attributes(&vmgi_mat->vmgm_audio_attr);
     printf("\n");
   }
   printf("VMGM Number of Sub-picture attributes: %i\n",
          vmgi_mat->nr_of_vmgm_subp_streams);
   if(vmgi_mat->nr_of_vmgm_subp_streams > 0) {
     printf("\tstream %2i status: ", 1);
-    ifo_print_subp_attributes(5, &vmgi_mat->vmgm_subp_attr);
+    ifo_print_subp_attributes(&vmgi_mat->vmgm_subp_attr);
     printf("\n");
   }
 }
@@ -569,14 +568,14 @@
   printf("Start sector of VTS_VOBU_ADMAP:  %08x\n", vtsi_mat->vts_vobu_admap);
 
   printf("Video attributes of VTSM_VOBS: ");
-  ifo_print_video_attributes(5, &vtsi_mat->vtsm_video_attr);
+  ifo_print_video_attributes(&vtsi_mat->vtsm_video_attr);
   printf("\n");
 
   printf("VTSM Number of Audio attributes: %i\n",
          vtsi_mat->nr_of_vtsm_audio_streams);
   if(vtsi_mat->nr_of_vtsm_audio_streams > 0) {
     printf("\tstream %i status: ", 1);
-    ifo_print_audio_attributes(5, &vtsi_mat->vtsm_audio_attr);
+    ifo_print_audio_attributes(&vtsi_mat->vtsm_audio_attr);
     printf("\n");
   }
 
@@ -584,19 +583,19 @@
          vtsi_mat->nr_of_vtsm_subp_streams);
   if(vtsi_mat->nr_of_vtsm_subp_streams > 0) {
     printf("\tstream %2i status: ", 1);
-    ifo_print_subp_attributes(5, &vtsi_mat->vtsm_subp_attr);
+    ifo_print_subp_attributes(&vtsi_mat->vtsm_subp_attr);
     printf("\n");
   }
 
   printf("Video attributes of VTS_VOBS: ");
-  ifo_print_video_attributes(5, &vtsi_mat->vts_video_attr);
+  ifo_print_video_attributes(&vtsi_mat->vts_video_attr);
   printf("\n");
 
   printf("VTS Number of Audio attributes: %i\n",
          vtsi_mat->nr_of_vts_audio_streams);
   for(i = 0; i < vtsi_mat->nr_of_vts_audio_streams; i++) {
     printf("\tstream %i status: ", i);
-    ifo_print_audio_attributes(5, &vtsi_mat->vts_audio_attr[i]);
+    ifo_print_audio_attributes(&vtsi_mat->vts_audio_attr[i]);
     printf("\n");
   }
 
@@ -604,7 +603,7 @@
          vtsi_mat->nr_of_vts_subp_streams);
   for(i = 0; i < vtsi_mat->nr_of_vts_subp_streams; i++) {
     printf("\tstream %2i status: ", i);
-    ifo_print_subp_attributes(5, &vtsi_mat->vts_subp_attr[i]);
+    ifo_print_subp_attributes(&vtsi_mat->vts_subp_attr[i]);
     printf("\n");
   }
 }
@@ -1029,31 +1028,31 @@
   printf("VTS_CAT Application type: %08x\n", vts_attributes->vts_cat);
 
   printf("Video attributes of VTSM_VOBS: ");
-  ifo_print_video_attributes(5, &vts_attributes->vtsm_vobs_attr);
+  ifo_print_video_attributes(&vts_attributes->vtsm_vobs_attr);
   printf("\n");
   printf("Number of Audio streams: %i\n",
          vts_attributes->nr_of_vtsm_audio_streams);
   if(vts_attributes->nr_of_vtsm_audio_streams > 0) {
     printf("\tstream %i attributes: ", 1);
-    ifo_print_audio_attributes(5, &vts_attributes->vtsm_audio_attr);
+    ifo_print_audio_attributes(&vts_attributes->vtsm_audio_attr);
     printf("\n");
   }
   printf("Number of Subpicture streams: %i\n",
          vts_attributes->nr_of_vtsm_subp_streams);
   if(vts_attributes->nr_of_vtsm_subp_streams > 0) {
     printf("\tstream %2i attributes: ", 1);
-    ifo_print_subp_attributes(5, &vts_attributes->vtsm_subp_attr);
+    ifo_print_subp_attributes(&vts_attributes->vtsm_subp_attr);
     printf("\n");
   }
 
   printf("Video attributes of VTSTT_VOBS: ");
-  ifo_print_video_attributes(5, &vts_attributes->vtstt_vobs_video_attr);
+  ifo_print_video_attributes(&vts_attributes->vtstt_vobs_video_attr);
   printf("\n");
   printf("Number of Audio streams: %i\n",
          vts_attributes->nr_of_vtstt_audio_streams);
   for(i = 0; i < vts_attributes->nr_of_vtstt_audio_streams; i++) {
     printf("\tstream %i attributes: ", i);
-    ifo_print_audio_attributes(5, &vts_attributes->vtstt_audio_attr[i]);
+    ifo_print_audio_attributes(&vts_attributes->vtstt_audio_attr[i]);
     printf("\n");
   }
 
@@ -1061,7 +1060,7 @@
          vts_attributes->nr_of_vtstt_subp_streams);
   for(i = 0; i < vts_attributes->nr_of_vtstt_subp_streams; i++) {
     printf("\tstream %2i attributes: ", i);
-    ifo_print_subp_attributes(5, &vts_attributes->vtstt_subp_attr[i]);
+    ifo_print_subp_attributes(&vts_attributes->vtstt_subp_attr[i]);
     printf("\n");
   }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libdvdread-4.9.9/src/ifo_read.c 
new/libdvdread-5.0.0/src/ifo_read.c
--- old/libdvdread-4.9.9/src/ifo_read.c 2014-01-03 19:38:25.000000000 +0100
+++ new/libdvdread-5.0.0/src/ifo_read.c 2014-05-13 17:47:54.000000000 +0200
@@ -305,11 +305,9 @@
   }
 
   if (title)
-    snprintf(ifo_filename, 12, "VTS_%02d_0.%s", title, bup_file_opened ? "BUP" 
: "IFO");
+    snprintf(ifo_filename, 13, "VTS_%02d_0.%s", title, bup_file_opened ? "BUP" 
: "IFO");
   else
-    snprintf(ifo_filename, 12, "VIDEO_TS.%s", bup_file_opened ? "BUP" : "IFO");
-
-  ifo_filename[12] = '\0';
+    snprintf(ifo_filename, 13, "VIDEO_TS.%s", bup_file_opened ? "BUP" : "IFO");
 
   if(!ifofile->file) {
     fprintf(stderr, "libdvdread: Can't open file %s.\n", ifo_filename);
@@ -369,9 +367,9 @@
   ifofile->file = DVDOpenFile(dvd, title, DVD_READ_INFO_BACKUP_FILE);
 
   if (title)
-    snprintf(ifo_filename, 12, "VTS_%02d_0.BUP", title);
+    snprintf(ifo_filename, 13, "VTS_%02d_0.BUP", title);
   else
-    strncpy(ifo_filename, "VIDEO_TS.BUP", 12);
+    strncpy(ifo_filename, "VIDEO_TS.BUP", 13);
 
   if (!ifofile->file) {
     fprintf(stderr, "libdvdread: Can't open file %s.\n", ifo_filename);
@@ -1245,6 +1243,8 @@
         = *(uint16_t*)(((char *)data) + data[i] + 4*j - VTS_PTT_SRPT_SIZE);
       vts_ptt_srpt->title[i].ptt[j].pgn
         = *(uint16_t*)(((char *)data) + data[i] + 4*j + 2 - VTS_PTT_SRPT_SIZE);
+      if(!vts_ptt_srpt->title[i].ptt[j].pgn)
+        goto fail;
     }
   }
 
@@ -1452,9 +1452,8 @@
   if(!ifofile->vtsi_mat)
     return 0;
 
-  if(ifofile->vtsi_mat->vts_tmapt == 0) { /* optional(?) */
+  if(ifofile->vtsi_mat->vts_tmapt == 0) {
     ifofile->vts_tmapt = NULL;
-    fprintf(stderr,"libdvdread: No VTS_TMAPT available - skipping.\n");
     return 1;
   }
 

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to