==================================
Netint FFmpeg Change List - Quadra
==================================

This document describes the changes to FFmpeg that Netint has made in its Quadra SW release patches.
This document was last updated for Netint Quadra SW release v5.5.0.
Please refer to Netint FFmpeg patch files for the raw differences described here.

--------------------------------------------------
build_ffmpeg.sh
--------------------------------------------------
Affecting: all versions of FFmpeg
  Build script for compiling FFmpeg with Netint codec
  Also supports arguments for configuring FFmpeg to be compiled
  Build options for android-NDK compilation

Affecting: n4.3.1, n5.1.2
  Add build support for openharmony

Affecting: n6.1, n7.1
  Remove logan references

--------------------------------------------------
configure
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add '--enable-ni_logan' as an autodetected FFmpeg configure option and as a dependency for h264_ni_logan_dec, h265_ni_logan_dec, h264_ni_logan_enc, and h265_ni_logan_enc
  Add '--enable-ni_quadra' as an autodetected FFmpeg configure option and as a dependency for h264_ni_quadra_dec, h265_ni_quadra_dec, h264_ni_quadra_enc, h265_ni_quadra_enc, ni_quadra_hwupload, ni_quadra_drawbox, ni_quadra_drawtext, ni_quadra_bg, ni_quadra_bgr, ni_quadra_crop, ni_quadra_overlay, ni_quadra_pad, ni_quadra_rotate, ni_quadra_scale, ni_quadra_split, ni_quadra_merge, ni_quadra_flip, ni_quadra_roi, ni_quadra_xstack, ni_quadra_delogo ni_quadra_hvsplus and ni_quadra_scale2ref
  Add libfontconfig and libfribidi as suggested dependencies for ni_quadra_drawtext
  Add libfreetype as a dependency for ni_quadra_drawtext
  Add libxcoder API version check
  Add '--enable-ni_quadra' as an autodetected FFmpeg configure option and as a dependency for ni_quadra_p2pxfer
  Add swscale and sdl2 as dependencies for ni_quadra_sdl filter

Affecting: n7.1, n4.3.1
  Add Quadra dependency for scte35_ni_dummy_dec

Affecting: n4.3.1
  Add libklscte35 support

--------------------------------------------------
fftools/cmdutils.c
--------------------------------------------------
Affecting: n7.1
  Add logic to differentiate between netint -dec and ffmpeg -dec command line option

--------------------------------------------------
ffmpeg.c            fftools/ffmpeg.c
ffmpeg.h            fftools/ffmpeg.h
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add FFmpeg option ni_interval_fps to display window averaged processing FPS
  Add support for Netint Quadra hardware frames
  Add FFmpeg option force_nidec to select appropriate Netint decoder for autodetected codec in input

Affecting: n4.3.1, n5.1.2
  Add a more descriptive error message when using autoscale with hardware frames and sequence change
  Include SUBTITLE to existing TS timestamp detection and modification for VIDEO and AUDIO
  Fix DTS discontinuities during decoder unavailablity periods by not incrementing FFmpeg's estimated DTS on repeated decoding attempts for same frame
  Initialize color parameters only if not explicitly set on command line

Affecting: n4.3.1, n5.1.2, n6.1
  When using -streamloop do not send NULL packet to Netint Logan decoders between loops

Affecting: n4.3.1
  Backport FFmpeg command line arg 'autoscale' from n4.4
  Backport initialization of color parameters before setting up encoder from n4.4

Affecting: n6.1
  SCTE-35 packet decode and force IDR
  Print report calculation excludes non A/V streams

Affecting: n7.1, n4.3.1
  SCTE-35 packet decode and force IDR

--------------------------------------------------
fftools/ffmpeg_dec.c
--------------------------------------------------
Affecting: n6.1, n7.1
  SCTE-35 packet decode and force IDR

--------------------------------------------------
fftools/ffmpeg_demux.c
--------------------------------------------------
Affecting: n6.1, n7.1
  SCTE-35 packet decode and force IDR
  Add ffmpeg option force_nidec to force select NI HW decoder
  Use r_frame_rate for demuxer FPS if avg_frame_rate unavailable
  Include SUBTITLE to existing TS timestamp detection and modification for VIDEO and AUDIO

--------------------------------------------------
fftools/ffmpeg_enc.c
--------------------------------------------------
Affecting: n6.1
  Initialize color parameters only if not explicitly set on command line

