From: Michael Niedermayer Date: Sat, 18 May 2013 12:27:07 +0000 (+0200) Subject: Merge remote-tracking branch 'qatar/master' X-Git-Tag: android-x86-4.4-r1~3451 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=ed0aed09e8a19d255963c21c7aeda18cee3d9422;p=android-x86%2Fexternal-ffmpeg.git Merge remote-tracking branch 'qatar/master' * qatar/master: Escape 130 (RPL) decoder Conflicts: libavcodec/Makefile libavcodec/allcodecs.c libavcodec/codec_desc.c libavcodec/escape130.c libavcodec/version.h Merged-by: Michael Niedermayer --- ed0aed09e8a19d255963c21c7aeda18cee3d9422 diff --cc Changelog index cf0102e97a,49bb2363f3..49291761e5 --- a/Changelog +++ b/Changelog @@@ -1,151 -1,76 +1,152 @@@ Entries are sorted chronologically from oldest to youngest within each release, releases are sorted from youngest to oldest. -version 10: -- av_strnstr -- support ID3v2 tags in ASF files +version : +- curves filter - reference-counting for AVFrame and AVPacket data -- avconv now fails when input options are used for output file +- ffmpeg now fails when input options are used for output file or vice versa -- new avconv options -filter_script and -filter_complex_script, which allow a +- support for Monkey's Audio versions from 3.93 +- perms and aperms filters +- audio filtering support in ffplay +- 10% faster aac encoding on x86 and MIPS +- sine audio filter source +- WebP demuxing and decoding support +- new ffmpeg options -filter_script and -filter_complex_script, which allow a filtergraph description to be read from a file +- OpenCL support +- audio phaser filter +- separatefields filter +- libquvi demuxer - uniform options syntax across all filters +- telecine filter - new interlace filter -- JPEG 2000 decoder -- new asetpts filter (same as setpts, but for audio) -- new trim and atrim filters -- avconv -t and -ss (output-only) options are now sample-accurate when +- smptehdbars source +- inverse telecine filters (fieldmatch and decimate) +- colorbalance filter +- colorchannelmixer filter +- The matroska demuxer can now output proper verbatim ASS packets. It will + become the default at the next libavformat major bump. +- decent native animated GIF encoding +- asetrate filter +- interleave filter +- timeline editing with filters +- vidstabdetect and vidstabtransform filters for video stabilization using + the vid.stab library +- astats filter +- trim and atrim filters +- ffmpeg -t and -ss (output-only) options are now sample-accurate when transcoding audio - Matroska muxer can now put the index at the beginning of the file. -- avconv -deinterlace option removed, the yadif filter should be used instead +- extractplanes filter +- avectorscope filter +- ADPCM DTK decoder +- ADP demuxer +- RSD demuxer +- RedSpark demuxer +- ADPCM IMA Radical decoder +- zmq filters +- DCT denoiser filter (dctdnoiz) +- Wavelet denoiser filter ported from libmpcodecs as owdenoise (formerly "ow") - Apple Intermediate Codec decoder + - Escape 130 video decoder -version 9: -- av_basename and av_dirname -- adobe and limelight publisher authentication in RTMP +version 1.2: + - VDPAU hardware acceleration through normal hwaccel - SRTP support - - -version 9_beta3: -- ashowinfo audio filter +- Error diffusion dither in Swscale +- Chained Ogg support +- Theora Midstream reconfiguration support +- EVRC decoder +- audio fade filter +- filtering audio with unknown channel layout +- allpass, bass, bandpass, bandreject, biquad, equalizer, highpass, lowpass + and treble audio filter +- improved showspectrum filter, with multichannel support and sox-like colors +- histogram filter +- tee muxer +- il filter ported from libmpcodecs +- support ID3v2 tags in ASF files +- encrypted TTA stream decoding support +- RF64 support in WAV muxer +- noise filter ported from libmpcodecs +- Subtitles character encoding conversion +- blend filter +- stereo3d filter ported from libmpcodecs + + +version 1.1: + +- stream disposition information printing in ffprobe +- filter for loudness analysis following EBU R128 +- Opus encoder using libopus +- ffprobe -select_streams option +- Pinnacle TARGA CineWave YUV16 decoder +- TAK demuxer, decoder and parser +- DTS-HD demuxer +- remove -same_quant, it hasn't worked for years +- FFM2 support +- X-Face image encoder and decoder - 24-bit FLAC encoding -- audio volume filter -- deprecated the avconv -vol option. the volume filter is to be used instead. - multi-channel ALAC encoding up to 7.1 -- TAK demuxer, parser, and decoder -- adaptive frame-level multithreading for H.264 - - -version 9_beta2: - metadata (INFO tag) support in WAV muxer +- subtitles raw text decoder - support for building DLLs using MSVC -- remove avserver daemon mode +- LVF demuxer +- ffescape tool +- metadata (info chunk) support in CAF muxer +- field filter ported from libmpcodecs +- AVR demuxer +- geq filter ported from libmpcodecs +- remove ffserver daemon mode +- AST muxer/demuxer +- new expansion syntax for drawtext +- BRender PIX image decoder +- ffprobe -show_entries option +- ffprobe -sections option +- ADPCM IMA Dialogic decoder +- BRSTM demuxer +- animated GIF decoder and demuxer +- PVF demuxer +- subtitles filter +- IRCAM muxer/demuxer +- Paris Audio File demuxer +- Virtual concatenation demuxer +- VobSub demuxer +- JSON captions for TED talks decoding support +- SOX Resampler support in libswresample +- aselect filter +- SGI RLE 8-bit decoder +- Silicon Graphics Motion Video Compressor 1 & 2 decoder +- Silicon Graphics Movie demuxer +- apad filter +- Resolution & pixel format change support with multithreading for H.264 +- documentation split into per-component manuals +- pp (postproc) filter ported from MPlayer +- NIST Sphere demuxer +- MPL2, VPlayer, MPlayer, AQTitle, PJS and SubViewer v1 subtitles demuxers and decoders +- Sony Wave64 muxer +- adobe and limelight publisher authentication in RTMP +- data: URI scheme - support building on the Plan 9 operating system -- ffv1: support version 1.3 +- kerndeint filter ported from MPlayer +- histeq filter ported from VirtualDub +- Megalux Frame demuxer +- 012v decoder +- Improved AVC Intra decoding support -version 9_beta1: +version 1.0: -- XWD encoder and decoder -- Support for fragmentation in the mov/mp4 muxer -- ISMV (Smooth Streaming) muxer -- CDXL demuxer and decoder -- Apple ProRes encoder -- Sun Rasterfile Encoder -- remove libpostproc -- ID3v2 attached pictures reading and writing -- WMA Lossless decoder -- XBM encoder -- RealAudio Lossless decoder -- ZeroCodec decoder -- drop support for avconv without libavfilter -- add libavresample audio conversion library -- audio filters support in libavfilter and avconv -- add fps filter -- audio split filter -- audio mix filter -- avprobe output is now standard INI or JSON. The old format can still - be used with -of old. +- INI and flat output in ffprobe +- Scene detection in libavfilter - Indeo Audio decoder - channelsplit audio filter +- setnsamples audio filter +- atempo filter +- ffprobe -show_data option - RTMPT protocol support - iLBC encoding/decoding via libilbc - Microsoft Screen 1 decoder diff --cc libavcodec/avcodec.h index 7a0f9e49f0,b48ba0cce8..e959811dc9 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@@ -271,31 -269,7 +271,32 @@@ enum AVCodecID AV_CODEC_ID_MSS2, AV_CODEC_ID_VP9, AV_CODEC_ID_AIC, - AV_CODEC_ID_ESCAPE130, ++ AV_CODEC_ID_ESCAPE130_DEPRECATED, + + AV_CODEC_ID_BRENDER_PIX= MKBETAG('B','P','I','X'), + AV_CODEC_ID_Y41P = MKBETAG('Y','4','1','P'), + AV_CODEC_ID_ESCAPE130 = MKBETAG('E','1','3','0'), + AV_CODEC_ID_EXR = MKBETAG('0','E','X','R'), + AV_CODEC_ID_AVRP = MKBETAG('A','V','R','P'), + + AV_CODEC_ID_012V = MKBETAG('0','1','2','V'), + AV_CODEC_ID_G2M = MKBETAG( 0 ,'G','2','M'), + AV_CODEC_ID_AVUI = MKBETAG('A','V','U','I'), + AV_CODEC_ID_AYUV = MKBETAG('A','Y','U','V'), + AV_CODEC_ID_TARGA_Y216 = MKBETAG('T','2','1','6'), + AV_CODEC_ID_V308 = MKBETAG('V','3','0','8'), + AV_CODEC_ID_V408 = MKBETAG('V','4','0','8'), + AV_CODEC_ID_YUV4 = MKBETAG('Y','U','V','4'), + AV_CODEC_ID_SANM = MKBETAG('S','A','N','M'), + AV_CODEC_ID_PAF_VIDEO = MKBETAG('P','A','F','V'), + AV_CODEC_ID_AVRN = MKBETAG('A','V','R','n'), + AV_CODEC_ID_CPIA = MKBETAG('C','P','I','A'), + AV_CODEC_ID_XFACE = MKBETAG('X','F','A','C'), + AV_CODEC_ID_SGIRLE = MKBETAG('S','G','I','R'), + AV_CODEC_ID_MVC1 = MKBETAG('M','V','C','1'), + AV_CODEC_ID_MVC2 = MKBETAG('M','V','C','2'), + AV_CODEC_ID_SNOW = MKBETAG('S','N','O','W'), + AV_CODEC_ID_WEBP = MKBETAG('W','E','B','P'), /* various PCM "codecs" */ AV_CODEC_ID_FIRST_AUDIO = 0x10000, ///< A dummy id pointing at the start of audio codecs diff --cc libavcodec/escape130.c index d24af79cbe,3e3f7e1565..003cd1be51 --- a/libavcodec/escape130.c +++ b/libavcodec/escape130.c @@@ -1,10 -1,10 +1,10 @@@ /* - * Escape 130 Video Decoder + * Escape 130 video decoder * Copyright (C) 2008 Eli Friedman (eli.friedman gmail.com) * - * This file is part of Libav. + * This file is part of FFmpeg. * - * Libav is free software; you can redistribute it and/or + * FFmpeg 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. @@@ -39,15 -115,38 +115,38 @@@ const uint8_t chroma_vals[] = static av_cold int escape130_decode_init(AVCodecContext *avctx) { Escape130Context *s = avctx->priv_data; - avctx->pix_fmt = PIX_FMT_YUV420P; + avctx->pix_fmt = AV_PIX_FMT_YUV420P; - avcodec_get_frame_defaults(&s->frame); - if((avctx->width&1) || (avctx->height&1)){ - av_log(avctx, AV_LOG_ERROR, "Dimensions are not a multiple of the block size\n"); - return AVERROR(EINVAL); + if ((avctx->width & 1) || (avctx->height & 1)) { + av_log(avctx, AV_LOG_ERROR, + "Dimensions should be a multiple of two.\n"); + return AVERROR_INVALIDDATA; + } + + s->old_y_avg = av_malloc(avctx->width * avctx->height / 4); + s->buf1 = av_malloc(avctx->width * avctx->height * 3 / 2); + s->buf2 = av_malloc(avctx->width * avctx->height * 3 / 2); + if (!s->old_y_avg || !s->buf1 || !s->buf2) { + av_freep(&s->old_y_avg); + av_freep(&s->buf1); + av_freep(&s->buf2); + av_log(avctx, AV_LOG_ERROR, "Could not allocate buffer.\n"); + return AVERROR(ENOMEM); } - s->bases= av_malloc(avctx->width * avctx->height /4); + s->linesize[0] = avctx->width; + s->linesize[1] = + s->linesize[2] = avctx->width / 2; + + s->new_y = s->buf1; + s->new_u = s->new_y + avctx->width * avctx->height; + s->new_v = s->new_u + avctx->width * avctx->height / 4; + s->old_y = s->buf2; + s->old_u = s->old_y + avctx->width * avctx->height; + s->old_v = s->old_u + avctx->width * avctx->height / 4; + memset(s->old_y, 0, avctx->width * avctx->height); + memset(s->old_u, 0x10, avctx->width * avctx->height / 4); + memset(s->old_v, 0x10, avctx->width * avctx->height / 4); return 0; } @@@ -63,13 -162,10 +162,13 @@@ static av_cold int escape130_decode_clo return 0; } - static unsigned decode_skip_count(GetBitContext* gb) { - unsigned value; - // This function reads a maximum of 27 bits, - // which is within the padding space + static int decode_skip_count(GetBitContext* gb) + { + int value; + + if (get_bits_left(gb) < 1+3) + return -1; + value = get_bits1(gb); if (value) return 0; diff --cc libavcodec/utils.c index 25c6386aae,8a19393a26..2d5bd3b22c --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@@ -2385,18 -1560,6 +2385,19 @@@ av_cold int avcodec_close(AVCodecContex return 0; } +static enum AVCodecID remap_deprecated_codec_id(enum AVCodecID id) +{ + switch(id){ + //This is for future deprecatec codec ids, its empty since + //last major bump but will fill up again over time, please don't remove it +// case AV_CODEC_ID_UTVIDEO_DEPRECATED: return AV_CODEC_ID_UTVIDEO; + case AV_CODEC_ID_OPUS_DEPRECATED: return AV_CODEC_ID_OPUS; + case AV_CODEC_ID_TAK_DEPRECATED : return AV_CODEC_ID_TAK; ++ case AV_CODEC_ID_ESCAPE130_DEPRECATED : return AV_CODEC_ID_ESCAPE130; + default : return id; + } +} + static AVCodec *find_encdec(enum AVCodecID id, int encoder) { AVCodec *p, *experimental = NULL; diff --cc libavcodec/version.h index 360ebac924,065f71f53b..be9a580cfb --- a/libavcodec/version.h +++ b/libavcodec/version.h @@@ -26,11 -26,9 +26,11 @@@ * Libavcodec version macros. */ +#include "libavutil/avutil.h" + #define LIBAVCODEC_VERSION_MAJOR 55 -#define LIBAVCODEC_VERSION_MINOR 6 -#define LIBAVCODEC_VERSION_MICRO 0 +#define LIBAVCODEC_VERSION_MINOR 10 - #define LIBAVCODEC_VERSION_MICRO 100 ++#define LIBAVCODEC_VERSION_MICRO 101 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ LIBAVCODEC_VERSION_MINOR, \