[Pkg-gstreamer-commits] [gst-libav1.0] 01/03: Imported Upstream version 1.2.4

Sebastian Dröge slomo at moszumanska.debian.org
Sat Apr 19 14:04:19 UTC 2014


This is an automated email from the git hooks/post-receive script.

slomo pushed a commit to branch master
in repository gst-libav1.0.

commit 0ee9933f9516fd5dd64cdc7982c706eb79d12f64
Author: Sebastian Dröge <sebastian at centricular.com>
Date:   Sat Apr 19 15:52:40 2014 +0200

    Imported Upstream version 1.2.4
---
 ChangeLog                                         | 34 +++++++++++++++-
 NEWS                                              |  2 +-
 aclocal.m4                                        |  3 +-
 configure                                         | 47 +++++++++++++----------
 configure.ac                                      |  4 +-
 ext/libav/gstavviddec.c                           | 19 ++++++++-
 ext/libav/gstavviddec.h                           |  2 +
 ext/libav/gstavvidenc.c                           |  4 +-
 gst-libav.doap                                    | 10 +++++
 gst-libav.spec                                    |  2 +-
 gst-libs/ext/libav/Changelog                      | 20 ++++++++++
 gst-libs/ext/libav/RELEASE                        |  2 +-
 gst-libs/ext/libav/configure                      | 19 +++++++--
 gst-libs/ext/libav/libavcodec/arm/dsputil_armv6.S | 10 +++--
 gst-libs/ext/libav/libavcodec/h264.c              | 18 +++++----
 gst-libs/ext/libav/libavcodec/h264_loopfilter.c   |  8 ++--
 gst-libs/ext/libav/libavcodec/ituh263dec.c        |  2 +
 gst-libs/ext/libav/libavcodec/lagarith.c          | 12 +++---
 gst-libs/ext/libav/libavcodec/rpza.c              |  4 ++
 gst-libs/ext/libav/libavcodec/shorten.c           |  2 +-
 gst-libs/ext/libav/libavcodec/truemotion1.c       |  5 +++
 gst-libs/ext/libav/libavfilter/vf_drawtext.c      |  1 -
 gst-libs/ext/libav/libavutil/arm/asm.S            |  7 ++++
 gst-libs/ext/libav/libavutil/samplefmt.c          |  2 +
 gst-libs/ext/libav/tools/qt-faststart.c           |  8 ++++
 ltmain.sh                                         |  4 +-
 m4/libtool.m4                                     | 12 ++++--
 27 files changed, 198 insertions(+), 65 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index b90d1ff..2cad4f2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,39 @@
+=== release 1.2.4 ===
+
+2014-04-18  Sebastian Dröge <slomo at coaxion.net>
+
+	* configure.ac:
+	  releasing 1.2.4
+
+2014-04-15 21:32:07 +0200  Mark Nauwelaerts <mnauw at users.sourceforge.net>
+
+	* ext/libav/gstavviddec.c:
+	* ext/libav/gstavviddec.h:
+	  avviddec: guard against invalid libav opaque
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=727779
+
+2014-04-14 09:59:17 +0100  Tim-Philipp Müller <tim at centricular.com>
+
+	* gst-libs/ext/libav:
+	  libav: update to v9.12
+
+2014-02-23 11:40:14 +0100  Mark Nauwelaerts <mnauw at users.sourceforge.net>
+
+	* ext/libav/gstavvidenc.c:
+	  avvidenc: make all properties work again
+	  ... as previously broken due to additional compliance property
+	  (see 13ffed87b1597fa60ccee293f71c3993ec59d1b2).
+
 === release 1.2.3 ===
 
-2014-02-08  Sebastian Dröge <slomo at coaxion.net>
+2014-02-08 12:58:28 +0100  Sebastian Dröge <sebastian at centricular.com>
 
+	* ChangeLog:
+	* NEWS:
+	* RELEASE:
 	* configure.ac:
-	  releasing 1.2.3
+	* gst-libav.doap:
+	  Release 1.2.3
 
 2014-02-04 18:17:32 +0200  Dmitry Melnichenko <dmitry.m at samsung.com>
 
diff --git a/NEWS b/NEWS
index 1b038db..3f338fe 100644
--- a/NEWS
+++ b/NEWS
@@ -1,2 +1,2 @@
-This is GStreamer Libav Plugins 1.2.3
+This is GStreamer Libav Plugins 1.2.4
 
diff --git a/aclocal.m4 b/aclocal.m4
index 9a6a131..7a42c10 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -573,7 +573,8 @@ to "yes", and re-run configure.
 END
     AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
   fi
-fi])
+fi
+])
 
 dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
 dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
diff --git a/configure b/configure
index 173eea7..09c994b 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for GStreamer libav 1.2.3.
+# Generated by GNU Autoconf 2.69 for GStreamer libav 1.2.4.
 #
 # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer>.
 #
