Round when converting from float to int, this is more like what the user
expects about image dimensions.
 install(TARGETS am7xxx-static
    DESTINATION "${CMAKE_INSTALL_PREFIX}/lib")
 
 install(TARGETS am7xxx-static
    DESTINATION "${CMAKE_INSTALL_PREFIX}/lib")
 
-target_link_libraries(am7xxx ${LIBUSB_1_LIBRARIES})
-target_link_libraries(am7xxx-static ${LIBUSB_1_LIBRARIES})
+find_library(MATH_LIB m)
+
+target_link_libraries(am7xxx ${MATH_LIB} ${LIBUSB_1_LIBRARIES})
+target_link_libraries(am7xxx-static ${MATH_LIB} ${LIBUSB_1_LIBRARIES})
 
 # Install the header files
 install(FILES "am7xxx.h"
 
 # Install the header files
 install(FILES "am7xxx.h"
 
 #include <stdarg.h>
 #include <errno.h>
 #include <libusb.h>
 #include <stdarg.h>
 #include <errno.h>
 #include <libusb.h>
 
 #include "am7xxx.h"
 #include "serialize.h"
 
 #include "am7xxx.h"
 #include "serialize.h"
                 */
                debug(dev->ctx, "CASE 1, original image wider, adjust the scaled height\n");
                *scaled_width = device_info.native_width;
                 */
                debug(dev->ctx, "CASE 1, original image wider, adjust the scaled height\n");
                *scaled_width = device_info.native_width;
-               *scaled_height = (unsigned int)(original_height / width_ratio);
+               *scaled_height = (unsigned int)lroundf(original_height / width_ratio);
        } else if (width_ratio < height_ratio) {
                /*
                 * The input is proportionally "taller" than the device viewport
                 * so its width needs to be adjusted
                 */
                debug(dev->ctx, "CASE 2 original image taller, adjust the scaled width\n");
        } else if (width_ratio < height_ratio) {
                /*
                 * The input is proportionally "taller" than the device viewport
                 * so its width needs to be adjusted
                 */
                debug(dev->ctx, "CASE 2 original image taller, adjust the scaled width\n");
-               *scaled_width = (unsigned int)(original_width / height_ratio);
+               *scaled_width = (unsigned int)lroundf(original_width / height_ratio);
                *scaled_height = device_info.native_height;
        } else {
                debug(dev->ctx, "CASE 3, just rescale, same aspect ratio already\n");
                *scaled_height = device_info.native_height;
        } else {
                debug(dev->ctx, "CASE 3, just rescale, same aspect ratio already\n");