Entries are sorted chronologically from oldest to youngest within each release,
releases are sorted from youngest to oldest.

version 9.9:
- 4xm: check that bits per sample is strictly positive
- 4xm: Check that the read track value is non-negative
- 4xm: Reject not a multiple of 16 dimension
- 8bps: Bound-check the input buffer
- aac: Check init_get_bits return value
- aac: return meaningful errors
- ac3: Clean up the error paths
- ac3dec: Don't consume more data than the actual input packet size
- ac3dec: Increment channel pointers only once per channel
- ac3: Do not clash with normal AVERROR
- ac3: Return proper error codes
- adpcm: Write the correct number of samples for ima-dk4
- alac: Check that the channels fit at the given offset
- alac: Limit max_samples_per_frame
- alsdec: Clean up error paths
- alsdec: Fix the clipping range
- ape demuxer: check for EOF in potentially long loops
- atrac3: Error on impossible encoding/channel combinations
- atrac3: fix error handling
- atrac3: set the getbits context the right buffer_end
- avconv: do not use lavfi direct rendering with -deinterlace
- avidec: Let the inner dv demuxer take care of discarding
- avio: Handle AVERROR_EOF in the same way as the return value 0
- bink: Bound check the quantization matrix.
- dca: Error out on missing DSYNC
- dca: Respect the current limits in the downmixing capabilities
- dsicinav: Bound-check the source buffer when needed
- dsicinav: Clip the source size to the expected maximum
- dv: Add a guard to not overread the ppcm array
- dxa: Make sure the reference frame exists
- h261: check the mtype index
- iff: Do not read over the source buffer
- imc: Catch a division by zero
- indeo4: Check the quantization matrix index
- indeo4: Do not access missing reference MV
- indeo4: Validate scantable dimension
- indeo5: return proper error codes
- indeo: Bound-check before applying motion compensation
- indeo: Bound-check before applying transform
- indeo: Do not reference mismatched tiles
- indeo: Reject impossible FRAMETYPE_NULL
- indeo: Sanitize ff_ivi_init_planes fail paths
- lavf: avoid integer overflow when estimating bitrate
- lavf: Make sure avg_frame_rate can be calculated without integer overflow
- matroskadec: Check that .lang was allocated and set before reading it
- mjpegb: Detect changing number of planes in interlaced video
- mlpdec: Do not set invalid context in read_restart_header
- mov: Do not allow updating the time scale after it has been set
- mov: Seek back if overreading an individual atom
- mpegvideo: Avoid 32-bit wrapping of linesize multiplications
- nuv: check ff_rtjpeg_decode_frame_yuv420 return value
- nuv: Do not ignore lzo decompression failures
- nuv: Pad the lzo outbuf
- nuv: Reset the frame on resize
- nuv: return meaningful error codes.
- nuv: Use av_fast_realloc
- ogg: Always alloc the private context in vorbis_header
- ogg: Fix potential infinite discard loop
- oma: check geob tag boundary
- oma: correctly mark and decrypt partial packets
- oma: refactor seek function
- pcm: always use codec->id instead of codec_id
- pcx: Do not overread source buffer in pcx_rle_decode
- pictordec: break out of both decoding loops when y drops below 0
- pictordec: pass correct context to avpriv_request_sample
- qdm2: check and reset dithering index per channel
- qdm2: Conceal broken samples
- qdm2: refactor joined stereo support
- qdm2: use init_static_data
- rmdec: Use the AVIOContext given as parameter in rm_read_metadata()
- rtjpeg: Use init_get_bits8
- rtmp: Do not misuse memcmp
- rtmp: rename data_size to size
- segafilm: Error out on impossible packet size
- vc1: check mb_height validity.
- vc1: check the source buffer in vc1_mc functions
- vcr1: add sanity checks
- vqavideo: check the version
- westwood_vqa: do not free extradata on error in read_header
- wmavoice: conceal clearly corrupted blocks
- wtv: Mark attachment with a negative stream id
- xl: Make sure the width is valid

version 9.8:
- 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

version 9.7:

Most of the following fixes resulted from test samples that the Google
Security Team has kindly made available to us:

- 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


version 9.6:
- 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

version 9.5:

Most of the following fixes resulted from test samples that the Google
Security Team has kindly made available to us:

