Never assume the API of libav* to be stable unless at least 1 month has passedsince the last major version increase or the API was added. The last version increases were:libavcodec: 2017-10-21libavdevice: 2017-10-21libavfilter: 2017-10-21libavformat: 2017-10-21libavresample: 2017-10-21libpostproc: 2017-10-21libswresample: 2017-10-21libswscale: 2017-10-21libavutil: 2017-10-21 API changes, most recent first: 2020-11-25 - xxxxxxxxxx - lavc 58.113.100 - avcodec.h Adds a new flag AV_CODEC_EXPORT_DATA_FILM_GRAIN for export_side_data. 2020-11-25 - xxxxxxxxxx - lavu 56.61.100 - film_grain_params.h Adds a new API for extracting codec film grain parameters as side data. Adds a new AVFrameSideDataType entry AV_FRAME_DATA_FILM_GRAIN_PARAMS for it. 2020-xx-xx - xxxxxxxxxx - lavf 58.64.100 - avformat.h Add AVSTREAM_EVENT_FLAG_NEW_PACKETS. 2020-xx-xx - xxxxxxxxxx - lavu 56.60.100 - buffer.h Add a av_buffer_replace() convenience function. 2020-09-xx - xxxxxxxxxx - lavu 56.59.100 - timecode.h Add av_timecode_make_smpte_tc_string2. 2020-08-21 - xxxxxxxxxx - lavu 56.58.100 - avstring.h Deprecate av_d2str(). Use av_asprintf() instead. 2020-08-04 - xxxxxxxxxx - lavu 56.58.100 - channel_layout.h Add AV_CH_LAYOUT_22POINT2 together with its newly required pieces: AV_CH_TOP_SIDE_LEFT, AV_CH_TOP_SIDE_RIGHT, AV_CH_BOTTOM_FRONT_CENTER, AV_CH_BOTTOM_FRONT_LEFT, AV_CH_BOTTOM_FRONT_RIGHT. 2020-07-xx - xxxxxxxxxx - lavu 56.57.100 - cpu.h Add AV_CPU_FLAG_MMI and AV_CPU_FLAG_MSA. 2020-07-xx - xxxxxxxxxx - lavu 56.56.100 - imgutils.h Add av_image_fill_plane_sizes(). 2020-07-xx - xxxxxxxxxx - lavc 58.96.100 - packet.h Add AV_PKT_DATA_S12M_TIMECODE. 2020-06-12 - b09fb030c1 - lavu 56.55.100 - pixdesc.h Add AV_PIX_FMT_X2RGB10. 2020-06-xx - xxxxxxxxxx - lavu 56.54.100 - frame.h Add AV_FRAME_DATA_SEI_UNREGISTERED. 2020-06-xx - xxxxxxxxxx - lavu 56.53.100 - log.h opt.h Add av_opt_child_class_iterate() and AVClass.child_class_iterate(). Deprecate av_opt_child_class_next() and AVClass.child_class_next(). -------- 8< --------- FFmpeg 4.3 was cut here -------- 8< --------- 2020-06-05 - ec39c2276a - lavu 56.50.100 - buffer.h Passing NULL as alloc argument to av_buffer_pool_init2() is now allowed. 2020-05-27 - ba6cada92e - lavc 58.88.100 - avcodec.h codec.h Move AVCodec-related public API to new header codec.h. 2020-05-23 - 064b875e89 - lavu 56.49.100 - video_enc_params.h Add AV_VIDEO_ENC_PARAMS_H264. 2020-05-23 - 2e08b39444 - lavu 56.48.100 - hwcontext.h Add av_hwdevice_ctx_create_derived_opts. 2020-05-23 - 6b65c4ec54 - lavu 56.47.100 - rational.h Add av_gcd_q(). 2020-05-22 - af9e622776 - lavu 56.46.101 - opt.h Add AV_OPT_FLAG_CHILD_CONSTS. 2020-05-22 - 9d443c3e68 - lavc 58.87.100 - avcodec.h codec_par.h Move AVBitstreamFilter-related public API to new header bsf.h. Move AVCodecParameters-related public API to new header codec_par.h. 2020-05-21 - 13b1bbff0b - lavc 58.86.101 - avcodec.h Deprecated AV_CODEC_CAP_INTRA_ONLY and AV_CODEC_CAP_LOSSLESS. 2020-05-17 - 84af196c65 - lavu 56.46.100 - common.h Add av_sat_add64() and av_sat_sub64() 2020-05-12 - 991d417692 - lavu 56.45.100 - video_enc_params.h lavc 58.84.100 - avcodec.h Add a new API for exporting video encoding information. Replaces the deprecated API for exporting QP tables from decoders. Add AV_CODEC_EXPORT_DATA_VIDEO_ENC_PARAMS to request this information from decoders. 2020-05-10 - dccd07f66d - lavu 56.44.100 - hwcontext_vulkan.h Add enabled_inst_extensions, num_enabled_inst_extensions, enabled_dev_extensions and num_enabled_dev_extensions fields to AVVulkanDeviceContext 2020-04-22 - 0e1db79e37 - lavc 58.81.100 - packet.h - lavu 56.43.100 - dovi_meta.h Add AV_PKT_DATA_DOVI_CONF and AVDOVIDecoderConfigurationRecord. 2020-04-15 - 22b25b3ea5 - lavc 58.79.100 - avcodec.h Add formal support for calling avcodec_flush_buffers() on encoders. Encoders that set the cap AV_CODEC_CAP_ENCODER_FLUSH will be flushed. For all other encoders, the call is now a no-op rather than undefined behaviour. 2020-04-10 - 672946c7fe - lavc 58.78.100 - avcodec.h codec_desc.h codec_id.h packet.h Move AVCodecDesc-related public API to new header codec_desc.h. Move AVCodecID enum to new header codec_id.h. Move AVPacket-related public API to new header packet.h. 2020-03-29 - 4cb0dda555 - lavf 58.42.100 - avformat.h av_read_frame() now guarantees to handle uninitialized input packets and to return refcounted packets on success. 2020-03-27 - c52ec0367d - lavc 58.77.100 - avcodec.h av_packet_ref() now guarantees to return the destination packet in a blank state on error. 2020-03-10 - 05d27f342b - lavc 58.75.100 - avcodec.h Add AV_PKT_DATA_ICC_PROFILE. 2020-02-21 - d005a7cdfd - lavc 58.73.101 - avcodec.h Add AV_CODEC_EXPORT_DATA_PRFT. 2020-02-21 - c666689491 - lavc 58.73.100 - avcodec.h Add AVCodecContext.export_side_data and AV_CODEC_EXPORT_DATA_MVS. 2020-02-13 - e8f054b095 - lavu 56.41.100 - tx.h Add AV_TX_INT32_FFT and AV_TX_INT32_MDCT 2020-02-12 - 3182114f88 - lavu 56.40.100 - log.h Add av_log_once(). 2020-02-04 - a88449ffb2 - lavu 56.39.100 - hwcontext.h Add AV_PIX_FMT_VULKAN Add AV_HWDEVICE_TYPE_VULKAN and implementation. 2020-01-30 - 27529eeb27 - lavf 58.37.100 - avio.h Add avio_protocol_get_class(). 2020-01-15 - 717b2074ec - lavc 58.66.100 - avcodec.h Add AV_PKT_DATA_PRFT and AVProducerReferenceTime. 2019-12-27 - 45259a0ee4 - lavu 56.38.100 - eval.h Add av_expr_count_func(). 2019-12-26 - 16685114d5 - lavu 56.37.100 - buffer.h Add av_buffer_pool_buffer_get_opaque(). 2019-11-17 - 1c23abc88f - lavu 56.36.100 - eval API Add av_expr_count_vars(). 2019-10-14 - f3746d31f9 - lavu 56.35.101 - opt.h Add AV_OPT_FLAG_RUNTIME_PARAM. 2019-09-25 - f8406ab4b9 - lavc 58.59.100 - avcodec.h Add max_samples 2019-09-04 - 2a9d461abc - lavu 56.35.100 - hwcontext_videotoolbox.h Add av_map_videotoolbox_format_from_pixfmt2() for full range pixfmt 2019-09-01 - 8821d1f56e - lavu 56.34.100 - pixfmt.h Add EBU Tech. 3213-E AVColorPrimaries value 2019-08-17 - 95fa73a2b4 - lavf 58.31.101 - avio.h 4K limit removed from avio_printf. 2019-08-17 - a82f8f2f10 - lavf 58.31.100 - avio.h Add avio_print_string_array and avio_print. 2019-07-27 - 42e2319ba9 - lavu 56.33.100 - tx.h Add AV_TX_DOUBLE_FFT and AV_TX_DOUBLE_MDCT -------- 8< --------- FFmpeg 4.2 was cut here -------- 8< --------- 2019-06-21 - a30e44098a - lavu 56.30.100 - frame.h Add FF_DECODE_ERROR_DECODE_SLICES 2019-06-14 - edfced8c04 - lavu 56.29.100 - frame.h Add FF_DECODE_ERROR_CONCEALMENT_ACTIVE 2019-05-15 - b79b29ddb1 - lavu 56.28.100 - tx.h Add av_tx_init(), av_tx_uninit() and related definitions. 2019-04-20 - 3153a6502a - lavc 58.52.100 - avcodec.h Add AV_CODEC_FLAG_DROPCHANGED to allow avcodec_receive_frame to drop frames whose parameters differ from first decoded frame in stream. 2019-04-12 - abfeba9724 - lavf 58.27.102 Rename hls,applehttp demuxer to hls 2019-01-27 - 5bcefceec8 - lavc 58.46.100 - avcodec.h Add discard_damaged_percentage 2019-01-08 - 1ef4828276 - lavu 56.26.100 - frame.h Add AV_FRAME_DATA_REGIONS_OF_INTEREST 2018-12-21 - 2744d6b364 - lavu 56.25.100 - hdr_dynamic_metadata.h Add AV_FRAME_DATA_DYNAMIC_HDR_PLUS enum value, av_dynamic_hdr_plus_alloc(), av_dynamic_hdr_plus_create_side_data() functions, and related structs. -------- 8< --------- FFmpeg 4.1 was cut here -------- 8< --------- 2018-10-27 - 718044dc19 - lavu 56.21.100 - pixdesc.h Add av_read_image_line2(), av_write_image_line2() 2018-10-24 - f9d4126f28 - lavu 56.20.100 - frame.h Add AV_FRAME_DATA_S12M_TIMECODE 2018-10-11 - f6d48b618a - lavc 58.33.100 - mediacodec.h Add av_mediacodec_render_buffer_at_time(). 2018-09-09 - 35498c124a - lavc 58.29.100 - avcodec.h Add AV_PKT_DATA_AFD 2018-08-16 - b33f5299a5 - lavc 58.23.100 - avcodec.h Add av_bsf_flush(). 2018-05-18 - 2b2f2f65f3 - lavf 58.15.100 - avformat.h Add pmt_version field to AVProgram 2018-05-17 - 5dfeb7f081 - lavf 58.14.100 - avformat.h Add AV_DISPOSITION_STILL_IMAGE 2018-05-10 - c855683427 - lavu 56.18.101 - hwcontext_cuda.h Add AVCUDADeviceContext.stream. 2018-04-30 - 56b081da57 - lavu 56.18.100 - pixdesc.h Add AV_PIX_FMT_FLAG_ALPHA to AV_PIX_FMT_PAL8. 2018-04-26 - 5be0410cb3 - lavu 56.17.100 - opt.h Add AV_OPT_FLAG_DEPRECATED. 2018-04-26 - 71fa82bed6 - lavu 56.16.100 - threadmessage.h Add av_thread_message_queue_nb_elems(). -------- 8< --------- FFmpeg 4.0 was cut here -------- 8< --------- 2018-04-03 - d6fc031caf - lavu 56.13.100 - pixdesc.h Deprecate AV_PIX_FMT_FLAG_PSEUDOPAL and make allocating a pseudo palette optional for API users (see AV_PIX_FMT_FLAG_PSEUDOPAL doxygen for details). 2018-04-01 - 860086ee16 - lavc 58.17.100 - avcodec.h Add av_packet_make_refcounted(). 2018-04-01 - f1805d160d - lavfi 7.14.100 - avfilter.h Deprecate use of avfilter_register(), avfilter_register_all(), avfilter_next(). Add av_filter_iterate(). 2018-03-25 - b7d0d912ef - lavc 58.16.100 - avcodec.h Add FF_SUB_CHARENC_MODE_IGNORE. 2018-03-23 - db2a7c947e - lavu 56.12.100 - encryption_info.h Add AVEncryptionInitInfo and AVEncryptionInfo structures to hold new side-data for encryption info. 2018-03-21 - f14ca60001 - lavc 58.15.100 - avcodec.h Add av_packet_make_writable(). 2018-03-18 - 4b86ac27a0 - lavu 56.11.100 - frame.h Add AV_FRAME_DATA_QP_TABLE_PROPERTIES and AV_FRAME_DATA_QP_TABLE_DATA. 2018-03-15 - e0e72539cf - lavu 56.10.100 - opt.h Add AV_OPT_FLAG_BSF_PARAM 2018-03-07 - 950170bd3b - lavu 56.9.100 - crc.h Add AV_CRC_8_EBU crc variant. 2018-03-07 - 2a0eb86857 - lavc 58.14.100 - mediacodec.h Change the default behavior of avcodec_flush() on mediacodec video decoders. To restore the previous behavior, use the new delay_flush=1 option. 2018-03-01 - 6731f60598 - lavu 56.8.100 - frame.h Add av_frame_new_side_data_from_buf(). 2018-02-15 - 8a8d0b319a Change av_ripemd_update(), av_murmur3_update() and av_hash_update() length parameter type to size_t at next major bump. 2018-02-12 - bcab11a1a2 - lavfi 7.12.100 - avfilter.h Add AVFilterContext.extra_hw_frames. 2018-02-12 - d23fff0d8a - lavc 58.11.100 - avcodec.h Add AVCodecContext.extra_hw_frames. 2018-02-06 - 0694d87024 - lavf 58.9.100 - avformat.h Deprecate use of av_register_input_format(), av_register_output_format(), av_register_all(), av_iformat_next(), av_oformat_next(). Add av_demuxer_iterate(), and av_muxer_iterate(). 2018-02-06 - 36c85d6e77 - lavc 58.10.100 - avcodec.h Deprecate use of avcodec_register(), avcodec_register_all(), av_codec_next(), av_register_codec_parser(), and av_parser_next(). Add av_codec_iterate() and av_parser_iterate(). 2018-02-04 - ff46124b0d - lavf 58.8.100 - avformat.h Deprecate the current names of the RTSP "timeout", "stimeout", "user-agent" options. Introduce "listen_timeout" as replacement for the current "timeout" option, and "user_agent" as replacement for "user-agent". Once the deprecation is over, the old "timeout" option will be removed, and "stimeout" will be renamed to "stimeout" (the "timeout" option will essentially change semantics). 2018-01-28 - ea3672b7d6 - lavf 58.7.100 - avformat.h Deprecate AVFormatContext filename field which had limited length, use the new dynamically allocated url field instead. 2018-01-28 - ea3672b7d6 - lavf 58.7.100 - avformat.h Add url field to AVFormatContext and add ff_format_set_url helper function. 2018-01-27 - 6194d7e564 - lavf 58.6.100 - avformat.h Add AVFMTCTX_UNSEEKABLE (for HLS demuxer). 2018-01-23 - 9f07cf7c00 - lavu 56.9.100 - aes_ctr.h Add method to set the 16-byte IV. 2018-01-16 - 631c56a8e4 - lavf 58.5.100 - avformat.h Explicitly make avformat_network_init() and avformat_network_deinit() optional. If these are not called, network initialization and deinitialization is automatic, and unlike in older versions, fully supported, unless libavformat is linked to ancient GnuTLS and OpenSSL. 2018-01-16 - 6512ff72f9 - lavf 58.4.100 - avformat.h Deprecate AVStream.recommended_encoder_configuration. It was useful only for FFserver, which has been removed. 2018-01-05 - 798dcf2432 - lavfi 7.11.101 - avfilter.h Deprecate avfilter_link_get_channels(). Use av_buffersink_get_channels(). 2017-01-04 - c29038f304 - lavr 4.0.0 - avresample.h Deprecate the entire library. Merged years ago to provide compatibility with Libav, it remained unmaintained by the FFmpeg project and duplicated functionality provided by libswresample. In order to improve consistency and reduce attack surface, it has been deprecated. Users of this library are asked to migrate to libswresample, which, as well as providing more functionality, is faster and has higher accuracy. 2017-12-26 - a04c2c707d - lavc 58.9.100 - avcodec.h Deprecate av_lockmgr_register(). You need to build FFmpeg with threading support enabled to get basic thread-safety (which is the default build configuration). 2017-12-24 - 8b81eabe57 - lavu 56.7.100 - cpu.h AVX-512 flags added. 2017-12-16 - 8bf4e6d3ce - lavc 58.8.100 - avcodec.h The MediaCodec decoders now support AVCodecContext.hw_device_ctx. 2017-12-16 - e4d9f05ca7 - lavu 56.6.100 - hwcontext.h hwcontext_mediacodec.h Add AV_HWDEVICE_TYPE_MEDIACODEC and a new installed header with MediaCodec-specific hwcontext definitions. 2017-12-14 - b945fed629 - lavc 58.7.100 - avcodec.h Add AV_CODEC_CAP_HARDWARE, AV_CODEC_CAP_HYBRID, and AVCodec.wrapper_name, and mark all AVCodecs accordingly. 2017-11-29 - d268094f88 - lavu 56.4.100 / 56.7.0 - stereo3d.h Add view field to AVStereo3D structure and AVStereo3DView enum. 2017-11-26 - 3a71bcc213 - lavc 58.6.100 - avcodec.h Add const to AVCodecContext.hwaccel. 2017-11-26 - 3536a3efb9 - lavc 58.5.100 - avcodec.h Deprecate user visibility of the AVHWAccel structure and the functions av_register_hwaccel() and av_hwaccel_next(). 2017-11-26 - 24cc0a53e9 - lavc 58.4.100 - avcodec.h Add AVCodecHWConfig and avcodec_get_hw_config(). 2017-11-22 - 3650cb2dfa - lavu 56.3.100 - opencl.h Remove experimental OpenCL API (av_opencl_*). 2017-11-22 - b25d8ef0a7 - lavu 56.2.100 - hwcontext.h hwcontext_opencl.h Add AV_HWDEVICE_TYPE_OPENCL and a new installed header with OpenCL-specific hwcontext definitions. 2017-11-22 - a050f56c09 - lavu 56.1.100 - pixfmt.h Add AV_PIX_FMT_OPENCL. 2017-11-11 - 48e4eda11d - lavc 58.3.100 - avcodec.h Add avcodec_get_hw_frames_parameters(). -------- 8< --------- FFmpeg 3.4 was cut here -------- 8< --------- 2017-09-28 - b6cf66ae1c - lavc 57.106.104 - avcodec.h Add AV_PKT_DATA_A53_CC packet side data, to export closed captions 2017-09-27 - 7aa6b8a68f - lavu 55.77.101 / lavu 55.31.1 - frame.h Allow passing the value of 0 (meaning "automatic") as the required alignment to av_frame_get_buffer(). 2017-09-27 - 522f877086 - lavu 55.77.100 / lavu 55.31.0 - cpu.h Add av_cpu_max_align() for querying maximum required data alignment. 2017-09-26 - b1cf151c4d - lavc 57.106.102 - avcodec.h Deprecate AVCodecContext.refcounted_frames. This was useful for deprecated API only (avcodec_decode_video2/avcodec_decode_audio4). The new decode APIs (avcodec_send_packet/avcodec_receive_frame) always work with reference counted frames. 2017-09-21 - 6f15f1cdc8 - lavu 55.76.100 / 56.6.0 - pixdesc.h Add av_color_range_from_name(), av_color_primaries_from_name(), av_color_transfer_from_name(), av_color_space_from_name(), and av_chroma_location_from_name(). 2017-09-13 - 82342cead1 - lavc 57.106.100 - avcodec.h Add AV_PKT_FLAG_TRUSTED. 2017-09-13 - 9cb23cd9fe - lavu 55.75.100 - hwcontext.h hwcontext_drm.h Add AV_HWDEVICE_TYPE_DRM and implementation. 2017-09-08 - 5ba2aef6ec - lavfi 6.103.100 - buffersrc.h Add av_buffersrc_close(). 2017-09-04 - 6cadbb16e9 - lavc 57.105.100 - avcodec.h Add AV_HWACCEL_CODEC_CAP_EXPERIMENTAL, replacing the deprecated HWACCEL_CODEC_CAP_EXPERIMENTAL flag. 2017-09-01 - 5d76674756 - lavf 57.81.100 - avio.h Add avio_read_partial(). 2017-09-01 - xxxxxxx - lavf 57.80.100 / 57.11.0 - avio.h Add avio_context_free(). From now on it must be used for freeing AVIOContext. 2017-08-08 - 1460408703 - lavu 55.74.100 - pixdesc.h Add AV_PIX_FMT_FLAG_FLOAT pixel format flag. 2017-08-08 - 463b81de2b - lavu 55.72.100 - imgutils.h Add av_image_fill_black(). 2017-08-08 - caa12027ba - lavu 55.71.100 - frame.h Add av_frame_apply_cropping(). 2017-07-25 - 24de4fddca - lavu 55.69.100 - frame.h Add AV_FRAME_DATA_ICC_PROFILE side data type. 2017-06-27 - 70143a3954 - lavc 57.100.100 - avcodec.h DXVA2 and D3D11 hardware accelerated decoding now supports the new hwaccel API, which can create the decoder context and allocate hardware frame automatically. See AVCodecContext.hw_device_ctx and AVCodecContext.hw_frames_ctx. For D3D11, the new AV_PIX_FMT_D3D11 pixfmt must be used with the new API. 2017-06-27 - 3303511f33 - lavu 56.67.100 - hwcontext.h Add AV_HWDEVICE_TYPE_D3D11VA and AV_PIX_FMT_D3D11. 2017-06-24 - 09891c5391 - lavf 57.75.100 - avio.h Add AVIO_DATA_MARKER_FLUSH_POINT to signal preferred flush points to aviobuf. 2017-06-14 - d59c6a3aeb - lavu 55.66.100 - hwcontext.h av_hwframe_ctx_create_derived() now takes some AV_HWFRAME_MAP_* combination as its flags argument (which was previously unused). 2017-06-14 - 49ae8a5e87 - lavc 57.99.100 - avcodec.h Add AV_HWACCEL_FLAG_ALLOW_PROFILE_MISMATCH. 2017-06-14 - 0b1794a43e - lavu 55.65.100 - hwcontext.h Add AV_HWDEVICE_TYPE_NONE, av_hwdevice_find_type_by_name(), av_hwdevice_get_type_name() and av_hwdevice_iterate_types(). 2017-06-14 - b22172f6f3 - lavu 55.64.100 - hwcontext.h Add av_hwdevice_ctx_create_derived(). 2017-05-15 - 532b23f079 - lavc 57.96.100 - avcodec.h VideoToolbox hardware-accelerated decoding now supports the new hwaccel API, which can create the decoder context and allocate hardware frames automatically. See AVCodecContext.hw_device_ctx and AVCodecContext.hw_frames_ctx. 2017-05-15 - 532b23f079 - lavu 57.63.100 - hwcontext.h Add AV_HWDEVICE_TYPE_VIDEOTOOLBOX and implementation. 2017-05-08 - f089e02fa2 - lavc 57.95.100 / 57.31.0 - avcodec.h Add AVCodecContext.apply_cropping to control whether cropping is handled by libavcodec or the caller. 2017-05-08 - a47bd5d77e - lavu 55.62.100 / 55.30.0 - frame.h Add AVFrame.crop_left/right/top/bottom fields for attaching cropping information to video frames. 2017-xx-xx - xxxxxxxxxx Change av_sha_update(), av_sha512_update() and av_md5_sum()/av_md5_update() length parameter type to size_t at next major bump. 2017-05-05 - c0f17a905f - lavc 57.94.100 - avcodec.h The cuvid decoders now support AVCodecContext.hw_device_ctx, which removes the requirement to set an incomplete AVCodecContext.hw_frames_ctx only to set the Cuda device handle. 2017-04-11 - 8378466507 - lavu 55.61.100 - avstring.h Add av_strireplace(). 2016-04-06 - 157e57a181 - lavc 57.92.100 - avcodec.h Add AV_PKT_DATA_CONTENT_LIGHT_LEVEL packet side data. Lines 1–500 of 3289. Load more
Never assume the API of libav* to be stable unless at least 1 month has passed since the last major version increase or the API was added. The last version increases were: libavcodec: 2017-10-21 libavdevice: 2017-10-21 libavfilter: 2017-10-21 libavformat: 2017-10-21 libavresample: 2017-10-21 libpostproc: 2017-10-21 libswresample: 2017-10-21 libswscale: 2017-10-21 libavutil: 2017-10-21 API changes, most recent first: 2020-11-25 - xxxxxxxxxx - lavc 58.113.100 - avcodec.h Adds a new flag AV_CODEC_EXPORT_DATA_FILM_GRAIN for export_side_data. 2020-11-25 - xxxxxxxxxx - lavu 56.61.100 - film_grain_params.h Adds a new API for extracting codec film grain parameters as side data. Adds a new AVFrameSideDataType entry AV_FRAME_DATA_FILM_GRAIN_PARAMS for it. 2020-xx-xx - xxxxxxxxxx - lavf 58.64.100 - avformat.h Add AVSTREAM_EVENT_FLAG_NEW_PACKETS. 2020-xx-xx - xxxxxxxxxx - lavu 56.60.100 - buffer.h Add a av_buffer_replace() convenience function. 2020-09-xx - xxxxxxxxxx - lavu 56.59.100 - timecode.h Add av_timecode_make_smpte_tc_string2. 2020-08-21 - xxxxxxxxxx - lavu 56.58.100 - avstring.h Deprecate av_d2str(). Use av_asprintf() instead. 2020-08-04 - xxxxxxxxxx - lavu 56.58.100 - channel_layout.h Add AV_CH_LAYOUT_22POINT2 together with its newly required pieces: AV_CH_TOP_SIDE_LEFT, AV_CH_TOP_SIDE_RIGHT, AV_CH_BOTTOM_FRONT_CENTER, AV_CH_BOTTOM_FRONT_LEFT, AV_CH_BOTTOM_FRONT_RIGHT. 2020-07-xx - xxxxxxxxxx - lavu 56.57.100 - cpu.h Add AV_CPU_FLAG_MMI and AV_CPU_FLAG_MSA. 2020-07-xx - xxxxxxxxxx - lavu 56.56.100 - imgutils.h Add av_image_fill_plane_sizes(). 2020-07-xx - xxxxxxxxxx - lavc 58.96.100 - packet.h Add AV_PKT_DATA_S12M_TIMECODE. 2020-06-12 - b09fb030c1 - lavu 56.55.100 - pixdesc.h Add AV_PIX_FMT_X2RGB10. 2020-06-xx - xxxxxxxxxx - lavu 56.54.100 - frame.h Add AV_FRAME_DATA_SEI_UNREGISTERED. 2020-06-xx - xxxxxxxxxx - lavu 56.53.100 - log.h opt.h Add av_opt_child_class_iterate() and AVClass.child_class_iterate(). Deprecate av_opt_child_class_next() and AVClass.child_class_next(). -------- 8< --------- FFmpeg 4.3 was cut here -------- 8< --------- 2020-06-05 - ec39c2276a - lavu 56.50.100 - buffer.h Passing NULL as alloc argument to av_buffer_pool_init2() is now allowed. 2020-05-27 - ba6cada92e - lavc 58.88.100 - avcodec.h codec.h Move AVCodec-related public API to new header codec.h. 2020-05-23 - 064b875e89 - lavu 56.49.100 - video_enc_params.h Add AV_VIDEO_ENC_PARAMS_H264. 2020-05-23 - 2e08b39444 - lavu 56.48.100 - hwcontext.h Add av_hwdevice_ctx_create_derived_opts. 2020-05-23 - 6b65c4ec54 - lavu 56.47.100 - rational.h Add av_gcd_q(). 2020-05-22 - af9e622776 - lavu 56.46.101 - opt.h Add AV_OPT_FLAG_CHILD_CONSTS. 2020-05-22 - 9d443c3e68 - lavc 58.87.100 - avcodec.h codec_par.h Move AVBitstreamFilter-related public API to new header bsf.h. Move AVCodecParameters-related public API to new header codec_par.h. 2020-05-21 - 13b1bbff0b - lavc 58.86.101 - avcodec.h Deprecated AV_CODEC_CAP_INTRA_ONLY and AV_CODEC_CAP_LOSSLESS. 2020-05-17 - 84af196c65 - lavu 56.46.100 - common.h Add av_sat_add64() and av_sat_sub64() 2020-05-12 - 991d417692 - lavu 56.45.100 - video_enc_params.h lavc 58.84.100 - avcodec.h Add a new API for exporting video encoding information. Replaces the deprecated API for exporting QP tables from decoders. Add AV_CODEC_EXPORT_DATA_VIDEO_ENC_PARAMS to request this information from decoders. 2020-05-10 - dccd07f66d - lavu 56.44.100 - hwcontext_vulkan.h Add enabled_inst_extensions, num_enabled_inst_extensions, enabled_dev_extensions and num_enabled_dev_extensions fields to AVVulkanDeviceContext 2020-04-22 - 0e1db79e37 - lavc 58.81.100 - packet.h - lavu 56.43.100 - dovi_meta.h Add AV_PKT_DATA_DOVI_CONF and AVDOVIDecoderConfigurationRecord. 2020-04-15 - 22b25b3ea5 - lavc 58.79.100 - avcodec.h Add formal support for calling avcodec_flush_buffers() on encoders. Encoders that set the cap AV_CODEC_CAP_ENCODER_FLUSH will be flushed. For all other encoders, the call is now a no-op rather than undefined behaviour. 2020-04-10 - 672946c7fe - lavc 58.78.100 - avcodec.h codec_desc.h codec_id.h packet.h Move AVCodecDesc-related public API to new header codec_desc.h. Move AVCodecID enum to new header codec_id.h. Move AVPacket-related public API to new header packet.h. 2020-03-29 - 4cb0dda555 - lavf 58.42.100 - avformat.h av_read_frame() now guarantees to handle uninitialized input packets and to return refcounted packets on success. 2020-03-27 - c52ec0367d - lavc 58.77.100 - avcodec.h av_packet_ref() now guarantees to return the destination packet in a blank state on error. 2020-03-10 - 05d27f342b - lavc 58.75.100 - avcodec.h Add AV_PKT_DATA_ICC_PROFILE. 2020-02-21 - d005a7cdfd - lavc 58.73.101 - avcodec.h Add AV_CODEC_EXPORT_DATA_PRFT. 2020-02-21 - c666689491 - lavc 58.73.100 - avcodec.h Add AVCodecContext.export_side_data and AV_CODEC_EXPORT_DATA_MVS. 2020-02-13 - e8f054b095 - lavu 56.41.100 - tx.h Add AV_TX_INT32_FFT and AV_TX_INT32_MDCT 2020-02-12 - 3182114f88 - lavu 56.40.100 - log.h Add av_log_once(). 2020-02-04 - a88449ffb2 - lavu 56.39.100 - hwcontext.h Add AV_PIX_FMT_VULKAN Add AV_HWDEVICE_TYPE_VULKAN and implementation. 2020-01-30 - 27529eeb27 - lavf 58.37.100 - avio.h Add avio_protocol_get_class(). 2020-01-15 - 717b2074ec - lavc 58.66.100 - avcodec.h Add AV_PKT_DATA_PRFT and AVProducerReferenceTime. 2019-12-27 - 45259a0ee4 - lavu 56.38.100 - eval.h Add av_expr_count_func(). 2019-12-26 - 16685114d5 - lavu 56.37.100 - buffer.h Add av_buffer_pool_buffer_get_opaque(). 2019-11-17 - 1c23abc88f - lavu 56.36.100 - eval API Add av_expr_count_vars(). 2019-10-14 - f3746d31f9 - lavu 56.35.101 - opt.h Add AV_OPT_FLAG_RUNTIME_PARAM. 2019-09-25 - f8406ab4b9 - lavc 58.59.100 - avcodec.h Add max_samples 2019-09-04 - 2a9d461abc - lavu 56.35.100 - hwcontext_videotoolbox.h Add av_map_videotoolbox_format_from_pixfmt2() for full range pixfmt 2019-09-01 - 8821d1f56e - lavu 56.34.100 - pixfmt.h Add EBU Tech. 3213-E AVColorPrimaries value 2019-08-17 - 95fa73a2b4 - lavf 58.31.101 - avio.h 4K limit removed from avio_printf. 2019-08-17 - a82f8f2f10 - lavf 58.31.100 - avio.h Add avio_print_string_array and avio_print. 2019-07-27 - 42e2319ba9 - lavu 56.33.100 - tx.h Add AV_TX_DOUBLE_FFT and AV_TX_DOUBLE_MDCT -------- 8< --------- FFmpeg 4.2 was cut here -------- 8< --------- 2019-06-21 - a30e44098a - lavu 56.30.100 - frame.h Add FF_DECODE_ERROR_DECODE_SLICES 2019-06-14 - edfced8c04 - lavu 56.29.100 - frame.h Add FF_DECODE_ERROR_CONCEALMENT_ACTIVE 2019-05-15 - b79b29ddb1 - lavu 56.28.100 - tx.h Add av_tx_init(), av_tx_uninit() and related definitions. 2019-04-20 - 3153a6502a - lavc 58.52.100 - avcodec.h Add AV_CODEC_FLAG_DROPCHANGED to allow avcodec_receive_frame to drop frames whose parameters differ from first decoded frame in stream. 2019-04-12 - abfeba9724 - lavf 58.27.102 Rename hls,applehttp demuxer to hls 2019-01-27 - 5bcefceec8 - lavc 58.46.100 - avcodec.h Add discard_damaged_percentage 2019-01-08 - 1ef4828276 - lavu 56.26.100 - frame.h Add AV_FRAME_DATA_REGIONS_OF_INTEREST 2018-12-21 - 2744d6b364 - lavu 56.25.100 - hdr_dynamic_metadata.h Add AV_FRAME_DATA_DYNAMIC_HDR_PLUS enum value, av_dynamic_hdr_plus_alloc(), av_dynamic_hdr_plus_create_side_data() functions, and related structs. -------- 8< --------- FFmpeg 4.1 was cut here -------- 8< --------- 2018-10-27 - 718044dc19 - lavu 56.21.100 - pixdesc.h Add av_read_image_line2(), av_write_image_line2() 2018-10-24 - f9d4126f28 - lavu 56.20.100 - frame.h Add AV_FRAME_DATA_S12M_TIMECODE 2018-10-11 - f6d48b618a - lavc 58.33.100 - mediacodec.h Add av_mediacodec_render_buffer_at_time(). 2018-09-09 - 35498c124a - lavc 58.29.100 - avcodec.h Add AV_PKT_DATA_AFD 2018-08-16 - b33f5299a5 - lavc 58.23.100 - avcodec.h Add av_bsf_flush(). 2018-05-18 - 2b2f2f65f3 - lavf 58.15.100 - avformat.h Add pmt_version field to AVProgram 2018-05-17 - 5dfeb7f081 - lavf 58.14.100 - avformat.h Add AV_DISPOSITION_STILL_IMAGE 2018-05-10 - c855683427 - lavu 56.18.101 - hwcontext_cuda.h Add AVCUDADeviceContext.stream. 2018-04-30 - 56b081da57 - lavu 56.18.100 - pixdesc.h Add AV_PIX_FMT_FLAG_ALPHA to AV_PIX_FMT_PAL8. 2018-04-26 - 5be0410cb3 - lavu 56.17.100 - opt.h Add AV_OPT_FLAG_DEPRECATED. 2018-04-26 - 71fa82bed6 - lavu 56.16.100 - threadmessage.h Add av_thread_message_queue_nb_elems(). -------- 8< --------- FFmpeg 4.0 was cut here -------- 8< --------- 2018-04-03 - d6fc031caf - lavu 56.13.100 - pixdesc.h Deprecate AV_PIX_FMT_FLAG_PSEUDOPAL and make allocating a pseudo palette optional for API users (see AV_PIX_FMT_FLAG_PSEUDOPAL doxygen for details). 2018-04-01 - 860086ee16 - lavc 58.17.100 - avcodec.h Add av_packet_make_refcounted(). 2018-04-01 - f1805d160d - lavfi 7.14.100 - avfilter.h Deprecate use of avfilter_register(), avfilter_register_all(), avfilter_next(). Add av_filter_iterate(). 2018-03-25 - b7d0d912ef - lavc 58.16.100 - avcodec.h Add FF_SUB_CHARENC_MODE_IGNORE. 2018-03-23 - db2a7c947e - lavu 56.12.100 - encryption_info.h Add AVEncryptionInitInfo and AVEncryptionInfo structures to hold new side-data for encryption info. 2018-03-21 - f14ca60001 - lavc 58.15.100 - avcodec.h Add av_packet_make_writable(). 2018-03-18 - 4b86ac27a0 - lavu 56.11.100 - frame.h Add AV_FRAME_DATA_QP_TABLE_PROPERTIES and AV_FRAME_DATA_QP_TABLE_DATA. 2018-03-15 - e0e72539cf - lavu 56.10.100 - opt.h Add AV_OPT_FLAG_BSF_PARAM 2018-03-07 - 950170bd3b - lavu 56.9.100 - crc.h Add AV_CRC_8_EBU crc variant. 2018-03-07 - 2a0eb86857 - lavc 58.14.100 - mediacodec.h Change the default behavior of avcodec_flush() on mediacodec video decoders. To restore the previous behavior, use the new delay_flush=1 option. 2018-03-01 - 6731f60598 - lavu 56.8.100 - frame.h Add av_frame_new_side_data_from_buf(). 2018-02-15 - 8a8d0b319a Change av_ripemd_update(), av_murmur3_update() and av_hash_update() length parameter type to size_t at next major bump. 2018-02-12 - bcab11a1a2 - lavfi 7.12.100 - avfilter.h Add AVFilterContext.extra_hw_frames. 2018-02-12 - d23fff0d8a - lavc 58.11.100 - avcodec.h Add AVCodecContext.extra_hw_frames. 2018-02-06 - 0694d87024 - lavf 58.9.100 - avformat.h Deprecate use of av_register_input_format(), av_register_output_format(), av_register_all(), av_iformat_next(), av_oformat_next(). Add av_demuxer_iterate(), and av_muxer_iterate(). 2018-02-06 - 36c85d6e77 - lavc 58.10.100 - avcodec.h Deprecate use of avcodec_register(), avcodec_register_all(), av_codec_next(), av_register_codec_parser(), and av_parser_next(). Add av_codec_iterate() and av_parser_iterate(). 2018-02-04 - ff46124b0d - lavf 58.8.100 - avformat.h Deprecate the current names of the RTSP "timeout", "stimeout", "user-agent" options. Introduce "listen_timeout" as replacement for the current "timeout" option, and "user_agent" as replacement for "user-agent". Once the deprecation is over, the old "timeout" option will be removed, and "stimeout" will be renamed to "stimeout" (the "timeout" option will essentially change semantics). 2018-01-28 - ea3672b7d6 - lavf 58.7.100 - avformat.h Deprecate AVFormatContext filename field which had limited length, use the new dynamically allocated url field instead. 2018-01-28 - ea3672b7d6 - lavf 58.7.100 - avformat.h Add url field to AVFormatContext and add ff_format_set_url helper function. 2018-01-27 - 6194d7e564 - lavf 58.6.100 - avformat.h Add AVFMTCTX_UNSEEKABLE (for HLS demuxer). 2018-01-23 - 9f07cf7c00 - lavu 56.9.100 - aes_ctr.h Add method to set the 16-byte IV. 2018-01-16 - 631c56a8e4 - lavf 58.5.100 - avformat.h Explicitly make avformat_network_init() and avformat_network_deinit() optional. If these are not called, network initialization and deinitialization is automatic, and unlike in older versions, fully supported, unless libavformat is linked to ancient GnuTLS and OpenSSL. 2018-01-16 - 6512ff72f9 - lavf 58.4.100 - avformat.h Deprecate AVStream.recommended_encoder_configuration. It was useful only for FFserver, which has been removed. 2018-01-05 - 798dcf2432 - lavfi 7.11.101 - avfilter.h Deprecate avfilter_link_get_channels(). Use av_buffersink_get_channels(). 2017-01-04 - c29038f304 - lavr 4.0.0 - avresample.h Deprecate the entire library. Merged years ago to provide compatibility with Libav, it remained unmaintained by the FFmpeg project and duplicated functionality provided by libswresample. In order to improve consistency and reduce attack surface, it has been deprecated. Users of this library are asked to migrate to libswresample, which, as well as providing more functionality, is faster and has higher accuracy. 2017-12-26 - a04c2c707d - lavc 58.9.100 - avcodec.h Deprecate av_lockmgr_register(). You need to build FFmpeg with threading support enabled to get basic thread-safety (which is the default build configuration). 2017-12-24 - 8b81eabe57 - lavu 56.7.100 - cpu.h AVX-512 flags added. 2017-12-16 - 8bf4e6d3ce - lavc 58.8.100 - avcodec.h The MediaCodec decoders now support AVCodecContext.hw_device_ctx. 2017-12-16 - e4d9f05ca7 - lavu 56.6.100 - hwcontext.h hwcontext_mediacodec.h Add AV_HWDEVICE_TYPE_MEDIACODEC and a new installed header with MediaCodec-specific hwcontext definitions. 2017-12-14 - b945fed629 - lavc 58.7.100 - avcodec.h Add AV_CODEC_CAP_HARDWARE, AV_CODEC_CAP_HYBRID, and AVCodec.wrapper_name, and mark all AVCodecs accordingly. 2017-11-29 - d268094f88 - lavu 56.4.100 / 56.7.0 - stereo3d.h Add view field to AVStereo3D structure and AVStereo3DView enum. 2017-11-26 - 3a71bcc213 - lavc 58.6.100 - avcodec.h Add const to AVCodecContext.hwaccel. 2017-11-26 - 3536a3efb9 - lavc 58.5.100 - avcodec.h Deprecate user visibility of the AVHWAccel structure and the functions av_register_hwaccel() and av_hwaccel_next(). 2017-11-26 - 24cc0a53e9 - lavc 58.4.100 - avcodec.h Add AVCodecHWConfig and avcodec_get_hw_config(). 2017-11-22 - 3650cb2dfa - lavu 56.3.100 - opencl.h Remove experimental OpenCL API (av_opencl_*). 2017-11-22 - b25d8ef0a7 - lavu 56.2.100 - hwcontext.h hwcontext_opencl.h Add AV_HWDEVICE_TYPE_OPENCL and a new installed header with OpenCL-specific hwcontext definitions. 2017-11-22 - a050f56c09 - lavu 56.1.100 - pixfmt.h Add AV_PIX_FMT_OPENCL. 2017-11-11 - 48e4eda11d - lavc 58.3.100 - avcodec.h Add avcodec_get_hw_frames_parameters(). -------- 8< --------- FFmpeg 3.4 was cut here -------- 8< --------- 2017-09-28 - b6cf66ae1c - lavc 57.106.104 - avcodec.h Add AV_PKT_DATA_A53_CC packet side data, to export closed captions 2017-09-27 - 7aa6b8a68f - lavu 55.77.101 / lavu 55.31.1 - frame.h Allow passing the value of 0 (meaning "automatic") as the required alignment to av_frame_get_buffer(). 2017-09-27 - 522f877086 - lavu 55.77.100 / lavu 55.31.0 - cpu.h Add av_cpu_max_align() for querying maximum required data alignment. 2017-09-26 - b1cf151c4d - lavc 57.106.102 - avcodec.h Deprecate AVCodecContext.refcounted_frames. This was useful for deprecated API only (avcodec_decode_video2/avcodec_decode_audio4). The new decode APIs (avcodec_send_packet/avcodec_receive_frame) always work with reference counted frames. 2017-09-21 - 6f15f1cdc8 - lavu 55.76.100 / 56.6.0 - pixdesc.h Add av_color_range_from_name(), av_color_primaries_from_name(), av_color_transfer_from_name(), av_color_space_from_name(), and av_chroma_location_from_name(). 2017-09-13 - 82342cead1 - lavc 57.106.100 - avcodec.h Add AV_PKT_FLAG_TRUSTED. 2017-09-13 - 9cb23cd9fe - lavu 55.75.100 - hwcontext.h hwcontext_drm.h Add AV_HWDEVICE_TYPE_DRM and implementation. 2017-09-08 - 5ba2aef6ec - lavfi 6.103.100 - buffersrc.h Add av_buffersrc_close(). 2017-09-04 - 6cadbb16e9 - lavc 57.105.100 - avcodec.h Add AV_HWACCEL_CODEC_CAP_EXPERIMENTAL, replacing the deprecated HWACCEL_CODEC_CAP_EXPERIMENTAL flag. 2017-09-01 - 5d76674756 - lavf 57.81.100 - avio.h Add avio_read_partial(). 2017-09-01 - xxxxxxx - lavf 57.80.100 / 57.11.0 - avio.h Add avio_context_free(). From now on it must be used for freeing AVIOContext. 2017-08-08 - 1460408703 - lavu 55.74.100 - pixdesc.h Add AV_PIX_FMT_FLAG_FLOAT pixel format flag. 2017-08-08 - 463b81de2b - lavu 55.72.100 - imgutils.h Add av_image_fill_black(). 2017-08-08 - caa12027ba - lavu 55.71.100 - frame.h Add av_frame_apply_cropping(). 2017-07-25 - 24de4fddca - lavu 55.69.100 - frame.h Add AV_FRAME_DATA_ICC_PROFILE side data type. 2017-06-27 - 70143a3954 - lavc 57.100.100 - avcodec.h DXVA2 and D3D11 hardware accelerated decoding now supports the new hwaccel API, which can create the decoder context and allocate hardware frame automatically. See AVCodecContext.hw_device_ctx and AVCodecContext.hw_frames_ctx. For D3D11, the new AV_PIX_FMT_D3D11 pixfmt must be used with the new API. 2017-06-27 - 3303511f33 - lavu 56.67.100 - hwcontext.h Add AV_HWDEVICE_TYPE_D3D11VA and AV_PIX_FMT_D3D11. 2017-06-24 - 09891c5391 - lavf 57.75.100 - avio.h Add AVIO_DATA_MARKER_FLUSH_POINT to signal preferred flush points to aviobuf. 2017-06-14 - d59c6a3aeb - lavu 55.66.100 - hwcontext.h av_hwframe_ctx_create_derived() now takes some AV_HWFRAME_MAP_* combination as its flags argument (which was previously unused). 2017-06-14 - 49ae8a5e87 - lavc 57.99.100 - avcodec.h Add AV_HWACCEL_FLAG_ALLOW_PROFILE_MISMATCH. 2017-06-14 - 0b1794a43e - lavu 55.65.100 - hwcontext.h Add AV_HWDEVICE_TYPE_NONE, av_hwdevice_find_type_by_name(), av_hwdevice_get_type_name() and av_hwdevice_iterate_types(). 2017-06-14 - b22172f6f3 - lavu 55.64.100 - hwcontext.h Add av_hwdevice_ctx_create_derived(). 2017-05-15 - 532b23f079 - lavc 57.96.100 - avcodec.h VideoToolbox hardware-accelerated decoding now supports the new hwaccel API, which can create the decoder context and allocate hardware frames automatically. See AVCodecContext.hw_device_ctx and AVCodecContext.hw_frames_ctx. 2017-05-15 - 532b23f079 - lavu 57.63.100 - hwcontext.h Add AV_HWDEVICE_TYPE_VIDEOTOOLBOX and implementation. 2017-05-08 - f089e02fa2 - lavc 57.95.100 / 57.31.0 - avcodec.h Add AVCodecContext.apply_cropping to control whether cropping is handled by libavcodec or the caller. 2017-05-08 - a47bd5d77e - lavu 55.62.100 / 55.30.0 - frame.h Add AVFrame.crop_left/right/top/bottom fields for attaching cropping information to video frames. 2017-xx-xx - xxxxxxxxxx Change av_sha_update(), av_sha512_update() and av_md5_sum()/av_md5_update() length parameter type to size_t at next major bump. 2017-05-05 - c0f17a905f - lavc 57.94.100 - avcodec.h The cuvid decoders now support AVCodecContext.hw_device_ctx, which removes the requirement to set an incomplete AVCodecContext.hw_frames_ctx only to set the Cuda device handle. 2017-04-11 - 8378466507 - lavu 55.61.100 - avstring.h Add av_strireplace(). 2016-04-06 - 157e57a181 - lavc 57.92.100 - avcodec.h Add AV_PKT_DATA_CONTENT_LIGHT_LEVEL packet side data.