================================================================================
Release version: 5.5.0_RC2
Date: 2025-12-08            SW version: 5.5.0_RC2           FW version: 5.5.0_RC2
Compat FW API ver: 6sQ      Libxcoder API ver: 2.82
--------------------------------------------------------------------------------
[TOOLS] quadra_quick_installer.sh v3.14:
        Allow user to hit enter to work like yes
[TOOLS] Quadra_quick_installer.sh v3.13:
        Update nvme versioning support for Ubuntu 24
[LIBXCODER] Fix an issue with Fractional fps handling
[GSTREAMER] Fix set inaccurate output pixel format issue for niquadrainterleave
[LIBXCODER] Add param intraCompensateMode
            Changing FW API version to 6sQ
[LIBAVFILTER] Fix issue with uninitization sequence in bg,bgr,roi and hvsplus filters
[LIBXCODER] Fixed the inconsistent AV1 IVF timestamp issue by sending the dropped frames STATS throguh metadata
            Changing FW API version to 6sP
[TOOLS] quadra_auto_upgrade.sh v4.32:
        Update method of reading persistent config from admin-passthru to get-log
[LIBXCODER] Add param adaptiveCrfMode
            Changing FW API version to 6sN
[LIBXCODER] Support to get core reset log by ni_rsrc_mon
[LIBXCODER] Remove the shell command in ni_quadra_card_identify_precheck() use ioctl instead
[LIBXCODER] Add flavour in ni_rsrc_mon
            Changing FW API version to 6sN
[TOOLS] Reorganize all the p2p demos
[LIBAVFILTER] Add support for ni_quadra_pad with 10-bit semiplanar format enabled on FFmpeg 4.3.1
[FFMPEG/LIBXCODER/OTHER] Reduce the latency by open device readonly
                         - Add new function ni_device_open2 to replace ni_device_open
                         - Changing Libxcoder API version to 2.82
                         - Update NETINT_FFMPEG_CHANGE_LIST.txt
[TOOLS] Support VS2026 in Windows 10/11
[LIBXCODER] Support CU info read and parsing logic
            1. Read CU info from device when getCuInfo option is set
            2. Add CU info parsing logic
            Changing FW API version to 6sM
[LIBAVCODEC/LIBAVFILTER] Correct VUI of rgba in filters and encoder
                         RGBA frames encoded by the PPU of the encoder now have a
                         BT.709 color matrix and full color range specified in the
                         VUI/OBU. RGBA frames output by the filters are marked
                         with a gbr color matrix and full color range only if
                         ffmpeg is greater than or equal to 7.0
[TOOLS] quadra_auto_upgrade.sh v4.31:
        Update logs to write more data to upgrade log, add sudo check for nvme versioning
[GSTREAMER] Fix the issue where the encoder's dtsOffset is set to inappropriate value when gop_preset_index is not initialized in GStreamer
[LIBAVFILTER/LIBXCODER] Improve 2D downscaling quality
                        1. support lanczos with parameter filterblit 5;
                        2. change range of B,C parameters range from [0,1] to [0,5] for scaler and merge filters;
                        Changing FW API version to 6sL
[TOOLS] Add support for Android 15 for Android_quick_installer
[TOOLS] quadra_quick_installer.sh v3.12:
        Add ni-gstreamer-plugins to be compiled outside of the base folder
[LIBAVFILTER] Optimize bgr postprocess
[APIEXAMPLES] Api example code quality changes
[LIBXCODER] Added quadraprobe to ni_rsrc_mon call
            Changing Libxcoder API version to 2.81
[LIBXCODER] Avoid unnecessary calls to ni_rsrc_get_device_pool in ni_device_session_open
[LIBXCODER] Add param adaptiveLamdaMode
[GSTREAMER] Optimize log output to distinguish different decoder/encoder/filter instances
[LIBXCODER] Add null pointer check in macro ni_aligned_free() and ni_memfree() for safety
[APIEXAMPLES] Remove unintended encoder preset settings from libavcodec API examples
[LIBXCODER] Add jpeg encoder support in ni_xcoder_encode.c
[FFMPEG/LIBAVCODEC/LIBAVFILTER] Remove code for ffmpeg < 4.3.1
                                Remove all code that conditionally compiles for ffmpeg < 4.3.1.
                                The lowest version supported is 4.3.1, so any code that compiles
                                when ffmpeg < 4.3.1 can be safely removed.
[FFMPEG/LIBAVCODEC/LIBAVFILTER/OTHER] Fix codestyle errors on Ubuntu 25
[LIBXCODER] Support T1M2 power measurement
[OTHER] Fix p2p compilation for Linux kernel >= 6.18
        Fix compilation error in P2P kernel driver when
        Linux kernel is 6.18 or later. Remove deprecated
        function calls to ida_simple_*
[TOOLS] quadra_auto_upgrade.sh v4.30:
        Update to upgrade script regarding sudo permissions
[LIBAVCODEC/LIBXCODER] Added the encoding parameter, preset.
                       It works both in the formats of "xcoder-params preset=xxxx" and "-preset xxxx"
                       Changing Libxcoder API version to 2.80
[APIEXAMPLES/FFMPEG/LIBAVCODEC/OTHER] Support P frame in AV1 tile transcoding and add decoding demo with SW decoder
[FFMPEG/LIBAVCODEC/OTHER] Standardize colour information propagation
                          Make the colour information propagate between the input file,
                          ffmpeg command line switches, and xcoder-params consistent
                          among the different versions of ffmpeg.
[GSTREAMER] Fix the issue of test failures when dynamically removing niquadrastack input
[GSTREAMER] Fix Compiler warnings when building on Ubuntu 24
[GSTREAMER] Swap the license for our GStreamer plugins from MIT to LGPL2.0
[GSTREAMER] Fix an issue where an invalid H264 input triggers segmentation fault
[GSTREAMER] Add demo for gstreamer decodebin and seek usage
[LIBXCODER] Fix an issue with ni_rsrc_mon -d with json1 and json2 will print invalid format
[APIEXAMPLES] Fix an issue with ni_transcode_ai_test bitrate control parameters
[APIEXAMPLES] Control the processing speed between producers(uploader) and consumers(encoder) to avoid membin exhaust
[GSTREAMER] Fix an issue where Gstreamer randomly cannot find quadra elements
[GSTREAMER] Add gstreamer compile support to windows 11
[GSTREAMER] Fix g_memdup2/g_memdup compatibility issue under different version Glib
[GSTREAMER/TOOLS] Standardize gstreamer code style to eliminate inconsistencies
================================================================================
Release version: 5.4.0_RC2
Date: 2025-09-15            SW version: 5.4.0_RC2           FW version: 5.4.0_RC1
Compat FW API ver: 6sJ      Libxcoder API ver: 2.79
--------------------------------------------------------------------------------
[GSTREAMER] Fix windows11 compile gstreamer-1.26.2
[GSTREAMER] Fix g_memdup2/g_memdup compatibility issue under different version Glib
[TOOLS] quadra_quick_installer.sh v3.12:
        Add ni-gstreamer-plugins to be compiled outside of the base folder
[TOOLS] Add support for Android 15 for Android_quick_installer
[TOOLS] Fixed README.md for p2p_read_gbm_elg
[LIBXCODER] Add Intuitive PCIe throughput display to resource monitor
[LIBXCODER/OTHER] Add support for android 15
[LIBXCODER] Support setting CPU affinity based on the numa node of quadra cards on linux.
            1. add new parameter enableCpuAffinity(disable by default) on decoder and encoder;
            2. add new API ni_rsrc_get_numa_node();
[TOOLS] Add test framework support for Android 15
[LIBXCODER] Fix and issue with Ni_rsrc_mon fw log dump
[LIBAVCODEC] Fix ni_quadra function names
             Fix function names as per FFmpeg's coding style. Functions
             out of file scope should begin with prefix "ff_". Functions
             not needed outside of file scope should be declared static.
[LIBXCODER] Fix libxcoder's README.md doc URL
            Update the NETINT Docs Portal hyperlink URL to
            https://docs.netint.com/vpu/quadra/documentation/libxcoder
[APIEXAMPLES] NI transcoding example change container index order
[GSTREAMER] Use "black" as default value for the param "fill" in niquadrastack
[FFMPEG/LIBAVCODEC/TOOLS] Remove nicodec.c
                          De-couple encoders from decoders in libavcodec. Move
                          code from nicodec.c to nidec.c. Remove nicodec.c. Move
                          some structures out of nicodec.h into nidec.h and nienc.h.
[APIEXAMPLES] Update APIEXAMPLES parameters and documention
[LIBXCODER] Support single layer encode data matching with base layer & Support manual level setting per operating point
            1. Allow single layer encoded output data to match exactly with base layer of 2/3/4-layers bitstreams when user sets spatialLayers=1 with spatialLayerBitrate parameter
            2. Support manually setting AV1 seq_level_idx for each operating point separately via av1OpLevel parameter
            3. Extend max manual AV1 level setting to 6.3 for high resolution (E.g. 4K resolution) multi spatial layer encode
            Change FW API version to 6sJ
[FFMPEG/OTHER] Support auto-rotate for Netint Quadra hardware frames using ni_quadra_rotate filter
[GSTREAMER] Fix compile warnings for Quadra gstreamer plugins
[LIBAVFILTER] Set ni filters ready flag priority same as ffmpeg filters 
[LIBXCODER] Add libxcoder demo for hwupload -> scale to multiple resolutions -> hwdownload
[GSTREAMER] Set 1.26.2 as the version for gstreamer 1.26
[GSTREAMER] Fix negotiation failure causes segmentation fault
[LIBAVCODEC] Fix and update FFCodec fields
             Declare FFCodec const. Add missing 'wrapper name' field. Add new
             CODEC_PIXFMTS macro. Update AV_CODEC_CAP_HARDWARE capabilities
             bitmask in encoders. Add color_ranges field in 7.1 and higher.
             Add missing AV_PIX_FMT_NI_QUAD support in h265 decoder.
[LIBAVCODEC] Fix fast sequence change check conditions to match with FW 
[FFMPEG/LIBAVCODEC/OTHER] Fixed duplicate SPS/PPS added at sequence change for flv
[FFMPEG/LIBAVFILTER/LIBXCODER] Ai_pre filter support use ai align feature
                               	- Changing FW API version to 6sI
                               	- Changing Libxcoder API version to 2.79 
[GSTREAMER] Fix flush operation in gstreamer decoder plugin
[LIBXCODER] Added the support of 1:N transcoding with scaler for the ni_xcoder_transcode_filter xcoder example
[FFMPEG/LIBAVFILTER/OTHER] Remove libavfilter format string warnings
                           Remove format string warnings from libavfilter. Remove
                           references to AVFilterContext->ready which will be
                           deprecated in a future FFmpeg.
[LIBAVCODEC] Fix ticks_per_frame
             Changes to accommodate deprecation of avc->ticks_per_frame
             field in upcoming FFmpeg 8.0 release.
[TOOLS] quadra_auto_upgrade.sh v4.29:
        Allow temp upgrade support to 4.A.N (N = 0-Z)
[FFMPEG/GSTREAMER] Fix encode failure caused by incorrect bit depth and false sequence change for RGBA/ARGB/ABGR/BGRA format
[LIBXCODER] Fix VS2019 build warnings
[TOOLS] Quadra_auto_upgrade.sh v4.28:
        Allow temp upgrade from 5.2.X to 5.3.0+
[LIBAVCODEC] Support upcoming change to key frames
             Remove usage of deprecated 'key_frame' field which is
             to be replaced with a bit in the 'flags' field when
             the libavutil major revision is >= 60.
[GSTREAMER] Do not send EOS in gst_niquadradec_drain
[GSTREAMER] Try to recycle HWframe after download when resolution is less than min supported resolution in Quadra encoder
[FFMPEG/LIBAVCODEC/LIBXCODER] Support timecode passthru in SEI
[FFMPEG/LIBAVFILTER] Update Overlay filter call av_hwframe_ctx_init after setting sw format
[LIBXCODER] Add option to disable AV1 timing info in sequence header
            1. Add disableAv1TimingInfo parameter to remove AV1 timing info from sequence header, to avoid AV1 decoder model conformance issues
            Change FW API version to 6sH
[LIBXCODER] Fix invalid bitrate issue when encoder sequence change
[GSTREAMER] Split netint gstreamer plugins to one independent meson project
[TOOLS] quadra_quick_installer.sh v3.11:
        Add support for CentOS 9
[LIBXCODER] Reject roi when cropWidth x cropHeight are set
[APIEXAMPLES] Update the minimum required CMake version to 3.5, since version 2.8 is outdated and no longer compatible with newer versions
[LIBXCODER] Support multi-namespace persistence in firmware
[LIBXCODER] Fix the issues when customizeQpMapFile is specified but customizeQpLevel=0
[LIBXCODER] Add Ni_rsrc_list print for DDR4 info with -o full and -o json
[TOOLS] quadra_quick_installer.sh v3.10:
        Add plugin path for gstreamer to environment variable setup
[LIBAVCODEC] Free frame buffer in exception paths in ff_xcoder_dec_receive
[LIBXCODER/TOOLS] Fix VS compile errors and warnings
                  - Removed `_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;` from VS config to print all warnings
                  - Fixed type cast warnings
                  - Fixed signed-unsigned comparision warnings
                  - Fixed insecure function warnings on VS by introducing netint interfaces
[LIBXCODER] Xcoder code improvement
            - Added --deprecation-as-error in build.sh to not build anything deprecated
[TOOLS] Support quadra+logan VS2019 build
[LIBAVFILTER] Resolve avfreep bug in ni_quadra_bg filter
[TOOLS] Add ni_quadra_scale2ref support to windows VS2019
[LIBAVFILTER/LIBXCODER] Fix src and dst buffer size mismatch for ai_pre filter
                        Changing Libxcoder API version to 2.78
[LIBAVCODEC/OTHER] Add fixes for FFmpeg FATE fixes
                   Remove 'const' declaration from AVCodec to prevent segmentation
                   violation in 'fate-avcodec-options' test. Move BMD_SDKL126
                   directory out of FFmpeg 4.3.1 directory to pass 'fate-source' test.
[LIBXCODER] Fix secure compile for libxcoder by adding Safe string copy (QDFW-5176)
[GSTREAMER] Add Quadra's gstreamer example support
[LIBAVFILTER] Add buffer backpressure support for ni_quadra_scale in FFmpeg-n7.1 
[GSTREAMER] Add ppu decoder support for quadra in gstreamer
[GSTREAMER] When encoder outputs packet, immediately release input HW buffer. 
[LIBAVCODEC] Explicit check of gen_global_headers during header generation
[GSTREAMER] Fix an issue on Gstreamer 1.26 where PPU crop command causes segfault
[TOOLS] Define encoder index for transcoding split commands when running manufacturing stress test
[OTHER] Fix loop issue when eos for Quadra OMX demo and fix having an extra configure data issue in OMX encoder
[TOOLS] Pass the `egl_context_attribs` from main thread to draw_thread
[LIBXCODER] Support customizeQpLevel > 1 for apply customize roi map after cutree
            Change FW API version to 6sG
[APIEXAMPLES/LIBXCODER] NI_transcode_filter demo support reconfig ppu with mode 1
[LIBXCODER] Fixed a dec packet loss problem for some customer clip caused by fix
[APIEXAMPLES/FFMPEG/LIBAVCODEC/OTHER] Changes to gen_global_headers default
                                          1. gen_global_headers default set to auto
                                          2. Remove NETINT change in FFmpeg initialization routine to check for file extensions and setting gen_global_headers on
                                          3. Update apiexamples to check for AVFMT_GLOBALHEADER flag
                                          4. Update NETINT_FFMPEG_CHANGE_LIST.txt
[APIEXAMPLES] Support ni_xstack_application to run for longer and fix segfault when exiting
[FFMPEG/LIBAVCODEC/LIBXCODER/OTHER] Support reconfig decoder PPU for each frame
                                    	- Changing FW API version to 6sF
                                    	- Changing Libxcoder API version to 2.77
                                    	- Update NETINT_FFMPEG_CHANGE_LIST.txt
[LIBAVCODEC] Change a printf() to av_log() in nienc.c
[LIBAVCODEC] When recycling NI HW AVFrames, use source device_handle
[LIBAVCODEC] Trim oversized SEI messages. Fixes a invalid pointer access. 
[FFMPEG/LIBAVCODEC/LIBAVFILTER] Replace generic malloc() and free() with av_malloc() and av_free() or ni_memfree()
                                ni_custom_sei_set_t in nienc.c will still use regular malloc() as it is free'd in libxcoder ni_encoder_session_close()
[GSTREAMER] Niquadrastack supports dynamically adding or removing inputs, as well as dynamically changing layout. 
[FFMPEG] Fix an issue where hvsplus filter is not recognized in FFmpeg-n6.1
[FFMPEG/OTHER] Port scte35_copyts option of mpegts muxer into FFmpeg-n7.1
[GSTREAMER] Release resources such as memory when abnormal exit occurs
[TOOLS] quadra_quick_installer.sh v3.9:
        Clean up installed libav libraries before building gstreamer
[OTHER] Update NETINT_FFMPEG_CHANGE_LIST.txt for v5.3.0 
[LIBXCODER] Set encoder pkt_num to 1 after reading first header packet in libxcoder demo 
[LIBXCODER] Reject getPsnrMode or getReconstructedMode when use jpeg_ni_quadra_enc
[GSTREAMER] Add gstreamer 1.26 support
[LIBXCODER] Change JPEG encoder minimum resolution to 144x128 
[OTHER] Fix anbox build issue for cmake 3.26
[LIBAVCODEC/LIBAVFILTER/LIBXCODER] Extra membin request to decoder and scaler based on DEFAULT_FRAME_THREAD_QUEUE_SIZE 
[LIBXCODER] Add FW API version check for multicoreJointMode with AV1 spatial layer separated rate control encode
            1. For backward compatibility, reject multicoreJointMode with AV1 spatial layer separated rate control when FW API version < 6sD
[APIEXAMPLES] Fix handling of EOS for image input in ni_xstack libav demo
[LIBAVFILTER] Update ni_quadra_scale to achieve the function of ni_quadra_scale2ref in FFmpeg-n7.1+
[OTHER] Netint P2P driver fix for kernel >= 6.13.0
        Fix compilation issue with the Netint P2P kernel driver
        if Linux kernel >= 6.13.0 (Ubuntu 25.04 and later).
[GSTREAMER] Fix an issue where scale + xstack output has corrupted packets
[LIBXCODER] Fix invalid output issue when "-o -json" param is enabled in ni_rsrc_mon
[TOOLS] Quadra_auto_upgrade.sh v4.27: 
        Add FW upgrade capabilities table
[GSTREAMER] Add gstreamer-1.24.9 support
[OTHER] Avoid change bitrate for Quadra encoder in Android 14
[TOOLS] quadra_quick_installer.sh v3.8:
        Add support for Debian and Rocky OS
[LIBXCODER] Fix compilation error under Windows
            Do not compile find_pci_device() function under
            Windows, MacOS, OpenHarmony, or Android. Should
            only be compiled under Linux (excluding Android).
[LIBXCODER] Support multicoreJointMode for AV1 spatial layer separated rate control encode to improve performance
            1. Allow multicoreJointMode in AV1 spatial layer saparated rate control mode (spatialLayerBitrate)
            Change FW API version to 6sD
[LIBXCODER] Add disk size check on windows
[LIBXCODER] Fix pts and dts process after the encoding process was changed
[LIBXCODER] Support to get 1pass cost by statisticOutputLevel=6
            Changing FW API version to 6sC
================================================================================
Release version: 5.3.1_RC3
Date: 2025-07-04            SW version: 5.3.1_RC3           FW version: 5.3.1_RC1
Compat FW API ver: 6sE      Libxcoder API ver: 2.77
--------------------------------------------------------------------------------
[LIBAVCODEC/LIBAVFILTER/LIBXCODER] In API, allow application to request extra frame buffers between sessions
                                   This feature is necessary to use Netint codecs/filters distributed by official FFmpeg project
                                   Changing libxcoder API version to 2.77
                                   Changing FW API version to 6sE
================================================================================
Release version: 5.3.0_RC2
Date: 2025-06-07            SW version: 5.3.0_RC2           FW version: 5.3.0_RC2
Compat FW API ver: 6sB      Libxcoder API ver: 2.76
--------------------------------------------------------------------------------
[TOOLS] Quadra_auto_upgrade.sh v4.27:
        Add upgrade capabilities check for temp upgrade flags
[TOOLS] LGXTA-10455: quadra_quick_installer.sh v3.8:
        Add support for Debian and Rocky OS
[OTHER] Avoid change bitrate for Quadra encoder in Android14 (QDFWSH-2241)
[GSTREAMER] Add gstreamer-1.24.9 support
[LIBXCODER] Add disk size check on windows
[LIBXCODER] Fix pts and dts process after the encoding process was changed in
[LIBXCODER] Fix compilation error under Windows
            Do not compile find_pci_device() function under
            Windows, MacOS, OpenHarmony, or Android. Should
            only be compiled under Linux (excluding Android)
[TOOLS] Add vs2019 support for compiling scte_35
[FFMPEG/LIBAVCODEC/OTHER] Add libklvanc and libklscte35 to FFmpeg-n4.3.1 for SCTE-104 support, pid remapping; reworked FFmpeg-n4.3.1 SCTE-35 decode support
[GSTREAMER] Optimize encoder performance using buffer pools
            Use buffer pool to optimize the encoder output buffer allocation
[LIBXCODER] Create NI_RETRY* lock files in ni_rsrc_init instead of ni_rsrc_lock_and_open 
[APIEXAMPLES] Support dynamically re-configuring for scale filter in ni_transcode_filter demo:
              1 : Support sequence-change cases
              2 : dynamically re-configuring as needed 
[APIEXAMPLES] Fix race condition when manipulating frame list in libav API examples 
[OTHER] P2P pull demo updates
        Add nv12 support. Add H264 and AV1 support. Fix colour
        error and add VUI color fields. Add parameters for
        libxcoder log levels and encoder xcoder-params. Add
        yuv420p 1080p support. Change to not allocate from
        P2P memory bin. 
[FFMPEG] Fix incorrect rollover bits for mpeg and mpegts 
[APIEXAMPLES] Fix filter parameter parsing in ni_xstack_application 
[GSTREAMER] Add scte-35 support for hls in gstreamer 
[GSTREAMER] Optimize niquadrainterleave to be compatible with non-aligned pts of each spatial layer 
[LIBXCODER] Improve log messaging when SEI message is dropped by FW 
[FFMPEG] Make quadra entries in libavcodec/Makefile alphabetical
[LIBXCODER] Temporal layers VPS and SPS syntax incorrect
            1. Block HDR conformance (hrdEnable=1) with mulitple temporal layers (temporalLayersEnable=1), which is currently not supported
[LIBAVCODEC/LIBAVFILTER] Deprecate and gate AVFrame->pkt_pos and pkt_size
[LIBAVCODEC] When encountering invalid user params during gen_global_headers, use same error messages as main encoder session open 
[FFMPEG/LIBAVCODEC/OTHER] Add '-udu_sei' param to netint h264/h265 encoders
[FFMPEG/LIBAVFILTER] Set ready flags again in NI filters after each activation to consume multiple buffered frames in input queue 
[FFMPEG/OTHER] Automatically enable gen_global_headers in video stream when output format is a segment 
[LIBXCODER] Update code quality: Uninitialised variables and popen/pclose 
[APIEXAMPLES] Added initialization in libavcodec api examples
[LIBXCODER] Add patch to extract PCI BDF from the block device
            name. Instead of calling external programs udevadm(8),
            perl(1), and tail(1), parse the sysfs path to extract it.
[LIBXCODER] Update libxcoder demos to read sequence header packet before sending first frame to encoder
[LIBXCODER] Add pts and dts process to libxcoder demos
[LIBAVCODEC] Add AV_PKT_DATA_QUALITY_STATS side data support for quadra encoder
[LIBXCODER] Support -d in ni_rsrc_mon when using -o json1 and -o json2
[LIBAVFILTER] Refactor is_p2p, keep_alive_timeout, auto_skip, and buffer_limit options to nifilter.h
              Replace frame_sync options from vf_overlay_ni.c and vf_yuv420to444_ni.c with FRAMESYNC_DEFINE_CLASS
              Remove definition of EOFAction for FFmpeg-n3.1.1
              Remove empty comments
              Standardize format of filter option tables
              Move option definition from top to bottom for flip and rotate filters
              Use AVFILTER_DEFINE_CLASS in all filters
              Remove filter specific naming from static functions/definitions
              Rename drawboxr_format to drawbox_format
[APIEXAMPLES/LIBAVFILTER/TOOLS] Add yolov8 roi detect demo with ni_quadra_drawbox
                                Add process_command() callback to ni_quadra_drawbox filter
                                to allow dynamic changing of boxes. Removed init_dict()
                                callback from ni_quadra_drawbox which does nothing. Add
                                ni_yolov8_detect demo. Rename ni_roi_detect_move demos
                                to ni_roi_detect
[LIBAVCODEC/LIBXCODER] Fix an issue where enableUserDataSeiPassthru decoder parameter was not taking effect properly
[TOOLS] LGXTA-10455: quadra_quick_installer.sh v3.7:
        Replace yasm with nasm installation
[TOOLS] LGXTA-10406 - quadra_auto_upgrade.sh v4.26:
        Use init_rsrc to reinit cards rather than direct call to ni_rsrc_mon
[FFMPEG/LIBAVFILTER/OTHER] Make vf_ni_quadra_split use activate() paradigm to remove an un-upstreamable workaround in ffmpeg_filter.c from
[FFMPEG/LIBAVCODEC] Update code formatting for netint changes in libavutil
[LIBXCODER] Support separated rate control for AV1 spatial layers
            Changing FW API version to 6sB
[LIBAVFILTER] Update NI filters code quality changes for upstreaming FFmpeg
[LIBAVCODEC/LIBXCODER] Add Encoder parameter checks:
                        1. horOffset, verOffset odd values rejected
                        2. AV1 tuneBframeVisual medium rejected
                        3. Jpeg encoder checks added
                        4. Encoder error message updated
[LIBAVFILTER] Add ni_quadra_drawbox improvements
              Remove rgba restriction of inputs frames because the firmware
              can now support yuv420p and rgba frames. Add support for
              in-place drawing of the drawboxes.
