Entries are sorted chronologically from oldest to youngest within each release,
releases are sorted from youngest to oldest.


version 4.3.6:
- avcodec/escape124: Check that blocks are allocated before use
- avcodec/huffyuvdec: Fix undefined behavior with shift
- avcodec/j2kenc: Replace RGB24 special case by generic test
- avcodec/j2kenc: Fix funky bpno errors on decoding
- avcodec/j2kenc: remove misleading pred value
- avcodec/j2kenc: fix 5/3 DWT identifer
- avcodec/vp3: Check width to avoid assertion failure
- avcodec/g729postfilter: Limit shift in long term filter
- configure: update copyright year
- avcodec/tests/snowenc: Fix 2nd test
- avcodec/tests/snowenc: return a failure if DWT/IDWT mismatches
- avcodec/snowenc: Fix visual weight calculation
- avcodec/tests/snowenc: unbreak DWT tests
- avcodec/escape124: Fix some return codes
- avcodec/escape124: fix signdness of end of input check
- Use https for repository links
- avcodec/motionpixels: Mask pixels to valid values
- avcodec/xpmdec: Check size before allocation to avoid truncation
- avcodec/bink: Avoid undefined out of array end pointers in binkb_decode_plane()
- avcodec/bink: Fix off by 1 error in ref end
- avcodec/utils: Ensure linesize for SVQ3
- avcodec/utils: allocate a line more for VC1 and WMV3
- avcodec/videodsp_template: Adjust pointers to avoid undefined pointer things
- avcodec/pngdec: Check deloco index more exactly
- avcodec/ffv1dec: Check that num h/v slices is supported
- avformat/mov: Check samplesize and offset to avoid integer overflow
- avcodec/pictordec: Remove mid exit branch
- avcodec/eac3dec: avoid float noise in fixed mode addition to overflow
- avcodec/utils: use 32pixel alignment for bink
- avcodec/scpr3: Check bx
- avcodec/012v: Order operations for odd size handling
- avcodec/eatgq: : Check index increments in tgq_decode_block()
- avcodec/scpr: Test bx before use
- avformat/mxfdec: Use 64bit in remainder
- avcodec/sunrast: Fix maplength check
- avcodec/wavpack: Avoid undefined shift in get_tail()
- avcodec/wavpack: Check for end of input in wv_unpack_dsd_high()
- avformat/id3v2: Check taglen in read_uslt()
- avcodec/tiff: Ignore tile_count
- avcodec/ffv1dec: restructure slice coordinate reading a bit
- avcodec/mlpdec: Check max matrix instead of max channel in noise check
- swscale/input: Use more unsigned intermediates
- avcodec/alsdec: The minimal block is at least 7 bits
- avformat/replaygain: avoid undefined / negative abs
- swscale/output: Bias 16bps output calculations to improve non overflowing range
- avcodec/speedhq: Check buf_size to be big enough for DC
- avcodec/ffv1dec: Fail earlier if prior context is corrupted
- avfilter/vf_untile: swap the chroma shift values used for plane offsets
- avcodec/vp3: Add missing check for av_malloc
- avcodec/nvenc: fix vbv buffer size in cq mode
- avcodec/mjpegenc: take into account component count when writing the SOF header size
- swscale: aarch64: Fix yuv2rgb with negative strides

version 4.3.5:
 avformat/vividas: Check packet size
 avcodec/dstdec: Check for overflow in build_filter()
 avformat/spdifdec: Use 64bit to compute bit rate
 avformat/rpl: Use 64bit for duration computation
 avformat/xwma: Use av_rescale() for duration computation
 avformat/sdsdec: Use av_rescale() to avoid intermediate overflow in duration calculation
 avformat/sbgdec: Check ts_int in genrate_intervals
 avformat/rmdec: check tag_size
 avformat/nutdec: Check fields
 avformat/flvdec: Use 64bit for sum_flv_tag_size
 avformat/jacosubdec: Fix overflow in get_shift()
 avformat/dxa: avoid bpc overflows
 avformat/cafdec: Check that nb_frasmes fits within 64bit
 avformat/asfdec_o: Limit packet offset
 avformat/ape: Check frames size
 avformat/icodec: Check nb_pal
 avformat/aiffdec: Use 64bit for block_duration use
 avformat/aiffdec: Check block_duration
 avformat/mxfdec: only probe max run in
 avformat/mxfdec: Check run_in is within 65536
 avcodec/mjpegdec: Check for unsupported bayer case
 avcodec/apedec: Fix integer overflow in filter_3800()
 avcodec/tta: Check 24bit scaling for overflow
 avcodec/tiff: Fix loop detection
 libavformat/hls: Free keys
 avcodec/fmvc: Move frame allocation to a later stage
 avfilter/vf_showinfo: remove backspaces
 avcodec/speedhq: Check width
 avcodec/bink: disallow odd positioned scaled blocks
 avformat/asfdec_o: limit recursion depth in asf_read_unknown()
 doc/git-howto.texi: Document commit signing
 libavcodec/8bps: Check that line lengths fit within the buffer
 avcodec/midivid: Perform lzss_uncompress() before ff_reget_buffer()
 libavformat/iff: Check for overflow in body_end calculation
 avformat/avidec: Prevent entity expansion attacks
 avcodec/h263dec: Sanity check against minimal I/P frame size
 avcodec/hevcdec: Check s->ref in the md5 path similar to hwaccel
 avformat/subviewerdec: Make read_ts() more flexible
 avcodec/mjpegdec: bayer and rct are incompatible
 MAINTAINERS: Add ED25519 key for signing my commits in the future
 avcodec/hevc_filter: copy_CTB() only within width&height
 avformat/flvdec: Check for EOF in index reading
 avformat/nutdec: Check get_packetheader() in mainheader
 avformat/asfdec_f: Use 64bit for packet start time
 tools/target_dec_fuzzer: Adjust threshold for MMVIDEO
 avcodec/lagarith: Check dst/src in zero run code
 avcodec/h264dec: Skip late SEI
 avcodec/sbrdsp_fixed: Fix integer overflows in sbr_qmf_deint_neg_c()
 avfilter/vf_signature: Fix integer overflow in filter_frame()
 avformat/rtsp: break on unknown protocols
 avcodec/hevcdsp_template: stay within tables in sao_band_filter()
 avcodec/tiff: Check pixel format types for dng
 avcodec/qpeldsp: copy less for the mc0x cases
 avcodec/ffv1dec: Limit golomb rice coded slices to width 8M
 avformat/iff: simplify duration calculation
 avcodec/wnv1: Check for width =1
 avcodec/ffv1dec_template: fix indention
 avformat/sctp: close socket on errors
 avcodec/aasc: Fix indention
 avcodec/qdrw: adjust max colors to array size
 avcodec/alacdsp: Make intermediates unsigned
 avformat/aiffdec: cleanup size handling for extreem cases
 avcodec/jpeglsdec: fix end check for xfrm
 avcodec/cdgraphics: limit scrolling to the line
 avformat/aiffdec: avoid integer overflow in get_meta()
 avformat/ape: more bits in size for less overflows
 avformat/bfi: Check offsets better
 avformat/asfdec_f: Check packet_frag_timestamp
 avcodec/texturedspenc: Fix indexing in color distribution determination
 avformat/act: Check ff_get_wav_header() for failure
 avcodec/libxavs2: Improve r redundancy in occured
 avformat/libzmq: Improve r redundancy in occured
 avfilter/vsrc_mandelbrot: Check for malloc failure
 avfilter/vf_frei0r: Copy to frame allocated according to frei0r requirements
 avfilter/video: Add ff_default_get_video_buffer2() to set specific alignment
 avformat/genh: Check sample rate
 avcodec/pngenc: remove monowhite from apng formats
 configure: bump year
 configure: extend SDL check to accept all 2.x versions
 lavf/tls_mbedtls: add support for mbedtls version 3

