================================================================================
Release version: 4.8.6_RC1
Date: 2024-04-29            FW version: 4.8.6_RC1           SW version: 4.8.6_RC1
FW API ver: 6rK             FW Loader ver: 4.5.0
--------------------------------------------------------------------------------
[FW] Fix decoder stuck when decoding with -stream_loop FFmpeg option
[FW] Fix an issue where the decoder acquired a buffer not used for substitution which caused FW assert
[DEVTOOLS/FW] Fix FFmpeg-n6.1 exhaustion of all pre-allocated mem bin buffers causing ffmpeg command fail
================================================================================
Release version: 4.8.2_RC2
Date: 2024-03-22            FW version: 4.8.2_RC2           SW version: 4.8.2_RC2
FW API ver: 6rK             FW Loader ver: 4.5.0
--------------------------------------------------------------------------------
[FW] Fix decoder uninitialized variable used in error concealment
[FW] Fix AV1 incorrect insertion of delimiter which cause parse failure on gstreamer
[FW] Add additional P2P support
     Add NVME command to DMA a frame from DDR memory to an external address
     Changing FW API version to 6rK
[FW] Fix an issue where high target bitrate would trigger overflow during calculation causing low output bitrate
[FW] Fix uninitialized variable which caused P2P buffers to be disabled by mistake
================================================================================
Release version: 4.8.0_RC1
Date: 2024-02-22            FW version: 4.8.0_RC1           SW version: 4.8.0_RC1
FW API ver: 6rJ             FW Loader ver: 4.5.0
--------------------------------------------------------------------------------
[FW] Store initial sequence change height and width params
[FW] Add netint error codes for logging on ppu errors
[FW] Reset filter when using filterbilt=1 to avoid changes in output result
[FW] Fix hang caused by interupt on AI core
[FW] Correct issue with DP and EP instantaneous load, cap load at 100%
[FW] Quadra RevA ASIC Firmware Loader Release v4.5.0
     Add support for Persistent config key to reflect device mode
     Support persistent config decoder/encoder share memory
     Change DDR configuration in Firmware Loader
     Support enabling/disabling the p2p memory buffer
     Changing FW API version to 6rJ
[FW] Fix FIO full capacity issue caused by invalid commands in FP core
[FW] Disable identify command logging in NDEBUG unless on INFO logging level
[FW] Resolve jitter when transcoding flv from avc to hevc
[FW] Fix multi-layer model with one input frame map size error
[FW] Fix stack overflow and PPU shared buffer from being recycled twice
[FW] Enable DP NO_BUF_REGION_SWITCH to improve merge filter performance
[FW] Resolved SRAM Exhaustion
[FW] Clear resource unavailable status of scaler session for hwdownload filter
[FW] Support PPU adaptive scale aligned with long and short edge
     Changing FW API version to 6rI
[FW] Fix the Issue of reporting RESOURCE NOT FOUND when a hwframe is used with hwdownload
[FW] Add filterblit for pad filter
[FW] Support reconfig for intraperiod, force I-frame on reconfig and update rate control
     Changing FW API version to 6rH
[FW] Support simulating general exceptions on Quadra
[FW] Enable admin command start stop logs in NDEBUG mode
[FW] Fix AIEnahnce mode request nodes and resource management corruption
[FW] Add iFrameSizeRatio encoding parameter, used to control the size of I frames.
     Changing FW version to 6rG
[FW] Add new merge filter which combines PPU and 2D engine scaling to improve quality
     Changing FW API version to 6rF
[FW] Fix error when decoder would do write/flush/read on apitest
[FW] Fix resource monitor sampling errors which caused the loads to go over 100%
[FW] Fix one frame decoder delay on h264 decoding
     Changing FW API version to 6rE
[FW] Fix Multi-In memory leak, don't map frame when frameIdx is zero
[FW] Fix p2p alloc scale max range check
[FW] Add new FW non-recoverable stream decoding error classification
[FW] For cards with new power subsystem stop FW downgrade below 4.7.0
[FW] Fix width and height alignment for 2D tile format
[FW] Update memory bin buffer size to avoid resource unavailable with 32 instances of portrait 1080p
     Changing FW API version to 6rD
[FW] 2-pass adaptive gop optimization
[FW] Support querying card's composite temperature via libxcoder api 
     Changing FW API version to 6rC
[FW] Fix ipRatio no effect for some case in CBR and VBR mode
[FW] Fix the dd command failure
[FW] Added Temporal Delimiter before av1 first sequence header
[FW] When  adaptive ppu scale mode is enabled, allow width and height to be aligned downward
[FW] Limit max numbers of memory bins to be obtained to avoid exceeding allocated frames
     Changing FW API version to 6rB
[FW] Support subsystem reset when internal close timeout
[FW] Support short edge adaptive ppu scaling
     Changing FW API version to 6rA
[FW] Support ipRatio for CBR and VBR, add enableipRatio encoder parameter for CBR and VBR
     Changing FW API version to 6r9
[FW] Reduce duplicate dp buffer acquisition error log
[FW] Fix potential rtos heap leak for h264 decoder causing latency issues
[FW] Fix DMA transfer on windows system when i32FeatureIndex is equal to 0xD0
[TOOLS] Add FW upgrade support for Mac, update documention regarding quadra_auto_upgrade
[FW] Fix decoder Open fail causing memory corruption and exception
[FW] Fix double flush emulation prevention on decoder bytes buffering for HEVC sei parameters
[FW] Firmware support for disabled hw blocks
[FW] Move DecoderResetEOS to DDR to fix DEBUG build
================================================================================
Release version: 4.7.0_RC4
Date: 2023-12-14            FW version: 4.7.0_RC4           SW version: 4.7.0_RC4
FW API ver: 6r8             FW Loader ver: 4.4.0
--------------------------------------------------------------------------------
[KNOWN-ISSUE] Quadra T2A cards are not detected on Xeon E5 PCIe Gen3 hosts due to CPU errata (contact Netint for solutions)
[FW] Fix a hang when using multiCoreJointMode with 2-pass encoding
[FW] Allow H265 decoder to tolerate missing reference frame by searching DPB and trying to find a valid reference frame with poc closest to the supposed reference frame
[FW] Add NV12 compressed tiled pixfmt support to filters
     Changing FW API version to 6r8