Affecting: n6.1, n7.1
  SCTE-35 packet decode and force IDR

Affecting: n7.1
  Check desc to avoid coredump
  Fix color info will be overwritten when set params in encoder

--------------------------------------------------
ffmpeg_filter.c     fftools/ffmpeg_filter.c
--------------------------------------------------
Affecting: n5.1.2, n6.1, n7.1
  Support auto-rotate for Netint Quadra hardware frames using ni_quadra_rotate filter

Affecting: n4.3.1
  Backport FFmpeg command line arg 'autoscale' from n4.4

Affecting: n6.1
  Fix timing info of the first src frame of filter

Affecting: n6.1, n7.1
  Add a more descriptive error message when using autoscale with hardware frames and sequence change
  Send hw filtered frames one by one

--------------------------------------------------
fftools/ffmpeg_mux_init.c
--------------------------------------------------
Affecting: n6.1
  Add ffmpeg option ni_interval_fps to display window averaged processing FPS
  Increase 'ms->max_muxing_queue_size' from 128 to 512

Affecting: n6.1, n7.1
  Set enc_ctx->flag to AV_CODEC_FLAG_MP4_MOV for mp4 or mov output extension to handle sequence change correctly

--------------------------------------------------
ffmpeg_ni_quad.c    fftools/ffmpeg_ni_quad.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Top-level functions for Netint Quadra hardware frames

--------------------------------------------------
ffmpeg_opt.c        fftools/ffmpeg_opt.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add ffmpeg option ni_interval_fps to display window averaged processing FPS
  Add ffmpeg option force_nidec to force select NI HW decoder

Affecting: n4.3.1
  Add 'ni_quadra' as a hw accelerator
  Backport FFmpeg command line arg 'autoscale' from n4.4
  SCTE-35 packet decode

Affecting: n4.3.1, n5.1.2
  Use r_frame_rate for demuxer FPS if avg_frame_rate unavailable
  Increase 'ost->max_muxing_queue_size' from 128 to 512
  Set enc_ctx->flag to AV_CODEC_FLAG_MP4_MOV for mp4 or mov output extension to handle sequence change correctly

--------------------------------------------------
ffmpeg_sched.h        fftools/ffmpeg_sched.h
--------------------------------------------------
Affecting: n7.1
  Set default frame queue size to 1 to avoid resource unavailable

--------------------------------------------------
ffmpeg_sched.c        fftools/ffmpeg_sched.c
--------------------------------------------------
Affecting: n7.1
  SCTE-35 packet decode and force IDR

--------------------------------------------------
Makefile            fftools/Makefile
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add ffmpeg_ni_quad.o to obj dependencies

Affecting: n6.1, n7.1
  Add libavformat/ni_scte35.o to obj dependencies

--------------------------------------------------
libavcodec/allcodecs.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Register Netint Quadra decoders and encoders
  Register Netint Logan decoders and encoders after Quadra

Affecting: n7.1, n4.3.1
  Register Netint SCTE-35 dummy decoder

--------------------------------------------------
libavcodec/avcodec.h
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add AV_CODEC_FLAG_MP4_MOV
Affecting: n5.1.2, n6.1, n7.1
  Always #include 'version.h' to support backwards compatibility
  Always #include 'codec_desc.h' to support NI code build

----------------------------------------------
libavcodec/bitstream_filters.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add support for HEVC tile parallelism codec
  Add support for AV1 tile parallelism codec

--------------------------------------------------
libavcodec/bsf/extract_extradata.c
--------------------------------------------------
Affecting: n7.1
  Add AV1_OBU_FRAME_HEADER to the OBU types being extacted

--------------------------------------------------
libavcodec/codec_desc.c
--------------------------------------------------
Affecting: n4.3.1
  Add AV_CODEC_ID_SCTE_104

--------------------------------------------------
libavcodec/codec_id.h
--------------------------------------------------
Affecting: n4.3.1
  Add AV_CODEC_ID_SCTE_104

--------------------------------------------------
libavcodec/codec_par.c
--------------------------------------------------
Affecting: n6.1, n7.1
  only update codec framerate when par->framerate valid

--------------------------------------------------
libavcodec/decode.c
--------------------------------------------------
Affecting: n6.1
  Do not drop decoded frame with AV_FRAME_FLAG_DISCARD

