Video SDK Executable Size Control via Pointer Indirection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software development kits for video processing applications face challenges in balancing executable size with the need for dynamic or static library loading, where dynamic loading results in slower application performance and increased size with static libraries.
Innovation Solution
A system that uses a video processing framework with statically linked library functions, accessed indirectly through a pointing function, allowing unused library functions to be removed via preprocessor conditionals, thereby controlling executable size by excluding unnecessary code during compilation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If dynamic loading is used to load libraries at run time, then the application can control functionality usage and discover available libraries, but the application startup time increases and performance decreases due to library load times
Solution Approach 1:
The patent applies preliminary action by pre-linking library functions to the executable during compilation, so that all necessary code is prepared in advance and no runtime loading is needed. This resolves the contradiction by achieving fast startup (like static linking) while maintaining functionality control through conditional compilation directives that determine which libraries are included in the final executable.
2Reliability
If static libraries are linked to the final executable, then the application avoids dynamic loading problems and achieves better performance, but the executable size increases due to inclusion of all library code
Solution Approach 1:
The patent applies the extraction principle by selectively removing unused library code from the final executable through conditional compilation. The preprocessor conditional directives evaluate at compile time and exclude unnecessary library function code from being linked into the executable, thus reducing executable size while maintaining the reliability benefits of static linking for the functions that are actually used.
Solution Approach 2:
The patent applies local quality by making the linking behavior function-specific rather than library-wide. Each library function can be independently selected for inclusion or exclusion based on conditional compilation directives, allowing the executable to contain only the specific functions needed rather than all functions from all libraries.
3Adaptability or versatility
If all static libraries called by the framework are linked to the final executable, then the application gains access to all functionalities, but the executable size increases due to inclusion of unnecessary library code
Solution Approach 1:
The patent uses preliminary action through conditional compilation directives that are evaluated at compile time to determine which library functions to include. This allows the developer to pre-determine the exact set of functionalities needed and compile only those specific functions into the executable, avoiding the inclusion of unnecessary code while maintaining full access to needed functionalities.
Data Source
AI summary
A system for controlling executable size of video development kits comprises an SDK. The SDK comprises a framework, an SDK library function, and a pointing function to deliver a pointer. The framework calls a pointing function. The SDK library function comprises a video processing function. The framework and the SDK library function are compiled into a video processing application. The pointing function points to the SDK library function. The pointing function includes a preprocessor conditional to remove a code section that refers to the SDK library function.