[TOOLS] Quadra_auto_upgrade.sh v4.25:
        - change temp upgrade rules to dis-allow when:
          - bin FW <5.2.0 and not 4.8.R
          - card FW <5.2.0 and not 4.8.R
          - card FW is between 5.2.0 and 5.3.0 but cardFW != binFW
[LIBAVFILTER] Fix an issue with ni_quadra_merge filter and filterblit=2
[APIEXAMPLES/LIBXCODER] Code format clean up for libxcoder and api_examples
[FFMPEG] FATE add supported codec type DATA
[GSTREAMER] Refactor crop, pad plugins based on transform class
            1. Make crop, pad plugins to correct the output aspect ratio
            2. Make crop, pad plugins to support dynamic output caps negotiation
            3. Refactor crop, scale and pad plugins to use same base class
[LIBAVFILTER/LIBXCODER] Added 720p resolution NB file support for hvsplus filter
                        Changing FW API version to 6sA
[APIEXAMPLES] Add rotate drawbox stack demo base on libxcoder
              - Support hwdownload filter output yuv
[LIBXCODER] Added decoder low delay codec limitations check 
[GSTREAMER] Fix gstreamer inconsistent golden data with odd resolution for scale
[GSTREAMER] Fix an issue when using gstreamer ai_pre_process with an invalid value
[LIBAVFILTER/LIBXCODER] Add 2 improved bicubic algorithm filterblit=3 and filterblit=4 for scaler and merge filters.
                        Changing FW API version to 6s9
[LIBXCODER] Reject crf + longTermRef comination in libxcoder
[LIBXCODER] Update shared memory usage
            1. ni_rsrc_update Delete operation returns error on device name format
            2. init_rsrc also calls ni_rsrc refresh (QDFW-5048) 
[OTHER] Modify Android.bp of libavc and libhevc to fix OpenMAX build issue under Android14
[LIBAVFILTER] Fix ni_quadra_p2pxfer filter card number issue
[FFMPEG/LIBAVCODEC/LIBAVFILTER] Code formatting and removal of dead code
                                - Remove MULTI_THREAD from nienc.c
                                - Remove commented out code in nienc.c, nidec.c, nicodec.c
                                - Remove `#if (QUADRA) ... #else` as these codec files are always for QUADRA
                                - Remove `#ifdef SEQUENCE_CHANGE_INJECT...` from nienc.c as it is unused
                                - Remove code for handling partial packet write from nidec.c as it is unused
                                - Convert tabs to space in all FFmpeg files
                                - Trim trailing spaces in all FFmpeg files
                                - Restore original file permissions for FFmpeg files
                                - Refactor libavcodec decoder/encoder params for netint codecs
                                - Make indents tabsize 4 and braces k&r in netint codecs and hwcontext
                                - Rename XCoderH264DecContext to XCoderDecContext, and XCoderH265EncContext to XCodecEncContext
                                - Fix mixed declarations and code in netint codecs and hwcontext
                                - In vf_ai_pre_ni.c and vf_hvsplus_ni.c change size 2 and size 3 indents to size 4
                                Remove code comment about 10bit input support for quadra jpeg encoder
[TOOLS] Update T1M enc-only setting to use VID freq of 666
[FFMPEG] Added the support of up to 40 mpegts maximum audio bitrates in PMT
[GSTREAMER] Fix memory leak issue in gstniquadrascale.c 
[LIBAVFILTER] Remove 2D filter RGBA warning
[TOOLS] Add flavor G to persistent config shell script 
[APIEXAMPLES] Optimize writing rawdata in libxcoder demo ni_scale_test.c 
[LIBXCODER] Return correct error if enableHVSPlus or enableAIEnhance is called for JPEG 
[LIBAVFILTER] Fix the padding issue for unsupported resolutions for 8 bit and 10 bit when using the ni_quadra_hvsplus 
[FFMPEG/OTHER] Enable gen_global_headers for mp4 to fix quadra encode with movflags+empty_mov issue 
[LIBXCODER] Disable zeroCopymode when using AiEnhanceMode and the width is not matching the AI model. 
[TOOLS] quadra_auto_upgrade.sh v4.24:
        When running with --reinit_after_upgrade, target the node rather than the device
[APIEXAMPLES] Fix ni_xtack_application dynamic layout reconfig feature
[FFMPEG/LIBAVCODEC/LIBAVFILTER/LIBXCODER/OTHER/TOOLS] Remove FFmpeg n3.1.1, n3.4.2, n4.1.3, n4.2.1, n4.3, n4.4, n4.4.2, n5.0 
[FFMPEG/LIBAVFILTER/OTHER] Add ni_quadra_scale2ref in ni_quadra_scale filter to support scale params main_* 
[APIEXAMPLES] Support hwupload + encode path in ni_encode_video API example
[LIBXCODER] Add ni_rsrc_mon extra support for T1M persistent config E
[OTHER] Bytebuffer mode is preferred over surface mode for omx decoder 
[FFMPEG/LIBXCODER] Add stack protection and strip support for OpenHarmony and optimized Makefile for libxcoder
                   1. Add stack protection and strip support for OpenHarmony
                   2. Compile options and link options are defined and used separately, and compile options are used in compile phase,
                      link options are used in link phase
[APIEXAMPLES] Fix ni_live_stack filter input pad mismatch when order is been disrupted
[FFMPEG] For FFmpeg-n6.1, fix repeated init of SCTE-35 decoder thread
[FFMPEG/LIBAVCODEC/OTHER] For FFmpeg-n7.1, add SCTE-35 support
[TOOLS] Add README on AI_benchmarking_examples to describe AI model usage and related examples
[LIBXCODER] Fix false rejection of yuv444p input in ni_xcoder_encode
[LIBXCODER] Improve capped CRF I-frame bits allocation and overall subjective quality
            1. Expand crfMaxIframeEnable supported options to mode 1 (MEDIUM), mode 2 (HIGH), mode 5 (MEDIUM + AMORTIZE), mode 6 (HIGH + AMORTIZE)
            Changing FW API version to 6s8
[FFMPEG/OTHER] Add GenHdrs=1 if segment format is MKV/HLS/ASF/FLV
[LIBXCODER] Support decoding power for T1M
[APIEXAMPLES] Add addtional error checking in ni_2D_engine_p2p_test.c
              1.check AVERROR(EAGAIN) after avcodec_send_packet in ni_2D_engine_p2p_test.c
              2.rename label name "end" to "the_end" to avoid to use the same of variable "end"
[LIBXCODER] Reject pixel formats not supported by encoder in libxcoder and demos
[GSTREAMER] Fix an issue where divisible-by and format options where not working for niquadrascale on Gstreamer
[LIBXCODER] Fix ivf header write in av1 ladder output for libxcoder demos
[OTHER] Update NETINT_FFMPEG_CHANGE_LIST.txt for v5.2.0
[LIBXCODER/TOOLS] Support libxcoder demo can be compliled on VS2019
[GSTREAMER] Support output caps negotiation for niquadrascale
[LIBXCODER] Fix exit condition check and some typos in libxcoder demos
[LIBXCODER] Improve capped CRF quality by optimized cu tree algorithm
            1. Add totalCuTreeDepth parameter to configure cu tree depth in optimized algorithm, which includes past and future frames (default 0)
            2. Add adaptiveCuTree parameter to enable / disable dynamically adjust cu tree depth when vbv buffer is full (default 0)
            3. Add preIntraHandling parameter to enable / disable dynamically adjust cu tree depth before I-frame (default 1)
            4. Add baseLayerOnly parameter to enable / disable cu tree only including past frames in base layer (default 0)
            5. Add pastFrameMaxIntraRatio parameter to configure the max past frames intra blocks percentage allowed to be included in cu tree (default 20)
            6. Add linkFrameMaxIntraRatio parameter to configure the max link frames (link past to future frames) intra blocks percentage allowed to be included in cu tree (default 40)
            Changing FW API version to 6s7
[LIBAVCODEC] Added null pointer check during original handler restore
[LIBXCODER] Support iovec for IO concurrency
            1. Introduce and wrap linux aio API to support asynchronous IO.
            2. Re-use SET_ALLOC_FRAME command to get iovecs before write command.
            3. Each iovec has its own relative LBA based on this write session base LBA
               and valid size to be written.
            4. There must be one LBA gap in the LBA range during consecutive iovecs.
               this is to allow concurrent IO to be sent and avoid multiple write IO
               to be merged altogether in the OS level.
            5. This commit uses the asynchronous IO to write AI session input data.
            Changing FW API version to 6s6
[TOOLS] Fix libxcoder cleanup for android
[LIBXCODER] Fix libxcoder build issue under Android because ni_device_test.c was removed
[LIBXCODER] Fix multiple ivf header write issue when encoder demo sequence change occurs
[LIBXCODER] Ni_rsrc_mon help message updated
[GSTREAMER/LIBAVFILTER] Make ai_pre_process filter's failure information more user-friendly
================================================================================
Release version: 5.2.0_RC3
Date: 2025-03-13            SW version: 5.2.0_RC3           FW version: 5.2.0_RC1
Compat FW API ver: 6s5      Libxcoder API ver: 2.76
--------------------------------------------------------------------------------
[GSTREAMER] Fix option divisible-by and format not work issue for niquadrascale on gstreamer
[OTHER] Update NETINT_FFMPEG_CHANGE_LIST.txt for v5.2.0
[LIBXCODER] Fix exit condition check and some typos in libxcoder demos
[GSTREAMER] Support output caps negotiation for niquadrascale
[LIBXCODER] Fix libxcoder build issue under Android because ni_device_test.c was removed
[LIBXCODER] Fix multiple ivf header write issue when encoder demo sequence change
[LIBXCODER] Prevent vbv buffer overflow in 2-pass encode when HRD conformance is enabled
            1. Add vbvBufferReencode parameter. When enabled, encoder will prevent vbv buffer overflow by re-encoding frame(s) when necessary. Also note that vbvBufferRencode cannot be enabled in AV1 multicoreJointMode
            2. Print warning message to inform user HRD conformance cannot be guaranteed in multicoreJointMode when user sets hrdEnable and multicoreJointMode
            Changing FW API version to 6s5
[LIBXCODER] Add ni_quadra_card_identify_precheck() to precheck if a device can be read by ni_device_capability_query
[FFMPEG/OTHER] FFmpeg-n7.1 remove skip format conversion check for ni overlay/xstack
[LIBXCODER] Fix xcoder demo when the decoder write buffer is full in multi thread transcoding
[LIBXCODER/TOOLS] Refactor libxcoder API demo (ni_device_test)
[LIBXCODER] Added SW support for decoding power
                1.Added decoding logic from current to power based on PCB config in SN
                2.Added new current parameter in structure ni_device_extra_info_t
                3.Existing API ni_query_extra_info has decoding logic added which queries for SN information
                Changing FW API version to 6s4
[GSTREAMER] Fix an issue where the closed captions are incorrect on gstreamer
[GSTREAMER] Fix an issue where the default device select index is not -1
[LIBAVCODEC] Fix Windows11 compile failure for FFmpeg
[APIEXAMPLES] Add feature to print decoder frame error ratio in ni_transcode_filter demo
[OTHER] Add sw decode support for omx decoder plugin
[GSTREAMER] Add the property force-extra to ensure SPS/PPS is inserted before each I-frame in gstreamer
[LIBAVFILTER] Fix an issue where the drawtext filter did not copy AVHWFramesContext to dst frame
[GSTREAMER] Fix FQP issue when RoiDemoMode is enabled
[LIBXCODER] Support querying the input format of encoding streams and session id in ni_rsrc_mon -d
            Changing FW API version to 6s3
[LIBAVFILTER/LIBXCODER] Support config bicubic params for ni_quadra_scale and ni_quadra_merge
                        Changing FW API version to 6s2
                        Changing Libxcoder API version to 2.76
[TOOLS] quadra_auto_upgrade.sh v4.23:
        Add upgrade script support for new FL version format
[LIBXCODER] Fix check condition for identifying close caption SEI
[LIBXCODER] Fix xcoder demo encoder hang issue when using crf and zeroCopyMode=0
[LIBAVCODEC/LIBXCODER] Support reconstructed frames luma channel for hevc with getPsnrMode=4
[FFMPEG/LIBAVCODEC/LIBXCODER/OTHER] Add AV_FRAME_DATA_NETINT_ERROR_RATIO to save decoded frame error ratio info
                                    Changing Libxcoder API version to 2.75
[LIBAVCODEC] Add a fix to prevent device handler replacement in HW frame from causing usage errors
[GSTREAMER] Add niquadrainterleave filter and support av1 spatial layer in gstreamer:
            1.add niquadrainterleave filter, which is used to combine multiple input streams into a single output stream by interleaving their frames in order of pts
            2.add av1 spatial layer enable support for niquadraav1enc
            3.optimized niquadraoverlay and niquadrastack : the allocation size of outbuffer was changed to 0 bytes due to hwframe mode
[LIBXCODER] Fix p2p demo application
            Fixed calculation in number of bytes read. Also removed
            useless calls to lock and unlock the P2P frame.
[FFMPEG/OTHER] Automatically enable gen_global_headers for MKV/HLS/ASF/FLV containers only for video
[LIBXCODER] Fix an issue where the shared memory lock directory /dev/shm/ not exist under Android9
[APIEXAMPLES/FFMPEG/LIBAVCODEC/LIBAVFILTER/OTHER] Remove usage of AVHWFrameContext->opaque and AVHWFrameContext->internal
                                                  change ni_clone_hwframe_ctx() to ni_cpy_hwframe_ctx()
                                                  add logan/quadra to libavutil/Makefile headers to skip for compile checks
                                                  move hwcontext_ni_quad private struct to public as a necessary measure to allow ni_cpy_hwframe_ctx() to be defined wholly in header
                                                  update P2P api example for new location of AVNIFramesContext
[TOOLS] quadra_auto_upgrade.sh v4.22:
        Use --opcode over -o to avoid issue with newer nvme versioning, update min release to 5.2.0 for temp upgrade
[LIBXCODER] Support new decoder ecPolicy best_effort_out_dc
            best_effort_out_dc is similar to best_effort but it will drop frames
            whose error ratio is larger than threshold
            Changing FW API version to 6s1
[LIBXCODER/OTHER] Incorporate Netflix's kernel driver enhancement
                  Add Netflix's changes to the NetInt kernel driver which
                  allow an upload context to support up to six dma-buf
                  file descriptors. Change p2p read test program to
                  test this enhancement.
[LIBXCODER] Fix xcoder demo not work with filter due to hwframe not be recycled
[LIBAVFILTER] Fix ai_pre memory leak with invalid hwdownload command
[TOOLS] quadra_auto_upgrade.sh v4.21:
        Only check function number in quadra_auto_upgrade.sh
[LIBXCODER] Fix a libxcoder crash when calling ni_close_event
[TOOLS] quadra_auto_upgrade.sh v4.20:
        Reject temp upgrade if change in persistent config is detected
[LIBXCODER] AV1 spatial layers EL to BL reference structure
            1. Add spatialLayersRefBaseLayer parameter to support Base Layer to Enhancement Layer reference structure
            Changing FW API version to 6s0
[TOOLS] quadra_auto_upgrade.sh v4.19:
        Add option to upgrade with new temp upgrade feature using -t,--temp
[TOOLS] quadra_auto_upgrade.sh v4.18:
        Add max upgrade version for binaries, prevent upgrade/downgrade of T1M to non-T1M FW binaries
[TOOLS] quadra_auto_upgrade.sh v4.17:
        Add --serial option to upgrade specific cards only via serial number (LGXTA-9934)
[GSTREAMER] Fix an issue where repeatedly releasing GstVideoCodecFrame was causing a memory leak
            1.fix the issue that calling gst_video_decoder_drop_frame() after failed to gst_video_decoder_finish_frame() causes GstVideoCodecFrame to be repeatedly release
            2.fix not process pending frames in order of first-in and first-out issue for encoder when sequence change or firmware buffer full
            3.fix memory leak issue
[FFMPEG/LIBAVCODEC/LIBXCODER/OTHER] Deprecate libxcoder option 'genHdrs', replace with libavcodec option '-gen_global_headers'
                                    '-gen_global_headers' also added for logan codecs, but 'genHdrs' not deprecated in logan
                                    Also refactor libavcodec encoder params
                                    Changing Libxcoder API version to 2.74
[FFMPEG] Remove copy of HDR characteristics as it is redundant
[FFMPEG/LIBXCODER] Add libxcoder API version check to FFmpeg*/configure
[FFMPEG] Fix inconsistency in run_ffmpeg_quadra.sh where FFmpeg version is read from $PATH/ffmpeg but commands are run from ./ffmpeg
[APIEXAMPLES/FFMPEG/LIBAVCODEC/OTHER] Remove old FIFO API wrappers, refactor nienc.c and apiexamples to use new FIFO API
[LIBXCODER] Added AVCC & HVCC support
            Changing Libxcoder API version to 2.73
            Changing FW API version to 6rz
[TOOLS] quadra_auto_upgrade.sh v4.16:
        Update FW download size to 4096, add option to reset VFs when PF is upgraded
[FFMPEG/LIBXCODER] Revise printouts during init_rsrc
                   Remove FW to Libxcoder minor version mismatch warning during HW frame session start
[LIBXCODER] Fix AV1 multiple spatial layers unnecessarily rejected in low delay mode and add intra period check
            1. Modify libxcoder to allow multiple spatial layers (spatialLayers > 1) encode when lowDelay is enabled, which was unnecessarily rejected before
            2. Modify libxcoder to reject multiple spatial layers (spatialLayers > 1) encode if intraPeriod is not divisible by number of spatial layers
[FFMPEG/OTHER] Remove unnecessary decoder error handling in FFmpeg-n6.1 and n7.1
[LIBXCODER] Update ni_rsrc_list print info
[LIBXCODER/TOOLS] Add libxcoder option to build systemd service
[LIBXCODER] Add API to support inserting timecode info into SEI 
            Changing Libxcoder API version to 2.72
            Changing FW API version to 6ry
[LIBAVCODEC] Fix an issue where the bitrate was unstable in CBR mode
[FFMPEG/LIBAVCODEC/OTHER] Move setting of maxExtraHwFrameCnt=0 from fftools/ffmpeg_dec.c to nidec.c in FFmpeg-n7.1
[LIBAVFILTER] Remove unecessary HW buffer aquire for merge filter to improve latency
[FFMPEG/LIBAVCODEC/LIBAVFILTER/OTHER] Remove Logan references in FFmpeg-n7.1
[GSTREAMER] Support SW frame for ni_quadra_ai_pre filter in gstreamer
[GSTREAMER] Fixed using gst_video_frame_map for hw-frame issue when input frame is less than min resolution
[LIBXCODER] Add SN, Fw version, temperature, power as default values to ni_rsrc_mon
[APIEXAMPLES/LIBXCODER] Fix coredump by call ni_check_hw_info in multi-thread
                        Changing Libxcoder API version to 2.71
[GSTREAMER] Fixed hw frame metadata issue and modified some processes of niquadradec and niquadraenc in gstreamer
[APIEXAMPLES/OTHER] Add test for ppu1 reconfig resolution on ni_transcode_filter demo
[LIBXCODER] Remove unused goppresetidx code and fix the memory overflow
[FFMPEG/LIBAVCODEC/LIBAVFILTER/LIBXCODER/OTHER] Support h264/h265 decoder ppu resolution reconfig when sequence change
                                                Changing Libxcoder API version to 2.70
                                                Changing FW API version to 6rx
[LIBXCODER] Fix an issue where decoder frame loss caues AV to no longer sync
[TOOLS] Add ni_quadra_ai_pre filter support to VS2019
[FFMPEG] Undo some unecessary changes of windows EOL made during porting of FFmpeg-n7.1 
[LIBXCODER] Fix an issue where a null pointer was called by the libxcoder api
[LIBAVFILTER/LIBXCODER] Fix an issue with ni_quadra_merge causing high FW load
[FFMPEG/LIBAVCODEC/LIBAVFILTER/OTHER] Remove support for FFmpeg-n7.0
[OTHER] Update NETINT_FFMPEG_CHANGE_LIST.txt for fifo.c/fifo.h changes
[OTHER] Fix to NETINT_FFMPEG_CHANGE_LIST.txt for FFmpeg versions affected...
[LIBAVCODEC/LIBXCODER] Support AV1 multiple spatial layers encode 
                       Changing FW API version to 6rw
                       Changing libxcoder API version to 2.69
[OTHER] Update NETINT_FFMPEG_CHANGE_LIST.txt for v5.1.0
[LIBAVFILTER] Fix issue with ni_quadra_bgr + ni_quadra_overlay
[APIEXAMPLES] Fix FFmpeg 7.0+ FIFO drain bug in libavcodec api examples
[FFMPEG/LIBAVCODEC/LIBAVFILTER] Fix misuse of opaque pointer for storing card number
[FFMPEG/LIBXCODER] Add openharmony support
[LIBXCODER] Set reduceDpbDelay by default for FFmpeg-n3.1.1
[LIBAVFILTER/LIBXCODER] Add backpressure support for ni_quadra_drawtext
[LIBXCODER] Support float value for overprovision percent 
            Changing FW API version to 6rv
[FFMPEG/OTHER] Remove previous netint fix from FFmpeg-n7.0+ as it is unnecessary
[LIBAVFILTER] Add backpressure support to ni_quadra_bg and ni_quadra_bgr filters
[LIBAVCODEC] Fix '--libaom' compile failed due to the lastest aom version have same name func
[FFMPEG/OTHER] Restore official FFmpeg patch 0f824d79
[LIBAVFILTER] Add ni_quadra_drawtext support for flexible setting of background area
[LIBXCODER] Add enc param enableCompensateQp
            Changing FW API version to 6ru
[FFMPEG/LIBXCODER] Update public README in Libxcoder/FFmpeg
[FFMPEG] Fix build ffmpeg failed with '--logan --quadra --static'
[OTHER] Optimize yuv420 to rgba conversion using assembly instead of c for android
[LIBAVCODEC/LIBXCODER] Transfer SPS/PPS of AVC in extradata to FW for quadra card
[GSTREAMER] Recycle input hw frame on encoder to avoid late recycle and fix memory leak.
[FFMPEG/OTHER] Add backpressure support for FFmpeg 6.1 ,7.0 and 7.1  hwupload filter
[LIBXCODER] Fix multi-threaded upload and encode path in libxcoder app
[LIBAVFILTER] Fixed hvsplus for some odd resolutions
[LIBXCODER] Fix an issue where deadlock occurs on filter buffer acquire
[TOOLS] Update README about cv2 demo
[APIEXAMPLES] Add live xstack demo
[LIBAVFILTER] Remove buffer acquire for ni_quadra_bgr filter
[FFMPEG/LIBAVCODEC/LIBAVFILTER/OTHER] Add FFmpeg-n7.1 Support
[GSTREAMER] Fix an issue where the encoder input buffer list is not recycled quickly enough
[APIEXAMPLES/TOOLS] Add scene classify demo
[FFMPEG/LIBAVCODEC/LIBAVFILTER/LIBXCODER] Buffer backpressure support for FFmpeg filters 
                                          Changing FW API version to 6rt
                                          Changing libxcoder API version to 2.67
[FFMPEG/LIBAVFILTER/LIBXCODER/OTHER] Added the support of hwframe for hvsplus filter
[GSTREAMER] Fix memeset error causing buffer overflow on gstniquadraenc.c
[LIBXCODER] Add a new API ni_device_session_restart() to restart the encoder after flushed
            Changing libxcoder API version to 2.67
[LIBAVCODEC] Fix an issue where pixel format in decoded frame is inconsistent when there is a switch in pixel format from input stream
================================================================================
Release version: 5.1.0_RC4
Date: 2024-11-26            SW version: 5.1.0_RC4           FW version: 5.1.0_RC4
Compat FW API ver: 6rt      Libxcoder API ver: 2.68
--------------------------------------------------------------------------------
[LIBAVFILTER] Remove backpressure for ni_quadra_drawtext filter
[LIBAVFILTER] Support flexible setting of background area for ni_quadra_drawtext
[LIBAVFILTER] Remove back-pressure for bgr filter
[OTHER] Update NETINT_FFMPEG_CHANGE_LIST.txt for v5.1.0
[FFMPEG/OTHER] Add backpressure support for FFmpeg 6.1 and FFmpeg 7.0 Native hw_upload filter
[FFMPEG/LIBAVCODEC/LIBAVFILTER/LIBXCODER] Buffer backpressure support for FFmpeg filters
                                          Changing FW API version to 6rt
                                          Changing libxcoder API version to 2.68
[GSTREAMER] Fix memset error when doing gstreamer encoding on some hosts
[LIBAVFILTER] Fix an issue with ni_quadra_drawtext filter did not copy AVHWFramesContext to dst frame
[LIBXCODER] Fix software logic error when receiving two consecutive header messages
[FFMPEG/LIBAVCODEC/LIBAVFILTER] Change some AV_ERROR_LOG messages to other log levels
[LIBXCODER] Fix an issue where the H264 HW decoder was delayed by 16 fps
            Changing FW API version to 6rs
[LIBAVFILTER/LIBXCODER/OTHER] Added the support of 10 bits hvsplus filter 
                              Changing FW API version to 6rr
[LIBXCODER] Smooth the curves of the output file for different crf decimals 
            Changing FW API version to 6rq
[FFMPEG/LIBAVCODEC/LIBAVFILTER/OTHER] Remove FFmpeg-n6.0
[APIEXAMPLES] Add an audio frame size filter in transcode api examples
[GSTREAMER] Fix a filter crash issue when memeset is done on the ni_session_data
[LIBAVFILTER/LIBXCODER] Fix ni_quadra_ai_pre sw mode causing a coredump
[FFMPEG] Fix check_hw_info function unable to get best card in FFmpeg-n3.1,1
[OTHER] Fix timeout issue with omx by changing the processing of OMX_CommandFlush to asynchronous
[LIBAVFILTER] Fix side data accumulation issue in drawtext filter
[LIBXCODER] Expand namespace number to 128
[APIEXAMPLES] Support json output for roi result
[LIBXCODER] Add the 'Invalid Picture Width/Height' error message for scaler for better error description
[FFMPEG/LIBAVFILTER/LIBXCODER] Added the change to support the hvsplus filter in FFmpeg 
                               Changing FW API version to 6rp
[LIBXCODER/TOOLS] Fix p2p read from discontiguous address and improve performance on 1080p resolution 
                  Changing FW API version to 6ro
