many improvements to the playback algorithm
This commit is contained in:
+2
-1
@@ -341,7 +341,6 @@ void ExportThread::run() {
|
||||
QOpenGLFramebufferObject fbo(sequence->width, sequence->height, QOpenGLFramebufferObject::CombinedDepthStencil, GL_TEXTURE_RECTANGLE);
|
||||
fbo.bind();
|
||||
|
||||
rendering = true;
|
||||
panel_sequence_viewer->viewer_widget->default_fbo = &fbo;
|
||||
|
||||
long file_audio_samples = 0;
|
||||
@@ -458,4 +457,6 @@ void ExportThread::run() {
|
||||
|
||||
panel_sequence_viewer->viewer_widget->context()->doneCurrent();
|
||||
panel_sequence_viewer->viewer_widget->context()->moveToThread(qApp->thread());
|
||||
|
||||
rendering = false;
|
||||
}
|
||||
|
||||
+2
-1
@@ -1,6 +1,7 @@
|
||||
#include "media.h"
|
||||
|
||||
#include <QDebug>
|
||||
#include <QtMath>
|
||||
#include "io/previewgenerator.h"
|
||||
|
||||
extern "C" {
|
||||
@@ -32,7 +33,7 @@ void Media::reset() {
|
||||
}
|
||||
|
||||
long Media::get_length_in_frames(double frame_rate) {
|
||||
return ceil(((double) length / (double) AV_TIME_BASE) * frame_rate);
|
||||
return qFloor(((double) length / (double) AV_TIME_BASE) * frame_rate);
|
||||
}
|
||||
|
||||
MediaStream* Media::get_stream_from_file_index(bool video, int index) {
|
||||
|
||||
@@ -74,7 +74,7 @@ void PreviewGenerator::parse_media() {
|
||||
}
|
||||
}
|
||||
}
|
||||
media->length = fmt_ctx->duration;
|
||||
media->length = fmt_ctx->duration;
|
||||
|
||||
if (fmt_ctx->duration == INT64_MIN) {
|
||||
retrieve_duration = true;
|
||||
@@ -284,7 +284,7 @@ void PreviewGenerator::generate_waveform() {
|
||||
maximum_stream = i;
|
||||
}
|
||||
}
|
||||
media->length = (double) media_lengths[maximum_stream] / av_q2d(fmt_ctx->streams[maximum_stream]->avg_frame_rate) * AV_TIME_BASE;
|
||||
media->length = (double) media_lengths[maximum_stream] / av_q2d(fmt_ctx->streams[maximum_stream]->avg_frame_rate) * AV_TIME_BASE; // TODO redo with PTS
|
||||
finalize_media();
|
||||
}
|
||||
delete [] media_lengths;
|
||||
|
||||
Reference in New Issue
Block a user