--------------------------------------------------
libavcodec/extract_extradata_bsf.c
--------------------------------------------------
Affecting: n4.3.1, n5.1.2, n6.1
  Add AV1_OBU_FRAME_HEADER to the OBU types being extacted

--------------------------------------------------
libavcodec/h264_mp4toannexb_bsf.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Pass AV_PKT_DATA_NEW_EXTRADATA to AVCodecParameters->extradata

--------------------------------------------------
libavcodec/h264_parser.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Initialize custom_sei_passthru variable in parser

--------------------------------------------------
libavcodec/h264.c       libavcodec/h264dec.c
libavcodec/h264.h       libavcodec/h264dec.h
libavcodec/h264_sei.c
libavcodec/h264_sei.h
libavcodec/h264_slice.c
libavcodec/hevc.c       libavcodec/hevcdec.c
libavcodec/hevc.h       libavcodec/hevcdec.h
libavcodec/hevc_sei.c
libavcodec/hevc_sei.h
--------------------------------------------------
Affecting: all versions of FFmpeg
  Allow for Netint custom SEI passthrough with H264 and H265 software decoders with command line option 'custom_sei_passthru'

--------------------------------------------------
libavcodec/hevc_mp4toannexb_bsf.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Do not prepend headers to IRAP frame packets if VPS/PPS is already part of frame packet
  Pass AV_PKT_DATA_NEW_EXTRADATA to AVCodecParameters->extradata

--------------------------------------------------
libavcodec/hevc_parser.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Initialize custom_sei_passthru variable in parser

Affecting: n4.3.1, n5.1.2, n6.1
  Backport support for parsing 4 byte NALU start code from official FFmpeg commit 0f824d792d

--------------------------------------------------
libavcodec/hevc/hevcdec.c
libavcodec/hevc/hevcdec.h
libavcodec/hevc/parser.c
libavcodec/hevc/sei.c
libavcodec/hevc/sei.h
--------------------------------------------------
Affecting: n7.1
  Allow for Netint custom SEI passthrough with H264 and H265 software decoders with command line option 'custom_sei_passthru'

--------------------------------------------------
libavcodec/libx265.c
--------------------------------------------------
Affecting: n7.1
  Updated wrapper guards to unbreak libx265 build based on FFmpeg_n7.1.1 commit 63f5c00

--------------------------------------------------
libavcodec/Makefile
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add compile switches for Netint Quadra decoders and encoders
  Add compile switches for Netint Logan decoders and encoders
  Add compile switches for Netint codecs HEVC tile parallelism support
  Remove nicodec from makefile to decouple encoder from from the decoder in libavcodec

Affecting: all versions of FFmpeg
  Add compile switches for Netint codecs AV1 tile parallelism support

Affecting: n7.1, n4.3.1
  Register Netint SCTE-35 dummy decoder

--------------------------------------------------
libavcodec/nicodec.h
--------------------------------------------------
Affecting: all versions of FFmpeg
  Common libavcodec interfacing functions for Netint Quadra decoders
  Move functions to nidec.h to decouple encoder from from the decoder in libavcodec

--------------------------------------------------
libavcodec/nicodec_logan.c
libavcodec/nicodec_logan.h
--------------------------------------------------
Affecting: all versions of FFmpeg
  Common libavcodec interfacing functions for Netint Logan decoders

--------------------------------------------------
libavcodec/nidec.c
libavcodec/nidec.h
--------------------------------------------------
Affecting: all versions of FFmpeg
  Common libxcoder interfacing functions for Netint Quadra decoders

--------------------------------------------------
libavcodec/nidec_logan.c
libavcodec/nidec_logan.h
--------------------------------------------------
Affecting: all versions of FFmpeg
  Common libxcoder interfacing functions for Netint Logan decoders

--------------------------------------------------
libavcodec/nidec_h264.c
libavcodec/nidec_hevc.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Codec description and configurations for individual Netint Quadra decoders

--------------------------------------------------
libavcodec/nidec_h264_logan.c
libavcodec/nidec_hevc_logan.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Codec description and configurations for individual Netint Logan decoders

--------------------------------------------------
libavcodec/nidec_jpeg.c
libavcodec/nidec_vp9.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Codec description and configurations for individual Netint Quadra decoders

