ffmpeg/Changelog

1656 lines
64 KiB
Plaintext

Entries are sorted chronologically from oldest to youngest within each release,
releases are sorted from youngest to oldest.
version 2.4.10:
- diracdec: check if reference could not be allocated
- diracdec: avoid overflow of bytes*8 in decode_lowdelay
- diracdec: prevent overflow in data_unit_size check
- avformat/matroskadec: Use tracks[k]->stream instead of s->streams[k]
- matroskadec: check s->streams[k] before using it
- avcodec/ffv1dec: Check chroma shift parameters
- matroskadec: use uint64_t instead of int for index_scale
- avcodec/wavpack: Check L/R values before use to avoid harmless integer overflow and undefined behavior in fate
- nutdec: fix illegal count check in decode_main_header
- nutdec: check for negative frame rate in decode_info_header
- ffmpeg: remove incorrect network deinit
- OpenCL: Avoid potential buffer overflow in cmdutils_opencl.c
- apedec: set s->samples only when init_frame_decoder succeeded
- OS/2:Makedef.cmd cleanup
- avcodec/golomb: get_ur_golomb_jpegls: Fix reading huge k values
- avformat/mov: Fix parsing short loci
- avformat/mov: Print reason of loci parsing failure
- avcodec/hevc: Fix typo in num_entry_point_offsets check
- avcodec/libtheoraenc: Check for av_malloc failure
- avcodec/dcadec: Check active_bands
- avcodec/dcadec: Check scale table index
- avcodec/sonic: More completely check sample_rate_index and channels
- avcodec/sonic: check memory allocations
- avcodec/smvjpegdec: check avcodec_decode_video2() return code
- avcodec/shorten: More complete pred_order check
- avcodec/shorten: Check skip_bytes()
- png: Set the color range as full range
- mpegts: Update the PSI/SI table only if the version change
- rtsp: Make sure we don't write too many transport entries into a fixed-size array
- rtpenc_jpeg: Handle case of picture dimensions not dividing by 8
- libvpx: Fix mixed use of av_malloc() and av_reallocp()
- aacpsy: correct calculation of minath in psy_3gpp_init
- avcodec/shorten: Fix code depending on signed overflow behavior
- avcodec/proresdec2: Reset slice_count on deallocation
- ffmpeg_opt: Fix -timestamp parsing
- avcodec/dcadec: Check subsubframes
- avcodec/dcadec: Check nchans
- hevc: make avcodec_decode_video2() fail if get_format() fails
- avcodec/cavsdec: Check esc_code
- avcodec/on2avc: Check run more carefully
- avcodec/mpeg4audio: add some padding/alignment to MAX_PCE_SIZE
- swr: fix alignment issue caused by 8ch sse functions
- avcodec/mjpegdec: fix len computation in ff_mjpeg_decode_dqt()
- avcodec/jpeg2000dec: fix boolean operator
- avcodec/hevc_ps: Explicitly check num_tile_* for negative values
- avcodec/hevc_ps: Check vps_num_hrd_parameters
- avcodec/hevc_ps: More completely check vps_num_layer_sets
- avcodec/hevc: Check num_entry_point_offsets
- avcodec/hevc: Check offset_len
- libswscale/x86/hscale_fast_bilinear_simd.c: Include BX in the clobber list on x86_64, because it isn't implicitly included when PIC is on.
- avcodec/hevc_sei: Check num_sps_ids_minus1 value
- avcodec/vqavideo: Check chunk size
- aacdec: don't return frames without data
- avformat/hevc: Check num_negative_pics and num_positive_pics
- avformat/hevc: Check cpb_cnt_minus1
- avformat/matroskadec: Cleanup error handling for bz2 & zlib
- avformat/nutdec: Fix use of uinitialized value
- avformat/rtpenc_jpeg: Check remaining buffer size for SOS
- avformat/rtpdec_xiph: Check upper bound on len in xiph_handle_packet()
- tools/graph2dot: use larger data types than int for array/string sizes
- avformat/matroskaenc: Check ff_vorbiscomment_length in put_flac_codecpriv()
- avformat/oggenc: Check ff_vorbiscomment_length in ogg_write_vorbiscomment()
- avformat/flacenc: Check length in flac_write_block_comment()
- avformat/subtitles: Use size_t for len
- avformat/url: Use size_t for len from strlen()
- avutil/avstring: Use size_t in av_strlcatf()
- avformat/vorbiscomment: Check entry length in ff_vorbiscomment_write()
- avutil/dict: Use size_t for appending strings
- libavutil/mem: use size_t for the length in av_strdup()
- aacsbr: break infinite loop in sbr_hf_calc_npatches
- diracdec: check that block length is valid
- ffmpeg_opt: Set the video VBV parameters only for the video stream from -target
- avcodec/bitstream: Assert that there is enough space left in avpriv_copy_bits()
- avcodec/put_bits: Assert that there is enough space left in skip_put_bytes()
- avcodec/mpegvideo_enc: Update the buffer size as more slices are merged
- avcodec/put_bits: Update size_in_bits in set_put_bits_buffer_size()
- avformat/wavdec: Increase dts packet threshold to fix more misdetections
- avformat/wavdec: Increase probe_packets limit
- nutdec: abort if EOF is reached in decode_info_header/read_sm_data
- nutdec: stop skipping bytes at EOF
- nutdec: fix infinite resync loops
- avformat/nutdec: Check X in 2nd branch of index reading
- avformat/nutdec: Fix recovery when immedeately after seeking a failure happens
- avformat/nutdec: Return error on EOF from get_str()
- avcodec/x86/cavsdsp: remove unneeded tmp
- nutdec: fix memleaks on error in nut_read_header
- avformat/avidec: print a warning for negative sample_size
- avidec: avoid infinite loop due to negative ast->sample_size
- nutdec: check chapter creation in decode_info_header
- apedec: prevent out of array writes in decode_array_0000
- avformat/mpegts: Detect changes in packet through CRC instead of just the 5bit version
- avformat/mpegts: reset last_ver on corrupted packets
- avformat/mpegts: Factorize version checking code out
- avformat/mpegts: Also parse the FMC descriptor if the codec has not been identified yet
- avformat/mpegts: reset last_version on seeking
- avformat/mp3dec: Check for avcodec_alloc_context3() failure
- avformat/mp3dec: properly allocate dummy AVCodecContext
- lavfi/fade: Do not overread input buffer.
- tests: drop bc dependency
- alsdec: limit avctx->bits_per_raw_sample to 32
version 2.4.9:
- alac: reject rice_limit 0 if compression is used
- lavf: Reset global flag on deinit
- bink: check vst->index_entries before using it
- mpeg4videodec: only allow a positive length
- alsdec: check sample pointer range in revert_channel_correlation
- avcodec/h264_refs: Do not set reference to things which do not exist
- avcodec/h264: Fail for invalid mixed IDR / non IDR frames in slice threading mode
- h264: avoid unnecessary calls to get_format
- avutil/pca: Check for av_malloc* failures
- alsdec: validate time diff index
- avcodec/alsdec: Use av_mallocz_array() for chan_data to ensure the arrays never contain random data
- alsdec: ensure channel reordering is reversible
- avcodec/atrac3plusdsp: fix on stack alignment
- ac3: validate end in ff_ac3_bit_alloc_calc_mask
- aacpsy: avoid psy_band->threshold becoming NaN
- aasc: return correct buffer size from aasc_decode_frame
- aacdec: consistently use avctx for logging in decode_eld_specific_config
- msrledec: use signed pixel_ptr in msrle_decode_pal4
- swresample/swresample-test: Randomly wipe out channel counts
- swresample: Check channel layouts and channels against each other and print human readable error messages
- swresample: Allow reinitialization without ever setting channel layouts
- swresample: Allow reinitialization without ever setting channel counts
- avcodec/h264: Do not fail with randomly truncated VUIs
- avcodec/h264_ps: Move truncation check from VUI to SPS
- avcodec/h264: Be more tolerant to changing pps id between slices
- avcodec/aacdec: Fix storing state before PCE decode
- avcodec/h264: reset the counts in the correct context
- avcodec/h264_slice: Do not reset mb_aff_frame per slice
- tests: Fix test name for pixfmts tests
- avcodec/h264: finish previous slices before switching to single thread mode
- avcodec/h264: Fix race between slices where one overwrites data from the next
- avformat/utils: avoid discarded streams in av_find_default_stream_index()
- avformat/utils: Ensure that AVFMT_FLAG_CUSTOM_IO is set before use
- avformat/img2dec: do not rewind custom io buffers
- fate: Include branch information in the payload header
version 2.4.8:
- avutil/cpu: add missing check for mmxext to av_force_cpu_flags
- avcodec/msrledec: restructure msrle_decode_pal4() based on the line number instead of the pixel pointer
- avcodec/hevc_ps: Check cropping parameters more correctly
- avcodec/dnxhddec: Check that the frame is interlaced before using cur_field
- avformat/mov: Disallow ".." in dref unless use_absolute_path is set
- avformat/mov: Check for string truncation in mov_open_dref()
- ac3_fixed: fix out-of-bound read
- avcodec/012v: redesign main loop
- avcodec/012v: Check dimensions more completely
- asfenc: fix leaking asf->index_ptr on error
- avcodec/options_table: remove extradata_size from the AVOptions table
- ffmdec: limit the backward seek to the last resync position
- ffmdec: make sure the time base is valid
- ffmdec: fix infinite loop at EOF
- avcodec/tiff: move bpp check to after "end:"
- avcodec/opusdec: Fix delayed sample value
- avcodec/utils: Align YUV411 by as much as the other YUV variants
- vp9: fix segmentation map retention with threading enabled.
- doc/protocols/tcp: fix units of listen_timeout option value, from microseconds to milliseconds
- fix VP9 packet decoder returning 0 instead of the used data size
- avformat/bit: only accept the g729 codec and 1 channel
- avformat/adxdec: check avctx->channels for invalid values
- Fix buffer_size argument to init_put_bits() in multiple encoders.
- mips/acelp_filters: fix incorrect register constraint
- avcodec/hevc_ps: Sanity checks for some log2_* values
- avcodec/zmbv: Check len before reading in decode_frame()
- avcodec/snowdec: Fix ref value check
- swscale/utils: More carefully merge and clear coefficients outside the input
- avcodec/a64multienc: fix use of uninitialized values in to_meta_with_crop
- avcodec/a64multienc: don't set incorrect packet size
- webp: ensure that each transform is only used once
- avcodec/hevc_ps: More complete window reset
- vp9: make above buffer pointer 32-byte aligned.
- avformat/rm: limit packet size
- avcodec/webp: validate the distance prefix code
- avcodec/gif: fix off by one in column offsetting finding
version 2.4.7:
- avcodec/flac_parser: fix handling EOF if no headers are found
- avfilter/vf_framepack: Check and update frame_rate
- avcodec/hevc: Fix handling of skipped_bytes() reallocation failures
- qpeg: avoid pointless invalid memcpy()
- avcodec/arm/videodsp_armv5te: Fix linking failure with "g++ -shared -D__STDC_CONSTANT_MACROS -o test.so ... libavcodec.a"
- avcodec/mjpegdec: Skip blocks which are outside the visible area
- lavc/aarch64: Do not use the neon horizontal chroma loop filter for H.264 4:2:2. (cherry picked from commit 4faea46bd906b3897018736208123aa36c3f45d5)
- avcodec/h264_slice: assert that reinit does not occur after the first slice
- avcodec/h264_slice: ignore SAR changes in slices after the first
- avcodec/h264_slice: Check picture structure before setting the related fields
- avcodec/h264_slice: Do not change frame_num after the first slice
- avutil/opt: Fix type used to access AV_OPT_TYPE_SAMPLE_FMT
- avutil/opt: Fix types used to access AV_OPT_TYPE_PIXEL_FMT
- avcodec/h264: Be more strict on rejecting pps/sps changes
- avcodec/h264: Be more strict on rejecting pps_id changes
- avcodec/h264_ps: More completely check the bit depths
- avformat/thp: Check av_get_packet() for failure not only for partial output
- swscale/utils: Limit filter shifting so as not to read from prior the array
- avcodec/mpegvideo_motion: Fix gmc chroma dimensions
- avcodec/mjpegdec: Check number of components for JPEG-LS
- avcodec/mjpegdec: Check escape sequence validity
- avformat/mpc8: Use uint64_t in *_get_v() to avoid undefined behavior
- avformat/mpc8: fix broken pointer math
- avformat/mpc8: fix hang with fuzzed file
- avformat/tta: fix crash with corrupted files
version 2.4.6:
- doc/examples: fix lib math dep for decoding_encoding
- avformat/movenc: workaround bug in "PathScale EKOPath(tm) Compiler Suite Version 4.0.12.1"
- vp9: fix parser return values in error case
- ffmpeg: Clear error message array at init.
- avcodec/dvdsubdec: fix accessing dangling pointers
- avcodec/dvdsubdec: error on bitmaps with size 0
- avformat/mov: Fix mixed declaration and statement warning
- cmdutils: Use 64bit for file size/offset related variable in cmdutils_read_file()
- avformat/utils: Clear pointer in ff_alloc_extradata() to avoid leaving a stale pointer in memory
- avformat/matroskadec: Use av_freep() to avoid leaving stale pointers in memory
- lavfi: check av_strdup() return value
- mov: Fix negative size calculation in mov_read_default().
- avformat/mov: fix integer overflow in mov_read_udta_string()
- mov: Avoid overflow with mov_metadata_raw()
- avcodec/dvdsubdec: fix out of bounds accesses
- avfilter/vf_sab: fix filtering tiny images
- avformat/flvdec: Increase string array size
- avformat/flvdec: do not inject dts=0 metadata packets which failed to be parsed into a new data stream
- avformat/cdxl: Fix integer overflow of image_size
- avformat/segment: Use av_freep() avoid leaving stale pointers in memory
- avformat/mov: Fix memleaks for duplicate STCO/CO64/STSC atoms
- mov: avoid a memleak when multiple stss boxes are presen
version 2.4.5:
- lavu/frame: fix malloc error path in av_frame_copy_props()
- avformat/utils: Do not update programs streams from program-less streams in update_wrap_reference()
- avformat/aviobuf: Check that avio_seek() target is non negative
- swresample/soxr_resample: fix error handling
- avformat/flvdec: fix potential use of uninitialized variables
- avformat/matroskadec: fix handling of recursive SeekHead elements
- doc/examples/transcoding: check encoder before using it
- swscale/x86/rgb2rgb_template: fix crash with tiny size and nv12 output
- avformat/rmdec: Check codec_data_size
- avformat/aviobuf: Fix infinite loop in ff_get_line()
- vc1: Do not assume seek happens after decoding
- mmvideo: check frame dimensions
- jvdec: check frame dimensions
- avcodec/indeo3: ensure offsets are non negative
- avcodec/h264: Check *log2_weight_denom
- avcodec/hevc_ps: Check diff_cu_qp_delta_depth
- avcodec/h264: Clear delayed_pic on deallocation
- avcodec/hevc: clear filter_slice_edges() on allocation
- avcodec/dcadec: Check that the added xch channel isnt already there
- avcodec/indeo3: use signed variables to avoid underflow
- swscale: increase yuv2rgb table headroom
- avformat/mov: fix integer overflow of size
- avformat/mov: check atom nesting depth
- avcodec/utvideodec: Fix handling of slice_height=0
- avcodec/vmdvideo: Check len before using it in method 3
- avformat/flvdec: Use av_freep() avoid leaving stale pointers in memory
- avformat/hdsenc: Use av_freep() avoid leaving stale pointers in memory
- configure: create the tests directory like the doc directory
- v4l2: Make use of the VIDIOC_ENUM_FRAMESIZES ioctl on OpenBSD
- avcodec/motion_est: use 2x8x8 for interlaced qpel
- Treat all '*.pnm' files as non-text file
version 2.4.4:
- avformat: replace some odd 30-60 rates by higher less odd ones in get_std_framerate()
- swscale: fix yuv2yuvX_8 assembly on x86
- avcodec/hevc_ps: Check num_long_term_ref_pics_sps
- avcodec/mjpegdec: Fix integer overflow in shift
- avcodec/hevc_ps: Check return code from pps_range_extensions()
- avcodec/rawdec: Check the return code of avpicture_get_size()
- avcodec/pngdec: Check IHDR/IDAT order
- avcodec/flacdec: Call ff_flacdsp_init() unconditionally
- avcodec/utils: Check that the data is complete in avpriv_bprint_to_extradata()
- avcodec/mjpegdec: Fix context fields becoming inconsistent
- avcodec/mjpegdec: Check for pixfmtid 0x42111100 || 0x24111100 with more than 8 bits
- swscale/x86/rgb2rgb_template: handle the first 2 lines with C in rgb24toyv12_*()
- doc/APIchanges: Fix some wrong versions
- avformat/hlsenc: Free context after hls_append_segment
- avcodec/mpeg4video_parser: fix spurious extradata parse warnings
- lavu/opt: fix av_opt_get function
- avcodec/wmaprodec: Fix integer overflow in sfb_offsets initialization
- avcodec/utvideodec: fix assumtation that slice_height >= 1
- avcodec/options_table fix min of audio channels and sample rate
- libavutil/thread.h: Support OS/2 threads
- fix Makefile objects for pulseaudio support
- opusdec: make sure all substreams have the same number of coded samples
- lavu: add wrappers for the pthreads mutex API
- avformat/avidec: fix handling dv in avi
- avfilter/vf_lut: gammaval709()
- cinedec: report white balance gain coefficients using metadata
- swscale/utils: support bayer input + scaling, and bayer input + any supported output
- swscale: support internal scaler cascades
- avformat/dtsdec: dts_probe: check reserved bit, check lfe, check sr_code similarity
- avformat/segment: export inner muxer timebase
- Remove fminf() emulation, fix build issues
- avcodec/mpegaudio_parser: fix off by 1 error in bitrate calculation
- Use -fno-optimize-sibling-calls on parisc also for gcc 4.9.
- ffmpeg_opt: store canvas size in decoder context
- avcodec/mpeg12dec: do not trust AVCodecContext input dimensions
version 2.4.3:
- avcodec/svq1dec: zero terminate embedded message before printing
- avcodec/cook: check that the subpacket sizes fit in block_align
- avcodec/g2meet: check tile dimensions to avoid integer overflow
- avcodec/utils: Align dimensions by at least their chroma sub-sampling factors.
- avcodec/dnxhddec: treat pix_fmt like width/height
- avcodec/dxa: check dimensions
- avcodec/dirac_arith: fix integer overflow
- avcodec/diracdec: Tighter checks on CODEBLOCKS_X/Y
- avcodec/diracdec: Use 64bit in calculation of codeblock coordinates
- avcodec/sgidec: fix count check
- avcodec/sgidec: fix linesize for 16bit
- avcodec/hevc_ps: Check default display window bitstream and skip if invalid
- avcodec/tiffenc: properly compute packet size
- lavd: export all symbols with av_ prefix
- avformat/mxfdec: Fix termination of mxf_data_essence_container_uls
- postproc: fix qp count
- postproc/postprocess: fix quant store for fq mode
- vf_drawtext: add missing clear of pointers after av_expr_free()
- utvideoenc: properly set slice height/last line
- swresample: fix sample drop loop end condition
- resample: Avoid off-by-1 errors in PTS calcs.
- imc: fix order of operations in coefficients read
- hevc_mvs: make sure to always initialize the temporal MV fully
- hevc_mvs: initialize the temporal MV in case of missing reference
version 2.4.2:
- avcodec/on2avc: Check number of channels
- avcodec/hevc: fix chroma transform_add size
- avcodec/h264: Check mode before considering mixed mode intra prediction
- avformat/mpegts: use a padded buffer in read_sl_header()
- avformat/mpegts: Check desc_len / get8() return code
- avcodec/vorbisdec: Fix off by 1 error in ptns_to_read
- sdp: add support for H.261
- avcodec/svq3: Do not memcpy AVFrame
- avcodec/smc: fix off by 1 error
- avcodec/qpeg: fix off by 1 error in MV bounds check
- avcodec/gifdec: factorize interleave end handling out
- avcodec/cinepak: fix integer underflow
- avcodec/pngdec: Check bits per pixel before setting monoblack pixel format
- avcodec/pngdec: Calculate MPNG bytewidth more defensively
- avcodec/tiff: more completely check bpp/bppcount
- avcodec/mmvideo: Bounds check 2nd line of HHV Intra blocks
- avcodec/h263dec: Fix decoding messenger.h263
- avcodec/utils: Add case for jv to avcodec_align_dimensions2()
- avcodec/mjpegdec: check bits per pixel for changes similar to dimensions
- avcodec/jpeglsdec: Check run value more completely in ls_decode_line()
- avformat/hlsenc: export inner muxer timebase
- configure: add noexecstack to linker options if supported.
- avcodec/ac3enc_template: fix out of array read
- avutil/x86/cpu: fix cpuid sub-leaf selection
- avformat/img2dec: enable generic seeking for image pipes
- avformat/img2dec: initialize pkt->pos for image pipes
- avformat/img2dec: pass error code and signal EOF
- avformat/img2dec: fix error code at EOF for pipes
- libavutil/opt: fix av_opt_set_channel_layout() to access correct memory address
- tests/fate-run.sh: Cat .err file in case of error with V>0
- avformat/riffenc: Filter out "BottomUp" in ff_put_bmp_header()
- avcodec/webp: fix default palette color 0xff000000 -> 0x00000000
- avcodec/asvenc: fix AAN scaling
- Fix compile error on arm4/arm5 platform
version 2.4.1:
- swscale: Allow chroma samples to be above and to the left of luma samples
- avcodec/libilbc: support for latest git of libilbc
- avcodec/webp: treat out-of-bound palette index as translucent black
- vf_deshake: rename Transform.vector to Transform.vec to avoid compiler confusion
- apetag: Fix APE tag size check
- tools/crypto_bench: fix build when AV_READ_TIME is unavailable
version 2.4:
- Icecast protocol
- ported lenscorrection filter from frei0r filter
- large optimizations in dctdnoiz to make it usable
- ICY metadata are now requested by default with the HTTP protocol
- support for using metadata in stream specifiers in fftools
- LZMA compression support in TIFF decoder
- support for H.261 RTP payload format (RFC 4587)
- HEVC/H.265 RTP payload format (draft v6) depacketizer
- added codecview filter to visualize information exported by some codecs
- Matroska 3D support thorugh side data
- HTML generation using texi2html is deprecated in favor of makeinfo/texi2any
- silenceremove filter
version 2.3:
- AC3 fixed-point decoding
- shuffleplanes filter
- subfile protocol
- Phantom Cine demuxer
- replaygain data export
- VP7 video decoder
- Alias PIX image encoder and decoder
- Improvements to the BRender PIX image decoder
- Improvements to the XBM decoder
- QTKit input device
- improvements to OpenEXR image decoder
- support decoding 16-bit RLE SGI images
- GDI screen grabbing for Windows
- alternative rendition support for HTTP Live Streaming
- AVFoundation input device
- Direct Stream Digital (DSD) decoder
- Magic Lantern Video (MLV) demuxer
- On2 AVC (Audio for Video) decoder
- support for decoding through DXVA2 in ffmpeg
- libbs2b-based stereo-to-binaural audio filter
- libx264 reference frames count limiting depending on level
- native Opus decoder
- display matrix export and rotation API
- WebVTT encoder
- showcqt multimedia filter
- zoompan filter
- signalstats filter
- hqx filter (hq2x, hq3x, hq4x)
- flanger filter
- Image format auto-detection
- LRC demuxer and muxer
- Samba protocol (via libsmbclient)
- WebM DASH Manifest muxer
- libfribidi support in drawtext
version 2.2:
- HNM version 4 demuxer and video decoder
- Live HDS muxer
- setsar/setdar filters now support variables in ratio expressions
- elbg filter
- string validation in ffprobe
- support for decoding through VDPAU in ffmpeg (the -hwaccel option)
- complete Voxware MetaSound decoder
- remove mp3_header_compress bitstream filter
- Windows resource files for shared libraries
- aeval filter
- stereoscopic 3d metadata handling
- WebP encoding via libwebp
- ATRAC3+ decoder
- VP8 in Ogg demuxing
- side & metadata support in NUT
- framepack filter
- XYZ12 rawvideo support in NUT
- Exif metadata support in WebP decoder
- OpenGL device
- Use metadata_header_padding to control padding in ID3 tags (currently used in
MP3, AIFF, and OMA files), FLAC header, and the AVI "junk" block.
- Mirillis FIC video decoder
- Support DNx444
- libx265 encoder
- dejudder filter
- Autodetect VDA like all other hardware accelerations
- aliases and defaults for Ogg subtypes (opus, spx)
version 2.1:
- aecho filter
- perspective filter ported from libmpcodecs
- ffprobe -show_programs option
- compand filter
- RTMP seek support
- when transcoding with ffmpeg (i.e. not streamcopying), -ss is now accurate
even when used as an input option. Previous behavior can be restored with
the -noaccurate_seek option.
- ffmpeg -t option can now be used for inputs, to limit the duration of
data read from an input file
- incomplete Voxware MetaSound decoder
- read EXIF metadata from JPEG
- DVB teletext decoder
- phase filter ported from libmpcodecs
- w3fdif filter
- Opus support in Matroska
- FFV1 version 1.3 is stable and no longer experimental
- FFV1: YUVA(444,422,420) 9, 10 and 16 bit support
- changed DTS stream id in lavf mpeg ps muxer from 0x8a to 0x88, to be
more consistent with other muxers.
- adelay filter
- pullup filter ported from libmpcodecs
- ffprobe -read_intervals option
- Lossless and alpha support for WebP decoder
- Error Resilient AAC syntax (ER AAC LC) decoding
- Low Delay AAC (ER AAC LD) decoding
- mux chapters in ASF files
- SFTP protocol (via libssh)
- libx264: add ability to encode in YUVJ422P and YUVJ444P
- Fraps: use BT.709 colorspace by default for yuv, as reference fraps decoder does
- make decoding alpha optional for prores, ffv1 and vp6 by setting
the skip_alpha flag.
- ladspa wrapper filter
- native VP9 decoder
- dpx parser
- max_error_rate parameter in ffmpeg
- PulseAudio output device
- ReplayGain scanner
- Enhanced Low Delay AAC (ER AAC ELD) decoding (no LD SBR support)
- Linux framebuffer output device
- HEVC decoder
- raw HEVC, HEVC in MOV/MP4, HEVC in Matroska, HEVC in MPEG-TS demuxing
- mergeplanes filter
version 2.0:
- curves filter
- reference-counting for AVFrame and AVPacket data
- ffmpeg now fails when input options are used for output file
or vice versa
- support for Monkey's Audio versions from 3.93
- perms and aperms filters
- audio filtering support in ffplay
- 10% faster aac encoding on x86 and MIPS
- sine audio filter source
- WebP demuxing and decoding support
- ffmpeg options -filter_script and -filter_complex_script, which allow a
filtergraph description to be read from a file
- OpenCL support
- audio phaser filter
- separatefields filter
- libquvi demuxer
- uniform options syntax across all filters
- telecine filter
- interlace filter
- smptehdbars source
- inverse telecine filters (fieldmatch and decimate)
- colorbalance filter
- colorchannelmixer filter
- The matroska demuxer can now output proper verbatim ASS packets. It will
become the default at the next libavformat major bump.
- decent native animated GIF encoding
- asetrate filter
- interleave filter
- timeline editing with filters
- vidstabdetect and vidstabtransform filters for video stabilization using
the vid.stab library
- astats filter
- trim and atrim filters
- ffmpeg -t and -ss (output-only) options are now sample-accurate when
transcoding audio
- Matroska muxer can now put the index at the beginning of the file.
- extractplanes filter
- avectorscope filter
- ADPCM DTK decoder
- ADP demuxer
- RSD demuxer
- RedSpark demuxer
- ADPCM IMA Radical decoder
- zmq filters
- DCT denoiser filter (dctdnoiz)
- Wavelet denoiser filter ported from libmpcodecs as owdenoise (formerly "ow")
- Apple Intermediate Codec decoder
- Escape 130 video decoder
- FTP protocol support
- V4L2 output device
- 3D LUT filter (lut3d)
- SMPTE 302M audio encoder
- support for slice multithreading in libavfilter
- Hald CLUT support (generation and filtering)
- VC-1 interlaced B-frame support
- support for WavPack muxing (raw and in Matroska)
- XVideo output device
- vignette filter
- True Audio (TTA) encoder
- Go2Webinar decoder
- mcdeint filter ported from libmpcodecs
- sab filter ported from libmpcodecs
- ffprobe -show_chapters option
- WavPack encoding through libwavpack
- rotate filter
- spp filter ported from libmpcodecs
- libgme support
- psnr filter
version 1.2:
- VDPAU hardware acceleration through normal hwaccel
- SRTP support
- Error diffusion dither in Swscale
- Chained Ogg support
- Theora Midstream reconfiguration support
- EVRC decoder
- audio fade filter
- filtering audio with unknown channel layout
- allpass, bass, bandpass, bandreject, biquad, equalizer, highpass, lowpass
and treble audio filter
- improved showspectrum filter, with multichannel support and sox-like colors
- histogram filter
- tee muxer
- il filter ported from libmpcodecs
- support ID3v2 tags in ASF files
- encrypted TTA stream decoding support
- RF64 support in WAV muxer
- noise filter ported from libmpcodecs
- Subtitles character encoding conversion
- blend filter
- stereo3d filter ported from libmpcodecs
version 1.1:
- stream disposition information printing in ffprobe
- filter for loudness analysis following EBU R128
- Opus encoder using libopus
- ffprobe -select_streams option
- Pinnacle TARGA CineWave YUV16 decoder
- TAK demuxer, decoder and parser
- DTS-HD demuxer
- remove -same_quant, it hasn't worked for years
- FFM2 support
- X-Face image encoder and decoder
- 24-bit FLAC encoding
- multi-channel ALAC encoding up to 7.1
- metadata (INFO tag) support in WAV muxer
- subtitles raw text decoder
- support for building DLLs using MSVC
- LVF demuxer
- ffescape tool
- metadata (info chunk) support in CAF muxer
- field filter ported from libmpcodecs
- AVR demuxer
- geq filter ported from libmpcodecs
- remove ffserver daemon mode
- AST muxer/demuxer
- new expansion syntax for drawtext
- BRender PIX image decoder
- ffprobe -show_entries option
- ffprobe -sections option
- ADPCM IMA Dialogic decoder
- BRSTM demuxer
- animated GIF decoder and demuxer
- PVF demuxer
- subtitles filter
- IRCAM muxer/demuxer
- Paris Audio File demuxer
- Virtual concatenation demuxer
- VobSub demuxer
- JSON captions for TED talks decoding support
- SOX Resampler support in libswresample
- aselect filter
- SGI RLE 8-bit / Silicon Graphics RLE 8-bit video decoder
- Silicon Graphics Motion Video Compressor 1 & 2 decoder
- Silicon Graphics Movie demuxer
- apad filter
- Resolution & pixel format change support with multithreading for H.264
- documentation split into per-component manuals
- pp (postproc) filter ported from MPlayer
- NIST Sphere demuxer
- MPL2, VPlayer, MPlayer, AQTitle, PJS and SubViewer v1 subtitles demuxers and decoders
- Sony Wave64 muxer
- adobe and limelight publisher authentication in RTMP
- data: URI scheme
- support building on the Plan 9 operating system
- kerndeint filter ported from MPlayer
- histeq filter ported from VirtualDub
- Megalux Frame demuxer
- 012v decoder
- Improved AVC Intra decoding support
version 1.0:
- INI and flat output in ffprobe
- Scene detection in libavfilter
- Indeo Audio decoder
- channelsplit audio filter
- setnsamples audio filter
- atempo filter
- ffprobe -show_data option
- RTMPT protocol support
- iLBC encoding/decoding via libilbc
- Microsoft Screen 1 decoder
- join audio filter
- audio channel mapping filter
- Microsoft ATC Screen decoder
- RTSP listen mode
- TechSmith Screen Codec 2 decoder
- AAC encoding via libfdk-aac
- Microsoft Expression Encoder Screen decoder
- RTMPS protocol support
- RTMPTS protocol support
- RTMPE protocol support
- RTMPTE protocol support
- showwaves and showspectrum filter
- LucasArts SMUSH SANM playback support
- LucasArts SMUSH VIMA audio decoder (ADPCM)
- LucasArts SMUSH demuxer
- SAMI, RealText and SubViewer demuxers and decoders
- Heart Of Darkness PAF playback support
- iec61883 device
- asettb filter
- new option: -progress
- 3GPP Timed Text encoder/decoder
- GeoTIFF decoder support
- ffmpeg -(no)stdin option
- Opus decoder using libopus
- caca output device using libcaca
- alphaextract and alphamerge filters
- concat filter
- flite filter
- Canopus Lossless Codec decoder
- bitmap subtitles in filters (experimental and temporary)
- MP2 encoding via TwoLAME
- bmp parser
- smptebars source
- asetpts filter
- hue filter
- ICO muxer
- SubRip encoder and decoder without embedded timing
- edge detection filter
- framestep filter
- ffmpeg -shortest option is now per-output file
-pass and -passlogfile are now per-output stream
- volume measurement filter
- Ut Video encoder
- Microsoft Screen 2 decoder
- smartblur filter ported from MPlayer
- CPiA decoder
- decimate filter ported from MPlayer
- RTP depacketization of JPEG
- Smooth Streaming live segmenter muxer
- F4V muxer
- sendcmd and asendcmd filters
- WebVTT demuxer and decoder (simple tags supported)
- RTP packetization of JPEG
- faststart option in the MOV/MP4 muxer
- support for building with MSVC
version 0.11:
- Fixes: CVE-2012-2772, CVE-2012-2774, CVE-2012-2775, CVE-2012-2776, CVE-2012-2777,
CVE-2012-2779, CVE-2012-2782, CVE-2012-2783, CVE-2012-2784, CVE-2012-2785,
CVE-2012-2786, CVE-2012-2787, CVE-2012-2788, CVE-2012-2789, CVE-2012-2790,
CVE-2012-2791, CVE-2012-2792, CVE-2012-2793, CVE-2012-2794, CVE-2012-2795,
CVE-2012-2796, CVE-2012-2797, CVE-2012-2798, CVE-2012-2799, CVE-2012-2800,
CVE-2012-2801, CVE-2012-2802, CVE-2012-2803, CVE-2012-2804,
- v408 Quicktime and Microsoft AYUV Uncompressed 4:4:4:4 encoder and decoder
- setfield filter
- CDXL demuxer and decoder
- Apple ProRes encoder
- ffprobe -count_packets and -count_frames options
- Sun Rasterfile Encoder
- ID3v2 attached pictures reading and writing
- WMA Lossless decoder
- bluray protocol
- blackdetect filter
- libutvideo encoder wrapper (--enable-libutvideo)
- swapuv filter
- bbox filter
- XBM encoder and decoder
- RealAudio Lossless decoder
- ZeroCodec decoder
- tile video filter
- Metal Gear Solid: The Twin Snakes demuxer
- OpenEXR image decoder
- removelogo filter
- drop support for ffmpeg without libavfilter
- drawtext video filter: fontconfig support
- ffmpeg -benchmark_all option
- super2xsai filter ported from libmpcodecs
- add libavresample audio conversion library for compatibility
- MicroDVD decoder
- Avid Meridien (AVUI) encoder and decoder
- accept + prefix to -pix_fmt option to disable automatic conversions.
- complete audio filtering in libavfilter and ffmpeg
- add fps filter
- vorbis parser
- png parser
- audio mix filter
- ffv1: support (draft) version 1.3
version 0.10:
- Fixes: CVE-2011-3929, CVE-2011-3934, CVE-2011-3935, CVE-2011-3936,
CVE-2011-3937, CVE-2011-3940, CVE-2011-3941, CVE-2011-3944,
CVE-2011-3945, CVE-2011-3946, CVE-2011-3947, CVE-2011-3949,
CVE-2011-3950, CVE-2011-3951, CVE-2011-3952
- v410 Quicktime Uncompressed 4:4:4 10-bit encoder and decoder
- SBaGen (SBG) binaural beats script demuxer
- OpenMG Audio muxer
- Timecode extraction in DV and MOV
- thumbnail video filter
- XML output in ffprobe
- asplit audio filter
- tinterlace video filter
- astreamsync audio filter
- amerge audio filter
- ISMV (Smooth Streaming) muxer
- GSM audio parser
- SMJPEG muxer
- XWD encoder and decoder
- Automatic thread count based on detection number of (available) CPU cores
- y41p Brooktree Uncompressed 4:1:1 12-bit encoder and decoder
- ffprobe -show_error option
- Avid 1:1 10-bit RGB Packer codec
- v308 Quicktime Uncompressed 4:4:4 encoder and decoder
- yuv4 libquicktime packed 4:2:0 encoder and decoder
- ffprobe -show_frames option
- silencedetect audio filter
- ffprobe -show_program_version, -show_library_versions, -show_versions options
- rv34: frame-level multi-threading
- optimized iMDCT transform on x86 using SSE for for mpegaudiodec
- Improved PGS subtitle decoder
- dumpgraph option to lavfi device
- r210 and r10k encoders
- ffwavesynth decoder
- aviocat tool
- ffeval tool
- support encoding and decoding 4-channel SGI images
version 0.9:
- openal input device added
- boxblur filter added
- BWF muxer
- Flash Screen Video 2 decoder
- lavfi input device added
- added avconv, which is almost the same for now, except
for a few incompatible changes in the options, which will hopefully make them
easier to use. The changes are:
* The options placement is now strictly enforced! While in theory the
options for ffmpeg should be given in [input options] -i INPUT [output
options] OUTPUT order, in practice it was possible to give output options
before the -i and it mostly worked. Except when it didn't - the behavior was
a bit inconsistent. In avconv, it is not possible to mix input and output
options. All non-global options are reset after an input or output filename.
* All per-file options are now truly per-file - they apply only to the next
input or output file and specifying different values for different files
will now work properly (notably -ss and -t options).
* All per-stream options are now truly per-stream - it is possible to
specify which stream(s) should a given option apply to. See the Stream
specifiers section in the avconv manual for details.
* In ffmpeg some options (like -newvideo/-newaudio/...) are irregular in the
sense that they're specified after the output filename instead of before,
like all other options. In avconv this irregularity is removed, all options
apply to the next input or output file.
* -newvideo/-newaudio/-newsubtitle options were removed. Not only were they
irregular and highly confusing, they were also redundant. In avconv the -map
option will create new streams in the output file and map input streams to
them. E.g. avconv -i INPUT -map 0 OUTPUT will create an output stream for
each stream in the first input file.
* The -map option now has slightly different and more powerful syntax:
+ Colons (':') are used to separate file index/stream type/stream index
instead of dots. Comma (',') is used to separate the sync stream instead
of colon.. This is done for consistency with other options.
+ It's possible to specify stream type. E.g. -map 0:a:2 creates an
output stream from the third input audio stream.
+ Omitting the stream index now maps all the streams of the given type,
not just the first. E.g. -map 0:s creates output streams for all the
subtitle streams in the first input file.
+ Since -map can now match multiple streams, negative mappings were
introduced. Negative mappings disable some streams from an already
defined map. E.g. '-map 0 -map -0:a:1' means 'create output streams for
all the stream in the first input file, except for the second audio
stream'.
* There is a new option -c (or -codec) for choosing the decoder/encoder to
use, which allows to precisely specify target stream(s) consistently with
other options. E.g. -c:v lib264 sets the codec for all video streams, -c:a:0
libvorbis sets the codec for the first audio stream and -c copy copies all
the streams without reencoding. Old -vcodec/-acodec/-scodec options are now
aliases to -c:v/a/s
* It is now possible to precisely specify which stream should an AVOption
apply to. E.g. -b:v:0 2M sets the bitrate for the first video stream, while
-b:a 128k sets the bitrate for all audio streams. Note that the old -ab 128k
syntax is deprecated and will stop working soon.
* -map_chapters now takes only an input file index and applies to the next
output file. This is consistent with how all the other options work.
* -map_metadata now takes only an input metadata specifier and applies to
the next output file. Output metadata specifier is now part of the option
name, similarly to the AVOptions/map/codec feature above.
* -metadata can now be used to set metadata on streams and chapters, e.g.
-metadata:s:1 language=eng sets the language of the first stream to 'eng'.
This made -vlang/-alang/-slang options redundant, so they were removed.
* -qscale option now uses stream specifiers and applies to all streams, not
just video. I.e. plain -qscale number would now apply to all streams. To get
the old behavior, use -qscale:v. Also there is now a shortcut -q for -qscale
and -aq is now an alias for -q:a.
* -vbsf/-absf/-sbsf options were removed and replaced by a -bsf option which
uses stream specifiers. Use -bsf:v/a/s instead of the old options.
* -itsscale option now uses stream specifiers, so its argument is only the
scale parameter.
* -intra option was removed, use -g 0 for the same effect.
* -psnr option was removed, use -flags +psnr for the same effect.
* -vf option is now an alias to the new -filter option, which uses stream specifiers.
* -vframes/-aframes/-dframes options are now aliases to the new -frames option.
* -vtag/-atag/-stag options are now aliases to the new -tag option.
- XMV demuxer
- LOAS demuxer
- ashowinfo filter added
- Windows Media Image decoder
- amovie source added
- LATM muxer/demuxer
- Speex encoder via libspeex
- JSON output in ffprobe
- WTV muxer
- Optional C++ Support (needed for libstagefright)
- H.264 Decoding on Android via Stagefright
- Prores decoder
- BIN/XBIN/ADF/IDF text file decoder
- aconvert audio filter added
- audio support to lavfi input device added
- libcdio-paranoia input device for audio CD grabbing
- Apple ProRes decoder
- CELT in Ogg demuxing
- G.723.1 demuxer and decoder
- libmodplug support (--enable-libmodplug)
- VC-1 interlaced decoding
- libutvideo wrapper (--enable-libutvideo)
- aevalsrc audio source added
- Ut Video decoder
- Speex encoding via libspeex
- 4:2:2 H.264 decoding support
- 4:2:2 and 4:4:4 H.264 encoding with libx264
- Pulseaudio input device
- Prores encoder
- Video Decoder Acceleration (VDA) HWAccel module.
- replacement Indeo 3 decoder
- new ffmpeg option: -map_channel
- volume audio filter added
- earwax audio filter added
- libv4l2 support (--enable-libv4l2)
- TLS/SSL and HTTPS protocol support
- AVOptions API rewritten and documented
- most of CODEC_FLAG2_*, some CODEC_FLAG_* and many codec-specific fields in
AVCodecContext deprecated. Codec private options should be used instead.
- Properly working defaults in libx264 wrapper, support for native presets.
- Encrypted OMA files support
- Discworld II BMV decoding support
- VBLE Decoder
- OS X Video Decoder Acceleration (VDA) support
- compact and csv output in ffprobe
- pan audio filter
- IFF Amiga Continuous Bitmap (ACBM) decoder
- ass filter
- CRI ADX audio format muxer and demuxer
- Playstation Portable PMP format demuxer
- Microsoft Windows ICO demuxer
- life source
- PCM format support in OMA demuxer
- CLJR encoder
- new option: -report
- Dxtory capture format decoder
- cellauto source
- Simple segmenting muxer
- Indeo 4 decoder
- SMJPEG demuxer
version 0.8:
- many many things we forgot because we rather write code than changelogs
- WebM support in Matroska de/muxer
- low overhead Ogg muxing
- MMS-TCP support
- VP8 de/encoding via libvpx
- Demuxer for On2's IVF format
- Pictor/PC Paint decoder
- HE-AAC v2 decoder
- HE-AAC v2 encoding with libaacplus
- libfaad2 wrapper removed
- DTS-ES extension (XCh) decoding support
- native VP8 decoder
- RTSP tunneling over HTTP
- RTP depacketization of SVQ3
- -strict inofficial replaced by -strict unofficial
- ffplay -exitonkeydown and -exitonmousedown options added
- native GSM / GSM MS decoder
- RTP depacketization of QDM2
- ANSI/ASCII art playback system
- Lego Mindstorms RSO de/muxer
- libavcore added (and subsequently removed)
- SubRip subtitle file muxer and demuxer
- Chinese AVS encoding via libxavs
- ffprobe -show_packets option added
- RTP packetization of Theora and Vorbis
- RTP depacketization of MP4A-LATM
- RTP packetization and depacketization of VP8
- hflip filter
- Apple HTTP Live Streaming demuxer
- a64 codec
- MMS-HTTP support
- G.722 ADPCM audio encoder/decoder
- R10k video decoder
- ocv_smooth filter
- frei0r wrapper filter
- change crop filter syntax to width:height:x:y
- make the crop filter accept parametric expressions
- make ffprobe accept AVFormatContext options
- yadif filter
- blackframe filter
- Demuxer for Leitch/Harris' VR native stream format (LXF)
- RTP depacketization of the X-QT QuickTime format
- SAP (Session Announcement Protocol, RFC 2974) muxer and demuxer
- cropdetect filter
- ffmpeg -crop* options removed
- transpose filter added
- ffmpeg -force_key_frames option added
- demuxer for receiving raw rtp:// URLs without an SDP description
- single stream LATM/LOAS decoder
- setpts filter added
- Win64 support for optimized x86 assembly functions
- MJPEG/AVI1 to JPEG/JFIF bitstream filter
- ASS subtitle encoder and decoder
- IEC 61937 encapsulation for E-AC-3, TrueHD, DTS-HD (for HDMI passthrough)
- overlay filter added
- rename aspect filter to setdar, and pixelaspect to setsar
- IEC 61937 demuxer
- Mobotix .mxg demuxer
- frei0r source added
- hqdn3d filter added
- RTP depacketization of QCELP
- FLAC parser added
- gradfun filter added
- AMR-WB decoder
- replace the ocv_smooth filter with a more generic ocv filter
- Windows Televison (WTV) demuxer
- FFmpeg metadata format muxer and demuxer
- SubRip (srt) subtitle encoder and decoder
- floating-point AC-3 encoder added
- Lagarith decoder
- ffmpeg -copytb option added
- IVF muxer added
- Wing Commander IV movies decoder added
- movie source added
- Bink version 'b' audio and video decoder
- Bitmap Brothers JV playback system
- Apple HTTP Live Streaming protocol handler
- sndio support for playback and record
- Linux framebuffer input device added
- Chronomaster DFA decoder
- DPX image encoder
- MicroDVD subtitle file muxer and demuxer
- Playstation Portable PMP format demuxer
- fieldorder video filter added
- AAC encoding via libvo-aacenc
- AMR-WB encoding via libvo-amrwbenc
- xWMA demuxer
- Mobotix MxPEG decoder
- VP8 frame-multithreading
- NEON optimizations for VP8
- Lots of deprecated API cruft removed
- fft and imdct optimizations for AVX (Sandy Bridge) processors
- showinfo filter added
- SMPTE 302M AES3 audio decoder
- Apple Core Audio Format muxer
- 9bit and 10bit per sample support in the H.264 decoder
- 9bit and 10bit FFV1 encoding / decoding
- split filter added
- select filter added
- sdl output device added
- libmpcodecs video filter support (3 times as many filters than before)
- mpeg2 aspect ratio dection fixed
- libxvid aspect pickiness fixed
- Frame multithreaded decoding
- E-AC-3 audio encoder
- ac3enc: add channel coupling support
- floating-point sample format support to the ac3, eac3, dca, aac, and vorbis decoders.
- H264/MPEG frame-level multi-threading
- All av_metadata_* functions renamed to av_dict_* and moved to libavutil
- 4:4:4 H.264 decoding support
- 10-bit H.264 optimizations for x86
- lut, lutrgb, and lutyuv filters added
- buffersink libavfilter sink added
- Bump libswscale for recently reported ABI break
- New J2K encoder (via OpenJPEG)
version 0.7:
- all the changes for 0.8, but keeping API/ABI compatibility with the 0.6 release
version 0.6:
- PB-frame decoding for H.263
- deprecated vhook subsystem removed
- deprecated old scaler removed
- VQF demuxer
- Alpha channel scaler
- PCX encoder
- RTP packetization of H.263
- RTP packetization of AMR
- RTP depacketization of Vorbis
- CorePNG decoding support
- Cook multichannel decoding support
- introduced avlanguage helpers in libavformat
- 8088flex TMV demuxer and decoder
- per-stream language-tags extraction in asfdec
- V210 decoder and encoder
- remaining GPL parts in AC-3 decoder converted to LGPL
- QCP demuxer
- SoX native format muxer and demuxer
- AMR-NB decoding/encoding, AMR-WB decoding via OpenCORE libraries
- DPX image decoder
- Electronic Arts Madcow decoder
- DivX (XSUB) subtitle encoder
- nonfree libamr support for AMR-NB/WB decoding/encoding removed
- experimental AAC encoder
- RTP depacketization of ASF and RTSP from WMS servers
- RTMP support in libavformat
- noX handling for OPT_BOOL X options
- Wave64 demuxer
- IEC-61937 compatible Muxer
- TwinVQ decoder
- Bluray (PGS) subtitle decoder
- LPCM support in MPEG-TS (HDMV RID as found on Blu-ray disks)
- WMA Pro decoder
- Core Audio Format demuxer
- ATRAC1 decoder
- MD STUDIO audio demuxer
- RF64 support in WAV demuxer
- MPEG-4 Audio Lossless Coding (ALS) decoder
- -formats option split into -formats, -codecs, -bsfs, and -protocols
- IV8 demuxer
- CDG demuxer and decoder
- R210 decoder
- Auravision Aura 1 and 2 decoders
- Deluxe Paint Animation playback system
- SIPR decoder
- Adobe Filmstrip muxer and demuxer
- RTP depacketization of H.263
- Bink demuxer and audio/video decoders
- enable symbol versioning by default for linkers that support it
- IFF PBM/ILBM bitmap decoder
- concat protocol
- Indeo 5 decoder
- RTP depacketization of AMR
- WMA Voice decoder
- ffprobe tool
- AMR-NB decoder
- RTSP muxer
- HE-AAC v1 decoder
- Kega Game Video (KGV1) decoder
- VorbisComment writing for FLAC, Ogg FLAC and Ogg Speex files
- RTP depacketization of Theora
- HTTP Digest authentication
- RTMP/RTMPT/RTMPS/RTMPE/RTMPTE protocol support via librtmp
- Psygnosis YOP demuxer and video decoder
- spectral extension support in the E-AC-3 decoder
- unsharp video filter
- RTP hinting in the mov/3gp/mp4 muxer
- Dirac in Ogg demuxing
- seek to keyframes in Ogg
- 4:2:2 and 4:4:4 Theora decoding
- 35% faster VP3/Theora decoding
- faster AAC decoding
- faster H.264 decoding
- RealAudio 1.0 (14.4K) encoder
version 0.5:
- DV50 AKA DVCPRO50 encoder, decoder, muxer and demuxer
- TechSmith Camtasia (TSCC) video decoder
- IBM Ultimotion (ULTI) video decoder
- Sierra Online audio file demuxer and decoder
- Apple QuickDraw (qdrw) video decoder
- Creative ADPCM audio decoder (16 bits as well as 8 bits schemes)
- Electronic Arts Multimedia (WVE/UV2/etc.) file demuxer
- Miro VideoXL (VIXL) video decoder
- H.261 video encoder
- QPEG video decoder
- Nullsoft Video (NSV) file demuxer
- Shorten audio decoder
- LOCO video decoder
- Apple Lossless Audio Codec (ALAC) decoder
- Winnov WNV1 video decoder
- Autodesk Animator Studio Codec (AASC) decoder
- Indeo 2 video decoder
- Fraps FPS1 video decoder
- Snow video encoder/decoder
- Sonic audio encoder/decoder
- Vorbis audio decoder
- Macromedia ADPCM decoder
- Duck TrueMotion 2 video decoder
- support for decoding FLX and DTA extensions in FLIC files
- H.264 custom quantization matrices support
- ffserver fixed, it should now be usable again
- QDM2 audio decoder
- Real Cooker audio decoder
- TrueSpeech audio decoder
- WMA2 audio decoder fixed, now all files should play correctly
- RealAudio 14.4 and 28.8 decoders fixed
- JPEG-LS decoder
- build system improvements
- tabs and trailing whitespace removed from the codebase
- CamStudio video decoder
- AIFF/AIFF-C audio format, encoding and decoding
- ADTS AAC file reading and writing
- Creative VOC file reading and writing
- American Laser Games multimedia (*.mm) playback system
- Zip Motion Blocks Video decoder
- improved Theora/VP3 decoder
- True Audio (TTA) decoder
- AVS demuxer and video decoder
- JPEG-LS encoder
- Smacker demuxer and decoder
- NuppelVideo/MythTV demuxer and RTjpeg decoder
- KMVC decoder
- MPEG-2 intra VLC support
- MPEG-2 4:2:2 encoder
- Flash Screen Video decoder
- GXF demuxer
- Chinese AVS decoder
- GXF muxer
- MXF demuxer
- VC-1/WMV3/WMV9 video decoder
- MacIntel support
- AviSynth support
- VMware video decoder
- VP5 video decoder
- VP6 video decoder
- WavPack lossless audio decoder
- Targa (.TGA) picture decoder
- Vorbis audio encoder
- Delphine Software .cin demuxer/audio and video decoder
- Tiertex .seq demuxer/video decoder
- MTV demuxer
- TIFF picture encoder and decoder
- GIF picture decoder
- Intel Music Coder decoder
- Zip Motion Blocks Video encoder
- Musepack decoder
- Flash Screen Video encoder
- Theora encoding via libtheora
- BMP encoder
- WMA encoder
- GSM-MS encoder and decoder
- DCA decoder
- DXA demuxer and decoder
- DNxHD decoder
- Gamecube movie (.THP) playback system
- Blackfin optimizations
- Interplay C93 demuxer and video decoder
- Bethsoft VID demuxer and video decoder
- CRYO APC demuxer
- ATRAC3 decoder
- V.Flash PTX decoder
- RoQ muxer, RoQ audio encoder
- Renderware TXD demuxer and decoder
- extern C declarations for C++ removed from headers
- sws_flags command line option
- codebook generator
- RoQ video encoder
- QTRLE encoder
- OS/2 support removed and restored again
- AC-3 decoder
- NUT muxer
- additional SPARC (VIS) optimizations
- Matroska muxer
- slice-based parallel H.264 decoding
- Monkey's Audio demuxer and decoder
- AMV audio and video decoder
- DNxHD encoder
- H.264 PAFF decoding
- Nellymoser ASAO decoder
- Beam Software SIFF demuxer and decoder
- libvorbis Vorbis decoding removed in favor of native decoder
- IntraX8 (J-Frame) subdecoder for WMV2 and VC-1
- Ogg (Theora, Vorbis and FLAC) muxer
- The "device" muxers and demuxers are now in a new libavdevice library
- PC Paintbrush PCX decoder
- Sun Rasterfile decoder
- TechnoTrend PVA demuxer
- Linux Media Labs MPEG-4 (LMLM4) demuxer
- AVM2 (Flash 9) SWF muxer
- QT variant of IMA ADPCM encoder
- VFW grabber
- iPod/iPhone compatible mp4 muxer
- Mimic decoder
- MSN TCP Webcam stream demuxer
- RL2 demuxer / decoder
- IFF demuxer
- 8SVX audio decoder
- non-recursive Makefiles
- BFI demuxer
- MAXIS EA XA (.xa) demuxer / decoder
- BFI video decoder
- OMA demuxer
- MLP/TrueHD decoder
- Electronic Arts CMV decoder
- Motion Pixels Video decoder
- Motion Pixels MVI demuxer
- removed animated GIF decoder/demuxer
- D-Cinema audio muxer
- Electronic Arts TGV decoder
- Apple Lossless Audio Codec (ALAC) encoder
- AAC decoder
- floating point PCM encoder/decoder
- MXF muxer
- DV100 AKA DVCPRO HD decoder and demuxer
- E-AC-3 support added to AC-3 decoder
- Nellymoser ASAO encoder
- ASS and SSA demuxer and muxer
- liba52 wrapper removed
- SVQ3 watermark decoding support
- Speex decoding via libspeex
- Electronic Arts TGQ decoder
- RV40 decoder
- QCELP / PureVoice decoder
- RV30 decoder
- hybrid WavPack support
- R3D REDCODE demuxer
- ALSA support for playback and record
- Electronic Arts TQI decoder
- OpenJPEG based JPEG 2000 decoder
- NC (NC4600) camera file demuxer
- Gopher client support
- MXF D-10 muxer
- generic metadata API
- flash ScreenVideo2 encoder
version 0.4.9-pre1:
- DV encoder, DV muxer
- Microsoft RLE video decoder
- Microsoft Video-1 decoder
- Apple Animation (RLE) decoder
- Apple Graphics (SMC) decoder
- Apple Video (RPZA) decoder
- Cinepak decoder
- Sega FILM (CPK) file demuxer
- Westwood multimedia support (VQA & AUD files)
- Id Quake II CIN playback support
- 8BPS video decoder
- FLIC playback support
- RealVideo 2.0 (RV20) decoder
- Duck TrueMotion v1 (DUCK) video decoder
- Sierra VMD demuxer and video decoder
- MSZH and ZLIB decoder support
- SVQ1 video encoder
- AMR-WB support
- PPC optimizations
- rate distortion optimal cbp support
- rate distorted optimal ac prediction for MPEG-4
- rate distorted optimal lambda->qp support
- AAC encoding with libfaac
- Sunplus JPEG codec (SP5X) support
- use Lagrange multipler instead of QP for ratecontrol
- Theora/VP3 decoding support
- XA and ADX ADPCM codecs
- export MPEG-2 active display area / pan scan
- Add support for configuring with IBM XLC
- floating point AAN DCT
- initial support for zygo video (not complete)
- RGB ffv1 support
- new audio/video parser API
- av_log() system
- av_read_frame() and av_seek_frame() support
- missing last frame fixes
- seek by mouse in ffplay
- noise reduction of DCT coefficients
- H.263 OBMC & 4MV support
- H.263 alternative inter vlc support
- H.263 loop filter
- H.263 slice structured mode
- interlaced DCT support for MPEG-2 encoding
- stuffing to stay above min_bitrate
- MB type & QP visualization
- frame stepping for ffplay
- interlaced motion estimation
- alternate scantable support
- SVCD scan offset support
- closed GOP support
- SSE2 FDCT
- quantizer noise shaping
- G.726 ADPCM audio codec
- MS ADPCM encoding
- multithreaded/SMP motion estimation
- multithreaded/SMP encoding for MPEG-1/MPEG-2/MPEG-4/H.263
- multithreaded/SMP decoding for MPEG-2
- FLAC decoder
- Metrowerks CodeWarrior suppport
- H.263+ custom pcf support
- nicer output for 'ffmpeg -formats'
- Matroska demuxer
- SGI image format, encoding and decoding
- H.264 loop filter support
- H.264 CABAC support
- nicer looking arrows for the motion vector visualization
- improved VCD support
- audio timestamp drift compensation
- MPEG-2 YUV 422/444 support
- polyphase kaiser windowed sinc and blackman nuttall windowed sinc audio resample
- better image scaling
- H.261 support
- correctly interleave packets during encoding
- VIS optimized motion compensation
- intra_dc_precision>0 encoding support
- support reuse of motion vectors/MB types/field select values of the source video
- more accurate deblock filter
- padding support
- many optimizations and bugfixes
- FunCom ISS audio file demuxer and according ADPCM decoding
version 0.4.8:
- MPEG-2 video encoding (Michael)
- Id RoQ playback subsystem (Mike Melanson and Tim Ferguson)
- Wing Commander III Movie (.mve) file playback subsystem (Mike Melanson
and Mario Brito)
- Xan DPCM audio decoder (Mario Brito)
- Interplay MVE playback subsystem (Mike Melanson)
- Duck DK3 and DK4 ADPCM audio decoders (Mike Melanson)
version 0.4.7:
- RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from mplayerhq
(originally from public domain player for Amiga at http://www.honeypot.net/audio)
- current version now also compiles with older GCC (Fabrice)
- 4X multimedia playback system including 4xm file demuxer (Mike
Melanson), and 4X video and audio codecs (Michael)
- Creative YUV (CYUV) decoder (Mike Melanson)
- FFV1 codec (our very simple lossless intra only codec, compresses much better
than HuffYUV) (Michael)
- ASV1 (Asus), H.264, Intel indeo3 codecs have been added (various)
- tiny PNG encoder and decoder, tiny GIF decoder, PAM decoder (PPM with
alpha support), JPEG YUV colorspace support. (Fabrice Bellard)
- ffplay has been replaced with a newer version which uses SDL (optionally)
for multiplatform support (Fabrice)
- Sorenson Version 3 codec (SVQ3) support has been added (decoding only) - donated
by anonymous
- AMR format has been added (Johannes Carlsson)
- 3GP support has been added (Johannes Carlsson)
- VP3 codec has been added (Mike Melanson)
- more MPEG-1/2 fixes
- better multiplatform support, MS Visual Studio fixes (various)
- AltiVec optimizations (Magnus Damn and others)
- SH4 processor support has been added (BERO)
- new public interfaces (avcodec_get_pix_fmt) (Roman Shaposhnick)
- VOB streaming support (Brian Foley)
- better MP3 autodetection (Andriy Rysin)
- qpel encoding (Michael)
- 4mv+b frames encoding finally fixed (Michael)
- chroma ME (Michael)
- 5 comparison functions for ME (Michael)
- B-frame encoding speedup (Michael)
- WMV2 codec (unfinished - Michael)
- user specified diamond size for EPZS (Michael)
- Playstation STR playback subsystem, still experimental (Mike and Michael)
- ASV2 codec (Michael)
- CLJR decoder (Alex)
.. And lots more new enhancements and fixes.
version 0.4.6:
- completely new integer only MPEG audio layer 1/2/3 decoder rewritten
from scratch
- Recoded DCT and motion vector search with gcc (no longer depends on nasm)
- fix quantization bug in AC3 encoder
- added PCM codecs and format. Corrected WAV/AVI/ASF PCM issues
- added prototype ffplay program
- added GOB header parsing on H.263/H.263+ decoder (Juanjo)
- bug fix on MCBPC tables of H.263 (Juanjo)
- bug fix on DC coefficients of H.263 (Juanjo)
- added Advanced Prediction Mode on H.263/H.263+ decoder (Juanjo)
- now we can decode H.263 streams found in QuickTime files (Juanjo)
- now we can decode H.263 streams found in VIVO v1 files(Juanjo)
- preliminary RTP "friendly" mode for H.263/H.263+ coding. (Juanjo)
- added GOB header for H.263/H.263+ coding on RTP mode (Juanjo)
- now H.263 picture size is returned on the first decoded frame (Juanjo)
- added first regression tests
- added MPEG-2 TS demuxer
- new demux API for libav
- more accurate and faster IDCT (Michael)
- faster and entropy-controlled motion search (Michael)
- two pass video encoding (Michael)
- new video rate control (Michael)
- added MSMPEG4V1, MSMPEGV2 and WMV1 support (Michael)
- great performance improvement of video encoders and decoders (Michael)
- new and faster bit readers and vlc parsers (Michael)
- high quality encoding mode: tries all macroblock/VLC types (Michael)
- added DV video decoder
- preliminary RTP/RTSP support in ffserver and libavformat
- H.263+ AIC decoding/encoding support (Juanjo)
- VCD MPEG-PS mode (Juanjo)
- PSNR stuff (Juanjo)
- simple stats output (Juanjo)
- 16-bit and 15-bit RGB/BGR/GBR support (Bisqwit)
version 0.4.5:
- some header fixes (Zdenek Kabelac <kabi at informatics.muni.cz>)
- many MMX optimizations (Nick Kurshev <nickols_k at mail.ru>)
- added configure system (actually a small shell script)
- added MPEG audio layer 1/2/3 decoding using LGPL'ed mpglib by
Michael Hipp (temporary solution - waiting for integer only
decoder)
- fixed VIDIOCSYNC interrupt
- added Intel H.263 decoding support ('I263' AVI fourCC)
- added Real Video 1.0 decoding (needs further testing)
- simplified image formats again. Added PGM format (=grey
pgm). Renamed old PGM to PGMYUV.
- fixed msmpeg4 slice issues (tell me if you still find problems)
- fixed OpenDivX bugs with newer versions (added VOL header decoding)
- added support for MPlayer interface
- added macroblock skip optimization
- added MJPEG decoder
- added mmx/mmxext IDCT from libmpeg2
- added pgmyuvpipe, ppm, and ppm_pipe formats (original patch by Celer
<celer at shell.scrypt.net>)
- added pixel format conversion layer (e.g. for MJPEG or PPM)
- added deinterlacing option
- MPEG-1/2 fixes
- MPEG-4 vol header fixes (Jonathan Marsden <snmjbm at pacbell.net>)
- ARM optimizations (Lionel Ulmer <lionel.ulmer at free.fr>).
- Windows porting of file converter
- added MJPEG raw format (input/output)
- added JPEG image format support (input/output)
version 0.4.4:
- fixed some std header definitions (Bjorn Lindgren
<bjorn.e.lindgren at telia.com>).
- added MPEG demuxer (MPEG-1 and 2 compatible).
- added ASF demuxer
- added prototype RM demuxer
- added AC3 decoding (done with libac3 by Aaron Holtzman)
- added decoding codec parameter guessing (.e.g. for MPEG, because the
header does not include them)
- fixed header generation in MPEG-1, AVI and ASF muxer: wmplayer can now
play them (only tested video)
- fixed H.263 white bug
- fixed phase rounding in img resample filter
- add MMX code for polyphase img resample filter
- added CPU autodetection
- added generic title/author/copyright/comment string handling (ASF and RM
use them)
- added SWF demux to extract MP3 track (not usable yet because no MP3
decoder)
- added fractional frame rate support
- codecs are no longer searched by read_header() (should fix ffserver
segfault)
version 0.4.3:
- BGR24 patch (initial patch by Jeroen Vreeken <pe1rxq at amsat.org>)
- fixed raw yuv output
- added motion rounding support in MPEG-4
- fixed motion bug rounding in MSMPEG4
- added B-frame handling in video core
- added full MPEG-1 decoding support
- added partial (frame only) MPEG-2 support
- changed the FOURCC code for H.263 to "U263" to be able to see the
+AVI/H.263 file with the UB Video H.263+ decoder. MPlayer works with
this +codec ;) (JuanJo).
- Halfpel motion estimation after MB type selection (JuanJo)
- added pgm and .Y.U.V output format
- suppressed 'img:' protocol. Simply use: /tmp/test%d.[pgm|Y] as input or
output.
- added pgmpipe I/O format (original patch from Martin Aumueller
<lists at reserv.at>, but changed completely since we use a format
instead of a protocol)
version 0.4.2:
- added H.263/MPEG-4/MSMPEG4 decoding support. MPEG-4 decoding support
(for OpenDivX) is almost complete: 8x8 MVs and rounding are
missing. MSMPEG4 support is complete.
- added prototype MPEG-1 decoder. Only I- and P-frames handled yet (it
can decode ffmpeg MPEGs :-)).
- added libavcodec API documentation (see apiexample.c).
- fixed image polyphase bug (the bottom of some images could be
greenish)
- added support for non clipped motion vectors (decoding only)
and image sizes non-multiple of 16
- added support for AC prediction (decoding only)
- added file overwrite confirmation (can be disabled with -y)
- added custom size picture to H.263 using H.263+ (Juanjo)
version 0.4.1:
- added MSMPEG4 (aka DivX) compatible encoder. Changed default codec
of AVI and ASF to DIV3.
- added -me option to set motion estimation method
(default=log). suppressed redundant -hq option.
- added options -acodec and -vcodec to force a given codec (useful for
AVI for example)
- fixed -an option
- improved dct_quantize speed
- factorized some motion estimation code
version 0.4.0:
- removing grab code from ffserver and moved it to ffmpeg. Added
multistream support to ffmpeg.
- added timeshifting support for live feeds (option ?date=xxx in the
URL)
- added high quality image resize code with polyphase filter (need
mmx/see optimization). Enable multiple image size support in ffserver.
- added multi live feed support in ffserver
- suppressed master feature from ffserver (it should be done with an
external program which opens the .ffm url and writes it to another
ffserver)
- added preliminary support for video stream parsing (WAV and AVI half
done). Added proper support for audio/video file conversion in
ffmpeg.
- added preliminary support for video file sending from ffserver
- redesigning I/O subsystem: now using URL based input and output
(see avio.h)
- added WAV format support
- added "tty user interface" to ffmpeg to stop grabbing gracefully
- added MMX/SSE optimizations to SAD (Sums of Absolutes Differences)
(Juan J. Sierralta P. a.k.a. "Juanjo" <juanjo at atmlab.utfsm.cl>)
- added MMX DCT from mpeg2_movie 1.5 (Juanjo)
- added new motion estimation algorithms, log and phods (Juanjo)
- changed directories: libav for format handling, libavcodec for
codecs
version 0.3.4:
- added stereo in MPEG audio encoder
version 0.3.3:
- added 'high quality' mode which use motion vectors. It can be used in
real time at low resolution.
- fixed rounding problems which caused quality problems at high
bitrates and large GOP size
version 0.3.2: small fixes
- ASF fixes
- put_seek bug fix
version 0.3.1: added avi/divx support
- added AVI support
- added MPEG-4 codec compatible with OpenDivX. It is based on the H.263 codec
- added sound for flash format (not tested)
version 0.3: initial public release