- af_channelmap: sanity check input channel indices in all cases
- avfiltergraph: check for sws opts being non-NULL before using them
- bmv: check for len being valid in bmv_decode_frame()
- configure: Enable hwaccels without external dependencies by default
- dfa: check for invalid access in decode_wdlt()
- id3v2: pad the APIC packets as required by lavc
- indeo3: check motion vectors
- indeo3: fix data size check
- indeo3: switch parsing the header to bytestream2
- lavf: make sure stream probe data gets freed
- matroska: Update the available size after lace parsing
- matroska: fix a corner case in ebml-lace parsing
- matroska: pass the lace size to the matroska_parse_rm_audio
- mp3dec: fallback to generic seeking when a TOC is not present
- oggdec: fix faulty cleanup prototype
- oma: Validate sample rates
- qdm2: check that the FFT size is a power of 2
- riff: check for eof if chunk size and code are 0 to prevent an infinite loop
- rv10: check that extradata is large enough
- svq1dec: check that the reference frame has the same dimensions as the current one
- svq1dec: clip motion vectors to the frame size
- xmv: check audio track parameters validity
- xmv: do not leak memory in the error paths in xmv_read_header()


version 9.4:
- 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()

version 9.3:
- 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

version 9.2:
- 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 (CVE-2496)
- 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()


version 9.1:
- Fix a crash on windows platforms related to automatic stack alignment
  in libavresample
- Fix memleaks in the Ogg demuxer. Related to CVE-2012-2882


version 9:
- av_basename and av_dirname
- adobe and limelight publisher authentication in RTMP


version 9_beta3:
- ashowinfo audio filter
- 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
- support for building DLLs using MSVC
- remove avserver daemon mode
- support building on the Plan 9 operating system
- ffv1: support version 1.3


version 9_beta1:

- 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
- support for building with MSVC


version 0.8:

- GSM audio parser
- SMJPEG muxer


version 0.8_beta2:

- Automatic thread count based on detection number of (available) CPU cores
- Deprecate libpostproc. If desired, the switch --enable-postproc will
  enable it but it may be removed in a later Libav release.
- rv34: frame-level multi-threading
- optimized iMDCT transform on x86 using SSE for for mpegaudiodec


version 0.8_beta1:

- BWF muxer
- Flash Screen Video 2 decoder
- ffplay/ffprobe/ffserver renamed to avplay/avprobe/avserver
- ffmpeg deprecated, added avconv, which is almost the same for now, except
for a few incompatible changes in the options, which will hopefully make them
easier to use. The changes are:
    * The options placement is now strictly enforced! While in theory the
      options for ffmpeg should be given in [input options] -i INPUT [output
      options] OUTPUT order, in practice it was possible to give output options
      before the -i and it mostly worked. Except when it didn't - the behavior was
      a bit inconsistent. In avconv, it is not possible to mix input and output
      options. All non-global options are reset after an input or output filename.
    * All per-file options are now truly per-file - they apply only to the next
      input or output file and specifying different values for different files
      will now work properly (notably -ss and -t options).
    * All per-stream options are now truly per-stream - it is possible to
      specify which stream(s) should a given option apply to. See the Stream
      specifiers section in the avconv manual for details.
    * In ffmpeg some options (like -newvideo/-newaudio/...) are irregular in the
      sense that they're specified after the output filename instead of before,
      like all other options. In avconv this irregularity is removed, all options
      apply to the next input or output file.
    * -newvideo/-newaudio/-newsubtitle options were removed. Not only were they
      irregular and highly confusing, they were also redundant. In avconv the -map
      option will create new streams in the output file and map input streams to
      them. E.g. avconv -i INPUT -map 0 OUTPUT will create an output stream for
      each stream in the first input file.
    * The -map option now has slightly different and more powerful syntax:
        + Colons (':') are used to separate file index/stream type/stream index
          instead of dots. Comma (',') is used to separate the sync stream instead
          of colon.. This is done for consistency with other options.
        + It's possible to specify stream type. E.g. -map 0:a:2 creates an
          output stream from the third input audio stream.
        + Omitting the stream index now maps all the streams of the given type,
          not just the first. E.g. -map 0:s creates output streams for all the
          subtitle streams in the first input file.
        + Since -map can now match multiple streams, negative mappings were
          introduced. Negative mappings disable some streams from an already
          defined map. E.g. '-map 0 -map -0:a:1' means 'create output streams for
          all the stream in the first input file, except for the second audio
          stream'.
    * There is a new option -c (or -codec) for choosing the decoder/encoder to
      use, which allows to precisely specify target stream(s) consistently with
      other options. E.g. -c:v lib264 sets the codec for all video streams, -c:a:0
      libvorbis sets the codec for the first audio stream and -c copy copies all
      the streams without reencoding. Old -vcodec/-acodec/-scodec options are now
      aliases to -c:v/a/s
    * It is now possible to precisely specify which stream should an AVOption
      apply to. E.g. -b:v:0 2M sets the bitrate for the first video stream, while
      -b:a 128k sets the bitrate for all audio streams. Note that the old -ab 128k
      syntax is deprecated and will stop working soon.
    * -map_chapters now takes only an input file index and applies to the next
      output file. This is consistent with how all the other options work.
    * -map_metadata now takes only an input metadata specifier and applies to
      the next output file. Output metadata specifier is now part of the option
      name, similarly to the AVOptions/map/codec feature above.
    * -metadata can now be used to set metadata on streams and chapters, e.g.
      -metadata:s:1 language=eng sets the language of the first stream to 'eng'.
      This made -vlang/-alang/-slang options redundant, so they were removed.
    * -qscale option now uses stream specifiers and applies to all streams, not
      just video. I.e. plain -qscale number would now apply to all streams. To get
      the old behavior, use -qscale:v. Also there is now a shortcut -q for -qscale
      and -aq is now an alias for -q:a.
    * -vbsf/-absf/-sbsf options were removed and replaced by a -bsf option which
      uses stream specifiers. Use -bsf:v/a/s instead of the old options.
    * -itsscale option now uses stream specifiers, so its argument is only the
      scale parameter.
    * -intra option was removed, use -g 0 for the same effect.
    * -psnr option was removed, use -flags +psnr for the same effect.
    * -vf option is now an alias to the new -filter option, which uses stream specifiers.
    * -vframes/-aframes/-dframes options are now aliases to the new -frames option.
    * -vtag/-atag/-stag options are now aliases to the new -tag option.
