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