7#include <packager/media/base/video_util.h>
14uint64_t CalculateGCD(uint64_t a, uint64_t b) {
23void ReducePixelWidthHeight(uint64_t* pixel_width, uint64_t* pixel_height) {
24 if (*pixel_width == 0 || *pixel_height == 0)
26 const uint64_t kMaxUint32 = std::numeric_limits<uint32_t>::max();
28 uint64_t gcd = CalculateGCD(*pixel_width, *pixel_height);
32 if (*pixel_width <= kMaxUint32 && *pixel_height <= kMaxUint32)
44void DerivePixelWidthHeight(uint32_t frame_width,
45 uint32_t frame_height,
46 uint32_t display_width,
47 uint32_t display_height,
48 uint32_t* pixel_width,
49 uint32_t* pixel_height) {
59 uint64_t pixel_width_unreduced =
60 static_cast<uint64_t
>(display_width) * frame_height;
61 uint64_t pixel_height_unreduced =
62 static_cast<uint64_t
>(display_height) * frame_width;
63 ReducePixelWidthHeight(&pixel_width_unreduced, &pixel_height_unreduced);
64 *pixel_width = pixel_width_unreduced;
65 *pixel_height = pixel_height_unreduced;
All the methods that are virtual are virtual for mocking.