aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2014-06-28 12:21:11 +0200
committerSebastian Dröge <sebastian@centricular.com>2014-06-28 12:21:11 +0200
commit46ff6c48b7c4b7560da2ad9a1bc17229c26f6166 (patch)
tree8eaedf9484991fbc832b69d477502c804d96ca59
parent5b1835190a9876c671a95867fd3d3b25c79211be (diff)
parentd7d254ee1eab193daf5bae40a66d5ad89de2723b (diff)
Merge tag 'upstream/1.3.90'
Upstream version 1.3.90
-rw-r--r--ChangeLog26
-rw-r--r--Makefile.in4
-rw-r--r--NEWS12
-rwxr-xr-xconfigure38
-rw-r--r--configure.ac8
-rw-r--r--docs/plugins/gst-libav-plugins.hierarchy2
-rw-r--r--docs/plugins/html/gst-libav-plugins-plugin-libav.html2
-rw-r--r--docs/plugins/html/index.html2
-rw-r--r--docs/plugins/inspect/plugin-libav.xml2
-rw-r--r--gst-libav.doap10
-rw-r--r--gst-libav.spec2
-rw-r--r--gst-libs/ext/libav/Changelog13
-rw-r--r--gst-libs/ext/libav/RELEASE2
-rw-r--r--gst-libs/ext/libav/avconv.c27
-rw-r--r--gst-libs/ext/libav/libavcodec/adpcmenc.c3
-rw-r--r--gst-libs/ext/libav/libavcodec/avpacket.c1
-rw-r--r--gst-libs/ext/libav/libavcodec/jpeg2000.c31
-rw-r--r--gst-libs/ext/libav/libavcodec/libmp3lame.c8
-rw-r--r--gst-libs/ext/libav/libavcodec/mpegaudiodecheader.c4
-rw-r--r--gst-libs/ext/libav/libavcodec/ppc/asm.S8
-rw-r--r--gst-libs/ext/libav/libavformat/mp3enc.c17
-rw-r--r--gst-libs/ext/libav/libavformat/oggenc.c2
-rw-r--r--gst-libs/ext/libav/libavutil/aarch64/asm.S4
-rw-r--r--gst-libs/ext/libav/libavutil/lzo.c10
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@coaxion.net>
+
+ * configure.ac:
+ releasing 1.3.90
+
+2014-06-28 09:59:49 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst-libs/ext/libav:
+ libav: Update to v10.2
+
+2014-06-22 19:36:14 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * configure.ac:
+ Back to development
+
=== release 1.3.3 ===
-2014-06-22 Sebastian Dröge <slomo@coaxion.net>
+2014-06-22 19:27:47 +0200 Sebastian Dröge <sebastian@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@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.@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;