[LIBXCODER] Update FW to prevent upgrade/downgrade of T1M to non-T1M FW binaries
            Changing FW API version to 6rn
[OTHER] Fix OpenMAX build issue under Android 14
[APIEXAMPLES] Update supported decoder and encoder ffmpeg version in libavcodec README
[APIEXAMPLES] Fix ni_transcode_filter failing to open output when muxer need sps pps early
[TOOLS] Add ppu decoder demo based on pybind11 (QDFWSH-1851)
[LIBXCODER] Add the ability to check firmware load via resource monitor api
[LIBXCODER] Change Error log to Warning for SEI message drop log since it is intended and to treat this as warning in testing
[TOOLS] Add a demo to show typical double buffering usage in p2p read
[LIBXCODER] Set minpacketdelay=1 as default for FFmpeg-n3.1.1 and add limit minpacketdelay=1 to run flush fifo on FFmpeg-n3.1.1 decoder
[LIBXCODER] Support pre-analysis before coding including scene switch detection and still frame detection
            Changing FW API version to 6rm
[LIBXCODER] For the psnr y value of HEVC, use the output of psnr obtained from FW rather than calculating it in the SW
[LIBXCODER] Add surviveStreamErr decoder parameter to tolerate fatal corruptions in input stream
            Changing FW API version to 6rl
[TOOLS] Quadra_quick_installer.sh v3.5:
        - Remove checks for gstreamer FFmpeg flag in quick installer
[LIBXCODER] Handle getPsnrMode causing segmentation fault when cropWidth and cropHeight are set
[LIBAVCODEC/LIBXCODER] Export psnr and ssim via libxcoder and FFmpeg packets and Fix h.265 10-bit psnr_y value showing an incorrect value 
                       Changing libxcoder API version to 2.66
[FFMPEG/OTHER] Add the option -scte35_copyts 1 to mpegts muxer to prevent SCTE-35 pts from being altered
[TOOLS] Add Android 14 to Android quick installer
[OTHER] Add new AMD P2P demos
        Add new P2P demos from AMD. Both a p2p read (pull) and
        p2p write (push) are provided. New demos will work
        with mesa and without AMD GPU Pro driver
[LIBXCODER] Fix Libxcoder app encoding test cases timing out
[APIEXAMPLES/TOOLS] Add licence plate detection and recognition demo
[APIEXAMPLES] Fix mutilthreaded watermark demo unable to get frames in a different card
[LIBAVFILTER] Fix file descriptor error with ni_quadra_roi filter on windows
[APIEXAMPLES/LIBAVCODEC/LIBXCODER] Support h.265 Motion Constrained mode and tile based encode multiview API example
                                   Changing FW API version to 6rk
                                   Changing libxcoder API version to 2.65
[LIBXCODER] Add new variable ui32FramesCorrupted to get number of frames corrupted from libxcoder on FFmpeg-n3.1.1
[OTHER] Add FPS statistics for omx decoder and adjust the level of some logs
[LIBAVFILTER] Add ni_quadra_ai_pre filter support for sw frame input
[LIBXCODER] Support variable level for encode block when using customize qp map
[LIBXCODER] Fix libxcoder build fail with -s -e
[OTHER] Add customized encoder parameters for Quadra omx encoder
[APIEXAMPLES/LIBAVFILTER] Support reconfig for ni_quadra_drawtext
[TOOLS] quadra_auto_upgrade.sh v4.15:
        Force a cold upgrade from 4.9.6 E flavor due to key change
[FFMPEG/OTHER] Fix an issue with hwupload crashing during UDP livestream by circular buffer overrun at 33-bit PTS wrap-around
[LIBXCODER] Change keep alive timeout message log level from ERROR to INFO
[LIBXCODER/TOOLS] Fix an issue where an interlaced input is not detected properly causing quadra to decode and fail
                  Changing FW API version to 6rj
[LIBXCODER] Support new ec policy limited_error and custom error_ratio_threshold
            Changing FW API version to 6ri
[TOOLS] Quadra_quick_installer.sh v3.4:
        - Add support for detecting rocky OS
        - Re-init after doing a FW upgrade
[FFMPEG/LIBXCODER/OTHER] Fix some build issues when building under Android 14
[LIBXCODER] Support customize ROI QP map
            Changing FW API version to 6rh
[LIBXCODER] Added fail condition for Encoder/Decoder name
[LIBXCODER] Update resource monitor when FW does not have AI core loaded
[LIBXCODER] Drop dts from dts queue for decoder dropped frames and adjust dts for first I frame
[GSTREAMER] Close file descriptor handle in ni_quadra_ai_pre to avoid fd leak
[LIBXCODER] Fix decoder issue that causes a splash screen when bitstream is HEVC tile feature case 
            Changing FW API version to 6rg
[FFMPEG/LIBAVCODEC/LIBAVFILTER/LIBXCODER] Change some error log to info 
[TOOLS] Add decoder/filter/encoder demo based on python-ffmpeg
[GSTREAMER] GST 1.24.4 - Fix JPEG SAR parsing error issue
[LIBXCODER] Fix the getpsnr issue when there is a resolution change without reopening the codec
[LIBXCODER] Add check for when shared memory is filled
[LIBXCODER] Skip printing NVME, TP and PCIE load in ni_rsrc_mon if FW does not support querying
[FFMPEG] Added variant stream mapping for scte-35 streams in HLS segmenter 
[LIBAVFILTER] Fix file descriptor leak in roi filter when using out=sw mode
[FFMPEG/LIBAVCODEC/LIBXCODER/OTHER] Add psnr info to AVPacket side data api
[TOOLS] quadra_auto_upgrade.sh v4.14:
        Add fix for wrong upgrade selected when using direct upgrade path to binary
================================================================================
Release version: 5.0.1_RC2
Date: 2024-09-19            SW version: 5.0.1_RC2           FW version: 5.0.1_RC1
Compat FW API ver: 6rf      Libxcoder API ver: 2.64
--------------------------------------------------------------------------------
[OTHER] Fix OpenMAX build issue under Android 14
[TOOLS] quadra_auto_upgrade.sh v4.15:
        Force a cold upgrade from 4.9.6 E flavor due to key change
[FFMPEG/LIBXCODER/OTHER] Fix some build issues when build under Android 14
================================================================================
Release version: 5.0.0_RC2
Date: 2024-08-28            SW version: 5.0.0_RC2           FW version: 5.0.0_RC1
Compat FW API ver: 6rf      Libxcoder API ver: 2.64
--------------------------------------------------------------------------------
[LIBAVFILTER] Fix file descriptor leak in ni_quadra_roi filter when input is SW frames
[OTHER] Update NETINT_FFMPEG_CHANGE_LIST.txt for v5.0.0
[TOOLS] quadra_auto_upgrade.sh v4.14:
        - Fix for incorrect upgrade type selected when user provides path to FW binary
[LIBAVFILTER] Fix FFmpeg-n3.1.1 ni_quadra_scale fix compability when taking scaled input from PPU
[APIEXAMPLES] Fix some libavcodec apiexamples not setting default card idx for when user does not specify card idx
[TOOLS] quadra_auto_upgrade.sh v4.13:
        - Add support for using '--persistent_config D' to select default persistent config
