
2015-06-01 (v1.0.15):
---------------------
  Added feature(s) :
     - HEVC dependent slice support
     - Add VP9 segment management for QP per LCU

  Fixed Bug(s)
     - Fix memory leak
     - Fix VPS and SPS flags conformance issue

  Other change(s) :
    - Add 64-bit support
    - Add support for Android

2015-06-30 (v1.0.16):
---------------------
  Added feature(s) :
    - QpCtrlMode = LOAD_QP allows to load the QP table from an external QP file.
    - more configuration parameters are now available from command line (see section 2 of the user manual)
    - CBR is now available in VP9
    - Add command list support

  Fixed Bug(s) :
    -- Fix candidate reference list construction in VP9
    -- Fix Segment data management and VP9 Frame Header

  Other change(s) :
    - Remove warnings and errors from static analysis
    - Align Traces with hardware testbenches

2015-07-08 (v1.0.17) :
---------------------
  Added feature(s) :

  Fixed Bug(s) :
    -- Fix rate control initialization and limit.
    -- Fix VP9 encapsulation (IVF), increment frame number.

  Other change(s) :
    -- Rename SLICE_SKIP into SLICE_REPEAT for VP9 encoder
    -- Cleanup segment IDs initialisation in QP table
    -- Cleanup config files


2015-07-30 (v1.0.18) :
---------------------
  Added feature(s) :
    -- Add Preliminary support for VBR rate control
    -- Add support for HW IP that includes monochrome option

  Fixed Bug(s) :
    -- Fix output trace file in command list mode with several slices per frame

  Other change(s) :
    -- improve Custom Gop by allowing POC value different from source order

2015-08-10 (v1.0.19) :
---------------------
  Added feature(s) :
    -- Add Preliminary support of Long Term reference picture
    -- Add AllRefInPast flag in command registers
    -- Add Reconstructed and Motion vectors output disabled flag in command registers
    -- Add Driver tests documentation
  Fixed Bug(s) :
    -- Remove srand utilization
    -- Add to_string replacement for android libc

2015-09-04 (v1.0.20) :
---------------------
  Added feature(s) :
    -- Add PYRAMIDAL_GOP
    -- up to 4 consecutives B frame in DEFAULT_GOP mode
  Fixed Bug(s) :
    -- Fix multi-core IP management

2015-10-08 (v1.0.21) :
---------------------
  Fixed Bug(s) :
    -- Fix crash issue when src yuv format was different from reconstructed yuv Format.
    -- Fix relative QP table feature in VP9
    -- Fix Low delay B Gop pattern when number of frame is not multiple of Gop.length

2015-11-13 (v1.0.22) :
---------------------
  Added feature(s) :
    -- Add mcu firmware in app_mcu
    -- Mcu firmware support HEVC and AVC encoding
    -- SchedulerMcu implements the discussion with the mcu linux driver
  ToDos :
    -- Pyramidal GOP mode on MCU
    -- MultiChannel on MCU (not validated)
    -- Perfs feedback on MCU

2016-02-26 (v1.0.23) :
---------------------
  Added feature(s) :
    -- dmabuf first step support (take dmabuf as input)

2016-05-19 (v1.0.26) :
---------------------
  Added feature(s) :
    -- 64 bit compilation support for CtrlSW (runtime not validated)
    -- Improved multichannel scheduling
    -- Redmine #689: Set ForceLoad to true by default
    -- Improved perfs on MCU
    -- Show firmware and libraries footprint at build
  ToDos:
    -- Redmine #673: Improve rate ctrl in low_delay cases

2016-06-03 (v1.0.27):
---------------------
 Fixed Bug(s) :
    -- Added missing MCU data cache invalidation
    -- Fix potential missing register field in AVC multicore status merge
    -- Fix POC encoding in slice header
    -- Include testEnc patches from Redmine #576
    -- Improve driver stability for multi-channel

