From 18b3cd30bf58e6534b91eab29bbc6ab51c9ac6c6 Mon Sep 17 00:00:00 2001 From: Michael Fabian 'Xaymar' Dirks Date: Sat, 28 Mar 2020 16:18:17 +0100 Subject: [PATCH] filter-transform: Migration code for earlier stable versions This fixes #116 which was caused by a refactor in commit efb6b0b9be413914c803bddaefdbe88a8195b273. This bug was left undiscovered until users started upgrading from the last stable version to the current pre-release. --- source/filters/filter-transform.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/source/filters/filter-transform.cpp b/source/filters/filter-transform.cpp index c483ac92..f141a03c 100644 --- a/source/filters/filter-transform.cpp +++ b/source/filters/filter-transform.cpp @@ -115,9 +115,23 @@ transform::transform_instance::~transform_instance() void transform::transform_instance::load(obs_data_t* settings) { + migrate_settings(settings); update(settings); } +inline void migrate_settings(obs_data_t* settings) +{ + uint64_t version = static_cast(obs_data_get_int(settings, S_VERSION)); + + switch (version & STREAMFX_MASK_COMPAT) { + case 0: + obs_data_set_double(settings, ST_ROTATION_X, -obs_data_get_double(settings, ST_ROTATION_X)); + obs_data_set_double(settings, ST_ROTATION_Y, -obs_data_get_double(settings, ST_ROTATION_Y)); + } + + obs_data_set_int(settings, S_VERSION, STREAMFX_VERSION); +} + void transform::transform_instance::update(obs_data_t* settings) { // Camera