+
+/** Compare two VSMotionDetectConfig structures.
+ * Return 1 if they are different. 0 if they are the same.
+ */
+
+int compare_motion_config( VSMotionDetectConfig* a, VSMotionDetectConfig* b )
+{
+ if( a->shakiness != b->shakiness ||
+ a->accuracy != b->accuracy ||
+ a->stepSize != b->stepSize ||
+ // Skip: Deprecated
+ // a->algo != b->algo ||
+ a->virtualTripod != b->virtualTripod ||
+ a->show != b->show ||
+ // Skip: inconsequential?
+ // a->modName != b->modName ||
+ a->contrastThreshold != b->contrastThreshold )
+ {
+ return 1;
+ }
+ return 0;
+}
+
+/** Compare two VSTransformConfig structures.
+ * Return 1 if they are different. 0 if they are the same.
+ */
+
+int compare_transform_config( VSTransformConfig* a, VSTransformConfig* b )
+{
+ if( a->relative != b->relative ||
+ a->smoothing != b->smoothing ||
+ a->crop != b->crop ||
+ a->invert != b->invert ||
+ a->zoom != b->zoom ||
+ a->optZoom != b->optZoom ||
+ a->zoomSpeed != b->zoomSpeed ||
+ a->interpolType != b->interpolType ||
+ a->maxShift != b->maxShift ||
+ a->maxAngle != b->maxAngle ||
+ // Skip: inconsequential?
+ // a->modName != b->modName ||
+ // Skip: unused?
+ // a->verbose != b->verbose ||
+ a->simpleMotionCalculation != b->simpleMotionCalculation ||
+ // Skip: unused?
+ // a->storeTransforms != b->storeTransforms ||
+ a->smoothZoom != b->smoothZoom ||
+ a->camPathAlgo != b->camPathAlgo )
+ {
+ return 1;
+ }
+ return 0;
+}