2016-06-07 (v1.0.27b):
-----------
  Added feature(s) :
    -- buffer allocation is controlled by the user
    -- dmabuf support

2016-08-08 (v1.0.28):
---------------------
    -- Fix dcache invalidation (dcache invalidation needs to be aligned on 32bit)
    -- Fix firmware WPP in firmware mode (dcache invalidation error)
    -- Fix 64bit (firmware compatibility with its control software)
    -- Fix memory leak in the DevicePool
    -- Fix ioctl structure alignments

2016-09-09 (v1.0.29):
---------------------
    -- Add CBR option for scene change resilience
    -- Fix division by zero when all LCUs are skipped in multi core AVC

2016-09-09 (v1.0.29b):
---------------------
  Added feature(s) :
    -- buffer allocation is controlled by the user
    -- dmabuf support

2016-12-23 (v1.0.30):
---------------------
  Added feature(s) :
    -- GoP in MCU (Phase 1)
    -- Enhance error feedback
    -- Sync Enc1 / Enc2 (Phase 1)

2017-3-01 (v1.0.32):
--------------------
  Added features (Encoder) :
    -- GoP in MCU
    -- Encoder and Decoder in the same package

  Added features (Decoder) :
    -- enhance error concealment
    -- fix hang issue

  Missing feature(s) :
    -- long terms
    -- pyramidal gop

2017-06-09 (v1.0.33):
--------------------

  Added features (Codec) :
    -- Move user API header files into single include folder
    -- Improve conversion function to allow native use of RX0A, RX2A, RXmA
      as inputs.
    -- Remove usage of --relax option while compiling the firmware because of
      code generation bug when it used with --gc-sections
    -- Report mcu errors more precisely
    -- Improve multichannel fairness.
    -- Add support for partial AVC level 6 in the decoder (8K yuvs)

  Missing feature(s) :
    -- long terms
    -- pyramidal gop

2017-06-30 (v1.0.34)
--------------------

  Added features (Codec) :
    -- pyramidal gop
    -- change eos mechanism to avoid a one frame buffer latency (encode)

  API:
    -- make lib_encode and lib_decode APIs uniform
    -- use std types (uint32_t ...)

  Missing feature(s) :
    -- long terms

2017-07-28 (v1.0.35)
--------------------

  Added features (Codec) :
    -- fix crashes when the dma allocation failed
    -- fix freqIDR
    -- external SEI support (encode)
    -- Fix command line parsing : hexadecimal value are allowed again

  API:
    -- export less headers in include: We do not export IScheduler.h anymore.
    -- exe_encoder and exe_decoder do not depend on any internal headers anymore
    -- add API to add section in the stream buffer from outside lib_encode (external SEI support)
    -- add decoder AL_Decoder_ForceStop API to terminate decoding regardless of remaining data in 
       the circular buffer and/or input buffer(s), only wait for end of command already sent to the MCU.

  Missing feature(s) :
    -- long terms

2017-09-04 (v1.0.36)
--------------------

  Added features (Codec) :
    -- fix dpb buffer management (decode)
    -- fix sem_wait and equivalent when signal are present
    -- use minQP, maxQP from channel parameter in AUTO_QP (encoder)
    -- fix compliance when using SEI message (encode)
    -- fix rate control CONST_QP (P-frames, B-frames QPs values were interchanged)
    -- fix potential race condition on EOS : we could miss a frame (encoder)

  Missing feature(s) :
    -- long terms