--------------------------------------------------
libavcodec/nienc_h264.c
libavcodec/nienc_h265.c   libavcodec/nienc_hevc.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Codec description and configurations for individual Netint Quadra encoders

--------------------------------------------------
libavcodec/nienc_h264_logan.c
libavcodec/nienc_hevc_logan.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Codec description and configurations for individual Netint Logan encoders

--------------------------------------------------
libavcodec/nienc_av1.c
libavcodec/nienc_jpeg.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Codec description and configurations for individual Netint Quadra encoders

--------------------------------------------------
libavcodec/nienc.c
libavcodec/nienc.h
--------------------------------------------------
Affecting: all versions of FFmpeg
  Common libavcodec to libxcoder interfacing functions for Netint Quadra encoders

--------------------------------------------------
libavcodec/nienc_logan.c
libavcodec/nienc_logan.h
--------------------------------------------------
Affecting: all versions of FFmpeg
  Common libavcodec to libxcoder interfacing functions for Netint Logan encoders

--------------------------------------------------
libavcodec/ni_av1_extradata.c
libavcodec/ni_av1_extradata.h
--------------------------------------------------
Affecting: all versions of FFmpeg
  Functions for extracting tile rows and columns from extradata of AV1 bitstream

--------------------------------------------------
libavcodec/ni_av1_frame_split_bsf.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  AV1 bitstream filter to re-encode headers to split tiles into individual streams

--------------------------------------------------
libavcodec/ni_av1_rawtotile_bsf.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  AV1 bitstream filter to re-encode slice headers with tile flags

--------------------------------------------------
libavcodec/ni_av1_rbsp.c
libavcodec/ni_av1_rbsp.h
--------------------------------------------------
Affecting: all versions of FFmpeg
  AV1 bitstream RBSP parser and writer

--------------------------------------------------
libavcodec/ni_av1_syntax_template.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  AV1 bitstream syntax reference and checker

--------------------------------------------------
libavcodec/ni_av1_tile_repack_bsf.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  AV1 bitstream filter to pack AV1 tiles into one packet containing one frame

--------------------------------------------------
libavcodec/ni_dummy_dec_scte35.c
--------------------------------------------------
Affecting: n7.1
  SCTE-35 Netint dummy decoder to accommodate transcode scheduler API

Affecting: n4.3.1
  SCTE-35 Netint dummy decoder to accommodate re-worked SCTE-35 decode

--------------------------------------------------
libavcodec/ni_hevc_extradata.c
libavcodec/ni_hevc_extradata.h
--------------------------------------------------
Affecting: all versions of FFmpeg
  Functions for extracting tile rows and columns from extradata of HEVC bitstream

--------------------------------------------------
libavcodec/ni_hevc_frame_split_bsf.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  HEVC bitstream filter to re-encode slice headers to remove tile flags

--------------------------------------------------
libavcodec/ni_hevc_rawtotile_bsf.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  HEVC bitstream filter to re-encode slice headers with tile flags

--------------------------------------------------
libavcodec/ni_hevc_rbsp.c
libavcodec/ni_hevc_rbsp.h
--------------------------------------------------
Affecting: all versions of FFmpeg
  HEVC bitstream RBSP parser and writer

--------------------------------------------------
libavcodec/ni_hevc_tile_repack_bsf.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  HEVC bitstream filter to pack HEVC tiles into one packet containing one frame

--------------------------------------------------
libavcodec/packet.h
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add AV_PKT_DATA_SLICE_ADDR to AVPacketSideDataType
  Add AV_PKT_DATA_PKT_INFO to AVPacketSideDataType
  Add AV_PKT_DATA_PPU_CONFIG to AVPacketSideDataType and AVNIPpuConfig struct
  Add new param "ppu_reconfig_mode" in AVNIPpuConfig to enable reconfig ppu

--------------------------------------------------
libavdevice/decklink_common.cpp
libavdevice/decklink_common.h
libavdevice/decklink_common_c.h
libavdevice/decklink_dec.cpp
libavdevice/decklink_dec_c.c
--------------------------------------------------
Affecting: n4.3.1
  Add libklvanc and libklscte35 for SCTE-104 support

--------------------------------------------------
libavcodec/x86/mathops.c
--------------------------------------------------
Affecting: n4.3.1, n5.1.2
  Backport fix to compile with new versions of GNU binutils from official FFmpeg commit effadce6c7

