Libav Changelog

What's new in Libav 11.4

Jun 23, 2015
  • h264: Make sure reinit failures mark the context as not initialized (CVE-2015-3417)
  • msrle: Use FFABS to determine the frame size in msrle_decode_pal4 (CVE-2015-3395)
  • cavs: Remove an unneeded scratch buffer
  • configure: Disable i686 for i586 and lower CPUs (debian/783082)
  • mjpegenc: Fix JFIF header byte ordering (bug/808)
  • nut: Make sure to clean up on read_header failure
  • png: Set the color range as full range
  • avi: Validate sample_size
  • nut: Check chapter creation in decode_info_header
  • alac: Reject rice_limit 0 if compression is used
  • ape: Support _0000 files with nblock smaller than 64
  • mux: Do not leave stale side data pointers in ff_interleave_add_packet()
  • avresample: Reallocate the internal buffer to the correct size (bug/825)
  • mpegts: Update the PSI/SI table only if the version change
  • rtsp: Make sure we don't write too many transport entries into a fixed-size array
  • rtpenc_jpeg: Handle case of picture dimensions not dividing by 8
  • mov: Fix little endian audio detection
  • x86: Put COPY3_IF_LT under HAVE_6REGS (gentoo/541930)
  • roqvideoenc: set enc->avctx in roq_encode_init
  • mp3: Properly use AVCodecContext API
  • libvpx: Fix mixed use of av_malloc() and av_reallocp()
  • Revert "lavfi: always check av_expr_parse_and_eval() return value"
  • alsdec: only adapt order for positive max_order
  • alsdec: check sample pointer range in revert_channel_correlation
  • aacpsy: correct calculation of minath in psy_3gpp_init
  • alsdec: limit avctx->bits_per_raw_sample to 32
  • aasc: return correct buffer size from aasc_decode_frame
  • matroskadec: fix crash when parsing invalid mkv
  • avconv: do not overwrite the stream codec context for streamcopy
  • webp: ensure that each transform is only used once
  • h264_ps: properly check cropping parameters against overflow
  • hevc: zero the correct variables on invalid crop parameters
  • hevc: make the crop sizes unsigned