[GSTREAMER] Fix file descriptor leak in all quadra gstreamer filters
[LIBXCODER/TOOLS] In libxcoder app and libxcoder apiexamples, remove an unnecessary memset which used a lot of CPU
[LIBXCODER] Fix error in encoder latency calculation for first frame if it is split into header frame and visual frame
[LIBXCODER] Fix libxcoder pkg-config manifest not listing c math library as a linked dependency
[APIEXAMPLES] Add AI apiexample ni_defog
[FFMPEG] Fix FFmpeg-n6.1 and n7.0 compile failure when quadra is not enabled for compile
[TOOLS] quadra_auto_upgrade.sh v4.12:
        - Save and restore tty settings after script ends to work around erratic EOL/indents (Ubuntu 22 bug #1992025)
[LIBXCODER] Fix inability to decode HDR10+ streams when metadata item application_version/application_mode is set to 1
[FFMPEG] In FFmpeg-n7.0 update hevc_mp4toannexb.c to support sequence change like other Netint FFmpeg versions
         - Do not prepend headers to to IRAP frame packets if VPS/PPS is already part of frame packet
[LIBAVCODEC] Fix FFmpeg-n3.1.1 sequence change lacking color info update in some case
[LIBAVCODEC/LIBXCODER] Add printout in FFmpeg-n3.1.1 decoder/encoder for frame latency including input fifo
[OTHER] In OpenMAX, allow auto-selection of h264 vs h265 encoder based on output file extension
[GSTREAMER] Fix file descriptor leak when closing sessions
[FFMPEG/LIBXCODER/OTHER] In FFmpeg-n3.1.1 use ni_quadra_check_hw_info() to auto-select card to use if user made no selection
                         Fix xcoder-param "disable_adaptive_buffers" in FFmpeg-n3.1.1
[LIBXCODER] Improve FFmpeg-n3.1.1 decoder latency after sequence change
[FFMPEG/LIBAVFILTER/LIBXCODER] In ni_quadra_hwupload filter allow auto-selection of card with lowest amount of raw frame data being uploaded to it
                               - ni_quadra_hwupload=-1 to select card based on model_load
                               - ni_quadra_hwupload=-2 to select card based on hwupload bandwidth
                               Changing FW API version to 6rf
[LIBAVCODEC] Fix encoder sequence change with YUVJ420P pixel format in FFmpeg-n4.1.3 and below by treating YUVJ420P same as YUV420P
[LIBAVCODEC] Fix memory leak on quadra card when calling nicodec.c:ni_frame_free() during use of multiple PPU outputs
[APIEXAMPLES] Fix libxcoder apiexample ni_watermark_test bug preventing usage of PPU scaling param
[LIBXCODER] Fix ni_rsrc_api.c:ni_init_rsrc() user set timeout rounding to nearest 3s by decreasing a polling period from 3s to 1s
[LIBXCODER] Fix ni_rsrc_mon failure to list card info when multiple instances of ni_rsrc_mon are running concurrently
[LIBXCODER] Limit xcoder-param "sliceArg" (number of CTU/MB rows per slice) to maximum of 127
[TOOLS] quadra_quick_installer.sh v3.3:
        - remove old libav* libraries from /usr/local/include/ folder prior to installing new libav* libraries
[LIBAVFILTER/LIBXCODER/OTHER] Support scatter-gather list in P2P read
                              Changing FW API version to 6re
[TOOLS] Fix libavcodec apiexample ni_hevc_tile_transcoding compatibility with FFmpeg-n6.1
[APIEXAMPLES] Fix libxcoder apiexample ni_watermark_test on multi-card systems using multiple cards when it should be using same card
[APIEXAMPLES] Fix libavcodec apiexample ni_multi_thread_transcoding inability to create audio filter
[APIEXAMPLES] Fix libavcodec apiexample ni_transcode_ai_test compatiblity with libavcodec from FFmpeg-n6.1+
[APIEXAMPLES] Fix libxcoder apiexample ni_watermark_test incorrect colors when using "semiplanar0=1"
[LIBXCODER] Fix concurrency issue in libxcoder/ni_rsrc_priv.cpp:ni_rsrc_get_one_device_info()
[APIEXAMPLES] In libavcodec apiexamples ni_hevc_tile_transcoding and ni_av1_tile_transcoding, disable zero copy at resolution below 1080p to fix unexpectedly high card memory usage when cropping
[LIBXCODER] Fix bug during end of stream when using HW frames on FFmpeg-n7.0 which has per element multi-threading
            Changing FW API version to 6rd
[LIBAVCODEC] Fix FFmpeg-n3.1.1 HW frame seqchange bug on encoder
[LIBXCODER] Fix quadra FW log dump through ni_rsrc_mon on Windows
[TOOLS] quadra_auto_upgrade.sh v4.11:
        - Fix some quotation marks in help text
[TOOLS] quadra_quick_installer.sh v3.2:
        - Read OS name from /etc/os-release instead of lsb_release for compatiblity with CentOS
[GSTREAMER] Add check for input YUV color range for decoders & scalers
[FFMPEG/GSTREAMER/LIBAVCODEC] Remove gstreamer build flag from FFmpeg and build scripts
[TOOLS/OTHER] Quadra_quick_installer.sh v3.1:
              - Remove arg for installing FFmpeg with '--gstreamer'
[LIBAVFILTER] Add FFmpeg-n3.1.1 ni_ai_pre filter support for yuvj420p
              Increase FFmpeg-n3.1.1 ni_ai_pre filter default keep_alive_timeout from 3s to 10s
[LIBXCODER] Fix a file descriptor leak in libxcoder when running on Android
[LIBXCODER] Fix FFmpeg-n3.1.1 decoder PPU crop bug causing incorrect x/y setting
[LIBXCODER/OTHER] In Android service, launch ni_rsrc_mon automatically to initialize resource during the Android system start
[OTHER] Add support for building quadra OpenMAX plug-in on arm64
[LIBXCODER] Add xcoder-param "enableHVSPlus" to enhance subjective encoding quality through quadra AI engine
            - cannot be used concurrently with xcoder-param "enableAIEnhance"
            Add xcoder-param "HVSPlusLevel" set prioritization for PSNR vs subjective quality
            - 1: moderate subjective enhancement without interference to PSNR
            - 2: greater subjective enhancement with minor interference to PSNR
[FFMPEG/OTHER] For FFmpeg-n6.1 and n7.0, exit netint decoder when avcodec_receive_frame() returns error to avoid dead loop
[FFMPEG/OTHER] Fix FFmpeg-n3.1.1 h264_mp4toannexb_bsf inability to find new header info if sps/pps changes location from header to extradata or vice-versa
[FFMPEG/LIBAVFILTER] Fix FFmpeg-n6.1 & n7.0 filters unnecessarily triggering frame backpressure resulting in decoder frame buffers exhaustion
[LIBXCODER] Fix incorrect PCIe address reported by ni_rsrc_mon on system with NVMe multi-pathing
[FFMPEG/OTHER] Automatically enable xcoder-param "GenHdrs=1" for FLV on FFmpeg-n6.1 & n7.0, same as other quadra FFmpeg versions
[LIBXCODER] Fix libxcoder secure compile warnings
[LIBAVCODEC/APIEXAMPLES] Fix libavcodec apiexamples compile for FFmpeg-n7.0
[LIBXCODER] Fix some file descriptor leaks in libxcoder
[LIBAVCODEC] Fix FFmpeg-n7.0 jpeg_ni_quadra_enc not rejecting rgba pixel format input
[LIBXCODER] Add xcoder-param "getPsnrMode" to report PSNR of encoded frames
            - 0: get PSNR for Y, U, and V
            - 1: get PSNR for Y and U
            - 2: get PSNR for Y
            - 3: do not retrieve psnr (default)
            Add xcoder-param "intervalOfPsnr" to report PSNR of every Nth frame
            Changing FW API version to 6rc
[FFMPEG] Fix bug in FFmpeg-n6.1 preventing a stream from being mapped to filter and encoder simultaneously
[TOOLS] Add ai network binary files for HVS+ to tools/AI_benchmarking_examples/
[FFMPEG/LIBAVFILTER/LIBXCODER] Fix FFmpeg & libxcoder compile errors on Windows with MinGW64-10.0
[LIBXCODER] Fix ni_rsrc_list printout for 'F/W commit hash' in windows vs2019
[GSTREAMER] Add support for Gstreamer-1.24.4
[LIBXCODER] Fix long delay in FFmpeg-n3.1.1 during decoder sequence change
[FFMPEG/LIBAVCODEC/LIBAVFILTER/LIBXCODER] Allow encoder to set buffer acquisition limit for upstream
                                          - add xcoder-param "enableAcqLimit=1" to limit HW frame buffers from filters/decoder upstream of encoder
                                          - add "buffer_limit=1" param for netint quadra filters in libavfilter
                                          - enable "enableAcqLimit=1" and "buffer_limit=1" in FFmpeg-n7.0 by default
                                          Changing FW API version to 6rb
[LIBXCODER] Add -xcoder-param "tuneBframeVisual" select different B-frame visual quality tuning level
            - higher values reduce visual quality fluctuation at cost of compression efficiency and bitrate
            - 0 (Off)    - default behavior
            - 1 (MEDIUM) - tune B-frame visual quality with minor loss in compression efficiency
                - only available when using lookahead or crf mode
            - 2 (HIGH)   - stronger B-frame quality tuning with more compression efficiency loss
            Changing FW API version to 6ra
[LIBAVCODEC] Fix incorrect colors when using semiplanar pixel format in FFmpeg-n3.1.1
[LIBXCODER] Fix possible deadlock handling certain errors in ni_device_session_open() and ni_rsrc_init_priv() functions
[TOOLS] Fix bug in ni_quadra_xstack filter where error return codes were not set for some functions
[LIBAVFILTER] Fix bug in ni_quadra_drawtext filter when input is looped using stream_loop
[LIBAVCODEC] Handle errors when calling av_hwdevice_ctx_create() for quadra decoders
[LIBXCODER] Fix compilation of libxcoder/ni_device_test.c when using c++ compilers
================================================================================
Release version: 4.9.0_RC3
Date: 2024-06-06            SW version: 4.9.0_RC3           FW version: 4.9.0_RC3
Compat FW API ver: 6rZ      Libxcoder API ver: 2.63
--------------------------------------------------------------------------------
[FFMPEG/OTHER] Update NETINT_FFMPEG_CHANGE_LIST.txt for v4.9.0
[LIBXCODER] Fix libxcoder compile error on Windows with MinGW64-10.0
[LIBXCODER] Remove errorneous 'pice shared mem' field from `ni_rsrc_mon -o json`
[LIBAVCODEC] Add check for invalid device handle during encoder close to prevent segfault 
[APIEXAMPLES] Fix libxcoder xstack apiexample not fully cleaning up at end of stream
[OTHER] Fix anbox NiEnc plugin compilation
[TOOLS] Quadra_auto_upgrade.sh v4.10:
        Add warning for nvme-cli 2.x when nvme list does not update
[TOOLS] Quadra_auto_upgrade.sh v4.9:
        Allow upgrade script to force cold upgrade and allow user to skip upgrade even when there is a FL difference
[GSTREAMER/LIBAVCODEC/LIBAVFILTER/LIBXCODER/OTHER] Fix risk of memory leak when calling ni_device_session_open() 
[LIBXCODER] Reduce host CPU load on multiple VMs and multicard servers by enabling zerocopy mode by default 
[LIBXCODER] Fix parameters comparison check in ni_device_api
[GSTREAMER] Fix segmentation fault if decoder reconfigures without sending real data on Gstreamer 1.22.2
[LIBXCODER] Add DTS increase by frame interval support and set minimum resolution height to 144 
            Changing libxcoder API version to 2.63
[LIBXCODER] Add PCIe load to resource monitor
            Changing libxcoder API version to 2.62
            FW API version changed to 6rZ
[LIBXCODER/OTHER] Add OpenMAX Quadra decoder/encoder plugin
[LIBXCODER] To avoid block using tryGetService(non-block API) instead of getService(block API) when get nidec service under Android
[LIBXCODER] In libxcoder, avoid writing release version with SONAME for Android as Android.bp will not easily support generating symlink with version name
[LIBXCODER] Change loglevel from error to debug for non-error printout
[FFMPEG/LIBAVCODEC] Fix Logan compilation issues
[GSTREAMER] Add Gstreamer-1.22.2 support enableAllSeiPassthru
[TOOLS] Fix output name mismatch for ni_multi_encode_scale
[GSTREAMER/LIBAVFILTER/LIBXCODER] Avoid keepalive thread deadlock for ni_quadra_ai_pre filter
[FFMPEG] Update run_ffmpeg_quadra.sh to handle all ffmpeg versions
[APIEXAMPLES] Fix ni_transcode_ai_test apiexample unexpected SPS and mismatched frame
[FFMPEG/LIBAVCODEC/LIBXCODER] FFmpeg-n3.1.1 support yuvj420p on decoder,encoder,upload and download
[TOOLS] Add OpenGL EGL demo for P2P
[FFMPEG] Fix FFmpeg-n6.1 drawtext filter not found issue
[LIBXCODER] Support configure the number of slices
            Changing libxcoder API version to 2.61
            Changing FW API version to 6rY
[LIBXCODER] Fix some error in p2p demo due to missing packages in android
[FFMPEG] Modify run_ffmpeg_quadra.sh checksum for n5.1.2
[LIBAVCODEC/LIBXCODER/APIEXAMPLES] Fix libavcodec xstack apiexamples errors with FFmpeg-n6.1
[GSTREAMER] Fix random segment fault on gstniquadraaipre filter
[LIBAVFILTER] Fix FFmpeg-n4.2.1 failed to draw chinese characters
[GSTREAMER] Fix hw frames unable to transfer correctly to videoconvert element on Gstreamer 1.22.2
[LIBXCODER] Remove unsupported pixel format from ni_device_test.c
[LIBXCODER] Fix DP2P broken by SR_4G configuration
[GSTREAMER] Add pixel format sequence change feature to Gstreamer 1.22.2
[GSTREAMER] Fix garbage data in video output when running multiple instances at once on Gstreamer 1.22.2
[FFMPEG/LIBAVFILTER] Add FFmpeg-n5.1.2
[LIBXCODER] Fix force key frame causing encode stuck when minFramesDelay is enabled
            Changing FW API version to 6rX
            Changing libxcoder API version to 2.60
[LIBXCODER/TOOLS] Re-add ni_rsrc_allocate_auto() in ni_rsrc_api.c
[LIBXCODER] Do not limit the min resolution when lookahead enabled
            Change the NI_MIN_RESOLUTION_HEIGHT from 144 to 128 to align with the IPG description
            Changing libxcoder API version to 2.59
[APIEXAMPLES] Increase the length of output file name in ni_multi_encode_scale.c apiexample
[LIBXCODER] Add SONAME field in libxcoder package metadata
[LIBAVCODEC] Fix H264 VUI info in metadata where it is not updated if VUI info of the bitstream is changed
[LIBXCODER] Improve B-frame visual quality to resolve temporal quality issue
            Changing FW API version to 6rW
[LIBAVCODEC/LIBXCODER] Fix variable causing false positive on VPU recovery issue
[LIBAVCODEC] Fix enable enableAllSeiPassthru will give no sei data on output on FFmpeg-n3.1.1
[LIBXCODER/TOOLS] Add SW support for new form factor T1M
                  Changing libxcoder API version to 2.58
                  Changing FW API version to 6rV
[LIBXCODER/TOOLS] Add P2P demo based on OpenGL/openGLES api
[LIBXCODER] Fix issue with enablePpuScaleAdapt param where the outputed resolution was incorrect
[LIBAVCODEC/LIBAVFILTER] Fix FFMpeg-n3.1.1 ni_quadra_ai_pre can't select card with devid
                         Fix the decoder using index 1 when out=hw while the print log always printed devid=0
[TOOLS] Quadra_fw_flavor_display.sh v1.0 
        - Displays FW Flavor installed onto Quadra card
[LIBXCODER] Fix coredump issue when printing NI_XCODER_REVISION message
[GSTREAMER] Gstreamer 1.22 - Filters support decoder configurations with semiplanar=1 and semiplanar=2.
            Filters, including niquadraoverlay and niquadrascale, now support decoder configurations with semiplanar=1 and semiplanar=2
[APIEXAMPLES] Fix roi apiexample deadlock when ai thread exists early
[FFMPEG/OTHER] Fix FFmpeg-n6.1 incorrect framerate when demuxing clips without timinginfo
[OTHER] Updated CMakeLists.txt to compile anbox-cloud
[LIBXCODER] Fix an issue with the resoruce monitor displaying the TP load
[LIBXCODER] Further reduce encoder frames delay when minFramesDelay is enabled
            Changing FW API version to 6rU 
[LIBXCODER] Support check AI core in check hw info function
[FFMPEG/OTHER] Backport FFmpeg 6.1 fix to FFmpeg 6.0
               Fix segmentation violation when specifying out-of-range filter parameter
[LIBXCODER/OTHER] Fix linker error on android10
[LIBXCODER] Add XCODER_311 default enabled for libxcoder_FFmpeg3.1.1only and change some log level to debug
[APIEXAMPLES] Add fix roi apiexample and xstack apiexample unable to exit normally when drawtext not installed
[APIEXAMPLES] Fix ni_multi_encode_scale apiexample crash error
[FFMPEG/LIBAVCODEC/LIBXCODER/OTHER/TOOLS] Support reconfig general side data via FFmpeg api
[GSTREAMER] Add params in-color-matrix out-color-matrix and autoselect in niquadrascale filter on Gstreamer 1.22.2
[LIBXCODER] Fix libxcoder compile errors when building with secure compile
[LIBAVFILTER] Fix memory leak when using ni_quadra_overlay with inplace=1
[LIBXCODER] Reduce encoder frames delay when minFramesDelay is enabled
[GSTREAMER] Add av1parse to Gstreamer 1.22.2
[GSTREAMER] Add Gstreamer-1.22.2 co-existence support for logan and quadra
[GSTREAMER] GStreamer 1.22.2 - Add semiplanar support to Gstreamer
[GSTREAMER] Add niquadraaipre filter on Gstreamer-1.22.2
[FFMPEG/LIBAVCODEC/LIBXCODER] Add Logan/Quadra co-exist support for FFmpeg-n4.4.2; libxcoder_logan updated to Logan 3.5.0 release T408_XCODER_FFMPEG/LIBXCODER_RELEASE_3.5.0
[GSTREAMER] Add params limit on gstreamer filters
[LIBAVCODEC/LIBXCODER] Update to check SW pixel format in FFmpeg-n3.1.1 when first frame send to encoder
[LIBXCODER] Improve decoder load balancing for resource monitor
            Changing FW API version to 6rT
[GSTREAMER] Add auto-skip params in filters niquadrascale,niquadracrop,niquadrapad and niquadrarotate on Gstreamer-1.22.2
[OTHER] Add dma-buf driver support for linux kernel version 6.8
[APIEXAMPLES] Add support for rgba format for ni_encoder_video.c apiexample
[APIEXAMPLES] Add libxcoderapi example for ni_quadra_pad
[GSTREAMER] Fix decode failure when card load is very high and unable to send packet to FW
[LIBXCODER] Fix incorrect decoder sequence change condition check causing the DP core to get stuck
[LIBXCODER/TOOLS] Provide spec file for building libxcoder RPM package
[GSTREAMER] Fix dtsOffset not correct when encoder uses gopPresetIdx=5 in Gstreamer-1.22.2
[LIBXCODER] Fix an issue where roi area was inaccurate when RoiDemoMode is enable
[LIBAVCODEC/LIBXCODER] Add decoder/encoder disableAdaptiveBuffers option.
                       Changing FW API version to 6rS
[GSTREAMER] Fix niquadrabgr filter using default card error on Gstreamer 1.22.2
[GSTREAMER] Fix Gstreamer negotiation failure between qtdemux and AV1 encoder
[LIBXCODER] Update resource monitor to show power consumption and temperature of card 
            Changing FW API version to 6rR
            Changing libxcoder API version to 2.57
[LIBAVFILTER] Fix some filter memory leak on rainy case in ffmpeg-n4.3.1
[GSTREAMER/LIBAVCODEC/LIBAVFILTER] Update GStreamer plugin and FFmpeg descriptions to use 'NETINT Quadra' to describe  decoders,encoders and filters
[LIBXCODER] Improve Capped CRF I-frame quality & Support vbvMinRate in Capped CRF mode
            Changing FW API version to 6rQ
[OTHER] Set dma-buf aligned page size to 4KB
[LIBXCODER] Block P2P from trigger unwanted DMA transfers
            Changing FW API version to 6rP
[GSTREAMER] Add niquadramerge filter in Gstreamer-1.22.2
[LIBXCODER] Add support for decoder sequence changes where only the format of the video changes
[LIBXCODER] Add enableAdvancedEc == 2 option which always enables error concealment for decoding errors
            Changing FW API version to 6rO
[LIBXCODER] Add Windows support for disabled HW blocks in resource monitor
[GSTREAMER] Add niquadraflip filter in Gstreamer-1.22.2
[GSTREAMER] Add chroma-format caps on h264/h265/av1 encoder for Gstreamer 1.22.2
[LIBAVCODEC/LIBXCODER] Added enableFollowIFrame decoder parameter
                       Changing libxcoder API version to 2.56
[LIBXCODER] Add TP load to resource monitor
            Changing libxcoder API version to 2.55
            Changing FW API version to 6rN
[LIBXCODER/TOOLS] Fix libxcoder app encoding resolutions less than 144x144 for u2a and u2h
[TOOLS] Quadra_auto_upgrade.sh v4.8:
        - add `--model=PATTERN` to filter cards for upgrade by a wildcard pattern of their model number
[TOOLS] Quadra_auto_upgrade.sh v4.7:
        Handle different output of nvme list for newer nvme-cli versions
[LIBXCODER] Add fps info per instance to resource monitor
[LIBXCODER] Support set skipFrameInterVal Param to skip frames
            Changing FW API version to 6rM
[GSTREAMER] Add niquadradelogo filter to gstreamer-1.22.2
[FFMPEG/LIBAVCODEC/LIBAVFILTER/OTHER] Add bitstream filters to FFmpeg-n6.1
[LIBAVFILTER/LIBXCODER] Support hardware and software frame inputs and outputs for ni_quadra_ai_pre on FFmpeg-n3.1.1
[LIBXCODER] Add new card idenification functions to resource API
[FFMPEG] Fix an issue where FFmpeg-n6.0 and FFmpeg-n6.1 was crashing when parsing HEVC SEI messages
[LIBXCODER] P2P co-existence
            Fix compilation error with Quadra/Logan co-existence and
            the P2P demo application
[LIBAVFILTER/LIBXCODER] Fix unexpected closing of file descriptors caused failure of nvme identify command
[LIBAVCODEC] Fix a pts problem causing frame loss after encoding and decoding on FFmpeg for video clip containing invalid dts/pts
[LIBAVFILTER/LIBXCODER] Support mode=1 for ni_quadra_ai_pre filter for Y-only AI processing
                        Changing FW API version to 6rL
[GSTREAMER] Fix segmentation fault on Gstreamer when using overlay filter
[FFMPEG/LIBAVCODEC/LIBAVFILTER/LIBXCODER/OTHER/TOOLS] Add new p2p filter
                                                      Netint kernel driver to support dma-buf importing. 
                                                      Add the ni_p2p_xfer filter to do a P2P transfer via p2p write.
                                                      Changing FW API version to 6rK 
                                                      Changing libxcoder API version to 2.54
[FFMPEG/OTHER] Add Windows workaround link error of quadra+logan FFmpeg build
[LIBAVFILTER/TOOLS] Intergrate new PQO model to quadra
[FFMPEG/LIBAVCODEC/LIBAVFILTER/OTHER] Fix FFmpeg-n6.1 exhausting all pre-allocated mem bin buffers causing FFmpeg command fail
[GSTREAMER] Add Decoder PPU scale and crop support to Gstreamer
[TOOLS] Support rtmp/rtsp as input and output for ni_transcode_filter demo
[TOOLS] Quadra_auto_upgrade.sh v4.6:
        Fix incorrect check on FW binary file size prior to upgrade
        Fix incorrect check for when to print warning message that all cards already have same FW version as in FW binary file
        fix incorrect frame count check in tools/t408_perf_test/t408_perf_test.sh
[TOOLS] Quadra_auto_upgrade.sh v4.5:
        Add workaround for when upgrading persistent config from old releases
[OTHER] Add new variant of AMD P2P application which directly sends rgba frames to quadra via P2P
[FFMPEG/OTHER] Add workaround for FFmpeg-n6.1 source stream frame rate probing issue
[TOOLS] Add support for Android 11 with Arm64
[TOOLS] Update build_all_android.sh to support arm32
[TOOLS] Fix race condition with ni_xstack application
[GSTREAMER] Fix Gstreamer segmentation faults when using 2D filters on multicard environments
[LIBAVFILTER] Fix an issue where the model load value shows non-zero for ni_quadra_ai_pre on FFmpeg-n3.1.1 for an error case
[LIBAVFILTER/LIBXCODER] Add auto selection mode for scaler filter
                        Resolution smaller then 540p, use filterblit=1.
                        Larger resolutions will use fliterblit=2
[LIBAVFILTER] Skip 2D HW handling when there is no change in resolution to optimize performance
              Filters where fix is applied - ni_quadra_pad, ni_quadra_scale, ni_quadra_crop, ni_quadra_rotate
              FFmpeg-n3.1.1 will always skip the filter when the input and output of the filter are the same.
              FFmpeg-n4.3.1 and above will add an option auto_skip to determine if we are skipping
[GSTREAMER] Fix gstreamer command timeout when using HW frames with multiqueue 
[GSTREAMER] Fix gstreamer error when using PPU and AV1 encoder
[LIBXCODER] Improve the version sync-up for quadra
            Fix some compilation error when compiling with c++98
[FFMPEG/LIBAVFILTER/LIBXCODER/OTHER/TOOLS] Add ni_quadra_flip filter
[LIBAVCODEC/LIBXCODER] Fix output statistical information when closing decoder on 32-bit system
                       Changing libxcoder API version to 2.53
[FFMPEG/LIBAVCODEC/LIBAVFILTER/OTHER] Add FFmpeg-n4.4.2
[LIBXCODER] Change YUV minimum upload resolution to 16x16
[LIBXCODER] Change loglevel to info for ni_rsrc_check_hw_available to prevent redundant logs
================================================================================
Release version: 4.8.2_RC3
Date: 2024-03-25            SW version: 4.8.2_RC3           FW version: 4.8.2_RC2
Compat FW API ver: 6rK      Libxcoder API ver: 2.54
--------------------------------------------------------------------------------
[LIBXCODER] Fix compile for p2p demo on Logan
[OTHER] Fix a race condition in the netint kernel driver
[GSTREAMER] Add chroma-format 4:2:0 on av1 gstreamer encoder caps and update pts/dts logic
[FFMPEG/LIBAVCODEC/LIBAVFILTER/LIBXCODER/OTHER/TOOLS] Add new p2p filter
                                                      Netint kernel driver to support dma-buf importing. 
                                                      Add the ni_p2p_xfer filter to do a P2P transfer via p2p write.
                                                      Changing FW API version to 6rK 
                                                      Changing libxcoder API version to 2.54
[APIEXAMPLES] Fix ni_roi_detect_move_311 apiexample compile error for FFmpeg-n3.1.1
[LIBAVFILTER] For FFmpeg-n3.1.1, Fix ai_pre_filter and bgr_filter would fail when decoder and encoder were on different cards
================================================================================
Release version: 4.8.0_RC2
Date: 2024-02-27            SW version: 4.8.0_RC2           FW version: 4.8.0_RC1
Compat FW API ver: 6rJ      Libxcoder API ver: 2.52
--------------------------------------------------------------------------------
[FFMPEG/OTHER] Update NETINT_FFMPEG_CHANGE_LIST.txt for v4.8.0
[FFMPEG/LIBAVFILTER/LIBXCODER/OTHER/TOOLS] Add new sidedata type for AVRegionOfInterest and fix FFmpeg-n6.1 shared build dependency for ni_roi
[FFMPEG/LIBAVCODEC/LIBXCODER] Add Logan and Quadra co-existence support for FFmpeg-n6.1 Linux
[FFMPEG] Fix FFmpeg-n6.1 decoding stuck when using ffmpeg stream_loop param
[LIBXCODER] Change default ssim logging to be at debug level.
            Add -m, --with-info-level-ssim-log to build.sh script to compile with SSIM logging at info level
[FFMPEG/OTHER] Add support for hwdownload filter on FFmpeg-n3.1.1
[LIBXCODER] Fix FD leak issue in Android 11 docker container
[LIBXCODER] Fix Code scanner report serious error by modifying the scope of the conditional statement
[FFMPEG/LIBAVFILTER/LIBXCODER/OTHER] Add ni_quadra_roi filter to ffmpeg-n3.1.1 and update config for other filters
[LIBAVCODEC] Fix memleak with decoder packet buffer on decoder close
[LIBXCODER] Fix rsrc mon card indexing where the devices was being count even if out of queue and reset index count if over 128
[LIBXCODER] Re-enable libxcoder clang-tidy
[TOOLS] Quadra_quick_installer.sh v2.7:
        - do not use sudo if user is root
        - add '-s' and '--avoid_sudo' args to avoid sudo
        quadra_auto_upgrade.sh v 4.4:
        - add '-s' and '--avoid_sudo' args to avoid sudo
[TOOLS] Quadra_auto_upgrade.sh v4.3:
        - do not use sudo if user is root
        - Add persistent config upgrade support 
        - use 'bs' instead of 'ibs' in 'dd'
[LIBAVCODEC] Fix FFmpeg-n6.1 segmentation fault when encoder sequence change open session fail
[LIBXCODER] Add a persistent configuration key to turn off P2P HW buffer
            Changing FW API version to 6rJ
[LIBXCODER] Add support for disabling parts of resource monitor based on the persistent configuration
[FFMPEG/LIBXCODER] One-to-one correspondence between card index and module_id to avoid changing index if card is removed
[FFMPEG/LIBAVCODEC/LIBXCODER/OTHER/TOOLS] Port ni_quadra_roi to FFmpeg-n3.1.1
[LIBAVCODEC] Drop less permissive profile check
[LIBXCODER] Update all device info when adding a new device
[FFMPEG/LIBAVFILTER/OTHER] Support ni_ai_pre filter on all versions of ffmpeg
[GSTREAMER] Fix segfault issue when sequence change
[TOOLS] Update config files for VS2019
[LIBAVFILTER/LIBXCODER/OTHER/APIEXAMPLES] Add unified interface for libxcoder apiexamples
[LIBAVFILTER] Add FFmpeg-n3.1.1 merge filter support set output width and height,and other params like scale and open config_output to ffmpeg
[LIBXCODER] Return memory usage in ni_check_hw_info and fix return value from ni_quadra_xcoder_encoder_headers 
[LIBXCODER] Fix libxcoder demo encoders encoding not enough 8k yuv frames
[GSTREAMER] Fix Gstreamer memory leak for niquadrabg filter
[TOOLS] Persistent config script supports new parameter DP2P
[FFMPEG] Ensure color_range is copied for Quadra & Logan
[LIBAVFILTER] Fix an issue where the memory buffer was freed more than once
[FFMPEG/LIBAVCODEC/LIBXCODER/APIEXAMPLES] Fix multiple apiexamples failing on android
[FFMPEG/OTHER] Fix AV1 incorrect ivf header field for FFmpeg versions less than 6.1
[LIBXCODER] Add -s option to build.sh to compile with fortifications and fix build warnings in libxcoder
[LIBXCODER] Support PPU adaptive scale aligned with long and short edge
            Changing FW API version to 6rI
[FFMPEG/OTHER] Add support for SCTE 35 data in HLS manifest files 
[LIBXCODER] Add Slot and domain to rsrc_mon log dump file, for linux only.
            On non linux hosts and on failure to look up PCIe info resort to using existing naming scheme of {core}_slot_{guid}_0000.log
            Update PCIe look up to use readlink instead of udevadm
[LIBAVFILTER] Decrease drawtext upload frequency to when text content or position changes or every second
[LIBXCODER] Support reconfig for intraperiod, force I-frame on reconfig and update rate control
            Changing FW API version to 6rH 
            Changing libxcoder API version to 2.52
[FFMPEG] FFmpeg-n6.1 set hevc tag as hvc1 for mp4
[LIBAVFILTER] Improve merge filter to get merge frame from ppu0+ppu1 directly
              Pass frames to next filter directly when ppu0 and ppu1 have the same size
[LIBAVFILTER] Set framerate and sample_aspect_ratio the same as the sync stream to avoid failure with bgr
[FFMPEG/LIBAVCODEC] Fix ffmpeg-n6.1 fate test failure
[LIBAVFILTER] fix ni_quadra_bgr null pointer
[TOOLS] Fix ni_orc_vqe_transcoder compile fail on ffmpeg-n4.1.3
[LIBXCODER] Add -b in libxcoder/build.sh to control whether to print backtrace
[LIBXCODER] Remove thread unsafe function from ni_check_hw_info
[LIBAVFILTER] Validate hw_frames before granting access to filter
[LIBXCODER] Set default ai_enhance value to 1
[LIBXCODER] Add iFrameSizeRatio encoding parameter, used to control the size of I frames.
            Changing FW version to 6rG
[TOOLS] Fix a reconfig hang on input addition and add additional logging around this
[LIBXCODER] Print device name for ni_rsrc_mon -D 1
[TOOLS] Persistent config script supports new parameter SHMM
[FFMPEG/LIBAVFILTER/LIBXCODER/OTHER/TOOLS] Add new merge filter which combines PPU and 2D engine scaling to improve quality
                                           Changing FW API version to 6rF
[TOOLS] Persistent config CONF key support fix
[LIBXCODER] Fix one frame decoder delay on h264 decoding
            Changing FW API version to 6rE
[TOOLS] Add AI demo by libxcoder API with custom model
[LIBXCODER] Validate encoder hw input frame before write
[LIBAVCODEC/LIBXCODER] Support Decoding and Encoding All SEI Types (both custom and standard)
                       Add parameter 'enableAllSeiPassthru' for decoder and encoder
[LIBAVFILTER] Fix FFmpeg-n3.1.1 ni_quadra_split filter will cause segmentation fault when it is the first filter used
[LIBXCODER] Update P2P buffer range check
[FFMPEG/OTHER] Add support for mpegts_max_audio_bitrate[N] for up to N=10 audio tracks
[LIBAVCODEC/LIBXCODER] Add an new option to make pkt_pts same with input packet's pts in FFmpeg-n3.1.1
[LIBXCODER] Add NI_RETCODE_ERROR_STREAM_ERROR error string
[LIBXCODER] Add UUID for every instance in the ni_log 
            Changing libxcoder API version to 2.51
[LIBXCODER] Add a new decoder parameter skipPtsGuess in libxcoder
[LIBXCODER/TOOLS] Add new non-recoverable stream decoding error classification
[LIBXCODER] Added the support of xcoder-gop option to libxcoder API
            Changing libxcoder API version to 2.50
[APIEXAMPLES] Fix ni_xstack apiexample image and yuv input issues
[LIBXCODER] Change ni_session_keep_alive_thread name as KAT + hw_id + sesion_id on linux macos and android
[LIBAVCODEC] Fix FFmpeg-n6.1 pts mismatch between sw dec and ni dec
[FFMPEG/OTHER] Add FFmpeg-n6.1 support for custom flv codec id
[LIBXCODER] Fix compiler warning issues for libxcoder
[APIEXAMPLES] Libxcoder demo to show reconfig position or content of ni overlay while transcoding
[GSTREAMER] Fix Hwdownload gstreamer commands produce a non-consistent output
[FFMPEG/LIBAVFILTER] Width align to 2 pixels and height align to 4 pixels in tile mode
[LIBXCODER] Add scaler and Ai checks in ni_rsrc_check_hw_available function
[GSTREAMER] Fix gstreamer-1.22 memory leak when sequence change by freeing all frames on framelist when element stops 
[FFMPEG/OTHER] Fix FFmpeg-n6.1 the first filter frame's timing info
[LIBXCODER] Update memory bin buffer size to avoid resource unavailable with 32 instances of portrait 1080p
            Changing FW API version to 6rD
[FFMPEG/LIBAVFILTER/LIBXCODER/OTHER] Add AI APIs for FFmpeg-n3.1.1
[FFMPEG/OTHER] Make FFmpeg-n6.1 filter/encode hw frames one by one
[LIBXCODER] Support querying card's composite temperature via libxcoder api 
            Changing FW API version to 6rC
[LIBXCODER] Check for any active instances before setting load to zero
[LIBAVCODEC/LIBXCODER] Expand custom sei data size from 1024 to 8192
                       Changing libxcoder API version to 2.49
[LIBXCODER] Fix VPU load showing for AI when no AI instances are running
[FFMPEG/LIBAVFILTER] Added FFmpeg-n6.1
[LIBXCODER] Support checking 2D Engine shared memory in checkHWinfo API
[LIBXCODER] Limit max numbers of memory bins to be obtained to avoid exceeding allocated frames
            Changing FW API version to 6rB
[LIBXCODER] Support reconfig maxFrameSize ratio
            Changing libxcoder API version to 2.48
[LIBAVFILTER] Support dynamic overlay by timestamp in ni_quadra_overlay filter
[LIBXCODER] Set a default FPS value for decoder if there is no FPS info
[APIEXAMPLES/LIBXCODER] Fix libxcoder demo upload error on small resolutions
[LIBXCODER] Fix security warning from code scanner
[LIBXCODER] Support android11 on arm64
[OTHER] Fix build issue for anbox-cloud plugin
[LIBXCODER] Support short edge adaptive ppu scaling
            Changing FW API version to 6rA
[LIBXCODER] Support ipRatio for CBR and VBR, add enableipRatio encoder parameter for CBR and VBR
            Changing FW API version to 6r9
[LIBAVCODEC/LIBXCODER] Fix color issue when using semiplanar0=1 in FFmpeg-n3.1.1
[APIEXAMPLES] Add more features ni_transcode_filter apiexample like bitrate, output format and additional drawtext writes
[FFMPEG/LIBXCODER] Support hwdownload without hwframe session ID context
[APIEXAMPLES] Add libavcodec apiexample ni_ppu_split
[LIBXCODER] Removed dependency on keep_alive_thread in the termination process on decoder session read/write errors
            Changing libxcoder API version to 2.47
[GSTREAMER/TOOLS] Remove support for Gstreamer 1.18.0
[LIBAVCODEC/LIBXCODER] Fix FFmpeg error on resolution change during transcoding when lookaheadDepth is non-zero
[LIBAVCODEC] Skip profile check when AVC/HEVC profile is equal to 0
[TOOLS] Persistent Config script support for new device mode
[LIBAVFILTER] Fix issue with drawtext when input is not 16 byte aligned
[APIEXAMPLES] Add drawbox reconfig support for FFmpeg-n4.2.1 and lower
[GSTREAMER] Add fix for ivfparse in gstivfparse.c to make ivf container loop on multifilesrc element
[GSTREAMER] Fix Gstreamer overlay with rgba picture error
[TOOLS] - Fix logic in serial number detection in quadra_auto_upgrade.sh 
[FFMPEG/LIBAVFILTER/OTHER] Add ni_quadra_ppu filter for FFmpeg-n3.1.1
[APIEXAMPLES] Fix hang on exit when using image inputs on ni_xstack apiexample
================================================================================
Release version: 4.7.0_RC4
Date: 2023-12-14            SW version: 4.7.0_RC4           FW version: 4.7.0_RC4
Compat FW API ver: 6r8      Libxcoder API ver: 2.46
--------------------------------------------------------------------------------
[APIEXAMPLES] Add libavcodec apiexample ni_ppu_split
[GSTREAMER/TOOLS] Remove gst-build-1.18.0
[TOOLS] Quadra_auto_upgrade.sh v4.1:
        - Support upgrading with a different FW binary for each card
[FFMPEG/OTHER] Update NETINT_FFMPEG_CHANGE_LIST.txt for v4.7.0
[LIBAVCODEC] Fix FFmpeg-n3.1.1 unintended latency increase when using noautoscale=1 and sequence change occurs
[APIEXAMPLES] Fix libavcodec apiexample ni_xstack issue when looping VP9 input
[LIBAVFILTER/LIBXCODER] Add tiled 4x4 HW frame support for scale and overlay filters
                        Changing FW API version to 6r8
[LIBXCODER] Make system time variables compatible with 32bit systems
[LIBAVFILTER] In FFmpeg-n3.1.1, open config_props to FFmpeg for ni_quadra_crop, ni_quadra_pad, and ni_quadra_rotate
[APIEXAMPLES] Fix libavcodec apiexample ni_xstack handling of encoder reconfig
[FFMPEG/LIBXCODER] Fix a file handle leak in FFmpeg when using HW frames
[LIBXCODER] Allow finer encoder rate control tuning with xcoder-params "skipFrameEnable" and "maxConsecutiveSkipFrameNum"
            Changing FW API version to 6r7
[LIBAVCODEC/LIBXCODER] Add avcodec_flush_buffers() support for h264_ni_quadra_dec and h265_ni_quadra_dec
[LIBXCODER] Fix bug in libxcoder app when handling large input files on Windows
[LIBAVFILTER/LIBXCODER] In FFmpeg-n3.1.1, skip HW scaling internally if input and output resolutions are the same
                        Fix issue where decoding xcoder-params "scale0" and "crop0" were not accessible
[LIBXCODER] Change ni_rsrc_mon LOAD to the greater of VPU_LOAD or FW_LOAD
[APIEXAMPLES] Fix libavcodec apiexample ni_transcode_filter bug when using multiple inputs
[LIBXCODER] Fix minFramesDelay=1 in multicore lookahead encode not enough for encoder to produce output, causing encode stuck
[LIBXCODER] Support continuously dumping FW logs with "ni_rsrc_mon -D 1"
[GSTREAMER] Add code comments in Gstreamer-1.22.2 for mapping between functions in gstniquadraenc.c/gstniquadradec.c to nicodec.c/nidec.c/nienc.c
[GSTREAMER] Add ARGB/RGBA/ABGR/BGRA pixel formats support in Gstreamer-1.22.2 netint encoders
            Fix a decoded picture corruption issue when using non-standard resolutions
[LIBAVFILTER] In FFmpeg-n3.1.1, open config_props to FFmpeg for ni_quadra_scale filter
[FFMPEG/LIBAVCODEC/LIBXCODER] Add FFmpeg-n3.1.1 support AV_PKT_DATA_CONTENT_LIGHT_LEVEL on hevc decoder and encoder
[LIBXCODER] Add resolution and userIDR info to "ni_rsrc_mon -d"
            Changing FW API version to 6r6
[LIBXCODER] Fix cases where constrained VBR (xcoder-param vbvMaxRate) is not taking effect
[LIBAVCODEC/LIBXCODER] Add decoding xcoder-param "enableLowDelayCheck=1" to cease lowdelay decoding mode when B frame is encountered
                       Changing FW API version to 6r5
                       Changing libxcoder API version to 2.46
[LIBXCODER] Fix bug in libxcoder app where using `out=hw` and decoding to null output fails
[LIBAVCODEC] Treat pix_fmt AV_PIX_FMT_NONE as AV_PIX_FMT_YUVJ420P during decoding
[LIBXCODER] Stay in decoder lowDelay mode when there is dropped frames using new xcoder-param "forceLowDelay"
[LIBXCODER] Fix a bug when rapidly opening and closing sessions on Kunpeng ARM server
[APIEXAMPLES/LIBXCODER/TOOLS] Improve performance of AI overlay filter
                              Add libavcodec apiexample ni_ai_overlay_test.c
                              Add new AI overlay benchmarks in tools/AI_benchmarking_examples/
                              Changing FW API version to 6r4
[GSTREAMER/TOOLS] build_gstreamer.sh v0.2:
                  - add option to install after compile
                  quadra_quick_installer.sh v2.6:
                  - use build_gstreamer.sh option to install after compile
[GSTREAMER] Fix Gstreamer-1.22.2 setting decoded stream playback fps to 1 after mjpeg sequence change
[LIBAVCODEC/LIBXCODER] Refactor some functions from libxcoder_quadra, nicodec.c, and nienc.c to libxcoder
                       Changing libxcoder API version to 2.45
[GSTREAMER/LIBAVCODEC/LIBXCODER] Allow HW frames of RGBA/BGRA/ABGR/ARGB pixfmt to be auto-downloaded if filter is a separate card from encoder
[LIBXCODER] Support user API control of uploader/scaler frame buffer pool size with ni_device_api.h:ni_device_session_update_framepool()
            Changing FW API version to 6r3
[GSTREAMER] Fix a 1 frame memory leak in Gstreamer-1.22.2 at start of encoding
[FFMPEG/LIBAVFILTER/LIBXCODER/OTHER/TOOLS] Add ni_quadra_delogo filter
                                           - This filter does not support P2P output
[APIEXAMPLES] Fix AI apiexamples ni_roi_transcoder and ni_roi_detect_move bug where reported number of encoded frames is 1 smaller than expected
[GSTREAMER] Add getcaps function to niquadra*enc for gstreamer elements that look up caps such as fpsdisplay
[LIBXCODER] Reduce minFramesDelay initial frame delay and fix related issues
            - Reduce 2-pass encode initial frame delay when minFramesDelay is enabled, and increase frame delay (enqueued frames) when open-gop size increases
            - Reject minFramesDelay when picSkip or lowDelay is enabled
            Changing FW API version to 6r2
[LIBAVCODEC/LIBXCODER] Support encoder reconfig for xcoder-params vbvMaxRate and vbvBufferSize
                       Changing FW API version to 6r1
[LIBXCODER] Migrate to 3 character FW API version number format
            Changing FW API version to 6r0
[LIBAVFILTER/LIBXCODER] Add BT.2020 support to ni_quadra_scale filter
[APIEXAMPLES] Fix libavcodec apiexample ni_transcode_filter compilation with libav libraries from FFmpeg below n4.0.0
[LIBXCODER] Fix libxcoder compilation when --with-linux-virt-io-driver is enabled
[LIBXCODER] Fix incorrectly captured FW error code reported from keep_alive_thread caused by other thread overwriting it
            Fix incorrect output in macro functions IS_XCODER_DEVICE_TYPE(t)/GET_XCODER_DEVICE_TYPE(t) when `t` is unsigned integer
[LIBXCODER] Fix exception when using ni_rsrc_api.cpp:check_hw_info() if no Quadra card is present
[FFMPEG] Fix ni_quadra_hwupload filter issue when pool_size is set
         Use position-independent code (--enable-pic) when building FFmpeg without libav shared libraries
[LIBXCODER] Fix libxcoder app AV1 encoding (y2v and y2x) output incorrect DTS when receiving multiple AV1 packets per frame
            Fix libxocder app latency measurement incorrect when receiving multiple AV1 packets per frame
[APIEXAMPLES] Fix bug in multiple apiexamples where applications cannot conclude transcoding if last packet of input is not a video packet
[LIBAVFILTER] Fix chinese character support in ni_quadra_drawtext filter
              Support different font for every drawtext element
[FFMPEG/OTHER] Fix mis-configuration of non-Netint encoders with Netint specific params
[GSTREAMER] Fix duplicated frames issue during multi-instance encoding on GStreamer
[LIBXCODER] Change the names of share memory files generated by libxcoder_quadra to "NI_QUADRA_*"
[LIBXCODER] Fix lack of range check for `g_device_type_str[xcoder_type]` causing segfault when `xcoder_type` is out of bounds
[APIEXAMPLES] Fix libavcodec apiexample ni_xstack reporting incorrect number of output frames
[LIBXCODER] Add more debug logging and error handling to libxcoder NVMe operations
            Changing libxcoder API version to 2.44
[APIEXAMPLES] Add libxcoder_apiexamples to Quadra SW release package:
              - ni_jpeg_test
              - ni_watermark_test
              - ni_xstack_application
[LIBAVFILTER/LIBXCODER] Add support in ni_quadra_hwupload filter to select card with NVMe path (eg. /dev/nvme0n1)
[LIBAVFILTER] Improve performance of the ni_quadra_drawtext filter
[LIBAVCODEC/LIBXCODER/OTHER] In FFmpeg-n3.1.1 add support for encoder color info sequence change 
[GSTREAMER] Fix missing HDR data fields when mapping Gstreamer HDR to FFmpeg
            Add support for HDR10+ and UDU SEI sidedata
[LIBXCODER/TOOLS] Remove obsolete hardware management API functions:
                  - ni_rsrc_get_available_device()
                  - ni_rsrc_allocate_auto()
                  - ni_rsrc_allocate_direct()
[GSTREAMER] Set resolution limits of niquadrah264dec/niquadrah265dec to 144-8192
[FFMPEG] Backport FFmpeg-n4.4+ behavior to initialize picture color parameters before initialzing encoder
[LIBAVCODEC/LIBXCODER] Support zeroCopyMode in semi-planar pixel formats
                       Support hwupload zeroCopyMode for semi-planar pixel formats (linesize requires 128 bytes alignment)
                       Modify encoder zeroCopyMode=-1 (default) policy to enable zero copy if resolution >= 1080p, regardless of bit depth and pixel format
                       Changing FW API version to 6q
[LIBAVCODEC/LIBXCODER/OTHER] In FFmpeg-n3.1.1, generate header for first IDR when container requires it (eg. FLV)
[FFMPEG/LIBAVCODEC/LIBAVFILTER/OTHER] Add FFmpeg-n6.0
[LIBXCODER] Fix libxcoder/FFmpeg 2-pass mismatch by adding 32 alignment padding to chroma
[OTHER] Set default key frame interval to indefinite for anbox-cloud plugin
[LIBAVCODEC] Fixed FATE failures in FFmpeg-n3.1.1
[APIEXAMPLES] Fix libavcodec apiexample ni_2D_engine_application container parsing
[LIBXCODER] Add encoder per-frame info reporting:
            - min/max motion vector x/y info
            - encoded frame (packet) size info
            - inter/intra CU count
            Changing FW API version to 6p
[LIBXCODER] Add xcoder-param "hvsBaseMbComplexity" to control shadow trailing
            Changing FW API version to 6o
[APIEXAMPLES] Fix AI apiexample inability to allocate hwframe for filters at low resolution
[LIBAVCODEC] Add RGBA and BGRA direct encoding support (previously direct encoding only supported ARGB and ABGR)
[OTHER] Fix possible exception and memory leak issues in anbox-cloud plugin
[TOOLS] Revert "extend sleep after refresh" as it is unnecessary
================================================================================
Release version: 4.6.0_RC5
Date: 2023-10-09            SW version: 4.6.0_RC5           FW version: 4.6.0_RC2
Compat FW API ver: 6n       Libxcoder API ver: 2.43
--------------------------------------------------------------------------------
[TOOLS] Quadra_quick_installer.sh 
        - fix inability to remove share mem files for libxcoder_quadra
        - support installation of libxcoder_quadra
[OTHER] Update NETINT_FFMPEG_CHANGE_LIST.txt for v4.6.0 release
[TOOLS] Extend sleep after refresh
[LIBXCODER] EcPolicy and enableAdvancedEc xcoder params for decoder
[LIBAVFILTER] Add bicubic scaling to ni_quadra_scale
[LIBXCODER] Perform auto download when NS/VF mismatch detected
[LIBAVCODEC/LIBXCODER] Support float point crf:
                       - add new parameter crfFloat to support float point crf
                       - add new API ni_reconfig_crf2
                       - add new reconfig float point crf mode - XCODER_TEST_RECONF_CRF_FLOAT
[APIEXAMPLES/LIBXCODER] Add width and height for overlay
[GSTREAMER/LIBAVCODEC] New Gstreamer valgrind memory leaks in Reg3 case
[GSTREAMER] Fix odd resolution issue by add draw_round function.
[LIBXCODER] Add new API to select best card
[LIBXCODER] Add encoder option to approach target bitrate & option to set pass-1 qp / trigger HW timeout
            - Add bitrateMode parameter to allow encoder produced bitrate to be closer to target bitrate
            - Add pass1Qp parameter to set pass-1 qp. Setting pass-1 qp to 0 can increase the chance of triggering HW timeout
[LIBAVCODEC/LIBAVFILTER/LIBXCODER] Fix reg Q101215 Q099274 Q099297 && fix memory leak
[LIBAVCODEC/LIBXCODER] Get decoder color info through VUI.
[LIBXCODER] vs2019-libxcoder overcapacity timeout.
            - Add error log for ni_session_keep_alive_thread creation timeout case.
            - Remove keep_alive_thread mutex.
            - Get the current time after one query_stats I/O.
[APIEXAMPLES/LIBAVCODEC/LIBXCODER] Add new parameter minFramesDelay to minimize encoder frame delay, revert lowDelay behaviour
[LIBAVCODEC/LIBXCODER] Use ffmpeg's low_delay param if xcoder's lowDelay param is not set.
[GSTREAMER] Fix output without pts issue for stack/overlay filter in gstreamer 1.18
[LIBAVFILTER] ni_quadra_drawtext Support fontcolor_expr
[APIEXAMPLES/LIBAVCODEC/LIBXCODER] Set the initial value of framerate to 30
                                   Add the low_delay_mode == 2 support for encoder
[LIBXCODER] Add Detail Query support for EP and DP
                        Add text and json format support
[LIBAVCODEC/LIBXCODER] Support decoder low delay for streams not in sequence on FFmpeg-n3.1.1
[LIBAVCODEC] Add ff_xcoder_parse_custom_sei() on FFmpeg-n3.1.1
[FFMPEG/LIBAVCODEC/LIBAVFILTER/LIBXCODER] Refactor encode decode filter
                                          - support compile t408 and quadra
                                          - fix quadra pts dts error
                                          - fix pix format occurs warning
                                          - remove all ni_logan file
[LIBXCODER] Fix maxFrameSize log print
[GSTREAMER] Fix the last frame may not be released issue for niquadraoverlay/niquadrastack filter
[APIEXAMPLES] Fix ni_2D_engine_p2p_test help info
[APIEXAMPLES] Fix ni_xstack reconfig with looped input frame drop/skip
              - Fix pts setting of new input.
              - Fix app stuck on exit issue.
              - Fixed missing skip of eos processing on dynamic drop for SW_VIDEO path
              - Change default log level to INFO
[GSTREAMER] Make default frame pool size to 4.
[GSTREAMER] Modify output frame rate to be second stream's fps on overlay jpeg as main stream
[LIBXCODER] Replace exit() in check_err_rc() with return of NI_RETCODE_FAILURE
[LIBAVFILTER] Make text box length fit the text in multi-text case
              Fix overlay intersection checking.
              Init filter only when overlay starts to take effect.
[OTHER] Support Anbox plugin
[GSTREAMER] Support ni_bg filter on GStreamer libxcoder
[GSTREAMER] Move nienc.c & nicodec.c related code to gstreamer-1.22.2
            - Fix small resolution encode.
            - Fix PPU operations on decoder.
[FFMPEG] Add missing ai_pre_ni_quadra_filter_deps declaration to configure
[FFMPEG] Limit print
[GSTREAMER] Make fps to 1/1 when using niquadrajpegdec
[LIBXCODER] Print decoder, encoder, scaler session ID along with frame index
[GSTREAMER] Gstreamer memory leak in rainy filter
[APIEXAMPLES/LIBXCODER] Keep roi output sps pps same as input
                        add enum for ddr priority mode
[LIBXCODER] Use ni_log instead of  printf and fprintf in xcoder utility.
            Update log in ni_device_test.c and ni_util.c
[LIBAVFILTER/TOOLS] Use AI engine to do scale
[LIBXCODER] Fix frame loss for AV1 encoding
[APIEXAMPLES] Add libxcoder xstack demo
              - extract common used files to ni_test_utils
              - refactor ni_jpeg_test to use APIs in ni_test_utils
              - added external makefile and readme for release
[LIBXCODER] Make ni_rsrc_list and ni_rsrc_mon report FL and FW versions
[LIBXCODER] Reset dev_xcoder_name if it is load mode
[APIEXAMPLES/FFMPEG/LIBAVCODEC] Support AV1 tile codec for all FFmpeg versions
[APIEXAMPLES] Fix ni_xstack multiple output and ladder issues.
[FFMPEG/LIBAVFILTER/LIBXCODER] Add NI filter latency measurement in ffmpeg
[LIBXCODER] Overprovision config support ni_rsrc_namespace.c and multi namespace subsystem query support
[LIBXCODER] Add non-video threshold for dec, enc, upl FW_LOAD
[TOOLS] Add unified upgrade support to quadra_smbus_upgrade.py
[LIBAVFILTER] Remove ni_pad filter input HW frame context pointer checking as it's not valid in FFmpeg 3.1.1 and redundant for other versions
[APIEXAMPLES] Fix ni_xstack reconfig issues
[APIEXAMPLES] Do frame free or hwframe recycle before decoder close for apiexamples
[LIBAVCODEC] For FFmpeg 3.1.1:
             - fixed decode last frames' timestamps to have correct FPS calculated
             - added support for HDR10 SEI mastering display metadata
[FFMPEG/OTHER] Fix type mismatch assembler in mathops.h
               cherry picking the official FFmpeg commit 25cd95a.
[GSTREAMER] Fix original-aspect-ratio settings make output height error.
[APIEXAMPLES/LIBXCODER] Add support for watermark filter
                        Add libxcoder_apiexample/ni_watermark_test.c
[LIBXCODER] Last ditch check for safe keep_alive_timeout and overwrite during ni_device_session_open
[TOOLS] Switch to unified upgrade for quadra_auto_upgrade.sh
[LIBXCODER] Add xcoder-param "ddrPriorityMode" to set DDR priority for dec/enc/filter/ai
            - Set to 0 by default
            - Set to 1 to prioritize decoder and encoder
            - Set to 2 to prioritize filter
            - Set to 3 to prioritize AI
[FFMPEG/OTHER] Add a ffmpeg parameter -force_nidec to force select the ni hw decoder;
               supported values:logan, quadra;
[GSTREAMER] Fix device wrong closing on sequence change
[LIBAVCODEC] Set dtsOffset to 1 for gopPresetIdx=3,7 and 0 conditionally
             This is because ffmpeg sets has_b_frames to 1 if frame type is B
[GSTREAMER] Use ref count to control the hw frame metadata, fix roi filter
[GSTREAMER] Fix invalid buffer size on gstreamer-1.22 hwdowanload filter.
[FFMPEG/LIBAVFILTER/LIBXCODER] Sunset clang-format
[GSTREAMER] Use ref count to control the hw frame metadata, fix roi filter not support queue issue.
[LIBXCODER] Fix xcoder test app h.264 decode SPS packet loss and error log
[APIEXAMPLES] Add 10-bit encoding API examples commit dfa47092e3c02cb2095ac14024b431341257dc97
[LIBXCODER] Unlock mutex on return ni_device_dec_session_flush
[GSTREAMER] Print warning log - no exit for deprecated encode param
[LIBAVCODEC] Correct dtsOffset to support minimal cts for encoder
[LIBAVCODEC/LIBXCODER] Support reconfig of CRF
                       - Add reconfDemoMode 14 for reconfig crf via sidedata
                       - Add reconfDemoMode 114 for reconfig crf via API
[LIBXCODER] Fix minimum scaler resolution
[LIBAVCODEC] Support reconfig bitrate via AVFrame sidedata
[LIBAVFILTER] Set appropriate retcode for rotate filter
[FFMPEG] Fix extralibs for libxcoder in FFmpeg configure file
[APIEXAMPLES] Fix ni_xstack looped input stuck(>3 inputs) and FW memory leak issue.
              - Use enum to track exit state of threads
[LIBXCODER] Check error code in keep alive thread
[LIBXCODER] Pass VP9 source frame rate to encoder for xcoder app
[LIBXCODER] Add descriptive error message when resolution is too large
[LIBXCODER] Reuse device handle in ni_rsrc_mon while loop
[FFMPEG/LIBAVFILTER/LIBXCODER] Add ni_quadra_ai_pre filter to FFmpeg for using Quadra AI with custom network binary
                               Add support in libxcoder/FFmpeg for AI preprocessor filter HW frames
[LIBXCODER] Fix the checking condition to exit immediately in case query for stats failed
[GSTREAMER/TOOLS] Quadra_quick_installer.sh v2.2:
                  - fix missing ldconfig cache update after compiling FFmpeg for gstreamer
                  gstreamer_setup_install.sh v2.3:
                  - remove FFmpeg application after compiling with gstreamer support
[LIBXCODER] Fixed to reject intraRefreshArg and intraRefreshMode for Jpeg encoder
[LIBXCODER] Fix xcoder app repeated reads to always grab and send data
[LIBXCODER] On init ensure that all devices have same count else clean up shared memory
            - Check all share memory files for integrity and consistency.
            - reduce lock poll timeout to 9sec, test waits for 10secs we might not get a chance to clean up
[LIBXCODER] Improve ni_rsrc_mon help text
[LIBXCODER/TOOLS] Keep device name same as namespace in ni_rsrc_mon
[LIBAVCODEC] Fix issues with sequence change transcoding using HWFrames on FFmpeg 3.1.1
[LIBXCODER] Ni_rsrc_namespace option support for QoS mode config
[LIBXCODER] Fix 64-bit size variable print format
[LIBAVCODEC] Support unspecified color range for jepg encoder
[FFMPEG] FFmpeg-n3.1.1/configure check NI HWaccel is enabled or autodetected
[LIBXCODER] Check process priviledge on device session open for Windows target
            On Windows the process opening the device session must be in admin priviledge
            User needs to check NI_RETCODE_ERROR_INVALID_PRIVILEDGE
            return code for verification in the ni_device_session_open function.
[FFMPEG/LIBAVFILTER/OTHER] Make vf_yuv420to444_ni.c and vf_yuv444to420_ni.c independent of libxcoder during FFmpeg compilation
[LIBXCODER] Remove device from ni_rsrc_mon
[LIBAVCODEC] Add supported pix_fmt for jepg encoder
================================================================================
Release version: 4.5.0_RC6
Date: 2023-08-16            SW version: 4.5.0_RC6           FW version: 4.5.0_RC5
Compat FW API ver: 6a       Libxcoder API ver: 2.35
--------------------------------------------------------------------------------
[GSTREAMER/TOOLS] quadra_quick_installer.sh v2.2:
                  - fix missing ldconfig cache update after compiling FFmpeg for gstreamer
[OTHER] Update NETINT_FFMPEG_CHANGE_LIST.txt for v4.5.0
[FFMPEG/LIBAVCODEC/LIBAVFILTER/LIBXCODER] Update co-existence support for Logan/T408 to T408 SW v3.3.0
                                          Excluding update of: apiexamples, non-Linux platforms support
                                          Update libxcoder_logan from T408_XCODER_FFMPEG/LIBXCODER_RELEASE_3.3.0
[LIBXCODER] Add xcoder-param "ppsInitQp" to set h264/h265 PPS init_qp_minus26 value
            Changing FW API version to 6a
[GSTREAMER] Fix stall in avstack_ni_quadra and avoverlay_ni_quadra filters when PTS is not in input
[GSTREAMER] Add niquadraroi filter to gstreamer-1.22.2
[LIBAVCODEC/LIBAVFILTER] Add unsupported HW frame pixfmt check in filters/encoders
[GSTREAMER] Add avdrawbox_ni_quadra filter to gst-build-1.18.0
[GSTREAMER] Fix sequence change bug in gstreamer-1.22.2
[GSTREAMER] Fix inability to chain multiple Netint filters in gstreamer-1.18.0
[FFMPEG/LIBAVFILTER] Add Netint filters to FFmpeg-n3.1.1:
                     - ni_quadra_bg
                     - ni_quadra_bgr
                     - ni_quadra_crop
                     - ni_quadra_hwupload
                     - ni_quadra_overlay
                     - ni_quadra_pad
                     - ni_quadra_yuv420to444
                     - ni_quadra_yuv444to420
[LIBXCODER] Add support for xcoder-param "vbvMaxRate" to limit max bitrate during VBR rate control
            Changing FW API version to 6Z
[APIEXAMPLES] Add libxcoder API examples ni_seperate_normal.c and ni_seperate_error.c to demonstrate correct and incorrect usage of multi NVMe namespace on Quadra
[APIEXAMPLES/FFMPEG/TOOLS] Add libavcodec AI API example ni_roi_transcoder.c to demonstrate use of HW accelerated AI for identifying region of interest
[LIBXCODER] Disable strongIntraSmoothing when "hvsQPEnable=1" for better subjective visual quality
[FFMPEG/OTHER] Add a more descriptive error message when sequence change occurs whilst using HW frames and autoscale
[GSTREAMER] Add support in gstreamer-1.22.2 for AV1 output
[GSTREAMER] Fix incorrect Netint filter settings when cap negotiation reconfigures sinkpad caps
[GSTREAMER] Fix memory leak in base gst-build-1.18.0 and gstreamer-1.22.2 code for gst-libav demux
[GSTREAMER] Add niquadrabgr filter to gstreamer-1.22.2
[LIBAVCODEC] Fix FFmpeg-n3.1.1 sequence bug when changing from low to high resolution
[APIEXAMPLES] In libavcodec API examples ni_av1_tile_transcoding.c and ni_hevc_tile_transcoding.c parse FPS from input instead of assuming 25fps
[LIBXCODER] In libxcoder app, implement a flag to terminate all session threads in a job set when a session thread encounters timeout
[GSTREAMER] When using JPEG input in gst-build-1.18.0, set default FPS to 25
[GSTREAMER] Add niquadraoverlay and niquadraxstack filters to gstreamer-1.22.2
[GSTREAMER] Fix DTS guessing logic in gstreamer-1.22.2 so pipeline will not halt on lack of PTS
[APIEXAMPLES] Add libavcodec API example ni_xstack.c to demostrate multi-threaded usage of Netint hardware accelerated xstack filter
[LIBAVCODEC/LIBXCODER] Support encoding with RGBA/BGRA/ABGR/ARGB pixel formats:
                       - Support RGBA/BGRA/ABGR/ARGB pixel formats direct data transfer to encoder (previously required hwupload to transfer data)
                       - Support zero copy for RGBA/BGRA/ABGR/ARGB pixel in encoder data transfer path
                       Changing FW API version to 6U
[TOOLS] quadra_quick_installer.sh v2.1:
        - remove usage of perl from script except for MacOS
[TOOLS] quadra_android_quick_installer.sh v1.2:
        - allow use of pre-extracted FW/SW release folders
[GSTREAMER] Add niquadrapad filter to gstreamer-1.22.2
[LIBXCODER] Fix libxcoder app bad obu headers when outputing AV1 in obu format
[LIBXCODER] Fix AI session deadlock in libxcoder
[APIEXAMPLES] Add support for AV1 encoded outputs in AI_api_examples for ocr vqe demo
[GSTREAMER] Add niquadrarotate and niquadracrop filters to gstreamer-1.22.2
[GSTREAMER] In gst-build-1.18.0, add p010le pixfmt support for Netint filters
[LIBAVFILTER] Improve performance of ni_quadra_drawtext filter when rendering multiple text boxes
[LIBXCODER] Fix bad frame size check when resolution change (e.g. scale) occurs during zero-copy mode
[LIBAVCODEC] Fix file handle leak when using HW frames during decoding
[GSTREAMER/TOOLS] Use a new gstreamer patch format that encompasses all changes in gst-build/gstreamer folder rather than just gst-libav
                  quadra_quick_installer.sh v2.0:
                  - Add support for new gstreamer patch format
                  - Install gstreamer 1.18.0 to gst-build/, install gstreamer 1.22.2 to gstreamer/
[LIBXCODER] In ni_rsrc_mon, set stdout to line buffered so programs calling ni_rsrc_mon without TTY get same print out as with TTY
[APIEXAMPLES] Improvements to libavcodec API example ni_multi_thread_transcoding.c:
              - Add support for filtering during transcoding
              - Add support for HW frames
[LIBXCODER] Improve CRF rate control mode:
            - Uncapped CRF mode enabled by combining -xcoder-params 'crf' and 'lookaheadDepth'
               - 'crf' is equivalent to libx265 'crf'
               - 'lookaheadDepth' is equivalent to libx265 'rc-lookahead'
             - Bitrate capped CRF mode enabled by combining -xcoder-params 'crf', 'lookaheadDepth', 'vbvBufferSize', and 'bitrate'
               - 'vbvBufferSize' is similar to libx265 'vbv-bufsize' but denoted in milli-seconds of 'bitrate'
               - 'bitrate' is equivalent to libx265 'vbv-maxrate' when using CRF rate control
            - In CRF mode, support parameters crfMax, qcomp, noMbtree, noHWMultiPassSupport, cuTreeFactor, ipRatio, pbRatio, cplxDecay
            - Cannot use CRF with low delay B-frame gop patterns (gopPresetIdx 3, 7, 10)
            - When using CRF with 2pass, min resolution is 288x256
            Changing libxcoder API version to 2.35
            Changing FW API version to 6X
[GSTREAMER] Fix memory leaks in gst-build-1.18.0 involving gchar type
[LIBXCODER] Set max resolution of RGBA/ARGB/ABGR/BGRX to 7040x7040
[GSTREAMER] In gst-build-1.18.0 connect support for all parameters in ni_quadra_drawtext to avdrawtext_ni_quadra
[GSTREAMER] Fix jpeg encoding error in gstreamer-1.22.2 caused by incorrectly set videoFullRange flag
[LIBXCODER] Support FW API option to disable decoder picture reording
            - disable decoder picture reording when using decoder low delay mode
            Changing FW API version to 6W
[APIEXAMPLES] Add libavcodec API example ni_transcode_filter.c to demonstrate HW accelerated transcoding with HW accelerated filtering
[GSTREAMER] Add niquadradrawbox filter to gstreamer-1.22.2
            - Add param is-p2p in niquadradrascale for P2P DMA use
[FFMPEG/OTHER] In FFmpeg configure script, autodetect Netint HW acceleration libraries (eg. libxcoder) to enable Netint codec/filters
[LIBXCODER] Change MEM column in ni_rsrc_mon to be "usage percentage of memory available to submodule (eg. encoder)"
            - Previous method of memory calculation will be in SHARE_MEM column
            - SHARE_MEM is the "usage percentage of memory shared between all submodules on a device"
            - Add fw_video_shared_mem_usage in ni_instance_mgr_general_status_t and ni_load_query_t structs for old method of MEM usage percentage calculation
            - Modify ni_rsrc+mon -o full to include TOTAL and CRITICAL (i.e. MEM_ID_SHARED) only in MEM
            Changing FW API version to 6V
            Changing Libxcoder API version to 2.34
[TOOLS] quadra_quick_installer.sh v1.16:
        - When compiling nvme-cli, do not link to libjson-c as it could have bugs
[LIBXCODER] Allow libxcoder to parse xcoder-params with '-' and '_' used interchangeably
[GSTREAMER] Fix incorrect padding color in avpad_ni_quadra filter when selecting color by name
[LIBAVCODEC] Fix sequence change encoding on FFmpeg-n3.1.1
[LIBXCODER] Fix range check for vbvBufferSize so it can be set to 0
[FFMPEG/LIBAVCODEC/LIBAVFILTER] Add Netint filters to FFmpeg-n3.1.1:
                                - ni_quadra_drawbox
                                - ni_quadra_drawtext
                                - ni_quadra_rotate
                                - ni_quadra_scale
                                - ni_quadra_split
[LIBAVCODEC] Fix sequence change in MP4 container lacking SPS/PPS
[LIBXCODER] Add support in xcoder-param "maxFrameSize" for setting max frame size as a multiple of average frame packet size as determined by encoder
            - Use syntax "maxFrameSize=ratio[#]" (eg. maxFrameSize=ratio[8])
[LIBXCODER] In ni_rsrc_mon, buffer output tables/json for print in one go to avoid libxcoder log messages bisecting tables/json
[LIBAVCODEC] Fix bad printout for explaining errors in user set xcoder-params
[GSTREAMER] When using JPEG overlay in gst-build-1.18.0, set default FPS to 25
[LIBXCODER] Reject use of xcoder-param "gopPresetIdx=10" with "longTermReferenceEnable=1" as hierarchical P-frames is incompatible with long term reference
[LIBXCODER] Add multi-slice encoding support:
            - Add xcoder-param "sliceMode" to enable multiple slices per frame encoding
            - Add xcoder-param "sliceArg" to select number of CTU/MB rows per slice
            Changing FW API version to 6U
[GSTREAMER] Add niquadrascale filter to gstreamer-1.22.2
            Fix GStreamer-1.22.2 hwdownload filter inability to operate with some pixfmts
[LIBXCODER/TOOLS] Fixes for overcapacity handling on VS2019 build
                  Changing libxcoder API version to 2.32
[APIEXAMPLES] Update README in libavcodec_api_examples with instructions on building for Android
[LIBAVCODEC] Move XCoderH265EncContext from stack to heap
[GSTREAMER] Fix gstreamer num-buffers param decoding incorrect frame count
[FFMPEG/OTHER] Backport official FFmpeg-n4.3 fix 3d894db7 for incorrect mp4 container duration tag when last packet is not greatest PTS
================================================================================
Release version: 4.4.0_RC4
Date: 2023-06-16            SW version: 4.4.0_RC4           FW version: 4.4.0_RC3
Compat FW API ver: 6T       Libxcoder API ver: 2.31
--------------------------------------------------------------------------------
[KNOWN-ISSUE] The following GStreamer fixes are not available if using quadra_quick_installer.sh to install GStreamer:
              - "Add support for multifilesrc looping with ivf inputs"
              - "Fix missing sps header when encoding AV1 into mp4 container using Gstreamer by backporting a fix from Gstreamer v1.22"
              - "Fix Gstreamer deadlock when adding a queue element after Netint decoder due to concurrency issue"
[KNOWN-ISSUE] If FFmpeg is build with MSVS2019 for co-existence with Logan SW release v3.1.0, the logan decoder (-dec)
              and encoder (-enc) numbers must be specified in the FFmpeg command line when using logan devices
[KNOWN-ISSUE] FFmpeg-n3.1.1 and FFmpeg-n3.4.2 cannot be built for co-existence with Logan SW release v3.1.0
[KNOWN-ISSUE] In ni_rsrc_mon the printout for "# devices retrieved from current pool at start up" is bisected by other prinouts
[OTHER] Update NETINT_FFMPEG_CHANGE_LIST.txt for v4.4.0
[APIEXAMPLES] Improvements for libavcodec apiexample ni_multi_thread_transcoding.c:
              - Fix output timestamps bug
              - Add initial support for HWframes transcoding
                - Support elementary stream input only for now
                - No sequence change support
[TOOLS] quadra_auto_upgrade.sh v3.9:
        - Replace perl regex with grep regex
[GSTLIBAV] Fix incorrect output FPS in GStreamer AV1 output
[LIBAVCODEC/LIBXCODER] Add support for aspect ratio, color desc, and timing info in SPS/sequence-header of AV1 & AVC
[GSTLIBAV] Fix gst-libav memory leaks:
           - When registering flag/enums
           - When creating `GArray *values`
           - When receiving packet from encoder
           - When setting/getting encoder properties
[LIBXCODER] In libxcoder P2P demo app add support for ABGR/ARGB/BGRA/BGR0 inputs via color space conversion on Quadra
[APIEXAMPLES/LIBXCODER] Combine libavcodec apiexamples for HEVC and AV1 tile encoding:
                        - Combine ni_av1_tile_encoding.c and ni_hevc_tile_encoding.c into ni_tile_encoding.c
                        - Do not distribute tile encoding over multiple cards
                        - Reduce maximum number of tiles to 36 (6x6)
[APIEXAMPLES/FFMPEG/LIBAVCODEC] Add AV1 tile based transcoding for gopPresetIdx=1
                                - Add apiexample/ni_av1_tile_transcoding.c
                                - Add libavcodec/ni_av1*
                                - Min width/height: 256
                                - Max tiles: 128
                                Changing libxcoder API version to 2.30
                                Changing FW API version to 6S
[LIBAVCODEC/LIBXCODER] For Netint codecs in libavcodec, add params for autoselection of card to use based on modeled load (-bestmodelload) or real load (-bestload)
[FFMPEG] Fix incorrect BGRP frame initialization in FFmpeg-n5.0
[APIEXAMPLES] In libavcodec apiexample ni_xstack.c add support for input looping and null output
[LIBXCODER] Move SSIM information printed by xcoder-param "enableSSIM=1" to loglevel info
[LIBXCODER] Add ni_log.h:ni_log_set_log_tag() in Android compile to set a global log message prefix
            Changing libxcoder API version to 2.29
[GSTLIBAV] In GStreamer report support for P010_10LE pixel format on avcrop_ni_quadra and avpad_ni_quadra filters
[LIBXCODER] Fix incorrect stream FPS of libxcoder app transcoded outputs
[LIBAVCODEC/LIBXCODER] Reject unsupported xcoder-params on JPEG and AV1 encoders
[TOOLS] Quadra_quick_installer.sh v1.14:
        - remove libmount-dev as a prerequisite package
[LIBXCODER] In ni_rsrc_mon, prevent error messages from printing in between lines of ni_rsrc_mon output table
[LIBXCODER] Add maxFrameSize_Bytes encoder param
            Add maxFrameSize_Bits encoder param
            Fix MSVS2019 compile in presense of deprecated code
            Changing libxcoder API version to 2.29
[LIBXCODER] Improve robustness of keep-alive signal check on hosts with strained CPU resources:
            - Add last_access_time consideration when determining session timeout to better account for when CPU does not regularly check keep alive signal
            Changing libxcoder API version to 2.28
[LIBAVCODEC/LIBXCODER] Add support for ARGB and ABGR pixel format input to encoder when using HW frames
[FFMPEG] Fix Gstreamer avhwuploader_ni_quadra element causing downstream scaler element to open session on wrong card in multicard environment
[LIBXCODER] Add encoder xcoder-param "AIEnhanceLevel" (1-3) for use with AI enhanced encoding feature "enableAIEnhance=1"
            Changing FW API version to 6R
[LIBXCODER] Fix wrong log level for a log message during device connection on windows
[APIEXAMPLES/FFMPEG/LIBXCODER] Add libavcodec apiexample for yuv444p to 2*yuv420p conversion
                               Add libavcodec apiexample for 2*yuv420p to yuv444p conversion
                               Fix image corruption in ni_quadra_yuv420to444 and ni_quadra_yuv444to420 filters when resolution requires alignment padding
[APIEXAMPLES] In libavcodec apiexample ni_xstack.c add new param '-I' to input image file for overlay
[LIBXCODER] For 2-pass encode, check and block custom gop patterns incompatible with 2-pass encode
[GSTLIBAV] Add avdrawtext_ni_quadra filter to GStreamer
[LIBXCODER] Add ni_util.h:ni_ai_errno_to_str() to translate AI session error codes to description strings
            Changing libxcoder API version to 2.27
[FFMPEG] Fix bug initializing ni_quadra_drawtext filter on FFmpeg-n5.0+
[GSTLIBAV] Fix bug in avstack_niquadra when combining multiple inputs of different lengths using 'shortest=1'
[LIBXCODER] Move log messages in libxcoder which can print more than once per frame to NI_LOG_TRACE
[TOOLS] quadra_quick_installer.sh v1.13:
        - Thoroughly remove libav from system before FFmpeg installation by considering all paths in ld.so.conf
        - Add prompt for custom build_ffmpeg.sh flags
[LIBAVCODEC/LIBXCODER] In h264_ni_quadra_dec add support for decoding selected temporal layers with -xcoder-params "svctDecodingLayer"
[LIBAVCODEC] Fix incorrect libavcodec version check in FFmpeg-n5.0 for enabling DolbyVision support
[TOOLS] quadra_quick_installer.sh v1.12:
        - Fix inability to install gstreamer after ffmpeg compiled for gstreamer
[FFMPEG] Fix ni_quadra_drawtext filter applying shifted background under text
         Fix ni_quadra_overlay filter applying stretched background under overlay image when it has transparent elements and is larger than background image
         Fix ni_quadra_drawtext filter box param to generate same dimension of boxes as SW drawtext filter
[FFMPEG/LIBAVCODEC/LIBXCODER] Add xcoder-param "zeroCopyMode" to enable or disable zero copy (by default auto-enabled for resolution >=1080p)
                              - Improves performance by reducing host memory copy
                              - Add zero copy sample code in libxcoder app encode and sequence change paths
                              Changing libxcoder API version to 2.26
                              Changing FW API version to 6Q
[APIEXAMPLES] Remove '--stack_output_resolu' arg in libavcodec apiexample ni_xstack to simplify usage
[APIEXAMPLES] Support AV1 encoding in libavcodec apiexamples:
              - ni_2D_engine_p2p_test.c
              - ni_multi_thread_encode_video.c
              - ni_multi_thread_lowdelay_encode.c
              - ni_multi_thread_transcoding.c
              - ni_xstack.c
[LIBXCODER] Fix invalid encoder session completion printout when using Gstreamer's avhwupload_ni_quadra element
[LIBXCODER] Map libxcoder log levels to Android log levels error, info, and debug
[LIBXCODER] In libxcoder app add support for multi-threaded yuv444to420 encoding
[LIBXCODER] Add xcoder-param "enable2PassGop" for 2pass encoding to retain same GOP pattern as set in gopPresetIdx
            Otherwise, encoder will use B frames instead of P frames for visual improvement
            Changing FW API version to 6P
[FFMPEG] Add warning message in FFmpeg app compiled with flags for GStreamer integration
         The changes in libavcodec to improve GStreamer integration interferes with use of libavcodec by FFmpeg app
[APIEXAMPLES] Fix bugs in libavcodec apiexample ni_xstack.c:
              - unexpected key frame following behavior
                - key frame following is now optional with '-k' arg
              - unexpected number of SPS headers in output
              - extra frame in output
[LIBXCODER] Add "system load" to ni_rsrc_mon
            - "system load" is a summary of the highest load amongst the subsystems (decoder, encoder, etc.) of a Quadra device
            - add simple and full output formats accessible with '-o'
            Changing libxcoder API version to 2.25
            Changing FW API version number to 6O
[LIBAVCODEC] Fix memory leak when parsing user params for Netint codecs
[FFMPEG] Fix unintended cropping when using text shadow in ni_quadra_drawtext filter
[FFMPEG] Fix memory leak when closing ni_quadra_drawbox filter
[APIEXAMPLES] In libavcodec apiexample ni_ocr_vqe_transcoder.c add support for jpeg input
[FFMPEG] Fix discrepancy between windows and linux results of ni_quadra_hwdownload filter
[LIBXCODER] Fix file descriptor leak in libxcoder compiled for Android
[LIBXCODER] Set supported minimum resolution to be 144x144 for all codecs except JPEG
            Minimum resolution for JPEG is 48x48 when decoding, 32x32 when encoding
[FFMPEG] In build_ffmpeg.sh add `--static` arg to compile ffmpeg entirely static
[FFMPEG/LIBAVCODEC/OTHER] Auto-insert ni_quadra_rotate filter when hw frames needs auto-rotation (eg. when mp4 metadata specifies rotate)
[LIBXCODER] Allow main-tier (default) or high-tier selection on AV1 and H265 encoders
[TOOLS] quadra_quick_installer.sh v1.11:
        - If compiling FFmpeg for Gstreamer integration, print warning and remove FFmpeg app
        - Improve handling for init_rsrc on MacOS
[TOOLS] quadra_quick_installer.sh v1.10:
        - Fix bug preventing use of quick_installer when SW tarball not extracted first
        - Fix bug installing yasm on MacOS
[GSTLIBAV] Add support for multifilesrc looping with ivf inputs
[LIBXCODER] Add scaler session context into hwupload thread function param to support yuv420p pixel format conversion for NI encoding
            Changing libxcoder API version to 2.24
[FFMPEG] Fix a small memory leak when closing ni_quadra_split filter
[FFMPEG] Remove references to yuv420to444_ni_logan and yuv444to420_ni_logan filters as they do not exist
[GSTLIBAV] Fix resource leak when closing GStreamer Netint filters
[FFMPEG] In FFmpeg-n4.1.3/build_ffmpeg.sh remove windows compile target
[LIBXCODER] Add ni_ai_session_read_metrics() to ni_device_api.h for querying performance metrics
            Changing FW API version to 6N
[FFMPEG] Fix build_ffmpeg.sh issue when targeting Android on ARM32
================================================================================
Release version: 4.3.0_RC3
Date: 2023-04-18            SW version: 4.3.0_RC3           FW version: 4.3.0_RC3
Compat FW API ver: 6M       Libxcoder API ver: 2.23
--------------------------------------------------------------------------------
[KNOWN-ISSUE] In ni_rsrc_mon json output format there is a typo. "PCLE_ADDR" should be "PCIE_ADDR"
[KNOWN-ISSUE] There is some excessive log spam (more than once per frame) at log level debug
[KNOWN-ISSUE] The following fixes are not available if using quadra_quick_installer.sh to install Gstreamer:
              - "Fix missing sps header when encoding AV1 into mp4 container using Gstreamer by backporting a fix from Gstreamer v1.22"
              - "Fix Gstreamer deadlock when adding a queue element after Netint decoder due to concurrency issue"
[KNOWN-ISSUE] If FFmpeg is build with MSVS2019 for co-existence with Logan SW release v3.1.0, the logan decoder (-dec)
              and encoder (-enc) numbers must be specified in the FFmpeg command line when using logan devices
[LIBXCODER] Fix deadlock on Windows when lowDelay decoding is interrupted by non-sequential frames in stream and separate threads are being used for decoder send&recv
[FFMPEG/OTHER] Update NETINT_FFMPEG_CHANGE_LIST.txt for v4.3.0
[GSTLIBAV] Add support for AV_PIX_FMT_YUV420P10LE and AV_PIX_FMT_YUV420P010LE in avhwdownload_ni_quadra, avhwupload_ni_quadra, avroi_ni_quadra, and avscale_ni_quadra
[LIBXCODER] Add more return code checks to calls of ni_rsrc_get_device_context() as it could fail due to insufficient file permission, etc.
[APIEXAMPLES/FFMPEG/LIBXCODER] In Netint filters add "is_p2p" param for outputting to P2P destination
                               Add libavcodec apiexample ni_2D_engine_p2p_test to demonstrate p2p output from Netint filter
[FFMPEG/LIBXCODER] Fix bug in ni_quadra_scale filter processing NV16 and BGRP frames with width that is not a multiple of 8
[LIBXCODER] Set minimum vbvBufferSize to bitrate/framerate
[APIEXAMPLES/FFMPEG/LIBXCODER/OTHER] Add Netint HW frame drawtext filter ni_quadra_drawtext
                                     Due to dependecy upon libfreetype and libfontconfig this filter must be explicitly enabled in build_ffmpeg.sh using --nidrawtext
                                     Add option to use text overlay in ni_xstack libavcodec apiexample
[LIBXCODER] Fix libxcoder app AV1 encoding sequence change
[LIBXCODER] Fix bug where zombie processes may appear in ni_rsrc_mon seldomly due to unclosed popen() handles
[APIEXAMPLES] In ni_xstack libavcodec apiexample add option to scale after xstack
[GSTLIBAV] Fix Gstreamer deadlock when adding a queue element after Netint decoder due to concurrency issue
[FFMPEG] Fix undefined resolution rounding in ni_quadra_rotate filter by explicitly rounding odd resolutions up to nearest even number
[FFMPEG/LIBAVCODEC] Disallow use of zero mem copy frame transfer between libavcodec and libxcoder when using 2-pass encoding and resolution is not divisible by 32
[FFMPEG] Fix missing chroma component in output when using ni_quadra_scale to change pixfmt from semiplanar (nv12, p010le) to planar (yuv420p, yuv420p10le) then immediately using ni_quadra_hwdownload
[FFMPEG/TOOLS] Add Android_quick_installer scripts to SW release package
[GSTLIBAV] Fix missing sps header when encoding AV1 into mp4 container using Gstreamer by backporting fix from Gstreamer v1.22
[LIBXCODER] Initial AI enhanced encoding support with xcoder-param "enableAIEnhance=1"
            Changing FW API version to 6M
            Changing libxcoder API version to 2.23
[LIBXCODER] Add "-e" arg to libxcoder app to control encoder throughput framerate
[FFMPEG] Fix bug compiling FFmpeg with Quadra and Logan support disabled by adding libxcoder as a dependency for Netint filters in FFmpeg configure script dependency checks
[GSTLIBAV] Fix multi-thread concurrency issue in Netint Gstreamer filters
[GSTLIBAV] Add HDR10+ metadata handling in Gstreamer
[FFMPEG/LIBXCODER/TOOLS] Add support for Quadra+Logan co-existence on Windows
[FFMPEG/GSTLIBAV/LIBXCODER] In ni_quadra_overlay/avoverlay_ni_quadra filter, add support for inplace overlay for improved performance
                            - Enable functionality with param "inplace=1"
                            - Note, do not use inplace overlay after ni_split or split filter in filter graph
                            Changing FW API version to 6L
[LIBXCODER] Add check to reject 2-pass encode when using intra refresh or long term reference frames
[GSTLIBAV] In Gstreamer avhwupload_ni_quadra filter add support for hwframe input
[GSTLIBAV] Fix bug in Gstreamer avoverlay_ni_quadra filter when using a picture as second input
[GSTLIBAV/TOOLS] Add run_quadra_gstreamer.sh to SW release package
[GSTLIBAV] Fix memory leak in Gstreamer avxstack_ni_quadra filter
[GSTLIBAV] Fix inability to run Gstreamer avscale_ni_quadra filter when not specifying output resolution (ie. only using filter for pixfmt conversion)
[FFMPEG/GSTLIBAV/LIBXCODER] Add AI background removal filter ni_quadra_bgr/avbgr_ni_quadra
                            This is more performant than AI background replacement filter ni_quadra_bg/avbg_ni_quadra
                            Add skip parameter to ni_quadra_bgr/avbgr_ni_quadra and ni_quadra_bg/avbg_ni_quadra filters to allow skipping AI inference for n frames
[LIBAVCODEC/LIBXCODER] Fix incorrect values reported by FFmpeg showinfo filter for "is_key", "type", and "pos" when using Netint decoder
                       Changing libxcoder API version to 2.22
[LIBXCODER/TOOLS] Add -lrt to libxcoder pkg-config settings
[APIEXAMPLES] Add libavcodec apiexamples compile suport for libavcodec from FFmpeg-n3.4.2
[LIBAVCODEC] Modify xcoder_send_frame() return code:
             - return 1 when dropping HW frames due to full encoder write buffer
             - return 0 when encoder write buffer is full to avoid applications resending frame which has been internally enqueued in nienc
[GSTLIBAV] Fix incorrect output resolution when relying on "force_aspect_ratio" or "divisible_by" params in Gstreamer avscale_ni_quadra filter
[FFMPEG] Fix Netint decoder compatibility with FFmpeg "-stream_loop" arg
[GSTLIBAV] Fix bug inputing 10bit picture into Gstreamer avscale_ni_quadra filter due missing GST_VIDEO_FORMAT_I420_10LE to AV_PIX_FMT_YUV420P10LE translation in Gstreamer framework
[GSTLIBAV] Fix segfault in Gstreamer avhwdownload_ni_quadra filter when the source file width is not a multiple of 4
[FFMPEG/OTHER] Fix h265 input parsing in FFmpeg-n3.4.2 when dummy buffers are present by backportning fix from FFmpeg-n4.0
[LIBXCODER] Support using ni_session_statistic_t query in AI interfacing functions to improve performance
            Changing FW API version to 6K
[LIBAVCODEC] Fix handling for invalid sessionID during encoder xcoder_receive_packet()
[GSTLIBAV] Add support for keep_alive_timeout and SW frame into to Gstreamer avroi_ni_quadra filter
[FFMPEG/LIBXCODER] Support combining AI network input and output limits to a single limit of 10 for I/O
                   Changing FW API version to 6J
[APIEXAMPLES] Add libavcodec apiexample tools/apiexample/ni_xstack.c for ni_quadra_xstack filter demo
[LIBXCODER] Fix random stream hang in libxcoder app when transcoding in low delay mode
[GSTLIBAV] Fix bug in Gstreamer avoverlay_ni_quadra filter where eof_action=endall does not stop the stream
[FFMPEG] Move NI pix fmt to the end of pix fmt enums for more robustness when linking to apps built with old libavutil headers
[TOOLS] Add ni_quadra_bg and ni_quadra_drawbox filters to MSVS2019 build of FFmpeg
[LIBAVCODEC] Add checks for custom gop configuration
[LIBXCODER/OTHER] Add support for libxcoder on Android 11 and 9 using customized Android service: nidec
[FFMPEG] Fix bug preventing use of negative numbers (auto aspect ratio) in ni_scale width/height parameters in FFmpeg-n4.3+
[LIBXCODER] Fix loss of bitrate/frame rate reconfig setting after sequence change to larger resolution
            Changing libxcoder API version number to 2.21
[GSTLIBAV] Fix loss of timestamp accuracy in gst-libav by applying official Gstreamer commit 50db5944
[LIBXCODER] Add support for temporal layers and hierarchical-P gop pattern (gopPresetIdx 10)
            1. Enable temporal layer ID generation with xcoder-params "temporalLayersEnable=1"
            2. Add hierarchical-P gop pattern (gopPresetIdx 10)
            3. Reject encode command if gop pattern conflicts with useLowDelayPocType setting
            4. Modify contraints of useLowDelayPocType, this option is allowed for gopPresetIdx 1/3/7/9 and custom gop with gop size 1
            Changing libxcoder API version to 2.20
            Changing FW API version to 6I
[GSTLIBAV] Fix unexpected application of frame type following when transcoding in Gstreamer
[LIBXCODER] In ni_rsrc_mon add output format "-o json1" (all info in one js object)
[TOOLS] Add gstreamer installation to quadra_quick_installer.sh
[TOOLS] quadra_quick_installer.sh v1.9:
        - allow installation from tarball extracted folder
        - fix bug on MacOS by avoiding use of `timeout`
[LIBXCODER] Fix stream termination when VP9 sequence changes from low to high resolution
[FFMPEG] Fix handling for in ni_quadra_drawbox filter when drawing boxes with width/height of 0
[OTHER] Fix AMD P2P demo app compilation on linux 5.19 (g++12)
[GSTLIBAV] Replace Gstreamer asf_demuxer with ff_asf_demuxer (from FFmpeg) to improve robustness demuxing of streams with improper timestamps
[FFMPEG/LIBXCODER/OTHER] Support YUV444P to 2xYUV420P encoding in libxcoder app
                         This is similar to the ni_quadra_yuv444to420 filter in libavfilter
                         Refactor code from ni_quadra_yuv444to420 filter to new libxcoder function ni_util.c:ni_copy_yuv_444p_to_420p()
[LIBXCODER] Add support in libxcoder app for multiple output files (eg. for yuv444to420 encoding) using multiple "-o" args
[FFMPEG] Fix bug in ni_quadra_bg filter when system has multiple Quadra cards
[FFMPEG/GSTLIBAV] Fix segviolation in Gstreamer avrotate_ni_quadra filter
[FFMPEG/LIBAVCODEC/LIBXCODER] Add support for encoding reconfig of minQpI, maxQpI, minQpPB, maxQpPB, and maxDeltaQp
                              Changing libxcoder API version to 2.19
[TOOLS] quadra_auto_upgrade.sh v3.8:
        - fix printout indentation bug in quadra_auto_upgrade.sh with Ubuntu22
[TOOLS] quadra_auto_upgrade.sh v3.7:
        - add script version printout at start of script
        - add --reboot_req_exit_code arg to use exit code 3 when reboot is required after script ends
        - add more error messages during --reinit_after_warm_upgrade to show what went wrong
        - do not use gawk in detection of number of running instances as it is not commonly available
        - fix cosmetic bug where stated number of quadra cards dectected is always 1
[FFMPEG/LIBAVCODEC/LIBXCODER] Fix use of HW frames in MSVS2019 build of libxcoder and FFmpeg
[OTHER] Fix Netint dma-buf kernel driver compilation on linux 5.19
[FFMPEG/LIBXCODER] For ni_quadra_drawbox filter support drawing up to 5 boxes per frame
                   Changing FW API version to 6H
                   Changing libxcoder API version to 2.18
[GSTLIBAV] Fix inability to passthrough color SEIs when transcoding HDR/HLG clips in Gstreamer
[LIBXCODER] Add value check for video_full_range_flag arg of libxcoder/source/ni_device_test.c:encoder_open_session()
            Now, the arg must be explicitly set to 0 or 1
[LIBXCODER] Fix out of bounds memory access when encoding from YUV with masterDisplay and maxCLL parameters
[APIEXAMPLES] Conditionally compile some libavcodec apiexamples depending on libavcodec version
              - All apiexamples supported in libavcodec from FFmpeg-n4.3.1
[LIBAVCODEC/LIBXCODER] Add checks for unsupported features on jpeg and av1 encoders
                       - add checks for invalid feature+codec combinations in libxcoder
                       - add checks for use of DolbyVision on unsupported FFmpeg versions
                       - disable xcoder-param "repeatHeaders" for JPEG encoder
[GSTLIBAV] Fix bug preventing use of Gstreamer "divisible-by" arg
[LIBXCODER] Add support in gopPresetIdx=9 (consecutive P frames) for lookAheadDepth>0
            Changing libxcoder API version 2.17
[LIBXCODER] Added "-u | --user_data_sei_passthru" to libxcoder app for enabling user data unregistered SEI passthrough
[LIBXCODER] Add support for RGBA encoding in libxcoder app
            - underlying implementation will use Quadra HW scaler filter to change pixel format to yuv420p before encoding
[LIBXCODER] Add pixel format input arg to libxcoder app
[LIBXCODER] Refactor hwupload code of libxcoder app
[LIBXCODER] Add libxcoder/source/ni_device_api.c:ni_hwframe_buffer_recycle2() function
            - compared to ni_hwframe_buffer_recycle() it does not require inputting device handle parameter
[LIBXCODER] Fix Netint rsrc initialization on MacOS in presence of non-Netint NVMe devices
[TOOLS] Add tools/AI_benchmarking_examples/ to SW release for example AI BG and ROI filter network binaries and benchmark videos
[LIBXCODER] Add xcoder-param "newRcEnable" to enable/disable new rate control (enabled by default for 1-pass non-low-delay gop presets)
            Add xcoder-param "ctbRowQpStep" for CU level RC tuning (default -255)
            Changing libxcoder API version to 2.16
            Changing FW API version to 6G
[FFMPEG/LIBAVCODEC/OTHER] Add FFmpeg-n3.1.1 support
[LIBXCODER] Fix pthreads library usage issues when attempting to start streams over max instance capacity on linux 3.10.*
[FFMPEG/LIBXCODER] Fix stream loss when scaling to non-32 aligned horizontal stride, then converting to BGRP format, and then hwdownloading the BGRP frame
[LIBAVCODEC/LIBXCODER] Make error messages more clear when encoder open session fails due to invalid parameters detected by FW
[LIBXCODER] Improve performance of libxcoder app by using 4K aligned buffer for YUV frames
[LIBXCODER] Move ni_pthread_*() functions to libxcoder public API
[FFMPEG/LIBXCODER] Add drawbox, rotate, and xstack to ni_rsrc_list description of quadra capabilites
                   Fix description for bg filter in FFmpeg "-filters" output
[LIBXCODER] Fix inability to use semiplanar pixfmt (eg. NV12) output in libxcoder app
[TOOLS] Fix stack overflow in MSVS2019 functions allocating ni_device_t by setting stack size to 4M (same as linux gcc)
[FFMPEG/OTHER] Add mpegts support for maximum bitrate descriptor for Program Map Table, in program info and each elementary stream info section
[APIEXAMPLES] In ni_encode_video libavcodec apiexample add support for AV1
[TOOLS] quadra_quick_installer.sh v1.8:
        - remove references to libxcoder old nvme driver as the feature has been removed since 034568bfbd109936116a6e05453ee8558ef66fa2
        - fix bug in quadra_quick_installer.sh during libxcoder installation determination for whether to use old nvme driver
        - fix quadra_quick_installer.sh init_rsrc app call
        - fix bug in quadra_quick_installer.sh where pwd is stuck in /dev/shm after installation of libxcoder
================================================================================
Release version: 4.2.1_RC1
Date: 2023-01-17            SW version: 4.2.1_RC1           FW version: 4.2.1_RC1
Compat FW API ver: 6F       Libxcoder API ver: 2.15
--------------------------------------------------------------------------------
[FFMPEG/LIBXCODER] Add support for multi-threaded filter
                   Multi-threaded filtering will no longer result in "ERROR ni_decoder_session_read_desc(): Oversized metadata!" symptom
                   Changing libxcoder API version to 2.15
================================================================================
Release version: 4.2.0_RC5
Date: 2023-01-13            SW version: 4.2.0_RC5           FW version: 4.2.0_RC3
Compat FW API ver: 6F       Libxcoder API ver: 2.14
--------------------------------------------------------------------------------
[LIBXCODER] Improve performance in libxcoder app by using 4K aligned buffer to hold YUV data when encoding
            Optimize metadata buffer allocation so that it does not always allocate minimum of 8KB
[TOOLS] Update quadra_auto_upgrade.sh to v3.6:
        Fix false negative when checking for passwordless sudo access on slow hosts
        Fix bug in creating upgrade_log when quadra_auto_upgrade.sh was previously run with sudo
        Fix bug where cold upgrade is never auto-selected
[LIBXCODER] Add support for VP9 input (decode) and AV1 output (encode) when transcoding in libxcoder app
[LIBXCODER] Update ni_libxcoder_dynamic_loading.h for v4.2.0
[LIBXCODER] Use log level debug for ni_rsrc_api messages about detecting non-Netint NVMe devices
[FFMPEG/OTHER] Update NETINT_FFMPEG_CHANGE_LIST.txt for v4.2.0
[GSTLIBAV] Fix occasional dropped first frame for some inputs when Gstreamer outputs to mp4/mpegts container
[LIBXCODER] Fix ni_device_test.c:vp9_parse_header() bug caused by VS2019 over optimization
[LIBXCODER] Fix bug using ni_quadra_scaler filter with p2p mode when system has different indicies for NVMe device path vs namespace path
[LIBXCODER/TOOLS] Add ni_rsrc_namespace application to configure individual SRIOV NVMe namespace number
                  Changing FW API version to 6F
[LIBXCODER] Fix rare I/O error when using hwdownload filter
[LIBXCODER] Allow for non-contiguous memory allocation and transfer for Frame's YUV vs metadata
            - Better when system memory is more fragmented
            - Add new struct member ni_device_api.h:ni_frame_t->separate_metadata to control contiguous allocation/transfer behavior
            - Add new function ni_av_codec.h:ni_enc_write_from_yuv_buffer() to send one frame to encoder
            - ni_enc_write_from_yuv_buffer() deprecates ni_device_session_write()
            - xcoder app updated to demonstrate how to use ni_enc_write_from_yuv_buffer() in place of ni_device_session_write()
            Changing libxcoder version to 2.14
            Changing FW API version to 6E
[GSTLIBAV] Add support for frames of odd width/height in Gstreamer filters by aligning them to 2
[LIBAVCODEC] Fix order of HDR10 mastering display primaries values order in SEI during h264 encoding
             Change from FFmpeg's RGB order to h264 standard's BGR order when constructing h264 mastering display aux data in nienc.c
[LIBAVCODEC/LIBXCODER] Fix PTS calculation inaccuracy decoding VFR stream for frames received from decoder after flushing begins
                       For more details see: "APPS564-Codensity QUADRA PTS App Note v2.0.pdf" chapter 5.4
                       Changing FW API version to 6D
[LIBAVCODEC/LIBXCODER] Fix Gstreamer frame loss when transcoding with HW frames
[LIBXCODER] Add low-latency send/recv synchronization mode and its demo case in xcoder app
            New mode is accessed through ni_session_context_t->async_mode=1 (not enabled by default)
            When activated, libxcoder will synchronously write and read one frame at a time to Quadra
            Use of this mode is recommended when send/recv operate on separate threads
            xcoder app will use new low-latency mode when lowDelay and multi-thread is enabled
            When new low-latency mode is enabled, non-zero values in xcoder-param 'lowDelay' will be used to specify milliseconds for low-latency sync to wait for sync before proceeding without sync
[LIBXCODER] Fix incorrect number of rows intra-refreshed per frame when intraRefreshMode=1 and I-frames are forced
[FFMPEG] Add a check in ni_quadra_rotate to not exceed the maximum resolution of 8192x8192
[APIEXAMPLES/LIBXCODER] Add libxcoder apiexample ni_jpeg_test.c for JPEG decoding with libxcoder API
[LIBAVCODEC] Fix bug preventing JPEG decode in Gstreamer
[LIBXCODER] Add xcoder-param "intra_reset_refresh=1" to reset intraPeriod counter when an I-frame is forced
            Changing libxcoder API version to 2.13
            Changing FW API version to 6C
[LIBXCODER] Fix erroneous error messages stating PTS cannot be found from decoder for JPEG
[FFMPEG] Fix missing ni_quadra_rotate filter declaration for FFmpeg-n4.3
[FFMPEG] For ni_quadra_yuv444to420 and ni_quadra_yuv420to444 filters, add 'mode' arg to select between different splitting modes
         Old splitting mode=1 has independently viewable output0 (yuv420p format)
         New splitting mode=0 (default) alleviates horizontal joining line in middle of frame when height is not multiple of 32 and bitrate is not high
[LIBAVCODEC] Fix small memory leak caused by when session open or write fails in FFmpeg-n4.3.1+
[FFMPEG/LIBXCODER/OTHER] Add support for ni_quadra_drawbox filter
                         Changing FW API version to 6B
[FFMPEG] Fix incorrect overlay position (off screen) in ni_quadra_overlay filter when input is HW frame from decoder
[LIBXCODER] Fix incorrect session statistics at stream completion when using HW frame by adding statistics query when closing session running HWframes
[FFMPEG] Fix memory leak when ni_quadra_rotate filter exits due to unsupported rotation angle
[LIBXCODER/TOOLS] Return success when using ni_device_session_close() with invalid session_id as it should be legal
[TOOLS] Update quadra_auto_upgrade.sh to v3.2:
        Can call script from any working directory
        Use nor_flash.bin for warm upgrades
        Update results table to contain more info
        Store netint_fw_upgrade_log.txt in /tmp/ and move it to pwd if upgrade failed
        Allow script to work on PCIe physical functions in the presence of PCIe virtual functions
        Add arg '--reinit_after_warm_upgrade'
        Add arg '--log_to_dmesg' to make stdout/stderr print to dmesg too
        Add arg '--help_full'
        Allow specification of FL_BIN dir path in '--path' arg
[LIBAVCODEC/LIBXCODER] Added support to libxcoder and libavcodec to specify a Quadra card by its NVMe block name instead of its dec/enc index
[LIBXCODER] Fix bug finding NVMe block path from NVMe device path on systems with long path names 
            Increase command return string buffer size in ni_util.c:ni_find_blk_name() from 80B to 128B
[LIBXCODER] Update test_rsrc_api app options
            Remove outdated options '-u' and '-r'
            Add options '-i', '-d', '-D', and '-x' on Linux (see help text for details)
[GSTLIBAV] Add support for avoverlay_ni_quadra filter in Gstreamer
[GSTLIBAV] Add support in Gstreamer avmux_ivf to process AV1 video stream in ivf container
[LIBAVCODEC/LIBXCODER] Add support for maxFrameSize reconfig
                       Changing libxcoder API version to 2.12
                       Changing FW API version to 6A
[LIBXCODER] In xcoder app, add support for HW upload + ladder encode for non multi-thread, non-AV1 codec usage
[LIBXCODER/TOOLS] Fix stack overflow on windows MSVS2019 build of xcoder app
                  - In ni_device_test.c, allocate ni_xcoder_params_t on heap rather than stack
[GSTLIBAV] Add support for avxstack_ni_quadra filter in Gstreamer
[GSTLIBAV] Fix missing hw_pix_fmt capability for avpad_ni_quadra filter
           Change the parameter properties of avpad_ni_quadra to make it changeable at runtime
[LIBXCODER] Fix improper libxcoder resource init when context index is present in NVMe block path (eg. /dev/nvme0c0n1)
[LIBXCODER] Support raw NV12 input to xcoder app using '-is_planar 0' arg
[LIBXCODER] Add ni_rsrc_mon support for json output using '-o json' arg
[GSTLIBAV] Add support for avroi_ni_quadra filter in Gstreamer
[GSTLIBAV] Improvements for Gstreamer filters:
           - Add BGR32 pixel format in gst-libav
           - Add 'device' parameter to ni_quadra_hwupload filter
           - Add 'format', 'filterblit', 'divisible-by', and 'original-aspect-ratio' parameters to avscale_ni_quadra filter
           - Change the parameter properties of avscale_ni_quadra to make it changeable at runtime
[LIBXCODER] Fix getting stuck when ni_rsrc_api attempts to read resource file that is indefinitely locked due to locking process unclean termination
            Use non-blocking query and timeout to read resource files
[APIEXAMPLES] In apiexamples/ni_2D_engine_application apiexample add support for rgba and yuv420p output
[GSTLIBAV] Add support for avbg_ni_quadra filter in Gstreamer
[LIBAVCODEC] Fix buffer overflow in stream header handling when size of headers exceek 1KB
             Improve stream header handling efficiency             
[TOOLS] Quadra_quick_installer.sh support for MacOS
[LIBAVCODEC] Treat FF_PROFILE_UNKNOWN as unsupported profile for Netint decoders
[LIBXCODER] Add xcoder-param av1ErrorResilientMode=1 to enable AV1 error_resilient_mode in AV1 encoder
            This will set primary_ref_frame to PRIMARY_REF_NONE and allow decoders to continue when keyframes are lost/corrupted during transmission
            This will cost some compression efficiency
            Changing libxcoder API version to 2.11
            Changing FW API version to 69
[GSTLIBAV] Add support for avrotate_ni_quadra filter in Gstreamer
[FFMPEG/LIBAVCODEC/LIBXCODER] Full tiled transcoding support:
                              - Adds tiled decoding
                              - Enable with decoder xcoder-params semiplanar0=2
                              - Improves 8k60 10bit performance when used in conjunction with hardware transcoding
                              Changing Libxcoder API version number to 2.10
                              Changing FW API version number to 68
[APIEXAMPLES] Fix bug in tile enc/xcod apiexample where last few frames may be lost when number of tiles is greater than number of encoders
[LIBXCODER] Fix early termination of 2-pass h265/AV1 encoding/transcoding caused by incorrect frame buffer alignment in second pass
[FFMPEG/OTHER] Fix incorrect PTS calculation for mpeg and mpegts format by restoring 33bit PTS buffer for only those formats
[OTHER] Update example apps to use encoder's `ni_session_context_t->meta_size` instead of NI_FW_ENC_BITSTREAM_META_DATA_SIZE
[APIEXAMPLES] For tile codec API examples make error printout more clear when tile width/height lower than minimum tile size
[LIBXCODER/OTHER] Move xcoder_params parsing functions from xcoder app (ni_xcoder_test.cpp) to ni_defs.h/c
                  Changing libxcoder API version to 2.9
[GSTLIBAV] Fix bug in Gstreamer decode->scale/crop->encode pipeline caused by improper passing of resolution
================================================================================
Release version: 4.1.0_RC4
Date: 2022-10-18            SW version: 4.1.0_RC4           FW version: 4.1.0_RC1
Compat FW API ver: 67       Libxcoder API ver: 2.8
--------------------------------------------------------------------------------
[LIBXCODER/OTHER] Changed encoder_receive_data() to use meta_size from encoder context instead of NI_FW_ENC_BITSTREAM_META_DATA_SIZE
                  Fixed example validation condition after ni_encoder_session_read_stream_header() to be `if (rc > 0)`
                  Changed NI_FW_ENC_BITSTREAM_META_DATA_SIZE to be within private libxcoder API
[TOOLS] Add '--yes' arg to quadra_auto_upgrade.sh to skip yes/no prompts
        Add check for passwordless sudo access
[FFMPEG/LIBAVCODEC/LIBXCODER] Fix memory leaks during HW frames and sequence change
[LIBXCODER] Increase line limit for bitrate reconfig file
[APIEXAMPLES/LIBAVCODEC] Support Netint tile parallelism codec on single card
[APIEXAMPLES] Fix loglevel setting in libavcodec API example ni_2D_engine_application.c
[FFMPEG/GSTLIBAV/LIBAVCODEC] Add HW AVFrame support to gstreamer enc/dec
[LIBXCODER] Fix missing frames in libxcoder app when encoding long, 10bit, 4k/8k streams caused by int overflow in variables tracking file size, etc.
[LIBXCODER] Fix for decoder read/write getting blocked when write buff full
[LIBXCODER] Fix performance loss on certain hosts/scenarios caused by glibc heap management constantly requesting and returning memory blocks from kernel
[LIBXCODER] Fix bugs preventing operation of some parameters in ni_rsrc_update
[LIBXCODER/TOOLS] Add 'ni_rsrc_mon -S' to skip init_rsrc
[FFMPEG/LIBAVCODEC] Make decoders advertise their supported pixel formats
                    ni_quadra_pad filter to reject BGRP and YUYV422/UYVY422
                    Specify support for only YUV420P10LE instead of YUV420P10
[LIBXCODER] Disable CU level rate control if rate control is disabled (to match T408 behaviour)
[LIBXCODER] Add Libxcoder build support for Linux virtIO
[LIBXCODER] Add libxcoder API function ni_rsrc_remove_all_devices() to remove all NI resources on a host
            Use 'ni_rsrc_update -D' to remove all NI resources on a host
[APIEXAMPLES] Add libavcodec apiexample ni_multi_encode_scale.c to convert bgra to yuv420p, scale, and encode
[GSTLIBAV] Add Gstreamer plugin gstavpadniquadra to access Quadra HW padding filter
[FFMPEG] In ni_xstack filter, round up x, y, w, h values to nearest even number to avoid
         odd dimensions in target buffer
[TOOLS] Support ni_quadra_rotate for VS2019
[FFMPEG/LIBAVCODEC/LIBXCODER] Quadra+Logan co-existence for FFmpeg-n3.4.2 to n5.0 on Linux based on T408 SW v3.1.0
                              Excluding update of: apiexamples, non-Linux platforms support
[FFMPEG/LIBAVCODEC/OTHER] Add NETINT_FFMPEG_CHANGE_LIST.txt and correct minor discrepancies between different FFmpeg versions
[FFMPEG/LIBXCODER] Add ni_quadra_rotate filter
                   Changing libxcoder API version to 67
[LIBAVCODEC] Reassign decoder output pixel format to yuvj420p if full range color
             Add the gray scale support for Jpeg dec
             Add AV_PIX_FMT_YUVJ420P for quadra av1, h264, and hevc
[LIBAVCODEC/LIBXCODER] Increase query loops in encoder read when write buffer full
[LIBAVCODEC/LIBXCODER] Add customSeiPassthru and enableUserDataSeiPassthru to decoder's xcoder-params
                       Remove nvme_io_size from decoder's xcoder-params
                       Changing libxcoder API version to 2.8
[FFMPEG] ni_quadra_xstack will report VFR output format downstream
         If the sync input finishes early, the ni_quadra_xstack filter will re-sync to another input
[LIBAVCODEC/LIBXCODER] Fix AV1 non-8x8-aligned resolution with ROI cause failure
[FFMPEG] Added handling for extra trailing colons in -xcoder-params
[FFMPEG] Fix frame loss in ni_overlay filter when overlaypic is null
[LIBXCODER] Xcoder app will output AV1 packets into ivf container
[LIBXCODER] Fix odd width encode fail caused by incorrect chroma stride calculation
[GSTLIBAV] Add Gstreamer plugin gstavcropniquadra to access Quadra HW cropping filter
[LIBAVCODEC/LIBXCODER] Fix cases where output bitrate different than set bitrate when encoding VFR
                       Changing libxcoder API version to 2.7
[LIBXCODER/TOOLS] Add flag for enabling libxcoder latency measurement in VS2019 build batch scripts
[FFMPEG/LIBAVCODEC/TOOLS] Add FFmpeg-n5.0
[APIEXAMPLES] For libavcodec API example ni_multi_thread_lowdelay_encode.c, add AV1/jpeg support
[LIBXCODER] Add error message in libxcoder when Quadra does not have sufficient resources to start a session
[OTHER] Move OpenMAX related folder out of libxcoder to same level as FFmpeg plugin patches
        Add OpenMAX support for android 10
[LIBXCODER] Fix xcoder app --repeat option
[FFMPEG] Move libxcoder from FFmpeg GPL library list to permissive libray list for compiling
[FFMPEG/GSTLIBAV/LIBAVCODEC] Add Gstreamer plugin gstavhwuploadniquadra to upload HW frames to Quadra
                             Add Gstreamer plugin gstavhwdownloadniquadra to download HW frames from Quadra
                             Add Gstreamer plugin gstavscaleniquadra to access Quadra HW scaling filter
[APIEXAMPLES/FFMPEG] Add libavcodec API examples ni_encode_ai_test.c and ni_transcode_ai_test.c
[LIBXCODER] Fix libxcoder app input read on Windows when file is not 4KB aligned
[LIBXCODER] Refactor decoder bitstream buffer reallocation
            Changing libxcoder API version to 66
[APIEXAMPLES] Add API example ni_multi_thread_yuv420to444.c
[FFMPEG] Fix frame loss when using intraRefreshDuration
[LIBXCODER/TOOLS] Fix incorrect endianess conversions for max_content_light_level
[FFMPEG] Fix color mishandling in ni_yu420to444 and ni_yuv444to420 filters
[LIBAVCODEC] Fix bug where decoder dropping frame does not free the frame's memory
[LIBAVCODEC] Fix metadata not configured correctly when encoding sequence smaller than 144*128
[LIBXCODER] Add API to get session statistics same as T408
            Report encoded/decoded frame number in encoder/decoder stats when encoder/decoder session complete
[LIBAVCODEC] Only allow YUVJ420P input for jpeg_ni_enc as it requires full color space
[LIBAVCODEC/LIBXCODER] Add support for defining HEVC HDR Mastering Display Colour Volume SEI through xcoder-params
                       Changing FW API version to 65
                       Changing libxcoder API version to 2.6
[FFMPEG] Add parameter to ni_xstack filter to specify which input to sync framerate to
         Default is the first input
[LIBAVCODEC/LIBXCODER] Force IDR on reconfig BR, reset sei send check
                       Changing libxcoder API version to 2.5
[LIBXCODER] Xcoder app decoder read single thread optimization
================================================================================
Release version: 4.0.0_RCB
Date: 2022-08-05            SW version: 4.0.0_RCB           FW version: 4.0.0_RCA
Compat FW API ver: 64       Libxcoder API ver: 2.4
--------------------------------------------------------------------------------
[KNOWN-ISSUE] VLC cannot play h264 at 8192x8192 resolution
[LIBXCODER] Support h265, vp9 decoding and av1 encoding in libxcoder app
[APIEXAMPLES/FFMPEG/LIBAVCODEC/LIBXCODER] Add support for accessing Quadra APIs and Logan APIs through same application code
                                          - libxcoder_logan folder contains logan's libxcoder code
                                          - FFmpeg/Libavcodec contains both quadra and logan code
                                            - use build_ffmpeg.sh options '--quadra' or '--logan'
                                            - build_ffmpeg.sh defaults to compile quadra when neither '--logan' and '--quadra' are specified
                                            - codec names have been changed to contain chip name (eg. h264_ni_quadra_enc)
                                          - Logan function/struct/var/etc names in APIs have been made unique (added 'logan' in name) so they can be imported into same application with Quadra libxcoder
[LIBXCODER] Fix some memory and file descriptor leaks in ni_device_session_open() when ni_device_context_t is not free'd
[OTHER] Add Gstreamer support for gst-libav 1.18.0
[LIBXCODER] Libxcoder MacOS compile support
[LIBAVCODEC] Check supported profile idc before decoding
[FFMPEG/LIBXCODER] Add acquire+rety mechanism for filter buffer
[LIBAVCODEC] Fix freeze during HW frame transcoding by not buffering nienc's input frames when write buffer full
[LIBAVCODEC/LIBXCODER/TOOLS] Fix global variable DLL exporting
[APIEXAMPLES/FFMPEG/LIBAVCODEC/LIBXCODER] Add zero byte frame copy feature built into FFmpeg API with nienc support
                                          Add libavcodec apiexample ni_multi_thread_lowdelay_encode.c
[FFMPEG] Add filter colour range warning if filter receives full-range YUV
         Always set the colour range field in filter output frame to limited
[LIBXCODER] Add libxcoder/source/ni_libxcoder_dynamic_loading.h for Linux dynamic loading support
[APIEXAMPLES] Add libavcodec apiexample ni_2D_engine_application.c for scaling and output pix_fmt selection
[FFMPEG/LIBAVCODEC/LIBXCODER] Enable custom sei passthru and support error concealment for SEI after VCL NAL unit
[APIEXAMPLES] Add more Libavcodec apiexamples for release:
              ni_multi_thread_encode_video
              ni_multi_thread_transcoding
              ni_hevc_tile_decoding
              ni_hevc_tile_encoding
              ni_hevc_tile_transcoding
[FFMPEG/LIBAVCODEC/LIBXCODER] Port decoder/encoder gstreamer support from T408 to Quadra
[FFMPEG/LIBXCODER] Implement 50-input compositor by cascading 8 x 8-input in-place overlay operations
                   Changing FW API version to 64
                   Changing libxcoder API version to 24
[FFMPEG/LIBXCODER] Add yuyv/uyuv/nv16/bgrp/rgba/argb/bgra/abgr/bgr0 format support for netint filter
[APIEXAMPLES/LIBXCODER] Fix PTS guessing for error streams where two consecutive frames have same PTS
[LIBXCODER] Add ni_rsrc_list to Android
[LIBAVCODEC/LIBXCODER] Enable the support of VUI reconfiguration
                       Add new reconfigurable parameter videoFullRange
                       Changing FW API version to 63
                       Changing libxcoder API version to 23
[LIBAVCODEC/LIBXCODER] Add encoder SSIM calculation and reporting through xcoder-param "enableSSIM=1"
                       Changing FW API version to 62
                       Changing libxcoder API version to 22
[LIBXCODER] Fix decoder model load calculation bug causing it to show 0 when under load
[FFMPEG/LIBXCODER] When uploading RGBA, 2D engine requires that frames must have a 16 pixel width alignment and a 64-byte stride
[LIBAVCODEC/LIBXCODER] Add FFmpeg and libxcoder support for decoder low-delay
                        - Enable low delay mode with -xcoder-param "lowdelay=1" or ffmpeg param "-low_delay 1"
                        - FFmpeg parses header for frame order and disables low_delay if input packets is out of order
                        - Low delay mode makes use of busy-query on decoder read
                        Changing FW API version to 61
[OTHER] Support write fence attachment. This means a dma-buf can be attached with write fence or read fence
        The fences share with the same timeline structure
        Modified the test program so that it does file transfer between the producer and consumer threads
[LIBAVCODEC] Fix FFmpeg error exit when pictures are skipped by modifying receive packet not to return EAGAIN when picture are skipped during flush
[LIBXCODER/TOOLS] Support FFmpeg MSVS2019 DLL build
[LIBXCODER] Fix xcoder demo application decode/transcode fail when -s resolution is not specified in xcoder command line
[LIBXCODER] Reject encode if intra refresh cycle (height / intraRefreshArg MB or CTU) = 1 (invalid intra refresh setting)
[FFMPEG] Fix ni_rsrc_mon Share_Mem non-zero failure, caused by ni_hwupload instance not closed when user sets device id -1
[FFMPEG/LIBXCODER] Set fixed_frame_rate_flag to 1 when encoding CFR bitstream
[LIBAVCODEC/LIBXCODER] Support VFR in Quadra same as T408
[LIBXCODER] Add support for encoder sequence change in xcoder demo app
[LIBXCODER] Add Android OpenMax Support
[LIBAVCODEC] Reject attempts to decode unsupported pix_fmts
[LIBAVCODEC/LIBXCODER] Fix SPS->VUI->video_range_full_flag not set properly
[APIEXAMPLES/FFMPEG/LIBAVCODEC/TOOLS] Add support for Netint HEVC multi-tile codec
[FFMPEG] Add software filters to support YUV444 encoding/decoding
         To support yuv444p format encoding, we need to implement two filters yuv444to420 and yuv420to444.
         At the encoding end, the input data in yuv444 format is divided into two streams through the filter ‘yuv444to420’ and then encoded.
         At the decoding end, after decoding the two streams, the yuv444 data is synthesized through the filter ‘yuv420to444’
         Currently, we have implemented the software solution and the commands are as follows:
           encoder：
             ./ffmpeg -y -loglevel trace -f rawvideo -pix_fmt yuv444p -s:v 1920x1080 -i ~/Dinner_1920x1080p30_300_444.yuv -filter_complex yuv444to420[a][b] -map '[a]' -c:v h264_ni_enc ./1.h264 -map '[b]' -c:v h264_ni_enc ./2.h264
           decoder：
             ./ffmpeg -y -loglevel trace -c:v h264_ni_dec -i ./1.h264 -c:v h264_ni_dec -i ./2.h264 -filter_complex 'yuv420to444' -c:v rawvideo ./output_444.yuv
[LIBXCODER] Add check for 2-pass encode minimum input resolution width of 288
[LIBAVCODEC] Add errorneous configuration detection for "-enc_time_base -1"
[LIBXCODER] Reduce libxcoder default keep alive timeout from 15s to 3s
[OTHER] Add dma_buf compile support for >= 5.14 kernel
[FFMPEG/LIBXCODER] Add keep alive timeout configuration for upload + 2D sessions
[LIBAVCODEC] Fix list of supported pix_fmt in jpeg encoder
[LIBXCODER] Add query+retry mechanism when acquiring a P2P frame
[LIBAVCODEC/LIBXCODER] Deprecate NI_MAX_HWDESC_FRAME_INDEX in favour of NI_GET_MAX_HWDESC_FRAME_INDEX(x)
                       Changing FW API version to 55
[LIBXCODER] Improve xcoder demo app speed by checking for /dev/null in output to skip saving outputs
[LIBXCODER] Allow reallocation of decoder bitstream on first frame to handle some lowQP low resolution streams
[LIBXCODER] Add definitions for NI_DEPRECATED and NI_DEPRECATED_MACRO
[LIBXCODER] Fix one lost frame when hwupload retry occurs
[LIBXCODER] Fix a memory leak in ni_config_read_inout_layers() function
[LIBXCODER] Allow picSkip to be enabled when user selects low delay gop (gopPresetIdx 1,3,7,9)
[LIBXCODER] Fix file handle leak issues in ni_rsrc_api when it fails to lock a shared file
[LIBXCODER] Making ni_rsrc_refresh() thread safe by using local variables instead of static for names
[LIBAVCODEC/LIBXCODER] Restrict minimal encoding resolution of jpeg to 48x48, AV1 to 144x128
[TOOLS] Replace NI_RETCODE_PARAM_ERROR_PIC_WIDTH/HEIGHT with NI_RETCODE_PARAM_ERROR_WIDTH/HEIGHT_TOO_BIG
        Replace NI_PARAM_AV1_ALIGN_WIDTH_WIDTH/HEIGHT with NI_PARAM_AV1_MAX_WIDTH/HEIGHT
================================================================================
Release version: 3.1.0_RC7
Date: 2022-05-18            SW version: 3.1.0_RC7           FW version: 3.1.0_RC6
Compat FW API ver: 54       Libxcoder API ver: 2.0
--------------------------------------------------------------------------------
[LIBXCODER] Init scaler config structure reserved bytes to 0
[FFMPEG/LIBXCODER] Tidy up public API structures and remove privately used structs:
                   Remove ni_card_info_t as it is unused
                   Move ni_nvme_command_t to ni_nvme.h as it is only used internally
                   Do not export ni_bitstream.h to public API
                   Move latency measurement functions/definitions from ni_util.c/h to ni_lat_meas.c/h to make private
                   Add ni_lat_meas_q_destroy()
                   Add comment to ni_device_t to store in heap
                   Move ni_resolution_t definition to ni_device_api_priv.h
                   Remove ni_populate_serial_number() and ni_serial_num struct
[LIBXCODER] Add an optional '-a' command line flag to ni_rsrc_list which additionally lists uninitialized Quadra cards
[LIBXCODER] Fix libxcoder android build, removed phtread library linking
[LIBXCODER] Fix hardcoded version number in msys2 compile of libxcoder.so and xcoder.pc
[LIBXCODER] Add new macro for LIBXCODER_API_VERSION
            Add functions ni_get_libxcoder_api_ver(), ni_get_compat_fw_api_ver(), ni_get_libxcoder_release_ver()
[LIBAVCODEC/LIBXCODER] Support sequence change by config new resolution instead of close / open encoder instance, if resolution changes from large to small
                       Add FW API version check, reject sequence change if running FW API <54
[LIBAVCODEC/LIBXCODER] Support AV1 non-8x8-aligned resolution
                       Changing FW API version to 54
[LIBAVCODEC/LIBXCODER] API to allocate packet buffer using a user provided pointer.
                       Adding use of temporary aligned buffer if unaligned memory is provided in nvme reads and writes
[LIBXCODER] '--prefix' to libxcoder/build.sh to specify installation path of libxcoder
[LIBXCODER] Added the support of maxFrameSize parameter to limit the frame size
            Changing FW API version to 53
[OTHER] Add AMD single-threaded demo P2P app
[LIBXCODER] Selecting bestload device for hw upload will select device with
            lowest number of active instances
[LIBXCODER] Use error exit code when build step fails in libxcoder/build.sh
[FFMPEG/LIBXCODER/TOOLS] Extend ni_rsrc_list to list uninitialized cards
                         - An optional `-a` command line flag, when specified,
                           lists initialized and uninitialized Quadra cards.
                         - Uninitialized Quadra cards will not include device
                           capability prints.
                         - Serial number and model number are now processed by
                           ni_rsrc_list_all_devices()
[LIBXCODER] Retrieve timestamp of scaler session of its session timestamp check
[FFMPEG/LIBXCODER/TOOLS] Add VS2019 FFmpeg-n4.2.1 project
                         Fix windows FFmpeg compile issues caused by linux symlinks
                         Make features consistent between various build_ffmpeg.sh
[LIBXCODER] In ni_device_api.c, add example for ni_get_dma_buf_file_descriptor() to
            retrieve the dma buffer descriptor from ni_frame_t structure
[LIBAVCODEC] Remove -hwframes decoder parameter
[LIBAVCODEC] Remove yuv420p12le as supported format from encoder
[LIBAVCODEC] Release frame buffer when opening encoder fails
[LIBXCODER] If PTS of source clip doesn’t exist, start PTS of decoded output
            from 0 instead of estimation from DTS
[FFMPEG] Reduce likelihood of memorybin leakage
[LIBAVCODEC/LIBXCODER] Return EOF in xcoder_send_frame() when nothing to encode
                       to prevent errant output
[FFMPEG/LIBXCODER/TOOLS] Undo malloc workaround for windows and set VS2019/msys
                         stack size to 4M
[LIBAVCODEC/LIBXCODER] Adding ni_encoder_sw_frame_buffer_alloc() API to be used
                       to allocate either planar or semi planar frames.
                       Encoding type detection logic taken from
                       ni_device_session_acquire()
[LIBAVCODEC/LIBXCODER] Harden -xcoder-params for NI decoder
[FFMPEG/TOOLS] Add VS2019 FFmpeg-n4.4 project
[LIBXCODER/TOOLS] Add "NI_" prefix for shared memory files in /dev/shm/
[LIBXCODER] Fix coredump when decoding udp with packet loss
[FFMPEG] Various FATE fixes
         - add bgrp entry for AV_PIX_FMT_BGRP to tests/ref/fate/sws-pixdesc-query
         - add copyright notice to libavfilter/vf_roi_ni.c
         - redefine header guards to adhere to FFmpeg's standard
         - revert e7389922 to pass fate-lavf-mpg and fate-seek-lavf-mpg
================================================================================
Release version: 3.0.0_RC2
Date: 2022-04-15            SW version: 3.0.0_RC2           FW version: 3.0.0_RC2
--------------------------------------------------------------------------------
[KNOWN-ISSUE] On FFmpeg-n3.4.2, exceeding 128 instances causes NVMe hang
[KNOWN-ISSUE] Missing packet data (eg. from UDP packet loss) could cause entire frame to be dropped from decoder without error concealment
[KNOWN-ISSUE] Netint HW padding filter on 8K 10bit may cause IO error
[KNOWN-ISSUE] Cannot initialize software structures (init_rsrc) when both T408 and Quadra devices are present on computer
[KNOWN-ISSUE] Some illegal parameters for Netint HW filters are not rejected
[KNOWN-ISSUE] Multi 4K streams on multi Quadra server (eg. 70 4k streams on server with 7 quadra cards) will have have some streams stall
[KNOWN-ISSUE] Decoding frame with negative PTS/DTS causes frame to drop
[KNOWN-ISSUE] Using -xcoder-params "picSkip=1" with -xcoder-params "vbvBufferSize" causes frame loss
[KNOWN-ISSUE] Use of "intraPeriod=2" with 2-pass encode should be rejected as an invalid combination, and it causes visual corruption
[KNOWN-ISSUE] Default session timeout is 15s. Thus, stream processes ended via SIGKILL will linger on FW for 15s before its resources are freed
[KNOWN-ISSUE] Netint HW overlay filter may cause device fail when 4k 8bit is overlayed on 8k 10bit
[KNOWN-ISSUE] firmware_upgrade_win.exe may fail on rare occasion. To upgrade, run again after system reboot
[LIBXCODER] Libxcoder API changes
            Fixed pixel format in ni_device_session_acquire(). Add new API
            call ni_encoder_session_read_stream_header() so that application
            need not worry about incrementing a packet count in the encoder
            session after reading the stream header.
[APIEXAMPLES/LIBXCODER/OTHER/TOOLS] Update netint license statement to MIT-0. Note, dma-buf remains GPLv2
[LIBXCODER] Update to libxcoder text description and utility program output
[LIBXCODER] Fix ni_rsrc_mon timeout issue
[LIBXCODER] Fix coredump issue when decoding udp packet loss videos
[LIBXCODER] Remove outdated SW side model load calculation which caused 32bit overflow on Android
[LIBXCODER] Update uploader load balance logic and struct
            Changing API version to 52
[LIBAVCODEC] FFmpeg 4.4 AV1 encode test timeout
             1. Change FFmpeg 4.4 implementation not to always send frame before receive packet, which caused long delay in AV1 encode
================================================================================
Release version: 3.0.0_RC1
Date: 2022-04-13            SW version: 3.0.0_RC1           FW version: 3.0.0_RC1
--------------------------------------------------------------------------------
[LIBXCODER] Report P2P Memory Bin Usage in ni_rsrc_mon
            Changing API version to 51
[LIBXCODER/TOOLS] Retrieve xcoder_support type (2) for Quadra in NVMe identify data and update xcoder capability numbers
                  Changing API version to 50
[LIBAVCODEC/LIBXCODER] Exit process with invalid reconfig file
[FFMPEG/LIBAVCODEC/LIBXCODER/TOOLS] Use recursive mutex for Xcoder open/close API
[LIBXCODER] Add version info printout arg to all libxcoder applications
[LIBAVCODEC] Add null-pointer check to frame in nienc.c for segfault fix
[LIBXCODER] Add include to support compilation on GCC 8.3.1 and GCC 9.4
[APIEXAMPLES/LIBXCODER] Use a macro to take care of applying null to ptr after ni_aligned_free()
                        Remove ni_decoder_session_close() call from ni_decoder_session_open() when it fails to acquire session from FW
[FFMPEG/LIBXCODER/TOOLS] Integrate ni_pthread API
[LIBXCODER] Timeout val was not being passed to session params in xcoder app
[LIBXCODER] Xcoder input repeat option for H.264 source; remove obsolete libxcoder build options
[LIBXCODER] Redirect xcoder log to android OS
[FFMPEG/LIBXCODER] FFmpeg support of uploader auto load balancing
[LIBXCODER] Realloc dec bitstream for seqchange
            Changing API version to 41
[FFMPEG/LIBXCODER] Fix hw uploader free issue on Windows
[FFMPEG/LIBXCODER/TOOLS] Replace NI_MAX_SW_INSTANCE_COUNT with NI_MAX_CONTEXTS_PER_HW_INSTANCE
                         Rename NI_MAX_PROFILE_NAME_LEN, NI_MAX_LEVEL_NAME_LEN, NI_MAX_ADDITIONAL_INFO_LEN to NI_PROFILES_SUPP_STR_LEN, NI_LEVELS_SUPP_STR_LEN, NI_LEVELS_SUPP_STR_LEN
                         Replace NI_MAX_HW_XCODER_COUNT and MAX_DEVICE_CNT with NI_MAX_DEVICE_CNT
                         Change MAX_DEVICE_NAME_LEN to NI_MAX_DEVICE_NAME_LEN and move its definition to ni_defs.h
                         Remove NI_MAX_CONTEXTS_PER_DECODER_INSTANCE as it is unused and confusing
[FFMPEG/LIBAVCODEC/LIBXCODER/TOOLS] Add VS2019 project
[FFMPEG/LIBAVCODEC/TOOLS] Add FFmpeg-n4.3 for Quadra
[LIBXCODER] Fix lock condition in ni_ai_config_network_binary()
[LIBAVCODEC] Fix segfault of soft scaler during low resolution encode
[FFMPEG] Update device scan algorithm in libavutil/hwcontext_ni_quad.c
[FFMPEG/LIBAVCODEC/LIBXCODER] Port windows msys fix
                              - fix yuvbypass failure on windows and disable p2p on windows
                              - fix false mem-free extradata
                              - set max_nvme_io_size to NI_MAX_PACKET_SZ on Windows,
                                max_nvme_io_size will be used to allocate p_leftover buffer,
                                fix allocation of p_leftover buffer to 0.
                              - fix filter open device failure on Windows
                              - fix free hw buffer issue on Windows
                              - fix compiling issues
[FFMPEG/LIBXCODER] Add support for android
[LIBXCODER] Encoder performance improvements in xcoder util
            1. Add zero copy to libxcoder encode test when input resoultion is stride aligned
[FFMPEG/LIBXCODER] Send 1 NVME command to Scaler instead of 3 Optimizes scaler by reducing ConfigInput and
                   ConfigOutput tranfers to occuring only when needed.
[FFMPEG/LIBXCODER] Parallel instance upload
                   - Upload instance no longer takes up encoder instance
                   - Limit of 128 upload instances
                   Changing API version to 40
[LIBXCODER] Fixed freeing DMA buf fd causing close of random file descriptors
[FFMPEG/LIBAVCODEC/LIBXCODER/OTHER] Port for session keep alive timeout command line option from t408
                                    * Changing keep alive timeout from 3 to 15. this now matches the default in FW
                                    * Updating gitignore to ignore some files in doc/, taken from 4.3.1/doc/.gitignore
                                    * Adding keep_alive_timeout option to xcoder params as keepAliveTimeout. ni_en/decoder_params_set_value() functions replace _ with -
                                    * Adding timeout option to netint avfilters
                                    * Updating ni_session_keep_alive_thread() to use close_thread flag instead of pthread_cancel(), same as t408.
[FFMPEG/LIBAVCODEC/LIBXCODER] Port ni_log.c from T408
[FFMPEG/LIBAVCODEC/OTHER] Remove FFmpeg-n2.7.1 and FFmpeg-n3.1.1
[LIBXCODER] Support confgurable long term references count & Block multicore joint mode when low delay enabled
            1. Allow user to configure long term references count (1 or 2) to workaround 2 LTRs decode issue
            2. Block encoding if user sets both multicore joint mode and low delay, which are incompatible features
            Changing API version to 31
[OTHER] Fix xcoderp2p demo compile and running issue on centos 7.6
[LIBAVCODEC/LIBXCODER] When the roi enable, even if roi_demo_mode is zero, we should also add the sizeof(ni_encoder_change_params_t) in extra_data_len
                       Fix the set_qp error: set the set_qp type int32_t, because there will be forced type conversion later
[LIBXCODER] p2p demo util support frame by frame YUV input read and repeat option
[LIBAVCODEC/LIBXCODER] Fix AV1 pic skip encode fail & AV1 frame loss when PTS is repeated
                       1. Fix skipping frame cause AV1 encode fail by not output packet if frame is skipped
                       2. Fix repeated PTS cause AV1 frame loss by modifying packet merge to be based on show frame info
                       Changing API version to 30
[LIBXCODER] Change async-io to sync-io for windows
[LIBXCODER] Open, test and (if required) cleanup shared memory during ni_rsrc_init()
[FFMPEG/LIBAVCODEC] Remove extra debug printouts introduced during development of HW filters
                    Small changes to make the filters from different FFmpeg versions identical
[FFMPEG/LIBXCODER] Fix Overcapacity test issues
                   1. Fix libxcoder does not wait for keepalive thread terminated before session close, causing nvme IO error
                   2. Fix filter session not closed if session ID is 0, causing session timeout
[FFMPEG/LIBAVCODEC] Add FFmpeg-n4.4
[LIBAVCODEC/LIBXCODER] Remove not required reconfig modes & Add AV1 height constraint
                       1. Remove no rqeuired reconfig modes 2 (Intra QP / Intra Period), 3 (VUI), 5 (RC Vbv Size / CU Level RC), 6 (Min / Max QP)
                       2. For AV1 add check condition to make sure height <= 4352 (MaxVSize supported by AV1 level 5.1)
[FFMPEG/LIBAVCODEC/LIBXCODER] Modify compile and configure script to support windows build
                              replace usleep() with ni_usleep()
                              add changes required by cppcheck and clang-format
[LIBAVCODEC] Fixed segmentation fault caused from ff_xcoder_dec_close() in T2 spike test
[LIBAVCODEC/LIBXCODER/OTHER] Remove '-xcoder' parameter
                             - Remove "BEST" column for ni_rsrc_mon
[LIBXCODER] Remove blocking in encoding/decoding inputs threads of xcoder util
[LIBXCODER] Xcoder YUV input repeat input parameter and reduced mem usage
            - new -r or --repeat parameter to repeat yuv input
            - YUV input files no longer read to cache entirely
            - YUV frames from file will be read to memory as needed
            - no change on compressed bitstream inputs
[FFMPEG/LIBXCODER] Support in ffmpeg by adding a new command line
                   parameter to enable the scaler instance to use
                   filterblit.
[FFMPEG/TOOLS] Add background removing filter
[FFMPEG/LIBXCODER] Add api for tensor and data convertion
[LIBXCODER] Calculate input bitstream buffer size of decoder according to resolution
================================================================================
Release version: 2.3.0_RC1
Date: 2022-02-28            SW version: 2.3.0_RC1           FW version: 2.3.0_RC1
--------------------------------------------------------------------------------
[LIBXCODER] Resolve conflict between P2P DMA upload and encoder config naming and placement
[LIBXCODER] Added the check in ni_query_session_stats() to see if the session ID used by last command is invalid
            - if invalid session id is detected, further commands associated with the current session will be blocked
[LIBAVCODEC/LIBXCODER] Support reconfig framerate, Add rcQpDeltaRange
                       1. Support reconfig framerate, including reconfDemoMode 9, libxcoder aux data, wrapper API
                       2. Reject framerate larger than max threshold 65535
                       3. Add rcQpDeltaRange in config parameter
                       Changing API version to 20
[FFMPEG/LIBAVCODEC] Update FFmpeg 4.2.1 to use refactored libxcoder API
[FFMPEG/LIBAVCODEC] Update FFmpeg 4.1.3 to use refactored libxcoder API
[LIBAVCODEC] Update FFmpeg 3.4.2 to use refactored libxcoder API
[LIBXCODER] Hwupload optimization / xcoder fps update
            - Hwupload combines buffer query and hwdesc read
            - the xcoder FPS is now in float rather than int
            - hwframe upload path latency measurement support
[FFMPEG/LIBXCODER] Unify device open in Filters with rsrc_api
[LIBXCODER] Added error check for pread()/pwrite() in ni_nvme_send_read_cmd()/ni_nvme_send_write_cmd()
[FFMPEG/LIBAVCODEC/LIBXCODER] Improve encoder config naming and placement
                              -ni_encoder_params_t -> ni_xcoder_params_t
                              -hevc_enc_params -> cfg_enc_params
                              -ni_h265_encoder_params_t -> ni_encoder_cfg_params_t
                              -Reordered the encoder_cfg_params by compatibility
[LIBXCODER] Support HW-mode multi-thread in libxcoder utility app
[LIBXCODER] Fix libxcoder incorrect session id check causing open session failure undetected, resulting in nvme cmd error and overcapacity test fail
[LIBXCODER] Added keep-alive thread support.
[LIBXCODER] Fix bug where ni_rsrc_remove_device() does not remove /dev/shm/lck_* files
[LIBXCODER] Fix ni_rsrc_allocate_direct() and ni_rsrc_allocate_auto() when input p_load=NULL
[LIBXCODER] Remove 'codec' param from ni_rsrc_release_resource() as it is unnecessary
[LIBXCODER] Change codec_format from int to ni_codec_format_t
[LIBXCODER] Remove duplicate error code from ni_defs.h NI_RETCODE_PARAM_ERROR_VBVBUFFERSIZE
================================================================================
Release version: 2.2.1_EN1
Date: 2022-02-11            SW version: 2.2.1_EN1           FW version: 2.2.0_EN1
--------------------------------------------------------------------------------
[LIBXCODER/TOOLS] Update license statements and texts for libxcoder/ and tools/
[LIBXCODER] Libxcoder utility (ni_device_test.c) return non-0 on failure
[LIBXCODER] Set resource pool files permission accessible by creator's group
[LIBXCODER] Auto select least loaded card when using HWupload+enc without targeting specific card
[LIBXCODER] Updates /ixes to P2P DMA demo app and kernel driver (dma-buf)
================================================================================
Release version: 2.2.0_EN1
Date: 2022-01-29            SW version: 2.2.0_EN1           FW version: 2.2.0_EN1
--------------------------------------------------------------------------------
[LIBXCODER] Low delay encode changes for P2P DMA copy demo
            1. For P2P DMA copy demo, pass low delay mode setting to encoder manager
[LIBXCODER] Add P2P DMA demo app and kernel driver (dma-buf)
================================================================================
Release version: 2.2.0_RC2
Date: 2022-01-25            SW version: 2.2.0_RC2           FW version: 2.2.0_RC2
--------------------------------------------------------------------------------
[LIBXCODER] Fix multi-threading blocked issue
================================================================================
Release version: 2.2.0_RC1
Date: 2022-01-22            SW version: 2.2.0_RC1           FW version: 2.2.0_RC1
--------------------------------------------------------------------------------
[LIBAVCODEC/LIBXCODER] Added wrapper API and demo modes for LTR
[FFMPEG/LIBAVCODEC/LIBXCODER] API rename and added comments
[LIBXCODER] Support mutlti-thread in libxcoder utility app
[FFMPEG] Add debug info to FFMpeg
         Add file descriptor information to the hwcontext driver for
         debugging purposes.
[FFMPEG/LIBAVCODEC/LIBXCODER] FFmpeg using refactored libxcoder API, 4.3.1 only; fixed an xcoder memory leak of mutex; ported demo modes to xcoder and adjusted ROI demo in FFmpeg versions
[LIBXCODER] Fix non-integer framerate encode fail & Fix gopPresetIdx 1 issues
            1. Fix framerate numerator derived from mp4 container can be higher than acceptable max value, causing encode fail
            2. Fix gopPresetIdx 1 max_dec_pic_buffering and max_num_reorder_pics calculations mismatch
            3. Do not reject encode with gopPresetIdx 1 and intra refresh enabled (output will be all I-frames)
================================================================================
Release version: 2.1.0_RC1
Date: 2022-01-14            SW version: 2.1.0_RC1           FW version: 2.1.0_RC1
--------------------------------------------------------------------------------
[LIBXCODER] LIBXCODER tester features and API comments
            -corrected and/or added api comments
            -Added decoder param for xcoder tester
            -Added yuv bypass mode for xcoder tester
            -Added hwframe support for enc/dec for xcoder tester
            -Added HWupload + encode mode for xcoder tester
            -Fixed memory leak on upload open within priv api
[LIBAVCODEC/TOOLS] Fix memory leak issue for quadra
[LIBXCODER] Fix GNU ld 2.37 issues
[FFMPEG/LIBAVCODEC/LIBXCODER] Libxcoder API name and description cleanup to match doc
[LIBXCODER] Re-enable calloc for p_ctx->enc_change_params
[LIBAVCODEC/LIBXCODER] Make libxcoder API thread-safe
[LIBXCODER] Fix CTB rate control not affecting output size
[LIBXCODER] Port demo modes to xcoder; fixed YUV stride padding and output issues
[LIBAVCODEC/LIBXCODER] Fix libxcoder mem leak and HDR10+ SEI in libavcodec, FFmpeg 4.3.1 only
[LIBXCODER] Made ctbRcMode, gopSize, and gopLowdelay deprecated
[FFMPEG/LIBAVCODEC/LIBXCODER] Support LTR & short term / long term reference invalidation
                              1. Support config LTR enable and LTR interval
                              2. Support reconfig LTR interval
                              3. Support side data and metadata for setting LTR on frame basis
                              4. Support reconfig parameter for short term / long term reference invalidation
[FFMPEG] Reject hardware frames in FFmpeg crop filter
         FFmeg crop filter will reject hardware frames in FFmpeg 4.2.1
         and FFmpeg 4.3.1 to be consistent with FFmpeg 3.4.2 and 4.1.3
[LIBXCODER] Add preset gop patterns
            1. Support gopPresetIdx
            3. When gopPresetIdx is not specified, gop pattern is decided by gopSize and gopLowdelay
            4. Allow custom gop settings when gopPresetIdx is not specified
[LIBXCODER] Change default encode config settings for video quality
            1. Change default intraPeriod to 120
            2. Change default tolCtbRcInter to -1.0
[FFMPEG] Add support for FFmpeg-n4.3.1
================================================================================
Release version: 1.2.0
Date: 2021-11-03            SW version: 1.2.0               FW version: 1.2.0
--------------------------------------------------------------------------------
[SW] First Customer Availability. FFmpeg-n4.2.1 only
