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