+float calculate_pixel_aspect_ratio(const Size& source, const Size& target)
+{
+ float source_aspect = 16.0f / 9.0f; // random guess
+ if (source != Size(0, 0))
+ {
+ source_aspect =
+ static_cast<float>(source.width) /
+ static_cast<float>(source.height);
+ }
+
+ float target_aspect =
+ static_cast<float>(target.width) /
+ static_cast<float>(target.height);
+
+ return target_aspect / source_aspect;
+}
+