--------------------------------------------------
libavfilter/allfilters.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add 'ni_quadra_bg' as a filter for AI background replacement using Netint Quadra hardware acceleration
  Add 'ni_quadra_bgr' as a filter for AI background removal using Netint Quadra hardware acceleration
  Add 'ni_quadra_crop' as a filter for cropping frames using Netint Quadra hardware acceleration
  Add 'ni_quadra_flip' as a filter for flipping frames using Netint Quadra hardware acceleration
  Add 'ni_quadra_drawbox' as a filter for drawing frames using Netint Quadra hardware acceleration
  Add 'ni_quadra_drawtext' as a filter for drawing text on top of Netint Quadra hardware frames using libfreetype library
  Add 'ni_quadra_hwupload' as a filter for upload of hardware frames to Netint Quadra devices
  Add 'ni_quadra_overlay' as a filter for overlaying frames using Netint Quadra hardware acceleration
  Add 'ni_quadra_pad' as a filter for padding frames using Netint Quadra hardware acceleration
  Add 'ni_quadra_rotate' as a filter for rotating frames in multiples of 90 degrees using Netint Quadra hardware acceleration
  Add 'ni_quadra_scale' as a filter for scaling frames using Netint Quadra hardware acceleration
  Add 'ni_quadra_split' as a filter for duplicating hardware frames to multiple destinations on Netint Quadra devices
  Add 'ni_quadra_delogo' filter for logo removal in selected area using Netint Quadra hardware acceleration
  Add 'ni_quadra_merge' as a filter for merging two hardware input frames, one for Y and the other for UV
  Add 'ni_quadra_ai_pre' as a filter to run user selected AI network binary on video using Netint Quadra hardware acceleration
  Add 'ni_quadra_hvsplus' as a filter to enhance video at the pre-processing stage before encoding, thereby improving VMAF
  Add 'ni_quadra_roi' as a filter for AI Region-of-Interest detection using Netint Quadra hardware acceleration
  Add 'ni_logan_hwupload' as a filter for upload of hardware frames to Netint Logan devices
  Add 'ni_quadra_yuv420to444' as a filter to combine two yuv420 frames generated by yuv444to420 into a yuv444 frame
  Add 'ni_quadra_yuv444to420' as a filter to split a yuv444 frame into two yuv420 frames for encoding by Netint encoders
  Add 'ni_quadra_p2pxfer' as a filter to do a p2p transfer between quadra devices
  Add 'ni_quadra_scale2ref' as a filter for scaling frames using Netint Quadra hardware acceleration
  Make sure 'ni_logan_hwupload' is added after all quadra filters are added
  Add 'ni_quadra_xstack' as a filter to combine many frames onto a grid using Netint Quadra hardware acceleration
  Add 'ni_quadra_sdl' as a filter to display frames to monitor via Simple Directmedia Layer

--------------------------------------------------
libavfilter/buffersrc.c
--------------------------------------------------
Affecting: n7.1
  Fix lack of update to color_range flag when converting from YUVJ to YUV

--------------------------------------------------
libavfilter/Makefile
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add vf_bg_ni.o to obj dependencies
  Add vf_bgr_ni.o to obj dependencies
  Add vf_crop_ni.o to obj dependencies
  Add vf_drawbox_ni.o to obj dependencies
  Add vf_drawtext_ni.o to obj dependencies
  Add vf_hwupload_ni_quadra.o to obj dependencies
  Add vf_overlay_ni.o to obj dependencies
  Add vf_pad_ni.o to obj dependencies
  Add vf_rotate_ni.o to obj dependencies
  Add vf_scale_ni.o to obj dependencies
  Add vf_split_ni.o to obj dependencies
  Add vf_delogo_ni.o to obj dependencies
  Add vf_merge_ni.o to obj dependencies
  Add vf_ai_pre_ni.o to obj dependencies
  Add vf_flip_ni.o to obj dependencies
  Add vf_hvsplus_ni.o to obj dependencies
  Add vf_roi_ni.o to obj dependencies
  Add vf_hwupload_ni_logan.o to obj dependencies
  Add vf_yuv444to420_ni.o to obj dependencies
  Add vf_yuv420to444_ni.o to obj dependencies
  Add vf_p2pxfer_ni.o to obj dependecies
  Add vf_scale2ref_ni.o to obj dependencies
  Add vf_stack_ni.o to obj dependencies
  Add vf_sdl_ni.o to obj dependencies

