From ab19e445bd31455ec061cc6a1eb9549ca37cddb0 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Tue, 25 Feb 2020 14:59:54 +1100 Subject: [PATCH] importtool: implemented auto-parameter detection from image streams too --- app/widget/timelinewidget/tool/import.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/app/widget/timelinewidget/tool/import.cpp b/app/widget/timelinewidget/tool/import.cpp index c2ac49c3d..ceef04489 100644 --- a/app/widget/timelinewidget/tool/import.cpp +++ b/app/widget/timelinewidget/tool/import.cpp @@ -238,13 +238,22 @@ void TimelineWidget::ImportTool::DragDrop(TimelineViewMouseEvent *event) foreach (Footage* f, dragged_footage_) { foreach (StreamPtr s, f->streams()) { - if (!found_video_params && s->type() == Stream::kVideo) { + if (!found_video_params) { - VideoStream* vs = static_cast(s.get()); + if (s->type() == Stream::kVideo) { + // If this is a video stream, use these parameters + VideoStream* vs = static_cast(s.get()); - if (vs->frame_rate() != 0) { - new_sequence->set_video_params(VideoParams(vs->width(), vs->height(), vs->frame_rate().flipped())); - found_video_params = true; + if (vs->frame_rate() != 0) { + new_sequence->set_video_params(VideoParams(vs->width(), vs->height(), vs->frame_rate().flipped())); + found_video_params = true; + } + } else if (s->type() == Stream::kImage) { + // If this is an image stream, we'll use it's resolution but won't set `found_video_params` in case + // something with a frame rate comes along which we'll prioritize + ImageStream* is = static_cast(s.get()); + + new_sequence->set_video_params(VideoParams(is->width(), is->height(), new_sequence->video_params().time_base())); } } else if (!found_audio_params && s->type() == Stream::kAudio) {