- XMV demuxer
- Windows Media Image decoder
- LATM muxer/demuxer
- showinfo filter
- split filter
- libcdio-paranoia input device for audio CD grabbing
- select filter
- Apple ProRes decoder
- CELT in Ogg demuxing
- VC-1 interlaced decoding
- lut, lutrgb, and lutyuv filters
- boxblur filter
- Ut Video decoder
- Speex encoding via libspeex
- 4:2:2 H.264 decoding support
- 4:2:2 and 4:4:4 H.264 encoding with libx264
- Pulseaudio input device
- replacement Indeo 3 decoder
- TLS/SSL and HTTPS protocol support
- AVOptions API rewritten and documented
- most of CODEC_FLAG2_*, some CODEC_FLAG_* and many codec-specific fields in
  AVCodecContext deprecated. Codec private options should be used instead.
- Properly working defaults in libx264 wrapper, support for native presets.
- Encrypted OMA files support
- Discworld II BMV decoding support
- VBLE Decoder
- OS X Video Decoder Acceleration (VDA) support
- CRI ADX audio format muxer and demuxer
- Playstation Portable PMP format demuxer
- PCM format support in OMA demuxer
- CLJR encoder
- Dxtory capture format decoder
- v410 QuickTime uncompressed 4:4:4 10-bit encoder and decoder
- OpenMG Audio muxer
- Simple segmenting muxer
- Indeo 4 decoder
- SMJPEG demuxer


version 0.7:

- E-AC-3 audio encoder
- ac3enc: add channel coupling support
- floating-point sample format support for (E-)AC-3, DCA, AAC, Vorbis decoders
- H.264/MPEG frame-level multithreading
- av_metadata_* functions renamed to av_dict_* and moved to libavutil
- 4:4:4 H.264 decoding support
- 10-bit H.264 optimizations for x86
- bump libswscale for recently reported ABI break


version 0.7_beta2:

- VP8 frame-level multithreading
- NEON optimizations for VP8
- removed a lot of deprecated API cruft
- FFT and IMDCT optimizations for AVX (Sandy Bridge) processors
- DPX image encoder
- SMPTE 302M AES3 audio decoder
- ffmpeg no longer quits after the 'q' key is pressed; use 'ctrl+c' instead
- 9bit and 10bit per sample support in the H.264 decoder


version 0.7_beta1:

