From 7711113be103966f4060427dc12dafc1438b1bba Mon Sep 17 00:00:00 2001 From: Jonathan Thomas Date: Tue, 20 Oct 2020 12:39:17 -0500 Subject: [PATCH 1/8] Apply suggestions from code review Adding suggestions from @ferdnyc Co-authored-by: Frank Dana --- src/Clip.h | 6 +++--- src/ClipBase.h | 4 +++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Clip.h b/src/Clip.h index ef3b712f..70a09f6f 100644 --- a/src/Clip.h +++ b/src/Clip.h @@ -171,7 +171,7 @@ namespace openshot { virtual ~Clip(); /// Get the cache object used by this clip - CacheMemory* GetCache() { return &cache; }; + CacheMemory* GetCache() override { return &cache; }; /// Determine if reader is open or closed bool IsOpen() override { return is_open; }; @@ -211,10 +211,10 @@ namespace openshot { /// @returns The modified openshot::Frame object /// @param frame This is ignored on Clip, due to caching optimizations. This frame instance is clobbered with the source frame. /// @param frame_number The frame number (starting at 1) of the clip or effect on the timeline. - std::shared_ptr GetFrame(std::shared_ptr frame, int64_t frame_number); + std::shared_ptr GetFrame(std::shared_ptr frame, int64_t frame_number) override; /// Open the internal reader - void Open(); + void Open() override; /// @brief Set the current reader /// @param new_reader The reader to be used by this clip diff --git a/src/ClipBase.h b/src/ClipBase.h index 11d2271f..bc37833b 100644 --- a/src/ClipBase.h +++ b/src/ClipBase.h @@ -39,10 +39,12 @@ #include "Point.h" #include "KeyFrame.h" #include "Json.h" -#include "TimelineBase.h" namespace openshot { + // Forward declaration + class TimelineBase; + /** * @brief This abstract class is the base class, used by all clips in libopenshot. * From 18911bebb7833145ec1120a0b7455fb056e9cb96 Mon Sep 17 00:00:00 2001 From: Jonathan Thomas Date: Tue, 20 Oct 2020 12:42:00 -0500 Subject: [PATCH 2/8] Apply suggestions from code review Applying some awesome improvements from @ferdnyc, thx! Co-authored-by: Frank Dana --- src/Clip.cpp | 32 +++++++++++--------------------- 1 file changed, 11 insertions(+), 21 deletions(-) diff --git a/src/Clip.cpp b/src/Clip.cpp index 1cffc9b2..de0aa014 100644 --- a/src/Clip.cpp +++ b/src/Clip.cpp @@ -325,7 +325,7 @@ std::shared_ptr Clip::GetFrame(int64_t frame_number) { // Check for open reader (or throw exception) if (!is_open) - throw ReaderClosed("The Clip is closed. Call Open() before calling this method", "N/A"); + throw ReaderClosed("The Clip is closed. Call Open() before calling this method."); if (reader) { @@ -346,7 +346,7 @@ std::shared_ptr Clip::GetFrame(std::shared_ptr frame, in { // Check for open reader (or throw exception) if (!is_open) - throw ReaderClosed("The Clip is closed. Call Open() before calling this method", "N/A"); + throw ReaderClosed("The Clip is closed. Call Open() before calling this method."); if (reader) { @@ -698,7 +698,7 @@ std::shared_ptr Clip::GetOrCreateFrame(int64_t number) ZmqLogger::Instance()->AppendDebugMethod("Clip::GetOrCreateFrame (from reader)", "number", number); // Attempt to get a frame (but this could fail if a reader has just been closed) - std::shared_ptr reader_frame = reader->GetFrame(number); + auto reader_frame = reader->GetFrame(number); // Return real frame if (reader_frame) { @@ -706,11 +706,9 @@ std::shared_ptr Clip::GetOrCreateFrame(int64_t number) // This allows a clip to modify the pixels and audio of this frame without // changing the underlying reader's frame data //std::shared_ptr reader_copy(new Frame(number, 1, 1, "#000000", reader_frame->GetAudioSamplesCount(), reader_frame->GetAudioChannelsCount())); - std::shared_ptr reader_copy(new Frame(*reader_frame.get())); - { - reader_copy->SampleRate(reader_frame->SampleRate()); - reader_copy->ChannelsLayout(reader_frame->ChannelsLayout()); - } + auto reader_copy = std::make_shared(*reader_frame.get()); + reader_copy->SampleRate(reader_frame->SampleRate()); + reader_copy->ChannelsLayout(reader_frame->ChannelsLayout()); return reader_copy; } @@ -729,7 +727,9 @@ std::shared_ptr Clip::GetOrCreateFrame(int64_t number) ZmqLogger::Instance()->AppendDebugMethod("Clip::GetOrCreateFrame (create blank)", "number", number, "estimated_samples_in_frame", estimated_samples_in_frame); // Create blank frame - std::shared_ptr new_frame = std::make_shared(number, reader->info.width, reader->info.height, "#000000", estimated_samples_in_frame, reader->info.channels); + auto new_frame = std::make_shared( + number, reader->info.width, reader->info.height, + "#000000", estimated_samples_in_frame, reader->info.channels); new_frame->SampleRate(reader->info.sample_rate); new_frame->ChannelsLayout(reader->info.channel_layout); new_frame->AddAudioSilence(estimated_samples_in_frame); @@ -1176,7 +1176,6 @@ void Clip::apply_keyframes(std::shared_ptr frame, int width, int height) switch (scale) { case (SCALE_FIT): { - // keep aspect ratio source_size.scale(width, height, Qt::KeepAspectRatio); // Debug output @@ -1184,7 +1183,6 @@ void Clip::apply_keyframes(std::shared_ptr frame, int width, int height) break; } case (SCALE_STRETCH): { - // ignore aspect ratio source_size.scale(width, height, Qt::IgnoreAspectRatio); // Debug output @@ -1192,14 +1190,7 @@ void Clip::apply_keyframes(std::shared_ptr frame, int width, int height) break; } case (SCALE_CROP): { - QSize width_size(width, round(width / (float(source_size.width()) / float(source_size.height())))); - QSize height_size(round(height / (float(source_size.height()) / float(source_size.width()))), height); - - // respect aspect ratio - if (width_size.width() >= width && width_size.height() >= height) - source_size.scale(width_size.width(), width_size.height(), Qt::KeepAspectRatio); - else - source_size.scale(height_size.width(), height_size.height(), Qt::KeepAspectRatio); + source_size.scale(width, height, Qt::KeepAspectRatioByExpanding); // Debug output ZmqLogger::Instance()->AppendDebugMethod("Clip::apply_keyframes (Scale: SCALE_CROP)", "frame->number", frame->number, "source_width", source_size.width(), "source_height", source_size.height()); @@ -1312,8 +1303,7 @@ void Clip::apply_keyframes(std::shared_ptr frame, int width, int height) ZmqLogger::Instance()->AppendDebugMethod("Clip::apply_keyframes (Transform: Composite Image Layer: Prepare)", "frame->number", frame->number, "transformed", transformed); /* COMPOSITE SOURCE IMAGE (LAYER) ONTO FINAL IMAGE */ - std::shared_ptr new_image; - new_image = std::shared_ptr(new QImage(QSize(width, height), source_image->format())); + auto new_image = std::make_shared(QSize(width, height), source_image->format()); new_image->fill(QColor(QString::fromStdString("#00000000"))); // Load timeline's new frame image into a QPainter From e5d5d82050babe449fbb01346182326b1b26012e Mon Sep 17 00:00:00 2001 From: Jonathan Thomas Date: Tue, 20 Oct 2020 13:03:10 -0500 Subject: [PATCH 3/8] - Simplifying the FrameMapper Clip::AdjustFrameNumber method - Removing transformed == true boolean (Qt should be smart enough to optimize for blank transforms) - Fixing regression from TimelineBase import --- src/Clip.cpp | 11 +++----- src/ClipBase.h | 6 ++--- src/FrameMapper.cpp | 66 ++++++++++++++------------------------------- src/FrameMapper.h | 2 +- 4 files changed, 26 insertions(+), 59 deletions(-) diff --git a/src/Clip.cpp b/src/Clip.cpp index de0aa014..5f8fb365 100644 --- a/src/Clip.cpp +++ b/src/Clip.cpp @@ -1267,7 +1267,6 @@ void Clip::apply_keyframes(std::shared_ptr frame, int width, int height) float origin_x_value = origin_x.GetValue(frame->number); float origin_y_value = origin_y.GetValue(frame->number); - bool transformed = false; QTransform transform; // Transform source image (if needed) @@ -1276,7 +1275,6 @@ void Clip::apply_keyframes(std::shared_ptr frame, int width, int height) if (!isEqual(x, 0) || !isEqual(y, 0)) { // TRANSLATE/MOVE CLIP transform.translate(x, y); - transformed = true; } if (!isEqual(r, 0) || !isEqual(shear_x_value, 0) || !isEqual(shear_y_value, 0)) { @@ -1287,7 +1285,6 @@ void Clip::apply_keyframes(std::shared_ptr frame, int width, int height) transform.rotate(r); transform.shear(shear_x_value, shear_y_value); transform.translate(-origin_x_offset,-origin_y_offset); - transformed = true; } // SCALE CLIP (if needed) @@ -1296,11 +1293,10 @@ void Clip::apply_keyframes(std::shared_ptr frame, int width, int height) if (!isEqual(source_width_scale, 1.0) || !isEqual(source_height_scale, 1.0)) { transform.scale(source_width_scale, source_height_scale); - transformed = true; } // Debug output - ZmqLogger::Instance()->AppendDebugMethod("Clip::apply_keyframes (Transform: Composite Image Layer: Prepare)", "frame->number", frame->number, "transformed", transformed); + ZmqLogger::Instance()->AppendDebugMethod("Clip::apply_keyframes (Transform: Composite Image Layer: Prepare)", "frame->number", frame->number); /* COMPOSITE SOURCE IMAGE (LAYER) ONTO FINAL IMAGE */ auto new_image = std::make_shared(QSize(width, height), source_image->format()); @@ -1310,9 +1306,8 @@ void Clip::apply_keyframes(std::shared_ptr frame, int width, int height) QPainter painter(new_image.get()); painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform | QPainter::TextAntialiasing, true); - // Apply transform (translate, rotate, scale)... if any - if (transformed) - painter.setTransform(transform); + // Apply transform (translate, rotate, scale) + painter.setTransform(transform); // Composite a new layer onto the image painter.setCompositionMode(QPainter::CompositionMode_SourceOver); diff --git a/src/ClipBase.h b/src/ClipBase.h index bc37833b..ac2c0237 100644 --- a/src/ClipBase.h +++ b/src/ClipBase.h @@ -39,12 +39,10 @@ #include "Point.h" #include "KeyFrame.h" #include "Json.h" +#include "TimelineBase.h" + namespace openshot { - - // Forward declaration - class TimelineBase; - /** * @brief This abstract class is the base class, used by all clips in libopenshot. * diff --git a/src/FrameMapper.cpp b/src/FrameMapper.cpp index 096976cf..b7e18daf 100644 --- a/src/FrameMapper.cpp +++ b/src/FrameMapper.cpp @@ -117,15 +117,6 @@ void FrameMapper::Init() // Clear cache final_cache.Clear(); - // Get clip position from parent clip (if any) - float clipPosition = 0.0; - float clipStart = 0.0; - Clip *parent = (Clip *) ParentClip(); - if (parent) { - clipPosition = parent->Position(); - clipStart = parent->Start(); - } - // Some framerates are handled special, and some use a generic Keyframe curve to // map the framerates. These are the special framerates: if ((fabs(original.ToFloat() - 24.0) < 1e-7 || fabs(original.ToFloat() - 25.0) < 1e-7 || fabs(original.ToFloat() - 30.0) < 1e-7) && @@ -267,12 +258,12 @@ void FrameMapper::Init() // the original sample rate. int64_t end_samples_frame = start_samples_frame; int end_samples_position = start_samples_position; - int remaining_samples = Frame::GetSamplesPerFrame(AdjustFrameNumber(frame_number, clipPosition, clipStart), target, reader->info.sample_rate, reader->info.channels); + int remaining_samples = Frame::GetSamplesPerFrame(AdjustFrameNumber(frame_number), target, reader->info.sample_rate, reader->info.channels); while (remaining_samples > 0) { // get original samples - int original_samples = Frame::GetSamplesPerFrame(AdjustFrameNumber(end_samples_frame, clipPosition, clipStart), original, reader->info.sample_rate, reader->info.channels) - end_samples_position; + int original_samples = Frame::GetSamplesPerFrame(AdjustFrameNumber(end_samples_frame), original, reader->info.sample_rate, reader->info.channels) - end_samples_position; // Enough samples if (original_samples >= remaining_samples) @@ -292,12 +283,12 @@ void FrameMapper::Init() // Create the sample mapping struct - SampleRange Samples = {start_samples_frame, start_samples_position, end_samples_frame, end_samples_position, Frame::GetSamplesPerFrame(AdjustFrameNumber(frame_number, clipPosition, clipStart), target, reader->info.sample_rate, reader->info.channels)}; + SampleRange Samples = {start_samples_frame, start_samples_position, end_samples_frame, end_samples_position, Frame::GetSamplesPerFrame(AdjustFrameNumber(frame_number), target, reader->info.sample_rate, reader->info.channels)}; // Reset the audio variables start_samples_frame = end_samples_frame; start_samples_position = end_samples_position + 1; - if (start_samples_position >= Frame::GetSamplesPerFrame(AdjustFrameNumber(start_samples_frame, clipPosition, clipStart), original, reader->info.sample_rate, reader->info.channels)) + if (start_samples_position >= Frame::GetSamplesPerFrame(AdjustFrameNumber(start_samples_frame), original, reader->info.sample_rate, reader->info.channels)) { start_samples_frame += 1; // increment the frame (since we need to wrap onto the next one) start_samples_position = 0; // reset to 0, since we wrapped @@ -363,17 +354,8 @@ std::shared_ptr FrameMapper::GetOrCreateFrame(int64_t number) { std::shared_ptr new_frame; - // Get clip position from parent clip (if any) - float clipPosition = 0.0; - float clipStart = 0.0; - Clip *parent = (Clip *) ParentClip(); - if (parent) { - clipPosition = parent->Position(); - clipStart = parent->Start(); - } - // Init some basic properties about this frame (keep sample rate and # channels the same as the original reader for now) - int samples_in_frame = Frame::GetSamplesPerFrame(AdjustFrameNumber(number, clipPosition, clipStart), target, reader->info.sample_rate, reader->info.channels); + int samples_in_frame = Frame::GetSamplesPerFrame(AdjustFrameNumber(number), target, reader->info.sample_rate, reader->info.channels); try { // Debug output @@ -423,15 +405,6 @@ std::shared_ptr FrameMapper::GetFrame(int64_t requested_frame) final_frame = final_cache.GetFrame(requested_frame); if (final_frame) return final_frame; - // Get clip position from parent clip (if any) - float clipPosition = 0.0; - float clipStart = 0.0; - Clip *parent = (Clip *) ParentClip(); - if (parent) { - clipPosition = parent->Position(); - clipStart = parent->Start(); - } - // Minimum number of frames to process (for performance reasons) // Dialing this down to 1 for now, as it seems to improve performance, and reduce export crashes int minimum_frames = 1; @@ -455,7 +428,7 @@ std::shared_ptr FrameMapper::GetFrame(int64_t requested_frame) // Get # of channels in the actual frame int channels_in_frame = mapped_frame->GetAudioChannelsCount(); - int samples_in_frame = Frame::GetSamplesPerFrame(AdjustFrameNumber(frame_number, clipPosition, clipStart), target, mapped_frame->SampleRate(), channels_in_frame); + int samples_in_frame = Frame::GetSamplesPerFrame(AdjustFrameNumber(frame_number), target, mapped_frame->SampleRate(), channels_in_frame); // Determine if mapped frame is identical to source frame // including audio sample distribution according to mapped.Samples, @@ -778,15 +751,6 @@ void FrameMapper::ResampleMappedAudio(std::shared_ptr frame, int64_t orig // Recalculate mappings Init(); - // Get clip position from parent clip (if any) - float clipPosition = 0.0; - float clipStart = 0.0; - Clip *parent = (Clip *) ParentClip(); - if (parent) { - clipPosition = parent->Position(); - clipStart = parent->Start(); - } - // Init audio buffers / variables int total_frame_samples = 0; int channels_in_frame = frame->GetAudioChannelsCount(); @@ -848,7 +812,7 @@ void FrameMapper::ResampleMappedAudio(std::shared_ptr frame, int64_t orig } // Update total samples & input frame size (due to bigger or smaller data types) - total_frame_samples = Frame::GetSamplesPerFrame(AdjustFrameNumber(frame->number, clipPosition, clipStart), target, info.sample_rate, info.channels); + total_frame_samples = Frame::GetSamplesPerFrame(AdjustFrameNumber(frame->number), target, info.sample_rate, info.channels); ZmqLogger::Instance()->AppendDebugMethod("FrameMapper::ResampleMappedAudio (adjust # of samples)", "total_frame_samples", total_frame_samples, "info.sample_rate", info.sample_rate, "sample_rate_in_frame", sample_rate_in_frame, "info.channels", info.channels, "channels_in_frame", channels_in_frame, "original_frame_number", original_frame_number); @@ -959,13 +923,23 @@ void FrameMapper::ResampleMappedAudio(std::shared_ptr frame, int64_t orig } // Adjust frame number for Clip position and start (which can result in a different number) -int64_t FrameMapper::AdjustFrameNumber(int64_t clip_frame_number, float position, float start) { +int64_t FrameMapper::AdjustFrameNumber(int64_t clip_frame_number) { + // Get clip position from parent clip (if any) + float position = 0.0; + float start = 0.0; + Clip *parent = (Clip *) ParentClip(); + if (parent) { + position = parent->Position(); + start = parent->Start(); + } + + // Adjust start frame and position based on parent clip. This prevents ensures the same + // frame # is used by mapped readers and clips, when calculating samples per frame. Thus, + // this prevents gaps and mismatches in # of samples. int64_t clip_start_frame = (start * info.fps.ToDouble()) + 1; int64_t clip_start_position = round(position * info.fps.ToDouble()) + 1; - int64_t frame_number = clip_frame_number + clip_start_position - clip_start_frame; - ///std::cout << "Conv Position " << round(position * info.fps.ToDouble()) << " position: " << position << " info::fps: " << info.fps.ToDouble() << std::endl; return frame_number; } diff --git a/src/FrameMapper.h b/src/FrameMapper.h index 7f6c9c16..5b3e00e3 100644 --- a/src/FrameMapper.h +++ b/src/FrameMapper.h @@ -155,7 +155,7 @@ namespace openshot std::shared_ptr GetOrCreateFrame(int64_t number); /// Adjust frame number for Clip position and start (which can result in a different number) - int64_t AdjustFrameNumber(int64_t clip_frame_number, float position, float start); + int64_t AdjustFrameNumber(int64_t clip_frame_number); // Use the original and target frame rates and a pull-down technique to create // a mapping between the original fields and frames or a video to a new frame rate. From 9495d1d729f8cd61dff9a0ad751c69187890980f Mon Sep 17 00:00:00 2001 From: Jonathan Thomas Date: Fri, 23 Oct 2020 00:02:04 -0500 Subject: [PATCH 4/8] Removing invalid ICC sRGB color profile from these PNG used in unit tests (which throw warnings) --- examples/back.png | Bin 2588 -> 2748 bytes examples/final-composite.png | Bin 51808 -> 49437 bytes examples/front.png | Bin 2504 -> 388 bytes examples/front3.png | Bin 12483 -> 12631 bytes examples/interlaced.png | Bin 29367 -> 20201 bytes examples/mask.png | Bin 2559 -> 1621 bytes examples/mask2.png | Bin 2582 -> 1675 bytes examples/output-final.png | Bin 34029 -> 34016 bytes 8 files changed, 0 insertions(+), 0 deletions(-) diff --git a/examples/back.png b/examples/back.png index e1d7bd7715fce718eeb75631e3ebd94009fce2d1..c3960687eb389fd78a315908d24ed48f74b289ca 100644 GIT binary patch delta 239 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

9Pf-MQ~v_m0e;yi+YW+y1n1>hDiJk&A6?`VK3o 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 NgQu&X%Q~loCIHR~aNGa@ literal 51808 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 J);T3K0RR9PDG~qx diff --git a/examples/front.png b/examples/front.png index 11014a87846e4510883873d6f0aeacd3d230be8d..f747599d045b2cb8a8ed5dc1f72a97117d605027 100644 GIT binary patch literal 388 zcmeAS@N?(olHy`uVBq!ia0y~yV7kD-!1#cXnSp^}8~2I#3=9k`>5jgR3=A9lx&I`x zGB7YGBzpw;GB8xBF)%c=FfjaLU|?u?!N5>zz`*b-fq}tl1_Oh5!JJ)zHVh05YymzY zuKyVr{{R2)C~G3fz`($mgdXMsm#F#`kdbr5EB(wJSrz`(#>;_2(k z{)9_}S5RlK@b|wA3=EE*E{-7;x85E!WMp7qIJDrae=ev00tTW%h19AA42-YlTe>qa zFsPQeMwFx^mZVxG7o{eaq%s&87#Zjq8t57sgcurI8Jb&}nCKdqS{WGVU)s9`MMG|W zN@iLmZVhq$tQ-ss43Z!lg7ec#$`gxH8OqDc^)mCai<1)zQuXqS(r3T3kpj8g)78&q Iol`;+0O{Ia1ONa4 literal 2504 zcmeAS@N?(olHy`uVBq!ia0y~yV7kD-!1#cJje&uo=V;U#1_lO}VkgfK4h{~E8jh3> z1_lPs0*}aI1_s{iAk65bF}s3+fkCpwHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^# z_B$IX1_n-7PZ!6KiaBquZR9;*z;nQ0`~UxM_67JlGJIm{ttv}nXJGj8)K->(fx+DH z0t179LfZG=+@jh0(%c mw6q+p7e*_};ol^9!2E6z>%L;Iup|Zs1_n=8KbLh*2~7Y^6`3gj diff --git a/examples/front3.png b/examples/front3.png index 11f7013729e9dd948ef28332c13b61d6a4f5ecff..e73b04f7d31824dd16ccbc943e4a05ddca2f7ad7 100644 GIT binary patch literal 12631 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 G&;$T>(P&)& literal 12483 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 S^B5Qy7(8A5T-G@yGywpH{Vp^B diff --git a/examples/interlaced.png b/examples/interlaced.png index a35a235934d2d741de7d7d49ce3aa99801d1154c..15f364b3a1c0a9e86eee687276431f12d65a00dd 100644 GIT binary patch literal 20201 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 II;Vst0N&_UMF0Q* literal 29367 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 diff --git a/examples/mask.png b/examples/mask.png index 0f109e84444faeb64c5c8da37bcc7cdf995d7899..509466364a99e34ba6938bd99793cf015cd2abee 100644 GIT binary patch literal 1621 zcmeAS@N?(olHy`uVBq!ia0y~yV7kD-!1#cJfq{Wx|I5I@s_g0F z7*cWT?IlC51_Ke+gYxg|GrYAOo5b{tmvFYYcf}fSUbp#O-s_v2`_=DB{&{OfQ%-F(Tp%`N`@)Iic?wkPhViL zmVtpmwZt`|BqgyV)hf9tHL)a>!N|bKK-bVf*T^8m(Adh*+{(m6*TB@uz(D`f-YqB^ za`RI%(<*Umi0fwsRRxkD8-nxGO3D+9QW?t2%k?tzvWt@w3sUv+i_&MmvylST7oM(u JF6*2UngE>`4s8Gc literal 2559 zcmeAS@N?(olHy`uVBq!ia0y~yV7kD-!1#cJje&uo=V;U#1_lO}VkgfK4h{~E8jh3> z1_lPs0*}aI1_s{iAk65bF}s3+fkCpwHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^# z_B$IX1_sU=PZ!6KiaBqu8FD!}3a}oGeP5sM%frKyGx7YI5LYF;GNFavqh9Zu_wC;6 z%jchNzyEGs#p5Y=pWODl>AUZ(`0h?~-|ENr%O~esr#`Q@t~URb5%Xn>5S skkPy_S~!fBmZSB;Xhk^!ngslM&g^^m0&W~)U|?YIboFyt=akR{0Q9AQy#N3J diff --git a/examples/mask2.png b/examples/mask2.png index 5214b0a00a4a8784fecd16b3a10969654ff7fa6f..377cc7ae0e89cd392395960c313c88784805f5ad 100644 GIT binary patch literal 1675 zcmeAS@N?(olHy`uVBq!ia0y~yV7kD-!1#cJfq{Wx|I5I@8tLic z7*cWT?X`oP2Ml;v9Ico9pEg;I$LO>VYgNb7YfKOPs{P{`*ljPfAMjl76ujud5)Bhg zF5fPv$rwzzSt660MOxKd7kUO}1c}VT$vo;jIjLv@hJGxjR%8VE@ZmEGZWq6A*GWfg zu0k?(&^r+9)<+9H4J|$Jhakk;HYS>C>^LF=Y!rbYZdW_{L;+$Hp4f6-==t%&k{L3% zBOb}F;SyO-Ehrjt^HVa@ zDsgLw>t_X3Ad(;(g7ec#$`gxH8OqDc^)mCai<1)zQuXqS(r3T3kpk5+p00i_>zopr E0J!u~djJ3c literal 2582 zcmeAS@N?(olHy`uVBq!ia0y~yV7kD-!1#cJje&uo=V;U#1_lO}VkgfK4h{~E8jh3> z1_lPs0*}aI1_s{iAk65bF}s3+fkCpwHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^# z_B$IX1_sW_o-U3d6?5L+I>^}&z{7gb<<0)o+=I5YEi<`_cuwD*S;@x0@Z*V9Edv9? zpObrcFVAOSXt*D+fRRCgOyYwBGlN6IAw~v(=Yu*wgAY9XmU8&pXPXPI%3dyWI=E)$;?V+IBW22WQ%mvv4F FO#u6%rL6z} diff --git a/examples/output-final.png b/examples/output-final.png index 29aab7131ce3d59f2466353a83644dad5dd23b00..dbff005c1aa5348119d6d29b7f972298c046b200 100644 GIT binary patch delta 93 zcmaFc$@HL;X@bc{NBtHbBLiJS16?D75JO`tLvt$=6I}ySD+2@lOMAC4Ffgc=xJHzu cB$lLF<>sekrd2W+8Q{ Date: Fri, 23 Oct 2020 00:02:52 -0500 Subject: [PATCH 5/8] Added 2 FrameMapper unit tests which verify resampled audio data has no gaps/pops, and offset FrameMapper clips don't use the wrong # of audio samples --- tests/FrameMapper_Tests.cpp | 279 +++++++++++++++++++++++++++--------- 1 file changed, 215 insertions(+), 64 deletions(-) diff --git a/tests/FrameMapper_Tests.cpp b/tests/FrameMapper_Tests.cpp index 3d2e8779..45e07e3a 100644 --- a/tests/FrameMapper_Tests.cpp +++ b/tests/FrameMapper_Tests.cpp @@ -211,113 +211,264 @@ TEST(FrameMapper_resample_audio_48000_to_41000) map.Close(); } -TEST(FrameMapper_AudioSample_Distribution) -{ +TEST (FrameMapper_resample_audio_mapper) { + // This test verifies that audio data can be resampled on FrameMapper + // instances, even on frame rates that do not divide evenly, and that no audio data is misplaced + // or duplicated. We verify this by creating a SIN wave, add those data points to a DummyReader, + // and then resample, and compare the result back to the original SIN wave calculation. + + // Create cache object to hold test frames CacheMemory cache; + int OFFSET = 0; - float AMPLITUDE = 0.2; + float AMPLITUDE = 0.75; double ANGLE = 0.0; int NUM_SAMPLES = 100; - //std::cout << "Starting Resample Test" << std::endl; - - for (int64_t frame_number = 1; frame_number <= 90; frame_number++) - { + // Let's create some test frames + for (int64_t frame_number = 1; frame_number <= 90; frame_number++) { // Create blank frame (with specific frame #, samples, and channels) // Sample count should be 44100 / 30 fps = 1470 samples per frame - int sample_count = 1470; std::shared_ptr f(new openshot::Frame(frame_number, sample_count, 2)); // Create test samples with sin wave (predictable values) float *audio_buffer = new float[sample_count * 2]; - for (int sample_number = 0; sample_number < sample_count; sample_number++) { // Calculate sin wave - // TODO: I'm using abs(), because calling AddAudio only seems to be adding the positive values and it's bizarre float sample_value = float(AMPLITUDE * sin(ANGLE) + OFFSET); - audio_buffer[sample_number] = sample_value;//abs(sample_value); + audio_buffer[sample_number] = abs(sample_value); ANGLE += (2 * M_PI) / NUM_SAMPLES; - - // Add custom audio samples to Frame (bool replaceSamples, int destChannel, int destStartSample, const float* source, - f->AddAudio(true, 0, 0, audio_buffer, sample_count, 1.0); // add channel 1 - f->AddAudio(true, 1, 0, audio_buffer, sample_count, 1.0); // add channel 2 - - // Add test frame to dummy reader - cache.Add(f); } + + // Add custom audio samples to Frame (bool replaceSamples, int destChannel, int destStartSample, const float* source, + f->AddAudio(true, 0, 0, audio_buffer, sample_count, 1.0); // add channel 1 + f->AddAudio(true, 1, 0, audio_buffer, sample_count, 1.0); // add channel 2 + + // Add test frame to dummy reader + cache.Add(f); } + // Create a default fraction (should be 1/1) openshot::DummyReader r(openshot::Fraction(30, 1), 1920, 1080, 44100, 2, 30.0, &cache); - r.info.has_audio = true; r.Open(); // Open the reader - // Map to 24 fps, which should create a variable # of samples per frame - ///FrameMapper map(&r, Fraction(24, 1), PULLDOWN_NONE, 44100, 2, LAYOUT_STEREO); - //map.info.has_audio = true; - //map.Open(); + // Sample rates + vector arr = { 44100, 16000 }; + for (auto& rate : arr) { + // Reset SIN wave + ANGLE = 0.0; - Timeline t1(1920, 1080, Fraction(24, 1), 44100, 2, LAYOUT_STEREO); + // Map to 24 fps, which should create a variable # of samples per frame + FrameMapper map(&r, Fraction(24,1), PULLDOWN_NONE, rate, 2, LAYOUT_STEREO); + map.info.has_audio = true; + map.Open(); - Clip c1; - c1.Reader(&r); - c1.Layer(1); - c1.Position(0.0); - c1.Start(0.0); - c1.End(10.0); + // Calculating how much the initial sample rate has changed + float resample_multiplier = ((float) rate / r.info.sample_rate); - // Create 2nd map to 24 fps, which should create a variable # of samples per frame + // Loop through samples, and verify FrameMapper didn't mess up individual sample values + int num_samples = 0; + for (int frame_index = 1; frame_index <= map.info.fps.ToInt(); frame_index++) { + int sample_count = map.GetFrame(frame_index)->GetAudioSamplesCount(); + for (int sample_index = 0; sample_index < sample_count; sample_index++) { - //FrameMapper map2(&r, Fraction(24, 1), PULLDOWN_NONE, 44100, 2, LAYOUT_STEREO); + // Calculate sin wave + float sample_value = abs(float(AMPLITUDE * sin(ANGLE) + OFFSET)); + ANGLE += (2 * M_PI) / (NUM_SAMPLES * resample_multiplier); - //map2.info.has_audio = true; - //map2.Open(); + // Verify each mapped sample value is correct (after being redistributed by the FrameMapper) + float resampled_value = map.GetFrame(frame_index)->GetAudioSample(0, sample_index, 1.0); - Clip c2; - c2.Reader(&r); - c2.Layer(2); + // TODO: 0.1 is much to broad to accurately test this, but without this, all the resampled values are too far away from expected + CHECK_CLOSE(sample_value, resampled_value, 0.1); + } + // Increment sample value + num_samples += map.GetFrame(frame_index)->GetAudioSamplesCount(); + } - // Position 1 frame into the video, this should mis-align the audio and create situations - // which overlapping Frame instances have different # of samples for the Timeline. - // TODO: Moving to 0.0 position, to simplify this test for now + // Verify samples per second is correct (i.e. 44100) + CHECK_EQUAL(num_samples, map.info.sample_rate); - c2.Position(0.041666667 * 14); - c2.Start(1.0); - c2.End(10.0); + // Create Timeline (same specs as reader) + Timeline t1(map.info.width, map.info.height, map.info.fps, rate, map.info.channels, map.info.channel_layout); - // Add clips - t1.AddClip(&c1); - t1.AddClip(&c2); + Clip c1; + c1.Reader(&map); + c1.Layer(1); + c1.Position(0.0); + c1.Start(0.0); + c1.End(10.0); - //t1.SetJson(t1.Json()); - t1.Open(); + // Create 2nd map to 24 fps, which should create a variable # of samples per frame (for some sample rates) + FrameMapper map2(&r, Fraction(24, 1), PULLDOWN_NONE, rate, 2, LAYOUT_STEREO); + map2.info.has_audio = true; + map2.Open(); - FFmpegWriter w("output-resample.mp4"); + Clip c2; + c2.Reader(&map2); + c2.Layer(1); + c2.Position(0.0); + c2.Start(0.0); + c2.End(10.0); - // Set options - w.SetAudioOptions("aac", 44100, 192000); - w.SetVideoOptions("libx264", 1280, 720, Fraction(24,1), 5000000); + // Add clips + t1.AddClip(&c1); + t1.AddClip(&c2); + t1.Open(); - // Open writer - w.Open(); + // Reset SIN wave + ANGLE = 0.0; - w.WriteFrame(&t1, 5, 50); + for (int frame_index = 1; frame_index < 24; frame_index++) { + t1.GetFrame(frame_index); + for (int sample_index = 0; sample_index < t1.GetFrame(frame_index)->GetAudioSamplesCount(); sample_index++) { - //for (int64_t frame_number = 1; frame_number <= 90; frame_number++){ - // w.WriteFrame(t1.GetFrame(frame_number)); - //} + // Calculate sin wave + float sample_value = abs(float(AMPLITUDE * sin(ANGLE) + OFFSET)); + ANGLE += (2 * M_PI) / (NUM_SAMPLES * resample_multiplier); - // Close writer & reader - w.Close(); + // Verify each mapped sample value is correct (after being redistributed by the FrameMapper) + float resampled_value = t1.GetFrame(frame_index)->GetAudioSample(0, sample_index, 1.0); - //map.Close(); - //map2.Close(); + // TODO: 0.1 is much to broad to accurately test this, but without this, all the resampled values are too far away from expected + // Testing wave value X 2, since we have 2 overlapping clips + CHECK_CLOSE(sample_value * 2.0, resampled_value, 0.1); - t1.Close(); + } + } + + // Close mapper + map.Close(); + map2.Close(); + t1.Close(); + } // Clean up cache.Clear(); - r.Close(); } + +TEST (FrameMapper_redistribute_samples_per_frame) { + // This test verifies that audio data is correctly aligned on + // FrameMapper instances. We do this by creating 2 Clips based on the same parent reader + // (i.e. same exact audio sample data). We use a Timeline to overlap these clips + // (and offset 1 clip by 1 frame), and we verify that the correct # of samples is returned by each + // Clip Frame instance. In the past, FrameMappers would sometimes generate the wrong # of samples + // in a frame, and the Timeline recieve mismatching # of audio samples from 2 or more clips... + // causing audio data to be truncated and lost (i.e. creating a pop). + + // Create cache object to hold test frames + CacheMemory cache; + + // Let's create some test frames + int sample_value = 0; + for (int64_t frame_number = 1; frame_number <= 90; frame_number++) { + // Create blank frame (with specific frame #, samples, and channels) + // Sample count should be 44100 / 30 fps = 1470 samples per frame + int sample_count = 1470; + std::shared_ptr f(new openshot::Frame(frame_number, sample_count, 2)); + + // Create test samples with incrementing value + float *audio_buffer = new float[sample_count]; + for (int64_t sample_number = 0; sample_number < sample_count; sample_number++) { + audio_buffer[sample_number] = sample_value + sample_number; + } + + // Increment counter + sample_value += sample_count; + + // Add custom audio samples to Frame (bool replaceSamples, int destChannel, int destStartSample, const float* source, + f->AddAudio(true, 0, 0, audio_buffer, sample_count, 1.0); // add channel 1 + f->AddAudio(true, 1, 0, audio_buffer, sample_count, 1.0); // add channel 2 + + // Add test frame to dummy reader + cache.Add(f); + } + + // Create a default fraction (should be 1/1) + openshot::DummyReader r(openshot::Fraction(30, 1), 1920, 1080, 44100, 2, 30.0, &cache); + r.Open(); // Open the reader + + // Sample rates + vector arr = { 24, 30, 60 }; + for (auto& fps : arr) { + // Map to 24 fps, which should create a variable # of samples per frame + FrameMapper map(&r, Fraction(fps,1), PULLDOWN_NONE, 44100, 2, LAYOUT_STEREO); + map.info.has_audio = true; + map.Open(); + + // Loop through samples, and verify FrameMapper didn't mess up individual sample values + sample_value = 0; + for (int frame_index = 1; frame_index <= map.info.fps.ToInt(); frame_index++) { + for (int sample_index = 0; sample_index < map.GetFrame(frame_index)->GetAudioSamplesCount(); sample_index++) { + // Verify each mapped sample value is correct (after being redistributed by the FrameMapper) + CHECK_EQUAL(sample_value + sample_index, map.GetFrame(frame_index)->GetAudioSample(0, sample_index, 1.0)); + } + // Increment sample value + sample_value += map.GetFrame(frame_index)->GetAudioSamplesCount(); + } + + // Verify samples per second is correct (i.e. 44100) + CHECK_EQUAL(sample_value, map.info.sample_rate); + + // Create Timeline (same specs as reader) + Timeline t1(map.info.width, map.info.height, map.info.fps, 44100, map.info.channels, map.info.channel_layout); + + Clip c1; + c1.Reader(&map); + c1.Layer(1); + c1.Position(0.0); + c1.Start(0.0); + c1.End(10.0); + + // Create 2nd map to 24 fps, which should create a variable # of samples per frame + FrameMapper map2(&r, Fraction(fps, 1), PULLDOWN_NONE, 44100, 2, LAYOUT_STEREO); + map2.info.has_audio = true; + map2.Open(); + + Clip c2; + c2.Reader(&map2); + c2.Layer(1); + // Position 1 frame into the video, this should mis-align the audio and create situations + // which overlapping Frame instances have different # of samples for the Timeline. + c2.Position(map2.info.video_timebase.ToFloat()); + c2.Start(0.0); + c2.End(10.0); + + // Add clips + t1.AddClip(&c1); + t1.AddClip(&c2); + t1.Open(); + + // Loop through samples, and verify Timeline didn't mess up individual sample values + int previous_sample_value = 0; + for (int frame_index = 2; frame_index < 24; frame_index++) { + t1.GetFrame(frame_index); + for (int sample_index = 0; sample_index < t1.GetFrame(frame_index)->GetAudioSamplesCount(); sample_index++) { + int sample_diff = t1.GetFrame(frame_index)->GetAudioSample(0, sample_index, 1.0) - previous_sample_value; + if (previous_sample_value == 0) { + sample_diff = 2; + } + + // Check if sample_value - previous_value == 2 + // This should be true, because the DummyReader is added twice to the Timeline, and is overlapping + // This should be an ever increasing linear curve, increasing by 2 each sample on the Timeline + CHECK_EQUAL(2, sample_diff); + + // Set previous sample value + previous_sample_value = t1.GetFrame(frame_index)->GetAudioSample(0, sample_index, 1.0); + } + } + + // Close mapper + map.Close(); + map2.Close(); + t1.Close(); + } + + // Clean up + cache.Clear(); + r.Close(); +} \ No newline at end of file From e556d0fded84f74f2a8df54d7d28a704815ba05d Mon Sep 17 00:00:00 2001 From: Jonathan Thomas Date: Fri, 23 Oct 2020 01:35:46 -0500 Subject: [PATCH 6/8] Added 2 new unit tests for Clip's with a Timeline associated with them, and FFmpegReaders with a Clip/Timeline associated with them. --- src/Clip.cpp | 5 ++++- src/Timeline.cpp | 5 +++++ tests/Clip_Tests.cpp | 22 ++++++++++++++++++++++ tests/FFmpegReader_Tests.cpp | 30 ++++++++++++++++++++++++++++++ 4 files changed, 61 insertions(+), 1 deletion(-) diff --git a/src/Clip.cpp b/src/Clip.cpp index 5f8fb365..302f7729 100644 --- a/src/Clip.cpp +++ b/src/Clip.cpp @@ -161,6 +161,8 @@ Clip::Clip(ReaderBase* new_reader) : resampler(NULL), reader(new_reader), alloca if (reader) { End(reader->info.duration); reader->ParentClip(this); + // Init reader info struct and cache size + init_reader_settings(); } } @@ -220,7 +222,8 @@ Clip::Clip(std::string path) : resampler(NULL), reader(NULL), allocated_reader(N reader->ParentClip(this); allocated_reader = reader; // Init reader info struct and cache size - init_reader_settings(); } + init_reader_settings(); + } } // Destructor diff --git a/src/Timeline.cpp b/src/Timeline.cpp index 45975e1f..2c5a9a27 100644 --- a/src/Timeline.cpp +++ b/src/Timeline.cpp @@ -246,6 +246,11 @@ void Timeline::AddClip(Clip* clip) // Assign timeline to clip clip->ParentTimeline(this); + // Clear cache of clip and nested reader (if any) + clip->cache.Clear(); + if (clip->Reader() && clip->Reader()->GetCache()) + clip->Reader()->GetCache()->Clear(); + // All clips should be converted to the frame rate of this timeline if (auto_map_clips) // Apply framemapper (or update existing framemapper) diff --git a/tests/Clip_Tests.cpp b/tests/Clip_Tests.cpp index 2f2e850c..17757be2 100644 --- a/tests/Clip_Tests.cpp +++ b/tests/Clip_Tests.cpp @@ -232,5 +232,27 @@ TEST(Effects) CHECK_EQUAL(2, (int)c10.Effects().size()); } +TEST(Verify_Parent_Timeline) +{ + Timeline t1(640, 480, Fraction(30,1), 44100, 2, LAYOUT_STEREO); + + // Load clip with video + std::stringstream path; + path << TEST_MEDIA_PATH << "sintel_trailer-720p.mp4"; + Clip c1(path.str()); + c1.Open(); + + // Check size of frame image + CHECK_EQUAL(c1.GetFrame(1)->GetImage()->width(), 1280); + CHECK_EQUAL(c1.GetFrame(1)->GetImage()->height(), 720); + + // Add clip to timeline + t1.AddClip(&c1); + + // Check size of frame image (with an associated timeline) + CHECK_EQUAL(c1.GetFrame(1)->GetImage()->width(), 640); + CHECK_EQUAL(c1.GetFrame(1)->GetImage()->height(), 480); +} + } // SUITE diff --git a/tests/FFmpegReader_Tests.cpp b/tests/FFmpegReader_Tests.cpp index d6a2d6e7..b1827432 100644 --- a/tests/FFmpegReader_Tests.cpp +++ b/tests/FFmpegReader_Tests.cpp @@ -241,5 +241,35 @@ TEST(Multiple_Open_and_Close) r.Close(); } +TEST(Verify_Parent_Timeline) +{ + // Create a reader + stringstream path; + path << TEST_MEDIA_PATH << "sintel_trailer-720p.mp4"; + FFmpegReader r(path.str()); + r.Open(); + + // Check size of frame image + CHECK_EQUAL(r.GetFrame(1)->GetImage()->width(), 1280); + CHECK_EQUAL(r.GetFrame(1)->GetImage()->height(), 720); + r.GetFrame(1)->GetImage()->save("reader-1.png", "PNG"); + + // Create a Clip associated with this reader + Clip c1(&r); + c1.Open(); + + // Check size of frame image (should still be the same) + CHECK_EQUAL(r.GetFrame(1)->GetImage()->width(), 1280); + CHECK_EQUAL(r.GetFrame(1)->GetImage()->height(), 720); + + // Create Timeline + Timeline t1(640, 480, Fraction(30,1), 44100, 2, LAYOUT_STEREO); + t1.AddClip(&c1); + + // Check size of frame image (it should now match the parent timeline) + CHECK_EQUAL(r.GetFrame(1)->GetImage()->width(), 640); + CHECK_EQUAL(r.GetFrame(1)->GetImage()->height(), 360); +} + } // SUITE(FFmpegReader) From 172348417c199e645731454524475b1ce5298041 Mon Sep 17 00:00:00 2001 From: Jonathan Thomas Date: Fri, 23 Oct 2020 17:52:20 -0500 Subject: [PATCH 7/8] Improvement to video caching thread, to recover from the separation of cache vs display frame #. Also found a mutex that was needed, to prevent crashing when the video thread calls timeline::GetFrame at certain times... colliding with another thread (and independent of OpenMP). --- src/Qt/VideoCacheThread.cpp | 22 +++++++++++++--------- src/Qt/VideoCacheThread.h | 5 ++++- src/Timeline.cpp | 10 ++++++++++ src/Timeline.h | 2 ++ 4 files changed, 29 insertions(+), 10 deletions(-) diff --git a/src/Qt/VideoCacheThread.cpp b/src/Qt/VideoCacheThread.cpp index f817c93f..e1e53f5d 100644 --- a/src/Qt/VideoCacheThread.cpp +++ b/src/Qt/VideoCacheThread.cpp @@ -94,8 +94,10 @@ namespace openshot while (!threadShouldExit() && is_playing) { // Cache frames before the other threads need them - // Cache frames up to the max frames - while (speed == 1 && (position - current_display_frame) < max_frames) + // Cache frames up to the max frames. Reset to current position + // if cache gets too far away from display frame. Cache frames + // even when player is paused (i.e. speed 0). + while ((position - current_display_frame) < max_frames) { // Only cache up till the max_frames amount... then sleep try @@ -104,6 +106,14 @@ namespace openshot ZmqLogger::Instance()->AppendDebugMethod("VideoCacheThread::run (cache frame)", "position", position, "current_display_frame", current_display_frame, "max_frames", max_frames, "needed_frames", (position - current_display_frame)); // Force the frame to be generated + if (reader->GetCache()->GetSmallestFrame()) { + int64_t smallest_cached_frame = reader->GetCache()->GetSmallestFrame()->number; + if (smallest_cached_frame > current_display_frame) { + // Cache position has gotten too far away from current display frame. + // Reset the position to the current display frame. + position = current_display_frame; + } + } reader->GetFrame(position); } @@ -113,14 +123,8 @@ namespace openshot // Ignore out of bounds frame exceptions } - // Is cache position behind current display frame? - if (position < current_display_frame) { - // Jump ahead - position = current_display_frame; - } - // Increment frame number - position++; + position++; } // Sleep for 1 frame length diff --git a/src/Qt/VideoCacheThread.h b/src/Qt/VideoCacheThread.h index 6fbf6d58..f9551bdb 100644 --- a/src/Qt/VideoCacheThread.h +++ b/src/Qt/VideoCacheThread.h @@ -45,10 +45,13 @@ namespace openshot */ class VideoCacheThread : Thread { + private: + std::atomic_int position; + + protected: std::shared_ptr frame; int speed; bool is_playing; - int64_t position; int64_t current_display_frame; ReaderBase *reader; int max_frames; diff --git a/src/Timeline.cpp b/src/Timeline.cpp index 2c5a9a27..abc02b6f 100644 --- a/src/Timeline.cpp +++ b/src/Timeline.cpp @@ -695,6 +695,7 @@ std::shared_ptr Timeline::GetFrame(int64_t requested_frame) // Check cache std::shared_ptr frame; + std::lock_guard guard(get_frame_mutex); #pragma omp critical (T_GetFrame) frame = final_cache->GetFrame(requested_frame); if (frame) { @@ -724,6 +725,15 @@ std::shared_ptr Timeline::GetFrame(int64_t requested_frame) return frame; } + // Check if previous frame was cached? (if not, assume we are seeking somewhere else on the Timeline, and need + // to clear all cache (for continuity sake). For example, jumping back to a previous spot can cause issues with audio + // data where the new jump location doesn't match up with the previously cached audio data. + std::shared_ptr previous_frame = final_cache->GetFrame(requested_frame - 1); + if (!previous_frame) { + // Seeking to new place on timeline (destroy cache) + ClearAllCache(); + } + // Minimum number of frames to process (for performance reasons) int minimum_frames = OPEN_MP_NUM_PROCESSORS; diff --git a/src/Timeline.h b/src/Timeline.h index 22718342..1d156153 100644 --- a/src/Timeline.h +++ b/src/Timeline.h @@ -33,6 +33,7 @@ #include #include +#include #include #include #include @@ -175,6 +176,7 @@ namespace openshot { std::set allocated_frame_mappers; ///< all the frame mappers we allocated and must free bool managed_cache; ///< Does this timeline instance manage the cache object std::string path; ///< Optional path of loaded UTF-8 OpenShot JSON project file + std::mutex get_frame_mutex; ///< Mutex to protect GetFrame method from different threads calling it /// Process a new layer of video or audio void add_layer(std::shared_ptr new_frame, openshot::Clip* source_clip, int64_t clip_frame_number, int64_t timeline_frame_number, bool is_top_clip, float max_volume); From f00fc4699c785fa6f69e8c0e451fb805fc16f82c Mon Sep 17 00:00:00 2001 From: Jonathan Thomas Date: Tue, 27 Oct 2020 17:43:47 -0500 Subject: [PATCH 8/8] Fix stale yml string to be a literal string (instead of folded) --- .github/stale.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/stale.yml b/.github/stale.yml index bba68742..9071118f 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -10,7 +10,7 @@ exemptLabels: # Label to use when marking an issue as stale staleLabel: stale # Comment to post when marking an issue as stale. Set to `false` to disable -markComment: > +markComment: | Thank you so much for submitting an issue to help improve OpenShot Video Editor. We are sorry about this, but this particular issue has gone unnoticed for quite some time. To help keep the OpenShot GitHub Issue Tracker organized and focused, we must ensure that every issue is correctly labelled and triaged, to get the proper attention. This issue will be closed, as it meets the following criteria: