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