Hello community, here is the log from the commit of package libass for openSUSE:Factory checked in at 2017-06-12 15:26:40 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libass (Old) and /work/SRC/openSUSE:Factory/.libass.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libass" Mon Jun 12 15:26:40 2017 rev:41 rq:501356 version:0.13.7 Changes: -------- --- /work/SRC/openSUSE:Factory/libass/libass.changes 2017-02-22 13:47:56.876028216 +0100 +++ /work/SRC/openSUSE:Factory/.libass.new/libass.changes 2017-06-12 15:26:44.340538159 +0200 @@ -1,0 +2,16 @@ +Tue Jun 6 10:32:46 UTC 2017 - [email protected] + +- Update to version 0.13.7 + * Fix invalid memory accesses with BorderStyle=4 + * Fix change detection bug on frame resizes + * Fix cache bugs with border size + * Reduce precision of border width in font outline caching + * Don't treat :;<=>? as hexadecimal digits in color headers + * Fix parsing of unusual Alignment values in ASS style definitions + * Fix potential truncation in timestamp parsing + * Treat negative PlayResX/PlayResY like VSFilter + * Fixes to parsing of embedded fonts + * Remove arbitrary bitmap limit (fixes issues with subtitle rendering at 4K) + * Allow using shadow offset to adjust size of background with BorderStyle=4 + +------------------------------------------------------------------- Old: ---- libass-0.13.6.tar.xz New: ---- libass-0.13.7.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libass.spec ++++++ --- /var/tmp/diff_new_pack.T1r0Ap/_old 2017-06-12 15:26:46.428243556 +0200 +++ /var/tmp/diff_new_pack.T1r0Ap/_new 2017-06-12 15:26:46.428243556 +0200 @@ -18,7 +18,7 @@ %define sover 9 Name: libass -Version: 0.13.6 +Version: 0.13.7 Release: 0 Summary: Library for SSA/ASS-formatted subtitle rendering License: ISC ++++++ libass-0.13.6.tar.xz -> libass-0.13.7.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libass-0.13.6/Changelog new/libass-0.13.7/Changelog --- old/libass-0.13.6/Changelog 2017-01-03 20:31:50.000000000 +0100 +++ new/libass-0.13.7/Changelog 2017-06-03 18:51:35.000000000 +0200 @@ -1,3 +1,17 @@ +libass (0.13.7) + * Fix invalid memory accesses with BorderStyle=4 + * Fix change detection bug on frame resizes + * Fix cache bugs with border size + * Reduce precision of border width in font outline caching + * Don't treat :;<=>? as hexadecimal digits in color headers + * Fix parsing of unusual Alignment values in ASS style definitions + * Fix potential truncation in timestamp parsing + * Treat negative PlayResX/PlayResY like VSFilter + * Fixes to parsing of embedded fonts + * Remove arbitrary bitmap limit (fixes issues with subtitle rendering at 4K) + * Allow using shadow offset to adjust size of background with BorderStyle=4 + * Fix TrueType/OpenType font collection handling with the DirectWrite backend + libass (0.13.6) * Bump ABI version to account for the new Justify field in ASS_Style that was added in 0.13.5. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libass-0.13.6/Makefile.in new/libass-0.13.7/Makefile.in --- old/libass-0.13.6/Makefile.in 2017-01-03 20:32:12.000000000 +0100 +++ new/libass-0.13.7/Makefile.in 2017-06-03 19:06:00.000000000 +0200 @@ -364,6 +364,7 @@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libass-0.13.6/config.guess new/libass-0.13.7/config.guess --- old/libass-0.13.6/config.guess 2017-01-03 20:32:12.000000000 +0100 +++ new/libass-0.13.7/config.guess 2017-06-03 19:06:00.000000000 +0200 @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2014 Free Software Foundation, Inc. +# Copyright 1992-2015 Free Software Foundation, Inc. -timestamp='2014-11-04' +timestamp='2015-08-20' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -50,7 +50,7 @@ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2014 Free Software Foundation, Inc. +Copyright 1992-2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -168,20 +168,27 @@ # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || \ + echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown + ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) + arm*|earm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ @@ -197,6 +204,13 @@ os=netbsd ;; esac + # Determine ABI tags. + case "${UNAME_MACHINE_ARCH}" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + ;; + esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need @@ -207,13 +221,13 @@ release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" + echo "${machine}-${os}${release}${abi}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` @@ -235,6 +249,9 @@ *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; + *:Sortix:*:*) + echo ${UNAME_MACHINE}-unknown-sortix + exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) @@ -933,6 +950,9 @@ crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; + e2k:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; @@ -1021,7 +1041,7 @@ echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libass-0.13.6/config.sub new/libass-0.13.7/config.sub --- old/libass-0.13.6/config.sub 2017-01-03 20:32:12.000000000 +0100 +++ new/libass-0.13.7/config.sub 2017-06-03 19:06:00.000000000 +0200 @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2014 Free Software Foundation, Inc. +# Copyright 1992-2015 Free Software Foundation, Inc. -timestamp='2014-12-03' +timestamp='2015-08-20' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -68,7 +68,7 @@ version="\ GNU config.sub ($timestamp) -Copyright 1992-2014 Free Software Foundation, Inc. +Copyright 1992-2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -117,7 +117,7 @@ case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os @@ -255,12 +255,13 @@ | arc | arceb \ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ | avr | avr32 \ + | ba \ | be32 | be64 \ | bfin \ | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ - | epiphany \ - | fido | fr30 | frv \ + | e2k | epiphany \ + | fido | fr30 | frv | ft32 \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ @@ -305,7 +306,7 @@ | riscv32 | riscv64 \ | rl78 | rx \ | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ @@ -376,12 +377,13 @@ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ + | ba-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ + | e2k-* | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ @@ -428,12 +430,13 @@ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ + | riscv32-* | riscv64-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ @@ -518,6 +521,9 @@ basic_machine=i386-pc os=-aros ;; + asmjs) + basic_machine=asmjs-unknown + ;; aux) basic_machine=m68k-apple os=-aux @@ -1373,7 +1379,7 @@ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* \ + | -aos* | -aros* | -cloudabi* | -sortix* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libass-0.13.6/configure new/libass-0.13.7/configure --- old/libass-0.13.6/configure 2017-01-03 20:32:11.000000000 +0100 +++ new/libass-0.13.7/configure 2017-06-03 19:06:00.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for libass 0.13.6. +# Generated by GNU Autoconf 2.69 for libass 0.13.7. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -587,8 +587,8 @@ # Identity of this package. PACKAGE_NAME='libass' PACKAGE_TARNAME='libass' -PACKAGE_VERSION='0.13.6' -PACKAGE_STRING='libass 0.13.6' +PACKAGE_VERSION='0.13.7' +PACKAGE_STRING='libass 0.13.7' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -772,6 +772,7 @@ docdir oldincludedir includedir +runstatedir localstatedir sharedstatedir sysconfdir @@ -878,6 +879,7 @@ sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' @@ -1130,6 +1132,15 @@ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ @@ -1267,7 +1278,7 @@ for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir + libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1380,7 +1391,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 libass 0.13.6 to adapt to many kinds of systems. +\`configure' configures libass 0.13.7 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1420,6 +1431,7 @@ --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] @@ -1450,7 +1462,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libass 0.13.6:";; + short | recursive ) echo "Configuration of libass 0.13.7:";; esac cat <<\_ACEOF @@ -1601,7 +1613,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libass configure 0.13.6 +libass configure 0.13.7 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2020,7 +2032,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libass $as_me 0.13.6, which was +It was created by libass $as_me 0.13.7, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2883,7 +2895,7 @@ # Define the identity of the package. PACKAGE='libass' - VERSION='0.13.6' + VERSION='0.13.7' cat >>confdefs.h <<_ACEOF @@ -5327,7 +5339,7 @@ lt_cv_deplibs_check_method=pass_all ;; -netbsd*) +netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else @@ -9020,6 +9032,9 @@ openbsd* | bitrig*) with_gnu_ld=no ;; + linux* | k*bsd*-gnu | gnu*) + link_all_deplibs=no + ;; esac ld_shlibs=yes @@ -9274,7 +9289,7 @@ fi ;; - netbsd*) + netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= @@ -9944,6 +9959,7 @@ if test yes = "$lt_cv_irix_exported_symbol"; then archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi + link_all_deplibs=no else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' @@ -9965,7 +9981,7 @@ esac ;; - netbsd*) + netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else @@ -11080,6 +11096,18 @@ dynamic_linker='GNU/Linux ld.so' ;; +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + netbsd*) version_type=sunos need_lib_prefix=no @@ -15109,7 +15137,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libass $as_me 0.13.6, which was +This file was extended by libass $as_me 0.13.7, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -15175,7 +15203,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -libass config.status 0.13.6 +libass config.status 0.13.7 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/libass-0.13.6/configure.ac new/libass-0.13.7/configure.ac --- old/libass-0.13.6/configure.ac 2017-01-03 20:31:50.000000000 +0100 +++ new/libass-0.13.7/configure.ac 2017-06-03 18:52:37.000000000 +0200 @@ -1,4 +1,4 @@ -AC_INIT(libass, 0.13.6) +AC_INIT(libass, 0.13.7) AM_INIT_AUTOMAKE AC_CONFIG_MACRO_DIR([m4]) # Disable Fortran checks diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libass-0.13.6/install-sh new/libass-0.13.7/install-sh --- old/libass-0.13.6/install-sh 2017-01-03 20:32:12.000000000 +0100 +++ new/libass-0.13.7/install-sh 2017-06-03 19:06:00.000000000 +0200 @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2013-12-25.23; # UTC +scriptversion=2014-09-12.12; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -324,34 +324,41 @@ # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) + # $RANDOM is not portable (e.g. dash); use it when possible to + # lower collision chance tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0 + # As "mkdir -p" follows symlinks and we work in /tmp possibly; so + # create the $tmpdir first (and fail if unsuccessful) to make sure + # that nobody tries to guess the $tmpdir name. if (umask $mkdir_umask && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + $mkdirprog $mkdir_mode "$tmpdir" && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - ls_ld_tmpdir=`ls -ld "$tmpdir"` + test_tmpdir="$tmpdir/a" + ls_ld_tmpdir=`ls -ld "$test_tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && - $mkdirprog -m$different_mode -p -- "$tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi - rmdir "$tmpdir/d" "$tmpdir" + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null fi trap '' 0;; esac;; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libass-0.13.6/libass/Makefile.am new/libass-0.13.7/libass/Makefile.am --- old/libass-0.13.6/libass/Makefile.am 2017-01-03 20:31:50.000000000 +0100 +++ new/libass-0.13.7/libass/Makefile.am 2017-06-03 18:58:43.000000000 +0200 @@ -3,7 +3,7 @@ -Wpointer-arith -Wredundant-decls -D_GNU_SOURCE LIBASS_LT_CURRENT = 9 -LIBASS_LT_REVISION = 0 +LIBASS_LT_REVISION = 1 LIBASS_LT_AGE = 0 yasm_verbose = $(yasm_verbose_$(V)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libass-0.13.6/libass/Makefile.in new/libass-0.13.7/libass/Makefile.in --- old/libass-0.13.6/libass/Makefile.in 2017-01-03 20:32:13.000000000 +0100 +++ new/libass-0.13.7/libass/Makefile.in 2017-06-03 19:06:00.000000000 +0200 @@ -374,6 +374,7 @@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -388,7 +389,7 @@ -Wpointer-arith -Wredundant-decls -D_GNU_SOURCE LIBASS_LT_CURRENT = 9 -LIBASS_LT_REVISION = 0 +LIBASS_LT_REVISION = 1 LIBASS_LT_AGE = 0 yasm_verbose = $(yasm_verbose_$(V)) yasm_verbose_ = $(yasm_verbose_$(AM_DEFAULT_VERBOSITY)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libass-0.13.6/libass/ass.c new/libass-0.13.7/libass/ass.c --- old/libass-0.13.6/libass/ass.c 2016-12-29 01:48:05.000000000 +0100 +++ new/libass-0.13.7/libass/ass.c 2017-06-03 18:45:15.000000000 +0200 @@ -232,24 +232,10 @@ ass_msg(library, MSGL_WARN, "Bad timestamp"); return 0; } - tm = ((h * 60LL + m) * 60 + s) * 1000 + ms * 10; + tm = ((h * 60LL + m) * 60 + s) * 1000 + ms * 10LL; return tm; } -/** - * \brief converts numpad-style align to align. - */ -static int numpad2align(int val) -{ - int res, v; - v = (val - 1) / 3; // 0, 1 or 2 for vertical alignment - if (v != 0) - v = 3 - v; - res = ((val - 1) % 3) + 1; // horizontal alignment - res += v * 4; - return res; -} - #define NEXT(str,token) \ token = next_token(&str); \ if (!token) break; @@ -673,24 +659,18 @@ return 0; } -// Copied from mkvtoolnix -static unsigned char *decode_chars(unsigned char c1, unsigned char c2, - unsigned char c3, unsigned char c4, - unsigned char *dst, int cnt) +static unsigned char *decode_chars(const unsigned char *src, + unsigned char *dst, int cnt_in) { - uint32_t value; - unsigned char bytes[3]; - int i; - - value = - ((c1 - 33) << 18) + ((c2 - 33) << 12) + ((c3 - 33) << 6) + (c4 - - 33); - bytes[2] = value & 0xff; - bytes[1] = (value & 0xff00) >> 8; - bytes[0] = (value & 0xff0000) >> 16; - - for (i = 0; i < cnt; ++i) - *dst++ = bytes[i]; + uint32_t value = 0; + for (int i = 0; i < cnt_in; i++) + value |= (uint32_t) ((src[i] - 33u) & 63) << 6 * (3 - i); + + *dst++ = value >> 16; + if (cnt_in >= 3) + *dst++ = value >> 8 & 0xff; + if (cnt_in >= 4) + *dst++ = value & 0xff; return dst; } @@ -710,21 +690,21 @@ ass_msg(track->library, MSGL_ERR, "Bad encoded data size"); goto error_decode_font; } - buf = malloc(size / 4 * 3 + 2); + buf = malloc(size / 4 * 3 + FFMAX(size % 4 - 1, 0)); if (!buf) goto error_decode_font; q = buf; for (i = 0, p = (unsigned char *) track->parser_priv->fontdata; i < size / 4; i++, p += 4) { - q = decode_chars(p[0], p[1], p[2], p[3], q, 3); + q = decode_chars(p, q, 4); } if (size % 4 == 2) { - q = decode_chars(p[0], p[1], 0, 0, q, 1); + q = decode_chars(p, q, 2); } else if (size % 4 == 3) { - q = decode_chars(p[0], p[1], p[2], 0, q, 2); + q = decode_chars(p, q, 3); } dsize = q - buf; - assert(dsize <= size / 4 * 3 + 2); + assert(dsize == size / 4 * 3 + FFMAX(size % 4 - 1, 0)); if (track->library->extract_fonts) { ass_add_font(track->library, track->parser_priv->fontname, @@ -764,14 +744,9 @@ } len = strlen(str); - if (len > 80) { - ass_msg(track->library, MSGL_WARN, "Font line too long: %d, %s", - len, str); - return 0; - } if (track->parser_priv->fontdata_used + len > track->parser_priv->fontdata_size) { - track->parser_priv->fontdata_size += 100 * 1024; + track->parser_priv->fontdata_size += FFMAX(len, 100 * 1024); track->parser_priv->fontdata = realloc(track->parser_priv->fontdata, track->parser_priv->fontdata_size); @@ -1357,28 +1332,28 @@ */ void ass_lazy_track_init(ASS_Library *lib, ASS_Track *track) { - if (track->PlayResX && track->PlayResY) + if (track->PlayResX > 0 && track->PlayResY > 0) return; - if (!track->PlayResX && !track->PlayResY) { + if (track->PlayResX <= 0 && track->PlayResY <= 0) { ass_msg(lib, MSGL_WARN, "Neither PlayResX nor PlayResY defined. Assuming 384x288"); track->PlayResX = 384; track->PlayResY = 288; } else { - if (!track->PlayResY && track->PlayResX == 1280) { + if (track->PlayResY <= 0 && track->PlayResX == 1280) { track->PlayResY = 1024; ass_msg(lib, MSGL_WARN, "PlayResY undefined, setting to %d", track->PlayResY); - } else if (!track->PlayResY) { - track->PlayResY = track->PlayResX * 3 / 4; + } else if (track->PlayResY <= 0) { + track->PlayResY = FFMAX(1, track->PlayResX * 3 / 4); ass_msg(lib, MSGL_WARN, "PlayResY undefined, setting to %d", track->PlayResY); - } else if (!track->PlayResX && track->PlayResY == 1024) { + } else if (track->PlayResX <= 0 && track->PlayResY == 1024) { track->PlayResX = 1280; ass_msg(lib, MSGL_WARN, "PlayResX undefined, setting to %d", track->PlayResX); - } else if (!track->PlayResX) { - track->PlayResX = track->PlayResY * 4 / 3; + } else if (track->PlayResX <= 0) { + track->PlayResX = FFMAX(1, track->PlayResY * 4 / 3); ass_msg(lib, MSGL_WARN, "PlayResX undefined, setting to %d", track->PlayResX); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libass-0.13.6/libass/ass.h new/libass-0.13.7/libass/ass.h --- old/libass-0.13.6/libass/ass.h 2017-01-03 20:31:50.000000000 +0100 +++ new/libass-0.13.7/libass/ass.h 2017-06-03 18:52:24.000000000 +0200 @@ -24,7 +24,7 @@ #include <stdarg.h> #include "ass_types.h" -#define LIBASS_VERSION 0x01306000 +#define LIBASS_VERSION 0x01307000 #ifdef __cplusplus extern "C" { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libass-0.13.6/libass/ass_bitmap.c new/libass-0.13.7/libass/ass_bitmap.c --- old/libass-0.13.6/libass/ass_bitmap.c 2016-12-29 01:48:05.000000000 +0100 +++ new/libass-0.13.7/libass/ass_bitmap.c 2017-06-03 18:45:15.000000000 +0200 @@ -219,7 +219,7 @@ int mask = (1 << render_priv->engine->tile_order) - 1; - if (w < 0 || h < 0 || w > 8000000 / FFMAX(h, 1) || + if (w < 0 || h < 0 || w > INT_MAX - (2 * bord + mask) || h > INT_MAX - (2 * bord + mask)) { ass_msg(render_priv->library, MSGL_WARN, "Glyph bounding box too large: %dx%dpx", w, h); @@ -280,7 +280,7 @@ bbox.xMin >>= 6; bbox.yMax >>= 6; - if (w < 0 || h < 0 || w > 8000000 / FFMAX(h, 1) || + if (w < 0 || h < 0 || w > INT_MAX - 2 * bord || h > INT_MAX - 2 * bord) { ass_msg(render_priv->library, MSGL_WARN, "Glyph bounding box too large: %dx%dpx", w, h); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libass-0.13.6/libass/ass_cache_template.h new/libass-0.13.7/libass/ass_cache_template.h --- old/libass-0.13.6/libass/ass_cache_template.h 2016-12-29 01:48:05.000000000 +0100 +++ new/libass-0.13.7/libass/ass_cache_template.h 2017-06-03 18:45:15.000000000 +0200 @@ -90,7 +90,7 @@ GENERIC(int, italic) GENERIC(unsigned, scale_x) // 16.16 GENERIC(unsigned, scale_y) // 16.16 - FTVECTOR(outline) // border width, 16.16 + FTVECTOR(outline) // border width, 26.6 GENERIC(unsigned, flags) // glyph decoration flags GENERIC(unsigned, border_style) GENERIC(int, hspacing) // 16.16 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libass-0.13.6/libass/ass_directwrite.c new/libass-0.13.7/libass/ass_directwrite.c --- old/libass-0.13.6/libass/ass_directwrite.c 2016-12-29 01:48:05.000000000 +0100 +++ new/libass-0.13.7/libass/ass_directwrite.c 2017-06-03 18:45:15.000000000 +0200 @@ -352,6 +352,19 @@ } /* + * Lazily return index of font. It requires the FontFace to be present, which is expensive to initialize. + */ +static unsigned get_font_index(void *data) +{ + FontPrivate *priv = (FontPrivate *)data; + + if (!init_font_private_face(priv)) + return 0; + + return IDWriteFontFace_GetIndex(priv->face); +} + +/* * Check if the passed font has a specific unicode character. */ static bool check_glyph(void *data, uint32_t code) @@ -719,6 +732,7 @@ .destroy_provider = destroy_provider, .get_substitutions = get_substitutions, .get_fallback = get_fallback, + .get_font_index = get_font_index, }; typedef HRESULT (WINAPI *DWriteCreateFactoryFn)( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libass-0.13.6/libass/ass_font.h new/libass-0.13.7/libass/ass_font.h --- old/libass-0.13.6/libass/ass_font.h 2016-12-29 01:48:05.000000000 +0100 +++ new/libass-0.13.7/libass/ass_font.h 2017-06-03 18:45:15.000000000 +0200 @@ -80,7 +80,7 @@ void outline_transform(const ASS_Outline *outline, const FT_Matrix *matrix); void outline_get_cbox(const ASS_Outline *outline, FT_BBox *cbox); void fix_freetype_stroker(ASS_Outline *outline, int border_x, int border_y); -int outline_alloc(ASS_Outline *outline, size_t n_contours, size_t n_points); +int outline_alloc(ASS_Outline *outline, size_t n_points, size_t n_contours); ASS_Outline *outline_convert(const FT_Outline *source); ASS_Outline *outline_copy(const ASS_Outline *source); void outline_free(ASS_Outline *outline); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libass-0.13.6/libass/ass_fontconfig.c new/libass-0.13.7/libass/ass_fontconfig.c --- old/libass-0.13.6/libass/ass_fontconfig.c 2016-12-29 01:48:05.000000000 +0100 +++ new/libass-0.13.7/libass/ass_fontconfig.c 2017-06-03 18:45:15.000000000 +0200 @@ -148,9 +148,10 @@ meta.fullnames = fullnames; // read PostScript name - meta.postscript_name = NULL; - FcPatternGetString(pat, FC_POSTSCRIPT_NAME, 0, - (FcChar8 **)&meta.postscript_name); + result = FcPatternGetString(pat, FC_POSTSCRIPT_NAME, 0, + (FcChar8 **)&meta.postscript_name); + if (result != FcResultMatch) + meta.postscript_name = NULL; ass_font_provider_add_font(provider, &meta, path, index, (void *)pat); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libass-0.13.6/libass/ass_fontselect.c new/libass-0.13.7/libass/ass_fontselect.c --- old/libass-0.13.6/libass/ass_fontselect.c 2016-12-29 01:48:05.000000000 +0100 +++ new/libass-0.13.7/libass/ass_fontselect.c 2017-06-03 18:45:15.000000000 +0200 @@ -588,14 +588,20 @@ // found anything? char *result = NULL; if (selected) { + ASS_FontProvider *provider = selected->provider; + // successfully matched, set up return values *postscript_name = selected->postscript_name; - *index = selected->index; *uid = selected->uid; + // use lazy evaluation for index if applicable + if (provider->funcs.get_font_index) { + *index = provider->funcs.get_font_index(selected->priv); + } else + *index = selected->index; + // set up memory stream if there is no path if (selected->path == NULL) { - ASS_FontProvider *provider = selected->provider; stream->func = provider->funcs.get_data; stream->priv = selected->priv; // Prefer PostScript name because it is unique. This is only @@ -607,6 +613,7 @@ result = selected->families[0]; } else result = selected->path; + } return result; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libass-0.13.6/libass/ass_fontselect.h new/libass-0.13.7/libass/ass_fontselect.h --- old/libass-0.13.6/libass/ass_fontselect.h 2016-12-29 01:48:05.000000000 +0100 +++ new/libass-0.13.7/libass/ass_fontselect.h 2017-06-03 18:45:15.000000000 +0200 @@ -71,6 +71,16 @@ typedef bool (*CheckGlyphFunc)(void *font_priv, uint32_t codepoint); /** +* Get index of a font in context of a font collection. +* This function is optional and may be needed to initialize the font index +* lazily. +* +* \param font_priv font private data +* \return font index inside the collection, or 0 in case of a single font +*/ +typedef unsigned (*GetFontIndex)(void *font_priv); + +/** * Destroy a font's private data. * * \param font_priv font private data @@ -150,6 +160,7 @@ MatchFontsFunc match_fonts; /* optional */ SubstituteFontFunc get_substitutions; /* optional */ GetFallbackFunc get_fallback; /* optional */ + GetFontIndex get_font_index; /* optional */ } ASS_FontProviderFuncs; /* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libass-0.13.6/libass/ass_parse.c new/libass-0.13.7/libass/ass_parse.c --- old/libass-0.13.6/libass/ass_parse.c 2016-12-29 01:48:05.000000000 +0100 +++ new/libass-0.13.7/libass/ass_parse.c 2017-06-03 18:45:15.000000000 +0200 @@ -566,14 +566,9 @@ } else if (tag("an")) { int val = argtoi(*args); if ((render_priv->state.parsed_tags & PARSED_A) == 0) { - if (val >= 1 && val <= 9) { - int v = (val - 1) / 3; // 0, 1 or 2 for vertical alignment - if (v != 0) - v = 3 - v; - val = ((val - 1) % 3) + 1; // horizontal alignment - val += v * 4; - render_priv->state.alignment = val; - } else + if (val >= 1 && val <= 9) + render_priv->state.alignment = numpad2align(val); + else render_priv->state.alignment = render_priv->state.style->Alignment; render_priv->state.parsed_tags |= PARSED_A; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libass-0.13.6/libass/ass_render.c new/libass-0.13.7/libass/ass_render.c --- old/libass-0.13.6/libass/ass_render.c 2016-12-29 01:48:05.000000000 +0100 +++ new/libass-0.13.7/libass/ass_render.c 2017-06-03 18:45:15.000000000 +0200 @@ -406,25 +406,17 @@ b_y1 = bm->h; tmp = dst_x - clip_x0; - if (tmp < 0) { + if (tmp < 0) b_x0 = -tmp; - render_priv->state.has_clips = 1; - } tmp = dst_y - clip_y0; - if (tmp < 0) { + if (tmp < 0) b_y0 = -tmp; - render_priv->state.has_clips = 1; - } tmp = clip_x1 - dst_x - bm->w; - if (tmp < 0) { + if (tmp < 0) b_x1 = bm->w + tmp; - render_priv->state.has_clips = 1; - } tmp = clip_y1 - dst_y - bm->h; - if (tmp < 0) { + if (tmp < 0) b_y1 = bm->h + tmp; - render_priv->state.has_clips = 1; - } if ((b_y0 >= b_y1) || (b_x0 >= b_x1)) return tail; @@ -523,8 +515,6 @@ int aleft, atop, bleft, btop; unsigned char *abuffer, *bbuffer, *nbuffer; - render_priv->state.has_clips = 1; - abuffer = cur->bitmap; bbuffer = clip_bm->buffer; ax = cur->dst_x; @@ -882,7 +872,6 @@ { render_priv->state.event = event; render_priv->state.parsed_tags = 0; - render_priv->state.has_clips = 0; render_priv->state.evt_type = EVENT_NORMAL; reset_render_context(render_priv, NULL); @@ -1095,8 +1084,8 @@ outline_key->type = OUTLINE_DRAWING; key->scale_x = double_to_d16(info->scale_x); key->scale_y = double_to_d16(info->scale_y); - key->outline.x = double_to_d16(info->border_x); - key->outline.y = double_to_d16(info->border_y); + key->outline.x = double_to_d6(info->border_x * priv->border_scale); + key->outline.y = double_to_d6(info->border_y * priv->border_scale); key->border_style = info->border_style; // hpacing only matters for opaque box borders (see draw_opaque_box), // so for normal borders, maximize cache utility by ignoring it @@ -1117,8 +1106,8 @@ key->italic = info->italic; key->scale_x = double_to_d16(info->scale_x); key->scale_y = double_to_d16(info->scale_y); - key->outline.x = double_to_d16(info->border_x); - key->outline.y = double_to_d16(info->border_y); + key->outline.x = double_to_d6(info->border_x * priv->border_scale); + key->outline.y = double_to_d6(info->border_y * priv->border_scale); key->flags = info->flags; key->border_style = info->border_style; key->hspacing = @@ -2413,15 +2402,27 @@ static void add_background(ASS_Renderer *render_priv, EventImages *event_images) { - void *nbuffer = ass_aligned_alloc(1, event_images->width * event_images->height, false); + double size_x = render_priv->state.shadow_x > 0 ? + render_priv->state.shadow_x * render_priv->border_scale : 0; + double size_y = render_priv->state.shadow_y > 0 ? + render_priv->state.shadow_y * render_priv->border_scale : 0; + int left = event_images->left - size_x; + int top = event_images->top - size_y; + int right = event_images->left + event_images->width + size_x; + int bottom = event_images->top + event_images->height + size_y; + left = FFMINMAX(left, 0, render_priv->width); + top = FFMINMAX(top, 0, render_priv->height); + right = FFMINMAX(right, 0, render_priv->width); + bottom = FFMINMAX(bottom, 0, render_priv->height); + int w = right - left; + int h = bottom - top; + if (w < 1 || h < 1) + return; + void *nbuffer = ass_aligned_alloc(1, w * h, false); if (!nbuffer) return; - memset(nbuffer, 0xFF, event_images->width * event_images->height); - ASS_Image *img = my_draw_bitmap(nbuffer, event_images->width, - event_images->height, - event_images->width, - event_images->left, - event_images->top, + memset(nbuffer, 0xFF, w * h); + ASS_Image *img = my_draw_bitmap(nbuffer, w, h, w, left, top, render_priv->state.c[3], NULL); if (img) { img->next = event_images->imgs; @@ -2945,9 +2946,6 @@ ASS_Image *img, *img2; int diff; - if (priv->state.has_clips) - return 2; - img = priv->prev_images_root; img2 = priv->images_root; diff = 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libass-0.13.6/libass/ass_render.h new/libass-0.13.7/libass/ass_render.h --- old/libass-0.13.6/libass/ass_render.h 2016-12-29 01:48:05.000000000 +0100 +++ new/libass-0.13.7/libass/ass_render.h 2017-06-03 18:45:15.000000000 +0200 @@ -213,7 +213,6 @@ ASS_Event *event; ASS_Style *style; int parsed_tags; - int has_clips; // clips that conflict with cache change detection ASS_Font *font; double font_size; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libass-0.13.6/libass/ass_render_api.c new/libass-0.13.7/libass/ass_render_api.c --- old/libass-0.13.6/libass/ass_render_api.c 2016-12-29 01:48:05.000000000 +0100 +++ new/libass-0.13.7/libass/ass_render_api.c 2017-06-03 18:45:15.000000000 +0200 @@ -27,11 +27,9 @@ ASS_Settings *settings = &priv->settings; priv->render_id++; - ass_frame_unref(priv->images_root); ass_cache_empty(priv->cache.composite_cache); ass_cache_empty(priv->cache.bitmap_cache); ass_cache_empty(priv->cache.outline_cache); - priv->images_root = NULL; priv->width = settings->frame_width; priv->height = settings->frame_height; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libass-0.13.6/libass/ass_utils.c new/libass-0.13.7/libass/ass_utils.c --- old/libass-0.13.6/libass/ass_utils.c 2016-12-29 01:48:05.000000000 +0100 +++ new/libass-0.13.7/libass/ass_utils.c 2017-06-03 18:45:15.000000000 +0200 @@ -23,6 +23,7 @@ #include <stdlib.h> #include <stdio.h> #include <stdint.h> +#include <limits.h> #include <inttypes.h> #include "ass_library.h" @@ -192,7 +193,7 @@ while (1) { int digit; - if (*p >= '0' && *p < base + '0') + if (*p >= '0' && *p < FFMIN(base, 10) + '0') digit = *p - '0'; else if (*p >= 'a' && *p < base - 10 + 'a') digit = *p - 'a' + 10; @@ -327,6 +328,28 @@ return YCBCR_UNKNOWN; } +/** + * \brief converts numpad-style align to align. + */ +int numpad2align(int val) +{ + if (val < -INT_MAX) + // Pick an alignment somewhat arbitrarily. VSFilter handles + // INT32_MIN as a mix of 1, 2 and 3, so prefer one of those values. + val = 2; + else if (val < 0) + val = -val; + + int res = ((val - 1) % 3) + 1; // horizontal alignment + if (val <= 3) + res |= VALIGN_SUB; + else if (val <= 6) + res |= VALIGN_CENTER; + else + res |= VALIGN_TOP; + return res; +} + void ass_msg(ASS_Library *priv, int lvl, const char *fmt, ...) { va_list va; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libass-0.13.6/libass/ass_utils.h new/libass-0.13.7/libass/ass_utils.h --- old/libass-0.13.6/libass/ass_utils.h 2016-12-29 01:48:05.000000000 +0100 +++ new/libass-0.13.7/libass/ass_utils.h 2017-06-03 18:45:15.000000000 +0200 @@ -87,6 +87,7 @@ uint32_t parse_color_header(char *str); char parse_bool(char *str); int parse_ycbcr_matrix(char *str); +int numpad2align(int val); unsigned ass_utf8_get_char(char **str); unsigned ass_utf8_put_char(char *dest, uint32_t ch); void ass_utf16be_to_utf8(char *dst, size_t dst_size, uint8_t *src, size_t src_size); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libass-0.13.6/libass/dwrite_c.h new/libass-0.13.7/libass/dwrite_c.h --- old/libass-0.13.6/libass/dwrite_c.h 2016-12-29 01:48:05.000000000 +0100 +++ new/libass-0.13.7/libass/dwrite_c.h 2017-06-03 18:45:15.000000000 +0200 @@ -335,6 +335,8 @@ UINT32 *numberOfFiles, IDWriteFontFile **fontFiles) PURE; + STDMETHOD_(UINT32, GetIndex)(THIS) PURE; + /* rest dropped */ END_INTERFACE }; @@ -342,6 +344,7 @@ #define IDWriteFontFace_Release(This) (This)->lpVtbl->Release(This) #define IDWriteFontFace_GetType(This) (This)->lpVtbl->GetType(This) #define IDWriteFontFace_GetFiles(This,fontFiles,b) (This)->lpVtbl->GetFiles(This,fontFiles,b) +#define IDWriteFontFace_GetIndex(This) (This)->lpVtbl->GetIndex(This) #endif /*COBJMACROS*/ #undef INTERFACE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libass-0.13.6/ltmain.sh new/libass-0.13.7/ltmain.sh --- old/libass-0.13.6/ltmain.sh 2017-01-03 20:32:07.000000000 +0100 +++ new/libass-0.13.7/ltmain.sh 2017-06-03 19:05:58.000000000 +0200 @@ -31,7 +31,7 @@ PROGRAM=libtool PACKAGE=libtool -VERSION=2.4.6 +VERSION="2.4.6 Debian-2.4.6-0.1" package_revision=2.4.6 @@ -2073,7 +2073,7 @@ autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` Report bugs to <[email protected]>. -GNU libtool home page: <http://www.gnu.org/software/libtool/>. +GNU libtool home page: <http://www.gnu.org/s/libtool/>. General help using GNU software: <http://www.gnu.org/gethelp/>." exit 0 } @@ -7272,10 +7272,13 @@ # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + # -specs=* GCC specs files # -stdlib=* select c++ std lib with clang + # -fsanitize=* Clang/GCC memory and address sanitizer -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ - -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*) + -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ + -specs=*|-fsanitize=*) func_quote_for_eval "$arg" arg=$func_quote_for_eval_result func_append compile_command " $arg" @@ -7568,7 +7571,10 @@ case $pass in dlopen) libs=$dlfiles ;; dlpreopen) libs=$dlprefiles ;; - link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; + link) + libs="$deplibs %DEPLIBS%" + test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" + ;; esac fi if test lib,dlpreopen = "$linkmode,$pass"; then @@ -7887,19 +7893,19 @@ # It is a libtool convenience library, so add in its objects. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done elif test prog != "$linkmode" && test lib != "$linkmode"; then func_fatal_error "'$lib' is not a convenience library" fi - tmp_libs= - for deplib in $dependency_libs; do - deplibs="$deplib $deplibs" - if $opt_preserve_dup_deps; then - case "$tmp_libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append tmp_libs " $deplib" - done continue fi # $pass = conv @@ -8823,6 +8829,9 @@ revision=$number_minor lt_irix_increment=no ;; + *) + func_fatal_configuration "$modename: unknown library version type '$version_type'" + ;; esac ;; no) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libass-0.13.6/m4/libtool.m4 new/libass-0.13.7/m4/libtool.m4 --- old/libass-0.13.6/m4/libtool.m4 2017-01-03 20:32:07.000000000 +0100 +++ new/libass-0.13.7/m4/libtool.m4 2017-06-03 19:05:58.000000000 +0200 @@ -2887,6 +2887,18 @@ dynamic_linker='GNU/Linux ld.so' ;; +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + netbsd*) version_type=sunos need_lib_prefix=no @@ -3546,7 +3558,7 @@ lt_cv_deplibs_check_method=pass_all ;; -netbsd*) +netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else @@ -4424,7 +4436,7 @@ ;; esac ;; - netbsd*) + netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise @@ -4936,6 +4948,9 @@ ;; esac ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; @@ -4998,6 +5013,9 @@ openbsd* | bitrig*) with_gnu_ld=no ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes @@ -5252,7 +5270,7 @@ fi ;; - netbsd*) + netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= @@ -5773,6 +5791,7 @@ if test yes = "$lt_cv_irix_exported_symbol"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi + _LT_TAGVAR(link_all_deplibs, $1)=no else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' @@ -5794,7 +5813,7 @@ esac ;; - netbsd*) + netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libass-0.13.6/profile/Makefile.in new/libass-0.13.7/profile/Makefile.in --- old/libass-0.13.6/profile/Makefile.in 2017-01-03 20:32:13.000000000 +0100 +++ new/libass-0.13.7/profile/Makefile.in 2017-06-03 19:06:00.000000000 +0200 @@ -304,6 +304,7 @@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libass-0.13.6/test/Makefile.in new/libass-0.13.7/test/Makefile.in --- old/libass-0.13.6/test/Makefile.in 2017-01-03 20:32:13.000000000 +0100 +++ new/libass-0.13.7/test/Makefile.in 2017-06-03 19:06:00.000000000 +0200 @@ -304,6 +304,7 @@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@
