Re-release 9.15 as 9.16
[libav.git] / Changelog
1 Releases are sorted from youngest to oldest.
2
3 version 9.16:
4 - vp3: Copy all 3 frames for thread updates (CVE-2011-3934)
5 - mpegts: Do not try to write a PMT larger than SECTION_SIZE (CVE-2014-2263)
6 - mpegts: Define the section length with a constant
7 - error_concealment: avoid using the picture if not fully setup (CVE-2013-0860)
8 - svq1: do not modify the input packet
9 - cdgraphics: do not return 0 from the decode function
10 - cdgraphics: switch to bytestream2 (CVE-2013-3674)
11 - huffyuvdec: check width size for yuv422p (CVE-2013-0848)
12 - mmvideo: check horizontal coordinate too (CVE-2013-3672)
13 - wmalosslessdec: fix mclms_coeffs* array size (CVE-2014-2098)
14 - lavc: Check the image size before calling get_buffer (CVE-2011-3935)
15 - huffyuv: Check and propagate function return values (CVE-2013-0868)
16 - h264: prevent theoretical infinite loop in SEI parsing (CVE-2011-3946)
17 - h264_sei: check SEI size
18 - pgssubdec: Check RLE size before copying (CVE-2013-0852)
19 - fate: Add dependencies for dct/fft/mdct/rdft tests
20 - video4linux2: Avoid a floating point exception
21 - vf_select: Drop a debug av_log with an unchecked double to enum conversion
22 - eamad: use the bytestream2 API instead of AV_RL (CVE-2013-0851)
23
24 version 9.14:
25 - adpcm: Write the proper predictor in trellis mode in IMA QT
26 - adpcm: Avoid reading out of bounds in the IMA QT trellis encoder
27 - Check mp3 header before calling avpriv_mpegaudio_decode_header() (bug/705)
28 - Check if an mp3 header is using a reserved sample rate
29 - lzo: Handle integer overflow (bug/704)
30 - avconv: make -shortest work with streamcopy
31
32 Version 9.13:
33 - swscale: Fix an undefined behaviour
34 - matroska: add the Opus mapping
35 - mp3enc: Properly write bitrate value in XING header (Fixes: debian/736088)
36 - origin/pu/9 oggdec: add support for Opus in Ogg demuxing (Fixes: libav/603, debian/720563)
37 - apedec: do not buffer decoded samples over AVPackets (Fixes: debian/744901)
38 - isom: lpcm in mov default to big endian
39 - movdec: handle 0x7fff langcode as macintosh per the specs
40 - h264: reset next_output_pic earlier in start_frame() (Fixes: libav/672, debian/741240, ubuntu/1288206)
41 - Revert "pthread: flush all threads on flush, not just the first one"
42 - rtmpproto: Make sure to pass on the error code if read_connect failed
43 - lavr: allocate the resampling buffer with a positive size
44 - tiffdec: use bytestream2 to simplify overread/overwrite protection
45 - bytestream: add bytestream2_copy_buffer() functions
46 - bytestream: add functions for accessing size of buffer
47 - resample: fix avresample_get_delay() return value
48 - avi: Improve non-interleaved detection (Fixes: libav/666)
49 - af_channelmap: fix ONE_STR mapping mode
50 - movenc: allow override of "writing application" tag
51 - matroskaenc: allow override of "writing application" tag
52 - avfilter: Add missing emms_c when needed
53 - build: Use pkg-config for openjpeg (Fixes: libav/387)
54 - pthread: flush all threads on flush, not just the first one (Fixes: vlc/9665)
55 - mpeg12: check scantable indices in all decode_block functions
56 - sgidec: fix buffer size check in expand_rle_row()
57 - adx: check that the offset is not negative
58 - mpegvideo: set reference/pict_type on generated reference frames
59 - h264: Fix various crashes found in samples pointed by Mateusz "j00ru" Jurczyk and Gynvael Coldwind - Thanks!
60
61
62 version 9.12:
63 - configure: Update freetype check to follow upstream
64 - drawtext: Drop pointless header
65 - configure: Support preprocessor macros as header names
66 - arm: hpeldsp: fix put_pixels8_y2_{,no_rnd_}armv6
67 - qt-faststart: Check offset_count before reading from the moov_atom buffer
68 - arm: hpeldsp: prevent overreads in armv6 asm
69 - configure: enable PIC on s390(x)
70 - ituh263: reject b-frame with pp_time = 0
71 - lagarith: reallocate rgb_planes when needed
72 - truemotion1: check the header size
73 - shorten: pad the internal bitstream buffer
74 - samplefmt: avoid integer overflow in av_samples_get_buffer_size()
75 - h264: Fix a typo from the previous commit
76 - h264: Lower bound check for slice offsets
77 - Add missing header to fix compilation after d2a0654
78 - configure: Add missing dependency of Snow decoder on videodsp
79 - rpza: limit the number of blocks to the total remaining blocks in the frame
80
81
82 version 9.11:
83 - oggparseogm: check timing variables
84 - mathematics: remove asserts from av_rescale_rnd()
85 - vc1: Always reset numref when parsing a new frame header.
86 - h264: reset num_reorder_frames if it is invalid
87 - h264: check that an IDR NAL only contains I slices
88 - mov: Free an earlier allocated array if allocating a new one
89 - mov: Free intermediate arrays in the normal cleanup function
90 - segafilm: fix leaks if reading the header fails
91 - h264_cavlc: check the size of the intra PCM data.
92 - h263: Check init_get_bits return value
93 - cavsdec: check ff_get_buffer() return value
94 - cavs: Check for negative cbp
95 - avi: DV in AVI must be considered single stream
96 - vmnc: Check the cursor dimensions
97 - vmnc: Port to bytestream2
98 - vmnc: K&R formatting cosmetics
99 - flashsv: Check diff_start diff_height values
100 - dsputil/pngdsp: fix signed/unsigned type in end comparison (CVE-2013-7010, CVE-2013-7014)
101 - lavf: make av_probe_input_buffer more robust (CVE-2012-6618)
102 - lavf: use a fixed width type
103 - lavf: simplify handling of offset in av_probe_input_buffer()
104 - prores: Error out only on surely incomplete ac_coeffs
105 - shorten: Fix out-of-array read
106 - prores: Add a codepath for decoding errors
107 - nut: Fix unchecked allocations
108 - avi: directly resync on DV in AVI read failure
109 - mov: Don't allocate arrays with av_malloc that will be realloced
110 - shorten: Extend fixed_coeffs to properly support pred_order 0
111
112 version 9.10:
113 - alac: Do bounds checking of lpc_order read from the bitstream
114 - ape: Don't allow the seektable to be omitted
115 - asfdec: Check the return value of asf_read_stream_properties
116 - asvdec: Verify the amount of extradata
117 - avidec: Make sure a packet is large enough before reading its data
118 - bfi: Add some very basic sanity checks for input packet sizes
119 - bfi: Avoid divisions by zero
120 - cavsdec: Make sure a sequence header has been decoded before decoding pictures
121 - dcadec: Validate the lfe parameter
122 - dsicin: Add some basic sanity checks for fields read from the file
123 - eacmv: Make sure a reference frame exists before referencing it
124 - electronicarts: Add more sanity checking for the number of channels
125 - electronicarts: Check packet sizes before reading
126 - ffv1: Make sure at least one slice context is initialized
127 - fraps: Make the input buffer size checks more strict
128 - h263dec: Remove a hack that can cause infinite loops
129 - idroqdec: Make sure a video stream has been allocated before returning packets
130 - ivi_common: Make sure color planes have been initialized
131 - lavf: Avoid setting avg_frame_rate if delta_dts is negative
132 - mace: Make sure that the channel count is set to a valid value
133 - matroskadec: Verify realaudio codec parameters
134 - mov: Don't use a negative duration for setting other fields
135 - mov: Make sure the read sample count is nonnegative
136 - mpc8: Check the seek table size parsed from the bitstream
137 - mpc8: Make sure the first stream exists before parsing the seek table
138 - mpeg4videodec: Check the width/height in mpeg4_decode_sprite_trajectory
139 - mpegaudiodec: Validate that the number of channels fits at the given offset
140 - mpegvideo: Initialize chroma_*_shift and codec_tag even if the size is 0
141 - mvi: Add sanity checking for the audio frame size
142 - mxfdec: set audio timebase to 1/samplerate
143 - oggparseogm: Convert to use bytestream2
144 - omadec: Properly check lengths before incrementing the position
145 - pcx: Check the packet size before assuming it fits a palette
146 - pcx: Consume the whole packet if giving up due to missing palette
147 - pngdec: Stop trying to decode once inflate returns Z_STREAM_END
148 - qpeg: Add checks for running out of rows in qpeg_decode_inter
149 - r3d: Add more input value validation
150 - riffdec: Add sanity checks for the sample rate
151 - rl2: Avoid a division by zero
152 - rmdec: Validate the fps value
153 - rpza: Fix a buffer size check
154 - rv10: Validate the dimensions set from the container
155 - rv34: Check the return value from ff_rv34_decode_init
156 - segafilm: Validate the number of audio channels
157 - shorten: Break out of loop looking for fmt chunk if none is found
158 - shorten: Use a checked bytestream reader for the wave header
159 - sierravmd: Do sanity checking of frame sizes
160 - smacker: Avoid integer overflow when allocating packets
161 - smacker: Don't return packets in unallocated streams
162 - smacker: Make sure we don't fill in huffman codes out of range
163 - svq3: Avoid a division by zero
164 - svq3: Check for any negative return value from ff_h264_check_intra_pred_mode
165 - truemotion2: Use av_freep properly in an error path
166 - twinvqdec: Check the ibps parameter separately
167 - vc1dec: Don't decode slices when the latest slice header failed to decode
168 - vc1dec: Fix leaks in ff_vc1_decode_init_alloc_tables on errors
169 - vc1dec: Make sure last_picture is initialized in vc1_decode_skip_blocks
170 - vc1dec: Undo mpegvideo initialization if unable to allocate tables
171 - vocdec: Don't update codec parameters mid-stream
172 - vp3: Check the framerate for validity
173 - vqf: Make sure sample_rate is set to a valid value
174 - vqf: Make sure the bitrate is in the valid range
175 - wnv1: Make sure the input packet is large enough
176 - wtv: Add more sanity checks for a length read from the file
177 - xan: Only read within the data that actually was initialized
178 - xan: Use bytestream2 to limit reading to within the buffer
179 - xmv: Add more sanity checks for parameters read from the bitstream
180 - xwma: Avoid division by zero
181 - xxan: Disallow odd width
182 - zmbvdec: Check the buffer size for uncompressed data
183
184 version 9.9:
185 - 4xm: check that bits per sample is strictly positive
186 - 4xm: Check that the read track value is non-negative
187 - 4xm: Reject not a multiple of 16 dimension
188 - 8bps: Bound-check the input buffer
189 - aac: Check init_get_bits return value
190 - aac: return meaningful errors
191 - ac3: Clean up the error paths
192 - ac3dec: Don't consume more data than the actual input packet size
193 - ac3dec: Increment channel pointers only once per channel
194 - ac3: Do not clash with normal AVERROR
195 - ac3: Return proper error codes
196 - adpcm: Write the correct number of samples for ima-dk4
197 - alac: Check that the channels fit at the given offset
198 - alac: Limit max_samples_per_frame
199 - alsdec: Clean up error paths
200 - alsdec: Fix the clipping range
201 - ape demuxer: check for EOF in potentially long loops
202 - atrac3: Error on impossible encoding/channel combinations
203 - atrac3: fix error handling
204 - atrac3: set the getbits context the right buffer_end
205 - avconv: do not use lavfi direct rendering with -deinterlace
206 - avidec: Let the inner dv demuxer take care of discarding
207 - avio: Handle AVERROR_EOF in the same way as the return value 0
208 - bink: Bound check the quantization matrix.
209 - dca: Error out on missing DSYNC
210 - dca: Respect the current limits in the downmixing capabilities
211 - dsicinav: Bound-check the source buffer when needed
212 - dsicinav: Clip the source size to the expected maximum
213 - dv: Add a guard to not overread the ppcm array
214 - dxa: Make sure the reference frame exists
215 - h261: check the mtype index
216 - iff: Do not read over the source buffer
217 - imc: Catch a division by zero
218 - indeo4: Check the quantization matrix index
219 - indeo4: Do not access missing reference MV
220 - indeo4: Validate scantable dimension
221 - indeo5: return proper error codes
222 - indeo: Bound-check before applying motion compensation
223 - indeo: Bound-check before applying transform
224 - indeo: Do not reference mismatched tiles
225 - indeo: Reject impossible FRAMETYPE_NULL
226 - indeo: Sanitize ff_ivi_init_planes fail paths
227 - lavf: avoid integer overflow when estimating bitrate
228 - lavf: Make sure avg_frame_rate can be calculated without integer overflow
229 - matroskadec: Check that .lang was allocated and set before reading it
230 - mjpegb: Detect changing number of planes in interlaced video
231 - mlpdec: Do not set invalid context in read_restart_header
232 - mov: Do not allow updating the time scale after it has been set
233 - mov: Seek back if overreading an individual atom
234 - mpegvideo: Avoid 32-bit wrapping of linesize multiplications
235 - nuv: check ff_rtjpeg_decode_frame_yuv420 return value
236 - nuv: Do not ignore lzo decompression failures
237 - nuv: Pad the lzo outbuf
238 - nuv: Reset the frame on resize
239 - nuv: return meaningful error codes.
240 - nuv: Use av_fast_realloc
241 - ogg: Always alloc the private context in vorbis_header
242 - ogg: Fix potential infinite discard loop
243 - oma: check geob tag boundary
244 - oma: correctly mark and decrypt partial packets
245 - oma: refactor seek function
246 - pcm: always use codec->id instead of codec_id
247 - pcx: Do not overread source buffer in pcx_rle_decode
248 - pictordec: break out of both decoding loops when y drops below 0
249 - pictordec: pass correct context to avpriv_request_sample
250 - qdm2: check and reset dithering index per channel
251 - qdm2: Conceal broken samples
252 - qdm2: refactor joined stereo support
253 - qdm2: use init_static_data
254 - rmdec: Use the AVIOContext given as parameter in rm_read_metadata()
255 - rtjpeg: Use init_get_bits8
256 - rtmp: Do not misuse memcmp
257 - rtmp: rename data_size to size
258 - segafilm: Error out on impossible packet size
259 - vc1: check mb_height validity.
260 - vc1: check the source buffer in vc1_mc functions
261 - vcr1: add sanity checks
262 - vqavideo: check the version
263 - westwood_vqa: do not free extradata on error in read_header
264 - wmavoice: conceal clearly corrupted blocks
265 - wtv: Mark attachment with a negative stream id
266 - xl: Make sure the width is valid
267
268 version 9.8:
269 - kmvc: Clip pixel position to valid range
270 - kmvc: Use fixed sized arrays in the context
271 - indeo: Reject negative array indexes
272 - indeo: Check for reference when inheriting motion vectors
273 - indeo: Properly forward the error codes
274 - mjpeg: Check the unescaped size for overflows
275 - wmapro: Error out on impossible scale factor offsets
276 - wmapro: Check the min_samples_per_subframe
277 - wmapro: Return early on unsupported condition
278 - wmapro: Check num_vec_coeffs against the actual available buffer
279 - wmapro: Make sure there is room to store the current packet
280 - lavc: Move put_bits_left in put_bits.h
281 - 4xm: Do not overread the source buffer in decode_p_block
282 - 4xm: Check bitstream_size boundary before using it
283
284 version 9.7:
285
286 Most of the following fixes resulted from test samples that the Google
287 Security Team has kindly made available to us:
288
289 - 4xm: fix several programming errors to avoid crashes, etc.
290 - apetag: use int64_t for filesize
291 - jpegls: Fix invalid writes to memory
292 - ljpeg: use the correct number of components in YUV
293 - mjpeg: Validate sampling factors
294 - mjpegdec: properly report unsupported disabled features
295 - mjpegdec: validate parameters in mjpeg_decode_scan_progressive_ac
296 - mpegvideo: allocate sufficiently large scratch buffer for interlaced vid
297 - pixdesc: mark gray8 as pseudopal
298 - smacker: fix several programming errors to avoid crashes, etc.
299 - tiff: do not overread the source buffer
300 - vmd: drop incomplete chunks and spurious samples
301 - vmdav: convert to bytestream2 to avoid invalid reads and writes
302 - wavpack: check packet size early
303 - wavpack: use bytestream2 in wavpack_decode_block
304 - wavpack: validate samples size parsed in wavpack_decode_block
305
306
307 version 9.6:
308 - aac: check the maximum number of channels to avoid invalid writes
309 - indeo3: fix off by one in MV validity check
310 - id3v2: check for end of file while unescaping tags to avoid invalid
311   writes, reported by Google Security Team
312 - afifo: fix request_samples on the last frame in certain cases
313 - hls, segment: fix splitting for audio-only streams
314 - wav: Always seek to an even offset, Bug #500, LP: #1174737
315 - swscale: Use alpha from the right row in yuva2rgba_c, Bug #504
316 - indeo3: use unaligned reads on reference blocks, Bug #503
317 - oma: properly forward errors in oma_read_packet
318 - af_asyncts: fix offset calculation
319 - proresdec: support mixed interlaced/non-interlaced content
320
321 version 9.5:
322
323 Most of the following fixes resulted from test samples that the Google
324 Security Team has kindly made available to us:
325
326 - af_channelmap: sanity check input channel indices in all cases
327 - avfiltergraph: check for sws opts being non-NULL before using them
328 - bmv: check for len being valid in bmv_decode_frame()
329 - configure: Enable hwaccels without external dependencies by default
330 - dfa: check for invalid access in decode_wdlt()
331 - id3v2: pad the APIC packets as required by lavc
332 - indeo3: check motion vectors
333 - indeo3: fix data size check
334 - indeo3: switch parsing the header to bytestream2
335 - lavf: make sure stream probe data gets freed
336 - matroska: Update the available size after lace parsing
337 - matroska: fix a corner case in ebml-lace parsing
338 - matroska: pass the lace size to the matroska_parse_rm_audio
339 - mp3dec: fallback to generic seeking when a TOC is not present
340 - oggdec: fix faulty cleanup prototype
341 - oma: Validate sample rates
342 - qdm2: check that the FFT size is a power of 2
343 - riff: check for eof if chunk size and code are 0 to prevent an infinite loop
344 - rv10: check that extradata is large enough
345 - svq1dec: check that the reference frame has the same dimensions as the current one
346 - svq1dec: clip motion vectors to the frame size
347 - xmv: check audio track parameters validity
348 - xmv: do not leak memory in the error paths in xmv_read_header()
349
350
351 version 9.4:
352 - atrac3: avoid oversized shifting in decode_bytes()
353 - eamad: allocate a dummy reference frame when the real one is missing
354 - ffv1: fix calculating slice dimensions for version 2
355 - flacdec: simplify bounds checking in flac_probe()
356 - h264: check for luma and chroma bit dept being equal (CVE-2013-2277)
357 - hqdn3d: Fix out of array read in LOWPASS
358 - iff: validate CMAP palette size (CVE-2013-2495)
359 - ivi_common: do not call MC for intra frames when dc_transform is unset
360 - libmp3lame: use the correct remaining buffer size when flushing
361 - lzo: fix overflow checking in copy_backptr()
362 - mp3dec: Fix VBR bit rate parsing
363 - png: use av_mallocz_array() for the zlib zalloc function
364 - roqvideodec: fix a potential infinite loop in roqvideo_decode_frame()
365 - shorten: fix various programming mistakes
366 - vf_gradfun: fix uninitialized variable use
367 - vf_hqdn3d: fix uninitialized variable use
368 - vmdaudio: fix invalid reads when packet size is not a multiple of chunk size
369 - wmadec: require block_align to be set
370 - wmaprodec: require block_align to be set
371 - wmaprodec: return an error, not 0, when the input is too small
372 - xxan: fix invalid memory access in xan_decode_frame_type0()
373
374 version 9.3:
375 - h264: fix deadlocks with broken/fuzzed files
376 - flvdec: make decoder more robust
377 - vorbisdec: fix buffer overflow (CVE-2013-0894)
378 - ac3dec: validate channel output mode against channel count
379 - doc: minor improvements
380
381 version 9.2:
382 - loco: check that there is data left after decoding a plane.
383 - mov: use the format context for logging.
384 - lagarith: avoid infinite loop in lag_rac_refill() with corrupted files
385 - flicvideo: avoid an infinite loop in byte run compression
386 - av_memcpy_backptr: avoid an infinite loop for back = 0
387 - mlpdec: do not try to allocate a zero-sized output buffer.
388 - qtrle: add more checks against pixel_ptr being negative.
389 - 4xm: check the return value of read_huffman_tables().
390 - cavs: initialize various context tables, avoids crashes with corrupted files
391 - x86/H.264: Don't use redzone in AVX h264_deblock on Win64
392 - VQA video: check chunk sizes before reading chunks
393 - RoQ video decoder: check dimensions validity
394 - QDM2: check array index before use, fix out of array accesses
395 - mpegvideo: Do REBASE_PICTURE with byte pointers
396 - SVQ3: unbreak decoding
397 - libopencore-amrwb: Make AMR-WB ifdeffery more precise
398 - libopencore-amr: Conditionally compile decoder and encoder bits
399 - arm: Fall back to runtime cpu feature detection via /proc/cpuinfo
400 - xxan: properly handle odd heights
401 - msrledec: check bounds before constructing a possibly invalid pointer (CVE-2496)
402 - qtrle: fix the topmost line for 1bit
403 - aasc: fix output for msrle compression
404 - yop: check for input overreads
405 - yop: check that extradata is large enough
406 - fraps: fix off-by one bug for version 1
407 - vf_delogo: fix copying the input frame
408 - vf_delogo: fix an uninitialized read
409 - dnxhdenc: fix invalid reads in dnxhd_mb_var_thread()
410 - ATRAC3: use correct loop variable in add_tonal_components()
411 - MLP: store the channel layout for each substream
412 - MLP decoder: TrueHD: use Libav channel order
413 - x86: ac3: Fix HAVE_MMXEXT condition to only refer to external assembly
414 - arm: vp8: Fix the plain-armv6 version of vp8_luma_dc_wht
415 - lavr: call mix_function_init() in ff_audio_mix_set_matrix()
416 - rtpenc_chain: Use the original AVFormatContext for getting payload type
417 - rtp: Make sure the output format pointer is set
418 - rtp: Make sure priv_data is set before reading it
419 - videodsp_armv5te: remove #if HAVE_ARMV5TE_EXTERNAL
420 - get_bits: change the failure condition in init_get_bits
421 - mpegvideo: fix loop condition in draw_line()
422 - fate: update ref after rv30_loop_filter fix
423 - RV30: fix masking in rv30_loop_filter()
424 - libcdio: support recent cdio-paranoia
425 - Theora: Skip zero-sized headers
426 - H.264: add 3 pixels below for subpixel filter wait position
427 - H.264: fix ff_generate_sliding_window_mmcos() prototype
428 - H.264: don't clobber mmco opcode tables for non-first slice headers
429 - libx264: use the library specific default rc_initial_buffer_occupancy
430 - lavc: set the default rc_initial_buffer_occupancy
431 - lavc: introduce the convenience function init_get_bits8
432 - lavc: check for overflow in init_get_bits
433 - configure: enable pic for shared libs on AArch64
434 - zmbv: Reset the decoder on keyframe errors
435 - VC1 decoder: prevent a crash due missing pred_flag parameter
436 - matroska: Fix use after free
437 - VP3: Fix double free in vp3_decode_end()
438
439
440 version 9.1:
441 - Fix a crash on windows platforms related to automatic stack alignment
442   in libavresample
443 - Fix memleaks in the Ogg demuxer. Related to CVE-2012-2882
444
445
446 version 9:
447 - av_basename and av_dirname
448 - adobe and limelight publisher authentication in RTMP
449
450
451 version 9_beta3:
452 - ashowinfo audio filter
453 - 24-bit FLAC encoding
454 - audio volume filter
455 - deprecated the avconv -vol option. the volume filter is to be used instead.
456 - multi-channel ALAC encoding up to 7.1
457 - TAK demuxer, parser, and decoder
458 - adaptive frame-level multithreading for H.264
459
460
461 version 9_beta2:
462 - metadata (INFO tag) support in WAV muxer
463 - support for building DLLs using MSVC
464 - remove avserver daemon mode
465 - support building on the Plan 9 operating system
466 - ffv1: support version 1.3
467
468
469 version 9_beta1:
470
471 - XWD encoder and decoder
472 - Support for fragmentation in the mov/mp4 muxer
473 - ISMV (Smooth Streaming) muxer
474 - CDXL demuxer and decoder
475 - Apple ProRes encoder
476 - Sun Rasterfile Encoder
477 - remove libpostproc
478 - ID3v2 attached pictures reading and writing
479 - WMA Lossless decoder
480 - XBM encoder
481 - RealAudio Lossless decoder
482 - ZeroCodec decoder
483 - drop support for avconv without libavfilter
484 - add libavresample audio conversion library
485 - audio filters support in libavfilter and avconv
486 - add fps filter
487 - audio split filter
488 - audio mix filter
489 - avprobe output is now standard INI or JSON. The old format can still
490   be used with -of old.
491 - Indeo Audio decoder
492 - channelsplit audio filter
493 - RTMPT protocol support
494 - iLBC encoding/decoding via libilbc
495 - Microsoft Screen 1 decoder
496 - join audio filter
497 - audio channel mapping filter
498 - Microsoft ATC Screen decoder
499 - RTSP listen mode
500 - TechSmith Screen Codec 2 decoder
501 - AAC encoding via libfdk-aac
502 - Microsoft Expression Encoder Screen decoder
503 - RTMPS protocol support
504 - RTMPTS protocol support
505 - JPEG 2000 encoding support through OpenJPEG
506 - G.723.1 demuxer and decoder
507 - RTMPE protocol support
508 - RTMPTE protocol support
509 - Canopus Lossless Codec decoder
510 - avconv -shortest option is now per-output file,
511   -pass and -passlogfile are now per-output stream
512 - Ut Video encoder
513 - Microsoft Screen 2 decoder
514 - RTP depacketization of JPEG
515 - Smooth Streaming live segmenter muxer
516 - RTP packetization of JPEG
517 - Opus decoder and encoder using libopus
518 - remove -same_quant, it hasn't worked for years
519 - support for building with MSVC
520
521
522 version 0.8:
523
524 - GSM audio parser
525 - SMJPEG muxer
526
527
528 version 0.8_beta2:
529
530 - Automatic thread count based on detection number of (available) CPU cores
531 - Deprecate libpostproc. If desired, the switch --enable-postproc will
532   enable it but it may be removed in a later Libav release.
533 - rv34: frame-level multi-threading
534 - optimized iMDCT transform on x86 using SSE for for mpegaudiodec
535
536
537 version 0.8_beta1:
538
539 - BWF muxer
540 - Flash Screen Video 2 decoder
541 - ffplay/ffprobe/ffserver renamed to avplay/avprobe/avserver
542 - ffmpeg deprecated, added avconv, which is almost the same for now, except
543 for a few incompatible changes in the options, which will hopefully make them
544 easier to use. The changes are:
545     * The options placement is now strictly enforced! While in theory the
546       options for ffmpeg should be given in [input options] -i INPUT [output
547       options] OUTPUT order, in practice it was possible to give output options
548       before the -i and it mostly worked. Except when it didn't - the behavior was
549       a bit inconsistent. In avconv, it is not possible to mix input and output
550       options. All non-global options are reset after an input or output filename.
551     * All per-file options are now truly per-file - they apply only to the next
552       input or output file and specifying different values for different files
553       will now work properly (notably -ss and -t options).
554     * All per-stream options are now truly per-stream - it is possible to
555       specify which stream(s) should a given option apply to. See the Stream
556       specifiers section in the avconv manual for details.
557     * In ffmpeg some options (like -newvideo/-newaudio/...) are irregular in the
558       sense that they're specified after the output filename instead of before,
559       like all other options. In avconv this irregularity is removed, all options
560       apply to the next input or output file.
561     * -newvideo/-newaudio/-newsubtitle options were removed. Not only were they
562       irregular and highly confusing, they were also redundant. In avconv the -map
563       option will create new streams in the output file and map input streams to
564       them. E.g. avconv -i INPUT -map 0 OUTPUT will create an output stream for
565       each stream in the first input file.
566     * The -map option now has slightly different and more powerful syntax:
567         + Colons (':') are used to separate file index/stream type/stream index
568           instead of dots. Comma (',') is used to separate the sync stream instead
569           of colon.. This is done for consistency with other options.
570         + It's possible to specify stream type. E.g. -map 0:a:2 creates an
571           output stream from the third input audio stream.
572         + Omitting the stream index now maps all the streams of the given type,
573           not just the first. E.g. -map 0:s creates output streams for all the
574           subtitle streams in the first input file.
575         + Since -map can now match multiple streams, negative mappings were
576           introduced. Negative mappings disable some streams from an already
577           defined map. E.g. '-map 0 -map -0:a:1' means 'create output streams for
578           all the stream in the first input file, except for the second audio
579           stream'.
580     * There is a new option -c (or -codec) for choosing the decoder/encoder to
581       use, which allows to precisely specify target stream(s) consistently with
582       other options. E.g. -c:v lib264 sets the codec for all video streams, -c:a:0
583       libvorbis sets the codec for the first audio stream and -c copy copies all
584       the streams without reencoding. Old -vcodec/-acodec/-scodec options are now
585       aliases to -c:v/a/s
586     * It is now possible to precisely specify which stream should an AVOption
587       apply to. E.g. -b:v:0 2M sets the bitrate for the first video stream, while
588       -b:a 128k sets the bitrate for all audio streams. Note that the old -ab 128k
589       syntax is deprecated and will stop working soon.
590     * -map_chapters now takes only an input file index and applies to the next
591       output file. This is consistent with how all the other options work.
592     * -map_metadata now takes only an input metadata specifier and applies to
593       the next output file. Output metadata specifier is now part of the option
594       name, similarly to the AVOptions/map/codec feature above.
595     * -metadata can now be used to set metadata on streams and chapters, e.g.
596       -metadata:s:1 language=eng sets the language of the first stream to 'eng'.
597       This made -vlang/-alang/-slang options redundant, so they were removed.
598     * -qscale option now uses stream specifiers and applies to all streams, not
599       just video. I.e. plain -qscale number would now apply to all streams. To get
600       the old behavior, use -qscale:v. Also there is now a shortcut -q for -qscale
601       and -aq is now an alias for -q:a.
602     * -vbsf/-absf/-sbsf options were removed and replaced by a -bsf option which
603       uses stream specifiers. Use -bsf:v/a/s instead of the old options.
604     * -itsscale option now uses stream specifiers, so its argument is only the
605       scale parameter.
606     * -intra option was removed, use -g 0 for the same effect.
607     * -psnr option was removed, use -flags +psnr for the same effect.
608     * -vf option is now an alias to the new -filter option, which uses stream specifiers.
609     * -vframes/-aframes/-dframes options are now aliases to the new -frames option.
610     * -vtag/-atag/-stag options are now aliases to the new -tag option.
611 - XMV demuxer
612 - Windows Media Image decoder
613 - LATM muxer/demuxer
614 - showinfo filter
615 - split filter
616 - libcdio-paranoia input device for audio CD grabbing
617 - select filter
618 - Apple ProRes decoder
619 - CELT in Ogg demuxing
620 - VC-1 interlaced decoding
621 - lut, lutrgb, and lutyuv filters
622 - boxblur filter
623 - Ut Video decoder
624 - Speex encoding via libspeex
625 - 4:2:2 H.264 decoding support
626 - 4:2:2 and 4:4:4 H.264 encoding with libx264
627 - Pulseaudio input device
628 - replacement Indeo 3 decoder
629 - TLS/SSL and HTTPS protocol support
630 - AVOptions API rewritten and documented
631 - most of CODEC_FLAG2_*, some CODEC_FLAG_* and many codec-specific fields in
632   AVCodecContext deprecated. Codec private options should be used instead.
633 - Properly working defaults in libx264 wrapper, support for native presets.
634 - Encrypted OMA files support
635 - Discworld II BMV decoding support
636 - VBLE Decoder
637 - OS X Video Decoder Acceleration (VDA) support
638 - CRI ADX audio format muxer and demuxer
639 - Playstation Portable PMP format demuxer
640 - PCM format support in OMA demuxer
641 - CLJR encoder
642 - Dxtory capture format decoder
643 - v410 QuickTime uncompressed 4:4:4 10-bit encoder and decoder
644 - OpenMG Audio muxer
645 - Simple segmenting muxer
646 - Indeo 4 decoder
647 - SMJPEG demuxer
648
649
650 version 0.7:
651
652 - E-AC-3 audio encoder
653 - ac3enc: add channel coupling support
654 - floating-point sample format support for (E-)AC-3, DCA, AAC, Vorbis decoders
655 - H.264/MPEG frame-level multithreading
656 - av_metadata_* functions renamed to av_dict_* and moved to libavutil
657 - 4:4:4 H.264 decoding support
658 - 10-bit H.264 optimizations for x86
659 - bump libswscale for recently reported ABI break
660
661
662 version 0.7_beta2:
663
664 - VP8 frame-level multithreading
665 - NEON optimizations for VP8
666 - removed a lot of deprecated API cruft
667 - FFT and IMDCT optimizations for AVX (Sandy Bridge) processors
668 - DPX image encoder
669 - SMPTE 302M AES3 audio decoder
670 - ffmpeg no longer quits after the 'q' key is pressed; use 'ctrl+c' instead
671 - 9bit and 10bit per sample support in the H.264 decoder
672
673
674 version 0.7_beta1:
675
676 - WebM support in Matroska de/muxer
677 - low overhead Ogg muxing
678 - MMS-TCP support
679 - VP8 de/encoding via libvpx
680 - Demuxer for On2's IVF format
681 - Pictor/PC Paint decoder
682 - HE-AAC v2 decoder
683 - libfaad2 wrapper removed
684 - DTS-ES extension (XCh) decoding support
685 - native VP8 decoder
686 - RTSP tunneling over HTTP
687 - RTP depacketization of SVQ3
688 - -strict inofficial replaced by -strict unofficial
689 - ffplay -exitonkeydown and -exitonmousedown options added
690 - native GSM / GSM MS decoder
691 - RTP depacketization of QDM2
692 - ANSI/ASCII art playback system
693 - Lego Mindstorms RSO de/muxer
694 - SubRip subtitle file muxer and demuxer
695 - Chinese AVS encoding via libxavs
696 - ffprobe -show_packets option added
697 - RTP packetization of Theora and Vorbis
698 - RTP depacketization of MP4A-LATM
699 - RTP packetization and depacketization of VP8
700 - hflip filter
701 - Apple HTTP Live Streaming demuxer
702 - a64 codec
703 - MMS-HTTP support
704 - G.722 ADPCM audio encoder/decoder
705 - R10k video decoder
706 - ocv_smooth filter
707 - frei0r wrapper filter
708 - change crop filter syntax to width:height:x:y
709 - make the crop filter accept parametric expressions
710 - make ffprobe accept AVFormatContext options
711 - yadif filter
712 - blackframe filter
713 - Demuxer for Leitch/Harris' VR native stream format (LXF)
714 - RTP depacketization of the X-QT QuickTime format
715 - SAP (Session Announcement Protocol, RFC 2974) muxer and demuxer
716 - cropdetect filter
717 - ffmpeg -crop* options removed
718 - transpose filter added
719 - ffmpeg -force_key_frames option added
720 - demuxer for receiving raw rtp:// URLs without an SDP description
721 - single stream LATM/LOAS decoder
722 - setpts filter added
723 - Win64 support for optimized x86 assembly functions
724 - MJPEG/AVI1 to JPEG/JFIF bitstream filter
725 - ASS subtitle encoder and decoder
726 - IEC 61937 encapsulation for E-AC-3, TrueHD, DTS-HD (for HDMI passthrough)
727 - overlay filter added
728 - rename aspect filter to setdar, and pixelaspect to setsar
729 - IEC 61937 demuxer
730 - Mobotix .mxg demuxer
731 - frei0r source added
732 - hqdn3d filter added
733 - RTP depacketization of QCELP
734 - FLAC parser added
735 - gradfun filter added
736 - AMR-WB decoder
737 - replace the ocv_smooth filter with a more generic ocv filter
738 - Windows Televison (WTV) demuxer
739 - FFmpeg metadata format muxer and demuxer
740 - SubRip (srt) subtitle decoder
741 - floating-point AC-3 encoder added
742 - Lagarith decoder
743 - ffmpeg -copytb option added
744 - IVF muxer added
745 - Wing Commander IV movies decoder added
746 - movie source added
747 - Bink version 'b' audio and video decoder
748 - Bitmap Brothers JV playback system
749 - Apple HTTP Live Streaming protocol handler
750 - sndio support for playback and record
751 - Linux framebuffer input device added
752 - Chronomaster DFA decoder
753 - Mobotix MxPEG decoder
754 - AAC encoding via libvo-aacenc
755 - AMR-WB encoding via libvo-amrwbenc
756 - xWMA demuxer
757 - fieldorder video filter added
758
759
760 version 0.6:
761
762 - PB-frame decoding for H.263
763 - deprecated vhook subsystem removed
764 - deprecated old scaler removed
765 - VQF demuxer
766 - Alpha channel scaler
767 - PCX encoder
768 - RTP packetization of H.263
769 - RTP packetization of AMR
770 - RTP depacketization of Vorbis
771 - CorePNG decoding support
772 - Cook multichannel decoding support
773 - introduced avlanguage helpers in libavformat
774 - 8088flex TMV demuxer and decoder
775 - per-stream language-tags extraction in asfdec
776 - V210 decoder and encoder
777 - remaining GPL parts in AC-3 decoder converted to LGPL
778 - QCP demuxer
779 - SoX native format muxer and demuxer
780 - AMR-NB decoding/encoding, AMR-WB decoding via OpenCORE libraries
781 - DPX image decoder
782 - Electronic Arts Madcow decoder
783 - DivX (XSUB) subtitle encoder
784 - nonfree libamr support for AMR-NB/WB decoding/encoding removed
785 - experimental AAC encoder
786 - RTP depacketization of ASF and RTSP from WMS servers
787 - RTMP support in libavformat
788 - noX handling for OPT_BOOL X options
789 - Wave64 demuxer
790 - IEC-61937 compatible Muxer
791 - TwinVQ decoder
792 - Bluray (PGS) subtitle decoder
793 - LPCM support in MPEG-TS (HDMV RID as found on Blu-ray disks)
794 - WMA Pro decoder
795 - Core Audio Format demuxer
796 - Atrac1 decoder
797 - MD STUDIO audio demuxer
798 - RF64 support in WAV demuxer
799 - MPEG-4 Audio Lossless Coding (ALS) decoder
800 - -formats option split into -formats, -codecs, -bsfs, and -protocols
801 - IV8 demuxer
802 - CDG demuxer and decoder
803 - R210 decoder
804 - Auravision Aura 1 and 2 decoders
805 - Deluxe Paint Animation playback system
806 - SIPR decoder
807 - Adobe Filmstrip muxer and demuxer
808 - RTP depacketization of H.263
809 - Bink demuxer and audio/video decoders
810 - enable symbol versioning by default for linkers that support it
811 - IFF PBM/ILBM bitmap decoder
812 - concat protocol
813 - Indeo 5 decoder
814 - RTP depacketization of AMR
815 - WMA Voice decoder
816 - ffprobe tool
817 - AMR-NB decoder
818 - RTSP muxer
819 - HE-AAC v1 decoder
820 - Kega Game Video (KGV1) decoder
821 - VorbisComment writing for FLAC, Ogg FLAC and Ogg Speex files
822 - RTP depacketization of Theora
823 - HTTP Digest authentication
824 - RTMP/RTMPT/RTMPS/RTMPE/RTMPTE protocol support via librtmp
825 - Psygnosis YOP demuxer and video decoder
826 - spectral extension support in the E-AC-3 decoder
827 - unsharp video filter
828 - RTP hinting in the mov/3gp/mp4 muxer
829 - Dirac in Ogg demuxing
830 - seek to keyframes in Ogg
831 - 4:2:2 and 4:4:4 Theora decoding
832 - 35% faster VP3/Theora decoding
833 - faster AAC decoding
834 - faster H.264 decoding
835 - RealAudio 1.0 (14.4K) encoder
836
837
838 version 0.5:
839
840 - DV50 AKA DVCPRO50 encoder, decoder, muxer and demuxer
841 - TechSmith Camtasia (TSCC) video decoder
842 - IBM Ultimotion (ULTI) video decoder
843 - Sierra Online audio file demuxer and decoder
844 - Apple QuickDraw (qdrw) video decoder
845 - Creative ADPCM audio decoder (16 bits as well as 8 bits schemes)
846 - Electronic Arts Multimedia (WVE/UV2/etc.) file demuxer
847 - Miro VideoXL (VIXL) video decoder
848 - H.261 video encoder
849 - QPEG video decoder
850 - Nullsoft Video (NSV) file demuxer
851 - Shorten audio decoder
852 - LOCO video decoder
853 - Apple Lossless Audio Codec (ALAC) decoder
854 - Winnov WNV1 video decoder
855 - Autodesk Animator Studio Codec (AASC) decoder
856 - Indeo 2 video decoder
857 - Fraps FPS1 video decoder
858 - Snow video encoder/decoder
859 - Sonic audio encoder/decoder
860 - Vorbis audio decoder
861 - Macromedia ADPCM decoder
862 - Duck TrueMotion 2 video decoder
863 - support for decoding FLX and DTA extensions in FLIC files
864 - H.264 custom quantization matrices support
865 - ffserver fixed, it should now be usable again
866 - QDM2 audio decoder
867 - Real Cooker audio decoder
868 - TrueSpeech audio decoder
869 - WMA2 audio decoder fixed, now all files should play correctly
870 - RealAudio 14.4 and 28.8 decoders fixed
871 - JPEG-LS decoder
872 - build system improvements
873 - tabs and trailing whitespace removed from the codebase
874 - CamStudio video decoder
875 - AIFF/AIFF-C audio format, encoding and decoding
876 - ADTS AAC file reading and writing
877 - Creative VOC file reading and writing
878 - American Laser Games multimedia (*.mm) playback system
879 - Zip Motion Blocks Video decoder
880 - improved Theora/VP3 decoder
881 - True Audio (TTA) decoder
882 - AVS demuxer and video decoder
883 - JPEG-LS encoder
884 - Smacker demuxer and decoder
885 - NuppelVideo/MythTV demuxer and RTjpeg decoder
886 - KMVC decoder
887 - MPEG-2 intra VLC support
888 - MPEG-2 4:2:2 encoder
889 - Flash Screen Video decoder
890 - GXF demuxer
891 - Chinese AVS decoder
892 - GXF muxer
893 - MXF demuxer
894 - VC-1/WMV3/WMV9 video decoder
895 - MacIntel support
896 - AVISynth support
897 - VMware video decoder
898 - VP5 video decoder
899 - VP6 video decoder
900 - WavPack lossless audio decoder
901 - Targa (.TGA) picture decoder
902 - Vorbis audio encoder
903 - Delphine Software .cin demuxer/audio and video decoder
904 - Tiertex .seq demuxer/video decoder
905 - MTV demuxer
906 - TIFF picture encoder and decoder
907 - GIF picture decoder
908 - Intel Music Coder decoder
909 - Zip Motion Blocks Video encoder
910 - Musepack decoder
911 - Flash Screen Video encoder
912 - Theora encoding via libtheora
913 - BMP encoder
914 - WMA encoder
915 - GSM-MS encoder and decoder
916 - DCA decoder
917 - DXA demuxer and decoder
918 - DNxHD decoder
919 - Gamecube movie (.THP) playback system
920 - Blackfin optimizations
921 - Interplay C93 demuxer and video decoder
922 - Bethsoft VID demuxer and video decoder
923 - CRYO APC demuxer
924 - Atrac3 decoder
925 - V.Flash PTX decoder
926 - RoQ muxer, RoQ audio encoder
927 - Renderware TXD demuxer and decoder
928 - extern C declarations for C++ removed from headers
929 - sws_flags command line option
930 - codebook generator
931 - RoQ video encoder
932 - QTRLE encoder
933 - OS/2 support removed and restored again
934 - AC-3 decoder
935 - NUT muxer
936 - additional SPARC (VIS) optimizations
937 - Matroska muxer
938 - slice-based parallel H.264 decoding
939 - Monkey's Audio demuxer and decoder
940 - AMV audio and video decoder
941 - DNxHD encoder
942 - H.264 PAFF decoding
943 - Nellymoser ASAO decoder
944 - Beam Software SIFF demuxer and decoder
945 - libvorbis Vorbis decoding removed in favor of native decoder
946 - IntraX8 (J-Frame) subdecoder for WMV2 and VC-1
947 - Ogg (Theora, Vorbis and FLAC) muxer
948 - The "device" muxers and demuxers are now in a new libavdevice library
949 - PC Paintbrush PCX decoder
950 - Sun Rasterfile decoder
951 - TechnoTrend PVA demuxer
952 - Linux Media Labs MPEG-4 (LMLM4) demuxer
953 - AVM2 (Flash 9) SWF muxer
954 - QT variant of IMA ADPCM encoder
955 - VFW grabber
956 - iPod/iPhone compatible mp4 muxer
957 - Mimic decoder
958 - MSN TCP Webcam stream demuxer
959 - RL2 demuxer / decoder
960 - IFF demuxer
961 - 8SVX audio decoder
962 - non-recursive Makefiles
963 - BFI demuxer
964 - MAXIS EA XA (.xa) demuxer / decoder
965 - BFI video decoder
966 - OMA demuxer
967 - MLP/TrueHD decoder
968 - Electronic Arts CMV decoder
969 - Motion Pixels Video decoder
970 - Motion Pixels MVI demuxer
971 - removed animated GIF decoder/demuxer
972 - D-Cinema audio muxer
973 - Electronic Arts TGV decoder
974 - Apple Lossless Audio Codec (ALAC) encoder
975 - AAC decoder
976 - floating point PCM encoder/decoder
977 - MXF muxer
978 - DV100 AKA DVCPRO HD decoder and demuxer
979 - E-AC-3 support added to AC-3 decoder
980 - Nellymoser ASAO encoder
981 - ASS and SSA demuxer and muxer
982 - liba52 wrapper removed
983 - SVQ3 watermark decoding support
984 - Speex decoding via libspeex
985 - Electronic Arts TGQ decoder
986 - RV40 decoder
987 - QCELP / PureVoice decoder
988 - RV30 decoder
989 - hybrid WavPack support
990 - R3D REDCODE demuxer
991 - ALSA support for playback and record
992 - Electronic Arts TQI decoder
993 - OpenJPEG based JPEG 2000 decoder
994 - NC (NC4600) camera file demuxer
995 - Gopher client support
996 - MXF D-10 muxer
997 - generic metadata API
998
999
1000 version 0.4.9-pre1:
1001
1002 - DV encoder, DV muxer
1003 - Microsoft RLE video decoder
1004 - Microsoft Video-1 decoder
1005 - Apple Animation (RLE) decoder
1006 - Apple Graphics (SMC) decoder
1007 - Apple Video (RPZA) decoder
1008 - Cinepak decoder
1009 - Sega FILM (CPK) file demuxer
1010 - Westwood multimedia support (VQA & AUD files)
1011 - Id Quake II CIN playback support
1012 - 8BPS video decoder
1013 - FLIC playback support
1014 - RealVideo 2.0 (RV20) decoder
1015 - Duck TrueMotion v1 (DUCK) video decoder
1016 - Sierra VMD demuxer and video decoder
1017 - MSZH and ZLIB decoder support
1018 - SVQ1 video encoder
1019 - AMR-WB support
1020 - PPC optimizations
1021 - rate distortion optimal cbp support
1022 - rate distorted optimal ac prediction for MPEG-4
1023 - rate distorted optimal lambda->qp support
1024 - AAC encoding with libfaac
1025 - Sunplus JPEG codec (SP5X) support
1026 - use Lagrange multipler instead of QP for ratecontrol
1027 - Theora/VP3 decoding support
1028 - XA and ADX ADPCM codecs
1029 - export MPEG-2 active display area / pan scan
1030 - Add support for configuring with IBM XLC
1031 - floating point AAN DCT
1032 - initial support for zygo video (not complete)
1033 - RGB ffv1 support
1034 - new audio/video parser API
1035 - av_log() system
1036 - av_read_frame() and av_seek_frame() support
1037 - missing last frame fixes
1038 - seek by mouse in ffplay
1039 - noise reduction of DCT coefficients
1040 - H.263 OBMC & 4MV support
1041 - H.263 alternative inter vlc support
1042 - H.263 loop filter
1043 - H.263 slice structured mode
1044 - interlaced DCT support for MPEG-2 encoding
1045 - stuffing to stay above min_bitrate
1046 - MB type & QP visualization
1047 - frame stepping for ffplay
1048 - interlaced motion estimation
1049 - alternate scantable support
1050 - SVCD scan offset support
1051 - closed GOP support
1052 - SSE2 FDCT
1053 - quantizer noise shaping
1054 - G.726 ADPCM audio codec
1055 - MS ADPCM encoding
1056 - multithreaded/SMP motion estimation
1057 - multithreaded/SMP encoding for MPEG-1/MPEG-2/MPEG-4/H.263
1058 - multithreaded/SMP decoding for MPEG-2
1059 - FLAC decoder
1060 - Metrowerks CodeWarrior suppport
1061 - H.263+ custom pcf support
1062 - nicer output for 'ffmpeg -formats'
1063 - Matroska demuxer
1064 - SGI image format, encoding and decoding
1065 - H.264 loop filter support
1066 - H.264 CABAC support
1067 - nicer looking arrows for the motion vector visualization
1068 - improved VCD support
1069 - audio timestamp drift compensation
1070 - MPEG-2 YUV 422/444 support
1071 - polyphase kaiser windowed sinc and blackman nuttall windowed sinc audio resample
1072 - better image scaling
1073 - H.261 support
1074 - correctly interleave packets during encoding
1075 - VIS optimized motion compensation
1076 - intra_dc_precision>0 encoding support
1077 - support reuse of motion vectors/MB types/field select values of the source video
1078 - more accurate deblock filter
1079 - padding support
1080 - many optimizations and bugfixes
1081 - FunCom ISS audio file demuxer and according ADPCM decoding
1082
1083
1084 version 0.4.8:
1085
1086 - MPEG-2 video encoding (Michael)
1087 - Id RoQ playback subsystem (Mike Melanson and Tim Ferguson)
1088 - Wing Commander III Movie (.mve) file playback subsystem (Mike Melanson
1089   and Mario Brito)
1090 - Xan DPCM audio decoder (Mario Brito)
1091 - Interplay MVE playback subsystem (Mike Melanson)
1092 - Duck DK3 and DK4 ADPCM audio decoders (Mike Melanson)
1093
1094
1095 version 0.4.7:
1096
1097 - RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from mplayerhq
1098   (originally from public domain player for Amiga at http://www.honeypot.net/audio)
1099 - current version now also compiles with older GCC (Fabrice)
1100 - 4X multimedia playback system including 4xm file demuxer (Mike
1101   Melanson), and 4X video and audio codecs (Michael)
1102 - Creative YUV (CYUV) decoder (Mike Melanson)
1103 - FFV1 codec (our very simple lossless intra only codec, compresses much better
1104   than HuffYUV) (Michael)
1105 - ASV1 (Asus), H.264, Intel indeo3 codecs have been added (various)
1106 - tiny PNG encoder and decoder, tiny GIF decoder, PAM decoder (PPM with
1107   alpha support), JPEG YUV colorspace support. (Fabrice Bellard)
1108 - ffplay has been replaced with a newer version which uses SDL (optionally)
1109   for multiplatform support (Fabrice)
1110 - Sorenson Version 3 codec (SVQ3) support has been added (decoding only) - donated
1111   by anonymous
1112 - AMR format has been added (Johannes Carlsson)
1113 - 3GP support has been added (Johannes Carlsson)
1114 - VP3 codec has been added (Mike Melanson)
1115 - more MPEG-1/2 fixes
1116 - better multiplatform support, MS Visual Studio fixes (various)
1117 - AltiVec optimizations (Magnus Damn and others)
1118 - SH4 processor support has been added (BERO)
1119 - new public interfaces (avcodec_get_pix_fmt) (Roman Shaposhnick)
1120 - VOB streaming support (Brian Foley)
1121 - better MP3 autodetection (Andriy Rysin)
1122 - qpel encoding (Michael)
1123 - 4mv+b frames encoding finally fixed (Michael)
1124 - chroma ME (Michael)
1125 - 5 comparison functions for ME (Michael)
1126 - B-frame encoding speedup (Michael)
1127 - WMV2 codec (unfinished - Michael)
1128 - user specified diamond size for EPZS (Michael)
1129 - Playstation STR playback subsystem, still experimental (Mike and Michael)
1130 - ASV2 codec (Michael)
1131 - CLJR decoder (Alex)
1132
1133 .. And lots more new enhancements and fixes.
1134
1135
1136 version 0.4.6:
1137
1138 - completely new integer only MPEG audio layer 1/2/3 decoder rewritten
1139   from scratch
1140 - Recoded DCT and motion vector search with gcc (no longer depends on nasm)
1141 - fix quantization bug in AC3 encoder
1142 - added PCM codecs and format. Corrected WAV/AVI/ASF PCM issues
1143 - added prototype ffplay program
1144 - added GOB header parsing on H.263/H.263+ decoder (Juanjo)
1145 - bug fix on MCBPC tables of H.263 (Juanjo)
1146 - bug fix on DC coefficients of H.263 (Juanjo)
1147 - added Advanced Prediction Mode on H.263/H.263+ decoder (Juanjo)
1148 - now we can decode H.263 streams found in QuickTime files (Juanjo)
1149 - now we can decode H.263 streams found in VIVO v1 files(Juanjo)
1150 - preliminary RTP "friendly" mode for H.263/H.263+ coding. (Juanjo)
1151 - added GOB header for H.263/H.263+ coding on RTP mode (Juanjo)
1152 - now H.263 picture size is returned on the first decoded frame (Juanjo)
1153 - added first regression tests
1154 - added MPEG-2 TS demuxer
1155 - new demux API for libav
1156 - more accurate and faster IDCT (Michael)
1157 - faster and entropy-controlled motion search (Michael)
1158 - two pass video encoding (Michael)
1159 - new video rate control (Michael)
1160 - added MSMPEG4V1, MSMPEGV2 and WMV1 support (Michael)
1161 - great performance improvement of video encoders and decoders (Michael)
1162 - new and faster bit readers and vlc parsers (Michael)
1163 - high quality encoding mode: tries all macroblock/VLC types (Michael)
1164 - added DV video decoder
1165 - preliminary RTP/RTSP support in ffserver and libavformat
1166 - H.263+ AIC decoding/encoding support (Juanjo)
1167 - VCD MPEG-PS mode (Juanjo)
1168 - PSNR stuff (Juanjo)
1169 - simple stats output (Juanjo)
1170 - 16-bit and 15-bit RGB/BGR/GBR support (Bisqwit)
1171
1172
1173 version 0.4.5:
1174
1175 - some header fixes (Zdenek Kabelac <kabi at informatics.muni.cz>)
1176 - many MMX optimizations (Nick Kurshev <nickols_k at mail.ru>)
1177 - added configure system (actually a small shell script)
1178 - added MPEG audio layer 1/2/3 decoding using LGPL'ed mpglib by
1179   Michael Hipp (temporary solution - waiting for integer only
1180   decoder)
1181 - fixed VIDIOCSYNC interrupt
1182 - added Intel H.263 decoding support ('I263' AVI fourCC)
1183 - added Real Video 1.0 decoding (needs further testing)
1184 - simplified image formats again. Added PGM format (=grey
1185   pgm). Renamed old PGM to PGMYUV.
1186 - fixed msmpeg4 slice issues (tell me if you still find problems)
1187 - fixed OpenDivX bugs with newer versions (added VOL header decoding)
1188 - added support for MPlayer interface
1189 - added macroblock skip optimization
1190 - added MJPEG decoder
1191 - added mmx/mmxext IDCT from libmpeg2
1192 - added pgmyuvpipe, ppm, and ppm_pipe formats (original patch by Celer
1193   <celer at shell.scrypt.net>)
1194 - added pixel format conversion layer (e.g. for MJPEG or PPM)
1195 - added deinterlacing option
1196 - MPEG-1/2 fixes
1197 - MPEG-4 vol header fixes (Jonathan Marsden <snmjbm at pacbell.net>)
1198 - ARM optimizations (Lionel Ulmer <lionel.ulmer at free.fr>).
1199 - Windows porting of file converter
1200 - added MJPEG raw format (input/ouput)
1201 - added JPEG image format support (input/output)
1202
1203
1204 version 0.4.4:
1205
1206 - fixed some std header definitions (Bjorn Lindgren
1207   <bjorn.e.lindgren at telia.com>).
1208 - added MPEG demuxer (MPEG-1 and 2 compatible).
1209 - added ASF demuxer
1210 - added prototype RM demuxer
1211 - added AC3 decoding (done with libac3 by Aaron Holtzman)
1212 - added decoding codec parameter guessing (.e.g. for MPEG, because the
1213   header does not include them)
1214 - fixed header generation in MPEG-1, AVI and ASF muxer: wmplayer can now
1215   play them (only tested video)
1216 - fixed H.263 white bug
1217 - fixed phase rounding in img resample filter
1218 - add MMX code for polyphase img resample filter
1219 - added CPU autodetection
1220 - added generic title/author/copyright/comment string handling (ASF and RM
1221   use them)
1222 - added SWF demux to extract MP3 track (not usable yet because no MP3
1223   decoder)
1224 - added fractional frame rate support
1225 - codecs are no longer searched by read_header() (should fix ffserver
1226   segfault)
1227
1228
1229 version 0.4.3:
1230
1231 - BGR24 patch (initial patch by Jeroen Vreeken <pe1rxq at amsat.org>)
1232 - fixed raw yuv output
1233 - added motion rounding support in MPEG-4
1234 - fixed motion bug rounding in MSMPEG4
1235 - added B-frame handling in video core
1236 - added full MPEG-1 decoding support
1237 - added partial (frame only) MPEG-2 support
1238 - changed the FOURCC code for H.263 to "U263" to be able to see the
1239   +AVI/H.263 file with the UB Video H.263+ decoder. MPlayer works with
1240   this +codec ;) (JuanJo).
1241 - Halfpel motion estimation after MB type selection (JuanJo)
1242 - added pgm and .Y.U.V output format
1243 - suppressed 'img:' protocol. Simply use: /tmp/test%d.[pgm|Y] as input or
1244   output.
1245 - added pgmpipe I/O format (original patch from Martin Aumueller
1246   <lists at reserv.at>, but changed completely since we use a format
1247   instead of a protocol)
1248
1249
1250 version 0.4.2:
1251
1252 - added H.263/MPEG-4/MSMPEG4 decoding support. MPEG-4 decoding support
1253   (for OpenDivX) is almost complete: 8x8 MVs and rounding are
1254   missing. MSMPEG4 support is complete.
1255 - added prototype MPEG-1 decoder. Only I- and P-frames handled yet (it
1256   can decode ffmpeg MPEGs :-)).
1257 - added libavcodec API documentation (see apiexample.c).
1258 - fixed image polyphase bug (the bottom of some images could be
1259   greenish)
1260 - added support for non clipped motion vectors (decoding only)
1261   and image sizes non-multiple of 16
1262 - added support for AC prediction (decoding only)
1263 - added file overwrite confirmation (can be disabled with -y)
1264 - added custom size picture to H.263 using H.263+ (Juanjo)
1265
1266
1267 version 0.4.1:
1268
1269 - added MSMPEG4 (aka DivX) compatible encoder. Changed default codec
1270   of AVI and ASF to DIV3.
1271 - added -me option to set motion estimation method
1272   (default=log). suppressed redundant -hq option.
1273 - added options -acodec and -vcodec to force a given codec (useful for
1274   AVI for example)
1275 - fixed -an option
1276 - improved dct_quantize speed
1277 - factorized some motion estimation code
1278
1279
1280 version 0.4.0:
1281
1282 - removing grab code from ffserver and moved it to ffmpeg. Added
1283   multistream support to ffmpeg.
1284 - added timeshifting support for live feeds (option ?date=xxx in the
1285   URL)
1286 - added high quality image resize code with polyphase filter (need
1287   mmx/see optimization). Enable multiple image size support in ffserver.
1288 - added multi live feed support in ffserver
1289 - suppressed master feature from ffserver (it should be done with an
1290   external program which opens the .ffm url and writes it to another
1291   ffserver)
1292 - added preliminary support for video stream parsing (WAV and AVI half
1293   done). Added proper support for audio/video file conversion in
1294   ffmpeg.
1295 - added preliminary support for video file sending from ffserver
1296 - redesigning I/O subsystem: now using URL based input and output
1297   (see avio.h)
1298 - added WAV format support
1299 - added "tty user interface" to ffmpeg to stop grabbing gracefully
1300 - added MMX/SSE optimizations to SAD (Sums of Absolutes Differences)
1301   (Juan J. Sierralta P. a.k.a. "Juanjo" <juanjo at atmlab.utfsm.cl>)
1302 - added MMX DCT from mpeg2_movie 1.5 (Juanjo)
1303 - added new motion estimation algorithms, log and phods (Juanjo)
1304 - changed directories: libav for format handling, libavcodec for
1305   codecs
1306
1307
1308 version 0.3.4:
1309
1310 - added stereo in MPEG audio encoder
1311
1312
1313 version 0.3.3:
1314
1315 - added 'high quality' mode which use motion vectors. It can be used in
1316   real time at low resolution.
1317 - fixed rounding problems which caused quality problems at high
1318   bitrates and large GOP size
1319
1320
1321 version 0.3.2: small fixes
1322
1323 - ASF fixes
1324 - put_seek bug fix
1325
1326
1327 version 0.3.1: added avi/divx support
1328
1329 - added AVI support
1330 - added MPEG-4 codec compatible with OpenDivX. It is based on the H.263 codec
1331 - added sound for flash format (not tested)
1332
1333
1334 version 0.3: initial public release