[FW] Support scaler framepool free for xstack
[FW] Modify 2-pass encode algorithm to support dynamically switching between gop size 1, 2, 4, and 8
[FW] Fix bug where user set keep_alive_timeout is not applied to all sessions when multiple sessions start at the same time
[FW] Fix bug where rotate filter causes frame to shift 32 pixels downwards
[FW] Allow libxcoder to set skipFrameEnable
     Allow libxcoder to set maxConsecutiveFrameNum
     Changing FW API version to 6r7
[FW] Add decoder flush support for AVC and HEVC decoders
[FW] Fix decoder heap leak in multicore mode
[FW] Fix AV1 frame id index wrap around issue
[FW] Add resolution and userIDR info to "ni_rsrc_mon -d"
     Changing FW API version to 6r6
[FW] Fix cases where constrained VBR (xcoder-param vbvMaxRate) is not taking effect
     Update rate control library
[FW] Add decoding xcoder-param "enableLowDelayCheck=1" to cease lowdelay decoding mode when B frame is encountered
     Changing FW API version to 6r5
[FW] Improve performance of AI overlay filter
     Changing FW API version to 6r4
[FW] Stay in decoder lowDelay mode when there is dropped frames using new xcoder-param "forceLowDelay"
[FW] Allow HW frames of RGBA/BGRA/ABGR/ARGB pixfmt to be auto-downloaded if filter is a separate card from encoder
[FW] 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
[FW] Fix incorrect count for number of encoded frames when using multiCoreJointMode
[FW] Add support for ni_quadra_delogo filter
[FW] Add gop-size in encoder output metadata, so that libxcoder can increase frame delay (enqueued frames) when open-gop size increases
     Changing FW API version to 6r2
[FW] Support vbvMaxRate and vbvBufferSize encoder reconfig
     Changing FW API version to 6r1
[FW] Migrate to 3 character FW API version number
     Changing FW API version to 6r0
[FW] When encoder reconfig of bitrate occurs, scale vbvMaxRate by magnitude of change in bitrate
[FW] Add BT.2020 support to ni_quadra_scale filter
[FW] Fix jpeg decoder sequence change causing stream corruption and core reset
[FW] Fix 20% CRF performance degradation in 2-pass encoding when first pass QP is set to 0
[FW] Support zero copy for semi-planar pixel formats
     Changing FW API version to 6q
[FW] Fix inconsistent output between runs when using ni_quadra_roi filter
[FW] 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
[FW] Support xcoder-param "hvsBaseMbComplexity" to control shadow trailing
     Changing FW API version to 6o
================================================================================
Release version: 4.6.0_RC2
Date: 2023-10-04            FW version: 4.6.0_RC2           SW version: 4.6.0_RC1
FW API ver: 6n              FW Loader ver: 4.1.0
--------------------------------------------------------------------------------
[FW] Increment encoder error count for subsystem errors
[FW] Fix and improve corrupted bitstream decoding, pass error handling in decoder open
     params:
     - DEC_EC_FRAME_TOLERANT_ERROR - Try to replace corrupted reference frames
       If no replacement, skip the whole frame (fallback to DEC_EC_FRAME_NO_ERROR).
     - DEC_EC_FRAME_IGNORE_ERROR - Keep using ref frames even if decoding errors.
     - DEC_EC_FRAME_NO_ERROR - Exclude reference frames with decoding errors.
     - DEC_EC_FRAME_BEST_EFFORT - Same as DEC_EC_FRAME_TOLERANT_ERROR, but if no
       good frame available, fall back to DEC_EC_FRAME_IGNORE_ERROR
     In some cases corrupted h264 bitstream can cause DEC_8190_IRQ_TIMEOUT.
     The frames that were not decoded because of IRQ timeout were not
     assigned correct error_ratio and could still be used as reference
     frames causing lingering artefacts in the output.
[FW] Integrate new Nano 2D driver
     Integrate scaler manager with new Nano 2D driver API.
[FW] Add query for VF/NS id
     Changing FW API version to 6n
[FW] Support float point crf, range in [0.00 - 51.00];
     Changing FW API version to 6m
[FW] Fix decoder and encoder load calculation to be based on current VPU clockspeed
[FW] - Quadra RevA ASIC Firmware Loader Release v4.1.0
     - Add Persistent Config option for GEN3 Xeon E5 CPU support
     - (Fix) DISABLE_LPM_MFR Flag out of sync (AI PLL) with default values
[FW] Add width and height for overlay
     Set overlay area for dst and src frame
[FW] Fix encoder Model Load > 0 during thermal throttling when there's no encoder job
     - Fix Model Load calculation incorrectly amplified by VpuClockSpeedFactor during thermal throttling, causing Model Load > 0 when there's no instance running
[FW] Add encoder option to approach target bitrate & option to set pass-1 qp / trigger HW timeout
     - Add bitrateMode parameter to allow encoder bitrate to be closer to target bitrate
     - Add pass1Qp parameter to set pass-1 qp. Note pass-1 qp to 0 can increase chance of HW timeout
     - Fix CRF qp incorrect after bitrate or crf reconfiguration
[FW] Add get color info (color_trcm,color_space,color_primaries,video_full_range_flag) path.
     - Add get color info path.
     - Delete extra transfer_characteristics assignment.
[FW] Fix rsrc_mon load reporting for multicorejoint mode
[FW] Fix BufferControlIndexes alignment to match size of cache line
[FW] Add Detail Query support for EP and DP
[FW] For H.264 stream, fix decoder ctrlsw to:
     if max_num_reorder_frames == 0 and max_dec_frame_buffering > 0 in VUI, set max_num_reorder_frames to max_dec_frame_buffering
[FW] Fix bug when decoding frames with visual errors in beginning of stream where undecodable part of frame is filled in with images from previous encode session
     - Use error_ratio reported by VPU to trigger DMA clearing of the error region of the picture
     - Added XT_ATTR_DDR_SHARE_ZERO for a zero buffer to be shared by all subsystems
[FW] Add high level log & add enum for ddr priority mode
[FW] Fix model load overflow
[FW] Remove non fatal assertion on debug mode due to possible late host commands
[FW] Improve memory bin management logging by decoder
     - Add MemBinCheckLegalRange() for DecoderInstanceRdDesc()
     - Log memory bin IDs acquired by decoder manager