--------------------------------------------------
libavfilter/nifilter.c
libavfilter/nifilter.h
--------------------------------------------------
Affecting: all versions of FFmpeg
  Common libavfilter to libxcoder interfacing functions for Netint Quadra filters

--------------------------------------------------
libavfilter/vf_ai_pre_ni.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add 'ni_quadra_ai_pre' as a filter to run user selected AI network binary on video using Netint Quadra hardware acceleration

--------------------------------------------------
libavfilter/vf_bg_ni.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add 'ni_quadra_bg' as a filter for AI background replacement using Netint Quadra hardware acceleration

--------------------------------------------------
libavfilter/vf_bgr_ni.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add 'ni_quadra_bgr' as a filter for AI background removal using Netint Quadra hardware acceleration
  Prevent FFmpeg's default software crop filter from operating on hardware frames

--------------------------------------------------
libavfilter/vf_crop_ni.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add 'ni_quadra_crop' as a filter for cropping frames using Netint Quadra hardware acceleration

--------------------------------------------------
libavfilter/vf_drawbox_ni.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add 'ni_quadra_drawbox' as a filter for drawing frames using Netint Quadra hardware acceleration

--------------------------------------------------
libavfilter/vf_drawtext.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Fix a memory leak when using filter through API

--------------------------------------------------
libavfilter/vf_drawtext_ni.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add 'ni_quadra_drawtext' as a filter for drawing text on top of Netint Quadra hardware frames using libfreetype library

--------------------------------------------------
libavfilter/vf_hvsplus_ni.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add 'ni_quadra_hvsplus' as a filter for enhancing VQ by AI engine performing the pre-processing of source YUV image

--------------------------------------------------
libavfilter/vf_hwupload.c
--------------------------------------------------
Affecting: n6.1, n7.1
  Modify hwupload filter to backpressure inlink frames when quadra device buffer is unavailable
Affecting: n6.1, n7.1
  Remove reference to upcoming deprecated AVFilterContext->ready field

--------------------------------------------------
libavfilter/vf_hwupload_ni_logan.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Filter for upload of hardware frames to Netint Logan devices

--------------------------------------------------
libavfilter/vf_hwupload_ni_quadra.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Filter for upload of hardware frames to Netint Quadra devices

--------------------------------------------------
libavfilter/vf_overlay_ni.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add 'ni_quadra_overlay' as a filter for overlaying frames using Netint Quadra hardware acceleration

--------------------------------------------------
libavfilter/vf_pad_ni.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add 'ni_quadra_pad' as a filter for padding frames using Netint Quadra hardware acceleration

--------------------------------------------------
libavfilter/vf_roi_ni.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add 'ni_quadra_roi' as a filter for AI Region-of-Interest detection using Netint Quadra hardware acceleration

--------------------------------------------------
libavfilter/vf_rotate_ni.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add 'ni_quadra_rotate' as a filter for rotating frames in multiples of 90 degrees using Netint Quadra hardware acceleration

--------------------------------------------------
libavfilter/vf_scale_ni.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add 'ni_quadra_scale' as a filter for scaling frames using Netint Quadra hardware acceleration

--------------------------------------------------
libavfilter/vf_sdl_ni.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add 'ni_quadra_sdl' as a filter to display frames to monitor via Simple Directmedia Layer

--------------------------------------------------
libavfilter/vf_split_ni.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add 'ni_quadra_split' as a filter for duplicating hardware frames to multiple destinations on Netint Quadra devices

--------------------------------------------------
libavfilter/vf_stack_ni.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add 'ni_quadra_xstack' as a filter to combine many frames onto a grid using Netint Quadra hardware acceleration

--------------------------------------------------
libavfilter/vf_yuv420to444_ni.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add 'ni_quadra_yuv444to420' as a filter to split a yuv444 frame into two yuv420 frames for encoding by Netint encoders

--------------------------------------------------
libavfilter/vf_yuv444to420_ni.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add 'ni_quadra_yuv420to444' as a filter to combine two yuv420 frames generated by yuv444to420 into a yuv444 frame

--------------------------------------------------
libavfilter/vf_delogo_ni.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add 'ni_quadra_delogo' as a filter for logo removal in selected area using Netint Quadra hardware acceleration
  Add 'ni_quadra_merge' as a filter for merging two hardware input frames, one for Y and the other for UV

