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