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