[FW] Fix count in HMD allocation verification
[FW] Regular I/O support for FL and FW versions query
[FW] Multinamespace ni_rsrc_mon and Configurable QOS NS support for Enc Dec
     - reports active load, model load, instance count specific to caller nsid for dec/enc
     - Overall load, overall model load, and overall instance count can be queried by nsid 1 only
     - Overall stats viewable on ni_rsrc_mon -o json/json1 options
     - Qos Overprovisioning config support
     - Qos Overprovisioning handling for dec/enc
[FW] SMBus changes to support unified upgrade
     Add reporting of FL version of firmware image stored on nor flash
[FW] Add support for watermark filter
[FW] Apply clang-format for FL
[DEVTOOLS/FW] Quadra RevA ASIC Firmware Loader Release v4.0.0
              Unified FW Upgrade:
              - Replace NvmeFirmwareloaderVersionLogPage with NvmeVersionsLogPage
              - Set waiting_upgrade_reset for nor flash burn
              - Paired with - Test Framework Unified FW Upgrade
              Per bank refresh enabled with appropriate RFSHTMG settings:
              - Refresh burst to 0x0
              NVMe admin command Eye Capture
[FW] add xcoder-param "ddrPriorityMode" to set DDR priority for dec/enc/filter/ai
[FW] Fix RGB2YUV conversion
     Quadra encoder pre-processor only supports converting RGB to
     full range YUV, which is enabled by VCENC_RGBTOYUV_BT709.
     Use JPEGENC_RGBTOYUV_BT709 instead of
     JPEGENC_RGBTOYUV_BT709_FULL_RANGE.
[FW] Fix P2P buffers not being recycled
     The NS and VF metadata was written into a wrong slot
     causing MemoryBinManager::RecycleP2P() to reject the
     block and leak memory.
[FW] Windows - cold_upgrade improvements
     The FW image transfer size is equal to aligned size when the nor_flash.bin is already aligned.
[FW] Fix a compatiblity issue with some servers that send unexpected read commands during boot up
     - Initialize local memory bin acquire ID and check the rationality of the ID;
     - Check the opcode for recycle buffer command to avoid incorrect buffer release;
[FW] Add backlist to cache throttled requests
[FW] Support reconfig CRF
     - Fix P-frame accumulated QP and other info mistakenly re-initialized when bitrate or crf is reconfigured
     - Update rate control library librate_control_picture.a (branch - master / commit - bb61741bf96ad95642cfc632af3def20e6591849)
[FW] Fix interoperability bug where host sees UUID of Quadra as duplicate UUID of another device
[FW] Add API in AI module to allocate buffer pool and get hardware frame descriptions
[FW] Transfer 4k zero data for read
[FW] Decoder and Encoder support for hw time based QoS throttling
     - QoS disable and enable handled as part of namespace config
     - Namespace config now limited only to PF NS1
[TOOLS] Fix misplaced argument for to_warning_string
[FW] Return nvme succes on some OOR xcoder opcodes and invalid params
     - error check for session descriptor get, this was leading to seg fault on invalid session descriptor
     - release resources on xcoder error complete, prp was not being released on error cases
     - set request descriptor to invalid after free in InputEnqueueRequest to avoid double free on ReleaseAllResourcesAndCompleteIO
     In memory bin manager:
     - Return invalid session id on namespace check fail fail. caused
       exception in session descriptor from ppMemBinReqId2Session
     - Validate bufid to be in range before using to access memory bin
       context. Out of bounds access and exception.
================================================================================
Release version: 4.5.0_RC5
Date: 2023-08-15            FW version: 4.5.0_RC5           SW version: 4.5.0_RC5
FW API ver: 6a              FW Loader ver: 3.1.0
--------------------------------------------------------------------------------
[FW] Add xcoder-param "ppsInitQp" to set h264/h265 PPS init_qp_minus26 value
     Changing FW API version to 6a
[FW] Fix multi-instance AI enhanced encoding in parallel causing FW exception
[FW] Fix broken video when decoding mjpeg sequence change from large to small resolution
[FW] Fix bug where user set keep_alive_timeout is overwritten by default keep_alive_timeout length
[FW] Fix false timeout issues when AI enhanced encoding is enabled
[FW] Add support for xcoder-param "vbvMaxRate" to limit max bitrate during VBR rate control
     Changing FW API version to 6Z
[FW] When decoding corrupted/error stream with duplicate frame numbers, do not drop frames with duplicate frame numbers
     - this is libavcodec SW decoder behavior
[FW] Fix a low probability cardloss when exit thermal throttle state
[FW] Fix a memory leak when user operates libxcoder API to repeatedly perform a failing scaler operation
[FW] Check PCIe VF and NVMe namespace ID of connections to session/buffer to ensure the messages are from session/buffer creator's VF/NSID
[FW] Fix FW config bug that affected devices upgrading from 4.3.* to 4.4+
[FW] Add encoding support for RGBA/BGRA pixel format
     Changing FW API version to 6Y
[FW] Fix ARGB/ABGR pixel format encoding mem bin buffer leak caused by incorrect picture size, which was incorrectly set to 0 based on alignment 0
[FW] Limit maximum configurable namespaces to 64
[FW] Fix overcapacity issue that may trigger after decoding for a long time
[FW] Update model load calculation reflect recent performance improvements
[FW] Fix corruption in JPEG decoder input buffer when picture is >508KiB
[FW] Fix encoding error when using temporal layers caused by uninitialized variable
[FW] Support CRF mode:
     - Uncapped CRF mode enabled by -xcoder-params 'crf' and 'lookaheadDepth'
       - 'crf' is equivalent to libx265 'crf'
       - 'lookaheadDepth' is equivalent to libx265 'rc-lookahead'
     - Bitrate capped CRF mode enabled by -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
     - Add xcoder-params 'qcomp', 'chromaQpOffset', 'ipRatio', 'pbRatio', and 'cplxdecay' as equivalent to x265 parameters of same name
     - For h265, adjust 2-pass pbratio (to be same as h264) for some vmaf improvement
     - Support lookahead with mbtree disabled
     Changing FW API version to 6X
[FW] In decoder lowDelay mode, ignore VUI->bitstream_restriction_flag->max_num_reorder_frames to improve latency for streams that unecessarily set max_num_reorder_frames
     Changing FW API version to 6W
[FW] Fix 2-pass encode 1st pass HW timeout:
     - On HW timeout, re-encode frame (for non-multicoreJointMode only) at increased QP and increase HW timeout threshold to 15ms
[FW] Add temperature throttling for AI core
[FW] 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"
     Changing FW API version to 6V