2017-09-21 (v1.0.37)
--------------------

  Added features (Codec) :
    -- Fix error paths when signals are sent to the application using lib_encode / lib_decode
    -- Better error reporting when configuration files are wrong
    -- Size optimization: Streampart, Cmdlist and channel context size optimizations
    -- Better error reporting at channel creation
    -- Stream buffer overcommitted while encoding are now properly released at AL_Encoder_Destroy
    -- Fix memory leak in decoder mcu mode
    -- Fix potential data race (decoder)
    -- Fix cmdlist wrapping data race (decoder)
    -- Relaxed watchdog timeout constraint in slicelat

  API:
    -- AL_Settings_CheckCoherency now returns -1 at fatal failure, number of incoherency
    if it corrected some.
    -- HLIBREF was removed, the lib_ref is now fully an AL_TIpCtrl. The destruction
    of the lib_ref is now handled using the virtual destruction of the AL_TIpCtrl
    -- RefAlloc is now fully an AL_TAllocator and implements the virtual destruction too
    -- AL_Encoder_Create and AL_Decoder_Create signature change to enable better error reporting


  Missing feature(s) :
    -- long terms

2017-11-14 (v1.0.38)
--------------------

  Added features (Coded) :
    -- Fix hardware rate control overflow
    -- Scene Change resilience improvement
    -- Footprint / latency optimization at exe_decoder level. (preallocation)
    -- Better error resilience
    -- Fix watchdog handling in slicelat
    -- partial fix of multichannel scheduling

  API:
    -- Remove I_DecChannel.h header from the decoder api. To fix compilation,
    just include lib_decode.h instead. I_DecChannel type is now a handle for the
    user. This also removes DecBuffers.h, DecPicParam.h, DecSliceParam.h, StartCodeParam.h
    -- Rename AL_Decoder_PutDecPict -> AL_Decoder_PutDisplayPicture
    -- Remove AL_Decoder_ForceStop API. This is now automatically done when you destroy the decoder
    whithout calling AL_Decoder_Flush
    -- Remove AL_Decoder_GetDecPict from decoder API
    -- Remove AL_Decoder_ReleaseDecPict from decoder API. You should use AL_Decoder_PutDisplayPicture
    instead.

  Missing feature(s):
   -- long terms

2018-04-13 (v1.0.40)
--------------------
  API:
    -- Remove DecChanParam.h header from the decoder api
    -- All API functions should have the AL_ prefix
    -- AL_TBuffer now takes ownership of the memory handle passed to it
    -- The encoder source buffer stride can now be different from the the minimum supported pitch.
    -- Some function were renamed for better comprehension (older function were deprecated with a link to the new function)
    -- Documentation for almost all the user facing structure of the libraries
    -- Add adaptive B gop-mode feature
    -- Add interlace alternate field support for encoder and decoder
    -- Decoder now takes a user stride into account

2018-08-23 (v1.0.41)
--------------------
  Added Features :
    -- Add support of 32 channels
    -- Add (VPS), SPS, PPS and SEI Recovery point on first frame of GDR
    -- Multi-channel support in slice lat mode
    -- new API for SEI insertionin Encoder
    -- SEI message callback in Decoder

  Fixes :
    -- L2Prefetch Buffer + Wavefront not allowed
    -- Decoder error resilience improvement
    -- Improve rate control on some specific sequence
    -- Fix dynamic gop length change on I-frame


2018-11-14 (v1.0.42)
--------------------
  Added Features :
    -- LowLatency Phase 2

  API:
    -- Use planes (AL_TPlanes) to describe YUV buffers: SrcMetaData
    -- AL_DPB_LOW_REF becomes AL_DPB_NO_REORDERING
    -- AL_GetMaxNalSize requires codec, dimension, chroma mode, bitdepth, level and profile idc to compute a more accurate value
    -- Version of the API is now 0.10.0
    -- Add AL_VERSION_MAJOR, AL_VERSION_MINOR and AL_VERSION_STEP #defines

  Fixes :
    -- Improve rate control on specific sequences
    -- Handle out of order interrupts in avc low latency case
    -- Improve offline two pass algorithm quality
    -- Memory leak in the decoder destroy channel call

