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

Sebastian Dröge slomo at moszumanska.debian.org
Sat Jun 28 10:25:32 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 d7d254ee1eab193daf5bae40a66d5ad89de2723b
Author: Sebastian Dröge <sebastian at centricular.com>
Date:   Sat Jun 28 12:20:23 2014 +0200

    Imported Upstream version 1.3.90
---
 ChangeLog                                          | 26 +++++++++++++--
 Makefile.in                                        |  4 +--
 NEWS                                               | 12 ++++---
 configure                                          | 38 +++++++++++-----------
 configure.ac                                       |  8 ++---
 docs/plugins/gst-libav-plugins.hierarchy           |  2 +-
 .../html/gst-libav-plugins-plugin-libav.html       |  2 +-
 docs/plugins/html/index.html                       |  2 +-
 docs/plugins/inspect/plugin-libav.xml              |  2 +-
 gst-libav.doap                                     | 10 ++++++
 gst-libav.spec                                     |  2 +-
 gst-libs/ext/libav/Changelog                       | 13 ++++++++
 gst-libs/ext/libav/RELEASE                         |  2 +-
 gst-libs/ext/libav/avconv.c                        | 27 ++++++++-------
 gst-libs/ext/libav/libavcodec/adpcmenc.c           |  3 +-
 gst-libs/ext/libav/libavcodec/avpacket.c           |  1 -
 gst-libs/ext/libav/libavcodec/jpeg2000.c           | 31 +++++++++++++-----
 gst-libs/ext/libav/libavcodec/libmp3lame.c         |  8 ++++-
 gst-libs/ext/libav/libavcodec/mpegaudiodecheader.c |  4 +++
 gst-libs/ext/libav/libavcodec/ppc/asm.S            |  8 +++++
 gst-libs/ext/libav/libavformat/mp3enc.c            | 17 ++++++----
 gst-libs/ext/libav/libavformat/oggenc.c            |  2 +-
 gst-libs/ext/libav/libavutil/aarch64/asm.S         |  4 +--
 gst-libs/ext/libav/libavutil/lzo.c                 | 10 +++++-
 24 files changed, 168 insertions(+), 70 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index af11b3d..94ebc05 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,31 @@
+=== release 1.3.90 ===
+
+2014-06-28  Sebastian Dröge <slomo at coaxion.net>
+
+	* configure.ac:
+	  releasing 1.3.90
+
+2014-06-28 09:59:49 +0200  Sebastian Dröge <sebastian at centricular.com>
+
+	* gst-libs/ext/libav:
+	  libav: Update to v10.2
+
+2014-06-22 19:36:14 +0200  Sebastian Dröge <sebastian at centricular.com>
+
+	* configure.ac:
+	  Back to development
+
 === release 1.3.3 ===
 
-2014-06-22  Sebastian Dröge <slomo at coaxion.net>
+2014-06-22 19:27:47 +0200  Sebastian Dröge <sebastian at centricular.com>
 
+	* ChangeLog:
+	* NEWS:
+	* RELEASE:
 	* configure.ac:
-	  releasing 1.3.3
+	* docs/plugins/inspect/plugin-libav.xml:
+	* gst-libav.doap:
+	  Release 1.3.3
 
 2014-06-21 18:29:32 +0200  Sebastian Dröge <sebastian at centricular.com>
 
diff --git a/Makefile.in b/Makefile.in
index 3aebc2c..63e110c 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -95,8 +95,8 @@ DIST_COMMON = $(top_srcdir)/common/win32.mak \
 	ChangeLog $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
 	$(top_srcdir)/configure $(am__configure_deps) \
 	$(srcdir)/config.h.in $(srcdir)/gst-libav.spec.in COPYING \
-	COPYING.LIB TODO compile config.guess config.sub depcomp \
-	install-sh missing ltmain.sh
+	COPYING.LIB TODO compile config.guess config.sub install-sh \
+	missing ltmain.sh
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
diff --git a/NEWS b/NEWS
index 5d90b41..fed5262 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
-This is GStreamer Libav Plugins 1.3.3
+This is GStreamer Libav Plugins 1.3.90
 
 Changes since 1.2:
 