[FW] Improve fix for bug where over temperature may occur for less than a minute but is not reflected in smart-log as temperature throttling warnings
[FW] 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
================================================================================
Release version: 4.4.0_RC3
Date: 2023-06-14            FW version: 4.4.0_RC3           SW version: 4.4.0_RC3
FW API ver: 6T              FW Loader ver: 3.0.1
--------------------------------------------------------------------------------
[FW] Fix bug where performance is not restored back to full after a thermal throttle event
     Fix bug where thermal throttle event caused encoder timeout time to be halved
[FW] Fix bug where over temperature may occur for less than a minute but is not reflected in smart-log as temperature throttling warnings
[FW] Add support for initial_display_delay_present_flag=1 & timing_info_present_flag=1 in AV1 sequence header
[FW] Move AIEnhanceLevel in FW API for better backward compatibility
     Changing FW API version to 6T
[FW] Fix bug where HDR Mastering Display Colour Volume SEI is not repeated in IDR when xcoder-param "masterDisplay" is used
[FW] AV1 tile encode optimizations:
     - Add encoder crop support
     - Add ni_quadra_hwupload zero copy support
     Changing FW API version to 6S
[FW] Make decoder more robust against inputs with severe packet loss
[FW] Add support for ARGB and ABGR pixel format input to encoder when using HW frames
[FW] Add support for encoder xcoder-param "AIEnhanceLevel" (1-3) for use with AI enhanced encoding feature "enableAIEnhance=1"
     Changing FW API version to 6R
[FW] Fix a small memory leak when decoding h265 sequence change
[FW] Add support for SMBus warm upgrade without controller reset
[FW] Fix incorect model number, serial number, and firmware revision in NVMe identify data on PCIe virtual functions
[FW] Change frame drop behavior when using xcoder-param "MaxFrameSize"
     - By default, do not drop frame if it cannot be encoded under MaxFrameSize at MaxQP
     - Allow dropping frames only when xcoder-param "picSkip=1"
[FW] Fix lack of graceful close when attempting to decode stream of greater resolution and GOP size than available memory (QDFW-3190)
[FW] Add xcoder-param "zeroCopyMode" to enable or disable zero copy (by default auto-enabled for resolution >=1080p)
     - Improves performance by reducing host memory copy
     Changing FW API version to 6Q
[FW] Fix bug with NVMe identify data getting corrupted when a second NVMe identify command comes in before the previous one has finished its DMA to the host
[FW] Fix failure to start 8192x8192 transcoding with HW frames and filtering (QDFW-3270)
[FW] 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
[FW] Support reporting "system load" in ni_rsrc_mon
     - "system load" is a summary of the highest load amongst the subsystems (decoder, encoder, etc.) of a Quadra device
     Changing FW API version to 6O
[FW] Fixed incorrect "completed" frames counter in JPEG encoder session statistics
[FW] Reduce lookahead encoding latency (QDFW-3266)
[FW] Allow main-tier (default) or high-tier selection on AV1 and H265 encoders
[FW] Fix issue decoding videos generated by ni_quadra_h265_enc with gopPresetIdx=1 (or intraPeriod=1) (QDFWSH-612)
[FW] Support more performance metrics in AI sessionStatistic
     Changing FW API version to 6N
================================================================================
Release version: 4.3.0_RC3
Date: 2023-04-18            FW version: 4.3.0_RC3           SW version: 4.3.0_RC3
FW API ver: 6M              FW Loader ver: 2.9.0
--------------------------------------------------------------------------------
[FW] Fix missing virtual functions on some windows hosts when using SRIOV
     Some windows hosts expect starting namespaceID to be 1 without querying NVMe identify
[FW] Fix cardloss when host attempts to read invalid LBAs (eg. full range LBA read during `dd if=/dev/nvme0n1`)
[FW] Fix buffer underflow after bitrate reconfig when bit-filler is enabled
     Fix AV1 encoder reconfig framerate not updating time_scale and num_units_in_display_tick
[FW] Fix bug where reconfig of maxQpPB (max QP of P/B frames) errorneously takes value from minQpPB
[FW] Fix bug in HW frame transcoding when sequence changing to larger resolution
[FW] Fix incorrect JPEG decoder SessionStatistic for number of frames buffered
[FW] Fix bug in ni_quadra_scale filter processing NV16 and BGRP frames with width that is not a multiple of 8
[FW] With bit-filler enabled, fix underflow/overflow upon bitrate change caused by incorrect buffer level
[FW] Fix bitrate spike using more restrictive QP clipping when CU level RC is enabled
[FW] Optimize 2-pass encoding reduce latency and excessive time period between frame output
[FW] Reduce situations where AI is unable to allocate contiguous memory for models by calling AI model memory recycling before every AI model memory allocation
[FW] Fix failure to start encoding when force_key_frames expression attempts to force first frame to be keyframe
[FW] In ni_quadra_overlay filter, add support for inplace overlay for improved performance
     - Note, do not use inplace overlay after ni_split or split filter in filter graph
     Changing FW API version to 6L
[FW] Fix bug where ni_quadra_drawbox filter is missing one pixel in bottom right corner
[FW] Fix bugs related to decoding streams with errors
     - Fix memory leak in SEI buffers during stream errors
     - Fix bug where good frames in a stream with errors are discarded despite being decodable
     - Fix bug where decoder exits when there are large gaps between non-error frames
[FW] Fix JPEG decoder SessionStatistic reporting completed frames as error frames
[FW] Fix bug where h264 max_num_reorder_frames=0 does not trigger low-latency decoding mode
[TOOLS] Update readme_firmware_upgrade.txt
[FW] Prevent instant bitrate drop in rate control upon bitrate reconfig
[FW] Improve FLR completion time to well under 100ms
[FW] Fix duplicated SEI messages during decoding if FW resumes decoding after temporarily running out of memory for decoded picture buffer
[FW] Fix FW/SW encoder deadlock if SW sends EOS before first frame
[FW] Change decoder core cache policy to writeback for 4% performance improvement
[FW] Improve performance of AI SW application by routing AI RW buffer size (along with other stats) through SessionStatistic to reduce query latency
     Changing FW API version to 6K
[FW] Fix incomplete background removal in ni_xstack filter by changing input assumption of RGBA inputs from pre-multipled alpha to straight alpha
[FW] Combine AI network input and output limits to a single limit of 10 for I/O
     Changing FW API version to 6J