New in Libav 11.3 (Mar 16, 2015)

  • utvideodec: Handle slice_height being zero (CVE-2014-9604)
  • adxdec: set avctx->channels in adx_read_header
  • rmenc: limit packet size
  • webp: validate the distance prefix code
  • rv10: check size of s->mb_width * s->mb_height
  • eamad: check for out of bounds read (CID/1257500)
  • mdec: check for out of bounds read (CID/1257501)
  • configure: Properly fail when libcdio/cdparanoia is not found
  • tiff: Check that there is no aliasing in pixel format selection (CVE-2014-8544)
  • aic: Fix decoding files with odd dimensions
  • vorbis: Check the vlc value in setup_classifs
  • arm: Suppress tags about used cpu arch and extensions
  • prores: Extend the padding check to 16bit
  • icecast: Do not use chunked post, allows feeding to icecast properly
  • img2dec: correctly use the parsed value from -start_number
  • h264_cabac: Break infinite loops
  • hevc_deblock: Fix compilation with nasm (libav #795)
  • h264: initialize H264Context.avctx in init_thread_copy
  • h264: Do not share rbsp_buffer across threads
  • h264: only ref cur_pic in update_thread_context if it is initialized
  • matroskadec: Fix read-after-free in matroska_read_seek() (chromium #427266)
  • log: Unbreak no-tty support on 256color terminals

New in Libav 11.2 (Jan 26, 2015)

  • h264: restore a block mistakenly removed in e10fd08a (libav #781)
  • on2avc: check number of channels (CVE-2014-8549)
  • smc: fix the bounds check (CVE-2014-8548)
  • gifdec: refactor interleave end handling (CVE-2014-8547)
  • mmvideo: check frame dimensions (CVE-2014-8543)
  • jvdec: check frame dimensions (CVE-2014-8542)
  • mjpegdec: check for pixel format changes (CVE-2014-8541)
  • mov: avoid a memleak when multiple stss boxes are present
  • vc1: Do not assume seek happens after decoding
  • avconv: Use the mpeg12 private option scan_offset (debian/773055)
  • xsub: Support DXSA subtitles
  • mp3dec: fix reading the Xing tag
  • matroskaenc: write correct Display{Width, Height} in stereo encoding
  • configure: Fix enabling memalign_hack automatically
  • mp3enc: fix a triggerable assert
  • latm: Do not give a score for a single instance
  • mp3: Tweak the probe scores
  • matroskaenc: write correct Display{Width, Height} in stereo encoding
  • configure: Fix enabling memalign_hack automatically
  • coverity: Fix most of the reported warnings and issues

New in Libav 11.1 (Dec 8, 2014)

  • Replace lena.pnm (debian#771126)
  • Treat all '*.pnm' files as non-text file
  • opusdec: make sure all substreams have the same number of coded samples
  • lavu: fix memory leaks by using a mutex instead of atomics
  • lavu: add wrappers for the pthreads mutex API
  • mp3enc: fix a triggerable assert
  • resample: Avoid off-by-1 errors in PTS calcs. (libav#753)
  • imc: fix order of operations in coefficients read
  • hevc_mvs: make sure to always initialize the temporal MV fully
  • hevc_mvs: initialize the temporal MV in case of missing ref
  • h264: reset ret to avoid propagating minor failures (libav#750 / lp#905753)
  • hevc: Initialize mergecand_list to 0
  • mpeg12: Always invoke the get_format() callback
  • h264: Always invoke the get_format() callback
  • Update default FATE URL for release/11
  • apetag: Fix APE tag size check

New in Libav 11 (Sep 15, 2014)

  • libx265 encoder
  • shuffleplanes filter
  • replaygain data export
  • Alias PIX image encoder and decoder
  • BRender PIX image decoder
  • Amazing Studio PAF playback support
  • XBM decoder
  • BMP standalone parser
  • OpenEXR image decoder
  • support encoding and decoding 4-channel SGI images
  • support decoding 16-bit RLE SGI images
  • VP7 video decoder
  • LucasArts SMUSH SANM video decoder
  • LucasArts SMUSH VIMA audio decoder (ADPCM)
  • LucasArts SMUSH demuxer
  • MP2 encoding via TwoLAME
  • asettb filter
  • Silicon Graphics RLE 8-bit video decoder
  • Silicon Graphics Motion Video Compressor 1 & 2 decoder
  • Silicon Graphics Movie demuxer
  • On2 AVC (Audio for Video) decoder
  • support for decoding through DXVA2 in avconv
  • libbs2b-based stereo-to-binaural audio filter
  • native Opus decoder
  • display matrix export and rotation API
  • drop avserver, it was unmaintained for years and largely broken
  • Icecast protocol
  • request Icecast metadata by default
  • support for using metadata in stream specifiers in avtools
  • Matroska 3D support

New in Libav 10.3 (Aug 5, 2014)

  • huffyuv: Check and propagate function return values (CVE-2013-0868)
  • h264: prevent theoretical infinite loop in SEI parsing (CVE-2011-3946)
  • pgssubdec: Check RLE size before copying (CVE-2013-0852)
  • video4linux2: Avoid a floating point exception
  • vf_select: Drop a debug av_log with an unchecked double to enum conversion
  • librtmp: Don't free the temp url at the end of rtmp_open
  • arm: Avoid using the 'setend' instruction on ARMv7 and newer
  • avplay: Handle pixel aspect ratio properly
  • eamad: use the bytestream2 API instead of AV_RL (CVE-2013-0851)
  • pg2meet: allow size changes within original sizes
  • af_compand: make sure request_frame always outputs at least one frame

New in Libav 10.2 (Jul 5, 2014)

  • adpcm: Write the proper predictor in trellis mode in IMA QT
  • adpcm: Avoid reading out of bounds in the IMA QT trellis encoder
  • oggenc: Set the right AVOption size for the pref_duration option
  • avpacket: fix copying side data in av_packet_copy_props()
  • jpeg2000: fix dereferencing invalid pointers during cleanup
  • Check mp3 header before calling avpriv_mpegaudio_decode_header() (bug/705)
  • Check if an mp3 header is using a reserved sample rate
  • lzo: Handle integer overflow (bug/704)
  • avconv: make -shortest work with streamcopy
  • ppc: Fix compilation for ppc64le (ELFv2) (ubuntu/1263802)
  • aarch64: Use the correct syntax for relocations (debian/751856, ubuntu/1323144)

New in Libav 10.1 (May 12, 2014)

  • pcm-dvd: Fix 20bit decoding (bug/592)
  • avi: Improve non-interleaved detection (bug/666)
  • arm: hpeldsp: fix put_pixels8_y2_{,no_rnd_}armv6
  • arm: hpeldsp: prevent overreads in armv6 asm (bug/646)
  • avfilter: Add missing emms_c when needed
  • rtmpproto: Check the buffer sizes when copying app/playpath strings
  • swscale: Fix an undefined behaviour
  • vp9: Read the frame size as unsigned
  • dcadec: Use correct channel count in stereo downmix check
  • dcadec: Do not decode the XCh extension when downmixing to stereo
  • matroska: add the Opus mapping
  • matroskadec: read the CodecDelay element
  • rtmpproto: Make sure to pass on the error code if read_connect failed
  • lavr: allocate the resampling buffer with a positive size
  • mp3enc: Properly write bitrate value in XING header (debian/736088)
  • golomb: Fix the implementation of get_se_golomb_long

New in Libav 10 (Apr 1, 2014)

  • One of the main features of this release is the addition of reference-counted data buffers to Libav and their use in various structures. Specifically, the data buffers used by AVPacket and AVFrame can now be reference counted, which should allow to significantly simplify many use cases. In addition, reference-counted AVFrames can now be used in libavfilter, avoiding the need for a separate libavfilter-specific frame structure. Frames can now be passed straight from the decoders into filters or from filters to encoders.
  • These additions made it necessary to bump the major versions of libavcodec, libavformat, libavdevice, libavfilter, and libavutil, which was accompanied by dropping some old deprecated APIs. These libraries are thus not ABI- or API-compatible with the previous release. All the other libraries (libavresample and libswscale) should be both ABI- and API-compatible.
  • Another major point is the inclusion of the HEVC (AKA H.265, the successor of H.264) decoder in the main codebase. It was started in 2012 as a Libav Google Summer of Code project by Guillaume Martres and subsequently completed with the assistance of the OpenHEVC project and several Libav developers.
  • As usual, this release also contains support for other new formats, many smaller new features and countless bug fixes. We can highlight a native VP9 decoder, with encoding provided through libvpx, native decoders for WebP, JPEG 2000, and AIC, as well as improved WavPack support with encoding through libwavpack, support for more AAC flavors (LD - low delay, ELD - enhanced low delay), slice multithreading in libavfilter, or muxing chapters in ASF. Furthermore a few new filters have been introduced, namely compand, to change audio dynamics, framepack, to create stereoscopic videos, asetpts, to set audio pts, and interlace, to convert progressive video to interlaced. Finally there is more fine-grained detection of host and target libc, which should allow better portability to various cross compilation scenarios.

New in Libav 9.12 (Mar 14, 2014)

  • configure: Update freetype check to follow upstream
  • drawtext: Drop pointless header
  • configure: Support preprocessor macros as header names
  • arm: hpeldsp: fix put_pixels8_y2_{,no_rnd_}armv6
  • qt-faststart: Check offset_count before reading from the moov_atom buffer
  • arm: hpeldsp: prevent overreads in armv6 asm
  • configure: enable PIC on s390(x)
  • ituh263: reject b-frame with pp_time = 0
  • lagarith: reallocate rgb_planes when needed
  • truemotion1: check the header size
  • shorten: pad the internal bitstream buffer
  • samplefmt: avoid integer overflow in av_samples_get_buffer_size()
  • h264: Fix a typo from the previous commit
  • h264: Lower bound check for slice offsets
  • Add missing header to fix compilation after d2a0654
  • configure: Add missing dependency of Snow decoder on videodsp
  • rpza: limit the number of blocks to the total remaining blocks in the frame

New in Libav 10 Beta 2 (Mar 14, 2014)

  • compand audio filter
  • and many various smaller fixes

New in Libav 10 Beta 1 (Mar 14, 2014)

  • av_strnstr
  • support ID3v2 tags in ASF files
  • reference-counting for AVFrame and AVPacket data
  • avconv now fails when input options are used for output file or vice versa
  • avconv options -filter_script and -filter_complex_script, which allow a filtergraph description to be read from a file
  • uniform options syntax across all filters
  • interlace filter
  • JPEG 2000 decoder
  • asetpts filter (same as setpts, but for audio)
  • trim and atrim filters
  • avconv -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
  • Apple Intermediate Codec decoder
  • Escape 130 video decoder
  • support for slice multithreading in libavfilter
  • VC-1 interlaced B-frame support
  • support for WavPack muxing (raw and in Matroska)
  • Go2Webinar decoder
  • WavPack encoding through libwavpack
  • Added the -n parameter to avconv
  • RTMP seek support
  • when transcoding with avconv (i.e. not streamcopying), -ss is now accurate even when used as an input option. Previous behavior can be restored with the -noaccurate_seek option.
  • avconv -t option can now be used for inputs, to limit the duration of data read from an input file
  • Voxware MetaSound decoder
  • WebP decoder
  • Error Resilient AAC syntax (ER AAC LC) decoding
  • Low Delay AAC (ER AAC LD) decoding
  • mux chapters in ASF files
  • Opus in Ogg demuxing
  • Enhanced Low Delay AAC (ER AAC ELD) decoding (no LD SBR support)
  • F4V muxer
  • HNM version 4 demuxer and video decoder
  • HEVC decoder
  • raw HEVC, HEVC in MOV/MP4, HEVC in Matroska, HEVC in MPEG-TS demuxing
  • remove avplay -vismv option, which has not worked for a long time
  • Live HDS muxer
  • setsar/setdar filters now support variables in ratio expressions
  • dar variable in the scale filter now returns the actual DAR (i.e. a * sar)
  • VP9 decoder
  • support for decoding through VDPAU in avconv (the -hwaccel option)
  • remove mp3_header_(de)compress bitstream filters
  • stereoscopic 3d metadata handling
  • png standalone parser
  • WebP encoding via libwebp
  • ATRAC3+ decoder
  • framepack filter
  • Mirillis FIC video decoder
  • Support DNx444

New in Libav 9.11 (Feb 5, 2014)

  • oggparseogm: check timing variables
  • mathematics: remove asserts from av_rescale_rnd()
  • vc1: Always reset numref when parsing a new frame header.
  • h264: reset num_reorder_frames if it is invalid
  • h264: check that an IDR NAL only contains I slices
  • mov: Free an earlier allocated array if allocating a new one
  • mov: Free intermediate arrays in the normal cleanup function
  • segafilm: fix leaks if reading the header fails
  • h264_cavlc: check the size of the intra PCM data.
  • h263: Check init_get_bits return value
  • cavsdec: check ff_get_buffer() return value
  • cavs: Check for negative cbp
  • avi: DV in AVI must be considered single stream
  • vmnc: Check the cursor dimensions
  • vmnc: Port to bytestream2
  • vmnc: K&R formatting cosmetics
  • flashsv: Check diff_start diff_height values
  • dsputil/pngdsp: fix signed/unsigned type in end comparison (CVE-2013-7010, CVE-2013-7014)
  • lavf: make av_probe_input_buffer more robust (CVE-2012-6618)
  • lavf: use a fixed width type
  • lavf: simplify handling of offset in av_probe_input_buffer()
  • prores: Error out only on surely incomplete ac_coeffs
  • shorten: Fix out-of-array read
  • prores: Add a codepath for decoding errors
  • nut: Fix unchecked allocations
  • avi: directly resync on DV in AVI read failure
  • mov: Don't allocate arrays with av_malloc that will be realloced
  • shorten: Extend fixed_coeffs to properly support pred_order 0

New in Libav 9.10 (Oct 12, 2013)

  • alac: Do bounds checking of lpc_order read from the bitstream
  • ape: Don't allow the seektable to be omitted
  • asfdec: Check the return value of asf_read_stream_properties
  • asvdec: Verify the amount of extradata
  • avidec: Make sure a packet is large enough before reading its data
  • bfi: Add some very basic sanity checks for input packet sizes
  • bfi: Avoid divisions by zero
  • cavsdec: Make sure a sequence header has been decoded before decoding pictures
  • dcadec: Validate the lfe parameter
  • dsicin: Add some basic sanity checks for fields read from the file
  • eacmv: Make sure a reference frame exists before referencing it
  • electronicarts: Add more sanity checking for the number of channels
  • electronicarts: Check packet sizes before reading
  • ffv1: Make sure at least one slice context is initialized
  • fraps: Make the input buffer size checks more strict
  • h263dec: Remove a hack that can cause infinite loops
  • idroqdec: Make sure a video stream has been allocated before returning packets
  • ivi_common: Make sure color planes have been initialized
  • lavf: Avoid setting avg_frame_rate if delta_dts is negative
  • mace: Make sure that the channel count is set to a valid value
  • matroskadec: Verify realaudio codec parameters
  • mov: Don't use a negative duration for setting other fields
  • mov: Make sure the read sample count is nonnegative
  • mpc8: Check the seek table size parsed from the bitstream
  • mpc8: Make sure the first stream exists before parsing the seek table
  • mpeg4videodec: Check the width/height in mpeg4_decode_sprite_trajectory
  • mpegaudiodec: Validate that the number of channels fits at the given offset
  • mpegvideo: Initialize chroma_*_shift and codec_tag even if the size is 0
  • mvi: Add sanity checking for the audio frame size
  • mxfdec: set audio timebase to 1/samplerate
  • oggparseogm: Convert to use bytestream2
  • omadec: Properly check lengths before incrementing the position
  • pcx: Check the packet size before assuming it fits a palette
  • pcx: Consume the whole packet if giving up due to missing palette
  • pngdec: Stop trying to decode once inflate returns Z_STREAM_END
  • qpeg: Add checks for running out of rows in qpeg_decode_inter
  • r3d: Add more input value validation
  • riffdec: Add sanity checks for the sample rate
  • rl2: Avoid a division by zero
  • rmdec: Validate the fps value
  • rpza: Fix a buffer size check
  • rv10: Validate the dimensions set from the container
  • rv34: Check the return value from ff_rv34_decode_init
  • segafilm: Validate the number of audio channels
  • shorten: Break out of loop looking for fmt chunk if none is found
  • shorten: Use a checked bytestream reader for the wave header
  • sierravmd: Do sanity checking of frame sizes
  • smacker: Avoid integer overflow when allocating packets
  • smacker: Don't return packets in unallocated streams
  • smacker: Make sure we don't fill in huffman codes out of range
  • svq3: Avoid a division by zero
  • svq3: Check for any negative return value from ff_h264_check_intra_pred_mode
  • truemotion2: Use av_freep properly in an error path
  • twinvqdec: Check the ibps parameter separately
  • vc1dec: Don't decode slices when the latest slice header failed to decode
  • vc1dec: Fix leaks in ff_vc1_decode_init_alloc_tables on errors
  • vc1dec: Make sure last_picture is initialized in vc1_decode_skip_blocks
  • vc1dec: Undo mpegvideo initialization if unable to allocate tables
  • vocdec: Don't update codec parameters mid-stream
  • vp3: Check the framerate for validity
  • vqf: Make sure sample_rate is set to a valid value
  • vqf: Make sure the bitrate is in the valid range
  • wnv1: Make sure the input packet is large enough
  • wtv: Add more sanity checks for a length read from the file
  • xan: Only read within the data that actually was initialized
  • xan: Use bytestream2 to limit reading to within the buffer
  • xmv: Add more sanity checks for parameters read from the bitstream
  • xwma: Avoid division by zero
  • xxan: Disallow odd width
  • zmbvdec: Check the buffer size for uncompressed data

New in Libav 9.8 (Jul 8, 2013)

  • kmvc: Clip pixel position to valid range
  • kmvc: Use fixed sized arrays in the context
  • indeo: Reject negative array indexes
  • indeo: Check for reference when inheriting motion vectors
  • indeo: Properly forward the error codes
  • mjpeg: Check the unescaped size for overflows
  • wmapro: Error out on impossible scale factor offsets
  • wmapro: Check the min_samples_per_subframe
  • wmapro: Return early on unsupported condition
  • wmapro: Check num_vec_coeffs against the actual available buffer
  • wmapro: Make sure there is room to store the current packet
  • lavc: Move put_bits_left in put_bits.h
  • 4xm: Do not overread the source buffer in decode_p_block
  • 4xm: Check bitstream_size boundary before using it

New in Libav 9.7 (Jun 17, 2013)

  • 4xm: fix several programming errors to avoid crashes, etc.
  • apetag: use int64_t for filesize
  • jpegls: Fix invalid writes to memory
  • ljpeg: use the correct number of components in YUV
  • mjpeg: Validate sampling factors
  • mjpegdec: properly report unsupported disabled features
  • mjpegdec: validate parameters in mjpeg_decode_scan_progressive_ac
  • mpegvideo: allocate sufficiently large scratch buffer for interlaced vid
  • pixdesc: mark gray8 as pseudopal
  • smacker: fix several programming errors to avoid crashes, etc.
  • tiff: do not overread the source buffer
  • vmd: drop incomplete chunks and spurious samples
  • vmdav: convert to bytestream2 to avoid invalid reads and writes
  • wavpack: check packet size early
  • wavpack: use bytestream2 in wavpack_decode_block
  • wavpack: validate samples size parsed in wavpack_decode_block=

New in Libav 9.6 (May 14, 2013)

  • aac: check the maximum number of channels to avoid invalid writes
  • indeo3: fix off by one in MV validity check
  • id3v2: check for end of file while unescaping tags to avoid invalid writes, reported by Google Security Team
  • afifo: fix request_samples on the last frame in certain cases
  • hls, segment: fix splitting for audio-only streams
  • wav: Always seek to an even offset, Bug #500, LP: #1174737
  • swscale: Use alpha from the right row in yuva2rgba_c, Bug #504
  • indeo3: use unaligned reads on reference blocks, Bug #503
  • oma: properly forward errors in oma_read_packet
  • af_asyncts: fix offset calculation
  • proresdec: support mixed interlaced/non-interlaced content

New in Libav 9.4 (Mar 26, 2013)

  • atrac3: avoid oversized shifting in decode_bytes()
  • eamad: allocate a dummy reference frame when the real one is missing
  • ffv1: fix calculating slice dimensions for version 2
  • flacdec: simplify bounds checking in flac_probe()
  • h264: check for luma and chroma bit dept being equal (CVE-2013-2277)
  • hqdn3d: Fix out of array read in LOWPASS
  • iff: validate CMAP palette size (CVE-2013-2495)
  • ivi_common: do not call MC for intra frames when dc_transform is unset
  • libmp3lame: use the correct remaining buffer size when flushing
  • lzo: fix overflow checking in copy_backptr()
  • mp3dec: Fix VBR bit rate parsing
  • png: use av_mallocz_array() for the zlib zalloc function
  • roqvideodec: fix a potential infinite loop in roqvideo_decode_frame()
  • shorten: fix various programming mistakes
  • vf_gradfun: fix uninitialized variable use
  • vf_hqdn3d: fix uninitialized variable use
  • vmdaudio: fix invalid reads when packet size is not a multiple of chunk size
  • wmadec: require block_align to be set
  • wmaprodec: require block_align to be set
  • wmaprodec: return an error, not 0, when the input is too small
  • xxan: fix invalid memory access in xan_decode_frame_type0()

New in Libav 9.3 (Mar 4, 2013)

  • h264: fix deadlocks with broken/fuzzed files
  • flvdec: make decoder more robust
  • vorbisdec: fix buffer overflow (CVE-2013-0894)
  • ac3dec: validate channel output mode against channel count
  • doc: minor improvements

New in Libav 9.2 (Feb 25, 2013)

  • loco: check that there is data left after decoding a plane.
  • mov: use the format context for logging.
  • lagarith: avoid infinite loop in lag_rac_refill() with corrupted files
  • flicvideo: avoid an infinite loop in byte run compression
  • av_memcpy_backptr: avoid an infinite loop for back = 0
  • mlpdec: do not try to allocate a zero-sized output buffer.
  • qtrle: add more checks against pixel_ptr being negative.
  • 4xm: check the return value of read_huffman_tables().
  • cavs: initialize various context tables, avoids crashes with corrupted files
  • x86/H.264: Don't use redzone in AVX h264_deblock on Win64
  • VQA video: check chunk sizes before reading chunks
  • RoQ video decoder: check dimensions validity
  • QDM2: check array index before use, fix out of array accesses
  • mpegvideo: Do REBASE_PICTURE with byte pointers
  • SVQ3: unbreak decoding
  • libopencore-amrwb: Make AMR-WB ifdeffery more precise
  • libopencore-amr: Conditionally compile decoder and encoder bits
  • arm: Fall back to runtime cpu feature detection via /proc/cpuinfo
  • xxan: properly handle odd heights
  • msrledec: check bounds before constructing a possibly invalid pointer,
  • qtrle: fix the topmost line for 1bit
  • aasc: fix output for msrle compression
  • yop: check for input overreads
  • yop: check that extradata is large enough
  • fraps: fix off-by one bug for version 1
  • vf_delogo: fix copying the input frame
  • vf_delogo: fix an uninitialized read
  • dnxhdenc: fix invalid reads in dnxhd_mb_var_thread()
  • ATRAC3: use correct loop variable in add_tonal_components()
  • MLP: store the channel layout for each substream
  • MLP decoder: TrueHD: use Libav channel order
  • x86: ac3: Fix HAVE_MMXEXT condition to only refer to external assembly
  • arm: vp8: Fix the plain-armv6 version of vp8_luma_dc_wht
  • lavr: call mix_function_init() in ff_audio_mix_set_matrix()
  • rtpenc_chain: Use the original AVFormatContext for getting payload type
  • rtp: Make sure the output format pointer is set
  • rtp: Make sure priv_data is set before reading it
  • videodsp_armv5te: remove #if HAVE_ARMV5TE_EXTERNAL
  • get_bits: change the failure condition in init_get_bits
  • mpegvideo: fix loop condition in draw_line()
  • fate: update ref after rv30_loop_filter fix
  • RV30: fix masking in rv30_loop_filter()
  • libcdio: support recent cdio-paranoia
  • Theora: Skip zero-sized headers
  • H.264: add 3 pixels below for subpixel filter wait position
  • H.264: fix ff_generate_sliding_window_mmcos() prototype
  • H.264: don't clobber mmco opcode tables for non-first slice headers
  • libx264: use the library specific default rc_initial_buffer_occupancy
  • lavc: set the default rc_initial_buffer_occupancy
  • lavc: introduce the convenience function init_get_bits8
  • lavc: check for overflow in init_get_bits
  • configure: enable pic for shared libs on AArch64
  • zmbv: Reset the decoder on keyframe errors
  • VC1 decoder: prevent a crash due missing pred_flag parameter
  • matroska: Fix use after free
  • VP3: Fix double free in vp3_decode_end()

New in Libav 9.1 (Jan 8, 2013)

  • Fix a crash on windows platforms related to automatic stack alignment in libavresample
  • Fix memleaks in the ogg demuxer. Related to CVE-2012-2882

New in Libav 0.8.4 (Oct 23, 2012)

  • Several bugs and crashes have been fixed in the following codecs:
  • h264 (Bug 118), vc1dec (CVE-2012-2796), sipr, bmpdec (bug 367), alsdec
  • (CVE-2012-2775), rv34/rv40 (CVE-2012-2772), indeo3/indeo4
  • (CVE-2012-2776, CVE-2012-2779, CVE-2012-2787, CVE-2012-2794,
  • CVE-2012-2800), vorbisenc, vorbisdec (Bug 277), snow, ac3dec
  • (CVE-2012-2802), avsdec (CVE-2012-2801), dfa (CVE-2012-2786,
  • CVE-2012-2798), lagrith (CVE-2012-2793), wmaprodec (CVE-2012-2789 &
  • Bug 327), avidec (CVE-2012-2788, CVE-2012-2790), cavsdec
  • (CVE-2012-2777, CVE-2012-2784), wav (Bug 379), yuff4mpeg (Bug 373),
  • mpegaudio, tiffenc, smacker (Bug 265).
  • smaller bug fixes in avconv (Bug 352)
  • fix lt() and lte() in function evaluator
  • fix segfault in avformat_open_input()
  • fix segfault in golomb decoder (bug 310)
  • fix segfault (double free) in libavfilter
  • convert dfa decoder to bytestream2 API to protect from overreads
  • bugfix in vf_pad/scale filter (Bug 203 & 245)
  • lavc: remove stats_out and stats_in from the options table. (Bug 380)

New in Libav 0.9 Beta 1 (Oct 17, 2012)

  • 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.
  • Indeo Audio decoder
  • channelsplit audio filter
  • RTMPT protocol support
  • iLBC encoding/decoding via libilbc
  • Microsoft Screen 1 decoder
  • join audio filter
  • audio channel mapping filter
  • Microsoft ATC Screen decoder
  • RTSP listen mode
  • TechSmith Screen Codec 2 decoder
  • AAC encoding via libfdk-aac
  • Microsoft Expression Encoder Screen decoder
  • RTMPS protocol support
  • RTMPTS protocol support
  • JPEG 2000 encoding support through OpenJPEG
  • G.723.1 demuxer and decoder
  • RTMPE protocol support
  • RTMPTE protocol support
  • Canopus Lossless Codec decoder
  • avconv -shortest option is now per-output file,
  • -pass and -passlogfile are now per-output stream
  • Ut Video encoder
  • Microsoft Screen 2 decoder
  • RTP depacketization of JPEG
  • Smooth Streaming live segmenter muxer
  • RTP packetization of JPEG
  • Opus decoder and encoder using libopus
  • remove -same_quant, it hasn't worked for years

New in Libav 0.8 (Sep 12, 2012)

  • Several bugs and crashes have been fixed in the following codecs: PNG, Electronic Arts TQI, H.264 (CVE-2012-0851) and H.263 (CVE-2011-3937)