added backend for autoscale
This commit is contained in:
@@ -35,6 +35,6 @@ SpeedDialog::SpeedDialog(QWidget *parent) : QDialog(parent) {
|
||||
reverseLayout->addWidget(reverse);
|
||||
layout->addLayout(reverseLayout, 3, 0, 2, 1);
|
||||
|
||||
QDialogButtonBox* buttonBox = new QDialogButtonBox(this, QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
|
||||
QDialogButtonBox* buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
|
||||
layout->addWidget(buttonBox, 4, 0, 2, 1);
|
||||
}
|
||||
|
||||
+1
-2
@@ -426,8 +426,7 @@ void MainWindow::on_actionProject_triggered()
|
||||
project_url.clear();
|
||||
panel_project->new_project();
|
||||
updateTitle("");
|
||||
panel_timeline->redraw_all_clips(false);
|
||||
sequence->playhead = 0;
|
||||
panel_timeline->redraw_all_clips(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-1
@@ -29,7 +29,8 @@ Clip::Clip(Sequence* s) :
|
||||
pkt(new AVPacket()),
|
||||
replaced(false),
|
||||
texture(NULL),
|
||||
fbo(NULL)
|
||||
fbo(NULL),
|
||||
autoscale(false)
|
||||
{
|
||||
reset();
|
||||
}
|
||||
|
||||
@@ -103,6 +103,7 @@ struct Clip
|
||||
QOpenGLFramebufferObject** fbo;
|
||||
QOpenGLTexture* texture;
|
||||
long texture_frame;
|
||||
bool autoscale;
|
||||
|
||||
// audio playback variables
|
||||
SwrContext* swr_ctx;
|
||||
|
||||
@@ -302,6 +302,13 @@ GLuint ViewerWidget::compose_sequence(Clip* nest, bool render_audio) {
|
||||
coords.textureTopLeftY = coords.textureTopRightY = coords.textureTopLeftX = coords.textureBottomLeftX = 0;
|
||||
coords.textureBottomLeftY = coords.textureBottomRightY = coords.textureTopRightX = coords.textureBottomRightX = 1.0;
|
||||
|
||||
if (c->autoscale && (video_width != s->width || video_height != s->height)) {
|
||||
double width_multiplier = (double) s->width / (double) video_width;
|
||||
double height_multiplier = (double) s->height / (double) video_height;
|
||||
double scale_multiplier = qMin(width_multiplier, height_multiplier);
|
||||
glScalef(scale_multiplier, scale_multiplier, 1);
|
||||
}
|
||||
|
||||
// EFFECT CODE START
|
||||
for (int j=0;j<c->effects.size();j++) {
|
||||
Effect* e = c->effects.at(j);
|
||||
|
||||
Reference in New Issue
Block a user