@@ -129,7 +129,7 @@ Major changes:
      with downstream via caps.
    ∘ Lots of fixes for coverity warnings all over the place.
    ∘ Negotiation related performance improvements.
-   ∘ 500+ fixed bug reports, and many other bug fixes and other
+   ∘ 800+ fixed bug reports, and many other bug fixes and other
      improvements everywhere that had no bug report.
 
 Things to look out for:
@@ -137,5 +137,9 @@ Things to look out for:
    element.
  • The mfcdec element was removed and replaced by v4l2videodec.
  • osxvideosink is only available in OS X 10.6 or newer.
- • The GstDeviceMonitor API will likely change slightly before the
-   1.4.0 release.
+ • On Android the namespace of the automatically generated Java class
+   for initialization of GStreamer has changed from com.gstreamer to
+   org.freedesktop.gstreamer to prevent namespace pollution.
+ • On iOS you have to update your gst_ios_init.h and gst_ios_init.m in
+   your projects from the one included in the binaries if you used the
+   GnuTLS GIO module before. The loading mechanism has slightly changed.
diff --git a/configure b/configure
index fb5eb42..bc87d61 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.3.3.
+# Generated by GNU Autoconf 2.69 for GStreamer libav 1.3.90.
 #
 # 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.3.3'
-PACKAGE_STRING='GStreamer libav 1.3.3'
+PACKAGE_VERSION='1.3.90'
+PACKAGE_STRING='GStreamer libav 1.3.90'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
 PACKAGE_URL=''
 
