diff options
Diffstat (limited to 'extra')
-rw-r--r-- | extra/farstream/PKGBUILD | 11 | ||||
-rw-r--r-- | extra/gst-libav/PKGBUILD | 14 | ||||
-rw-r--r-- | extra/gst-libav/update-libav.patch | 2304 | ||||
-rw-r--r-- | extra/gst-plugins-base/PKGBUILD | 6 | ||||
-rw-r--r-- | extra/gst-plugins-good/PKGBUILD | 6 | ||||
-rw-r--r-- | extra/gst-plugins-ugly/PKGBUILD | 8 | ||||
-rw-r--r-- | extra/gstreamer-vaapi/PKGBUILD | 31 | ||||
-rw-r--r-- | extra/gstreamer/PKGBUILD | 6 | ||||
-rw-r--r-- | extra/libtasn1/PKGBUILD | 6 | ||||
-rw-r--r-- | extra/xmlsec/PKGBUILD | 16 | ||||
-rw-r--r-- | extra/xorg-twm/PKGBUILD | 15 |
11 files changed, 59 insertions, 2364 deletions
diff --git a/extra/farstream/PKGBUILD b/extra/farstream/PKGBUILD index 1a62c4964..03556f363 100644 --- a/extra/farstream/PKGBUILD +++ b/extra/farstream/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 197947 2013-10-30 11:51:03Z allan $ +# $Id: PKGBUILD 218246 2014-07-27 20:49:06Z eric $ # Maintainer: Ionut Biru <ibiru@archlinux.org> pkgname=farstream -pkgver=0.2.3 +pkgver=0.2.4 pkgrel=1 pkgdesc="Farstream (formerly Farsight) - Audio/Video Communications Framework" -arch=(i686 x86_64) +arch=('i686' 'x86_64') url="http://www.freedesktop.org/wiki/Software/Farstream" license=('LGPL') depends=('gst-plugins-base-libs' 'libnice') @@ -14,15 +14,14 @@ optdepends=('gst-plugins-good' 'gst-plugins-bad') conflicts=('farsight2') replaces=('farsight2') source=(http://freedesktop.org/software/$pkgname/releases/$pkgname/$pkgname-$pkgver.tar.gz{,.asc}) -md5sums=('a8971167068b69a6933d3eaaeb9ab448' +md5sums=('edcc75cbf7c811cfe3de9b00b9808682' 'SKIP') build() { cd $pkgname-$pkgver ./configure --prefix=/usr \ --with-package-name='Arch Linux farstream package' \ - --with-package-origin='http://archlinux.org' \ - --disable-static + --with-package-origin='http://archlinux.org' make } diff --git a/extra/gst-libav/PKGBUILD b/extra/gst-libav/PKGBUILD index 894604ac0..79749a4cb 100644 --- a/extra/gst-libav/PKGBUILD +++ b/extra/gst-libav/PKGBUILD @@ -1,26 +1,22 @@ -# $Id: PKGBUILD 215539 2014-06-28 15:39:09Z heftig $ +# $Id: PKGBUILD 218238 2014-07-27 18:40:21Z heftig $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=gst-libav -pkgver=1.2.4 +pkgver=1.4.0 pkgrel=2 pkgdesc="Gstreamer libav Plugin" arch=('i686' 'x86_64') license=('GPL') url="http://gstreamer.freedesktop.org/" depends=('gst-plugins-base-libs' 'bzip2') -makedepends=('yasm' 'python') +makedepends=('python' 'yasm') options=(!emptydirs) provides=("gst-ffmpeg=$pkgver-$pkgrel") -source=(${url}/src/$pkgname/$pkgname-$pkgver.tar.xz update-libav.patch) -sha256sums=('2a69480d63fc2db93249d9e2e229ab3541bbc2db881b0f64de13d0bfc7d1f037' - '0fa6f8e097b4b6246f14b6db03c2228628135d3a69e6f9fdf527e7e3c72729e1') +source=(${url}/src/$pkgname/$pkgname-$pkgver.tar.xz) +sha256sums=('c82c7a657863f2e27ac5cba539b0bd0a8114ad6bd4ba33bae777e4dbfab9e380') prepare() { cd $pkgname-$pkgver - - # Update libav FS#40995 CVE-2014-4609 - patch -Np1 -i ../update-libav.patch } build() { diff --git a/extra/gst-libav/update-libav.patch b/extra/gst-libav/update-libav.patch deleted file mode 100644 index fa4988d06..000000000 --- a/extra/gst-libav/update-libav.patch +++ /dev/null @@ -1,2304 +0,0 @@ -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/avconv.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/avconv.c ---- gst-libav-1.2.4/gst-libs/ext/libav/avconv.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/avconv.c 2014-06-28 17:33:25.350191159 +0200 -@@ -346,6 +346,25 @@ - bsfc = bsfc->next; - } - -+ if (!(s->oformat->flags & AVFMT_NOTIMESTAMPS) && -+ ost->last_mux_dts != AV_NOPTS_VALUE && -+ pkt->dts < ost->last_mux_dts + !(s->oformat->flags & AVFMT_TS_NONSTRICT)) { -+ av_log(NULL, AV_LOG_WARNING, "Non-monotonous DTS in output stream " -+ "%d:%d; previous: %"PRId64", current: %"PRId64"; ", -+ ost->file_index, ost->st->index, ost->last_mux_dts, pkt->dts); -+ if (exit_on_error) { -+ av_log(NULL, AV_LOG_FATAL, "aborting.\n"); -+ exit(1); -+ } -+ av_log(NULL, AV_LOG_WARNING, "changing to %"PRId64". This may result " -+ "in incorrect timestamps in the output file.\n", -+ ost->last_mux_dts + 1); -+ pkt->dts = ost->last_mux_dts + 1; -+ if (pkt->pts != AV_NOPTS_VALUE) -+ pkt->pts = FFMAX(pkt->pts, pkt->dts); -+ } -+ ost->last_mux_dts = pkt->dts; -+ - pkt->stream_index = ost->index; - ret = av_interleaved_write_frame(s, pkt); - if (ret < 0) { -@@ -720,6 +739,19 @@ - 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. - * -@@ -730,7 +762,7 @@ - */ - static int poll_filters(void) - { -- int i, j, ret = 0; -+ int i, ret = 0; - - while (ret >= 0 && !received_sigterm) { - OutputStream *ost = NULL; -@@ -757,15 +789,7 @@ - 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; -@@ -2127,7 +2151,7 @@ - - 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 -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/avconv.h gst-libav-1.2.4-9.14/gst-libs/ext/libav/avconv.h ---- gst-libav-1.2.4/gst-libs/ext/libav/avconv.h 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/avconv.h 2014-06-28 17:33:25.560190269 +0200 -@@ -267,6 +267,8 @@ - /* pts of the first frame encoded for this stream, used for limiting - * recording time */ - int64_t first_pts; -+ /* dts of the last packet sent to the muxer */ -+ int64_t last_mux_dts; - AVBitStreamFilterContext *bitstream_filters; - AVCodec *enc; - int64_t max_frames; -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/avconv_opt.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/avconv_opt.c ---- gst-libav-1.2.4/gst-libs/ext/libav/avconv_opt.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/avconv_opt.c 2014-06-28 17:33:25.560190269 +0200 -@@ -845,6 +845,7 @@ - av_opt_get_int(o->g->sws_opts, "sws_flags", 0, &ost->sws_flags); - - ost->pix_fmts[0] = ost->pix_fmts[1] = AV_PIX_FMT_NONE; -+ ost->last_mux_dts = AV_NOPTS_VALUE; - - return ost; - } -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/Changelog gst-libav-1.2.4-9.14/gst-libs/ext/libav/Changelog ---- gst-libav-1.2.4/gst-libs/ext/libav/Changelog 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/Changelog 2014-06-28 17:33:25.560190269 +0200 -@@ -1,5 +1,43 @@ - Releases are sorted from youngest to oldest. - -+version 9.14: -+- adpcm: Write the proper predictor in trellis mode in IMA QT -+- adpcm: Avoid reading out of bounds in the IMA QT trellis encoder -+- 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 -+ -+Version 9.13: -+- swscale: Fix an undefined behaviour -+- matroska: add the Opus mapping -+- mp3enc: Properly write bitrate value in XING header (Fixes: debian/736088) -+- origin/pu/9 oggdec: add support for Opus in Ogg demuxing (Fixes: libav/603, debian/720563) -+- apedec: do not buffer decoded samples over AVPackets (Fixes: debian/744901) -+- isom: lpcm in mov default to big endian -+- movdec: handle 0x7fff langcode as macintosh per the specs -+- h264: reset next_output_pic earlier in start_frame() (Fixes: libav/672, debian/741240, ubuntu/1288206) -+- Revert "pthread: flush all threads on flush, not just the first one" -+- rtmpproto: Make sure to pass on the error code if read_connect failed -+- lavr: allocate the resampling buffer with a positive size -+- tiffdec: use bytestream2 to simplify overread/overwrite protection -+- bytestream: add bytestream2_copy_buffer() functions -+- bytestream: add functions for accessing size of buffer -+- resample: fix avresample_get_delay() return value -+- avi: Improve non-interleaved detection (Fixes: libav/666) -+- af_channelmap: fix ONE_STR mapping mode -+- movenc: allow override of "writing application" tag -+- matroskaenc: allow override of "writing application" tag -+- avfilter: Add missing emms_c when needed -+- build: Use pkg-config for openjpeg (Fixes: libav/387) -+- pthread: flush all threads on flush, not just the first one (Fixes: vlc/9665) -+- mpeg12: check scantable indices in all decode_block functions -+- sgidec: fix buffer size check in expand_rle_row() -+- adx: check that the offset is not negative -+- mpegvideo: set reference/pict_type on generated reference frames -+- h264: Fix various crashes found in samples pointed by Mateusz "j00ru" Jurczyk and Gynvael Coldwind - Thanks! -+ -+ - version 9.12: - - configure: Update freetype check to follow upstream - - drawtext: Drop pointless header -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/cmdutils.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/cmdutils.c ---- gst-libav-1.2.4/gst-libs/ext/libav/cmdutils.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/cmdutils.c 2014-06-28 17:33:25.560190269 +0200 -@@ -56,7 +56,7 @@ - struct SwsContext *sws_opts; - AVDictionary *format_opts, *codec_opts; - --static const int this_year = 2013; -+static const int this_year = 2014; - - void init_opts(void) - { -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/configure gst-libav-1.2.4-9.14/gst-libs/ext/libav/configure ---- gst-libav-1.2.4/gst-libs/ext/libav/configure 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/configure 2014-06-28 17:33:25.560190269 +0200 -@@ -3499,7 +3499,8 @@ - enabled libopencore_amrnb && require libopencore_amrnb opencore-amrnb/interf_dec.h Decoder_Interface_init -lopencore-amrnb - enabled libopencore_amrwb && require libopencore_amrwb opencore-amrwb/dec_if.h D_IF_init -lopencore-amrwb - enabled libopencv && require_pkg_config opencv opencv/cv.h cvCreateImageHeader --enabled libopenjpeg && require libopenjpeg openjpeg.h opj_version -lopenjpeg -+enabled libopenjpeg && { { check_header openjpeg.h && check_lib2 openjpeg.h opj_version -lopenjpeg; } || -+ { require_pkg_config libopenjpeg1 openjpeg.h opj_version; } } - enabled libopus && require_pkg_config opus opus_multistream.h opus_multistream_decoder_create - enabled libpulse && require_pkg_config libpulse-simple pulse/simple.h pa_simple_new - enabled librtmp && require_pkg_config librtmp librtmp/rtmp.h RTMP_Socket -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/doc/platform.texi gst-libav-1.2.4-9.14/gst-libs/ext/libav/doc/platform.texi ---- gst-libav-1.2.4/gst-libs/ext/libav/doc/platform.texi 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/doc/platform.texi 2014-06-28 17:33:25.560190269 +0200 -@@ -51,8 +51,8 @@ - unacelerated code. - - OS X on PowerPC or ARM (iPhone) requires a preprocessor from --@url{http://github.com/yuvi/gas-preprocessor} to build the optimized --assembler functions. Just download the Perl script and put it somewhere -+@url{git://git.libav.org/gas-preprocessor.git} to build the optimized -+assembler functions. Put the Perl script somewhere - in your PATH, Libav's configure will pick it up automatically. - - OS X on AMD64 and x86 requires @command{yasm} to build most of the -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/adpcmenc.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/adpcmenc.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/adpcmenc.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/adpcmenc.c 2014-06-28 17:33:25.560190269 +0200 -@@ -557,10 +557,11 @@ - 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 -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/adx.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/adx.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/adx.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/adx.c 2014-06-28 17:33:25.560190269 +0200 -@@ -48,7 +48,7 @@ - offset = AV_RB16(buf + 2) + 4; - - /* if copyright string is within the provided data, validate it */ -- if (bufsize >= offset && memcmp(buf + offset - 6, "(c)CRI", 6)) -+ if (bufsize >= offset && offset >= 6 && memcmp(buf + offset - 6, "(c)CRI", 6)) - return AVERROR_INVALIDDATA; - - /* check for encoding=3 block_size=18, sample_size=4 */ -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/apedec.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/apedec.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/apedec.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/apedec.c 2014-06-28 17:33:25.560190269 +0200 -@@ -833,7 +833,6 @@ - int32_t *sample24; - int i, ch, ret; - int blockstodecode; -- int bytes_used = 0; - - /* this should never be negative, but bad things will happen if it is, so - check it just to make sure. */ -@@ -889,7 +888,6 @@ - return AVERROR_INVALIDDATA; - } - -- bytes_used = avpkt->size; - } - - if (!s->data) { -@@ -958,7 +956,7 @@ - *got_frame_ptr = 1; - *(AVFrame *)data = s->frame; - -- return bytes_used; -+ return (s->samples == 0) ? avpkt->size : 0; - } - - static void ape_flush(AVCodecContext *avctx) -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/arm/h264dsp_init_arm.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/arm/h264dsp_init_arm.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/arm/h264dsp_init_arm.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/arm/h264dsp_init_arm.c 2014-06-28 17:33:25.560190269 +0200 -@@ -88,7 +88,7 @@ - c->h264_idct_dc_add = ff_h264_idct_dc_add_neon; - c->h264_idct_add16 = ff_h264_idct_add16_neon; - c->h264_idct_add16intra = ff_h264_idct_add16intra_neon; -- if (chroma_format_idc == 1) -+ if (chroma_format_idc <= 1) - c->h264_idct_add8 = ff_h264_idct_add8_neon; - c->h264_idct8_add = ff_h264_idct8_add_neon; - c->h264_idct8_dc_add = ff_h264_idct8_dc_add_neon; -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/bytestream.h gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/bytestream.h ---- gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/bytestream.h 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/bytestream.h 2014-06-28 17:33:25.560190269 +0200 -@@ -190,6 +190,16 @@ - return (int)(p->buffer - p->buffer_start); - } - -+static av_always_inline int bytestream2_size(GetByteContext *g) -+{ -+ return (int)(g->buffer_end - g->buffer_start); -+} -+ -+static av_always_inline int bytestream2_size_p(PutByteContext *p) -+{ -+ return (int)(p->buffer_end - p->buffer_start); -+} -+ - static av_always_inline int bytestream2_seek(GetByteContext *g, - int offset, - int whence) -@@ -315,6 +325,32 @@ - return p->eof; - } - -+static av_always_inline unsigned int bytestream2_copy_bufferu(PutByteContext *p, -+ GetByteContext *g, -+ unsigned int size) -+{ -+ memcpy(p->buffer, g->buffer, size); -+ p->buffer += size; -+ g->buffer += size; -+ return size; -+} -+ -+static av_always_inline unsigned int bytestream2_copy_buffer(PutByteContext *p, -+ GetByteContext *g, -+ unsigned int size) -+{ -+ int size2; -+ -+ if (p->eof) -+ return 0; -+ size = FFMIN(g->buffer_end - g->buffer, size); -+ size2 = FFMIN(p->buffer_end - p->buffer, size); -+ if (size2 != size) -+ p->eof = 1; -+ -+ return bytestream2_copy_bufferu(p, g, size2); -+} -+ - static av_always_inline unsigned int bytestream_get_buffer(const uint8_t **b, - uint8_t *dst, - unsigned int size) -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/h264.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/h264.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/h264.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/h264.c 2014-06-28 17:33:25.560190269 +0200 -@@ -128,10 +128,10 @@ - int ff_h264_check_intra_pred_mode(H264Context *h, int mode, int is_chroma) - { - MpegEncContext *const s = &h->s; -- static const int8_t top[7] = { LEFT_DC_PRED8x8, 1, -1, -1 }; -- static const int8_t left[7] = { TOP_DC_PRED8x8, -1, 2, -1, DC_128_PRED8x8 }; -+ static const int8_t top[4] = { LEFT_DC_PRED8x8, 1, -1, -1 }; -+ static const int8_t left[5] = { TOP_DC_PRED8x8, -1, 2, -1, DC_128_PRED8x8 }; - -- if (mode > 6U) { -+ if (mode > 3U) { - av_log(h->s.avctx, AV_LOG_ERROR, - "out of range intra chroma pred mode at %d %d\n", - s->mb_x, s->mb_y); -@@ -1290,6 +1290,8 @@ - int i; - const int pixel_shift = h->pixel_shift; - -+ h->next_output_pic = NULL; -+ - if (ff_MPV_frame_start(s, s->avctx) < 0) - return -1; - ff_er_frame_start(s); -@@ -1341,8 +1343,6 @@ - s->current_picture_ptr->field_poc[0] = - s->current_picture_ptr->field_poc[1] = INT_MAX; - -- h->next_output_pic = NULL; -- - assert(s->current_picture_ptr->long_ref == 0); - - return 0; -@@ -2427,12 +2427,6 @@ - if (s->avctx->has_b_frames < 2) - s->avctx->has_b_frames = !s->low_delay; - -- if (h->sps.bit_depth_luma != h->sps.bit_depth_chroma) { -- av_log_missing_feature(s->avctx, -- "Different bit depth between chroma and luma", 1); -- return AVERROR_PATCHWELCOME; -- } -- - if (s->avctx->bits_per_raw_sample != h->sps.bit_depth_luma || - h->cur_chroma_format_idc != h->sps.chroma_format_idc) { - if (s->avctx->codec && -@@ -2916,8 +2910,10 @@ - Picture *prev = h->short_ref_count ? h->short_ref[0] : NULL; - av_log(h->s.avctx, AV_LOG_DEBUG, "Frame num gap %d %d\n", - h->frame_num, h->prev_frame_num); -- if (ff_h264_frame_start(h) < 0) -+ if (ff_h264_frame_start(h) < 0) { -+ s0->first_field = 0; - return -1; -+ } - h->prev_frame_num++; - h->prev_frame_num %= 1 << h->sps.log2_max_frame_num; - s->current_picture_ptr->frame_num = h->prev_frame_num; -@@ -3833,6 +3829,12 @@ - H264Context *hx; - int i; - -+ if (s->mb_y >= s->mb_height) { -+ av_log(s->avctx, AV_LOG_ERROR, -+ "Input contains more MB rows than the frame height.\n"); -+ return AVERROR_INVALIDDATA; -+ } -+ - if (s->avctx->hwaccel || - s->avctx->codec->capabilities & CODEC_CAP_HWACCEL_VDPAU) - return 0; -@@ -3941,7 +3943,7 @@ - s->workaround_bugs |= FF_BUG_TRUNCATED; - - if (!(s->workaround_bugs & FF_BUG_TRUNCATED)) -- while (ptr[dst_length - 1] == 0 && dst_length > 0) -+ while (dst_length > 0 && ptr[dst_length - 1] == 0) - dst_length--; - bit_length = !dst_length ? 0 - : (8 * dst_length - -@@ -4057,12 +4059,24 @@ - } - break; - case NAL_DPA: -+ if (s->flags2 & CODEC_FLAG2_CHUNKS) { -+ av_log(h->s.avctx, AV_LOG_ERROR, -+ "Decoding in chunks is not supported for " -+ "partitioned slices.\n"); -+ return AVERROR(ENOSYS); -+ } -+ - init_get_bits(&hx->s.gb, ptr, bit_length); - hx->intra_gb_ptr = - hx->inter_gb_ptr = NULL; - -- if ((err = decode_slice_header(hx, h)) < 0) -+ if ((err = decode_slice_header(hx, h)) < 0) { -+ /* make sure data_partitioning is cleared if it was set -+ * before, so we don't try decoding a slice without a valid -+ * slice header later */ -+ s->data_partitioning = 0; - break; -+ } - - hx->s.data_partitioning = 1; - break; -@@ -4130,9 +4144,10 @@ - context_count = 0; - } - -- if (err < 0) -+ if (err < 0) { - av_log(h->s.avctx, AV_LOG_ERROR, "decode_slice_header error\n"); -- else if (err == 1) { -+ h->ref_count[0] = h->ref_count[1] = h->list_count = 0; -+ } else if (err == 1) { - /* Slice could not be decoded in parallel mode, copy down - * NAL unit stuff to context 0 and restart. Note that - * rbsp_buffer is not transferred, but since we no longer -@@ -4183,6 +4198,9 @@ - - s->flags = avctx->flags; - s->flags2 = avctx->flags2; -+ /* reset data partitioning here, to ensure GetBitContexts from previous -+ * packets do not get used. */ -+ s->data_partitioning = 0; - - /* end of stream, output what is still in the buffers */ - out: -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/h264dsp.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/h264dsp.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/h264dsp.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/h264dsp.c 2014-06-28 17:33:25.560190269 +0200 -@@ -54,13 +54,13 @@ - c->h264_idct8_dc_add= FUNC(ff_h264_idct8_dc_add, depth);\ - c->h264_idct_add16 = FUNC(ff_h264_idct_add16, depth);\ - c->h264_idct8_add4 = FUNC(ff_h264_idct8_add4, depth);\ -- if (chroma_format_idc == 1)\ -+ if (chroma_format_idc <= 1)\ - c->h264_idct_add8 = FUNC(ff_h264_idct_add8, depth);\ - else\ - c->h264_idct_add8 = FUNC(ff_h264_idct_add8_422, depth);\ - c->h264_idct_add16intra= FUNC(ff_h264_idct_add16intra, depth);\ - c->h264_luma_dc_dequant_idct= FUNC(ff_h264_luma_dc_dequant_idct, depth);\ -- if (chroma_format_idc == 1)\ -+ if (chroma_format_idc <= 1)\ - c->h264_chroma_dc_dequant_idct= FUNC(ff_h264_chroma_dc_dequant_idct, depth);\ - else\ - c->h264_chroma_dc_dequant_idct= FUNC(ff_h264_chroma422_dc_dequant_idct, depth);\ -@@ -81,20 +81,20 @@ - c->h264_h_loop_filter_luma_intra= FUNC(h264_h_loop_filter_luma_intra, depth);\ - c->h264_h_loop_filter_luma_mbaff_intra= FUNC(h264_h_loop_filter_luma_mbaff_intra, depth);\ - c->h264_v_loop_filter_chroma= FUNC(h264_v_loop_filter_chroma, depth);\ -- if (chroma_format_idc == 1)\ -+ if (chroma_format_idc <= 1)\ - c->h264_h_loop_filter_chroma= FUNC(h264_h_loop_filter_chroma, depth);\ - else\ - c->h264_h_loop_filter_chroma= FUNC(h264_h_loop_filter_chroma422, depth);\ -- if (chroma_format_idc == 1)\ -+ if (chroma_format_idc <= 1)\ - c->h264_h_loop_filter_chroma_mbaff= FUNC(h264_h_loop_filter_chroma_mbaff, depth);\ - else\ - c->h264_h_loop_filter_chroma_mbaff= FUNC(h264_h_loop_filter_chroma422_mbaff, depth);\ - c->h264_v_loop_filter_chroma_intra= FUNC(h264_v_loop_filter_chroma_intra, depth);\ -- if (chroma_format_idc == 1)\ -+ if (chroma_format_idc <= 1)\ - c->h264_h_loop_filter_chroma_intra= FUNC(h264_h_loop_filter_chroma_intra, depth);\ - else\ - c->h264_h_loop_filter_chroma_intra= FUNC(h264_h_loop_filter_chroma422_intra, depth);\ -- if (chroma_format_idc == 1)\ -+ if (chroma_format_idc <= 1)\ - c->h264_h_loop_filter_chroma_mbaff_intra= FUNC(h264_h_loop_filter_chroma_mbaff_intra, depth);\ - else\ - c->h264_h_loop_filter_chroma_mbaff_intra= FUNC(h264_h_loop_filter_chroma422_mbaff_intra, depth);\ -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/h264pred.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/h264pred.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/h264pred.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/h264pred.c 2014-06-28 17:33:25.560190269 +0200 -@@ -471,7 +471,7 @@ - h->pred8x8l[TOP_DC_PRED ]= FUNCC(pred8x8l_top_dc , depth);\ - h->pred8x8l[DC_128_PRED ]= FUNCC(pred8x8l_128_dc , depth);\ - \ -- if (chroma_format_idc == 1) {\ -+ if (chroma_format_idc <= 1) {\ - h->pred8x8[VERT_PRED8x8 ]= FUNCC(pred8x8_vertical , depth);\ - h->pred8x8[HOR_PRED8x8 ]= FUNCC(pred8x8_horizontal , depth);\ - } else {\ -@@ -479,7 +479,7 @@ - h->pred8x8[HOR_PRED8x8 ]= FUNCC(pred8x16_horizontal , depth);\ - }\ - if (codec_id != AV_CODEC_ID_VP8) {\ -- if (chroma_format_idc == 1) {\ -+ if (chroma_format_idc <= 1) {\ - h->pred8x8[PLANE_PRED8x8]= FUNCC(pred8x8_plane , depth);\ - } else {\ - h->pred8x8[PLANE_PRED8x8]= FUNCC(pred8x16_plane , depth);\ -@@ -487,7 +487,7 @@ - } else\ - h->pred8x8[PLANE_PRED8x8]= FUNCD(pred8x8_tm_vp8);\ - if(codec_id != AV_CODEC_ID_RV40 && codec_id != AV_CODEC_ID_VP8){\ -- if (chroma_format_idc == 1) {\ -+ if (chroma_format_idc <= 1) {\ - h->pred8x8[DC_PRED8x8 ]= FUNCC(pred8x8_dc , depth);\ - h->pred8x8[LEFT_DC_PRED8x8]= FUNCC(pred8x8_left_dc , depth);\ - h->pred8x8[TOP_DC_PRED8x8 ]= FUNCC(pred8x8_top_dc , depth);\ -@@ -513,7 +513,7 @@ - h->pred8x8[DC_129_PRED8x8]= FUNCC(pred8x8_129_dc , depth);\ - }\ - }\ -- if (chroma_format_idc == 1) {\ -+ if (chroma_format_idc <= 1) {\ - h->pred8x8[DC_128_PRED8x8 ]= FUNCC(pred8x8_128_dc , depth);\ - } else {\ - h->pred8x8[DC_128_PRED8x8 ]= FUNCC(pred8x16_128_dc , depth);\ -@@ -547,7 +547,7 @@ - h->pred4x4_add [ HOR_PRED ]= FUNCC(pred4x4_horizontal_add , depth);\ - h->pred8x8l_add [VERT_PRED ]= FUNCC(pred8x8l_vertical_add , depth);\ - h->pred8x8l_add [ HOR_PRED ]= FUNCC(pred8x8l_horizontal_add , depth);\ -- if (chroma_format_idc == 1) {\ -+ if (chroma_format_idc <= 1) {\ - h->pred8x8_add [VERT_PRED8x8]= FUNCC(pred8x8_vertical_add , depth);\ - h->pred8x8_add [ HOR_PRED8x8]= FUNCC(pred8x8_horizontal_add , depth);\ - } else {\ -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/h264_ps.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/h264_ps.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/h264_ps.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/h264_ps.c 2014-06-28 17:33:25.560190269 +0200 -@@ -349,6 +349,11 @@ - } - sps->bit_depth_luma = get_ue_golomb(&s->gb) + 8; - sps->bit_depth_chroma = get_ue_golomb(&s->gb) + 8; -+ if (sps->bit_depth_chroma != sps->bit_depth_luma) { -+ av_log_missing_feature(s->avctx, -+ "Different bit depth between chroma and luma", 1); -+ goto fail; -+ } - sps->transform_bypass = get_bits1(&s->gb); - decode_scaling_matrices(h, sps, NULL, 1, sps->scaling_matrix4, sps->scaling_matrix8); - }else{ -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/h264_refs.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/h264_refs.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/h264_refs.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/h264_refs.c 2014-06-28 17:33:25.560190269 +0200 -@@ -62,20 +62,22 @@ - return match; - } - --static int build_def_list(Picture *def, Picture **in, int len, int is_long, int sel){ -+static int build_def_list(Picture *def, int def_len, -+ Picture **in, int len, int is_long, int sel) -+{ - int i[2]={0}; - int index=0; - -- while(i[0]<len || i[1]<len){ -+ while ((i[0] < len || i[1] < len) && index < def_len) { - while (i[0] < len && !(in[ i[0] ] && (in[ i[0] ]->f.reference & sel))) - i[0]++; - while (i[1] < len && !(in[ i[1] ] && (in[ i[1] ]->f.reference & (sel^3)))) - i[1]++; -- if(i[0] < len){ -+ if (i[0] < len && index < def_len) { - in[ i[0] ]->pic_id= is_long ? i[0] : in[ i[0] ]->frame_num; - split_field_copy(&def[index++], in[ i[0]++ ], sel , 1); - } -- if(i[1] < len){ -+ if (i[1] < len && index < def_len) { - in[ i[1] ]->pic_id= is_long ? i[1] : in[ i[1] ]->frame_num; - split_field_copy(&def[index++], in[ i[1]++ ], sel^3, 0); - } -@@ -123,9 +125,12 @@ - len= add_sorted(sorted , h->short_ref, h->short_ref_count, cur_poc, 1^list); - len+=add_sorted(sorted+len, h->short_ref, h->short_ref_count, cur_poc, 0^list); - assert(len<=32); -- len= build_def_list(h->default_ref_list[list] , sorted , len, 0, s->picture_structure); -- len+=build_def_list(h->default_ref_list[list]+len, h->long_ref, 16 , 1, s->picture_structure); -- assert(len<=32); -+ -+ len = build_def_list(h->default_ref_list[list], FF_ARRAY_ELEMS(h->default_ref_list[0]), -+ sorted, len, 0, s->picture_structure); -+ len += build_def_list(h->default_ref_list[list] + len, -+ FF_ARRAY_ELEMS(h->default_ref_list[0]) - len, -+ h->long_ref, 16, 1, s->picture_structure); - - if(len < h->ref_count[list]) - memset(&h->default_ref_list[list][len], 0, sizeof(Picture)*(h->ref_count[list] - len)); -@@ -138,9 +143,12 @@ - FFSWAP(Picture, h->default_ref_list[1][0], h->default_ref_list[1][1]); - } - }else{ -- len = build_def_list(h->default_ref_list[0] , h->short_ref, h->short_ref_count, 0, s->picture_structure); -- len+= build_def_list(h->default_ref_list[0]+len, h-> long_ref, 16 , 1, s->picture_structure); -- assert(len <= 32); -+ len = build_def_list(h->default_ref_list[0], FF_ARRAY_ELEMS(h->default_ref_list[0]), -+ h->short_ref, h->short_ref_count, 0, s->picture_structure); -+ len += build_def_list(h->default_ref_list[0] + len, -+ FF_ARRAY_ELEMS(h->default_ref_list[0]) - len, -+ h-> long_ref, 16, 1, s->picture_structure); -+ - if(len < h->ref_count[0]) - memset(&h->default_ref_list[0][len], 0, sizeof(Picture)*(h->ref_count[0] - len)); - } -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/libmp3lame.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/libmp3lame.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/libmp3lame.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/libmp3lame.c 2014-06-28 17:33:25.560190269 +0200 -@@ -190,6 +190,7 @@ - MPADecodeHeader hdr; - int len, ret, ch; - int lame_result; -+ uint32_t h; - - if (frame) { - switch (avctx->sample_fmt) { -@@ -245,7 +246,12 @@ - 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 -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/mpeg12.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/mpeg12.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/mpeg12.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/mpeg12.c 2014-06-28 17:33:25.560190269 +0200 -@@ -80,6 +80,15 @@ - return sign_extend(val, 5 + shift); - } - -+#define check_scantable_index(ctx, x) \ -+ do { \ -+ if ((x) > 63) { \ -+ av_log(ctx->avctx, AV_LOG_ERROR, "ac-tex damaged at %d %d\n", \ -+ ctx->mb_x, ctx->mb_y); \ -+ return AVERROR_INVALIDDATA; \ -+ } \ -+ } while (0) \ -+ - static inline int mpeg1_decode_block_intra(MpegEncContext *s, DCTELEM *block, int n) - { - int level, dc, diff, i, j, run; -@@ -111,6 +120,7 @@ - break; - } else if (level != 0) { - i += run; -+ check_scantable_index(s, i); - j = scantable[i]; - level = (level * qscale * quant_matrix[j]) >> 4; - level = (level - 1) | 1; -@@ -127,6 +137,7 @@ - level = SHOW_UBITS(re, &s->gb, 8) ; LAST_SKIP_BITS(re, &s->gb, 8); - } - i += run; -+ check_scantable_index(s, i); - j = scantable[i]; - if (level < 0) { - level = -level; -@@ -138,10 +149,6 @@ - level = (level - 1) | 1; - } - } -- if (i > 63) { -- av_log(s->avctx, AV_LOG_ERROR, "ac-tex damaged at %d %d\n", s->mb_x, s->mb_y); -- return -1; -- } - - block[j] = level; - } -@@ -261,6 +268,7 @@ - - if (level != 0) { - i += run; -+ check_scantable_index(s, i); - j = scantable[i]; - level = ((level * 2 + 1) * qscale) >> 1; - level = (level - 1) | 1; -@@ -277,6 +285,7 @@ - level = SHOW_UBITS(re, &s->gb, 8) ; SKIP_BITS(re, &s->gb, 8); - } - i += run; -+ check_scantable_index(s, i); - j = scantable[i]; - if (level < 0) { - level = -level; -@@ -342,6 +351,7 @@ - - if (level != 0) { - i += run; -+ check_scantable_index(s, i); - j = scantable[i]; - level = ((level * 2 + 1) * qscale * quant_matrix[j]) >> 5; - level = (level ^ SHOW_SBITS(re, &s->gb, 1)) - SHOW_SBITS(re, &s->gb, 1); -@@ -353,6 +363,7 @@ - level = SHOW_SBITS(re, &s->gb, 12); SKIP_BITS(re, &s->gb, 12); - - i += run; -+ check_scantable_index(s, i); - j = scantable[i]; - if (level < 0) { - level = ((-level * 2 + 1) * qscale * quant_matrix[j]) >> 5; -@@ -361,10 +372,6 @@ - level = ((level * 2 + 1) * qscale * quant_matrix[j]) >> 5; - } - } -- if (i > 63) { -- av_log(s->avctx, AV_LOG_ERROR, "ac-tex damaged at %d %d\n", s->mb_x, s->mb_y); -- return -1; -- } - - mismatch ^= level; - block[j] = level; -@@ -411,6 +418,7 @@ - - if (level != 0) { - i += run; -+ check_scantable_index(s, i); - j = scantable[i]; - level = ((level * 2 + 1) * qscale) >> 1; - level = (level ^ SHOW_SBITS(re, &s->gb, 1)) - SHOW_SBITS(re, &s->gb, 1); -@@ -422,6 +430,7 @@ - level = SHOW_SBITS(re, &s->gb, 12); SKIP_BITS(re, &s->gb, 12); - - i += run; -+ check_scantable_index(s, i); - j = scantable[i]; - if (level < 0) { - level = ((-level * 2 + 1) * qscale) >> 1; -@@ -488,6 +497,7 @@ - break; - } else if (level != 0) { - i += run; -+ check_scantable_index(s, i); - j = scantable[i]; - level = (level * qscale * quant_matrix[j]) >> 4; - level = (level ^ SHOW_SBITS(re, &s->gb, 1)) - SHOW_SBITS(re, &s->gb, 1); -@@ -498,6 +508,7 @@ - UPDATE_CACHE(re, &s->gb); - level = SHOW_SBITS(re, &s->gb, 12); SKIP_BITS(re, &s->gb, 12); - i += run; -+ check_scantable_index(s, i); - j = scantable[i]; - if (level < 0) { - level = (-level * qscale * quant_matrix[j]) >> 4; -@@ -506,10 +517,6 @@ - level = (level * qscale * quant_matrix[j]) >> 4; - } - } -- if (i > 63) { -- av_log(s->avctx, AV_LOG_ERROR, "ac-tex damaged at %d %d\n", s->mb_x, s->mb_y); -- return -1; -- } - - mismatch ^= level; - block[j] = level; -@@ -524,10 +531,10 @@ - - static inline int mpeg2_fast_decode_block_intra(MpegEncContext *s, DCTELEM *block, int n) - { -- int level, dc, diff, j, run; -+ int level, dc, diff, i, j, run; - int component; - RLTable *rl; -- uint8_t * scantable = s->intra_scantable.permutated; -+ uint8_t * const scantable = s->intra_scantable.permutated; - const uint16_t *quant_matrix; - const int qscale = s->qscale; - -@@ -546,6 +553,7 @@ - dc += diff; - s->last_dc[component] = dc; - block[0] = dc << (3 - s->intra_dc_precision); -+ i = 0; - if (s->intra_vlc_format) - rl = &ff_rl_mpeg2; - else -@@ -561,8 +569,9 @@ - if (level == 127) { - break; - } else if (level != 0) { -- scantable += run; -- j = *scantable; -+ i += run; -+ check_scantable_index(s, i); -+ j = scantable[i]; - level = (level * qscale * quant_matrix[j]) >> 4; - level = (level ^ SHOW_SBITS(re, &s->gb, 1)) - SHOW_SBITS(re, &s->gb, 1); - LAST_SKIP_BITS(re, &s->gb, 1); -@@ -571,8 +580,9 @@ - run = SHOW_UBITS(re, &s->gb, 6) + 1; LAST_SKIP_BITS(re, &s->gb, 6); - UPDATE_CACHE(re, &s->gb); - level = SHOW_SBITS(re, &s->gb, 12); SKIP_BITS(re, &s->gb, 12); -- scantable += run; -- j = *scantable; -+ i += run; -+ check_scantable_index(s, i); -+ j = scantable[i]; - if (level < 0) { - level = (-level * qscale * quant_matrix[j]) >> 4; - level = -level; -@@ -586,7 +596,7 @@ - CLOSE_READER(re, &s->gb); - } - -- s->block_last_index[n] = scantable - s->intra_scantable.permutated; -+ s->block_last_index[n] = i; - return 0; - } - -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/mpegaudiodecheader.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/mpegaudiodecheader.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/mpegaudiodecheader.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/mpegaudiodecheader.c 2014-06-28 17:33:25.563523588 +0200 -@@ -25,6 +25,8 @@ - */ - - //#define DEBUG -+#include "libavutil/common.h" -+ - #include "avcodec.h" - #include "mpegaudio.h" - #include "mpegaudiodata.h" -@@ -46,6 +48,8 @@ - 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 -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/mpegvideo.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/mpegvideo.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/mpegvideo.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/mpegvideo.c 2014-06-28 17:33:25.563523588 +0200 -@@ -1481,6 +1481,10 @@ - return i; - } - s->last_picture_ptr = &s->picture[i]; -+ -+ s->last_picture_ptr->f.reference = 3; -+ s->last_picture_ptr->f.pict_type = AV_PICTURE_TYPE_I; -+ - if (ff_alloc_picture(s, s->last_picture_ptr, 0) < 0) { - s->last_picture_ptr = NULL; - return -1; -@@ -1499,6 +1503,10 @@ - return i; - } - s->next_picture_ptr = &s->picture[i]; -+ -+ s->next_picture_ptr->f.reference = 3; -+ s->next_picture_ptr->f.pict_type = AV_PICTURE_TYPE_I; -+ - if (ff_alloc_picture(s, s->next_picture_ptr, 0) < 0) { - s->next_picture_ptr = NULL; - return -1; -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/ppc/h264_altivec.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/ppc/h264_altivec.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/ppc/h264_altivec.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/ppc/h264_altivec.c 2014-06-28 17:33:25.563523588 +0200 -@@ -1005,7 +1005,7 @@ - if (av_get_cpu_flags() & AV_CPU_FLAG_ALTIVEC) { - if (bit_depth == 8) { - c->h264_idct_add = ff_h264_idct_add_altivec; -- if (chroma_format_idc == 1) -+ if (chroma_format_idc <= 1) - c->h264_idct_add8 = ff_h264_idct_add8_altivec; - c->h264_idct_add16 = ff_h264_idct_add16_altivec; - c->h264_idct_add16intra = ff_h264_idct_add16intra_altivec; -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/sgidec.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/sgidec.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/sgidec.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/sgidec.c 2014-06-28 17:33:25.563523588 +0200 -@@ -26,6 +26,7 @@ - #include "sgi.h" - - typedef struct SgiState { -+ AVCodecContext *avctx; - AVFrame picture; - unsigned int width; - unsigned int height; -@@ -39,12 +40,12 @@ - * Expand an RLE row into a channel. - * @param s the current image state - * @param out_buf Points to one line after the output buffer. -- * @param out_end end of line in output buffer -+ * @param len length of out_buf in bytes - * @param pixelstride pixel stride of input buffer - * @return size of output in bytes, -1 if buffer overflows - */ - static int expand_rle_row(SgiState *s, uint8_t *out_buf, -- uint8_t *out_end, int pixelstride) -+ int len, int pixelstride) - { - unsigned char pixel, count; - unsigned char *orig = out_buf; -@@ -58,7 +59,10 @@ - } - - /* Check for buffer overflow. */ -- if(out_buf + pixelstride * count >= out_end) return -1; -+ if (pixelstride * (count - 1) >= len) { -+ av_log(s->avctx, AV_LOG_ERROR, "Invalid pixel count.\n"); -+ return AVERROR_INVALIDDATA; -+ } - - if (pixel & 0x80) { - while (count--) { -@@ -101,7 +105,7 @@ - dest_row -= s->linesize; - start_offset = bytestream2_get_be32(&g_table); - bytestream2_seek(&s->g, start_offset, SEEK_SET); -- if (expand_rle_row(s, dest_row + z, dest_row + FFABS(s->linesize), -+ if (expand_rle_row(s, dest_row + z, FFABS(s->linesize) - z, - s->depth) != s->width) { - return AVERROR_INVALIDDATA; - } -@@ -243,6 +247,8 @@ - static av_cold int sgi_init(AVCodecContext *avctx){ - SgiState *s = avctx->priv_data; - -+ s->avctx = avctx; -+ - avcodec_get_frame_defaults(&s->picture); - avctx->coded_frame = &s->picture; - -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/tiff.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/tiff.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/tiff.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/tiff.c 2014-06-28 17:33:25.563523588 +0200 -@@ -26,6 +26,7 @@ - */ - - #include "avcodec.h" -+#include "bytestream.h" - #include "config.h" - #if CONFIG_ZLIB - #include <zlib.h> -@@ -42,6 +43,7 @@ - typedef struct TiffContext { - AVCodecContext *avctx; - AVFrame picture; -+ GetByteContext gb; - - int width, height; - unsigned int bpp, bppcount; -@@ -56,33 +58,27 @@ - - int strips, rps, sstype; - int sot; -- const uint8_t *stripdata; -- const uint8_t *stripsizes; -- int stripsize, stripoff; -+ int stripsizesoff, stripsize, stripoff, strippos; - LZWState *lzw; - } TiffContext; - --static unsigned tget_short(const uint8_t **p, int le) -+static unsigned tget_short(GetByteContext *gb, int le) - { -- unsigned v = le ? AV_RL16(*p) : AV_RB16(*p); -- *p += 2; -- return v; -+ return le ? bytestream2_get_le16(gb) : bytestream2_get_be16(gb); - } - --static unsigned tget_long(const uint8_t **p, int le) -+static unsigned tget_long(GetByteContext *gb, int le) - { -- unsigned v = le ? AV_RL32(*p) : AV_RB32(*p); -- *p += 4; -- return v; -+ return le ? bytestream2_get_le32(gb) : bytestream2_get_be32(gb); - } - --static unsigned tget(const uint8_t **p, int type, int le) -+static unsigned tget(GetByteContext *gb, int type, int le) - { - switch (type) { -- case TIFF_BYTE : return *(*p)++; -- case TIFF_SHORT: return tget_short(p, le); -- case TIFF_LONG : return tget_long(p, le); -- default : return UINT_MAX; -+ case TIFF_BYTE: return bytestream2_get_byte(gb); -+ case TIFF_SHORT: return tget_short(gb, le); -+ case TIFF_LONG: return tget_long(gb, le); -+ default: return UINT_MAX; - } - } - -@@ -112,8 +108,8 @@ - static int tiff_unpack_strip(TiffContext *s, uint8_t *dst, int stride, - const uint8_t *src, int size, int lines) - { -+ PutByteContext pb; - int c, line, pixels, code; -- const uint8_t *ssrc = src; - int width = ((s->width * s->bpp) + 7) >> 3; - - if (size <= 0) -@@ -151,6 +147,16 @@ - av_log(s->avctx, AV_LOG_ERROR, "Error initializing LZW decoder\n"); - return -1; - } -+ for (line = 0; line < lines; line++) { -+ pixels = ff_lzw_decode(s->lzw, dst, width); -+ if (pixels < width) { -+ av_log(s->avctx, AV_LOG_ERROR, "Decoded only %i bytes of %i\n", -+ pixels, width); -+ return AVERROR_INVALIDDATA; -+ } -+ dst += stride; -+ } -+ return 0; - } - if (s->compr == TIFF_CCITT_RLE || s->compr == TIFF_G3 - || s->compr == TIFF_G4) { -@@ -187,63 +193,40 @@ - av_free(src2); - return ret; - } -+ -+ bytestream2_init(&s->gb, src, size); -+ bytestream2_init_writer(&pb, dst, stride * lines); -+ - for (line = 0; line < lines; line++) { -- if (src - ssrc > size) { -- av_log(s->avctx, AV_LOG_ERROR, "Source data overread\n"); -- return -1; -- } -+ if (bytestream2_get_bytes_left(&s->gb) == 0 || bytestream2_get_eof(&pb)) -+ break; -+ bytestream2_seek_p(&pb, stride * line, SEEK_SET); - switch (s->compr) { - case TIFF_RAW: -- if (ssrc + size - src < width) -- return AVERROR_INVALIDDATA; - if (!s->fill_order) { -- memcpy(dst, src, width); -+ bytestream2_copy_buffer(&pb, &s->gb, width); - } else { - int i; - for (i = 0; i < width; i++) -- dst[i] = ff_reverse[src[i]]; -+ bytestream2_put_byte(&pb, ff_reverse[bytestream2_get_byte(&s->gb)]); - } -- src += width; - break; - case TIFF_PACKBITS: - for (pixels = 0; pixels < width;) { -- if (ssrc + size - src < 2) -- return AVERROR_INVALIDDATA; -- code = (int8_t) * src++; -+ code = (int8_t)bytestream2_get_byte(&s->gb); - if (code >= 0) { - code++; -- if (pixels + code > width || -- ssrc + size - src < code) { -- av_log(s->avctx, AV_LOG_ERROR, -- "Copy went out of bounds\n"); -- return -1; -- } -- memcpy(dst + pixels, src, code); -- src += code; -+ bytestream2_copy_buffer(&pb, &s->gb, code); - pixels += code; - } else if (code != -128) { // -127..-1 - code = (-code) + 1; -- if (pixels + code > width) { -- av_log(s->avctx, AV_LOG_ERROR, -- "Run went out of bounds\n"); -- return -1; -- } -- c = *src++; -- memset(dst + pixels, c, code); -+ c = bytestream2_get_byte(&s->gb); -+ bytestream2_set_buffer(&pb, c, code); - pixels += code; - } - } - break; -- case TIFF_LZW: -- pixels = ff_lzw_decode(s->lzw, dst, width); -- if (pixels < width) { -- av_log(s->avctx, AV_LOG_ERROR, "Decoded only %i bytes of %i\n", -- pixels, width); -- return -1; -- } -- break; - } -- dst += stride; - } - return 0; - } -@@ -302,20 +285,19 @@ - return 0; - } - --static int tiff_decode_tag(TiffContext *s, const uint8_t *start, -- const uint8_t *buf, const uint8_t *end_buf) -+static int tiff_decode_tag(TiffContext *s) - { - unsigned tag, type, count, off, value = 0; -- int i, j; -+ int i, start; - uint32_t *pal; -- const uint8_t *rp, *gp, *bp; - -- if (end_buf - buf < 12) -+ if (bytestream2_get_bytes_left(&s->gb) < 12) - return -1; -- tag = tget_short(&buf, s->le); -- type = tget_short(&buf, s->le); -- count = tget_long(&buf, s->le); -- off = tget_long(&buf, s->le); -+ tag = tget_short(&s->gb, s->le); -+ type = tget_short(&s->gb, s->le); -+ count = tget_long(&s->gb, s->le); -+ off = tget_long(&s->gb, s->le); -+ start = bytestream2_tell(&s->gb); - - if (type == 0 || type >= FF_ARRAY_ELEMS(type_sizes)) { - av_log(s->avctx, AV_LOG_DEBUG, "Unknown tiff type (%u) encountered\n", -@@ -327,35 +309,26 @@ - switch (type) { - case TIFF_BYTE: - case TIFF_SHORT: -- buf -= 4; -- value = tget(&buf, type, s->le); -- buf = NULL; -+ bytestream2_seek(&s->gb, -4, SEEK_CUR); -+ value = tget(&s->gb, type, s->le); - break; - case TIFF_LONG: - value = off; -- buf = NULL; - break; - case TIFF_STRING: - if (count <= 4) { -- buf -= 4; -+ bytestream2_seek(&s->gb, -4, SEEK_CUR); - break; - } - default: - value = UINT_MAX; -- buf = start + off; -+ bytestream2_seek(&s->gb, off, SEEK_SET); - } - } else { -- if (count <= 4 && type_sizes[type] * count <= 4) { -- buf -= 4; -- } else { -- buf = start + off; -- } -- } -- -- if (buf && (buf < start || buf > end_buf)) { -- av_log(s->avctx, AV_LOG_ERROR, -- "Tag referencing position outside the image\n"); -- return -1; -+ if (count <= 4 && type_sizes[type] * count <= 4) -+ bytestream2_seek(&s->gb, -4, SEEK_CUR); -+ else -+ bytestream2_seek(&s->gb, off, SEEK_SET); - } - - switch (tag) { -@@ -384,8 +357,8 @@ - case TIFF_SHORT: - case TIFF_LONG: - s->bpp = 0; -- for (i = 0; i < count && buf < end_buf; i++) -- s->bpp += tget(&buf, type, s->le); -+ for (i = 0; i < count; i++) -+ s->bpp += tget(&s->gb, type, s->le); - break; - default: - s->bpp = -1; -@@ -446,35 +419,25 @@ - break; - case TIFF_STRIP_OFFS: - if (count == 1) { -- s->stripdata = NULL; -+ s->strippos = 0; - s->stripoff = value; - } else -- s->stripdata = start + off; -+ s->strippos = off; - s->strips = count; - if (s->strips == 1) - s->rps = s->height; - s->sot = type; -- if (s->stripdata > end_buf) { -- av_log(s->avctx, AV_LOG_ERROR, -- "Tag referencing position outside the image\n"); -- return -1; -- } - break; - case TIFF_STRIP_SIZE: - if (count == 1) { -- s->stripsizes = NULL; -- s->stripsize = value; -- s->strips = 1; -+ s->stripsizesoff = 0; -+ s->stripsize = value; -+ s->strips = 1; - } else { -- s->stripsizes = start + off; -+ s->stripsizesoff = off; - } - s->strips = count; - s->sstype = type; -- if (s->stripsizes > end_buf) { -- av_log(s->avctx, AV_LOG_ERROR, -- "Tag referencing position outside the image\n"); -- return -1; -- } - break; - case TIFF_PREDICTOR: - s->predictor = value; -@@ -504,23 +467,27 @@ - } - s->fill_order = value - 1; - break; -- case TIFF_PAL: -+ case TIFF_PAL: { -+ GetByteContext pal_gb[3]; - pal = (uint32_t *) s->palette; - off = type_sizes[type]; -- if (count / 3 > 256 || end_buf - buf < count / 3 * off * 3) -+ if (count / 3 > 256 || -+ bytestream2_get_bytes_left(&s->gb) < count / 3 * off * 3) - return -1; -- rp = buf; -- gp = buf + count / 3 * off; -- bp = buf + count / 3 * off * 2; -+ pal_gb[0] = pal_gb[1] = pal_gb[2] = s->gb; -+ bytestream2_skip(&pal_gb[1], count / 3 * off); -+ bytestream2_skip(&pal_gb[2], count / 3 * off * 2); - off = (type_sizes[type] - 1) << 3; - for (i = 0; i < count / 3; i++) { -- j = (tget(&rp, type, s->le) >> off) << 16; -- j |= (tget(&gp, type, s->le) >> off) << 8; -- j |= tget(&bp, type, s->le) >> off; -- pal[i] = j; -+ uint32_t p = 0xFF000000; -+ p |= (tget(&pal_gb[0], type, s->le) >> off) << 16; -+ p |= (tget(&pal_gb[1], type, s->le) >> off) << 8; -+ p |= tget(&pal_gb[2], type, s->le) >> off; -+ pal[i] = p; - } - s->palette_is_set = 1; - break; -+ } - case TIFF_PLANAR: - if (value == 2) { - av_log(s->avctx, AV_LOG_ERROR, "Planar format is not supported\n"); -@@ -539,30 +506,31 @@ - av_log(s->avctx, AV_LOG_DEBUG, "Unknown or unsupported tag %d/0X%0X\n", - tag, tag); - } -+ bytestream2_seek(&s->gb, start, SEEK_SET); - return 0; - } - - static int decode_frame(AVCodecContext *avctx, - void *data, int *got_frame, AVPacket *avpkt) - { -- const uint8_t *buf = avpkt->data; -- int buf_size = avpkt->size; - TiffContext *const s = avctx->priv_data; - AVFrame *picture = data; - AVFrame *const p = &s->picture; -- const uint8_t *orig_buf = buf, *end_buf = buf + buf_size; - unsigned off; - int id, le, ret; - int i, j, entries; - int stride; - unsigned soff, ssize; - uint8_t *dst; -+ GetByteContext stripsizes; -+ GetByteContext stripdata; -+ -+ bytestream2_init(&s->gb, avpkt->data, avpkt->size); - - //parse image header -- if (end_buf - buf < 8) -+ if (avpkt->size < 8) - return AVERROR_INVALIDDATA; -- id = AV_RL16(buf); -- buf += 2; -+ id = bytestream2_get_le16(&s->gb); - if (id == 0x4949) - le = 1; - else if (id == 0x4D4D) -@@ -577,27 +545,26 @@ - s->fill_order = 0; - // As TIFF 6.0 specification puts it "An arbitrary but carefully chosen number - // that further identifies the file as a TIFF file" -- if (tget_short(&buf, le) != 42) { -+ if (tget_short(&s->gb, le) != 42) { - av_log(avctx, AV_LOG_ERROR, - "The answer to life, universe and everything is not correct!\n"); - return -1; - } -- // Reset these pointers so we can tell if they were set this frame -- s->stripsizes = s->stripdata = NULL; -+ // Reset these offsets so we can tell if they were set this frame -+ s->stripsizesoff = s->strippos = 0; - /* parse image file directory */ -- off = tget_long(&buf, le); -- if (off >= UINT_MAX - 14 || end_buf - orig_buf < off + 14) { -+ off = tget_long(&s->gb, le); -+ if (off >= UINT_MAX - 14 || avpkt->size < off + 14) { - av_log(avctx, AV_LOG_ERROR, "IFD offset is greater than image size\n"); - return AVERROR_INVALIDDATA; - } -- buf = orig_buf + off; -- entries = tget_short(&buf, le); -+ bytestream2_seek(&s->gb, off, SEEK_SET); -+ entries = tget_short(&s->gb, le); - for (i = 0; i < entries; i++) { -- if (tiff_decode_tag(s, orig_buf, buf, end_buf) < 0) -+ if (tiff_decode_tag(s) < 0) - return -1; -- buf += 12; - } -- if (!s->stripdata && !s->stripoff) { -+ if (!s->strippos && !s->stripoff) { - av_log(avctx, AV_LOG_ERROR, "Image data is missing\n"); - return -1; - } -@@ -607,30 +574,40 @@ - - if (s->strips == 1 && !s->stripsize) { - av_log(avctx, AV_LOG_WARNING, "Image data size missing\n"); -- s->stripsize = buf_size - s->stripoff; -+ s->stripsize = avpkt->size - s->stripoff; - } - stride = p->linesize[0]; - dst = p->data[0]; -+ -+ if (s->stripsizesoff) { -+ if (s->stripsizesoff >= avpkt->size) -+ return AVERROR_INVALIDDATA; -+ bytestream2_init(&stripsizes, avpkt->data + s->stripsizesoff, -+ avpkt->size - s->stripsizesoff); -+ } -+ if (s->strippos) { -+ if (s->strippos >= avpkt->size) -+ return AVERROR_INVALIDDATA; -+ bytestream2_init(&stripdata, avpkt->data + s->strippos, -+ avpkt->size - s->strippos); -+ } -+ - for (i = 0; i < s->height; i += s->rps) { -- if (s->stripsizes) { -- if (s->stripsizes >= end_buf) -- return AVERROR_INVALIDDATA; -- ssize = tget(&s->stripsizes, s->sstype, s->le); -- } else -+ if (s->stripsizesoff) -+ ssize = tget(&stripsizes, s->sstype, le); -+ else - ssize = s->stripsize; - -- if (s->stripdata) { -- if (s->stripdata >= end_buf) -- return AVERROR_INVALIDDATA; -- soff = tget(&s->stripdata, s->sot, s->le); -- } else -+ if (s->strippos) -+ soff = tget(&stripdata, s->sot, le); -+ else - soff = s->stripoff; - -- if (soff > buf_size || ssize > buf_size - soff) { -+ if (soff > avpkt->size || ssize > avpkt->size - soff) { - av_log(avctx, AV_LOG_ERROR, "Invalid strip size/offset\n"); - return -1; - } -- if (tiff_unpack_strip(s, dst, stride, orig_buf + soff, ssize, -+ if (tiff_unpack_strip(s, dst, stride, avpkt->data + soff, ssize, - FFMIN(s->rps, s->height - i)) < 0) - break; - dst += s->rps * stride; -@@ -660,7 +637,7 @@ - *picture = s->picture; - *got_frame = 1; - -- return buf_size; -+ return avpkt->size; - } - - static av_cold int tiff_init(AVCodecContext *avctx) -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/x86/h264dsp_init.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/x86/h264dsp_init.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/x86/h264dsp_init.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/x86/h264dsp_init.c 2014-06-28 17:33:25.563523588 +0200 -@@ -212,7 +212,7 @@ - { - int mm_flags = av_get_cpu_flags(); - -- if (chroma_format_idc == 1 && EXTERNAL_MMXEXT(mm_flags)) -+ if (chroma_format_idc <= 1 && EXTERNAL_MMXEXT(mm_flags)) - c->h264_loop_filter_strength = ff_h264_loop_filter_strength_mmxext; - - if (bit_depth == 8) { -@@ -224,7 +224,7 @@ - - c->h264_idct_add16 = ff_h264_idct_add16_8_mmx; - c->h264_idct8_add4 = ff_h264_idct8_add4_8_mmx; -- if (chroma_format_idc == 1) -+ if (chroma_format_idc <= 1) - c->h264_idct_add8 = ff_h264_idct_add8_8_mmx; - c->h264_idct_add16intra = ff_h264_idct_add16intra_8_mmx; - if (mm_flags & AV_CPU_FLAG_CMOV) -@@ -235,13 +235,13 @@ - c->h264_idct8_dc_add = ff_h264_idct8_dc_add_8_mmxext; - c->h264_idct_add16 = ff_h264_idct_add16_8_mmxext; - c->h264_idct8_add4 = ff_h264_idct8_add4_8_mmxext; -- if (chroma_format_idc == 1) -+ if (chroma_format_idc <= 1) - c->h264_idct_add8 = ff_h264_idct_add8_8_mmxext; - c->h264_idct_add16intra = ff_h264_idct_add16intra_8_mmxext; - - c->h264_v_loop_filter_chroma = ff_deblock_v_chroma_8_mmxext; - c->h264_v_loop_filter_chroma_intra = ff_deblock_v_chroma_intra_8_mmxext; -- if (chroma_format_idc == 1) { -+ if (chroma_format_idc <= 1) { - c->h264_h_loop_filter_chroma = ff_deblock_h_chroma_8_mmxext; - c->h264_h_loop_filter_chroma_intra = ff_deblock_h_chroma_intra_8_mmxext; - } -@@ -264,7 +264,7 @@ - - c->h264_idct_add16 = ff_h264_idct_add16_8_sse2; - c->h264_idct8_add4 = ff_h264_idct8_add4_8_sse2; -- if (chroma_format_idc == 1) -+ if (chroma_format_idc <= 1) - c->h264_idct_add8 = ff_h264_idct_add8_8_sse2; - c->h264_idct_add16intra = ff_h264_idct_add16intra_8_sse2; - c->h264_luma_dc_dequant_idct = ff_h264_luma_dc_dequant_idct_sse2; -@@ -309,7 +309,7 @@ - c->h264_idct8_dc_add = ff_h264_idct8_dc_add_10_sse2; - - c->h264_idct_add16 = ff_h264_idct_add16_10_sse2; -- if (chroma_format_idc == 1) -+ if (chroma_format_idc <= 1) - c->h264_idct_add8 = ff_h264_idct_add8_10_sse2; - c->h264_idct_add16intra = ff_h264_idct_add16intra_10_sse2; - #if HAVE_ALIGNED_STACK -@@ -349,7 +349,7 @@ - c->h264_idct8_dc_add = ff_h264_idct8_dc_add_10_avx; - - c->h264_idct_add16 = ff_h264_idct_add16_10_avx; -- if (chroma_format_idc == 1) -+ if (chroma_format_idc <= 1) - c->h264_idct_add8 = ff_h264_idct_add8_10_avx; - c->h264_idct_add16intra = ff_h264_idct_add16intra_10_avx; - #if HAVE_ALIGNED_STACK -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/x86/h264_intrapred_init.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/x86/h264_intrapred_init.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavcodec/x86/h264_intrapred_init.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavcodec/x86/h264_intrapred_init.c 2014-06-28 17:33:25.563523588 +0200 -@@ -187,7 +187,7 @@ - if (EXTERNAL_MMX(mm_flags)) { - h->pred16x16[VERT_PRED8x8 ] = ff_pred16x16_vertical_8_mmx; - h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_8_mmx; -- if (chroma_format_idc == 1) { -+ if (chroma_format_idc <= 1) { - h->pred8x8 [VERT_PRED8x8 ] = ff_pred8x8_vertical_8_mmx; - h->pred8x8 [HOR_PRED8x8 ] = ff_pred8x8_horizontal_8_mmx; - } -@@ -196,7 +196,7 @@ - h->pred8x8 [PLANE_PRED8x8 ] = ff_pred8x8_tm_vp8_8_mmx; - h->pred4x4 [TM_VP8_PRED ] = ff_pred4x4_tm_vp8_8_mmx; - } else { -- if (chroma_format_idc == 1) -+ if (chroma_format_idc <= 1) - h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_plane_8_mmx; - if (codec_id == AV_CODEC_ID_SVQ3) { - if (mm_flags & AV_CPU_FLAG_CMOV) -@@ -212,7 +212,7 @@ - if (EXTERNAL_MMXEXT(mm_flags)) { - h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_8_mmxext; - h->pred16x16[DC_PRED8x8 ] = ff_pred16x16_dc_8_mmxext; -- if (chroma_format_idc == 1) -+ if (chroma_format_idc <= 1) - h->pred8x8[HOR_PRED8x8 ] = ff_pred8x8_horizontal_8_mmxext; - h->pred8x8l [TOP_DC_PRED ] = ff_pred8x8l_top_dc_8_mmxext; - h->pred8x8l [DC_PRED ] = ff_pred8x8l_dc_8_mmxext; -@@ -237,7 +237,7 @@ - h->pred4x4 [HOR_UP_PRED ] = ff_pred4x4_horizontal_up_8_mmxext; - } - if (codec_id == AV_CODEC_ID_SVQ3 || codec_id == AV_CODEC_ID_H264) { -- if (chroma_format_idc == 1) { -+ if (chroma_format_idc <= 1) { - h->pred8x8[TOP_DC_PRED8x8 ] = ff_pred8x8_top_dc_8_mmxext; - h->pred8x8[DC_PRED8x8 ] = ff_pred8x8_dc_8_mmxext; - } -@@ -249,7 +249,7 @@ - h->pred4x4 [TM_VP8_PRED ] = ff_pred4x4_tm_vp8_8_mmxext; - h->pred4x4 [VERT_PRED ] = ff_pred4x4_vertical_vp8_8_mmxext; - } else { -- if (chroma_format_idc == 1) -+ if (chroma_format_idc <= 1) - h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_plane_8_mmxext; - if (codec_id == AV_CODEC_ID_SVQ3) { - h->pred16x16[PLANE_PRED8x8 ] = ff_pred16x16_plane_svq3_8_mmxext; -@@ -276,7 +276,7 @@ - h->pred16x16[PLANE_PRED8x8 ] = ff_pred16x16_tm_vp8_8_sse2; - h->pred8x8 [PLANE_PRED8x8 ] = ff_pred8x8_tm_vp8_8_sse2; - } else { -- if (chroma_format_idc == 1) -+ if (chroma_format_idc <= 1) - h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_plane_8_sse2; - if (codec_id == AV_CODEC_ID_SVQ3) { - h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_plane_svq3_8_sse2; -@@ -291,7 +291,7 @@ - if (EXTERNAL_SSSE3(mm_flags)) { - h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_8_ssse3; - h->pred16x16[DC_PRED8x8 ] = ff_pred16x16_dc_8_ssse3; -- if (chroma_format_idc == 1) -+ if (chroma_format_idc <= 1) - h->pred8x8 [HOR_PRED8x8 ] = ff_pred8x8_horizontal_8_ssse3; - h->pred8x8l [TOP_DC_PRED ] = ff_pred8x8l_top_dc_8_ssse3; - h->pred8x8l [DC_PRED ] = ff_pred8x8l_dc_8_ssse3; -@@ -307,7 +307,7 @@ - h->pred8x8 [PLANE_PRED8x8 ] = ff_pred8x8_tm_vp8_8_ssse3; - h->pred4x4 [TM_VP8_PRED ] = ff_pred4x4_tm_vp8_8_ssse3; - } else { -- if (chroma_format_idc == 1) -+ if (chroma_format_idc <= 1) - h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_plane_8_ssse3; - if (codec_id == AV_CODEC_ID_SVQ3) { - h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_plane_svq3_8_ssse3; -@@ -323,7 +323,7 @@ - h->pred4x4[DC_PRED ] = ff_pred4x4_dc_10_mmxext; - h->pred4x4[HOR_UP_PRED ] = ff_pred4x4_horizontal_up_10_mmxext; - -- if (chroma_format_idc == 1) -+ if (chroma_format_idc <= 1) - h->pred8x8[DC_PRED8x8 ] = ff_pred8x8_dc_10_mmxext; - - h->pred8x8l[DC_128_PRED ] = ff_pred8x8l_128_dc_10_mmxext; -@@ -342,7 +342,7 @@ - h->pred4x4[VERT_RIGHT_PRED ] = ff_pred4x4_vertical_right_10_sse2; - h->pred4x4[HOR_DOWN_PRED ] = ff_pred4x4_horizontal_down_10_sse2; - -- if (chroma_format_idc == 1) { -+ if (chroma_format_idc <= 1) { - h->pred8x8[DC_PRED8x8 ] = ff_pred8x8_dc_10_sse2; - h->pred8x8[TOP_DC_PRED8x8 ] = ff_pred8x8_top_dc_10_sse2; - h->pred8x8[PLANE_PRED8x8 ] = ff_pred8x8_plane_10_sse2; -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavfilter/af_channelmap.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavfilter/af_channelmap.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavfilter/af_channelmap.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavfilter/af_channelmap.c 2014-06-28 17:33:25.563523588 +0200 -@@ -197,7 +197,7 @@ - s->map[i].out_channel_idx = i; - break; - case MAP_ONE_STR: -- if (!get_channel(&mapping, &in_ch, ',')) { -+ if (get_channel(&mapping, &in_ch, ',') < 0) { - av_log(ctx, AV_LOG_ERROR, err); - ret = AVERROR(EINVAL); - goto fail; -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavfilter/af_volume.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavfilter/af_volume.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavfilter/af_volume.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavfilter/af_volume.c 2014-06-28 17:33:25.563523588 +0200 -@@ -282,6 +282,8 @@ - } - } - -+ emms_c(); -+ - if (buf != out_buf) - avfilter_unref_buffer(buf); - -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavfilter/vf_gradfun.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavfilter/vf_gradfun.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavfilter/vf_gradfun.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavfilter/vf_gradfun.c 2014-06-28 17:33:25.563523588 +0200 -@@ -117,6 +117,7 @@ - ctx->filter_line(dst + y * dst_linesize, src + y * src_linesize, dc - r / 2, width, thresh, dither[y & 7]); - if (++y >= height) break; - } -+ emms_c(); - } - - static av_cold int init(AVFilterContext *ctx, const char *args) -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavfilter/vf_hqdn3d.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavfilter/vf_hqdn3d.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavfilter/vf_hqdn3d.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavfilter/vf_hqdn3d.c 2014-06-28 17:33:25.563523588 +0200 -@@ -155,6 +155,7 @@ - else - denoise_temporal(src, dst, frame_ant, - w, h, sstride, dstride, temporal, depth); -+ emms_c(); - } - - #define denoise(...) \ -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavformat/avidec.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavformat/avidec.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavformat/avidec.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavformat/avidec.c 2014-06-28 17:33:25.563523588 +0200 -@@ -732,7 +732,11 @@ - if(!avi->index_loaded && pb->seekable) - avi_load_index(s); - avi->index_loaded = 1; -- avi->non_interleaved |= guess_ni_flag(s); -+ -+ if ((ret = guess_ni_flag(s)) < 0) -+ return ret; -+ -+ avi->non_interleaved |= ret; - for(i=0; i<s->nb_streams; i++){ - AVStream *st = s->streams[i]; - if(st->nb_index_entries) -@@ -1204,6 +1208,64 @@ - return 0; - } - -+/* Scan the index and consider any file with streams more than -+ * 2 seconds or 64MB apart non-interleaved. */ -+static int check_stream_max_drift(AVFormatContext *s) -+{ -+ int64_t min_pos, pos; -+ int i; -+ int *idx = av_mallocz_array(s->nb_streams, sizeof(*idx)); -+ if (!idx) -+ return AVERROR(ENOMEM); -+ -+ for (min_pos = pos = 0; min_pos != INT64_MAX; pos = min_pos + 1LU) { -+ int64_t max_dts = INT64_MIN / 2; -+ int64_t min_dts = INT64_MAX / 2; -+ int64_t max_buffer = 0; -+ -+ min_pos = INT64_MAX; -+ -+ for (i = 0; i < s->nb_streams; i++) { -+ AVStream *st = s->streams[i]; -+ AVIStream *ast = st->priv_data; -+ int n = st->nb_index_entries; -+ while (idx[i] < n && st->index_entries[idx[i]].pos < pos) -+ idx[i]++; -+ if (idx[i] < n) { -+ int64_t dts; -+ dts = av_rescale_q(st->index_entries[idx[i]].timestamp / -+ FFMAX(ast->sample_size, 1), -+ st->time_base, AV_TIME_BASE_Q); -+ min_dts = FFMIN(min_dts, dts); -+ min_pos = FFMIN(min_pos, st->index_entries[idx[i]].pos); -+ } -+ } -+ for (i = 0; i < s->nb_streams; i++) { -+ AVStream *st = s->streams[i]; -+ AVIStream *ast = st->priv_data; -+ -+ if (idx[i] && min_dts != INT64_MAX / 2) { -+ int64_t dts; -+ dts = av_rescale_q(st->index_entries[idx[i] - 1].timestamp / -+ FFMAX(ast->sample_size, 1), -+ st->time_base, AV_TIME_BASE_Q); -+ max_dts = FFMAX(max_dts, dts); -+ max_buffer = FFMAX(max_buffer, -+ av_rescale(dts - min_dts, -+ st->codec->bit_rate, -+ AV_TIME_BASE)); -+ } -+ } -+ if (max_dts - min_dts > 2 * AV_TIME_BASE || -+ max_buffer > 1024 * 1024 * 8 * 8) { -+ av_free(idx); -+ return 1; -+ } -+ } -+ av_free(idx); -+ return 0; -+} -+ - static int guess_ni_flag(AVFormatContext *s){ - int i; - int64_t last_start=0; -@@ -1232,7 +1294,11 @@ - first_end= st->index_entries[n-1].pos; - } - avio_seek(s->pb, oldpos, SEEK_SET); -- return last_start > first_end; -+ -+ if (last_start > first_end) -+ return 1; -+ -+ return check_stream_max_drift(s); - } - - static int avi_load_index(AVFormatContext *s) -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavformat/isom.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavformat/isom.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavformat/isom.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavformat/isom.c 2014-06-28 17:33:25.563523588 +0200 -@@ -259,6 +259,7 @@ - { AV_CODEC_ID_PCM_MULAW, MKTAG('u', 'l', 'a', 'w') }, - { AV_CODEC_ID_PCM_S16BE, MKTAG('t', 'w', 'o', 's') }, - { AV_CODEC_ID_PCM_S16LE, MKTAG('s', 'o', 'w', 't') }, -+ { AV_CODEC_ID_PCM_S16BE, MKTAG('l', 'p', 'c', 'm') }, - { AV_CODEC_ID_PCM_S16LE, MKTAG('l', 'p', 'c', 'm') }, - { AV_CODEC_ID_PCM_S24BE, MKTAG('i', 'n', '2', '4') }, - { AV_CODEC_ID_PCM_S24LE, MKTAG('i', 'n', '2', '4') }, -@@ -342,7 +343,7 @@ - memset(to, 0, 4); - /* is it the mangled iso code? */ - /* see http://www.geocities.com/xhelmboyx/quicktime/formats/mp4-layout.txt */ -- if (code > 138) { -+ if (code >= 0x400 && code != 0x7fff) { - for (i = 2; i >= 0; i--) { - to[i] = 0x60 + (code & 0x1f); - code >>= 5; -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavformat/Makefile gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavformat/Makefile ---- gst-libav-1.2.4/gst-libs/ext/libav/libavformat/Makefile 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavformat/Makefile 2014-06-28 17:33:25.563523588 +0200 -@@ -203,6 +203,7 @@ - oggparsedirac.o \ - oggparseflac.o \ - oggparseogm.o \ -+ oggparseopus.o \ - oggparseskeleton.o \ - oggparsespeex.o \ - oggparsetheora.o \ -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavformat/matroska.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavformat/matroska.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavformat/matroska.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavformat/matroska.c 2014-06-28 17:33:25.563523588 +0200 -@@ -32,6 +32,7 @@ - {"A_MPEG/L2" , AV_CODEC_ID_MP2}, - {"A_MPEG/L1" , AV_CODEC_ID_MP2}, - {"A_MPEG/L3" , AV_CODEC_ID_MP3}, -+ {"A_OPUS" , AV_CODEC_ID_OPUS}, - {"A_PCM/FLOAT/IEEE" , AV_CODEC_ID_PCM_F32LE}, - {"A_PCM/FLOAT/IEEE" , AV_CODEC_ID_PCM_F64LE}, - {"A_PCM/INT/BIG" , AV_CODEC_ID_PCM_S16BE}, -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavformat/matroskaenc.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavformat/matroskaenc.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavformat/matroskaenc.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavformat/matroskaenc.c 2014-06-28 17:33:25.563523588 +0200 -@@ -94,6 +94,8 @@ - AVPacket cur_audio_pkt; - - int have_attachments; -+ -+ int64_t ts_offset; - } MatroskaMuxContext; - - -@@ -776,7 +778,8 @@ - end_ebml_master(s->pb, targets); - - while ((t = av_dict_get(m, "", t, AV_DICT_IGNORE_SUFFIX))) -- if (av_strcasecmp(t->key, "title")) -+ if (av_strcasecmp(t->key, "title") && -+ av_strcasecmp(t->key, "encoding_tool")) - mkv_write_simpletag(s->pb, t); - - end_ebml_master(s->pb, tag); -@@ -936,7 +939,10 @@ - segment_uid[i] = av_lfg_get(&lfg); - - put_ebml_string(pb, MATROSKA_ID_MUXINGAPP , LIBAVFORMAT_IDENT); -- put_ebml_string(pb, MATROSKA_ID_WRITINGAPP, LIBAVFORMAT_IDENT); -+ if ((tag = av_dict_get(s->metadata, "encoding_tool", NULL, 0))) -+ put_ebml_string(pb, MATROSKA_ID_WRITINGAPP, tag->value); -+ else -+ put_ebml_string(pb, MATROSKA_ID_WRITINGAPP, LIBAVFORMAT_IDENT); - put_ebml_binary(pb, MATROSKA_ID_SEGMENTUID, segment_uid, 16); - } - -@@ -1199,9 +1205,18 @@ - AVIOContext *pb = s->pb->seekable ? s->pb : mkv->dyn_bc; - AVCodecContext *codec = s->streams[pkt->stream_index]->codec; - int ret, keyframe = !!(pkt->flags & AV_PKT_FLAG_KEY); -- int64_t ts = mkv->tracks[pkt->stream_index].write_dts ? pkt->dts : pkt->pts; -+ int64_t ts; - int cluster_size = avio_tell(pb) - (s->pb->seekable ? mkv->cluster_pos : 0); - -+ if (pkt->dts < 0 && !mkv->ts_offset) -+ mkv->ts_offset = -pkt->dts; -+ -+ pkt->dts += mkv->ts_offset; -+ if (pkt->pts != AV_NOPTS_VALUE) -+ pkt->pts += mkv->ts_offset; -+ -+ ts = mkv->tracks[pkt->stream_index].write_dts ? pkt->dts : pkt->pts; -+ - // start a new cluster every 5 MB or 5 sec, or 32k / 1 sec for streaming or - // after 4k and on a keyframe - if (mkv->cluster_pos && -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavformat/mov.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavformat/mov.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavformat/mov.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavformat/mov.c 2014-06-28 17:33:25.563523588 +0200 -@@ -300,7 +300,7 @@ - if (parse) - parse(c, pb, str_size, key); - else { -- if (data_type == 3 || (data_type == 0 && langcode < 0x800)) { // MAC Encoded -+ if (data_type == 3 || (data_type == 0 && (langcode < 0x400 || langcode == 0x7fff))) { // MAC Encoded - mov_read_mac_string(c, pb, str_size, str, sizeof(str)); - } else { - avio_read(pb, str, str_size); -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavformat/movenc.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavformat/movenc.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavformat/movenc.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavformat/movenc.c 2014-06-28 17:33:25.563523588 +0200 -@@ -1806,7 +1806,8 @@ - mov_write_string_metadata(s, pb, "\251wrt", "composer" , 1); - mov_write_string_metadata(s, pb, "\251alb", "album" , 1); - mov_write_string_metadata(s, pb, "\251day", "date" , 1); -- mov_write_string_tag(pb, "\251too", LIBAVFORMAT_IDENT, 0, 1); -+ if (!mov_write_string_metadata(s, pb, "\251too", "encoding_tool", 1)) -+ mov_write_string_tag(pb, "\251too", LIBAVFORMAT_IDENT, 0, 1); - mov_write_string_metadata(s, pb, "\251cmt", "comment" , 1); - mov_write_string_metadata(s, pb, "\251gen", "genre" , 1); - mov_write_string_metadata(s, pb, "\251cpy", "copyright", 1); -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavformat/mp3enc.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavformat/mp3enc.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavformat/mp3enc.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavformat/mp3enc.c 2014-06-28 17:33:25.566856908 +0200 -@@ -118,8 +118,11 @@ - MPADecodeHeader mpah; - int srate_idx, i, channels; - int bitrate_idx; -+ int best_bitrate_idx; -+ int best_bitrate_error = INT_MAX; - int xing_offset; - int ver = 0; -+ int lsf, bytes_needed; - - if (!s->pb->seekable) - return; -@@ -149,21 +152,51 @@ - return; - } - -- /* 64 kbps frame, should be large enough */ -- bitrate_idx = (ver == 3) ? 5 : 8; -- - /* dummy MPEG audio header */ - header = 0xff << 24; // sync - header |= (0x7 << 5 | ver << 3 | 0x1 << 1 | 0x1) << 16; // sync/audio-version/layer 3/no crc*/ -- header |= (bitrate_idx << 4 | srate_idx << 2) << 8; -+ header |= (srate_idx << 2) << 8; - header |= channels << 6; -+ -+ lsf = !((header & (1 << 20) && header & (1 << 19))); -+ -+ xing_offset = xing_offtbl[ver != 3][channels == 1]; -+ bytes_needed = 4 // header -+ + xing_offset -+ + 4 // xing tag -+ + 4 // frames/size/toc flags -+ + 4 // frames -+ + 4 // size -+ + XING_TOC_SIZE; // toc -+ -+ for (bitrate_idx = 1; bitrate_idx < 15; bitrate_idx++) { -+ int bit_rate = 1000 * avpriv_mpa_bitrate_tab[lsf][3 - 1][bitrate_idx]; -+ int error = FFABS(bit_rate - codec->bit_rate); -+ -+ if (error < best_bitrate_error){ -+ best_bitrate_error = error; -+ best_bitrate_idx = bitrate_idx; -+ } -+ } -+ -+ for (bitrate_idx = best_bitrate_idx; bitrate_idx < 15; bitrate_idx++) { -+ int32_t mask = bitrate_idx << (4 + 8); -+ header |= mask; -+ -+ avpriv_mpegaudio_decode_header(&mpah, header); -+ -+ if (bytes_needed <= mpah.frame_size) -+ break; -+ -+ header &= ~mask; -+ } -+ - avio_wb32(s->pb, header); - - avpriv_mpegaudio_decode_header(&mpah, header); - - av_assert0(mpah.frame_size >= XING_MAX_SIZE); - -- xing_offset = xing_offtbl[ver != 3][codec->channels == 1]; - ffio_fill(s->pb, 0, xing_offset); - mp3->xing_offset = avio_tell(s->pb); - ffio_wfourcc(s->pb, "Xing"); -@@ -179,8 +212,7 @@ - for (i = 0; i < XING_TOC_SIZE; i++) - avio_w8(s->pb, 255 * i / XING_TOC_SIZE); - -- mpah.frame_size -= 4 + xing_offset + 4 + 4 + 4 + 4 + XING_TOC_SIZE; -- ffio_fill(s->pb, 0, mpah.frame_size); -+ ffio_fill(s->pb, 0, mpah.frame_size - bytes_needed); - } - - /* -@@ -219,13 +251,16 @@ - - if (mp3->xing_offset && pkt->size >= 4) { - MPADecodeHeader c; -+ uint32_t h; - -- 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; -+ 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 -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavformat/oggdec.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavformat/oggdec.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavformat/oggdec.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavformat/oggdec.c 2014-06-28 17:33:25.566856908 +0200 -@@ -46,6 +46,7 @@ - &ff_theora_codec, - &ff_flac_codec, - &ff_celt_codec, -+ &ff_opus_codec, - &ff_old_dirac_codec, - &ff_old_flac_codec, - &ff_ogm_video_codec, -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavformat/oggdec.h gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavformat/oggdec.h ---- gst-libav-1.2.4/gst-libs/ext/libav/libavformat/oggdec.h 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavformat/oggdec.h 2014-06-28 17:33:25.566856908 +0200 -@@ -116,6 +116,7 @@ - extern const struct ogg_codec ff_ogm_video_codec; - extern const struct ogg_codec ff_old_dirac_codec; - extern const struct ogg_codec ff_old_flac_codec; -+extern const struct ogg_codec ff_opus_codec; - extern const struct ogg_codec ff_skeleton_codec; - extern const struct ogg_codec ff_speex_codec; - extern const struct ogg_codec ff_theora_codec; -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavformat/oggparseopus.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavformat/oggparseopus.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavformat/oggparseopus.c 1970-01-01 01:00:00.000000000 +0100 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavformat/oggparseopus.c 2014-06-28 17:33:25.566856908 +0200 -@@ -0,0 +1,142 @@ -+/* -+ * Opus parser for Ogg -+ * Copyright (c) 2012 Nicolas George -+ * -+ * This file is part of Libav. -+ * -+ * Libav is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Lesser General Public -+ * License as published by the Free Software Foundation; either -+ * version 2.1 of the License, or (at your option) any later version. -+ * -+ * Libav is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public -+ * License along with Libav; if not, write to the Free Software -+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -+ */ -+ -+#include <string.h> -+ -+#include "libavutil/intreadwrite.h" -+#include "avformat.h" -+#include "internal.h" -+#include "oggdec.h" -+ -+struct oggopus_private { -+ int need_comments; -+ unsigned pre_skip; -+ int64_t cur_dts; -+}; -+ -+#define OPUS_HEAD_SIZE 19 -+ -+static int opus_header(AVFormatContext *avf, int idx) -+{ -+ struct ogg *ogg = avf->priv_data; -+ struct ogg_stream *os = &ogg->streams[idx]; -+ AVStream *st = avf->streams[idx]; -+ struct oggopus_private *priv = os->private; -+ uint8_t *packet = os->buf + os->pstart; -+ uint8_t *extradata; -+ -+ if (!priv) { -+ priv = os->private = av_mallocz(sizeof(*priv)); -+ if (!priv) -+ return AVERROR(ENOMEM); -+ } -+ if (os->flags & OGG_FLAG_BOS) { -+ if (os->psize < OPUS_HEAD_SIZE || (AV_RL8(packet + 8) & 0xF0) != 0) -+ return AVERROR_INVALIDDATA; -+ -+ st->codec->codec_type = AVMEDIA_TYPE_AUDIO; -+ st->codec->codec_id = AV_CODEC_ID_OPUS; -+ st->codec->channels = AV_RL8(packet + 9); -+ priv->pre_skip = AV_RL16(packet + 10); -+ -+ extradata = av_malloc(os->psize + FF_INPUT_BUFFER_PADDING_SIZE); -+ if (!extradata) -+ return AVERROR(ENOMEM); -+ -+ memcpy(extradata, packet, os->psize); -+ st->codec->extradata = extradata; -+ st->codec->extradata_size = os->psize; -+ -+ st->codec->sample_rate = 48000; -+ avpriv_set_pts_info(st, 64, 1, 48000); -+ priv->need_comments = 1; -+ return 1; -+ } -+ -+ if (priv->need_comments) { -+ if (os->psize < 8 || memcmp(packet, "OpusTags", 8)) -+ return AVERROR_INVALIDDATA; -+ ff_vorbis_comment(avf, &st->metadata, packet + 8, os->psize - 8); -+ priv->need_comments--; -+ return 1; -+ } -+ -+ return 0; -+} -+ -+static int opus_packet(AVFormatContext *avf, int idx) -+{ -+ struct ogg *ogg = avf->priv_data; -+ struct ogg_stream *os = &ogg->streams[idx]; -+ AVStream *st = avf->streams[idx]; -+ struct oggopus_private *priv = os->private; -+ uint8_t *packet = os->buf + os->pstart; -+ unsigned toc, toc_config, toc_count, frame_size, nb_frames = 1; -+ -+ if (!os->psize) -+ return AVERROR_INVALIDDATA; -+ -+ toc = *packet; -+ toc_config = toc >> 3; -+ toc_count = toc & 3; -+ frame_size = toc_config < 12 ? FFMAX(480, 960 * (toc_config & 3)) : -+ toc_config < 16 ? 480 << (toc_config & 1) : -+ 120 << (toc_config & 3); -+ if (toc_count == 3) { -+ if (os->psize < 2) -+ return AVERROR_INVALIDDATA; -+ nb_frames = packet[1] & 0x3F; -+ } else if (toc_count) { -+ nb_frames = 2; -+ } -+ -+ os->pduration = frame_size * nb_frames; -+ if (os->lastpts != AV_NOPTS_VALUE) { -+ if (st->start_time == AV_NOPTS_VALUE) -+ st->start_time = os->lastpts; -+ priv->cur_dts = os->lastdts = os->lastpts -= priv->pre_skip; -+ } -+ -+ priv->cur_dts += os->pduration; -+ if ((os->flags & OGG_FLAG_EOS)) { -+ int64_t skip = priv->cur_dts - os->granule + priv->pre_skip; -+ skip = FFMIN(skip, os->pduration); -+ if (skip > 0) { -+ os->pduration = skip < os->pduration ? os->pduration - skip : 1; -+ av_log(avf, AV_LOG_WARNING, -+ "Last packet is truncated to %d (because of unimplemented end trim support).\n", -+ os->pduration); -+ return AVERROR_PATCHWELCOME; -+ } -+ } -+ -+ return 0; -+} -+ -+const struct ogg_codec ff_opus_codec = { -+ .name = "Opus", -+ .magic = "OpusHead", -+ .magicsize = 8, -+ .header = opus_header, -+ .packet = opus_packet, -+ .granule_is_start = 1, -+ .nb_header = 1, -+}; -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavformat/rtmpproto.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavformat/rtmpproto.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavformat/rtmpproto.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavformat/rtmpproto.c 2014-06-28 17:33:25.566856908 +0200 -@@ -2443,7 +2443,7 @@ - if ((ret = gen_connect(s, rt)) < 0) - goto fail; - } else { -- if (read_connect(s, s->priv_data) < 0) -+ if ((ret = read_connect(s, s->priv_data)) < 0) - goto fail; - rt->is_input = 1; - } -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavformat/version.h gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavformat/version.h ---- gst-libav-1.2.4/gst-libs/ext/libav/libavformat/version.h 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavformat/version.h 2014-06-28 17:33:25.566856908 +0200 -@@ -31,7 +31,7 @@ - - #define LIBAVFORMAT_VERSION_MAJOR 54 - #define LIBAVFORMAT_VERSION_MINOR 20 --#define LIBAVFORMAT_VERSION_MICRO 3 -+#define LIBAVFORMAT_VERSION_MICRO 4 - - #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ - LIBAVFORMAT_VERSION_MINOR, \ -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavresample/resample.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavresample/resample.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavresample/resample.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavresample/resample.c 2014-06-28 17:33:25.566856908 +0200 -@@ -46,6 +46,7 @@ - void (*resample_one)(struct ResampleContext *c, int no_filter, void *dst0, - int dst_index, const void *src0, int src_size, - int index, int frac); -+ int padding_size; - }; - - -@@ -211,6 +212,7 @@ - goto error; - c->ideal_dst_incr = c->dst_incr; - -+ c->padding_size = (c->filter_length - 1) / 2; - c->index = -phase_count * ((c->filter_length - 1) / 2); - c->frac = 0; - -@@ -461,8 +463,10 @@ - - int avresample_get_delay(AVAudioResampleContext *avr) - { -+ ResampleContext *c = avr->resample; -+ - if (!avr->resample_needed || !avr->resample) - return 0; - -- return avr->resample->buffer->nb_samples; -+ return FFMAX(c->buffer->nb_samples - c->padding_size, 0); - } -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavresample/utils.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavresample/utils.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavresample/utils.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavresample/utils.c 2014-06-28 17:33:25.566856908 +0200 -@@ -117,7 +117,7 @@ - } - if (avr->resample_needed) { - avr->resample_out_buffer = ff_audio_data_alloc(avr->out_channels, -- 0, avr->internal_sample_fmt, -+ 1024, avr->internal_sample_fmt, - "resample_out_buffer"); - if (!avr->resample_out_buffer) { - ret = AVERROR(EINVAL); -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libavutil/lzo.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavutil/lzo.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libavutil/lzo.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libavutil/lzo.c 2014-06-28 17:33:25.566856908 +0200 -@@ -80,6 +80,10 @@ - { - 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 @@ - /** - * @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_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; -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/libswscale/utils.c gst-libav-1.2.4-9.14/gst-libs/ext/libav/libswscale/utils.c ---- gst-libav-1.2.4/gst-libs/ext/libav/libswscale/utils.c 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/libswscale/utils.c 2014-06-28 17:33:25.566856908 +0200 -@@ -316,7 +316,7 @@ - - xDstInSrc = xInc - 0x10000; - for (i = 0; i < dstW; i++) { -- int xx = (xDstInSrc - ((filterSize - 2) << 16)) / (1 << 17); -+ int xx = (xDstInSrc - ((int64_t)(filterSize - 2) << 16)) / (1 << 17); - int j; - (*filterPos)[i] = xx; - for (j = 0; j < filterSize; j++) { -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/RELEASE gst-libav-1.2.4-9.14/gst-libs/ext/libav/RELEASE ---- gst-libav-1.2.4/gst-libs/ext/libav/RELEASE 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/RELEASE 2014-06-28 17:33:25.566856908 +0200 -@@ -1 +1 @@ --9.12 -+9.14 -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/tests/ref/lavf/mkv gst-libav-1.2.4-9.14/gst-libs/ext/libav/tests/ref/lavf/mkv ---- gst-libav-1.2.4/gst-libs/ext/libav/tests/ref/lavf/mkv 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/tests/ref/lavf/mkv 2014-06-28 17:33:25.566856908 +0200 -@@ -1,3 +1,3 @@ --2c6fbc2c818c849e77702141294d775d *./tests/data/lavf/lavf.mkv -+af61b3dcd6a9d2608c2368136c96b437 *./tests/data/lavf/lavf.mkv - 320262 ./tests/data/lavf/lavf.mkv - ./tests/data/lavf/lavf.mkv CRC=0xd86284dd -diff -u -Nr gst-libav-1.2.4/gst-libs/ext/libav/tests/ref/seek/lavf-mkv gst-libav-1.2.4-9.14/gst-libs/ext/libav/tests/ref/seek/lavf-mkv ---- gst-libav-1.2.4/gst-libs/ext/libav/tests/ref/seek/lavf-mkv 2014-04-18 12:30:33.000000000 +0200 -+++ gst-libav-1.2.4-9.14/gst-libs/ext/libav/tests/ref/seek/lavf-mkv 2014-06-28 17:33:25.566856908 +0200 -@@ -1,53 +1,53 @@ --ret: 0 st: 1 flags:1 dts:-0.011000 pts:-0.011000 pos: 512 size: 208 --ret: 0 st:-1 flags:0 ts:-1.000000 - ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 512 size: 208 -+ret: 0 st:-1 flags:0 ts:-1.000000 -+ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 728 size: 27837 - ret: 0 st:-1 flags:1 ts: 1.894167 --ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 292150 size: 27834 -+ret: 0 st: 0 flags:1 dts: 0.971000 pts: 0.971000 pos: 292150 size: 27834 - ret: 0 st: 0 flags:0 ts: 0.788000 --ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 292150 size: 27834 -+ret: 0 st: 0 flags:1 dts: 0.971000 pts: 0.971000 pos: 292150 size: 27834 - ret: 0 st: 0 flags:1 ts:-0.317000 --ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 512 size: 208 -+ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 728 size: 27837 - ret: 0 st: 1 flags:0 ts: 2.577000 - ret:-EOF - ret: 0 st: 1 flags:1 ts: 1.471000 --ret: 0 st: 1 flags:1 dts: 0.982000 pts: 0.982000 pos: 319991 size: 209 -+ret: 0 st: 1 flags:1 dts: 0.993000 pts: 0.993000 pos: 319991 size: 209 - ret: 0 st:-1 flags:0 ts: 0.365002 --ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 146703 size: 27925 -+ret: 0 st: 0 flags:1 dts: 0.491000 pts: 0.491000 pos: 146703 size: 27925 - ret: 0 st:-1 flags:1 ts:-0.740831 --ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 512 size: 208 -+ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 728 size: 27837 - ret: 0 st: 0 flags:0 ts: 2.153000 - ret:-EOF - ret: 0 st: 0 flags:1 ts: 1.048000 --ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 292150 size: 27834 -+ret: 0 st: 0 flags:1 dts: 0.971000 pts: 0.971000 pos: 292150 size: 27834 - ret: 0 st: 1 flags:0 ts:-0.058000 --ret: 0 st: 1 flags:1 dts: 0.015000 pts: 0.015000 pos: 512 size: 208 -+ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 512 size: 208 - ret: 0 st: 1 flags:1 ts: 2.836000 --ret: 0 st: 1 flags:1 dts: 0.982000 pts: 0.982000 pos: 319991 size: 209 -+ret: 0 st: 1 flags:1 dts: 0.993000 pts: 0.993000 pos: 319991 size: 209 - ret: 0 st:-1 flags:0 ts: 1.730004 - ret:-EOF - ret: 0 st:-1 flags:1 ts: 0.624171 --ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 146703 size: 27925 -+ret: 0 st: 0 flags:1 dts: 0.491000 pts: 0.491000 pos: 146703 size: 27925 - ret: 0 st: 0 flags:0 ts:-0.482000 --ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 512 size: 208 -+ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 728 size: 27837 - ret: 0 st: 0 flags:1 ts: 2.413000 --ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 292150 size: 27834 -+ret: 0 st: 0 flags:1 dts: 0.971000 pts: 0.971000 pos: 292150 size: 27834 - ret: 0 st: 1 flags:0 ts: 1.307000 - ret:-EOF - ret: 0 st: 1 flags:1 ts: 0.201000 --ret: 0 st: 1 flags:1 dts: 0.015000 pts: 0.015000 pos: 512 size: 208 --ret: 0 st:-1 flags:0 ts:-0.904994 - ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 512 size: 208 -+ret: 0 st:-1 flags:0 ts:-0.904994 -+ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 728 size: 27837 - ret: 0 st:-1 flags:1 ts: 1.989173 --ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 292150 size: 27834 -+ret: 0 st: 0 flags:1 dts: 0.971000 pts: 0.971000 pos: 292150 size: 27834 - ret: 0 st: 0 flags:0 ts: 0.883000 --ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 292150 size: 27834 -+ret: 0 st: 0 flags:1 dts: 0.971000 pts: 0.971000 pos: 292150 size: 27834 - ret: 0 st: 0 flags:1 ts:-0.222000 --ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 512 size: 208 -+ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 728 size: 27837 - ret: 0 st: 1 flags:0 ts: 2.672000 - ret:-EOF - ret: 0 st: 1 flags:1 ts: 1.566000 --ret: 0 st: 1 flags:1 dts: 0.982000 pts: 0.982000 pos: 319991 size: 209 -+ret: 0 st: 1 flags:1 dts: 0.993000 pts: 0.993000 pos: 319991 size: 209 - ret: 0 st:-1 flags:0 ts: 0.460008 --ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 146703 size: 27925 -+ret: 0 st: 0 flags:1 dts: 0.491000 pts: 0.491000 pos: 146703 size: 27925 - ret: 0 st:-1 flags:1 ts:-0.645825 --ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 512 size: 208 -+ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 728 size: 27837 diff --git a/extra/gst-plugins-base/PKGBUILD b/extra/gst-plugins-base/PKGBUILD index d0691fcda..e623dd82e 100644 --- a/extra/gst-plugins-base/PKGBUILD +++ b/extra/gst-plugins-base/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 211610 2014-04-21 16:24:05Z jgc $ +# $Id: PKGBUILD 218235 2014-07-27 18:40:18Z heftig $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgbase=gst-plugins-base pkgname=('gst-plugins-base-libs' 'gst-plugins-base') -pkgver=1.2.4 +pkgver=1.4.0 pkgrel=1 pkgdesc="GStreamer Multimedia Framework Base Plugins" arch=('i686' 'x86_64') @@ -12,7 +12,7 @@ makedepends=('pkgconfig' 'gstreamer' 'orc' 'libxv' 'alsa-lib' 'cdparanoia' 'libv options=(!emptydirs) url="http://gstreamer.freedesktop.org/" source=(${url}/src/$pkgbase/$pkgbase-${pkgver}.tar.xz) -sha256sums=('4d6273dc3f5a94bcc53ccfe0711cfddd49e31371d1136bf62fa1ecc604fc6550') +sha256sums=('5daed4b983b64e4e3fbe9cd29063e4302812cd03ba685a15b06a790911d04c1e') build() { cd $pkgbase-$pkgver diff --git a/extra/gst-plugins-good/PKGBUILD b/extra/gst-plugins-good/PKGBUILD index 30e121c6e..555377157 100644 --- a/extra/gst-plugins-good/PKGBUILD +++ b/extra/gst-plugins-good/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 211612 2014-04-21 16:38:07Z jgc $ +# $Id: PKGBUILD 218236 2014-07-27 18:40:19Z heftig $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=gst-plugins-good -pkgver=1.2.4 +pkgver=1.4.0 pkgrel=1 pkgdesc="GStreamer Multimedia Framework Good Plugins" arch=('i686' 'x86_64') @@ -12,7 +12,7 @@ depends=('libpulse' 'jack' 'libsoup' 'gst-plugins-base-libs' 'wavpack' 'aalib' ' makedepends=('gstreamer' 'speex' 'flac' 'libraw1394' 'python' 'gtk-doc') options=(!emptydirs) source=(${url}/src/$pkgname/$pkgname-$pkgver.tar.xz) -sha256sums=('c9c90368393c2e5e78387e95c02ce7b19f48e793bba6d8547f2c4b51c6f420d3') +sha256sums=('48a62e7987fffa289a091dfc8ccc80b401d110632b8fc1adce5b82fc092f2685') build() { cd $pkgname-$pkgver diff --git a/extra/gst-plugins-ugly/PKGBUILD b/extra/gst-plugins-ugly/PKGBUILD index 138219b9d..6d264a677 100644 --- a/extra/gst-plugins-ugly/PKGBUILD +++ b/extra/gst-plugins-ugly/PKGBUILD @@ -1,18 +1,18 @@ -# $Id: PKGBUILD 211616 2014-04-21 16:57:39Z jgc $ +# $Id: PKGBUILD 218237 2014-07-27 18:40:20Z heftig $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=gst-plugins-ugly -pkgver=1.2.4 +pkgver=1.4.0 pkgrel=1 pkgdesc="GStreamer Multimedia Framework Ugly Plugins" arch=('i686' 'x86_64') license=('LGPL') url="http://gstreamer.freedesktop.org/" depends=('gst-plugins-base-libs' 'libdvdread' 'lame' 'libmpeg2' 'a52dec' 'libmad' 'libsidplay' 'libcdio' 'x264' 'opencore-amr') -makedepends=('python' 'gtk-doc') +makedepends=('python' 'gtk-doc' 'x264-dev') options=(!emptydirs) source=(${url}/src/$pkgname/$pkgname-$pkgver.tar.xz) -sha256sums=('4ef6f76a47d57b8385d457c7b620b4c28fc041ab1d7c2e3e2f5f05b12b988ea8') +sha256sums=('5314bb60f13d1a7b9c6317df73813af5f3f15a62c7c186b816b0024b5c61744d') build() { cd $pkgname-$pkgver diff --git a/extra/gstreamer-vaapi/PKGBUILD b/extra/gstreamer-vaapi/PKGBUILD index 54d7e808e..052c38d21 100644 --- a/extra/gstreamer-vaapi/PKGBUILD +++ b/extra/gstreamer-vaapi/PKGBUILD @@ -1,36 +1,35 @@ -# $Id: PKGBUILD 204869 2014-01-29 19:22:30Z heftig $ +# $Id: PKGBUILD 218239 2014-07-27 18:40:23Z heftig $ # Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> pkgbase=gstreamer-vaapi pkgname=(gst-vaapi gstreamer0.10-vaapi) -pkgver=0.5.8 -pkgrel=1 +pkgver=0.5.9pre +pkgrel=2 pkgdesc="GStreamer Multimedia Framework VA Plugins" arch=(i686 x86_64) license=(LGPL) url="http://www.freedesktop.org/software/vaapi/releases/gstreamer-vaapi/" makedepends=(gst-plugins-base gst-plugins-bad gstreamer0.10-base-plugins gstreamer0.10-bad-plugins - libva libxrandr) + libva libxrandr libvpx git) options=(!emptydirs) -#source=(git://gitorious.org/vaapi/${pkgbase}.git#tag=$pkgver) -source=($url/$pkgbase-${pkgver}.tar.bz2 - https://gitorious.org/vaapi/gstreamer-videoutils/raw/f56f0ca70eaa39dc8f66f61e991094b385ed71ff:gst-libs/gst/video/gstvideoencoder.c - https://gitorious.org/vaapi/gstreamer-videoutils/raw/f56f0ca70eaa39dc8f66f61e991094b385ed71ff:gst-libs/gst/video/gstvideoencoder.h) -sha1sums=('b0756a5941e3ad2d33a94a550eb9fe3ade0c07e6' - 'd1edee8caacd6d0868b95fd80c8aab8018105178' - 'd3f198da32cfe5c305818ca93a941ac5198efa1c') +source=(git://gitorious.org/vaapi/${pkgbase}.git#commit=5ffa82b) +sha1sums=('SKIP') prepare() { mkdir build build-0.10 - # Fix files not in tarball - cp gstvideoencoder.{c,h} $pkgbase-$pkgver/ext/videoutils/gst-libs/gst/video + cd $pkgbase + sed -i 's/^1.3)/1.4)/' configure.ac + NO_CONFIGURE=1 ./autogen.sh } _build() ( cd "$1"; shift - ../$pkgbase-$pkgver/configure --prefix=/usr --disable-static "$@" + ../$pkgbase/configure --prefix=/usr \ + --disable-static \ + --disable-builtin-libvpx \ + "$@" sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool make ) @@ -46,11 +45,11 @@ check() { } package_gst-vaapi() { - depends=(gst-plugins-base gst-plugins-bad libva libxrandr) + depends=(gst-plugins-base gst-plugins-bad libva libxrandr libvpx) make -C build DESTDIR="$pkgdir" install } package_gstreamer0.10-vaapi() { - depends=(gstreamer0.10-base-plugins gstreamer0.10-bad-plugins libva libxrandr) + depends=(gstreamer0.10-base-plugins gstreamer0.10-bad-plugins libva libxrandr libvpx) make -C build-0.10 DESTDIR="$pkgdir" install } diff --git a/extra/gstreamer/PKGBUILD b/extra/gstreamer/PKGBUILD index 369ef08e8..3de2997a3 100644 --- a/extra/gstreamer/PKGBUILD +++ b/extra/gstreamer/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 211608 2014-04-21 16:17:25Z jgc $ +# $Id: PKGBUILD 218234 2014-07-27 18:40:17Z heftig $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=gstreamer -pkgver=1.2.4 +pkgver=1.4.0 pkgrel=1 pkgdesc="GStreamer Multimedia Framework" arch=('i686' 'x86_64') @@ -12,7 +12,7 @@ depends=('libxml2' 'glib2') optdepends=('sh: feedback script') makedepends=('intltool' 'pkgconfig' 'gtk-doc' 'gobject-introspection') source=(${url}/src/gstreamer/gstreamer-${pkgver}.tar.xz) -sha256sums=('1e7ca67a7870a82c9ed51d51d0008cdbc550c41d64cc3ff3f9a1c2fc311b4929') +sha256sums=('23c39fdc2b24f889b07cab0449825384fef7592a121e180729fd9025ec45c695') build() { cd "${srcdir}/gstreamer-${pkgver}" diff --git a/extra/libtasn1/PKGBUILD b/extra/libtasn1/PKGBUILD index 483ad364a..91304c69b 100644 --- a/extra/libtasn1/PKGBUILD +++ b/extra/libtasn1/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 213848 2014-05-30 13:20:34Z andyrtr $ +# $Id: PKGBUILD 218211 2014-07-27 08:27:31Z andyrtr $ # Maintainer: AndyRTR <andyrtr@archlinux.org> # Maintainer: Jan de Groot <jgc@archlinux.org> # Contributor: judd <jvinet@zeroflux.org> pkgname=libtasn1 -pkgver=3.6 +pkgver=4.0 pkgrel=1 pkgdesc="The ASN.1 library used in GNUTLS" arch=('i686' 'x86_64') @@ -13,7 +13,7 @@ url="http://www.gnu.org/software/libtasn1/" depends=('glibc' 'texinfo') install=libtasn1.install source=(http://ftp.gnu.org/gnu/libtasn1/${pkgname}-${pkgver}.tar.gz{,.sig}) -md5sums=('6ed38e161e11013054f2a2bb4c4da449' +md5sums=('d3d2d9bce3b6668b9827a9df52635be1' 'SKIP') build() { diff --git a/extra/xmlsec/PKGBUILD b/extra/xmlsec/PKGBUILD index c19a44b4b..9320beaf1 100644 --- a/extra/xmlsec/PKGBUILD +++ b/extra/xmlsec/PKGBUILD @@ -1,32 +1,32 @@ -# $Id: PKGBUILD 203598 2014-01-13 17:12:34Z andyrtr $ +# $Id: PKGBUILD 218215 2014-07-27 08:41:41Z andyrtr $ # Maintainer: AndyRTR <andyrtr@archlinux.org> # Contributor: Jan de Groot <jgc@archlinux.org> # Contributor: Hussam Al-Tayeb <ht990332@gmail.com> pkgname=xmlsec -pkgver=1.2.19 -pkgrel=2 +pkgver=1.2.20 +pkgrel=1 pkgdesc="XML Security Library is a C library based on LibXML2" license=('custom') -arch=(i686 x86_64) +arch=('i686' 'x86_64') url="http://www.aleksey.com/xmlsec/index.html" depends=('libxslt' 'openssl' 'gnutls' 'nss' 'libltdl') source=(http://www.aleksey.com/xmlsec/download/${pkgname}1-${pkgver}.tar.gz) -md5sums=('fe664ba5f01ebfaeb0ab5deeb0b2249e') +md5sums=('ce12af00283eb90d9281956524250d6e') build() { - cd ${srcdir}/${pkgname}1-${pkgver} + cd ${pkgname}1-${pkgver} ./configure --prefix=/usr --disable-static make } check() { - cd "$srcdir/${pkgname}1-$pkgver" + cd ${pkgname}1-$pkgver make -k check } package() { - cd ${srcdir}/${pkgname}1-${pkgver} + cd ${pkgname}1-${pkgver} make DESTDIR=${pkgdir} install install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname} install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ diff --git a/extra/xorg-twm/PKGBUILD b/extra/xorg-twm/PKGBUILD index 472672da3..8b6495b8e 100644 --- a/extra/xorg-twm/PKGBUILD +++ b/extra/xorg-twm/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 193939 2013-09-07 07:11:31Z lcarlier $ -# Maintainer: Alexander Baldeck <alexander@archlinux.org> +# $Id: PKGBUILD 218220 2014-07-27 10:14:40Z andyrtr $ +# Maintainer: AndyRTR <andyrtr@archlinux.org> # Contributor: Jan de Groot <jgc@archlinux.org> pkgname=xorg-twm pkgver=1.0.8 -pkgrel=1 +pkgrel=2 pkgdesc="Tab Window Manager for the X Window System" arch=(i686 x86_64) url="http://xorg.freedesktop.org/" @@ -12,19 +12,24 @@ backup=(etc/X11/twm/system.twmrc) license=('custom') depends=('libxmu') makedepends=('xorg-util-macros') +options=('!emptydirs') source=(${url}/releases/individual/app/twm-${pkgver}.tar.bz2) sha256sums=('7660352353d632127ff50390991706aa660b28a4ada816c2582ac02720722e44') build() { - cd "${srcdir}/twm-${pkgver}" + cd twm-${pkgver} ./configure --prefix=/usr make } package() { - cd "${srcdir}/twm-${pkgver}" + cd twm-${pkgver} make DESTDIR="${pkgdir}" install + + # fix config file location install -m755 -d "${pkgdir}/etc/X11/twm" install -m644 src/system.twmrc "${pkgdir}/etc/X11/twm/" + rm $pkgdir/usr/share/X11/twm/system.twmrc + install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING" } |