[FW] Improvements for decoder error concealment
     - Allow garbage frames to be displayed but not used as decoding reference(DEC_EC_REF_ERROR_IGNORE) to reduce number of dropped frames
     - Improvement to reference picture list handling in case of picture list corruption
[FW] SMBus support FW warm and cold upgrade
[FW] Add more detailed decoder termination errors (VPU_RSRC_INSUFFICIENT, INVALID_PARAMETER) that can be reported to SW
[FW] Fix FW hang if AI model memory allocation fails
[FW] Add support for temporal layers and hierarchical-P gop pattern (gopPresetIdx 10)
     1. Allow temporal layer ID generation with xcoder-param "temporalLayersEnable=1"
     2. Add hierarchical-P gop pattern (gopPresetIdx 10)
     Changing FW API version to 6I
[FW] Fix bug where closing AI session that did not attach to a valid AI model causes memory corruption
[FW] Update decoder/encoder stats in SMBus and in SessionStatistic
[FW/TOOLS] Improve length of FW logs stored in circular buffer
[FW] Fix duplicate NVMe namespace IDs when using multi namespace by reporting only 1 namespace ID in NVMe identify output
[FW] Fix bug in encoder SessionStatistic where number of AV1 frames output is larger than expected
[FW] For ni_quadra_drawbox filter support drawing up to 5 boxes per frame
     Changing FW API version to 6H
[FW] Return vendor specific burn done status code (0xC0) instead of OVERLAPPING_RANGE error if user attempts to download FW image after FW commit but before FW reset
[FW/TOOLS] Reduce risk of FW hang when firmware_upgrade_* apps is run during other regular-IO transfers (eg. transcoding)
           Add version number to firmware_upgrade_* apps
[FW] Fix dec/enc assert when FLR encountered during HW frame transcode on kernel 3.10.0-327
[FW] Add IEEE Organization Unique Identifier 0xE82E0C
[FW] Enable strongIntraSmoothing by default for HEVC to slightly reduce macroblocking
[FW] Improve encoder rate control for instant bitrate spike prevention (enabled by default for 1-pass encode)
     Changing FW API version to 6G
[FW] Reduce FW image burn time from 80s to 54s
[FW/TOOLS] Minor improvement to AI performance
[FW] Fix bug when scaling to non-32 aligned horizontal stride and then converting to BGRP format
[FW] Make error messages more clear when encoder open session fails due to invalid parameters
[FW] Reduce risk of FW hang when quadra_auto_upgrade.sh is run during transcoding
================================================================================
Release version: 4.2.1_RC1
Date: 2023-01-17            FW version: 4.2.1_RC1           SW version: 4.2.1_RC1
FW API ver: 6F              FW Loader ver: 2.7.0
--------------------------------------------------------------------------------
[FW] Fix bug in filter preventing read retry for HW frames
================================================================================
Release version: 4.2.0_RC3
Date: 2022-12-21            FW version: 4.2.0_RC3           SW version: 4.2.0_RC3
FW API ver: 6F              FW Loader ver: 2.7.0
--------------------------------------------------------------------------------
[FW] Support configuration of individual SRIOV NVMe namespace indices by IO command
     Use ni_rsrc_namespace app in libxcoder to configure
     Changing FW API version to 6F
[FW] Fix bug where bitrate/framerate reconfiguration is being undone by sequence change from large to small resolution
[FW/TOOLS] Allow for separate transfers from host for YUV vs frame metadata
           Changing FW API version to 6E
[FW] Compressed FW logs
     - Encode FW logs to reduce log sizes by factor of ~3
     - Need to use dictionary generated at FW compile time to decode the raw logs
[FW] Fix hang when building AI model fails
[FW] Decoder will export timescale and num_units_in_tick via custom SEI to libxcoder
     Changing FW API version to 6D
[FW] Fix bug where intraRefreshArg does not cause the expected number of pixel rows to be refreshed
[FW] Fix VP9 decoder stuck when encountering resource unavailable issue
[FW] Fix bug where h265 output with maxFrameSize re-encode and hrdEnable=1 will cause decode error
[FW/TOOLS] Support xcoder-param "intra_reset_refresh=1" to reset intraPeriod counter when an I-frame is forced
           Changing FW API version number to 6C
[FW] Fix bug where 2 sequence headers are inserted for AV1 when first few frames are dropped due to picSkip=1 and small vbvBufferSize
[FW] Add support for ni_quadra_drawbox filter
     - support selecting color (RGB) but not thickness
     Changing FW API version to 6B
[FW] Add persistent log message for reset caused by over temperature
[FW] Fix Quadra card loss when linux mkfs is used
[FW] Remove fw_v*-Quadra.img, use nor_flash_v*-Quadra.bin for warm upgrade
[FW] Improve quality during I-frame only encoding
     - Set bitrateWindow to 5
     - Set PicQpDeltaMin to -4, PicQpDeltaMax to 8
     - Detect flat to detailed scene change & adjust QP
[FW] Fix invalid frame size reported by JPEG decoder during sequence change to odd width
[FW] Fix VP9 decoder handling of sequence change from low to high bitrate
[FW] Add support for maxFrameSize reconfig and fix maxFrameSize re-encode bugs
     - Support reconfig maxFrameSize
     - Auto adjust maxFrameSize upon bitrate or framerate reconfig
     - Fix unnecessary quality decline or frame drop bug during re-encode with new QP
     - Fix FFmpeg error exit during AV1 maxFrameSize induced re-encode
     - Fix lack of update for filter level, CDEF strength and other HW registers during AV1 re-encode
     - Fix bad quality during AV1 re-encode due to lack of update for frame header quantization index, CEDF strength and other parameters
     Changing FW API version to 6A
[FW] Fix host command timeout after CPU exception in subsystem
[FW] Fix card loss during warm upgrade
[FW/TOOLS] Add feature to set and retrieve log levels dynamically using nvme feature-id 0x1A
           For more details see: "APPS601-Quadra Dynamic Logging.pdf"
[FW] Disable external operation of NVMe subsystem reset as it could lead to card-loss
[FW] Improvements to h265 low latency encoding
     - When CU level RC is enabled, increase CU level RC max picture size after scene change to reduce latency and improve bitrate stability
     - Fix maxFrameSize not initialized when vbv buffer (ratecontrol) is disabled