--------------------------------------------------
libavfilter/vf_flip_ni.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add 'ni_quadra_flip' as a filter for flipping frames using Netint Quadra hardware acceleration

--------------------------------------------------
libavformat/Makefile
--------------------------------------------------
Affecting: n6.1, n7.1, n4.3.1
  Include cue in/out information in the output HLS manifest file

--------------------------------------------------
libavformat/dashenc.c
--------------------------------------------------
Affecting: n6.1, n7.1, n4.3.1
  Include cue in/out information in the output HLS manifest file

--------------------------------------------------
libavformat/demux.c
--------------------------------------------------
Affecting: n6.1, n7.1
  Temporary fix for input stream frame rate adjustment

--------------------------------------------------
libavformat/flvdec.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add code for handling HEVC during FLV demuxing

--------------------------------------------------
libavformat/flvenc.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add code for handling HEVC during FLV muxing
  Attempt to write FLV headers only when they are available
  Write FrameType and CodecID of FLV EOS with respect to whether video codec is AVC or HEVC

--------------------------------------------------
libavformat/flv.h
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add codec ID for HEVC in FLV

--------------------------------------------------
libavformat/hlsenc.c
--------------------------------------------------
Affecting: n6.1, n7.1, n4.3.1
  Include cue in/out information in the output HLS manifest file

--------------------------------------------------
libavformat/hlsplaylist.c
--------------------------------------------------
Affecting: n6.1, n7.1, n4.3.1
  Include cue in/out information in the output HLS manifest file

--------------------------------------------------
libavformat/hlsplaylist.h
--------------------------------------------------
Affecting: n6.1, n7.1, n4.3.1
  Include cue in/out information in the output HLS manifest file

--------------------------------------------------
libavformat/ivfenc.c
--------------------------------------------------
Affecting: n4.3.1, n5.1.2
  Fix incorrect number of frames in ivf start header

--------------------------------------------------
libavformat/mov.c
--------------------------------------------------
Affecting: n4.3.1
  Backport parsing for AV1 in mov from n4.4

--------------------------------------------------
libavformat/movenc.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Write format context extradata before h264 or hevc video packets
  Set hvc1 as default instead of hev1 for hevc mp4

--------------------------------------------------
libavformat/mpegtsenc.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add support for maximum bitrate descriptor for Program Map Table, in program info and each ES (a/v) info section
  Add support for setting unique value to maximum audio bitrate descriptor for up to 10 different audio tracks
  Add support for muxing SCTE35 into mpegts

Affecting: n4.3.1
  Backport fix for use of '-muxrate' with '-copyts' and '-mpegts_copyts' from official FFmpeg commits a085418303 and 6f36eb0da7

Affecting: n6.1, n7.1
  Add scte35_copyts option to mpegts muxer to prevent SCTE-35 pts from being altered

--------------------------------------------------
libavformat/mpegts.h
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add support for muxing SCTE35 into mpegts

--------------------------------------------------
libavformat/mux.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add support for muxing SCTE35 into mpegts

--------------------------------------------------
libavformat/ni_scte35.c
libavformat/ni_scte35.h
--------------------------------------------------
Affecting: n6.1, n7.1, n4.3.1
  Include cue in/out information in the output HLS manifest file

--------------------------------------------------
libavformat/rawdec.c
--------------------------------------------------
Affecting: n6.1, n7.1
  Temp. fix to retrieve input stream frame rate correctly
  Assign default framerate to avctx in case stream has no timing info
  
--------------------------------------------------
libavformat/utils.c
--------------------------------------------------
Affecting: n4.3.1
  Change PTS from 33bit integer to 62bit integer to delay PTS discontinuity at rollover except for mpeg and mpegts format

--------------------------------------------------
libavformat/options.c
--------------------------------------------------
Affecting: n5.1.2, n6.1, n7.1
  Change PTS from 33bit integer to 62bit integer to delay PTS discontinuity at rollover except for mpeg and mpegts format

--------------------------------------------------
libavutil/buffer.c
libavutil/buffer.h
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add Quadra specific frame buffer type for lower latency and memory bandwidth