@@ -591,8 +591,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='GStreamer libav'
 PACKAGE_TARNAME='gst-libav'
-PACKAGE_VERSION='1.2.3'
-PACKAGE_STRING='GStreamer libav 1.2.3'
+PACKAGE_VERSION='1.2.4'
+PACKAGE_STRING='GStreamer libav 1.2.4'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
 PACKAGE_URL=''
 
@@ -1519,7 +1519,7 @@ if test "$ac_init_help" = "long"; then
   # 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 GStreamer libav 1.2.3 to adapt to many kinds of systems.
+\`configure' configures GStreamer libav 1.2.4 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1590,7 +1590,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GStreamer libav 1.2.3:";;
+     short | recursive ) echo "Configuration of GStreamer libav 1.2.4:";;
    esac
   cat <<\_ACEOF
 
@@ -1759,7 +1759,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GStreamer libav configure 1.2.3
+GStreamer libav configure 1.2.4
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2174,7 +2174,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by GStreamer libav $as_me 1.2.3, which was
+It was created by GStreamer libav $as_me 1.2.4, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3152,7 +3152,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='gst-libav'
- VERSION='1.2.3'
+ VERSION='1.2.4'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3362,9 +3362,10 @@ END
 fi
 
 
-  PACKAGE_VERSION_MAJOR=$(echo 1.2.3 | cut -d'.' -f1)
-  PACKAGE_VERSION_MINOR=$(echo 1.2.3 | cut -d'.' -f2)
-  PACKAGE_VERSION_MICRO=$(echo 1.2.3 | cut -d'.' -f3)
+
+  PACKAGE_VERSION_MAJOR=$(echo 1.2.4 | cut -d'.' -f1)
+  PACKAGE_VERSION_MINOR=$(echo 1.2.4 | cut -d'.' -f2)
+  PACKAGE_VERSION_MICRO=$(echo 1.2.4 | cut -d'.' -f3)
 
 
 
@@ -3375,7 +3376,7 @@ fi
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
 $as_echo_n "checking nano version... " >&6; }
 
-  NANO=$(echo 1.2.3 | cut -d'.' -f4)
+  NANO=$(echo 1.2.4 | cut -d'.' -f4)
 
   if test x"$NANO" = x || test "x$NANO" = "x0" ; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5
@@ -6849,7 +6850,7 @@ ia64-*-hpux*)
   rm -rf conftest*
   ;;
 
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
 s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
@@ -6874,7 +6875,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
 		;;
 	    esac
 	    ;;
-	  ppc64-*linux*|powerpc64-*linux*)
+	  powerpc64le-*)
+	    LD="${LD-ld} -m elf32lppclinux"
+	    ;;
+	  powerpc64-*)
 	    LD="${LD-ld} -m elf32ppclinux"
 	    ;;
 	  s390x-*linux*)
@@ -6893,7 +6897,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
 	  x86_64-*linux*)
 	    LD="${LD-ld} -m elf_x86_64"
 	    ;;
-	  ppc*-*linux*|powerpc*-*linux*)
+	  powerpcle-*)
+	    LD="${LD-ld} -m elf64lppc"
+	    ;;
+	  powerpc-*)
 	    LD="${LD-ld} -m elf64ppc"
 	    ;;
 	  s390*-*linux*|s390*-*tpf*)
@@ -8021,10 +8028,10 @@ fi
 done
 
 
-  GST_CURRENT=203
+  GST_CURRENT=204
   GST_REVISION=0
-  GST_AGE=203
-  GST_LIBVERSION=203:0:203
+  GST_AGE=204
+  GST_LIBVERSION=204:0:204
 
 
 
@@ -18174,7 +18181,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by GStreamer libav $as_me 1.2.3, which was
+This file was extended by GStreamer libav $as_me 1.2.4, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -18240,7 +18247,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-GStreamer libav config.status 1.2.3
+GStreamer libav config.status 1.2.4
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index 03057e6..cb958f0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,7 +3,7 @@ AC_PREREQ(2.62)
 dnl initialize autoconf
 dnl when going to/from release please set the nano (fourth number) right !
 dnl releases only do Wall, cvs and prerelease does Werror too
-AC_INIT(GStreamer libav, 1.2.3,
+AC_INIT(GStreamer libav, 1.2.4,
     http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer,
     gst-libav)
 
@@ -42,7 +42,7 @@ GST_API_VERSION=1.0
 AC_SUBST(GST_API_VERSION)
 
 AG_GST_LIBTOOL_PREPARE
-AS_LIBTOOL(GST, 203, 0, 203)
+AS_LIBTOOL(GST, 204, 0, 204)
 
 dnl *** required versions of GStreamer stuff ***
 GST_REQ=1.2.0
diff --git a/ext/libav/gstavviddec.c b/ext/libav/gstavviddec.c
index 6c9c0c9..f369cf4 100644
--- a/ext/libav/gstavviddec.c
+++ b/ext/libav/gstavviddec.c
@@ -591,6 +591,8 @@ gst_ffmpegviddec_get_buffer (AVCodecContext * context, AVFrame * picture)
   /* GstFFMpegVidDecVideoFrame receives the frame ref */
   picture->opaque = dframe = gst_ffmpegviddec_video_frame_new (frame);
 
+  ffmpegdec->opaques = g_slist_prepend (ffmpegdec->opaques, dframe);
+
   GST_DEBUG_OBJECT (ffmpegdec, "storing opaque %p", dframe);
 
   ffmpegdec->context->pix_fmt = context->pix_fmt;
@@ -695,6 +697,7 @@ fallback:
     int c;
     int ret = avcodec_default_get_buffer (context, picture);
 
+    GST_LOG_OBJECT (ffmpegdec, "performing fallback alloc");
     for (c = 0; c < AV_NUM_DATA_POINTERS; c++)
       ffmpegdec->stride[c] = picture->linesize[c];
 
@@ -775,8 +778,8 @@ gst_ffmpegviddec_release_buffer (AVCodecContext * context, AVFrame * picture)
 
   ffmpegdec = (GstFFMpegVidDec *) context->opaque;
   frame = (GstFFMpegVidDecVideoFrame *) picture->opaque;
-  GST_DEBUG_OBJECT (ffmpegdec, "release frame SN %d",
-      frame->frame->system_frame_number);
+  GST_DEBUG_OBJECT (ffmpegdec, "release frame SN %d (%p)",
+      frame->frame->system_frame_number, frame);
 
   /* check if it was our buffer */
   if (picture->type != FF_BUFFER_TYPE_USER) {
@@ -789,6 +792,8 @@ gst_ffmpegviddec_release_buffer (AVCodecContext * context, AVFrame * picture)
 
   gst_ffmpegviddec_video_frame_free (ffmpegdec, frame);
 
+  ffmpegdec->opaques = g_slist_remove (ffmpegdec->opaques, frame);
+
   /* zero out the reference in ffmpeg */
   for (i = 0; i < 4; i++) {
     picture->data[i] = NULL;
@@ -1221,6 +1226,14 @@ gst_ffmpegviddec_video_frame (GstFFMpegVidDec * ffmpegdec,
   if (len < 0 || have_data <= 0)
     goto beach;
 
+  GST_LOG_OBJECT (ffmpegdec, "picture opaque %p", ffmpegdec->picture->opaque);
+  /* libav might be tripping, and handing a picture with invalid opaque
+   * (e.g. already released) (sigh), so double-check here ... */
+  if (!g_slist_find (ffmpegdec->opaques, ffmpegdec->picture->opaque)) {
+    GST_ERROR_OBJECT (ffmpegdec, "invalid picture opaque");
+    goto beach;
+  }
+
   /* get the output picture timing info again */
   out_dframe = ffmpegdec->picture->opaque;
   out_frame = gst_video_codec_frame_ref (out_dframe->frame);
@@ -1578,6 +1591,8 @@ gst_ffmpegviddec_stop (GstVideoDecoder * decoder)
   if (ffmpegdec->output_state)
     gst_video_codec_state_unref (ffmpegdec->output_state);
   ffmpegdec->output_state = NULL;
+  g_slist_free (ffmpegdec->opaques);
+  ffmpegdec->opaques = NULL;
 
   ffmpegdec->ctx_width = 0;
   ffmpegdec->ctx_height = 0;
diff --git a/ext/libav/gstavviddec.h b/ext/libav/gstavviddec.h
index cd691ec..5f4d7af 100644
--- a/ext/libav/gstavviddec.h
+++ b/ext/libav/gstavviddec.h
@@ -67,6 +67,8 @@ struct _GstFFMpegVidDec
   gboolean is_realvideo;
 
   GstCaps *last_caps;
+
+  GSList *opaques;
 };
 
 typedef struct _GstFFMpegVidDecClass GstFFMpegVidDecClass;
diff --git a/ext/libav/gstavvidenc.c b/ext/libav/gstavvidenc.c
index 11d1eef..74d6108 100644
--- a/ext/libav/gstavvidenc.c
+++ b/ext/libav/gstavvidenc.c
@@ -62,8 +62,8 @@ enum
   PROP_ME_METHOD,
   PROP_BUFSIZE,
   PROP_RTP_PAYLOAD_SIZE,
-  PROP_CFG_BASE,
   PROP_COMPLIANCE,
+  PROP_CFG_BASE,
 };
 
 #define GST_TYPE_ME_METHOD (gst_ffmpegvidenc_me_method_get_type())
@@ -214,7 +214,7 @@ gst_ffmpegvidenc_class_init (GstFFMpegVidEncClass * klass)
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   /* register additional properties, possibly dependent on the exact CODEC */
-  gst_ffmpeg_cfg_install_property (klass, PROP_COMPLIANCE);
+  gst_ffmpeg_cfg_install_property (klass, PROP_CFG_BASE);
 
   venc_class->start = gst_ffmpegvidenc_start;
   venc_class->stop = gst_ffmpegvidenc_stop;
diff --git a/gst-libav.doap b/gst-libav.doap
index ff06dc2..06490dd 100644
--- a/gst-libav.doap
+++ b/gst-libav.doap
@@ -34,6 +34,16 @@ colorspace conversion elements.
 
  <release>
   <Version>
+   <revision>1.2.4</revision>
+   <branch>1.2</branch>
+   <name></name>
+   <created>2014-04-18</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-libav/gst-libav-1.2.4.tar.xz" />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
    <revision>1.2.3</revision>
    <branch>1.2</branch>
    <name></name>
diff --git a/gst-libav.spec b/gst-libav.spec
index dc17023..11bdb04 100644
--- a/gst-libav.spec
+++ b/gst-libav.spec
@@ -4,7 +4,7 @@
 %define gst_majorminor  1.0
 
 Name: 		%{gstreamer}-libav
-Version: 	1.2.3
+Version: 	1.2.4
 Release:	1	
 Summary: 	GStreamer Streaming-media framework plug-in using libav (FFmpeg).
 Group: 		Libraries/Multimedia
diff --git a/gst-libs/ext/libav/Changelog b/gst-libs/ext/libav/Changelog
index bc18fef..1c4114f 100644
--- a/gst-libs/ext/libav/Changelog
+++ b/gst-libs/ext/libav/Changelog
@@ -1,5 +1,25 @@
 Releases are sorted from youngest to oldest.
 
+version 9.12:
+- configure: Update freetype check to follow upstream
+- drawtext: Drop pointless header
+- configure: Support preprocessor macros as header names
+- arm: hpeldsp: fix put_pixels8_y2_{,no_rnd_}armv6
+- qt-faststart: Check offset_count before reading from the moov_atom buffer
+- arm: hpeldsp: prevent overreads in armv6 asm
+- configure: enable PIC on s390(x)
+- ituh263: reject b-frame with pp_time = 0
+- lagarith: reallocate rgb_planes when needed
+- truemotion1: check the header size
+- shorten: pad the internal bitstream buffer
+- samplefmt: avoid integer overflow in av_samples_get_buffer_size()
+- h264: Fix a typo from the previous commit
+- h264: Lower bound check for slice offsets
+- Add missing header to fix compilation after d2a0654
+- configure: Add missing dependency of Snow decoder on videodsp
+- rpza: limit the number of blocks to the total remaining blocks in the frame
+
+
 version 9.11:
 - oggparseogm: check timing variables
 - mathematics: remove asserts from av_rescale_rnd()
diff --git a/gst-libs/ext/libav/RELEASE b/gst-libs/ext/libav/RELEASE
index d4ce17d..5cb42eb 100644
--- a/gst-libs/ext/libav/RELEASE
+++ b/gst-libs/ext/libav/RELEASE
@@ -1 +1 @@
-9.11
+9.12
diff --git a/gst-libs/ext/libav/configure b/gst-libs/ext/libav/configure
index dea4bde..3117b9f 100755
--- a/gst-libs/ext/libav/configure
+++ b/gst-libs/ext/libav/configure
@@ -738,6 +738,13 @@ check_ld(){
     check_cmd $ld $LDFLAGS $flags $(ld_o $TMPE) $TMPO $libs $extralibs
 }
 
+print_include(){
+    hdr=$1
+    test "${hdr%.h}" = "${hdr}" &&
+        echo "#include $hdr"    ||
+        echo "#include <$hdr>"
+}
+
 check_code(){
     log check_code "$@"
     check=$1
@@ -746,7 +753,7 @@ check_code(){
     shift 3
     {
         for hdr in $headers; do
-            echo "#include <$hdr>"
+            print_include $hdr
         done
         echo "int main(void) { $code; return 0; }"
     } | check_$check "$@"
@@ -822,7 +829,7 @@ check_func_headers(){
     shift 2
     {
         for hdr in $headers; do
-            echo "#include <$hdr>"
+            print_include $hdr
         done
         for func in $funcs; do
             echo "long check_$func(void) { return (long) $func; }"
@@ -1562,7 +1569,7 @@ rv30_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpegvi
 rv40_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpegvideo"
 shorten_decoder_select="golomb"
 sipr_decoder_select="lsp"
-snow_decoder_select="dwt rangecoder"
+snow_decoder_select="dwt rangecoder videodsp"
 snow_encoder_select="aandcttables dwt error_resilience mpegvideoenc rangecoder"
 svq1_decoder_select="error_resilience mpegvideo"
 svq1_encoder_select="aandcttables error_resilience mpegvideoenc"
@@ -2818,6 +2825,10 @@ case "$arch" in
         check_64bit ppc ppc64 'sizeof(void *) > 4'
         spic=$shared
     ;;
+    s390)
+        check_64bit s390 s390x 'sizeof(void *) > 4'
+        spic=$shared
+    ;;
     sparc)
         check_64bit sparc sparc64 'sizeof(void *) > 4'
         spic=$shared
@@ -3481,7 +3492,7 @@ enabled frei0r     && { check_header frei0r.h || die "ERROR: frei0r.h header not
 enabled gnutls     && require_pkg_config gnutls gnutls/gnutls.h gnutls_global_init
 enabled libfaac    && require2 libfaac "stdint.h faac.h" faacEncGetVersion -lfaac
 enabled libfdk_aac && require  libfdk_aac fdk-aac/aacenc_lib.h aacEncOpen -lfdk-aac
-enabled libfreetype && require_pkg_config freetype2 "ft2build.h freetype/freetype.h" FT_Init_FreeType
+enabled libfreetype && require_pkg_config freetype2 "ft2build.h FT_FREETYPE_H" FT_Init_FreeType
 enabled libgsm     && require  libgsm gsm/gsm.h gsm_create -lgsm
 enabled libilbc    && require  libilbc ilbc.h WebRtcIlbcfix_InitDecode -lilbc
 enabled libmp3lame && require  "libmp3lame >= 3.98.3" lame/lame.h lame_set_VBR_quality -lmp3lame
diff --git a/gst-libs/ext/libav/libavcodec/arm/dsputil_armv6.S b/gst-libs/ext/libav/libavcodec/arm/dsputil_armv6.S
index 61535a1..2230613 100644
--- a/gst-libs/ext/libav/libavcodec/arm/dsputil_armv6.S
+++ b/gst-libs/ext/libav/libavcodec/arm/dsputil_armv6.S
@@ -144,10 +144,11 @@ function ff_put_pixels8_y2_armv6, export=1
         eor             r7,  r5,  r7
         uadd8           r10, r10, r6
         and             r7,  r7,  r12
-        ldr_pre         r6,  r1,  r2
+        ldrc_pre        ne,  r6,  r1,  r2
         uadd8           r11, r11, r7
         strd_post       r8,  r9,  r0,  r2
-        ldr             r7,  [r1, #4]
+        it              ne
+        ldrne           r7,  [r1, #4]
         strd_post       r10, r11, r0,  r2
         bne             1b
 
@@ -196,9 +197,10 @@ function ff_put_pixels8_y2_no_rnd_armv6, export=1
         uhadd8          r9,  r5,  r7
         ldr             r5,  [r1, #4]
         uhadd8          r12, r4,  r6
-        ldr_pre         r6,  r1,  r2
+        ldrc_pre        ne,  r6,  r1,  r2
         uhadd8          r14, r5,  r7
-        ldr             r7,  [r1, #4]
+        it              ne
+        ldrne           r7,  [r1, #4]
         stm             r0,  {r8,r9}
         add             r0,  r0,  r2
         stm             r0,  {r12,r14}
diff --git a/gst-libs/ext/libav/libavcodec/h264.c b/gst-libs/ext/libav/libavcodec/h264.c
index b256969..d6d3d42 100644
--- a/gst-libs/ext/libav/libavcodec/h264.c
+++ b/gst-libs/ext/libav/libavcodec/h264.c
@@ -3157,8 +3157,8 @@ static int decode_slice_header(H264Context *h, H264Context *h0)
         get_se_golomb(&s->gb); /* slice_qs_delta */
 
     h->deblocking_filter     = 1;
-    h->slice_alpha_c0_offset = 52;
-    h->slice_beta_offset     = 52;
+    h->slice_alpha_c0_offset = 0;
+    h->slice_beta_offset     = 0;
     if (h->pps.deblocking_filter_parameters_present) {
         tmp = get_ue_golomb_31(&s->gb);
         if (tmp > 2) {
@@ -3171,10 +3171,12 @@ static int decode_slice_header(H264Context *h, H264Context *h0)
             h->deblocking_filter ^= 1;  // 1<->0
 
         if (h->deblocking_filter) {
-            h->slice_alpha_c0_offset += get_se_golomb(&s->gb) << 1;
-            h->slice_beta_offset     += get_se_golomb(&s->gb) << 1;
-            if (h->slice_alpha_c0_offset > 104U ||
-                h->slice_beta_offset     > 104U) {
+            h->slice_alpha_c0_offset = get_se_golomb(&s->gb) * 2;
+            h->slice_beta_offset     = get_se_golomb(&s->gb) * 2;
+            if (h->slice_alpha_c0_offset >  12 ||
+                h->slice_alpha_c0_offset < -12 ||
+                h->slice_beta_offset >  12     ||
+                h->slice_beta_offset < -12) {
                 av_log(s->avctx, AV_LOG_ERROR,
                        "deblocking filter parameters %d %d out of range\n",
                        h->slice_alpha_c0_offset, h->slice_beta_offset);
@@ -3211,7 +3213,7 @@ static int decode_slice_header(H264Context *h, H264Context *h0)
             }
         }
     }
-    h->qp_thresh = 15 + 52 -
+    h->qp_thresh = 15 -
                    FFMIN(h->slice_alpha_c0_offset, h->slice_beta_offset) -
                    FFMAX3(0,
                           h->pps.chroma_qp_index_offset[0],
@@ -3280,7 +3282,7 @@ static int decode_slice_header(H264Context *h, H264Context *h0)
                h->ref_count[0], h->ref_count[1],
                s->qscale,
                h->deblocking_filter,
-               h->slice_alpha_c0_offset / 2 - 26, h->slice_beta_offset / 2 - 26,
+               h->slice_alpha_c0_offset, h->slice_beta_offset,
                h->use_weight,
                h->use_weight == 1 && h->use_weight_chroma ? "c" : "",
                h->slice_type == AV_PICTURE_TYPE_B ? (h->direct_spatial_mv_pred ? "SPAT" : "TEMP") : "");
diff --git a/gst-libs/ext/libav/libavcodec/h264_loopfilter.c b/gst-libs/ext/libav/libavcodec/h264_loopfilter.c
index b045d23..4417d79 100644
--- a/gst-libs/ext/libav/libavcodec/h264_loopfilter.c
+++ b/gst-libs/ext/libav/libavcodec/h264_loopfilter.c
@@ -254,8 +254,8 @@ static av_always_inline void h264_filter_mb_fast_internal(H264Context *h,
     int top_type= h->top_type;
 
     int qp_bd_offset = 6 * (h->sps.bit_depth_luma - 8);
-    int a = h->slice_alpha_c0_offset - qp_bd_offset;
-    int b = h->slice_beta_offset - qp_bd_offset;
+    int a = 52 + h->slice_alpha_c0_offset - qp_bd_offset;
+    int b = 52 + h->slice_beta_offset - qp_bd_offset;
 
     int mb_type = s->current_picture.f.mb_type[mb_xy];
     int qp      = s->current_picture.f.qscale_table[mb_xy];
@@ -711,8 +711,8 @@ void ff_h264_filter_mb( H264Context *h, int mb_x, int mb_y, uint8_t *img_y, uint
     av_unused int dir;
     int chroma = !(CONFIG_GRAY && (s->flags&CODEC_FLAG_GRAY));
     int qp_bd_offset = 6 * (h->sps.bit_depth_luma - 8);
-    int a = h->slice_alpha_c0_offset - qp_bd_offset;
-    int b = h->slice_beta_offset - qp_bd_offset;
+    int a = 52 + h->slice_alpha_c0_offset - qp_bd_offset;
+    int b = 52 + h->slice_beta_offset - qp_bd_offset;
 
     if (FRAME_MBAFF
             // and current and left pair do not have the same interlaced type
diff --git a/gst-libs/ext/libav/libavcodec/ituh263dec.c b/gst-libs/ext/libav/libavcodec/ituh263dec.c
index cb26be2..3cbc7b8 100644
--- a/gst-libs/ext/libav/libavcodec/ituh263dec.c
+++ b/gst-libs/ext/libav/libavcodec/ituh263dec.c
@@ -753,6 +753,8 @@ int ff_h263_decode_mb(MpegEncContext *s,
         }
 
         if(IS_DIRECT(mb_type)){
+            if (!s->pp_time)
+                return AVERROR_INVALIDDATA;
             s->mv_dir = MV_DIR_FORWARD | MV_DIR_BACKWARD | MV_DIRECT;
             mb_type |= ff_mpeg4_set_direct_mv(s, 0, 0);
         }else{
diff --git a/gst-libs/ext/libav/libavcodec/lagarith.c b/gst-libs/ext/libav/libavcodec/lagarith.c
index 33dd8b0..5290d39 100644
--- a/gst-libs/ext/libav/libavcodec/lagarith.c
+++ b/gst-libs/ext/libav/libavcodec/lagarith.c
@@ -53,6 +53,7 @@ typedef struct LagarithContext {
     int zeros;                  /**< number of consecutive zero bytes encountered */
     int zeros_rem;              /**< number of zero bytes remaining to output */
     uint8_t *rgb_planes;
+    int      rgb_planes_allocated;
     int rgb_stride;
 } LagarithContext;
 
@@ -557,13 +558,12 @@ static int lag_decode_frame(AVCodecContext *avctx,
         offs[1] = offset_gu;
         offs[2] = offset_ry;
 
+        l->rgb_stride = FFALIGN(avctx->width, 16);
+        av_fast_malloc(&l->rgb_planes, &l->rgb_planes_allocated,
+                       l->rgb_stride * avctx->height * planes + 1);
         if (!l->rgb_planes) {
-            l->rgb_stride = FFALIGN(avctx->width, 16);
-            l->rgb_planes = av_malloc(l->rgb_stride * avctx->height * planes + 1);
-            if (!l->rgb_planes) {
-                av_log(avctx, AV_LOG_ERROR, "cannot allocate temporary buffer\n");
-                return AVERROR(ENOMEM);
-            }
+            av_log(avctx, AV_LOG_ERROR, "cannot allocate temporary buffer\n");
+            return AVERROR(ENOMEM);
         }
         for (i = 0; i < planes; i++)
             srcs[i] = l->rgb_planes + (i + 1) * l->rgb_stride * avctx->height - l->rgb_stride;
diff --git a/gst-libs/ext/libav/libavcodec/rpza.c b/gst-libs/ext/libav/libavcodec/rpza.c
index 59b15c6..d8d689c 100644
--- a/gst-libs/ext/libav/libavcodec/rpza.c
+++ b/gst-libs/ext/libav/libavcodec/rpza.c
@@ -38,8 +38,10 @@
 #include <stdlib.h>
 #include <string.h>
 
+#include "libavutil/common.h"
 #include "libavutil/internal.h"
 #include "libavutil/intreadwrite.h"
+#include "libavutil/common.h"
 #include "avcodec.h"
 
 typedef struct RpzaContext {
@@ -126,6 +128,8 @@ static void rpza_decode_stream(RpzaContext *s)
             }
         }
 
+        n_blocks = FFMIN(n_blocks, total_blocks);
+
         switch (opcode & 0xe0) {
 
         /* Skip blocks */
diff --git a/gst-libs/ext/libav/libavcodec/shorten.c b/gst-libs/ext/libav/libavcodec/shorten.c
index 22976e0..31bd943 100644
--- a/gst-libs/ext/libav/libavcodec/shorten.c
+++ b/gst-libs/ext/libav/libavcodec/shorten.c
@@ -441,7 +441,7 @@ static int shorten_decode_frame(AVCodecContext *avctx, void *data,
         void *tmp_ptr;
         s->max_framesize = 1024; // should hopefully be enough for the first header
         tmp_ptr = av_fast_realloc(s->bitstream, &s->allocated_bitstream_size,
-                                  s->max_framesize);
+                                  s->max_framesize + FF_INPUT_BUFFER_PADDING_SIZE);
         if (!tmp_ptr) {
             av_log(avctx, AV_LOG_ERROR, "error allocating bitstream buffer\n");
             return AVERROR(ENOMEM);
diff --git a/gst-libs/ext/libav/libavcodec/truemotion1.c b/gst-libs/ext/libav/libavcodec/truemotion1.c
index 63cd05b..2421dac 100644
--- a/gst-libs/ext/libav/libavcodec/truemotion1.c
+++ b/gst-libs/ext/libav/libavcodec/truemotion1.c
@@ -322,6 +322,11 @@ static int truemotion1_decode_header(TrueMotion1Context *s)
         return -1;
     }
 
+    if (header.header_size + 1 > s->size) {
+        av_log(s->avctx, AV_LOG_ERROR, "Input packet too small.\n");
+        return AVERROR_INVALIDDATA;
+    }
+
     /* unscramble the header bytes with a XOR operation */
     for (i = 1; i < header.header_size; i++)
         header_buffer[i - 1] = s->buf[i] ^ s->buf[i + 1];
diff --git a/gst-libs/ext/libav/libavfilter/vf_drawtext.c b/gst-libs/ext/libav/libavfilter/vf_drawtext.c
index f8800d2..70f034f 100644
--- a/gst-libs/ext/libav/libavfilter/vf_drawtext.c
+++ b/gst-libs/ext/libav/libavfilter/vf_drawtext.c
@@ -47,7 +47,6 @@
 #include "video.h"
 
 #include <ft2build.h>
-#include <freetype/config/ftheader.h>
 #include FT_FREETYPE_H
 #include FT_GLYPH_H
 
diff --git a/gst-libs/ext/libav/libavutil/arm/asm.S b/gst-libs/ext/libav/libavutil/arm/asm.S
index a181789..f088857 100644
--- a/gst-libs/ext/libav/libavutil/arm/asm.S
+++ b/gst-libs/ext/libav/libavutil/arm/asm.S
@@ -212,6 +212,13 @@ T       ldr             \rt, [\rn]
 T       add             \rn, \rn, \rm
 .endm
 
+.macro  ldrc_pre        cc,  rt,  rn,  rm:vararg
+A       ldr\cc          \rt, [\rn, \rm]!
+T       itt             \cc
+T       add\cc          \rn, \rn, \rm
+T       ldr\cc          \rt, [\rn]
+.endm
+
 .macro  ldrd_reg        rt,  rt2, rn,  rm
 A       ldrd            \rt, \rt2, [\rn, \rm]
 T       add             \rt, \rn, \rm
diff --git a/gst-libs/ext/libav/libavutil/samplefmt.c b/gst-libs/ext/libav/libavutil/samplefmt.c
index 389f726..bff6004 100644
--- a/gst-libs/ext/libav/libavutil/samplefmt.c
+++ b/gst-libs/ext/libav/libavutil/samplefmt.c
@@ -118,6 +118,8 @@ int av_samples_get_buffer_size(int *linesize, int nb_channels, int nb_samples,
 
     /* auto-select alignment if not specified */
     if (!align) {
+        if (nb_samples > INT_MAX - 31)
+            return AVERROR(EINVAL);
         align = 1;
         nb_samples = FFALIGN(nb_samples, 32);
     }
diff --git a/gst-libs/ext/libav/tools/qt-faststart.c b/gst-libs/ext/libav/tools/qt-faststart.c
index f33d6fa..47f5c73 100644
--- a/gst-libs/ext/libav/tools/qt-faststart.c
+++ b/gst-libs/ext/libav/tools/qt-faststart.c
@@ -225,6 +225,10 @@ int main(int argc, char *argv[])
                 goto error_out;
             }
             offset_count = BE_32(&moov_atom[i + 8]);
+            if (i + 12 + offset_count * UINT64_C(4) > moov_atom_size) {
+                printf(" bad atom size/element count\n");
+                goto error_out;
+            }
             for (j = 0; j < offset_count; j++) {
                 current_offset  = BE_32(&moov_atom[i + 12 + j * 4]);
                 current_offset += moov_atom_size;
@@ -242,6 +246,10 @@ int main(int argc, char *argv[])
                 goto error_out;
             }
             offset_count = BE_32(&moov_atom[i + 8]);
+            if (i + 12 + offset_count * UINT64_C(8) > moov_atom_size) {
+                printf(" bad atom size/element count\n");
+                goto error_out;
+            }
             for (j = 0; j < offset_count; j++) {
                 current_offset  = BE_64(&moov_atom[i + 12 + j * 8]);
                 current_offset += moov_atom_size;
diff --git a/ltmain.sh b/ltmain.sh
index 68c6d96..bb5fa02 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -70,7 +70,7 @@
 #         compiler:		$LTCC
 #         compiler flags:		$LTCFLAGS
 #         linker:		$LD (gnu? $with_gnu_ld)
-#         $progname:	(GNU libtool) 2.4.2 Debian-2.4.2-1.3
+#         $progname:	(GNU libtool) 2.4.2 Debian-2.4.2-1.7
 #         automake:	$automake_version
 #         autoconf:	$autoconf_version
 #
@@ -80,7 +80,7 @@
 
 PROGRAM=libtool
 PACKAGE=libtool
-VERSION="2.4.2 Debian-2.4.2-1.3"
+VERSION="2.4.2 Debian-2.4.2-1.7"
 TIMESTAMP=""
 package_revision=1.3337
 
diff --git a/m4/libtool.m4 b/m4/libtool.m4
index 02b4bbe..d7c043f 100644
--- a/m4/libtool.m4
+++ b/m4/libtool.m4
@@ -1312,7 +1312,7 @@ ia64-*-hpux*)
   rm -rf conftest*
   ;;
 
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
 s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
@@ -1333,7 +1333,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
 		;;
 	    esac
 	    ;;
-	  ppc64-*linux*|powerpc64-*linux*)
+	  powerpc64le-*)
+	    LD="${LD-ld} -m elf32lppclinux"
+	    ;;
+	  powerpc64-*)
 	    LD="${LD-ld} -m elf32ppclinux"
 	    ;;
 	  s390x-*linux*)
@@ -1352,7 +1355,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
 	  x86_64-*linux*)
 	    LD="${LD-ld} -m elf_x86_64"
 	    ;;
-	  ppc*-*linux*|powerpc*-*linux*)
+	  powerpcle-*)
+	    LD="${LD-ld} -m elf64lppc"
+	    ;;
+	  powerpc-*)
 	    LD="${LD-ld} -m elf64ppc"
 	    ;;
 	  s390*-*linux*|s390*-*tpf*)

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gstreamer/gst-libav1.0.git



More information about the Pkg-gstreamer-commits mailing list