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