--------------------------------------------------
libavutil/frame.c
libavutil/frame.h
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add Quadra specific frame buffer type for lower latency and memory bandwidth
  Add av_frame side data for netint specific enumeration naming of user_data_unregistered
  Add av_frame side data for custom_sei
  Add av_frame side data for live bitrate reconfiguration
  Add av_frame side data for long term reference frame support
  Add av_frame side data for min/max qp value reconfiguration
  Add av_frame side data for general reconfiguration
  Add av_frame side data for frame error ratio
  Add variables for classification and probability to AVRegionOfInterest struct

Affecting: n4.3.1
    Backport UDU SEI AVFrame sidedata type from official FFmpeg commit bc8ab084fb

--------------------------------------------------
libavutil/hwcontext.c
libavutil/hwcontext.h
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add support for Netint Quadra hardware frame context
  Add support for Netint Logan hardware frame context

--------------------------------------------------
libavutil/hwcontext_internal.h
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add support for Netint Quadra hardware frame context

--------------------------------------------------
libavutil/hwcontext_ni_logan.c
libavutil/hwcontext_ni_logan.h
--------------------------------------------------
Affecting: all versions of FFmpeg
  Netint Logan hardware frame context source files

--------------------------------------------------
libavutil/hwcontext_ni_quad.c
libavutil/hwcontext_ni_quad.h
--------------------------------------------------
Affecting: all versions of FFmpeg
  Netint Quadra hardware frame context source files

--------------------------------------------------
libavutil/Makefile
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add source files for Netint Quadra hardware frame context to be compiled
  Add source files for Netint Logan hardware frame context to be compiled

--------------------------------------------------
libavutil/mem.c
libavutil/mem.h
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add Quadra specific frame buffer type for lower latency and memory bandwidth

--------------------------------------------------
libavutil/pixdesc.c
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add AV_PIX_FMT_NI_QUAD for Netint Quadra hardware frame
  Add AV_PIX_FMT_BGRP for planar RGB pixel format used in AI filters
  Add AV_PIX_FMT_NI_LOGAN for Netint Logan hardware frame
  Add AV_PIX_FMT_NI_QUAD_8_TILE_4X4 for Netint Quadra hardware frame of 8bit 4x4 tile
  Add AV_PIX_FMT_NI_QUAD_10_TILE_4X4 for Netint Quadra hardware frame of 10bit 4x4 tile

--------------------------------------------------
libavutil/pixfmt.h
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add AV_PIX_FMT_NI_QUAD for Netint Quadra hardware frame
  Add AV_PIX_FMT_BGRP for planar RGB pixel format used in AI filters
  Add AV_PIX_FMT_NI_LOGAN for Netint Logan hardware frame
  Add AV_PIX_FMT_NI_QUAD_8_TILE_4X4 for Netint Quadra hardware frame of 8bit 4x4 tile
  Add AV_PIX_FMT_NI_QUAD_10_TILE_4X4 for Netint Quadra hardware frame of 10bit 4x4 tile

--------------------------------------------------
tests/ref/fate/imgutils
--------------------------------------------------
Affecting: n5.1.2, n6.1, n7.1
  Add bgrp reference information for FATE tests

--------------------------------------------------
doc/t2h.pm
--------------------------------------------------
Affecting: n4.3.1, n5.1.2
  Backport Texinfo 7.0 and above support from FFmpeg-n6.1

--------------------------------------------------
mingw_package_ffmpeg.sh
--------------------------------------------------
Affecting: all versions of FFmpeg
  Script to generate an offline installation package from MSYS2 compiled FFmpeg

--------------------------------------------------
run_ffmpeg_logan.sh
--------------------------------------------------
Affecting: all versions of FFmpeg
  Basic test/demonstration script for using Netint Logan transcoder through FFmpeg

--------------------------------------------------
run_ffmpeg_quadra.sh
--------------------------------------------------
Affecting: all versions of FFmpeg
  Basic test/demonstration script for using Netint Quadra transcoder through FFmpeg

--------------------------------------------------
tests/ref/fate/sws-pixdesc-query
--------------------------------------------------
Affecting: all versions of FFmpeg
  Add bgrp pixfmt to sws-pixdesc-query FATE test

--------------------------------------------------
VERSION
--------------------------------------------------
Affecting: all versions of FFmpeg
  Define FFmpeg version tag so that it reliably shows up in the FFmpeg banner instead of info from 'git describe'