[FW] Fix I/O errors on decoder instance close during instance/capacity overload
[FW] Disable data transfer for direct nvme read/write commands as it could lead to corruption because quadra is not a true storage device
[FW] Reduce total PCIe virtual functions from 7 to 6 for compatibility with certain old systems
[FW] Fix bug where VP9 decoder session can become stuck during out of memory event
[FW] Add support for 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 FW API version to 69
[FW] Fix card loss when host I/O attempts to read/write to out of range address (>0x7d000000)
[FW] Add support for HW frames transcoding of 4x4 tiled format to improve 10bit transcode performance
     For more details see: "APPS570-Quadra Decoder Internal Tiled Format Transcoding.pdf"
     Changing FW API version to 68
[FW] Fix bug where AUD clock is not set to normal after warm upgrade during thermal throttle
[FW] Fix random memory leak after decoder sequence change
[FW] Fix encoder load calculation bug on T1U cards
[FW/TOOLS] Quadra SMBus fixes and updates to be more like Logan SMBus:
           - Fix bug when retrieving data with alternating single reads and writes
           - Implement new model number scheme
           - Report additional byte for decoder and encoder load
           - Perform PEC calculation on read instead of write
           - Initialize fixed values only once instead of on every write
           - Update variable data using a timer
           - Switch from interrupt polling to real CPU-interrupt with NVMePeriInterruptHandler()
[FW] Fix decoding issue when sequence change occurs early in stream
================================================================================
Release version: 4.1.0_RC1
Date: 2022-10-13            FW version: 4.1.0_RC1           SW version: 4.1.0_RC1
FW API ver: 67              FW Loader ver: 2.4.0
--------------------------------------------------------------------------------
[FW] Fix encoder divide by zero exception and other issues surrounding reconfig
     - Prevent config or reconfig with zero bitrate or framerate settings
     - Ignore out of range bitrate and framerate reconfig
[FW] Add error concealment feature
[FW] Add activity LED for T1U
[FW] Fix bug in model load calculation when RcEnable=0 and framerate!=30
[FW] Support recovery from CPU exceptions using FLR
[FW] NVMe behaviour changes and fixes for NVMe spec non-compliant hosts
[FW] Fix issues when FLR occurs during transcoding traffic on linux 3.10.0-327 and 4.18.0-348
[FW] Add support for ni_quadra_rotate filter
     Changing FW API version to 67
[FW] Fix I/O errors when decoder over instance/capacity
[FW] Allocate AI network binaries for one instance at a time to maximize number of instances that could complete allocation
[FW] Fix bug where re-encoded frames are reported as part of number of frames completed when lookahead is enabled
[FW] Fix unexpected internal shutdown during decoding
[FW] Fix allocation of large AI models by splitting allocation into multiple chunks
[FW] Fix AV1 non-8-aligned width output corruption caused by incorrect stride when implicitly cropping non-8-aligned width
[FW] When AI network setup fails, pass original error to libxcoder
[FW] Fix SMBus reporting for decoder and encoder load
[FW] When packet exceeds maxFrameSize, re-encode the frame
[FW] Refactor decoder bitstream buffer reallocation
     Changing FW API version to 66
[FW] Fix incorrect alpha channel for frames after first frame in overlay filter
[FW] Fix jpeg decode sequence change stuck
[TOOLS] Fix quadra_fw_info tool's output missing first character for REVISION
[FW] Fix frame loss when using intraRefreshDuration
[FW] Fix VP9 decode internal scaler instance open failure undetected by libxcoder
[FW] Fix inability to get FL version on certain systems
[FW/TOOLS] Add session statistics reporting same as T408
[FW] Fix memory leak on p2p session cleanup
[FW] Enabled Jpeg Encoding of source width that is not multiple of 4
[FW] Add support for defining HEVC HDR Mastering Display Colour Volume SEI through xcoder-params
     - works with hevc only, h264 is done through sei
     - encoder config struct updated using reserved area
     Changing FW API version to 65
[FW] Fix bug in calculation of AI core load causing it to be over 100%
================================================================================
Release version: 4.0.0_RCD
Date: 2022-08-12            FW version: 4.0.0_RCD           SW version: 4.0.0_RCB
FW API ver: 64              FW Loader ver: 2.3.1
--------------------------------------------------------------------------------
[FW] Fix AI core hang when application side exits abnormally
[FW] Fix 1st pass HW timeout causing cuTree thread exception, caused by lookahead thread not setting error status
[FW] Fix loss of ni_pad background colour by storing rgba colour on config output in scaler context to maintain fill colour from frame to frame
[FW/TOOLS] Record log buffer start address in fixed address so loganProbe can operate without addr.json file
[FW] Add API support for large number of inputs for 50-input compositor demo
     Changing FW API version to 64
[FW] Add P2P support for scaler output
[FW] Add support for bgr0/uyvy/yuyv/bgrp/nv16 in filters
[FW] Fix ungraceful exit when performing unsupported HWframe sequence change from low to high resolution
[FW] Set NVM Subsystem NVMe Qualified Name to fix warning when interfacing with NVMe v1.3+ driver
[FW] Enable the support of VUI reconfiguration
     Add new reconfigurable parameter videoFullRange
     Changing FW API version to 63
[FW/TOOLS] Add encoder SSIM calculation and reporting through xcoder-param "enableSSIM=1"
           Changing FW API version to 62
[FW] Reenable AI for T1U
[FW] Fix 2-pass encode with intraPeriod 2 incorrectly encode all frames as I-frame, caused by 2nd pass not following 1st pass gop decision
     Fix 2-pass encode headers not repeated, caused by resend headers condition in application layer not matching with actual frame type decision
[FW] Fix decoder model load calculation bug causing it to show 0 when under load
[FW] Add Decoder Busy query support
     Changing FW API version to 61
[FW] Use get-feature id 0xC0 get device clock and low level configuration
[FW] Fix AV1 show frame info incorrect when picture skipped by updating AV1 poc to display after picture encode, only if picture is not skipped
[FW] Fix VP9 decoder stuck when out of memory
[FW] Reduce timeout failures in scaler during heavy load
[FW] Fix headers resent before incorrect frame when pictures are skipped
     Fix intra refresh cycle incorrectly repeated when pictures are skipped
     Fix incorrect reference invalidation when pictures are skipped
     Fix incorrect reference causing decode fail when I-frame generated by reference invalidation is skipped
[FW] Set SPS->VUI->fixed_frame_rate_flag=1
     Changing FW API version to 56
