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