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