[FW] Fix memory leak when unfolding of AI neural network binary data fails
[FW] Fix I/O error during decoding of certain bad clips
[FW] Fix h.264 2-pass encode memory leak 
     Fix wmv mkv container 2-pass encode memory leak
[FW] Reuse SHA256 of AI neural network binary files from libxcoder to reduce processing time
[FW] Set SPS->VUI->video_signal_type_present_flag=1 by default
[FW] Fixed resource leak during overcapacity causing aborts to happen on different commands
[FW] Fix NVMe detection issues on industrial PCs by invalidating some security admin commands and IO commands
[FW] Report power measurement using NVMe vendor specific get-log
[FW] Adding logging for temperature and clock speeds on throttle state change
[FW] Add support for SMBus ARP
================================================================================
Release version: 3.1.0_RC6
Date: 2022-05-16            FW version: 3.1.0_RC6           SW version: 3.1.0_RC4
FW API ver: 54              FW Loader ver: 1.4
--------------------------------------------------------------------------------
[FW] Fix FW free caused by incorrect handling of PCIe DMA interrupt
[FW] Fix multicore adaptive gop decision incorrect caused by first few frames do not have encoded frames stats to make decision
[FW] Fix card loss caused by Hwavframes + split + 2d filter testcase
[FW] Optimize sequence change by config new resolution instead of close / open encoder instance, if resolution changes from large to small
     Fix 2-pass headers not repeated before IDR due to uninitialized variable
[FW] Support AV1 non-8x8-aligned resolution by forcing / cropping input to 8x8 align, while keeping the input frame cr / cb planes buffer offsets
     Changing FW API version to 54
[FW] Scaler_manager.cpp log improvement - reenable the output buffer ID printout
[FW] Added the support of maxFrameSize libxcoder parameter to limit the frame size
     Changing FW API version to 53
[FW] Skip JpegDecNextPicture when JpegDecDecode returns error
[FW] Fix case where 2D overlay followed by scaler can cause FW freeze
[FW] Fix Shared memory / memory bin leakage after multiple aborted/timeout sessions
[FW] Free input buffers on error in Jpeg decoder
[FW] Fix missing release of 2d core upon execute errors
[FW] Removed code that produces io errors when received from subsystem or
     premature completion
[FW] Fix decoder stuck on error condition in decoder jpeg handler
[FW] Fix 2-pass bitrate change (hrd conformance enabled) having 2 headers at
     stream start when bitrate change triggered on frame less than 2-pass
     delay frame count
[FW] Fix multicore encode early close causing exception when flush before all cores assigned frames to encode
[FW] Fix AV1 intra refresh invalid output bitstream
[FW] Support SMBus repeated start
[FW] Fix decoding of quadra AV1 streams on Chrome with HW accelerated decoding
[FW] Fix session timeout reclaim before subsystem close completes
     Prevent log spam when subsystem close cannot complete
[FW] Reject high 4:4:4 predictive profile
[FW/TOOLS] Fix nvme timeout when HLG input + odd ni_scale + max resolution ni_pad
[FW] Fix encoder stuck when encoder init mem alloc fail
[FW] PCIe DMA stall not recovered
     1. Skip pcie DMA reset channel status timeout check, because when DMA stall, channel status remains RUNNING after stopping the channel
     2. Check DMA stall and reset DMA only if DMA channel remaining length is 0
     3. Wait for DMA channel stop by waiting for status to exit RUNNING or until timeout
     4. Wait for DMA engine disable by waiting for engine bit clear to 0 or until timeout
     5. Modify DMA stall detection to compare DMA channel status and remaining transfer length
================================================================================
Release version: 3.0.0_RC5
Date: 2022-04-19            FW version: 3.0.0_RC5           SW 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
[FW] Fix for PCIe DMA stall recovery stuck
================================================================================
Release version: 3.0.0_RC3
Date: 2022-04-18            FW version: 3.0.0_RC3           SW 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
[FW] Skip pcie DMA reset channel status timeout check, because when DMA stall, channel status remains RUNNING after stopping the channel
================================================================================
Release version: 3.0.0_RC2
Date: 2022-04-15            FW version: 3.0.0_RC2           SW version: 3.0.0_RC2
--------------------------------------------------------------------------------
[FW] Add PCIe DMA stall detection, if stall detected, reset PCIe DMA and re-trigger PCIe DMA transfer
[FW] Fix decoder overcapacity error propagation
[FW] Upload instance count support on XcoderGeneralStatus
     Changing API version to 52
[FW] Fixed Jpeg enc issue generating large bitstream
[FW] Added cache writeback right after JPEG header insertion to resolve cache issue
[FW] Detect unknown bit depth and output picture formats
[FW] Fix JPEG decoding sequence change
================================================================================
Release version: 3.0.0_RC1
Date: 2022-04-13            FW version: 3.0.0_RC1           SW version: 3.0.0_RC1
--------------------------------------------------------------------------------
[FW] Fixed VP9 sequence change from high to low resolutions
     VP9 sequence change for low to high resolutions not working.
[FW] Fix 2-pass reconfig bitrate
       1. Update rate control library librate_control_picture.a
       2. Fix 2-pass reconfig bitrate fails if cuLevelRc enabled
       3. Fix problem when reconfig bitrate / framerate and reconfig min / max QP occur on same frame
     Add safe handling for EOS before headersDecodedCB(), prevents resource free issues during dec close
[FW] Add windows dump logs tool
     support FW upgrade via regular-io commands
     support dump logs via regualar-io commands on Windows
[FW] Report P2P Memory Bin Usage
     Change API version to 51
[FW] P2P memory reclamation
     Add P2P memory reclamation on session inactivity
[FW] Set xcoder_support type to 2 for Quadra in NVMe identify data
     Change API version to 50
[FW] Fix AV1 multicoreJointMode
     1. Fix AV1 multicore encode fail by fixing incorrect poc and show_frame info when multicore enabled
[FW] Fix for reentery assert on decoder close
[FW] Fix session timeout reclaim causing mem bin buffer issues
[FW] Fix 10-bit 2-pass encode HW timeout
[FW] Support AV1 intra refresh
     1. Add support for AV1 intra refresh
     2. Add support for force IDR during AV1 intra refresh, which overrides intra refresh cycle / resets intra period, and generates actual key frame