2019-01-18 (v1.0.43)
--------------------
  Added Features :
    -- Encoder dynamic resolution change (DRC)
    -- Decoder dynamic resolution change

  API:
    -- Version of the API is now 0.11.0
    -- Decoder resolution found callback is now called on every valid configuration found and not anymore on the first valid configuration
    -- Add a new encoder API (AL_Encoder_SetInputResolution) to signal the CtrlSW of the new input resolution

  Fixes :
    -- Improve rate control on specific sequences
    -- Sync IP
    -- Several minors bugs

2019-02-15 (v1.0.44)
--------------------
  Added Features :
    -- Temporal layer ID insertion
    -- Frame delta QP based on temporal ID
    -- Lambda factor based on temporal ID
    -- Colorimetry
    -- Frame skipping support (rate control)

  API:
    -- Version of the API is now 0.12.0
    -- Add a new encoder configuration parameter named tempDQP in the GopParam (in cfg: Gop.TempDQP [GOP])
    -- Add a new encoder configuration parameter named LdaFactors in ChanParam (in cfg: LambdaFactors [SETTINGS])

  Fixes :
    -- Improve rate control on specific sequences
    -- Several minors bugs

2019-04-19 (v1.0.46)
--------------------
  Added Features :
    -- Better documentation of the encoder configuration file (using --help-cfg)
    -- Add --show-cfg which show what each of the variable of the cfg is before encoding.
    -- --help-cfg now shows the default value of the value.
    -- Better documentation of the encoder settings
    -- External rate control plugin
    -- Synchronous SEI extraction
    -- Add another input buffers management: decoder metadata transfer from input buffer to output buffer is now possible

  API:
    -- Version of the API is now 0.13.0
    -- Add a new decoder parameter settings called 'bSplitInput': it enables the decoder 1-to-1
    -- Add missing 'AL_' on structs/enums
    -- Remove unneded functions
    -- Add new metadatas:
        - retrieve input buffer when using the new input buffers management
        - retrieve sync SEI

  Fixes :
    -- Several minors bugs

2019-06-28 (v1.0.47)
--------------------
  Added Features :
    -- xAVC support implementation (LongGOP & Intra only)
    -- 2 new GOP mode: AL_DEFAULT_GOP_B, AL_PYRAMIDALE_B
    -- Adaptive Deblocking filter / control at frame level
    -- MaxPicturesize control based on picture type , i.e Set I frame and Pframes sizes separately to avoid flickering effect at Intra/IDR pictures
    -- Relative QP on top of AUTO_QP mode

  API:
    -- Version of the API is now 0.14.0
    -- Add missing 'AL_' on structs/enums
    -- Add AL_Encoder_SetLoopFilterTcOffset and AL_Encoder_SetLoopFilterBetaOffset for the Adaptive DBF feature

  Fixes :
    -- Improve rate control on specific sequences
    -- Several minors bugs

2019-08-12 (v1.0.48)
--------------------
  Added Features :
    -- Reduce mail size for channel creation
    -- HDR 10 support:
        - the user can encode an HDR10 compliant bitstream by setting the appropriate VUI and SEI parameters using the CtrlSW
        - the user can extract the HDR10 parameters from a bitstream
    -- Optimize CPU performance for filler data insertion

  API:
    -- Version of the API is now 0.15.0
    -- Remove users API from CtrlSW API (i.e. ROI, RANDOM, ..)
    -- QpCtrlMode is split at CtrlSW level. We have 2 new parameters: QpCtrl and QpTable. Nothing change for config file
    -- Filler data new enum: AL_EFillerCtrlMode
    -- Add new metadata for HDR 10: AL_THDRMetaData
    -- Add new enum for HDR 10: AL_ETransferCharacteristics, AL_EColourMatrixCoefficients
    -- Add missing 'AL_' on structs/enums

  Fixes :
    -- AL_Encoder_SetLoopFilterTcOffset and AL_Encoder_SetLoopFilterBetaOffset for the Adaptive DBF feature
    -- Several minors bugs


