This section provides migration guide from 2018.3 to 2019.1 release. It covers list of modified and newly added VCU control software API for 2019.1 release. For more details, see:
- Readme at Doxygen folder in VCU control software repository
- See VCU Control Software API in this chapter
Global API Changes
- Since the semantic versioning continues to be in 0.x, the API is not stable.
- Macros are becoming static inline function when it is possible / useful.
- All the prototypes of the functions are now complete prototype; functions with no parameters are declared using (void) to ensure signature safety.
Problems to Stabilize the API
You cannot stop modifying the AL_TEncSettings and the AL_TEncChanParam because these structures are used internally and many of their members can be obsolete when some internal algorithm changes. New members cannot be added without deleting obsolete/ irrelevant members for backward compatibility as these structures are sent to the MCU and thus, the space taken by each of these structures is relevant.
This means that for the API to become stable and for semantic versioning to become 1.x (See https://semver.org/) you need to change the way you get the encoder settings from the user to hide the affected structures from the user. This can be done with an opaque settings object that will hide the actual structures and that will be accessed using methods. The luma and chroma planes interface needs to be further refined before freezing it as they do not let you specify different buffers for the luma and chroma.