- WebM support in Matroska de/muxer
- low overhead Ogg muxing
- MMS-TCP support
- VP8 de/encoding via libvpx
- Demuxer for On2's IVF format
- Pictor/PC Paint decoder
- HE-AAC v2 decoder
- libfaad2 wrapper removed
- DTS-ES extension (XCh) decoding support
- native VP8 decoder
- RTSP tunneling over HTTP
- RTP depacketization of SVQ3
- -strict inofficial replaced by -strict unofficial
- ffplay -exitonkeydown and -exitonmousedown options added
- native GSM / GSM MS decoder
- RTP depacketization of QDM2
- ANSI/ASCII art playback system
- Lego Mindstorms RSO de/muxer
- SubRip subtitle file muxer and demuxer
- Chinese AVS encoding via libxavs
- ffprobe -show_packets option added
- RTP packetization of Theora and Vorbis
- RTP depacketization of MP4A-LATM
- RTP packetization and depacketization of VP8
- hflip filter
- Apple HTTP Live Streaming demuxer
- a64 codec
- MMS-HTTP support
- G.722 ADPCM audio encoder/decoder
- R10k video decoder
- ocv_smooth filter
- frei0r wrapper filter
- change crop filter syntax to width:height:x:y
- make the crop filter accept parametric expressions
- make ffprobe accept AVFormatContext options
- yadif filter
- blackframe filter
- Demuxer for Leitch/Harris' VR native stream format (LXF)
- RTP depacketization of the X-QT QuickTime format
- SAP (Session Announcement Protocol, RFC 2974) muxer and demuxer
- cropdetect filter
- ffmpeg -crop* options removed
- transpose filter added
- ffmpeg -force_key_frames option added
- demuxer for receiving raw rtp:// URLs without an SDP description
- single stream LATM/LOAS decoder
- setpts filter added
- Win64 support for optimized x86 assembly functions
- MJPEG/AVI1 to JPEG/JFIF bitstream filter
- ASS subtitle encoder and decoder
- IEC 61937 encapsulation for E-AC-3, TrueHD, DTS-HD (for HDMI passthrough)
- overlay filter added
- rename aspect filter to setdar, and pixelaspect to setsar
- IEC 61937 demuxer
- Mobotix .mxg demuxer
- frei0r source added
- hqdn3d filter added
- RTP depacketization of QCELP
- FLAC parser added
- gradfun filter added
- AMR-WB decoder
- replace the ocv_smooth filter with a more generic ocv filter
- Windows Televison (WTV) demuxer
- FFmpeg metadata format muxer and demuxer
- SubRip (srt) subtitle decoder
- floating-point AC-3 encoder added
- Lagarith decoder
- ffmpeg -copytb option added
- IVF muxer added
- Wing Commander IV movies decoder added
- movie source added
- Bink version 'b' audio and video decoder
- Bitmap Brothers JV playback system
- Apple HTTP Live Streaming protocol handler
- sndio support for playback and record
- Linux framebuffer input device added
- Chronomaster DFA decoder
- Mobotix MxPEG decoder
- AAC encoding via libvo-aacenc
- AMR-WB encoding via libvo-amrwbenc
- xWMA demuxer
- fieldorder video filter added


version 0.6:

- PB-frame decoding for H.263
- deprecated vhook subsystem removed
- deprecated old scaler removed
- VQF demuxer
- Alpha channel scaler
- PCX encoder
- RTP packetization of H.263
- RTP packetization of AMR
- RTP depacketization of Vorbis
- CorePNG decoding support
- Cook multichannel decoding support
- introduced avlanguage helpers in libavformat
- 8088flex TMV demuxer and decoder
- per-stream language-tags extraction in asfdec
- V210 decoder and encoder
- remaining GPL parts in AC-3 decoder converted to LGPL
- QCP demuxer
- SoX native format muxer and demuxer
- AMR-NB decoding/encoding, AMR-WB decoding via OpenCORE libraries
- DPX image decoder
- Electronic Arts Madcow decoder
- DivX (XSUB) subtitle encoder
- nonfree libamr support for AMR-NB/WB decoding/encoding removed
- experimental AAC encoder
- RTP depacketization of ASF and RTSP from WMS servers
- RTMP support in libavformat
- noX handling for OPT_BOOL X options
- Wave64 demuxer
- IEC-61937 compatible Muxer
- TwinVQ decoder
- Bluray (PGS) subtitle decoder
- LPCM support in MPEG-TS (HDMV RID as found on Blu-ray disks)
- WMA Pro decoder
- Core Audio Format demuxer
- Atrac1 decoder
- MD STUDIO audio demuxer
- RF64 support in WAV demuxer
- MPEG-4 Audio Lossless Coding (ALS) decoder
- -formats option split into -formats, -codecs, -bsfs, and -protocols
- IV8 demuxer
- CDG demuxer and decoder
- R210 decoder
- Auravision Aura 1 and 2 decoders
- Deluxe Paint Animation playback system
- SIPR decoder
- Adobe Filmstrip muxer and demuxer
- RTP depacketization of H.263
- Bink demuxer and audio/video decoders
- enable symbol versioning by default for linkers that support it
- IFF PBM/ILBM bitmap decoder
- concat protocol
- Indeo 5 decoder
- RTP depacketization of AMR
- WMA Voice decoder
- ffprobe tool
- AMR-NB decoder
- RTSP muxer
- HE-AAC v1 decoder
- Kega Game Video (KGV1) decoder
- VorbisComment writing for FLAC, Ogg FLAC and Ogg Speex files
- RTP depacketization of Theora
- HTTP Digest authentication
- RTMP/RTMPT/RTMPS/RTMPE/RTMPTE protocol support via librtmp
- Psygnosis YOP demuxer and video decoder
- spectral extension support in the E-AC-3 decoder
- unsharp video filter
- RTP hinting in the mov/3gp/mp4 muxer
- Dirac in Ogg demuxing
- seek to keyframes in Ogg
- 4:2:2 and 4:4:4 Theora decoding
- 35% faster VP3/Theora decoding
- faster AAC decoding
- faster H.264 decoding
- RealAudio 1.0 (14.4K) encoder


version 0.5:

