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