[FW] Fix 2-pass and 1-pass reconfig bitrate & framerate
     1. Fix 2-pass reconfig bitrate exception caused by non-anchor frame taking invalid qp -1 from re-inited anchor frame predictor
     2. Fix h.265 and h.264 reconfig framerate causing decode fail by not inserting SPS upon framerate change
     3. Fix h.265 with hrd conformance (VUI/SEI) reconfig bitrate / framerate causing decode fail by force IDR, and wait until IDR frame encoding before update rc / insert SPS
     4. Fix reconfig framerate updated time increment (for bucket level calculation) for previous frame encoded prior to frame rate change
[FW] Fixed the CRF problem generating the same bitstream for CRF 23 & 24 with frame rate 25
[FW] Fix dec seqchange and JPEG write
     - Add ability for decoder to reallocate bitstream buffers when requested
     - Fix VS_BITSTREAM_BUF to distinguish between query and actual writes
     Change API version to 41
[FW] Fix Scaler profiling
[FW] Prevent io being resent from nvme driver if errors already happen
[FW/TOOLS] Encoder performance improvements
[FW] Vp9 decoder odd resolution displaymatrix show error
[FW] Removed noc reset from TopInitMainFw - helps with warm upgrade
[FW] Parallel instance upload
     - Session manager service loop 10Hz check
     - NSQ,NCQ Coalescing
     - Upload instance no longer takes away instance count from ep
     - Upload instance limited to 128 instances
     Changing API version to 40
[FW] Pre allocate decode command memory buffer
[FW] Added the support for JPEG enc model load
[FW] Port of configurable per session timeout from t408
[FW] Fix deadlock when exiting abnormally
[FW] Support confgurable long term references count
     1. Allow user to configure long term references count (1 or 2) to workaround 2 LTRs decode issue
     Changing API version to 31
[FW] Require no alignment for RGBA
[FW] Enable dump_cpu_debug() for NOC errors
[FW] Fix filler enable invalid output & AV1 pic skip encode fail & AV1 frame loss when PTS is repeated
     1. Fix corrupted filler NAL by increasing output buffer allocation when encode with low resolution and high bitrate
     2. 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
[FW] SMBus support for T2 and T4
[FW] Reduced decoder VPU timeout to prevent HW timeout on bad frames from causing timeouts on ffmpeg.
[FW/TOOLS] Introduce tools/smbus.py
[FW/TOOLS] Add quadra_fw_info tool
[FW] Add support for using n2d_filterblit when scaling.
[FW] Add assertion to scaler manager if illegal membin arrives
[FW] Updated support for aborted transactions
     Added abort of all pending commands when processing session close.
[FW] Correct AI performance load
     1. correct the load value reporting to the applications.
     2. expand per session buffer numbers so that it has enough input
        images to feed the hardware.
[FW] Temperature Throttling and SMART Log Changes
     - SMART log temperature related fields are only updated whenever
       UpdateSmartLog() is triggered instead of being updated every minute.
     - Fix composite temperature reporting for SMBus.
     - Temperature throttling and DUTShutdownAndReset() will happen based on
       the composite temperature threshold.
================================================================================
Release version: 2.3.0_RC1
Date: 2022-02-28            FW version: 2.3.0_RC1           SW version: 2.3.0_RC1
--------------------------------------------------------------------------------
[FW] Resolve conflict between P2P DMA upload and hwupload combined buffer query and desc read
[FW] Removed dmesg error by returning SUCCESS from HandleEventOperationRequestDescriptorReady() in firmware
     - Renamed InstanceID to SubsystemID on nvme/session manager
[FW] Support reconfig framerate, Add rcQpDeltaRange
     1. Add reconfig framerate support
     2. Add rcQpDeltaRange in config parameter to adjust cu level rc max qp delta relative to frame qp
[FW] Hwupload combined buffer query and desc read
[FW] HWupload query retry acquire buffer bug fix
[FW] IPC queue full handling
[FW] Support LoganProbe with P2P DMA
================================================================================
Release version: 2.2.0_EN1
Date: 2022-01-29            FW version: 2.2.0_EN1           SW version: 2.2.0_EN1
--------------------------------------------------------------------------------
[FW] Low delay encode changes for P2P DMA copy demo
     1. For P2P DMA copy demo, do not alloc mem bin buffers for HW frame low delay mode encode (will only use buffers passed from upstream)
[FW] Create P2P memory region in memory bin manager
     Added new memory heap in memory bin manager for P2P DMA.
     Changes to EP to allow acquire of frames from the P2P region.
================================================================================
Release version: 2.2.0_RC1
Date: 2022-01-22            FW version: 2.2.0_RC1           SW version: 2.2.0_RC1
--------------------------------------------------------------------------------
[FW] Fix P frame size too big & gopPresetIdx 7 issues
     1. Update rate control library
[FW] Improve NVMe Log Output
[FW] Repeat headers before IDR caused by referenes invalidation & Reconfig intra period cause headers repeated to incorrect frame
     1. Support repeating headers before IDR frame caused by invalidating referenes
     2. Workaround headers repeated in front of incorrect frame after reconfig intra period (NOTE - reconfig intra period is currently not supported)
[FW] Fix Temperature Throttling Implementation
     Rework SMART Log Critical Warning Temperature bit set
[FW] Fix ffmpeg force_key_frames transcode missing key frames
     add support to report h.265 IRAP besides IDR (CRA / BLA) nal types as key frames
================================================================================
Release version: 2.1.0_RC1
Date: 2022-01-14            FW version: 2.1.0_RC1           SW version: 2.1.0_RC1
--------------------------------------------------------------------------------
[FW] Persistent log dump feature
[FW] gopPresetIdx 3, 7, 8 rate control related changes
     1. Update rate control library librate_control_picture.a
     2. Add gop low delay flag in rate control structure required for rate control library
[FW] Improve error handling on AI side
[FW] Enable DP_IPC_BYPASS by default to improve dec performance
[FW] Optimize multi-instance encode latency
[FW] Support LTR & short term / long term reference invalidation
     1. Support short term / long term reference invalidation
     2. Support config and reconfig of LTR interval
     3. Support setting LTR on frame basis
[FW] Accomodate resource monitor load for temperature throttling
[FW] Add temperature throttling
[FW] Fix multi-instance JPEG decode
     Each JPEG instance gets its own command FIFO instead of sharing
     one to prevent synchronization issue.
[FW] Improve performance in scaler manager
================================================================================
Release version: 1.2.0
Date: 2021-11-03            FW version: 1.2.0              SW version: 1.2.0
--------------------------------------------------------------------------------
[FW] First Customer Availability
