use correct size with media node

This commit is contained in:
itsmattkc
2019-09-10 12:56:07 +10:00
parent fc4ce3b26e
commit 333d7392d9
10 changed files with 33 additions and 17 deletions
+8 -8
View File
@@ -235,17 +235,17 @@ QVariant MediaInput::Value(NodeOutput *output, const rational &time)
QMatrix4x4 transform;
float sequence_aspect_ratio = static_cast<float>(renderer->width()) / static_cast<float>(renderer->height());
float media_aspect_ratio = static_cast<float>(frame_->width()) / static_cast<float>(frame_->height());
// Scale texture to a square for incoming matrix transformation
transform.scale(static_cast<float>(renderer->height()) / static_cast<float>(renderer->width()), 1.0f);
transform.scale(1.0f / sequence_aspect_ratio, 1.0f);
// Input transform
// Multiply by input transformation
transform *= matrix_input_->get_value(time).value<QMatrix4x4>();
transform.scale(media_aspect_ratio, 1.0f);
/*transform.scale(static_cast<float>(frame_->width()) / static_cast<float>(renderer->width()),
static_cast<float>(frame_->height()) / static_cast<float>(renderer->height()));*/
// Scale texture to the media's aspect ratio
transform.scale(static_cast<float>(frame_->width()) / static_cast<float>(frame_->height()), 1.0f);
float media_size = static_cast<float>(frame_->height()) / static_cast<float>(renderer->height() * renderer->divider());
transform.scale(media_size, media_size);
// Use pipeline to blit using transformation matrix from input
if (renderer->mode() == olive::RenderMode::kOffline) {