- DV50 AKA DVCPRO50 encoder, decoder, muxer and demuxer
- TechSmith Camtasia (TSCC) video decoder
- IBM Ultimotion (ULTI) video decoder
- Sierra Online audio file demuxer and decoder
- Apple QuickDraw (qdrw) video decoder
- Creative ADPCM audio decoder (16 bits as well as 8 bits schemes)
- Electronic Arts Multimedia (WVE/UV2/etc.) file demuxer
- Miro VideoXL (VIXL) video decoder
- H.261 video encoder
- QPEG video decoder
- Nullsoft Video (NSV) file demuxer
- Shorten audio decoder
- LOCO video decoder
- Apple Lossless Audio Codec (ALAC) decoder
- Winnov WNV1 video decoder
- Autodesk Animator Studio Codec (AASC) decoder
- Indeo 2 video decoder
- Fraps FPS1 video decoder
- Snow video encoder/decoder
- Sonic audio encoder/decoder
- Vorbis audio decoder
- Macromedia ADPCM decoder
- Duck TrueMotion 2 video decoder
- support for decoding FLX and DTA extensions in FLIC files
- H.264 custom quantization matrices support
- ffserver fixed, it should now be usable again
- QDM2 audio decoder
- Real Cooker audio decoder
- TrueSpeech audio decoder
- WMA2 audio decoder fixed, now all files should play correctly
- RealAudio 14.4 and 28.8 decoders fixed
- JPEG-LS decoder
- build system improvements
- tabs and trailing whitespace removed from the codebase
- CamStudio video decoder
- AIFF/AIFF-C audio format, encoding and decoding
- ADTS AAC file reading and writing
- Creative VOC file reading and writing
- American Laser Games multimedia (*.mm) playback system
- Zip Motion Blocks Video decoder
- improved Theora/VP3 decoder
- True Audio (TTA) decoder
- AVS demuxer and video decoder
- JPEG-LS encoder
- Smacker demuxer and decoder
- NuppelVideo/MythTV demuxer and RTjpeg decoder
- KMVC decoder
- MPEG-2 intra VLC support
- MPEG-2 4:2:2 encoder
- Flash Screen Video decoder
- GXF demuxer
- Chinese AVS decoder
- GXF muxer
- MXF demuxer
- VC-1/WMV3/WMV9 video decoder
- MacIntel support
- AVISynth support
- VMware video decoder
- VP5 video decoder
- VP6 video decoder
- WavPack lossless audio decoder
- Targa (.TGA) picture decoder
- Vorbis audio encoder
- Delphine Software .cin demuxer/audio and video decoder
- Tiertex .seq demuxer/video decoder
- MTV demuxer
- TIFF picture encoder and decoder
- GIF picture decoder
- Intel Music Coder decoder
- Zip Motion Blocks Video encoder
- Musepack decoder
- Flash Screen Video encoder
- Theora encoding via libtheora
- BMP encoder
- WMA encoder
- GSM-MS encoder and decoder
- DCA decoder
- DXA demuxer and decoder
- DNxHD decoder
- Gamecube movie (.THP) playback system
- Blackfin optimizations
- Interplay C93 demuxer and video decoder
- Bethsoft VID demuxer and video decoder
- CRYO APC demuxer
- Atrac3 decoder
- V.Flash PTX decoder
- RoQ muxer, RoQ audio encoder
- Renderware TXD demuxer and decoder
- extern C declarations for C++ removed from headers
- sws_flags command line option
- codebook generator
- RoQ video encoder
- QTRLE encoder
- OS/2 support removed and restored again
- AC-3 decoder
- NUT muxer
- additional SPARC (VIS) optimizations
- Matroska muxer
- slice-based parallel H.264 decoding
- Monkey's Audio demuxer and decoder
- AMV audio and video decoder
- DNxHD encoder
- H.264 PAFF decoding
- Nellymoser ASAO decoder
- Beam Software SIFF demuxer and decoder
- libvorbis Vorbis decoding removed in favor of native decoder
- IntraX8 (J-Frame) subdecoder for WMV2 and VC-1
- Ogg (Theora, Vorbis and FLAC) muxer
- The "device" muxers and demuxers are now in a new libavdevice library
- PC Paintbrush PCX decoder
- Sun Rasterfile decoder
- TechnoTrend PVA demuxer
- Linux Media Labs MPEG-4 (LMLM4) demuxer
- AVM2 (Flash 9) SWF muxer
- QT variant of IMA ADPCM encoder
- VFW grabber
- iPod/iPhone compatible mp4 muxer
- Mimic decoder
- MSN TCP Webcam stream demuxer
- RL2 demuxer / decoder
- IFF demuxer
- 8SVX audio decoder
- non-recursive Makefiles
- BFI demuxer
- MAXIS EA XA (.xa) demuxer / decoder
- BFI video decoder
- OMA demuxer
- MLP/TrueHD decoder
- Electronic Arts CMV decoder
- Motion Pixels Video decoder
- Motion Pixels MVI demuxer
- removed animated GIF decoder/demuxer
- D-Cinema audio muxer
- Electronic Arts TGV decoder
- Apple Lossless Audio Codec (ALAC) encoder
- AAC decoder
- floating point PCM encoder/decoder
- MXF muxer
- DV100 AKA DVCPRO HD decoder and demuxer
- E-AC-3 support added to AC-3 decoder
- Nellymoser ASAO encoder
- ASS and SSA demuxer and muxer
- liba52 wrapper removed
- SVQ3 watermark decoding support
- Speex decoding via libspeex
- Electronic Arts TGQ decoder
- RV40 decoder
- QCELP / PureVoice decoder
- RV30 decoder
- hybrid WavPack support
- R3D REDCODE demuxer
- ALSA support for playback and record
- Electronic Arts TQI decoder
- OpenJPEG based JPEG 2000 decoder
- NC (NC4600) camera file demuxer
- Gopher client support
- MXF D-10 muxer
- generic metadata API


