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