version 4.3.4:
 fate: update reference files after the recent dash manifest muxer changes
 avformat/webmdashenc: fix on-demand profile string
 Update for FFmpeg 4.3.4
 avcodec/diracdec: avoid signed integer overflow in global mv
 avcodec/takdsp: Fix integer overflow in decorrelate_sf()
 avcodec/apedec: fix a integer overflow in long_filter_high_3800()
 avfilter/vf_subtitles: pass storage size to libass
 avformat/aqtitledec: Skip unrepresentable durations
 avformat/cafdec: Do not store empty keys in read_info_chunk()
 avformat/mxfdec: Do not clear array in mxf_read_strong_ref_array() before writing
 avformat/mxfdec: Check for avio_read() failure in mxf_read_strong_ref_array()
 avformat/mxfdec: Check count in mxf_read_strong_ref_array()
 avformat/hls: Check target_duration
 avcodec/pixlet: Avoid signed integer overflow in scaling in filterfn()
 avformat/matroskadec: Check pre_ns
 avcodec/sonic: Use unsigned for predictor_k to avoid undefined behavior
 avcodec/mjpegbdec: Set buf_size
 avformat/matroskadec: Use rounded down duration in get_cue_desc() check
 avcodec/g729_parser: Check channels
 avformat/avidec: Check height
 avformat/rmdec: Better duplicate tags check
 avformat/mov: Disallow empty sidx
 avformat/matroskadec: Check duration
 avformat/mov: Corner case encryption error cleanup in mov_read_senc()
 avcodec/jpeglsdec: Fix if( code style
 avcodec/jpeglsdec: Check get_ur_golomb_jpegls() for error
 avcodec/motion_est: fix indention of ff_get_best_fcode()
 avcodec/motion_est: Fix xy indexing on range violation in ff_get_best_fcode()
 avcodec/jpeglsdec: Increase range for N in ls_get_code_runterm() by using unsigned
 avformat/matroskadec: Check desc_bytes
 avformat/utils: Fix invalid NULL pointer operation in ff_parse_key_value()
 avformat/matroskadec: Fix infinite loop with bz decompression
 avformat/mov: Check size before subtraction
 avcodec/apedec: Fix integer overflows in predictor_update_3930()
 avcodec/apedec: fix integer overflow in 8bit samples
 avformat/flvdec: timestamps cannot use the full int64 range
 avcodec/vqavideo: reset accounting on error
 avcodec/alacdsp: fix integer overflow in decorrelate_stereo()
 avformat/4xm: Check for duplicate track ids
 avformat/4xm: Consider max_streams on reallocating tracks array
 avformat/mov: Check next offset in mov_read_dref()
 avformat/vivo: Favor setting fps from explicit fractions
 avformat/vivo: Do not use the general expression evaluator for parsing a floating point value
 avformat/mxfdec: Check for duplicate mxf_read_index_entry_array()
 avcodec/apedec: Change avg to uint32_t
 avformat/mov: Disallow duplicate smdm
 avformat/mov: Check for EOF in mov_read_glbl()
 avcodec/vp3: Check version in all cases when VP4 code is not built
 avformat/mov: Check channels for mov_parse_stsd_audio()
 avformat/avidec: Check read_odml_index() for failure
 avformat/aiffdec: Use av_rescale() for bitrate
 avformat/aiffdec: sanity check block_align
 avformat/aiffdec: Check sample_rate
 avcodec/flac_parser: Consider AV_INPUT_BUFFER_PADDING_SIZE
 avcodec/libdav1d: free the Dav1dData packet on dav1d_send_data() failure
 configure: Add missing libshine->mpegaudioheader dependency

version 4.3.3:
 avcodec/ttadsp: Fix integer overflows in tta_filter_process_c()
 avutil/mathematics: Document av_rescale_rnd() behavior on non int64 results
 avformat/matroskadec: Reset state also on failure in matroska_reset_status()
 avformat/wavdec: Check smv_block_size
 avformat/rmdec: Check for multiple audio_stream_info
 avcodec/apedec: Use 64bit to avoid overflow
 avcodec/apedec: Fix undefined integer overflow in long_filter_ehigh_3830()
 oavformat/avidec: Check offset in odml
 avformat/mpegts: use actually read packet size in mpegts_resync special case
 avfilter/scale_npp: fix non-aligned output frame dimensions
 Update for 4.3.3
 swscale/alphablend: Fix slice handling
 avcodec/apedec: Fix integer overflow in filter_fast_3320()
 avcodec/mxpegdec: Check for AVDISCARD_ALL
 avcodec/flicvideo: Check remaining bytes in FLI*COPY
 avcodec/cbs_h265_syntax_template: Limit sps_num_palette_predictor_initializer_minus1 to 127
 avcodec/snowdec: Maintain avmv buffer
 avcodec/mpeg12dec: Do not put mpeg_f_code into an invalid state on error return
 avcodec/mpegvideo_enc: Limit bitrate tolerance to the representable
 avcodec/apedec: Fix integer overflow in intermediate
 avformat/mvdec: Do not set invalid sample rate
 avformat/sbgdec: Check for t0 overflow in expand_tseq()
 avformat/rmdec: Use 64bit for intermediate for DEINT_ID_INT4
 avformat/sbgdec: Check opt_duration and start for overflow
 avformat/mov: Check for duplicate clli
 avformat/jacosubdec: Check for min in t overflow in get_shift()
 avformat/mxfdec: check channel number in mxf_get_d10_aes3_packet()
 avcodec/utils: don't return negative values in av_get_audio_frame_duration()
 avcodec/jpeg2000dec: Check that atom header is within bytsetream
 avcodec/apedec: Fix 2 integer overflows in filter_3800()
 avcodec/xpmdec: Move allocations down after more error checks
 avformat/mov: Check dts for overflow in mov_read_trun()
 avformat/avidec: Use 64bit for frame number in odml index parsing
 avcodec/mjpegbdec: Skip SOS on AVDISCARD_ALL as does mjpeg
 avcodec/mjpegdec: Check for bits left in mjpeg_decode_scan_progressive_ac()
 avformat/adtsenc: return value check for init_get_bits in adts_decode_extradata
 avcodec/webp: Check available space in loop in decode_entropy_coded_image()
 avcodec/h264dec: use picture parameters in ff_print_debug_info2()
 avcodec/vc1dec: ff_print_debug_info() does not support WMV3 field_mode
 avcodec/frame_thread_encoder: Free AVCodecContext structure on error during init
 avcodec/faxcompr: Check for end of input in cmode == 1 in decode_group3_2d_line()
 avcodec/vc1dec: Disable error concealment for *IMAGE
 avcodec/sbrdsp_fixed: Fix negation overflow in sbr_neg_odd_64_c()
 avformat/wtvdec: Check for EOF before seeking back in parse_media_type()
 avformat/mpc8: Check first keyframe position for overflow
 avformat/wavdec: Use 64bit in new_pos computation
 avformat/sbgdec: Check for overflow in timestamp preparation
 avformat/dsicin: Check packet size for overflow
 avformat/dsfdec: Change order of operations in bitrate computation
 avformat/bfi: check nframes
 avformat/avidec: fix position overflow in avi_load_index()
 avformat/asfdec_f: Check sizeX against padding
 avformat/aiffdec: Check for size overflow in header parsing
 avcodec/aaccoder: Add minimal bias in search_for_ms()
 avformat/mov: Avoid undefined overflow in time_offset calculation
 avfilter/af_drmeter: Check that there is data
 avfilter/vf_fftdnoiz: Use lrintf() in export_row8()
 avfilter/vf_mestimate: Check b_count
 avformat/mov: do not ignore errors in mov_metadata_hmmt()
 avformat/mxfdec: Check size for shrinking
 avcodec/dnxhddec: check and propagate function return value
 swscale/slice: Fix wrong return on error
 avcodec/aacdec_template: Avoid some invalid values to be set by decode_audio_specific_config_gb()
 swscale/slice: Check slice for allocation failure
 avformat/matroskadec: Fix handling of huge default durations
 avcodec/lpc: check for zero err in normalization in compute_lpc_coefs()
 avformat/ftp: Check for av_strtok() failure
 tools/cws2fws: Check read() for failure
 avcodec/cpia: Fix missing src_size update
 avcodec/clearvideo: Check tile_size to be not too large
 avcodec/utils: Use 64bit for intermediate in AV_CODEC_ID_ADPCM_THP* duration calculation
 avformat/rmdec: Check old_format len for overflow
 avformat/realtextdec: Check the pts difference before using it for the duration computation
 avformat/qcp: Avoid negative nb_rates
 avformat/nutdec: Check tmp_size
 avformat/msf: Check that channels doesnt overflow during extradata construction
 avformat/mpc8: Check for position overflow in mpc8_handle_chunk()
 avformat/iff: Use 64bit in duration computation
 avformat/dxa: Check fps to be within the supported range more precissely
 avcodec/iff: Only write palette to plane 1 if its PAL8
 avformat/tta: Check for EOF in index reading loop
 Update missed irc links
 avformat/rpl: The associative law doesnt hold for signed integers in C
 avcodec/faxcompr: Check available bits in decode_uncompressed()
 avcodec/faxcompr: Check if bits are available before reading in cmode == 9 || cmode == 10
 avformat/utils: check dts/duration to be representable before using them
 avcodec/utils: do "calc from frame_bytes, channels, and block_align" in 64bit
 avcodec/ttadata: Add sentinel at the end of ff_tta_shift_1
 avformat/mov: Check for duplicate mdcv
 avfilter/vf_dctdnoiz: Check threads
 avfilter/vf_ciescope: Fix undefined behavior in rgb_to_xy() with black
 avformat/rpl: Check for EOF and zero framesize
 avcodec/vc2enc: Check for non negative slice bounds
 avformat/rpl: Use 64bit in bitrate computation and check it
 avcodec/svq1enc: Do not print debug RD value before it has been computed
 avcodec/aacpsy: Check bandwidth
 avcodec/aacenc: Do not divide by lambda_count if it is 0
 avcodec/aacenc: Use FLT_EPSILON for lambda minimum
 avformat/cinedec: Fix index_entries size check
 avfilter/vf_yadif: Fix handing of tiny images
 avfilter/vf_vmafmotion: Check dimensions
 avformat/movenc: Check pal_size before use
 avcodec/lpc: Avoid floating point division by 0
 avcodec/aacpsy: Avoid floating point division by 0 of norm_fac
 avcodec/aacenc: Avoid 0 lambda
 avcodec/exr: x/ymax cannot be INT_MAX
 avformat/avio: Check av_opt_copy() for failure
 avcodec/clearvideo: Check for 0 tile_shift
 avcodec/vc1: Check remaining bits in ff_vc1_parse_frame_header()
 avformat/mov: Ignore duplicate CoLL
 avformat/mov: Limit nb_chapter_tracks to input size
 avformat/utils: Use 64bit earlier in r_frame_rate check
 avcodec/alsdec: Fix decoding error with mono audio files
 avformat/mvdec: Check sample rate in parse_audio_var()
 avcodec/faxcompr: Check for end of bitstream in decode_group3_1d_line() and decode_group3_2d_line()
 avcodec/utils: treat PAL8 for jpegs similar to other colorspaces
 avcodec/jpeglsdec: Set alpha plane in PAL8 so image is not 100% transparent
 avformat/asfdec_o: Use ff_get_extradata()
 avformat/id3v2: Check end for overflow in id3v2_parse()
 avformat/wtvdec: Improve size overflow checks in parse_chunks()
 avcodec/faxcompr: Check remaining bits on error in decode_group3_1d_line()
 avcodec/utils: Check ima wav duration for overflow
 avcodec/rv10: Execute whole size check earlier for rv20
 avformat/cafdec: Check channels
 avcodec/dpx: Check bits_per_color earlier
 avformat/mvi: Check audio_data_size to be non negative
 avcodec/pnm_parser: Check image size addition for overflow
 avcodec/h265_metadata_bsf: Check nb_units before accessing the first in h265_metadata_update_fragment()
 avformat/rmdec: use larger intermediate type for audio_framesize * sub_packet_h check
 avcodec/h264_slice: Check input SPS in ff_h264_update_thread_context()
 avformat/mpc8: check for size overflow in mpc8_get_chunk_header()
 avformat/mov: Do not zero memory that is written too or unused
 avcodec/mpegvideo: Update chroma_?_shift in ff_mpv_common_frame_size_change()
 avformat/mov: Ignore multiple STSC / STCO
 avformat/utils: Extend overflow check in dts wrap in compute_pkt_fields()
 avfilter/vf_scale: Fix adding 0 to NULL (which is UB) in scale_slice()
 avutil/common: Add FF_PTR_ADD()
 avformat/wtvdec: Check size in SBE2_STREAM_DESC_EVENT / stream2_guid
 tools/target_dec_fuzzer: Adjust threshold for H264
 avformat/cafdec: Do not build an index if all packets are the same
 avformat/vividas: Use equals check with n in read_sb_block()
 avcodec/sonic: Use unsigned temporary in predictor_calc_error()
 avformat/jacosubdec: Use 64bit intermediate for start/end timestamp shift
 avformat/flvdec: Check array entry number
 avcodec/h264_slice: Check sps in h264_slice_header_init()
 avformat/movenc: Avoid loosing cluster array on failure
 avformat/avidec: Check for dv streams before using priv_data in parse ##dc/##wb
 avformat/mov: Check sample size for overflow in mov_parse_stsd_audio()
 avformat/sbgdec: Check for overflow in last loop in expand_timestamps()
 avcodec/ffwavesynth: Avoid signed integer overflow in phi_at()
 avcodec/mpeg4videoenc: Check extradata malloc()
 avcodec/speedhq: Width < 8 is not supported
 avformat/matroskadec: Check for EOF in resync loop
 avcodec/utils: Use more bits for intermediate for AV_CODEC_ID_ADPCM_MS
 avcodec/jpegls: Check A[Q] for overflow in ff_jpegls_update_state_regular()
 avformat/voc_packet: prevent remaining size from becoming negative in ff_voc_get_packet()
 avutil/timecode: Avoid fps overflow
 avformat/mvi: Check audio size for more overflows
 avcodec/flacdec: Avoid undefined shift in error case
 avcodec/ffv1dec: Check if trailer is available
 avcodec/4xm: Check pre_gb in decode_i_block()
 avformat/mvdec: Allocate extradata only once
 avcodec/dcadsp: Fix integer overflow in dmix_add_c()
 avformat/flvdec: Check double before cast in parse_keyframes_index()
 avformat/paf: Check for EOF before allocation in read_header()
 avcodec/aacdec_template: Avoid undefined negation in imdct_and_windowing_eld()
 avformat/lxfdec: Fix multiple integer overflows related to track_size
 avcodec/exr: skip bottom clearing loop when its outside the image
 avutil/parseutils: Check sign in av_parse_time()
 avformat/aiffdec: Check that SSND is at least 8 bytes
 avformat/dcstr: Check sample rate
 avcodec/alsdec: Check bitstream input in read_block()
 avformat/mov: Extend data_size check in mov_read_udta_string()
 avformat/aadec: Check for EOF while reading chapters
 avformat/voc_packet: Add a basic check on max_size
 avformat/microdvddec: use 64bit for durations
 avcodec/h264_slice: clear old slice POC values on parsing failure
 avfilter/overlay_cuda: check av_buffer_ref result
 avfilter/overlay_cuda: hold explicit reference to hw_device_ctx
 avformat/url: add ff_make_absolulte_url2 to be able to test windows path cases
 avformat/url: fix ff_make_absolute_url with Windows file paths
 Revert "avcodec: Add FF_CODEC_CAP_INIT_CLEANUP"
 fftools/ffplay: do not write out of rdft visualization texture
 avfilter/overlay_cuda: fix framesync with embedded PGS subtitle
 avcodec/mxpegdec: Fix memleaks upon init failure
 avcodec/mjpegdec: Fix memleak upon init failure
 avfilter/af_headphone: Fix stack buffer overflow
 avfilter/af_headphone: Don't overrun array
 avfilter/af_headphone: Fix segfault when using very short streams
 avfilter/af_headphone: Check for the existence of samples
 avfilter/af_headphone: Remove always true check
 avfilter/af_headphone: Don't use uninitialized buffer in log message
 avformat/segment: Fix error messages
 avformat/segment: Free SegmentListEntries in deinit, not write_trailer
 avformat/segment: Fix leak and invalid free of AVIOContext
 avformat/segment: Fix leak of string on error
 avformat/segment: Fix segfault when error happens and segment list is output
 avformat/segment: Fix segfault on allocation error, avoid allocation
 avformat/segment: Fix leak of duration/framenumber lists upon error
 avformat/segment: Don't overwrite AVCodecParameters after init
 avformat/dashdec: Reset pointer to NULL after freeing it
 libavformat/dashdec: Fix issue with dash on Windows
 avformat/dashdec: Fix memleak on allocation error, avoid allocation
 avformat/dashdec: Fix memleaks on error to add representation to dynarray
 avformat/dashdec: Fix leak of representation languages
 avformat/dashdec: Fix leak of string on error when parsing representation
 avformat/dashdec: Fix leak of representation on error
 avformat/dashdec: Remove unused index of representation
 avformat/dashdec: Fix memleaks upon read_header failure
 avformat/dashdec: Check allocation of AVProgram
 avformat/dashdec, hls: Update correct pointer to AVDictionary
 avformat/dashdec: Fix leak of AVDictionary on error
 avformat/dashdec: Free subtitle representations on exit
 avformat/dashdec: Free strings as soon as they aren't needed anymore
 avformat/dashdec: Don't overwrite and leak old initialization fragments
 avformat/dashdec: Don't leave representation in inconsistent state on error
 avformat/dashdec: Remove dead code
 avformat/spdifenc: Fix leak upon error
 avformat/wavenc: Fix leak and segfault on reallocation error
 avformat/mpegenc: Avoid adding invalid packet to queue
 avformat/mpegenc: Fix leak in case trailer is never written
 avformat/mpegenc: Ensure packet queue stays valid
 avformat/mxfenc: Never set codec_ul UID to NULL
 avcodec/frame_thread_encoder: Fix segfault on allocation error
 avformat/utils: Add av_assert1 to preclude NULL + len, len != 0
 avformat/utils: Fix undefined NULL + 0
 avcodec/g722enc: Validate parameters before using them
 avcodec/g722enc: Cleanup generically on init failure
 avcodec/opusdec: Return error upon error
 avcodec/wavpack: Fix leak on init failure
 avcodec/pthread_slice: Don't use static variable, fix race
 avcodec/a64multienc: Fix memleak upon init failure
 avformat/flacenc: Fix memleak when writing attached pictures fails
 avcodec/mpeg12enc: Always initialize MPEG-2 intra VLC table lengths
 avcodec/fft_template, fft_init_table: Make ff_fft_init() thread-safe
 avformat/asfdec_o: Don't segfault with lots of attached pics
 avcodec/mss4: Fix memleaks upon allocation error
 avformat/apngdec: Fix size/overflow checks
 avformat/apngdec: Return error for incomplete header
 avformat/jacosubdec: Fix unintended fallthrough
 avcodec/bitstream: Consistently treat symbol as VLC_TYPE
 avcodec/vp3: Check allocations of VLCs
 avcodec/vp3: Fix memleak upon init failure
 avcodec/movtextenc: Fix undefined left shifts outside the range of int
 avcodec/movtextenc: Fix memleak on (re)allocation error
 avcodec/movtextenc: Don't presume every style to have a font
 avcodec/movtextenc: Reset array counter after freeing array
 avcodec/movtextenc: Fix potential use of uninitialized value
 avcodec/movtextenc: fix writing to bytestream on BE arches
 avcodec/movtextdec: Fix leaks on (re)allocation failure
 avcodec/movtextdec: Simplify checking for invalid extradata
 avcodec/movtextdec: Fix leaks of strings upon reallocation failure
 avcodec/movtextdec: Reset counter of fonts when freeing them
 avcodec/sheervideo: Don't leave context in inconsistent state upon error
 avfilter/vf_minterpolate: Fix left shift of negative value
 avfilter/vf_minterpolate: Reject too small dimensions
 avformat/movenc: Don't forget to free fragment buffers
 avformat/movenc: Free old vos_data before overwriting it
 avformat/movenc: Fix segfault when remuxing rtp hint stream
 avcodec/dvenc: Fix undefined left shift of negative numbers
 avformat/movenc: Fix stack overflow when remuxing timecode tracks
 avcodec/utils: Also free encoder extradata on avcodec_open2() error
 avcodec/utils: Don't forget cleaning up when allocating priv_data fails
 avcodec/utils: Improve check for freeing codec private options
 swresample/audioconvert: Fix left shift of negative value
 avcodec/utils: Only call codec->close if init has been called
 avformat/movenc: Fix segfault upon allocation error
 avformat/swfdec: Reorder allocations/initializations
 avformat/swfdec: Fix memleaks on error
 avformat/dashdec: Avoid double free on error
 avformat/tedcaptionsdec: Fix leak of AVBPrint upon error
 avformat/swfenc: Fix memleak upon write_header error
 avformat/rmdec: Fix potential crash on allocation failure
 avformat/rmdec: Actually return value < 0 on read_header failure
 avformat/avidec: Fix memleak when error happens after creating DV stream
 avcodec/mpegaudiodec_template: Check return value of subdecoder
 avcodec/j2kenc: Fix leaks on init failure
 avcodec/flashsv2enc: Check allocations for success before usage
 avcodec/flashsvenc: Avoid allocation of buffer, fix memleak
 avcodec/ac3enc_template: Don't free uninitialized pointers on error
 avcodec/svq3: Fix segfault on allocation error, avoid allocations
 avcodec/sonic: Fix leaks upon allocation errors
 avcodec/qtrleenc: Fix memleak upon allocation failure
 avcodec/ffv1enc: Fix memleaks on init failure
 avcodec/ffv1: Fix segfaults on allocation error
 avcodec/mlpenc: Fix memleak upon init failure
 avcodec/indeo5: Fix memleaks upon allocation error
 avcodec/ivi: Fix segfault on allocation error
 avcodec/magicyuvenc: Fix memleak upon init failure
 avcodec/gif: Fix leaks upon allocation error
 avcodec/avrndec: Fix memleak on error
 avcodec/avrndec: Check allocation for success
 avcodec/atrac1: Check allocation of AVFloatDSPContext
 avfilter/vf_subtitles: Fix leaks on failure
 avfilter/vf_uspp: Fix potential leak of dict on error
 avfilter/lavfutils: Fix memleak when avformat_find_stream_info() fails
 avfilter/lavfutils: Don't use uninitialized pointers for freeing
 avcodec/binkaudio: Don't use static storage for context-dependent data
 avcodec/bink: Fix memleak upon init failure
 avcodec/wnv1: Use LE bitstream reader, avoid copying packet, fix memleak
 avcodec/truemotion2: Avoid duplicating array, fix memleak
 avfilter/af_headphone: Fix leak of channel layouts list on error
 avfilter/af_headphone: Fix segfault upon allocation failure
 avfilter/vf_signature: Fix leak of string upon error
 avfilter/vf_signature: Fix leak of inpads' names
 avfilter/af_aiir: Fix segfault and leak upon allocation failure
 avfilter/vf_premultiply: Fix leak of names of inpads
 avfilter/af_anequalizer: Fix memleak when inserting pad fails
 avfilter/af_amerge: Fix segfault upon allocation failure
 avfilter/af_aformat: Add uninit function
 avfilter/vf_hwdownload: Fix leak of formats list upon error
 avfilter/formats: Fix double frees and memleaks on error
 avfilter/af_channelmap: Fix double-free of AVFilterChannelLayouts on error
 avfilter/vf_alphamerge: Fix double-free of AVFilterFormats on error
 avfilter/vf_overlay: Fix double-free of AVFilterFormats on error
 avfilter/vf_remap: Fix double-free of AVFilterFormats on error
 avfilter/vf_showpalette: Fix double-free of AVFilterFormats on error
 avfilter/af_amix: Fix double-free of AVFilterChannelLayouts on error
 avfilter/af_amix: Don't needlessly reallocate table
 avfilter/vf_vpp_qsv: Fix leak of AVFilterFormats on error
 avfilter/vf_paletteuse: Fix leaks of AVFilterFormats on error
 avfilter/graphparser: Fix memleak when linking filters fails
 fftools/ffmpeg: Fix leak of AVFilterInOut in case of error
 avfilter/graphparser: Check allocations for success
 avfilter/graphparser: Don't set pointer to one beyond '\0' of string
 avfilter/graphparser: Fix leaks when parsing inputs fails
 avfilter/af_afir: Fix leak of AVFilterChannelLayout in case of error
 avformat/mlvdec: Only store dimensions after having validated them
 avformat/mlvdec: Don't leak open AVIOContexts on error
 avformat/mlvdec: Check for existence of AVIOContext before using it
 avformat/hls: Fix memleak when url is empty
 avfilter/formats: Fix heap-buffer overflow when merging channel layouts
 Revert "lavfi/avfiltergraph: add check before free the format"
 avfilter/formats: Leave lists' ownership unchanged upon merge failure
 avformat/mpegts: Don't leave context in inconsistent state upon error
 avformat/sierravmd: Don't return packets for non-existing stream
 avformat/vividas: Check allocation for success
 avformat/vividas: Check return value before storing it in smaller type
 avformat/webmdashenc: Avoid allocations, fix memleak
 avformat/webmdashenc: Fix segfault when no filename is given when live
 avformat/matroskadec: Avoid undefined pointer arithmetic
 avformat/mxfdec: Fix memleak upon repeating tags
 avformat/mxfdec: Fix memleak when parsing tag fails
 avformat/mxfdec: Fix memleak when adding element to array fails


version 4.3.2:
 avcodec/hapdec: Change compressed_offset to unsigned 32bit
 avformat/rmdec: Check codec_length without overflow
 avformat/mov: Check element count in mov_metadata_hmmt()
 avcodec/vp8: Move end check into MB loop in vp78_decode_mv_mb_modes()
 avcodec/fits: Check gcount and pcount being non negative
 avformat/nutdec: Check timebase count against main header length
 avformat/electronicarts: Clear partial_packet on error
 avformat/r3d: Check samples before computing duration
 avcodec/pnm_parser: Check av_image_get_buffer_size() for failure
 avformat/wavdec: Consider AV_INPUT_BUFFER_PADDING_SIZE in set_spdif()
 avformat/rmdec: Check remaining space in debug av_log() loop
 avformat/flvdec: Treat high ts byte as unsigned
 avformat/samidec: Sanity check pts
 avcodec/jpeg2000dec: Check atom_size in jp2_find_codestream()
 avformat/avidec: Use 64bit in get_duration()
 avformat/mov: Check for duplicate st3d
 avformat/mvdec: Check for EOF in read_index()
 avcodec/jpeglsdec: Fix k=16 in ls_get_code_regular()
 avformat/id3v2: Check the return from avio_get_str()
 avcodec/hevc_sei: Check payload size in decode_nal_sei_message()
 libavutil/eval: Remove CONFIG_TRAPV special handling
 avformat/wtvdec: Check len in parse_chunks() to avoid overflow
 avformat/asfdec_f: Add an additional check for the extradata size
 avformat/3dostr: Check sample_rate
 avformat/4xm: Make audio_frame_count 64bit
 avformat/mov: Use av_mul_q() to avoid integer overflows
 avcodec/vp9dsp_template: Fix integer overflows in itxfm_wrapper
 avformat/rmdec: Reorder operations to avoid overflow
 avcodec/mxpegdec: fix SOF counting
 avcodec/rscc: Check inflated_buf size whan it is used
 avformat/mvdec: Sanity check SAMPLE_WIDTH
 avcodec/nvenc: fix timestamp offset ticks logic
 avformat/rmdec: Fix codecdata_length overflow check
 avcodec/simple_idct: Fix undefined integer overflow in idct4row()
 avformat/wavdec: Check block_align vs. channels before combining them
 avformat/tta: Use 64bit intermediate for index
 avformat/soxdec: Check channels to be positive
 avformat/smacker: Check for too small pts_inc
 avformat/sbgdec: Use av_sat_add64() in str_to_time()
 avcodec/cscd: Check output len in zlib as in lzo
 avcodec/vp3: Check input amount in theora_decode_header()
 avformat/wavdec: Check avio_get_str16le() for failure
 avformat/flvdec: Check for EOF in amf_skip_tag()
 avformat/aiffdec: Check size before subtraction in get_aiff_header()
 avformat/electronicarts: More chunk_size checks
 avcodec/cfhd: check peak.offset
 avformat/tedcaptionsdec: Check for overflow in parse_int()
 avformat/nuv: Check channels
 avcodec/siren: Increase noise category 5 and 6
 avformat/mpc8: Check size before implicitly converting to int
 avformat/nutdec: Fix integer overflow in count computation
 avformat/mvi: Use 64bit for testing dimensions
 avformat/utils: Check dts in update_initial_timestamps() more
 avformat/mpsubdec: Use av_sat_add/sub64() in fracval handling
 avformat/flvdec: Check for avio_read() failure in amf_get_string()
 avformat/flvdec: Check for nesting depth in amf_skip_tag()
 avformat/flvdec: Check for nesting depth in amf_parse_object()
 avformat/asfdec_o: Check for EOF in asf_read_marker()
 avformat/flvdec: Use av_sat_add64() for pts computation
 avformat/utils: Check dts - (1<<pts_wrap_bits) overflow
 avformat/bfi: Check chunk_header
 avformat/ads: Check size
 avformat/iff: Check block align also for ID_MAUD
 avcodec/utils: Check for integer overflow in get_audio_frame_duration() for ADPCM_DTK
 avformat/fitsdec: Better size checks
 avformat/mxfdec: Fix integer overflow in next position in mxf_read_local_tags()
 avformat/avidec: dv does not support palettes
 avformat/dhav: Break out of infinite dhav search loop
 libavformat/utils: consider avio_size() failure in ffio_limit()
 avformat/nistspheredec: Check bits_per_coded_sample and channels
 avformat/asfdec_o: Check size vs. offset in detect_unknown_subobject()
 avformat/utils: check for integer overflow in av_get_frame_filename2()
 avutil/timecode: Avoid undefined behavior with large framenum
 avformat/mov: Check a.size before computing next_root_atom
 avformat/sbgdec: Reduce the amount of floating point in str_to_time()
 avformat/mxfdec: Free all types for both Descriptors
 uavformat/rsd: check for EOF in extradata
 avcodec/wmaprodec: Check packet size
 avformat/dhav: Check position for overflow
 avcodec/rasc: Check frame before clearing
 avformat/vividas: Check number of audio channels
 avcodec/alsdec: Fix integer overflow with quant_cof
 avformat/mpegts: Fix argument type for av_log
 avformat/cafdec: clip sample rate
 avcodec/ffv1dec: Fix off by 1 error with quant tables
 avformat/mpegts: Increase pcr_incr width to 64bit
 avcodec/utils: Check bitrate for overflow in get_bit_rate()
 avformat/mov: Check if hoov is at the end
 avcodec/hevc_ps: check scaling_list_dc_coef
 avformat/iff: Check data_size
 avformat/matroskadec: Sanity check codec_id/track type
 avformat/rpl: Check the number of streams
 avformat/vividas: Check sample_rate
 avformat/vividas: Make len signed
 avcodec/h264idct_template: Fix integer overflow in ff_h264_chroma422_dc_dequant_idct()
 avformat/dsfdec: Check block_align more completely
 avformat/mpc8: Check remaining space in mpc8_parse_seektable()
 avformat/id3v2: Sanity check tlen before alloc and uncompress
 avformat/vqf: Check len for COMM chunks
 avformat/mov: Avoid overflow in end computation in mov_read_custom()
 avcodec/hevc_cabac: Limit value in coeff_abs_level_remaining_decode() tighter
 avformat/cafdec: Check the return code from av_add_index_entry()
 avformat/cafdec: Check for EOF in index read loop
 avformat/cafdec: Check that bytes_per_packet and frames_per_packet are non negative
 avformat/mpc8: correct integer overflow in mpc8_parse_seektable()
 avformat/mpc8: correct 32bit timestamp truncation
 avcodec/exr: Check ymin vs. h
 avformat/avs: Use 64bit for the avio_tell() output
 avformat/wavdec: More complete size check in find_guid()
 avcodec/mv30: Use unsigned in idct_1d()
 avformat/iff: Check size before skip
 avformat/rmdec: Check for EOF in index packet reading
 avcodec/vp3dsp: Use unsigned constant to avoid undefined integer overflow in ff_vp3dsp_set_bounding_values()
 avformat/icodec: Check for zero streams and stream creation failure
 avformat/icodec: Factor failure code out in read_header()
 avformat/bintext: Check width
 avformat/sbgdec: Check that end is not before start
 avformat/lvfdec: Check stream_index before use
 avformat/au: cleanup on EOF return in au_read_annotation()
 avformat/mpegts: Limit copied data to space
 avformat/bintext: Check width in idf_read_header()
 avformat/iff: check size against INT64_MAX
 avformat/vividas: improve extradata packing checks in track_header()
 avformat/paf: Check for EOF in read_table()
 avformat/gxf: Check pkt_len
 avformat/aiffdec: Check packet size
 avformat/concatdec: use av_strstart()
 avformat/wavdec: Refuse to read chunks bigger than the filesize in w64_read_header()
 avformat/rsd: Check size and start before computing duration
 avformat/vividas: better check of current_sb_entry
 avformat/iff: More completely check body_size
 avformat/vividas use avpriv_set_pts_info()
 avformat/xwma: Check for EOF in dpds_table read code
 avcodec/utils: Check sample rate before use for AV_CODEC_ID_BINKAUDIO_DCT in get_audio_frame_duration()
 avcodec/dirac_parser: do not offset AV_NOPTS_OFFSET
 avformat/rmdec: Make expected_len 64bit
 avformat/pcm: Check block_align
 avformat/lrcdec: Clip timestamps
 avutil/mathematics: Use av_sat_add64() for the last addition in av_add_stable()
 avformat/electronicarts: Check for EOF in each iteration of the loop in ea_read_packet()
 avformat/ifv: Check that total frames do not overflow
 avcodec/vp9dsp_template: Fix some overflows in iadst8_1d()
 avcodec/fits: Check bscale
 avformat/nistspheredec: Check bps
 avformat/jacosubdec: Use 64bit inside get_shift()
 avformat/genh: Check block_align
 avformat/mvi: Check count for overflow
 avcodec/magicyuv: Check slice size before reading flags and pred
 avformat/asfdec_f: Check for negative ext_len
 avformat/bethsoftvid: Check image dimensions before use
 avformat/genh: Check block_align for how it will be used in SDX2_DPCM
 avformat/au: Check for EOF in au_read_annotation()
 avformat/vividas: Check for zero v_size
 avformat/segafilm: Do not assume AV_CODEC_ID_NONE is 0
 avformat/segafilm: Check that there is a stream
 avformat/wtvdec: Check dir_length
 avformat/ffmetadec: finalize AVBPrint on errors
 avcodec/decode/ff_get_buffer: Check for overflow in FFALIGN()
 avcodec/exr: Check limits to avoid overflow in delta computation
 avformat/boadec: Check that channels and block_align are set
 avformat/asfdec_f: Check name_len for overflow
 avcodec/h264idct_template: Fix integer overflow in ff_h264_chroma422_dc_dequant_idct()
 avformat/sbgdec: Check for timestamp overflow in parse_time_sequence()
 avcodec/aacdec_fixed: Limit index in vector_pow43()
 avformat/kvag: Fix integer overflow in bitrate computation
 avcodec/h264_slice: fix undefined integer overflow with POC in error concealment
 avformat/rmdec: sanity check coded_framesize
 avformat/flvdec: Check for EOF in amf_parse_object()
 avcodec/mv30: Fix multiple integer overflows
 avcodec/smacker: Check remaining bits in SMK_BLK_FULL
 avcodec/cook: Check subpacket index against max
 avcodec/utils: Check for overflow with ATRAC* in get_audio_frame_duration()
 avcodec/hevcpred_template: Fix diagonal chroma availability in 4:2:2 edge case in intra_pred
 avformat/icodec: Change order of operations to avoid NULL dereference
 avcodec/exr: Fix overflow with many blocks
 avcodec/vp9dsp_template: Fix integer overflows in idct16_1d()
 avcodec/ansi: Check initial dimensions
 avcodec/hevcdec: Check slice_cb_qp_offset / slice_cr_qp_offset
 avcodec/sonic: Check for overread
 avformat/subviewerdec: fail on AV_NOPTS_VALUE
 avcodec/exr: Check line size for overflow
 avcodec/exr: Check xdelta, ydelta
 avcodec/celp_filters: Avoid invalid negation in ff_celp_lp_synthesis_filter()
 avcodec/takdsp: Fix negative shift in decorrelate_sf()
 avcodec/dxtory: Fix negative stride shift in dx2_decode_slice_420()
 avformat/asfdec_f: Change order or operations slightly
 avformat/dxa: Use av_rescale() for duration computation
 avcodec/vc1_block: Fix integer overflow in ac value
 avcodec/mv30: Fix several integer overflows in idct_1d()
 avformat/iff: Check data_size not overflowing int64
 avcodec/dxtory: Fix negative shift in dx2_decode_slice_410()
 avcodec/sonic: Check channels before deallocating
 avformat/vividas: Check for EOF in first loop in track_header()
 avformat/wvdec: Check rate for overflow
 avcodec/ansi: Check nb_args for overflow
 avformat/wc3movie: Cleanup on wc3_read_header() failure
 avformat/wc3movie: Move wc3_read_close() up
 avcodec/tiff: Fix default white level
 avcodec/diracdsp: Fix integer anomaly in dequant_subband_*
 avutil/fixed_dsp: Fix integer overflows in butterflies_fixed_c()
 avcodec/mv30: Check remaining mask in decode_inter()
 avcodec/wmalosslessdec: Check remaining space before padding and channel residue
 avformat/cdg: Fix integer overflow in duration computation
 avcodec/mpc: Fix multiple numerical overflows in ff_mpc_dequantize_and_synth()
 avcodec/agm: Fix off by 1 error in decode_inter_plane()
 avformat/electronicarts: Check if there are any streams
 avcodec/ffwavesynth: Fix integer overflow in wavesynth_synth_sample / WS_SINE
 avcodec/vp9dsp_template: Fix integer overflow in iadst8_1d()
 avformat/avidec: Fix io_fsize overflow
 avcodec/cfhd: Check transform type
 avcodec/tiff: Check jpeg context against jpeg frame parameters
 avcodec/tiff: Restrict tag order based on specification
 avcodec/tiff: Avoid abort with DNG RAW TIFF with YA8
 avcodec/tiff: Check the linearization table size
 avformat/siff: Reject audio packets without audio stream
 avformat/mpeg: Check avio_read() return value in get_pts()
 avcodec/tiff: Check bpp/bppcount for 0
 avcodec/snowdec: Sanity check hcoeff
 avformat/mov: Check comp_brand_size
 avformat/ape: Error out in case of EOF in the header
 avcodec/alac: Check decorr_shift to avoid invalid shift
 avcodec/tdsc: Fix tile checks
 opusdec: do not fail when LBRR frames are present
 configure: update copyright year
 avfilter/vf_framerate: fix infinite loop with 1-frame input
 avformat/url: Change () position in ff_make_absolute_url()
 avformat/mpegts: make sure mpegts_read_header always stops at the first pmt
 avformat/alp: fix handling of TUN files
 avformat/argo_asf: fix handling of v1.1 files
 swscale/x86/yuv2rgb: fix crashes when loading alpha from unaligned buffers
 lavf/url: fix relative url parsing when the query string or fragment has a colon
 avformat/libsrt: fix cleanups on failed libsrt_open() and libsrt_setup()
 avcodec/cuviddec: backport extradata fixes
 avcodec/cuviddec: handle arbitrarily sized extradata
 lavf/srt: fix build fail when used the libsrt 1.4.1
 avformat/libsrt: close listen fd in listener mode
 lavf/url: rewrite ff_make_absolute_url() using ff_url_decompose().
 lavf/url: add ff_url_decompose().
 avcodec/cbs_av1: fix setting FrameWidth in frame_size_with_refs()
 avcodec/cbs_av1: use a more appropiate AV1ReferenceFrameState pointer variable name
 avcodec/cbs_av1: fix handling reference frames on show_existing_frame frames
 avcodec/cbs_av1: infer frame_type in show_existing_frame frames earlier
 avcodec/cbs_av1: add OrderHint to CodedBitstreamAV1Context
 avcodec/cbs_av1: infer frame_type when parsing a show_existing_frame frame
 cbs_av1: Fix test for presence of buffer_removal_time element
 avcodec/cbs_av1: fix storage size for render_{width,height}_minus_1
 lavc: Lower MediaFoundation audio encoder priority.
 x86/yuv2rgb: fix crashes when storing data on unaligned buffers
 checkasm/vf_blend: use the correct depth parameters to initialize the blend modes
 x86/vf_blend: fix warnings about trailing empty parameters
 x86/h264_deblock: fix warning about trailing empty parameter
 avutil/x86inc: fix warnings when assembling with Nasm 2.15


version 4.3.1:
 avcodec/tiff: Check input space in dng_decode_jpeg()
 avcodec/mjpeg_parser: Adjust size rejection threshold
 avcodec/cbs_jpeg: Fix uninitialized end index in cbs_jpeg_split_fragment()
 avformat/sdp: Fix potential write beyond end of buffer
 avformat/mm: Check for existence of audio stream
 avformat/mov: Fix unaligned read of uint32_t and endian-dependance in mov_read_default
 avcodec/apedec: Fix undefined integer overflow with 24bit
 avcodec/loco: Fix integer overflow with large values from loco_get_rice()
 avformat/smjpegdec: Check the existence of referred streams
 avcodec/tiff: Check frame parameters before blit for DNG
 avcodec/mjpegdec: Limit bayer to single plane outputting format
 avcodec/pnmdec: Fix misaligned reads
 avcodec/mv30: Fix integer overflows in idct2_1d()
 avcodec/hcadec: Check total_band_count against imdct_in size
 avcodec/scpr3: Fix out of array access with dectab
 avcodec/tiff: Do not overrun the array ends in dng_blit()
 avcodec/dstdec: Replace AC overread check by sample rate check
 dnn_backend_native: Add overflow check for length calculation.
 avcodec/h264_metadata_bsf: Fix invalid av_freep
 avcodec/cbs_h265: set default VUI parameters when vui_parameters_present_flag is false
 avcodec/av1_parser: initialize avctx->pix_fmt
 avcodec/av1_parser: add missing parsing for RGB pixel format signaling
 avcodec/av1_parser: set context values outside the OBU parsing loop
 avutil/avsscanf: Add () to avoid integer overflow in scanexp()
 avformat/utils: reorder duration computation to avoid overflow
 avcodec/pngdec: Check for fctl after idat
 avformat/hls: Pass a copy of the URL for probing
 avutil/common: Fix integer overflow in av_ceil_log2_c()
 avcodec/wmalosslessdec: fix overflow with pred in revert_cdlms
 avformat/mvdec: Fix integer overflow with billions of channels
 avformat/microdvddec: skip malformed lines without frame number.
 dnn_backend_native: check operand index
 dnn_backend_native.c: refine code for fail case
 avformat/mov: fix memleaks
 libavformat/mov: Fix memleaks when demuxing DV audio
 avcodec/cbs_av1: Fix writing uvlc numbers >= INT_MAX
 avformat/avc, mxfenc: Avoid allocation of H264 SPS structure, fix memleak
 avcodec/bitstream: Don't check for undefined behaviour after it happened
 avformat/aviobuf: Also return truncated buffer in avio_get_dyn_buf()
 avformat/aviobuf: Don't check for overflow after it happened

version 4.3:
- v360 filter
- Intel QSV-accelerated MJPEG decoding
- Intel QSV-accelerated VP9 decoding
- Support for TrueHD in mp4
- Support AMD AMF encoder on Linux (via Vulkan)
- IMM5 video decoder
- ZeroMQ protocol
- support Sipro ACELP.KELVIN decoding
- streamhash muxer
- sierpinski video source
- scroll video filter
- photosensitivity filter
- anlms filter
- arnndn filter
- bilateral filter
- maskedmin and maskedmax filters
- VDPAU VP9 hwaccel
- median filter
- QSV-accelerated VP9 encoding
- AV1 encoding support via librav1e
- AV1 frame merge bitstream filter
- AV1 Annex B demuxer
- axcorrelate filter
- mvdv decoder
- mvha decoder
- MPEG-H 3D Audio support in mp4
- thistogram filter
- freezeframes filter
- Argonaut Games ADPCM decoder
- Argonaut Games ASF demuxer
- xfade video filter
- xfade_opencl filter
- afirsrc audio filter source
- pad_opencl filter
- Simon & Schuster Interactive ADPCM decoder
- Real War KVAG demuxer
- CDToons video decoder
- siren audio decoder
- Rayman 2 ADPCM decoder
- Rayman 2 APM demuxer
- cas video filter
- High Voltage Software ADPCM decoder
- LEGO Racers ALP (.tun & .pcm) demuxer
- AMQP 0-9-1 protocol (RabbitMQ)
- Vulkan support
- avgblur_vulkan, overlay_vulkan, scale_vulkan and chromaber_vulkan filters
- ADPCM IMA MTF decoder
- FWSE demuxer
- DERF DPCM decoder
- DERF demuxer
- CRI HCA decoder
- CRI HCA demuxer
- overlay_cuda filter
- switch from AvxSynth to AviSynth+ on Linux
- mv30 decoder
- Expanded styling support for 3GPP Timed Text Subtitles (movtext)
- WebP parser
- tmedian filter
- maskedthreshold filter
- Support for muxing pcm and pgs in m2ts
- Cunning Developments ADPCM decoder
- asubboost filter
- Pro Pinball Series Soundbank demuxer
- pcm_rechunk bitstream filter
- scdet filter
- NotchLC decoder
- gradients source video filter
- MediaFoundation encoder wrapper
- untile filter
- Simon & Schuster Interactive ADPCM encoder
- PFM decoder
- dblur video filter
- Real War KVAG muxer


version 4.2:
- tpad filter
- AV1 decoding support through libdav1d
- dedot filter
- chromashift and rgbashift filters
- freezedetect filter
- truehd_core bitstream filter
- dhav demuxer
- PCM-DVD encoder
- GIF parser
- vividas demuxer
- hymt decoder
- anlmdn filter
- maskfun filter
- hcom demuxer and decoder
- ARBC decoder
- libaribb24 based ARIB STD-B24 caption support (profiles A and C)
- Support decoding of HEVC 4:4:4 content in nvdec and cuviddec
- removed libndi-newtek
- agm decoder
- KUX demuxer
- AV1 frame split bitstream filter
- lscr decoder
- lagfun filter
- asoftclip filter
- Support decoding of HEVC 4:4:4 content in vdpau
- colorhold filter
- xmedian filter
- asr filter
- showspatial multimedia filter
- VP4 video decoder
- IFV demuxer
- derain filter
- deesser filter
- mov muxer writes tracks with unspecified language instead of English by default
- add support for using clang to compile CUDA kernels


version 4.1:
- deblock filter
- tmix filter
- amplify filter
- fftdnoiz filter
- aderivative and aintegral audio filters
- pal75bars and pal100bars video filter sources
- support mbedTLS based TLS
- adeclick filter
- adeclip filter
- libtensorflow backend for DNN based filters like srcnn
- vc1 decoder is now bit-exact
- ATRAC9 decoder
- lensfun wrapper filter
- colorconstancy filter
- AVS2 video decoder via libdavs2
- IMM4 video decoder
- Brooktree ProSumer video decoder
- MatchWare Screen Capture Codec decoder
- WinCam Motion Video decoder
- 1D LUT filter (lut1d)
- RemotelyAnywhere Screen Capture decoder
- cue and acue filters
- support for AV1 in MP4
- transpose_npp filter
- AVS2 video encoder via libxavs2
- amultiply filter
- Block-Matching 3d (bm3d) denoising filter
- acrossover filter
- ilbc decoder
- audio denoiser as afftdn filter
- AV1 parser
- SER demuxer
- sinc audio filter source
- chromahold filter
- setparams filter
- vibrance filter
- decoding S12M timecode in h264
- xstack filter
- pcm vidc decoder and encoder
- (a)graphmonitor filter
- yadif_cuda filter


version 4.0:
- Bitstream filters for editing metadata in H.264, HEVC and MPEG-2 streams
- Dropped support for OpenJPEG versions 2.0 and below. Using OpenJPEG now
  requires 2.1 (or later) and pkg-config.
- VDA dropped (use VideoToolbox instead)
- MagicYUV encoder
- Raw AMR-NB and AMR-WB demuxers
- TiVo ty/ty+ demuxer
- Intel QSV-accelerated MJPEG encoding
- PCE support for extended channel layouts in the AAC encoder
- native aptX and aptX HD encoder and decoder
- Raw aptX and aptX HD muxer and demuxer
- NVIDIA NVDEC-accelerated H.264, HEVC, MJPEG, MPEG-1/2/4, VC1, VP8/9 hwaccel decoding
- Intel QSV-accelerated overlay filter
- mcompand audio filter
- acontrast audio filter
- OpenCL overlay filter
- video mix filter
- video normalize filter
- audio lv2 wrapper filter
- VAAPI MJPEG and VP8 decoding
- AMD AMF H.264 and HEVC encoders
- video fillborders filter
- video setrange filter
- nsp demuxer
- support LibreSSL (via libtls)
- AVX-512/ZMM support added
- Dropped support for building for Windows XP. The minimum supported Windows
  version is Windows Vista.
- deconvolve video filter
- entropy video filter
- hilbert audio filter source
- aiir audio filter
- aiff: add support for CD-ROM XA ADPCM
- Removed the ffserver program
- Removed the ffmenc and ffmdec muxer and demuxer
- VideoToolbox HEVC encoder and hwaccel
- VAAPI-accelerated ProcAmp (color balance), denoise and sharpness filters
- Add android_camera indev
- codec2 en/decoding via libcodec2
- muxer/demuxer for raw codec2 files and .c2 files
- Moved nvidia codec headers into an external repository.
  They can be found at http://git.videolan.org/?p=ffmpeg/nv-codec-headers.git
- native SBC encoder and decoder
- drmeter audio filter
- hapqa_extract bitstream filter
- filter_units bitstream filter
- AV1 Support through libaom
- E-AC-3 dependent frames support
- bitstream filter for extracting E-AC-3 core
- Haivision SRT protocol via libsrt
- segafilm muxer
- vfrdet filter
- SRCNN filter


version 3.4:
- deflicker video filter
- doubleweave video filter
- lumakey video filter
- pixscope video filter
- oscilloscope video filter
- config.log and other configuration files moved into ffbuild/ directory
- update cuvid/nvenc headers to Video Codec SDK 8.0.14
- afir audio filter
- scale_cuda CUDA based video scale filter
- librsvg support for svg rasterization
- crossfeed audio filter
- spec compliant VP9 muxing support in MP4
- remove the libnut muxer/demuxer wrappers
- remove the libschroedinger encoder/decoder wrappers
- surround audio filter
- sofalizer filter switched to libmysofa
- Gremlin Digital Video demuxer and decoder
- headphone audio filter
- superequalizer audio filter
- roberts video filter
- The x86 assembler default switched from yasm to nasm, pass
  --x86asmexe=yasm to configure to restore the old behavior.
- additional frame format support for Interplay MVE movies
- support for decoding through D3D11VA in ffmpeg
- limiter video filter
- libvmaf video filter
- Dolby E decoder and SMPTE 337M demuxer
- unpremultiply video filter
- tlut2 video filter
- floodfill video filter
- pseudocolor video filter
- raw G.726 muxer and demuxer, left- and right-justified
- NewTek NDI input/output device
- Some video filters with several inputs now use a common set of options:
  blend, libvmaf, lut3d, overlay, psnr, ssim.
  They must always be used by name.
- FITS demuxer and decoder
- FITS muxer and encoder
- add --disable-autodetect build switch
- drop deprecated qtkit input device (use avfoundation instead)
- despill video filter
- haas audio filter
- SUP/PGS subtitle muxer
- convolve video filter
- VP9 tile threading support
- KMS screen grabber
- CUDA thumbnail filter
- V4L2 mem2mem HW assisted codecs
- Rockchip MPP hardware decoding
- vmafmotion video filter
- use MIME type "G726" for little-endian G.726, "AAL2-G726" for big-endian G.726


version 3.3:
- CrystalHD decoder moved to new decode API
- add internal ebur128 library, remove external libebur128 dependency
- Pro-MPEG CoP #3-R2 FEC protocol
- premultiply video filter
- Support for spherical videos
- configure now fails if autodetect-libraries are requested but not found
- PSD Decoder
- 16.8 floating point pcm decoder
- 24.0 floating point pcm decoder
- Apple Pixlet decoder
- QDMC audio decoder
- NewTek SpeedHQ decoder
- MIDI Sample Dump Standard demuxer
- readeia608 filter
- Sample Dump eXchange demuxer
- abitscope multimedia filter
- Scenarist Closed Captions demuxer and muxer
- threshold filter
- midequalizer filter
- Optimal Huffman tables for (M)JPEG encoding
- VAAPI-accelerated MPEG-2 and VP8 encoding
- FM Screen Capture Codec decoder
- native Opus encoder
- ScreenPressor decoder
- incomplete ClearVideo decoder
- Intel QSV video scaling and deinterlacing filters
- Support MOV with multiple sample description tables
- XPM decoder
- Removed the legacy X11 screen grabber, use XCB instead
- MPEG-7 Video Signature filter
- Removed asyncts filter (use af_aresample instead)
- Intel QSV-accelerated VP8 video decoding
- VAAPI-accelerated deinterlacing


version 3.2:
- libopenmpt demuxer
- tee protocol
- Changed metadata print option to accept general urls
- Alias muxer for Ogg Video (.ogv)
- VP8 in Ogg muxing
- curves filter doesn't automatically insert points at x=0 and x=1 anymore
- 16-bit support in curves filter and selectivecolor filter
- OpenH264 decoder wrapper
- MediaCodec H.264/HEVC/MPEG-4/VP8/VP9 hwaccel
- True Audio (TTA) muxer
- crystalizer audio filter
- acrusher audio filter
- bitplanenoise video filter
- floating point support in als decoder
- fifo muxer
- maskedclamp filter
- hysteresis filter
- lut2 filter
- yuvtestsrc filter
- CUDA CUVID H.263/VP8/VP9/10 bit HEVC (Dithered) Decoding
- vaguedenoiser filter
- added threads option per filter instance
- weave filter
- gblur filter
- avgblur filter
- sobel and prewitt filter
- MediaCodec HEVC/MPEG-4/VP8/VP9 decoding
- Meridian Lossless Packing (MLP) / TrueHD encoder
- Non-Local Means (nlmeans) denoising filter
- sdl2 output device and ffplay support
- sdl1 output device and sdl1 support removed
- extended mov edit list support
- libfaac encoder removed
- Matroska muxer now writes CRC32 elements by default in all Level 1 elements
- sidedata video and asidedata audio filter
- Changed mapping of rtp MIME type G726 to codec g726le.
- spec compliant VAAPI/DXVA2 VC-1 decoding of slices in frame-coded images


version 3.1:
- DXVA2-accelerated HEVC Main10 decoding
- fieldhint filter
- loop video filter and aloop audio filter
- Bob Weaver deinterlacing filter
- firequalizer filter
- datascope filter
- bench and abench filters
- ciescope filter
- protocol blacklisting API
- MediaCodec H264 decoding
- VC-2 HQ RTP payload format (draft v1) depacketizer and packetizer
- VP9 RTP payload format (draft v2) packetizer
- AudioToolbox audio decoders
- AudioToolbox audio encoders
- coreimage filter (GPU based image filtering on OSX)
- libdcadec removed
- bitstream filter for extracting DTS core
- ADPCM IMA DAT4 decoder
- musx demuxer
- aix demuxer
- remap filter
- hash and framehash muxers
- colorspace filter
- hdcd filter
- readvitc filter
- VAAPI-accelerated format conversion and scaling
- libnpp/CUDA-accelerated format conversion and scaling
- Duck TrueMotion 2.0 Real Time decoder
- Wideband Single-bit Data (WSD) demuxer
- VAAPI-accelerated H.264/HEVC/MJPEG encoding
- DTS Express (LBR) decoder
- Generic OpenMAX IL encoder with support for Raspberry Pi
- IFF ANIM demuxer & decoder
- Direct Stream Transfer (DST) decoder
- loudnorm filter
- MTAF demuxer and decoder
- MagicYUV decoder
- OpenExr improvements (tile data and B44/B44A support)
- BitJazz SheerVideo decoder
- CUDA CUVID H264/HEVC decoder
- 10-bit depth support in native utvideo decoder
- libutvideo wrapper removed
- YUY2 Lossless Codec decoder
- VideoToolbox H.264 encoder


version 3.0:
- Common Encryption (CENC) MP4 encoding and decoding support
- DXV decoding
- extrastereo filter
- ocr filter
- alimiter filter
- stereowiden filter
- stereotools filter
- rubberband filter
- tremolo filter
- agate filter
- chromakey filter
- maskedmerge filter
- Screenpresso SPV1 decoding
- chromaprint fingerprinting muxer
- ffplay dynamic volume control
- displace filter
- selectivecolor filter
- extensive native AAC encoder improvements and removal of experimental flag
- ADPCM PSX decoder
- 3dostr, dcstr, fsb, genh, vag, xvag, ads, msf, svag & vpk demuxer
- zscale filter
- wve demuxer
- zero-copy Intel QSV transcoding in ffmpeg
- shuffleframes filter
- SDX2 DPCM decoder
- vibrato filter
- innoHeim/Rsupport Screen Capture Codec decoder
- ADPCM AICA decoder
- Interplay ACM demuxer and audio decoder
- XMA1 & XMA2 decoder
- realtime filter
- anoisesrc audio filter source
- IVR demuxer
- compensationdelay filter
- acompressor filter
- support encoding 16-bit RLE SGI images
- apulsator filter
- sidechaingate audio filter
- mipsdspr1 option has been renamed to mipsdsp
- aemphasis filter
- mips32r5 option has been removed
- mips64r6 option has been removed
- DXVA2-accelerated VP9 decoding
- SOFAlizer: virtual binaural acoustics filter
- VAAPI VP9 hwaccel
- audio high-order multiband parametric equalizer
- automatic bitstream filtering
- showspectrumpic filter
- libstagefright support removed
- spectrumsynth filter
- ahistogram filter
- only seek with the right mouse button in ffplay
- toggle full screen when double-clicking with the left mouse button in ffplay
- afftfilt filter
- convolution filter
- libquvi support removed
- support for dvaudio in wav and avi
- libaacplus and libvo-aacenc support removed
- Cineform HD decoder
- new DCA decoder with full support for DTS-HD extensions
- significant performance improvements in Windows Television (WTV) demuxer
- nnedi deinterlacer
- streamselect video and astreamselect audio filter
- swaprect filter
- metadata video and ametadata audio filter
- SMPTE VC-2 HQ profile support for the Dirac decoder
- SMPTE VC-2 native encoder supporting the HQ profile


version 2.8:
- colorkey video filter
- BFSTM/BCSTM demuxer
- little-endian ADPCM_THP decoder
- Hap decoder and encoder
- DirectDraw Surface image/texture decoder
- ssim filter
- optional new ASF demuxer
- showvolume filter
- Many improvements to the JPEG 2000 decoder
- Go2Meeting decoding support
- adrawgraph audio and drawgraph video filter
- removegrain video filter
- Intel QSV-accelerated MPEG-2 video and HEVC encoding
- Intel QSV-accelerated MPEG-2 video and HEVC decoding
- Intel QSV-accelerated VC-1 video decoding
- libkvazaar HEVC encoder
- erosion, dilation, deflate and inflate video filters
- Dynamic Audio Normalizer as dynaudnorm filter
- Reverse video and areverse audio filter
- Random filter
- deband filter
- AAC fixed-point decoding
- sidechaincompress audio filter
- bitstream filter for converting HEVC from MP4 to Annex B
- acrossfade audio filter
- allyuv and allrgb video sources
- atadenoise video filter
- OS X VideoToolbox support
- aphasemeter filter
- showfreqs filter
- vectorscope filter
- waveform filter
- hstack and vstack filter
- Support DNx100 (1440x1080@8)
- VAAPI hevc hwaccel
- VDPAU hevc hwaccel
- framerate filter
- Switched default encoders for webm to VP9 and Opus
- Removed experimental flag from the JPEG 2000 encoder


version 2.7:
- FFT video filter
- TDSC decoder
- DTS lossless extension (XLL) decoding (not lossless, disabled by default)
- showwavespic filter
- DTS decoding through libdcadec
- Drop support for nvenc API before 5.0
- nvenc HEVC encoder
- Detelecine filter
- Intel QSV-accelerated H.264 encoding
- MMAL-accelerated H.264 decoding
- basic APNG encoder and muxer with default extension "apng"
- unpack DivX-style packed B-frames in MPEG-4 bitstream filter
- WebM Live Chunk Muxer
- nvenc level and tier options
- chorus filter
- Canopus HQ/HQA decoder
- Automatically rotate videos based on metadata in ffmpeg
- improved Quickdraw compatibility
- VP9 high bit-depth and extended colorspaces decoding support
- WebPAnimEncoder API when available for encoding and muxing WebP
- Direct3D11-accelerated decoding
- Support Secure Transport
- Multipart JPEG demuxer


version 2.6:
- nvenc encoder
- 10bit spp filter
- colorlevels filter
- RIFX format for *.wav files
- RTP/mpegts muxer
- non continuous cache protocol support
- tblend filter
- cropdetect support for non 8bpp, absolute (if limit >= 1) and relative (if limit < 1.0) threshold
- Camellia symmetric block cipher
- OpenH264 encoder wrapper
- VOC seeking support
- Closed caption Decoder
- fspp, uspp, pp7 MPlayer postprocessing filters ported to native filters
- showpalette filter
- Twofish symmetric block cipher
- Support DNx100 (960x720@8)
- eq2 filter ported from libmpcodecs as eq filter
- removed libmpcodecs
- Changed default DNxHD colour range in QuickTime .mov derivatives to mpeg range
- ported softpulldown filter from libmpcodecs as repeatfields filter
- dcshift filter
- RTP depacketizer for loss tolerant payload format for MP3 audio (RFC 5219)
- RTP depacketizer for AC3 payload format (RFC 4184)
- palettegen and paletteuse filters
- VP9 RTP payload format (draft 0) experimental depacketizer
- RTP depacketizer for DV (RFC 6469)
- DXVA2-accelerated HEVC decoding
- AAC ELD 480 decoding
- Intel QSV-accelerated H.264 decoding
- DSS SP decoder and DSS demuxer
- Fix stsd atom corruption in DNxHD QuickTimes
- Canopus HQX decoder
- RTP depacketization of T.140 text (RFC 4103)
- Port MIPS optimizations to 64-bit


version 2.5:
- HEVC/H.265 RTP payload format (draft v6) packetizer
- SUP/PGS subtitle demuxer
- ffprobe -show_pixel_formats option
- CAST128 symmetric block cipher, ECB mode
- STL subtitle demuxer and decoder
- libutvideo YUV 4:2:2 10bit support
- XCB-based screen-grabber
- UDP-Lite support (RFC 3828)
- xBR scaling filter
- AVFoundation screen capturing support
- ffserver supports codec private options
- creating DASH compatible fragmented MP4, MPEG-DASH segmenting muxer
- WebP muxer with animated WebP support
- zygoaudio decoding support
- APNG demuxer
- postproc visualization support


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
- H.261 RTP payload format (RFC 4587) depacketizer and experimental packetizer
- 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 makes it possible 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
- 9 bits and 10 bits per sample support in the H.264 decoder
- 9 bits and 10 bits 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 multiplier 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
