aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2014-04-19 15:53:24 +0200
committerSebastian Dröge <sebastian@centricular.com>2014-04-19 15:53:24 +0200
commit5bf65d9e2c8d8572d07f42697e4fae5798b82df5 (patch)
treebc628d98617cf50236b0db9d09b851111d0be1a7
parentb4effdbc5446a9465701b6beb88c64bb0649bec5 (diff)
parent0ee9933f9516fd5dd64cdc7982c706eb79d12f64 (diff)
Merge tag 'upstream/1.2.4'
Upstream version 1.2.4
-rw-r--r--ChangeLog34
-rw-r--r--NEWS2
-rw-r--r--aclocal.m43
-rwxr-xr-xconfigure47
-rw-r--r--configure.ac4
-rw-r--r--ext/libav/gstavviddec.c19
-rw-r--r--ext/libav/gstavviddec.h2
-rw-r--r--ext/libav/gstavvidenc.c4
-rw-r--r--gst-libav.doap10
-rw-r--r--gst-libav.spec2
-rw-r--r--gst-libs/ext/libav/Changelog20
-rw-r--r--gst-libs/ext/libav/RELEASE2
-rwxr-xr-xgst-libs/ext/libav/configure19
-rw-r--r--gst-libs/ext/libav/libavcodec/arm/dsputil_armv6.S10
-rw-r--r--gst-libs/ext/libav/libavcodec/h264.c18
-rw-r--r--gst-libs/ext/libav/libavcodec/h264_loopfilter.c8
-rw-r--r--gst-libs/ext/libav/libavcodec/ituh263dec.c2
-rw-r--r--gst-libs/ext/libav/libavcodec/lagarith.c12
-rw-r--r--gst-libs/ext/libav/libavcodec/rpza.c4
-rw-r--r--gst-libs/ext/libav/libavcodec/shorten.c2
-rw-r--r--gst-libs/ext/libav/libavcodec/truemotion1.c5
-rw-r--r--gst-libs/ext/libav/libavfilter/vf_drawtext.c1
-rw-r--r--gst-libs/ext/libav/libavutil/arm/asm.S7
-rw-r--r--gst-libs/ext/libav/libavutil/samplefmt.c2
-rw-r--r--gst-libs/ext/libav/tools/qt-faststart.c8
-rw-r--r--ltmain.sh4
-rw-r--r--m4/libtool.m412
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@coaxion.net>
+
+ * configure.ac:
+ releasing 1.2.4
+
+2014-04-15 21:32:07 +0200 Mark Nauwelaerts <mnauw@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@centricular.com>
+
+ * gst-libs/ext/libav:
+ libav: update to v9.12
+
+2014-02-23 11:40:14 +0100 Mark Nauwelaerts <mnauw@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@coaxion.net>
+2014-02-08 12:58:28 +0100 Sebastian Dröge <sebastian@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@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*)