Implement the FFmpegController which will serve as the high level orchestrator for FFmpeg operations. For more context, see #45.
One thing to note here is that, the user may wish to update the FFmepg settings after instantiating the controller. We have to provide an updateSettings() public member function to faciliate this.
Initially I see 2 feasible solutions which would require changes to the FFmepgSettingsManager:
Add a private member varible of type unordered map to keep track of modification status of each setting. Get the map within the controller, check for changed fields when updateSettings() is called.
Same thing as (1), but with a bitmask. Introduce a public enum, e.g. SettingsFlags to expose the mask of each field, e.g.OverwriteFlag = 0x01.
With the limited amount of settings and likely infrequent nature of these calls, hash map seems like the better option for readability.
The initial implementation of the controller should support these operations with a possibility of updating the settings as mentioned in the description.
Implement the FFmpegController which will serve as the high level orchestrator for FFmpeg operations. For more context, see #45.
One thing to note here is that, the user may wish to update the FFmepg settings after instantiating the controller. We have to provide an
updateSettings()
public member function to faciliate this.Initially I see 2 feasible solutions which would require changes to the
FFmepgSettingsManager
:updateSettings()
is called.SettingsFlags
to expose the mask of each field, e.g.OverwriteFlag = 0x01
.With the limited amount of settings and likely infrequent nature of these calls, hash map seems like the better option for readability.