version 0.4.9-pre1:

- DV encoder, DV muxer
- Microsoft RLE video decoder
- Microsoft Video-1 decoder
- Apple Animation (RLE) decoder
- Apple Graphics (SMC) decoder
- Apple Video (RPZA) decoder
- Cinepak decoder
- Sega FILM (CPK) file demuxer
- Westwood multimedia support (VQA & AUD files)
- Id Quake II CIN playback support
- 8BPS video decoder
- FLIC playback support
- RealVideo 2.0 (RV20) decoder
- Duck TrueMotion v1 (DUCK) video decoder
- Sierra VMD demuxer and video decoder
- MSZH and ZLIB decoder support
- SVQ1 video encoder
- AMR-WB support
- PPC optimizations
- rate distortion optimal cbp support
- rate distorted optimal ac prediction for MPEG-4
- rate distorted optimal lambda->qp support
- AAC encoding with libfaac
- Sunplus JPEG codec (SP5X) support
- use Lagrange multipler instead of QP for ratecontrol
- Theora/VP3 decoding support
- XA and ADX ADPCM codecs
- export MPEG-2 active display area / pan scan
- Add support for configuring with IBM XLC
- floating point AAN DCT
- initial support for zygo video (not complete)
- RGB ffv1 support
- new audio/video parser API
- av_log() system
- av_read_frame() and av_seek_frame() support
- missing last frame fixes
- seek by mouse in ffplay
- noise reduction of DCT coefficients
- H.263 OBMC & 4MV support
- H.263 alternative inter vlc support
- H.263 loop filter
- H.263 slice structured mode
- interlaced DCT support for MPEG-2 encoding
- stuffing to stay above min_bitrate
- MB type & QP visualization
- frame stepping for ffplay
- interlaced motion estimation
- alternate scantable support
- SVCD scan offset support
- closed GOP support
- SSE2 FDCT
- quantizer noise shaping
- G.726 ADPCM audio codec
- MS ADPCM encoding
- multithreaded/SMP motion estimation
- multithreaded/SMP encoding for MPEG-1/MPEG-2/MPEG-4/H.263
- multithreaded/SMP decoding for MPEG-2
- FLAC decoder
- Metrowerks CodeWarrior suppport
- H.263+ custom pcf support
- nicer output for 'ffmpeg -formats'
- Matroska demuxer
- SGI image format, encoding and decoding
- H.264 loop filter support
- H.264 CABAC support
- nicer looking arrows for the motion vector visualization
- improved VCD support
- audio timestamp drift compensation
- MPEG-2 YUV 422/444 support
- polyphase kaiser windowed sinc and blackman nuttall windowed sinc audio resample
- better image scaling
- H.261 support
- correctly interleave packets during encoding
- VIS optimized motion compensation
- intra_dc_precision>0 encoding support
- support reuse of motion vectors/MB types/field select values of the source video
- more accurate deblock filter
- padding support
- many optimizations and bugfixes
- FunCom ISS audio file demuxer and according ADPCM decoding


version 0.4.8:

- MPEG-2 video encoding (Michael)
- Id RoQ playback subsystem (Mike Melanson and Tim Ferguson)
- Wing Commander III Movie (.mve) file playback subsystem (Mike Melanson
  and Mario Brito)
- Xan DPCM audio decoder (Mario Brito)
- Interplay MVE playback subsystem (Mike Melanson)
- Duck DK3 and DK4 ADPCM audio decoders (Mike Melanson)


version 0.4.7:

- RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from mplayerhq
  (originally from public domain player for Amiga at http://www.honeypot.net/audio)
- current version now also compiles with older GCC (Fabrice)
- 4X multimedia playback system including 4xm file demuxer (Mike
  Melanson), and 4X video and audio codecs (Michael)
- Creative YUV (CYUV) decoder (Mike Melanson)
- FFV1 codec (our very simple lossless intra only codec, compresses much better
  than HuffYUV) (Michael)
- ASV1 (Asus), H.264, Intel indeo3 codecs have been added (various)
- tiny PNG encoder and decoder, tiny GIF decoder, PAM decoder (PPM with
  alpha support), JPEG YUV colorspace support. (Fabrice Bellard)
- ffplay has been replaced with a newer version which uses SDL (optionally)
  for multiplatform support (Fabrice)
- Sorenson Version 3 codec (SVQ3) support has been added (decoding only) - donated
  by anonymous
- AMR format has been added (Johannes Carlsson)
- 3GP support has been added (Johannes Carlsson)
- VP3 codec has been added (Mike Melanson)
- more MPEG-1/2 fixes
- better multiplatform support, MS Visual Studio fixes (various)
- AltiVec optimizations (Magnus Damn and others)
- SH4 processor support has been added (BERO)
- new public interfaces (avcodec_get_pix_fmt) (Roman Shaposhnick)
- VOB streaming support (Brian Foley)
- better MP3 autodetection (Andriy Rysin)
- qpel encoding (Michael)
- 4mv+b frames encoding finally fixed (Michael)
- chroma ME (Michael)
- 5 comparison functions for ME (Michael)
- B-frame encoding speedup (Michael)
- WMV2 codec (unfinished - Michael)
- user specified diamond size for EPZS (Michael)
- Playstation STR playback subsystem, still experimental (Mike and Michael)
- ASV2 codec (Michael)
- CLJR decoder (Alex)

.. And lots more new enhancements and fixes.


version 0.4.6:

- completely new integer only MPEG audio layer 1/2/3 decoder rewritten
  from scratch
- Recoded DCT and motion vector search with gcc (no longer depends on nasm)
- fix quantization bug in AC3 encoder
- added PCM codecs and format. Corrected WAV/AVI/ASF PCM issues
- added prototype ffplay program
- added GOB header parsing on H.263/H.263+ decoder (Juanjo)
- bug fix on MCBPC tables of H.263 (Juanjo)
- bug fix on DC coefficients of H.263 (Juanjo)
- added Advanced Prediction Mode on H.263/H.263+ decoder (Juanjo)
- now we can decode H.263 streams found in QuickTime files (Juanjo)
- now we can decode H.263 streams found in VIVO v1 files(Juanjo)
- preliminary RTP "friendly" mode for H.263/H.263+ coding. (Juanjo)
- added GOB header for H.263/H.263+ coding on RTP mode (Juanjo)
- now H.263 picture size is returned on the first decoded frame (Juanjo)
- added first regression tests
- added MPEG-2 TS demuxer
- new demux API for libav
- more accurate and faster IDCT (Michael)
- faster and entropy-controlled motion search (Michael)
- two pass video encoding (Michael)
- new video rate control (Michael)
- added MSMPEG4V1, MSMPEGV2 and WMV1 support (Michael)
- great performance improvement of video encoders and decoders (Michael)
- new and faster bit readers and vlc parsers (Michael)
- high quality encoding mode: tries all macroblock/VLC types (Michael)
- added DV video decoder
- preliminary RTP/RTSP support in ffserver and libavformat
- H.263+ AIC decoding/encoding support (Juanjo)
- VCD MPEG-PS mode (Juanjo)
- PSNR stuff (Juanjo)
- simple stats output (Juanjo)
- 16-bit and 15-bit RGB/BGR/GBR support (Bisqwit)


version 0.4.5:

- some header fixes (Zdenek Kabelac <kabi at informatics.muni.cz>)
- many MMX optimizations (Nick Kurshev <nickols_k at mail.ru>)
- added configure system (actually a small shell script)
- added MPEG audio layer 1/2/3 decoding using LGPL'ed mpglib by
  Michael Hipp (temporary solution - waiting for integer only
  decoder)
- fixed VIDIOCSYNC interrupt
- added Intel H.263 decoding support ('I263' AVI fourCC)
- added Real Video 1.0 decoding (needs further testing)
- simplified image formats again. Added PGM format (=grey
  pgm). Renamed old PGM to PGMYUV.
- fixed msmpeg4 slice issues (tell me if you still find problems)
- fixed OpenDivX bugs with newer versions (added VOL header decoding)
- added support for MPlayer interface
- added macroblock skip optimization
- added MJPEG decoder
- added mmx/mmxext IDCT from libmpeg2
- added pgmyuvpipe, ppm, and ppm_pipe formats (original patch by Celer
  <celer at shell.scrypt.net>)
- added pixel format conversion layer (e.g. for MJPEG or PPM)
- added deinterlacing option
- MPEG-1/2 fixes
- MPEG-4 vol header fixes (Jonathan Marsden <snmjbm at pacbell.net>)
- ARM optimizations (Lionel Ulmer <lionel.ulmer at free.fr>).
- Windows porting of file converter
- added MJPEG raw format (input/ouput)
- added JPEG image format support (input/output)


version 0.4.4:

- fixed some std header definitions (Bjorn Lindgren
  <bjorn.e.lindgren at telia.com>).
- added MPEG demuxer (MPEG-1 and 2 compatible).
- added ASF demuxer
- added prototype RM demuxer
- added AC3 decoding (done with libac3 by Aaron Holtzman)
- added decoding codec parameter guessing (.e.g. for MPEG, because the
  header does not include them)
- fixed header generation in MPEG-1, AVI and ASF muxer: wmplayer can now
  play them (only tested video)
- fixed H.263 white bug
- fixed phase rounding in img resample filter
- add MMX code for polyphase img resample filter
- added CPU autodetection
- added generic title/author/copyright/comment string handling (ASF and RM
  use them)
- added SWF demux to extract MP3 track (not usable yet because no MP3
  decoder)
- added fractional frame rate support
- codecs are no longer searched by read_header() (should fix ffserver
  segfault)


version 0.4.3:

- BGR24 patch (initial patch by Jeroen Vreeken <pe1rxq at amsat.org>)
- fixed raw yuv output
- added motion rounding support in MPEG-4
- fixed motion bug rounding in MSMPEG4
- added B-frame handling in video core
- added full MPEG-1 decoding support
- added partial (frame only) MPEG-2 support
- changed the FOURCC code for H.263 to "U263" to be able to see the
  +AVI/H.263 file with the UB Video H.263+ decoder. MPlayer works with
  this +codec ;) (JuanJo).
