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