@@ -1495,7 +1495,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.3.3 to adapt to many kinds of systems.
+\`configure' configures GStreamer libav 1.3.90 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1566,7 +1566,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GStreamer libav 1.3.3:";;
+     short | recursive ) echo "Configuration of GStreamer libav 1.3.90:";;
    esac
   cat <<\_ACEOF
 
@@ -1734,7 +1734,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GStreamer libav configure 1.3.3
+GStreamer libav configure 1.3.90
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2149,7 +2149,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.3.3, which was
+It was created by GStreamer libav $as_me 1.3.90, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3127,7 +3127,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='gst-libav'
- VERSION='1.3.3'
+ VERSION='1.3.90'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3338,9 +3338,9 @@ fi
 
 
 
-  PACKAGE_VERSION_MAJOR=$(echo 1.3.3 | cut -d'.' -f1)
-  PACKAGE_VERSION_MINOR=$(echo 1.3.3 | cut -d'.' -f2)
-  PACKAGE_VERSION_MICRO=$(echo 1.3.3 | cut -d'.' -f3)
+  PACKAGE_VERSION_MAJOR=$(echo 1.3.90 | cut -d'.' -f1)
+  PACKAGE_VERSION_MINOR=$(echo 1.3.90 | cut -d'.' -f2)
+  PACKAGE_VERSION_MICRO=$(echo 1.3.90 | cut -d'.' -f3)
 
 
 
@@ -3351,7 +3351,7 @@ fi
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
 $as_echo_n "checking nano version... " >&6; }
 
-  NANO=$(echo 1.3.3 | cut -d'.' -f4)
+  NANO=$(echo 1.3.90 | cut -d'.' -f4)
 
   if test x"$NANO" = x || test "x$NANO" = "x0" ; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5
@@ -8003,10 +8003,10 @@ fi
 done
 
 
-  GST_CURRENT=303
+  GST_CURRENT=390
   GST_REVISION=0
-  GST_AGE=303
-  GST_LIBVERSION=303:0:303
+  GST_AGE=390
+  GST_LIBVERSION=390:0:390
 
 
 
@@ -12331,8 +12331,8 @@ CC="$lt_save_CC"
 
 
 
-GST_REQ=1.3.3
-GST_PBREQ=1.3.3
+GST_REQ=1.3.90
+GST_PBREQ=1.3.90
 
 ORC_REQ=0.4.16
 
@@ -17461,7 +17461,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.3.3, which was
+This file was extended by GStreamer libav $as_me 1.3.90, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -17527,7 +17527,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.3.3
+GStreamer libav config.status 1.3.90
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index 4e37db2..b3f1de5 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.3.3,
+AC_INIT(GStreamer libav, 1.3.90,
     http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer,
     gst-libav)
 
@@ -42,11 +42,11 @@ GST_API_VERSION=1.0
 AC_SUBST(GST_API_VERSION)
 
 AG_GST_LIBTOOL_PREPARE
-AS_LIBTOOL(GST, 303, 0, 303)
+AS_LIBTOOL(GST, 390, 0, 390)
 
 dnl *** required versions of GStreamer stuff ***
-GST_REQ=1.3.3
-GST_PBREQ=1.3.3
+GST_REQ=1.3.90
+GST_PBREQ=1.3.90
 
 ORC_REQ=0.4.16
 ORC_CHECK([$ORC_REQ])
diff --git a/docs/plugins/gst-libav-plugins.hierarchy b/docs/plugins/gst-libav-plugins.hierarchy
index 1a88b11..22c91ec 100644
--- a/docs/plugins/gst-libav-plugins.hierarchy
+++ b/docs/plugins/gst-libav-plugins.hierarchy
@@ -437,7 +437,7 @@ GObject
       GstPadTemplate
       GstPlugin
       GstPluginFeature
-        GstDeviceMonitorFactory
+        GstDeviceProviderFactory
         GstElementFactory
         GstTypeFindFactory
       GstRegistry
diff --git a/docs/plugins/html/gst-libav-plugins-plugin-libav.html b/docs/plugins/html/gst-libav-plugins-plugin-libav.html
index 17c09ea..03b8f3f 100644
--- a/docs/plugins/html/gst-libav-plugins-plugin-libav.html
+++ b/docs/plugins/html/gst-libav-plugins-plugin-libav.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.3.3</td>
+<td>1.3.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/index.html b/docs/plugins/html/index.html
index c17f315..024be6d 100644
--- a/docs/plugins/html/index.html
+++ b/docs/plugins/html/index.html
@@ -15,7 +15,7 @@
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer libav 1.0 Plugins Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for GStreamer libav Plugins 1.0 (1.3.3)
+      for GStreamer libav Plugins 1.0 (1.3.90)
       The latest version of this documentation can be found on-line at
       <a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-ffmpeg-plugins/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-ffmpeg-plugins/html/</a>.
     </p></div>
diff --git a/docs/plugins/inspect/plugin-libav.xml b/docs/plugins/inspect/plugin-libav.xml
index e844f47..baf0942 100644
--- a/docs/plugins/inspect/plugin-libav.xml
+++ b/docs/plugins/inspect/plugin-libav.xml
@@ -3,7 +3,7 @@
   <description>All libav codecs and formats (local snapshot)</description>
   <filename>../../ext/libav/.libs/libgstlibav.so</filename>
   <basename>libgstlibav.so</basename>
-  <version>1.3.3</version>
+  <version>1.3.90</version>
   <license>GPL</license>
   <source>gst-libav</source>
   <package>libav</package>
diff --git a/gst-libav.doap b/gst-libav.doap
index b4c24b7..39e9027 100644
--- a/gst-libav.doap
+++ b/gst-libav.doap
@@ -34,6 +34,16 @@ colorspace conversion elements.
 
  <release>
   <Version>
+   <revision>1.3.90</revision>
+   <branch>1.3</branch>
+   <name></name>
+   <created>2014-06-28</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-libav/gst-libav-1.3.90.tar.xz" />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
    <revision>1.3.3</revision>
    <branch>1.3</branch>
    <name></name>
diff --git a/gst-libav.spec b/gst-libav.spec
index 35a5503..d918a9f 100644
--- a/gst-libav.spec
+++ b/gst-libav.spec
@@ -4,7 +4,7 @@
 %define gst_majorminor  1.0
 
 Name: 		%{gstreamer}-libav
-Version: 	1.3.3
+Version: 	1.3.90
 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 30e63c9..566de4b 100644
--- a/gst-libs/ext/libav/Changelog
+++ b/gst-libs/ext/libav/Changelog
@@ -1,6 +1,19 @@
 Entries are sorted chronologically from oldest to youngest within each release,
 releases are sorted from youngest to oldest.
 
+version 10.2:
+- adpcm: Write the proper predictor in trellis mode in IMA QT
+- adpcm: Avoid reading out of bounds in the IMA QT trellis encoder
+- oggenc: Set the right AVOption size for the pref_duration option
+- avpacket: fix copying side data in av_packet_copy_props()
+- jpeg2000: fix dereferencing invalid pointers during cleanup
+- Check mp3 header before calling avpriv_mpegaudio_decode_header() (bug/705)
+- Check if an mp3 header is using a reserved sample rate
+- lzo: Handle integer overflow (bug/704)
+- avconv: make -shortest work with streamcopy
+- ppc: Fix compilation for ppc64le (ELFv2) (ubuntu/1263802)
+- aarch64: Use the correct syntax for relocations (debian/751856, ubuntu/1323144)
+
 version 10.1:
 - pcm-dvd: Fix 20bit decoding (bug/592)
 - avi: Improve non-interleaved detection (bug/666)
diff --git a/gst-libs/ext/libav/RELEASE b/gst-libs/ext/libav/RELEASE
index ae425d6..e2498ea 100644
--- a/gst-libs/ext/libav/RELEASE
+++ b/gst-libs/ext/libav/RELEASE
@@ -1 +1 @@
-10.1
+10.2
diff --git a/gst-libs/ext/libav/avconv.c b/gst-libs/ext/libav/avconv.c
index 64e8321..5a7c477 100644
--- a/gst-libs/ext/libav/avconv.c
+++ b/gst-libs/ext/libav/avconv.c
@@ -687,6 +687,19 @@ static int poll_filter(OutputStream *ost)
     return 0;
 }
 
+static void finish_output_stream(OutputStream *ost)
+{
+    OutputFile *of = output_files[ost->file_index];
+    int i;
+
+    ost->finished = 1;
+
+    if (of->shortest) {
+        for (i = 0; i < of->ctx->nb_streams; i++)
+            output_streams[of->ost_index + i]->finished = 1;
+    }
+}
+
 /*
  * Read as many frames from possible from lavfi and encode them.
  *
@@ -697,7 +710,7 @@ static int poll_filter(OutputStream *ost)
  */
 static int poll_filters(void)
 {
-    int i, j, ret = 0;
+    int i, ret = 0;
 
     while (ret >= 0 && !received_sigterm) {
         OutputStream *ost = NULL;
@@ -724,15 +737,7 @@ static int poll_filters(void)
         ret = poll_filter(ost);
 
         if (ret == AVERROR_EOF) {
-            OutputFile *of = output_files[ost->file_index];
-
-            ost->finished = 1;
-
-            if (of->shortest) {
-                for (j = 0; j < of->ctx->nb_streams; j++)
-                    output_streams[of->ost_index + j]->finished = 1;
-            }
-
+            finish_output_stream(ost);
             ret = 0;
         } else if (ret == AVERROR(EAGAIN))
             return 0;
@@ -2205,7 +2210,7 @@ static int process_input(void)
 
                 if (ost->source_index == ifile->ist_index + i &&
                     (ost->stream_copy || ost->enc->type == AVMEDIA_TYPE_SUBTITLE))
-                    ost->finished= 1;
+                    finish_output_stream(ost);
             }
         }
 
diff --git a/gst-libs/ext/libav/libavcodec/adpcmenc.c b/gst-libs/ext/libav/libavcodec/adpcmenc.c
index fb3ce0d..341dda4 100644
--- a/gst-libs/ext/libav/libavcodec/adpcmenc.c
+++ b/gst-libs/ext/libav/libavcodec/adpcmenc.c
@@ -549,10 +549,11 @@ static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
             put_bits(&pb, 7,  status->step_index);
             if (avctx->trellis > 0) {
                 uint8_t buf[64];
-                adpcm_compress_trellis(avctx, &samples_p[ch][1], buf, status,
+                adpcm_compress_trellis(avctx, &samples_p[ch][0], buf, status,
                                        64, 1);
                 for (i = 0; i < 64; i++)
                     put_bits(&pb, 4, buf[i ^ 1]);
+                status->prev_sample = status->predictor;
             } else {
                 for (i = 0; i < 64; i += 2) {
                     int t1, t2;
diff --git a/gst-libs/ext/libav/libavcodec/avpacket.c b/gst-libs/ext/libav/libavcodec/avpacket.c
index c0a0f8c..052aaf8 100644
--- a/gst-libs/ext/libav/libavcodec/avpacket.c
+++ b/gst-libs/ext/libav/libavcodec/avpacket.c
@@ -325,7 +325,6 @@ int av_packet_copy_props(AVPacket *dst, const AVPacket *src)
     dst->convergence_duration = src->convergence_duration;
     dst->flags                = src->flags;
     dst->stream_index         = src->stream_index;
-    dst->side_data_elems      = src->side_data_elems;
 
     for (i = 0; i < src->side_data_elems; i++) {
          enum AVPacketSideDataType type = src->side_data[i].type;
diff --git a/gst-libs/ext/libav/libavcodec/jpeg2000.c b/gst-libs/ext/libav/libavcodec/jpeg2000.c
index bf46398..154409e 100644
--- a/gst-libs/ext/libav/libavcodec/jpeg2000.c
+++ b/gst-libs/ext/libav/libavcodec/jpeg2000.c
@@ -228,7 +228,7 @@ int ff_jpeg2000_init_component(Jpeg2000Component *comp,
         if (!comp->i_data)
             return AVERROR(ENOMEM);
     }
-    comp->reslevel = av_malloc_array(codsty->nreslevels, sizeof(*comp->reslevel));
+    comp->reslevel = av_mallocz_array(codsty->nreslevels, sizeof(*comp->reslevel));
     if (!comp->reslevel)
         return AVERROR(ENOMEM);
     /* LOOP on resolution levels */
@@ -276,7 +276,7 @@ int ff_jpeg2000_init_component(Jpeg2000Component *comp,
                                         reslevel->log2_prec_height) -
                 (reslevel->coord[1][0] >> reslevel->log2_prec_height);
 
-        reslevel->band = av_malloc_array(reslevel->nbands, sizeof(*reslevel->band));
+        reslevel->band = av_mallocz_array(reslevel->nbands, sizeof(*reslevel->band));
         if (!reslevel->band)
             return AVERROR(ENOMEM);
 
@@ -372,9 +372,9 @@ int ff_jpeg2000_init_component(Jpeg2000Component *comp,
             for (j = 0; j < 2; j++)
                 band->coord[1][j] = ff_jpeg2000_ceildiv(band->coord[1][j], dy);
 
-            band->prec = av_malloc_array(reslevel->num_precincts_x *
-                                         reslevel->num_precincts_y,
-                                         sizeof(*band->prec));
+            band->prec = av_mallocz_array(reslevel->num_precincts_x *
+                                          reslevel->num_precincts_y,
+                                          sizeof(*band->prec));
             if (!band->prec)
                 return AVERROR(ENOMEM);
 
@@ -487,15 +487,30 @@ void ff_jpeg2000_cleanup(Jpeg2000Component *comp, Jpeg2000CodingStyle *codsty)
     for (reslevelno = 0;
          comp->reslevel && reslevelno < codsty->nreslevels;
          reslevelno++) {
-        Jpeg2000ResLevel *reslevel = comp->reslevel + reslevelno;
+        Jpeg2000ResLevel *reslevel;
+
+        if (!comp->reslevel)
+            continue;
 
+        reslevel = comp->reslevel + reslevelno;
         for (bandno = 0; bandno < reslevel->nbands; bandno++) {
-            Jpeg2000Band *band = reslevel->band + bandno;
+            Jpeg2000Band *band;
+
+            if (!reslevel->band)
+                continue;
+
+            band = reslevel->band + bandno;
             for (precno = 0; precno < reslevel->num_precincts_x * reslevel->num_precincts_y; precno++) {
-                Jpeg2000Prec *prec = band->prec + precno;
+                Jpeg2000Prec *prec;
+
+                if (!band->prec)
+                    continue;
+
+                prec = band->prec + precno;
                 av_freep(&prec->zerobits);
                 av_freep(&prec->cblkincl);
                 av_freep(&prec->cblk);
+
             }
 
             av_freep(&band->prec);
diff --git a/gst-libs/ext/libav/libavcodec/libmp3lame.c b/gst-libs/ext/libav/libavcodec/libmp3lame.c
index ee76ff8..2fc080f 100644
--- a/gst-libs/ext/libav/libavcodec/libmp3lame.c
+++ b/gst-libs/ext/libav/libavcodec/libmp3lame.c
@@ -175,6 +175,7 @@ static int mp3lame_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
     MPADecodeHeader hdr;
     int len, ret, ch;
     int lame_result;
+    uint32_t h;
 
     if (frame) {
         switch (avctx->sample_fmt) {
@@ -230,7 +231,12 @@ static int mp3lame_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
        determine the frame size. */
     if (s->buffer_index < 4)
         return 0;
-    if (avpriv_mpegaudio_decode_header(&hdr, AV_RB32(s->buffer))) {
+    h = AV_RB32(s->buffer);
+    if (ff_mpa_check_header(h) < 0) {
+        av_log(avctx, AV_LOG_ERROR, "Invalid mp3 header at start of buffer\n");
+        return AVERROR_BUG;
+    }
+    if (avpriv_mpegaudio_decode_header(&hdr, h)) {
         av_log(avctx, AV_LOG_ERROR, "free format output not supported\n");
         return -1;
     }
diff --git a/gst-libs/ext/libav/libavcodec/mpegaudiodecheader.c b/gst-libs/ext/libav/libavcodec/mpegaudiodecheader.c
index 69dda45..25e7319 100644
--- a/gst-libs/ext/libav/libavcodec/mpegaudiodecheader.c
+++ b/gst-libs/ext/libav/libavcodec/mpegaudiodecheader.c
@@ -24,6 +24,8 @@
  * MPEG Audio header decoder.
  */
 
+#include "libavutil/common.h"
+
 #include "avcodec.h"
 #include "mpegaudio.h"
 #include "mpegaudiodata.h"
@@ -45,6 +47,8 @@ int avpriv_mpegaudio_decode_header(MPADecodeHeader *s, uint32_t header)
     s->layer = 4 - ((header >> 17) & 3);
     /* extract frequency */
     sample_rate_index = (header >> 10) & 3;
+    if (sample_rate_index >= FF_ARRAY_ELEMS(avpriv_mpa_freq_tab))
+        sample_rate_index = 0;
     sample_rate = avpriv_mpa_freq_tab[sample_rate_index] >> (s->lsf + mpeg25);
     sample_rate_index += 3 * (s->lsf + mpeg25);
     s->sample_rate_index = sample_rate_index;
diff --git a/gst-libs/ext/libav/libavcodec/ppc/asm.S b/gst-libs/ext/libav/libavcodec/ppc/asm.S
index 4d4285b..141dee9 100644
--- a/gst-libs/ext/libav/libavcodec/ppc/asm.S
+++ b/gst-libs/ext/libav/libavcodec/ppc/asm.S
@@ -36,12 +36,20 @@
 
 .macro extfunc name
     .global X(\name)
+#if _CALL_ELF == 2
+    .text
+X(\name):
+    addis %r2, %r12, .TOC.-X(\name)@ha
+    addi %r2, %r2, .TOC.-X(\name)@l
+    .localentry X(\name), .-X(\name)
+#else
     .section .opd, "aw"
 X(\name):
     .quad L(\name), .TOC. at tocbase, 0
     .previous
     .type X(\name), STT_FUNC
 L(\name):
+#endif
 .endm
 
 .macro movrel rd, sym, gp
diff --git a/gst-libs/ext/libav/libavformat/mp3enc.c b/gst-libs/ext/libav/libavformat/mp3enc.c
index 9326258..476d7f7 100644
--- a/gst-libs/ext/libav/libavformat/mp3enc.c
+++ b/gst-libs/ext/libav/libavformat/mp3enc.c
@@ -252,13 +252,16 @@ static int mp3_write_audio_packet(AVFormatContext *s, AVPacket *pkt)
 
     if (mp3->xing_offset && pkt->size >= 4) {
         MPADecodeHeader c;
-
-        avpriv_mpegaudio_decode_header(&c, AV_RB32(pkt->data));
-
-        if (!mp3->initial_bitrate)
-            mp3->initial_bitrate = c.bit_rate;
-        if ((c.bit_rate == 0) || (mp3->initial_bitrate != c.bit_rate))
-            mp3->has_variable_bitrate = 1;
+        uint32_t h;
+
+        h = AV_RB32(pkt->data);
+        if (ff_mpa_check_header(h) == 0) {
+            avpriv_mpegaudio_decode_header(&c, h);
+            if (!mp3->initial_bitrate)
+                mp3->initial_bitrate = c.bit_rate;
+            if ((c.bit_rate == 0) || (mp3->initial_bitrate != c.bit_rate))
+                mp3->has_variable_bitrate = 1;
+        }
 
         mp3_xing_add_frame(mp3, pkt);
     }
diff --git a/gst-libs/ext/libav/libavformat/oggenc.c b/gst-libs/ext/libav/libavformat/oggenc.c
index fd102c8..a03ac15 100644
--- a/gst-libs/ext/libav/libavformat/oggenc.c
+++ b/gst-libs/ext/libav/libavformat/oggenc.c
@@ -80,7 +80,7 @@ static const AVOption options[] = {
     { "pagesize", "preferred page size in bytes (deprecated)",
         OFFSET(pref_size), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, MAX_PAGE_SIZE, PARAM },
     { "page_duration", "preferred page duration, in microseconds",
-        OFFSET(pref_duration), AV_OPT_TYPE_INT, { .i64 = 1000000 }, 0, INT64_MAX, PARAM },
+        OFFSET(pref_duration), AV_OPT_TYPE_INT64, { .i64 = 1000000 }, 0, INT64_MAX, PARAM },
     { NULL },
 };
 
diff --git a/gst-libs/ext/libav/libavutil/aarch64/asm.S b/gst-libs/ext/libav/libavutil/aarch64/asm.S
index 94e5a84..6608472 100644
--- a/gst-libs/ext/libav/libavutil/aarch64/asm.S
+++ b/gst-libs/ext/libav/libavutil/aarch64/asm.S
@@ -55,8 +55,8 @@ ELF     .size   \name, . - \name
 
 .macro  movrel rd, val
 #if CONFIG_PIC
-        adrp            \rd, #:pg_hi21:\val
-        add             \rd, \rd, #:lo12:\val
+        adrp            \rd, :pg_hi21:\val
+        add             \rd, \rd, :lo12:\val
 #else
         ldr             \rd, =\val
 #endif
diff --git a/gst-libs/ext/libav/libavutil/lzo.c b/gst-libs/ext/libav/libavutil/lzo.c
index 5c5ebc8..e458165 100644
--- a/gst-libs/ext/libav/libavutil/lzo.c
+++ b/gst-libs/ext/libav/libavutil/lzo.c
@@ -80,6 +80,10 @@ static inline void copy(LZOContext *c, int cnt)
 {
     register const uint8_t *src = c->in;
     register uint8_t *dst       = c->out;
+    if (cnt < 0) {
+        c->error |= AV_LZO_ERROR;
+        return;
+    }
     if (cnt > c->in_end - src) {
         cnt       = FFMAX(c->in_end - src, 0);
         c->error |= AV_LZO_INPUT_DEPLETED;
@@ -103,7 +107,7 @@ static inline void copy(LZOContext *c, int cnt)
 /**
  * @brief Copies previously decoded bytes to current position.
  * @param back how many bytes back we start
- * @param cnt number of bytes to copy, must be >= 0
+ * @param cnt number of bytes to copy, must be > 0
  *
  * cnt > back is valid, this will copy the bytes we just copied,
  * thus creating a repeating pattern with a period length of back.
@@ -111,6 +115,10 @@ static inline void copy(LZOContext *c, int cnt)
 static inline void copy_backptr(LZOContext *c, int back, int cnt)
 {
     register uint8_t *dst       = c->out;
+    if (cnt <= 0) {
+        c->error |= AV_LZO_ERROR;
+        return;
+    }
     if (dst - c->out_start < back) {
         c->error |= AV_LZO_INVALID_BACKPTR;
         return;

-- 
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