- Halfpel motion estimation after MB type selection (JuanJo)
- added pgm and .Y.U.V output format
- suppressed 'img:' protocol. Simply use: /tmp/test%d.[pgm|Y] as input or
  output.
- added pgmpipe I/O format (original patch from Martin Aumueller
  <lists at reserv.at>, but changed completely since we use a format
  instead of a protocol)


version 0.4.2:

- added H.263/MPEG-4/MSMPEG4 decoding support. MPEG-4 decoding support
  (for OpenDivX) is almost complete: 8x8 MVs and rounding are
  missing. MSMPEG4 support is complete.
- added prototype MPEG-1 decoder. Only I- and P-frames handled yet (it
  can decode ffmpeg MPEGs :-)).
- added libavcodec API documentation (see apiexample.c).
- fixed image polyphase bug (the bottom of some images could be
  greenish)
- added support for non clipped motion vectors (decoding only)
  and image sizes non-multiple of 16
- added support for AC prediction (decoding only)
- added file overwrite confirmation (can be disabled with -y)
- added custom size picture to H.263 using H.263+ (Juanjo)


version 0.4.1:

- added MSMPEG4 (aka DivX) compatible encoder. Changed default codec
  of AVI and ASF to DIV3.
- added -me option to set motion estimation method
  (default=log). suppressed redundant -hq option.
- added options -acodec and -vcodec to force a given codec (useful for
  AVI for example)
- fixed -an option
- improved dct_quantize speed
- factorized some motion estimation code


version 0.4.0:

- removing grab code from ffserver and moved it to ffmpeg. Added
  multistream support to ffmpeg.
- added timeshifting support for live feeds (option ?date=xxx in the
  URL)
- added high quality image resize code with polyphase filter (need
  mmx/see optimization). Enable multiple image size support in ffserver.
- added multi live feed support in ffserver
- suppressed master feature from ffserver (it should be done with an
  external program which opens the .ffm url and writes it to another
  ffserver)
- added preliminary support for video stream parsing (WAV and AVI half
  done). Added proper support for audio/video file conversion in
  ffmpeg.
- added preliminary support for video file sending from ffserver
- redesigning I/O subsystem: now using URL based input and output
  (see avio.h)
- added WAV format support
- added "tty user interface" to ffmpeg to stop grabbing gracefully
- added MMX/SSE optimizations to SAD (Sums of Absolutes Differences)
  (Juan J. Sierralta P. a.k.a. "Juanjo" <juanjo at atmlab.utfsm.cl>)
- added MMX DCT from mpeg2_movie 1.5 (Juanjo)
- added new motion estimation algorithms, log and phods (Juanjo)
- changed directories: libav for format handling, libavcodec for
  codecs


version 0.3.4:

- added stereo in MPEG audio encoder


version 0.3.3:

- added 'high quality' mode which use motion vectors. It can be used in
  real time at low resolution.
- fixed rounding problems which caused quality problems at high
  bitrates and large GOP size


version 0.3.2: small fixes

- ASF fixes
- put_seek bug fix


version 0.3.1: added avi/divx support

- added AVI support
- added MPEG-4 codec compatible with OpenDivX. It is based on the H.263 codec
- added sound for flash format (not tested)


version 0.3: initial public release
