| 86 | } |
| 87 | |
| 88 | void rescaleTo(MediaPlayer* videoView) |
| 89 | { |
| 90 | auto& videoSize = _vrender->getContentSize(); |
| 91 | if (videoSize.x > 0 && videoSize.y > 0) |
| 92 | { // rescale video to view node |
| 93 | auto viewSize = videoView->getContentSize(); |
| 94 | if (viewSize.x > 0 && viewSize.y > 0) |
| 95 | { |
| 96 | if (_vpixelDesc._rotation % 180 != 0) |
| 97 | std::swap(viewSize.x, viewSize.y); |
| 98 | _vrender->setRotation(_vpixelDesc._rotation); |
| 99 | |
| 100 | if (!videoView->isKeepAspectRatioEnabled()) |
| 101 | { |
| 102 | const auto scale = Vec2(viewSize.x / videoSize.x, viewSize.y / videoSize.y); |
| 103 | _vrender->setScale(scale.x, scale.y); |
| 104 | |
| 105 | auto* mediaController = videoView->getMediaController(); |
| 106 | if (mediaController) |
| 107 | { |
| 108 | if (mediaController->getOrientation() == MediaController::Orientation::RotatedLeft) |
| 109 | { |
| 110 | mediaController->setContentSize(videoSize * |
| 111 | Vec2(viewSize.y / videoSize.x, viewSize.x / videoSize.y)); |
| 112 | mediaController->setRotation(-90); |
| 113 | } |
| 114 | else if (mediaController->getOrientation() == MediaController::Orientation::RotatedRight) |
| 115 | { |
| 116 | mediaController->setContentSize(videoSize * |
| 117 | Vec2(viewSize.y / videoSize.x, viewSize.x / videoSize.y)); |
| 118 | mediaController->setRotation(90); |
| 119 | } |
| 120 | else |
| 121 | { |
| 122 | mediaController->setContentSize(videoSize * scale); |
| 123 | } |
| 124 | } |
| 125 | } |
| 126 | else |
| 127 | { |
| 128 | const auto aspectRatio = (std::min)(viewSize.x / videoSize.x, viewSize.y / (videoSize.y)); |
| 129 | |
| 130 | _vrender->setScale(aspectRatio); |
| 131 | |
| 132 | auto* mediaController = videoView->getMediaController(); |
| 133 | if (mediaController) |
| 134 | { |
| 135 | if (mediaController->getOrientation() == MediaController::Orientation::RotatedLeft) |
| 136 | { |
| 137 | mediaController->setContentSize(Vec2(videoSize.y * aspectRatio, videoSize.x * aspectRatio)); |
| 138 | mediaController->setRotation(-90); |
| 139 | } |
| 140 | else if (mediaController->getOrientation() == MediaController::Orientation::RotatedRight) |
| 141 | { |
| 142 | mediaController->setContentSize(Vec2(videoSize.y * aspectRatio, videoSize.x * aspectRatio)); |
| 143 | mediaController->setRotation(90); |
| 144 | } |
| 145 | else |
no test coverage detected