Date: Tue, 2 Jul 2024 14:25:22 GMT From: Vladimir Druzenko <vvd@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: git: 1b1983556863 - main - multimedia/libopenshot: update 0.3.2 =?utf-8?Q?=E2=86=92?= 0.3.3 Message-ID: <202407021425.462EPM8t023534@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by vvd: URL: https://cgit.FreeBSD.org/ports/commit/?id=1b19835568632e748b08ff006d76e1a90963c1b7 commit 1b19835568632e748b08ff006d76e1a90963c1b7 Author: Tatsuki Makino <tatsuki_makino@hotmail.com> AuthorDate: 2024-07-02 14:16:24 +0000 Commit: Vladimir Druzenko <vvd@FreeBSD.org> CommitDate: 2024-07-02 14:16:24 +0000 multimedia/libopenshot: update 0.3.2 → 0.3.3 Changelog: https://github.com/OpenShot/libopenshot/releases/tag/v0.3.3 PR: 278857 --- multimedia/libopenshot/Makefile | 7 +- multimedia/libopenshot/distinfo | 6 +- multimedia/libopenshot/files/patch-CMakeLists.txt | 10 +- .../libopenshot/files/patch-src_FFmpegWriter.cpp | 4 +- .../libopenshot/files/patch-src_KeyFrame.cpp | 309 --------------------- multimedia/libopenshot/files/patch-src_KeyFrame.h | 31 --- .../libopenshot/files/patch-src_ZmqLogger.cpp | 20 ++ multimedia/libopenshot/pkg-plist | 4 +- 8 files changed, 36 insertions(+), 355 deletions(-) diff --git a/multimedia/libopenshot/Makefile b/multimedia/libopenshot/Makefile index cfbecd35b374..88b226c4d2ec 100644 --- a/multimedia/libopenshot/Makefile +++ b/multimedia/libopenshot/Makefile @@ -1,7 +1,6 @@ PORTNAME= libopenshot DISTVERSIONPREFIX= v -DISTVERSION= 0.3.2 -PORTREVISION= 6 +DISTVERSION= 0.3.3 CATEGORIES= multimedia PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} @@ -34,9 +33,10 @@ CMAKE_ON= USE_SYSTEM_JSONCPP DISABLE_BUNDLED_JSONCPP\ USE_HW_ACCEL ENABLE_PYTHON\ CMAKE_DISABLE_FIND_PACKAGE_Catch2 CMAKE_OFF= ENABLE_PARALLEL_CTEST VERBOSE_TESTS ENABLE_COVERAGE\ - APPIMAGE_BUILD BUILD_TESTING ENABLE_TESTS + APPIMAGE_BUILD BUILD_TESTING ENABLE_JAVA ENABLE_TESTS DEBUG_FLAGS?= -g DEBUG_FLAGS+= -D_DEBUG -DJUCE_FORCE_DEBUG=1 +PLIST_SUB= VERSION=${DISTVERSION} OPTIONS_DEFINE= DOCS DOXYGEN IMAGEMAGICK OPENCV RESVG RUBY OPTIONS_DEFAULT= IMAGEMAGICK OPENCV @@ -61,6 +61,7 @@ RESVG_LIB_DEPENDS= libresvg.so:graphics/resvg-capi RESVG_USE_OFF= QT=svg RESVG_CMAKE_BOOL_OFF= CMAKE_DISABLE_FIND_PACKAGE_Resvg RESVG_CMAKE_ON= -DRESVGDIR:STRING=${LOCALBASE:Q} +RUBY_LIB_DEPENDS= libruby${RUBY_SUFFIX}.so:lang/ruby${RUBY_SUFFIX} RUBY_USES= ruby:build RUBY_CMAKE_BOOL= ENABLE_RUBY RUBY_CMAKE_BOOL_OFF= CMAKE_DISABLE_FIND_PACKAGE_Ruby diff --git a/multimedia/libopenshot/distinfo b/multimedia/libopenshot/distinfo index ab17d896ff93..1ffb5e2a1418 100644 --- a/multimedia/libopenshot/distinfo +++ b/multimedia/libopenshot/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1682218800 -SHA256 (OpenShot-libopenshot-v0.3.2_GH0.tar.gz) = 58765cfc8aec199814346e97ce31a5618a261260b380670a6fb2bf6f68733638 -SIZE (OpenShot-libopenshot-v0.3.2_GH0.tar.gz) = 26132237 +TIMESTAMP = 1719370800 +SHA256 (OpenShot-libopenshot-v0.3.3_GH0.tar.gz) = 591b74651ddf59f83d69a592d84bbabbe7290293092a87be9c2993d5ce9a1638 +SIZE (OpenShot-libopenshot-v0.3.3_GH0.tar.gz) = 26129697 diff --git a/multimedia/libopenshot/files/patch-CMakeLists.txt b/multimedia/libopenshot/files/patch-CMakeLists.txt index 89ecc6dc4437..d153e7c04337 100644 --- a/multimedia/libopenshot/files/patch-CMakeLists.txt +++ b/multimedia/libopenshot/files/patch-CMakeLists.txt @@ -1,6 +1,6 @@ ---- CMakeLists.txt.orig 2023-04-19 22:01:02 UTC +--- CMakeLists.txt.orig 2024-03-26 18:49:53 UTC +++ CMakeLists.txt -@@ -102,7 +102,7 @@ if ((${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") AND +@@ -97,7 +97,7 @@ if ((${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") AND endif() #### Set C++ standard level @@ -9,7 +9,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) -@@ -135,7 +135,7 @@ endif() +@@ -130,7 +130,7 @@ endif() ### Process subdirectories ### add_subdirectory(src) @@ -18,7 +18,7 @@ add_subdirectory(bindings) ### -@@ -193,6 +193,8 @@ if (ENABLE_LIB_DOCS AND CMAKE_VERSION VERSION_GREATER +@@ -188,6 +188,8 @@ if (ENABLE_LIB_DOCS AND CMAKE_VERSION VERSION_GREATER set(DOXYGEN_INTERACTIVE_SVG YES) set(DOXYGEN_DOT_TRANSPARENT YES) @@ -27,7 +27,7 @@ doxygen_add_docs(${PROJECT_NAME}-doc ${PROJECT_SOURCE_DIR}/src ${PROJECT_SOURCE_DIR}/doc -@@ -213,7 +215,7 @@ if (TARGET ${PROJECT_NAME}-doc) +@@ -208,7 +210,7 @@ if (TARGET ${PROJECT_NAME}-doc) OPTIONAL ) # No error if the docs aren't found if(NOT TARGET doc) diff --git a/multimedia/libopenshot/files/patch-src_FFmpegWriter.cpp b/multimedia/libopenshot/files/patch-src_FFmpegWriter.cpp index 369816073bd3..825de6eb04b3 100644 --- a/multimedia/libopenshot/files/patch-src_FFmpegWriter.cpp +++ b/multimedia/libopenshot/files/patch-src_FFmpegWriter.cpp @@ -1,4 +1,4 @@ ---- src/FFmpegWriter.cpp.orig 2023-03-27 18:48:43 UTC +--- src/FFmpegWriter.cpp.orig 2024-06-20 01:25:10 UTC +++ src/FFmpegWriter.cpp @@ -166,7 +166,7 @@ void FFmpegWriter::SetVideoOptions(bool has_video, std const AVCodec *new_codec; @@ -35,7 +35,7 @@ } #endif // FFmpeg 4.0+ } else { -@@ -1470,21 +1473,25 @@ void FFmpegWriter::open_video(AVFormatContext *oc, AVS +@@ -1434,21 +1437,25 @@ void FFmpegWriter::open_video(AVFormatContext *oc, AVS adapter_num = openshot::Settings::Instance()->HW_EN_DEVICE_SET; std::clog << "Encoding Device Nr: " << adapter_num << "\n"; if (adapter_num < 3 && adapter_num >=0) { diff --git a/multimedia/libopenshot/files/patch-src_KeyFrame.cpp b/multimedia/libopenshot/files/patch-src_KeyFrame.cpp deleted file mode 100644 index 8a8b80337b50..000000000000 --- a/multimedia/libopenshot/files/patch-src_KeyFrame.cpp +++ /dev/null @@ -1,309 +0,0 @@ ---- src/KeyFrame.cpp.orig 2023-04-19 22:01:02 UTC -+++ src/KeyFrame.cpp -@@ -15,12 +15,12 @@ - - #include <algorithm> // For std::lower_bound, std::move_backward - #include <functional> // For std::less, std::less_equal, etc… --#include <utility> // For std::swap --#include <numeric> // For std::accumulate --#include <cassert> // For assert() --#include <cmath> // For fabs, round --#include <iostream> // For std::cout --#include <iomanip> // For std::setprecision -+#include <utility> // For std::swap -+#include <numeric> // For std::accumulate -+#include <cassert> // For assert() -+#include <cmath> // For fabs, round -+#include <iostream> // For std::cout -+#include <iomanip> // For std::setprecision - - using namespace std; - using namespace openshot; -@@ -122,8 +122,8 @@ Keyframe::Keyframe(const std::vector<openshot::Point>& - - // Destructor - Keyframe::~Keyframe() { -- Points.clear(); -- Points.shrink_to_fit(); -+ Points.clear(); -+ Points.shrink_to_fit(); - } - - // Add a new point on the key-frame. Each point has a primary coordinate, -@@ -291,41 +291,27 @@ int64_t Keyframe::GetLong(int64_t index) const { - // Get the direction of the curve at a specific index (increasing or decreasing) - bool Keyframe::IsIncreasing(int index) const - { -- if (index <= 1) { -- // Determine direction of frame 1 (and assume previous frames have same direction) -- index = 1; -- } else if (index >= GetLength()) { -- // Determine direction of last valid frame # (and assume next frames have same direction) -- index = GetLength() - 1; -+ if (index < 1 || (index + 1) >= GetLength()) { -+ return true; - } -- -- // Get current index value -- const double current_value = GetValue(index); -- -- // Iterate from current index to next significant value change -- int attempts = 1; -- while (attempts < 600 && index + attempts <= GetLength()) { -- // Get next value -- const double next_value = GetValue(index + attempts); -- -- // Is value significantly different -- const double diff = next_value - current_value; -- if (fabs(diff) > 0.0001) { -- if (diff < 0.0) { -- // Decreasing value found next -- return false; -- } else { -- // Increasing value found next -- return true; -- } -- } -- -- // increment attempt -- attempts++; -+ std::vector<Point>::const_iterator candidate = -+ std::lower_bound(begin(Points), end(Points), static_cast<double>(index), IsPointBeforeX); -+ if (candidate == end(Points)) { -+ return false; // After the last point, thus constant. - } -- -- // If no next value found, assume increasing values -- return true; -+ if ((candidate->co.X == index) || (candidate == begin(Points))) { -+ ++candidate; -+ } -+ int64_t const value = GetLong(index); -+ do { -+ if (value < round(candidate->co.Y)) { -+ return true; -+ } else if (value > round(candidate->co.Y)) { -+ return false; -+ } -+ ++candidate; -+ } while (candidate != end(Points)); -+ return false; - } - - // Generate JSON string of this object -@@ -388,12 +374,116 @@ void Keyframe::SetJsonValue(const Json::Value root) { - } - } - -+// Get the fraction that represents how many times this value is repeated in the curve -+// This is depreciated and will be removed soon. -+Fraction Keyframe::GetRepeatFraction(int64_t index) const { -+ // Frame numbers (index) outside of the "defined" range of this -+ // keyframe result in a 1/1 default value. -+ if (index < 1 || (index + 1) >= GetLength()) { -+ return Fraction(1,1); -+ } -+ assert(Points.size() > 1); // Due to ! ((index + 1) >= GetLength) there are at least two points! -+ -+ // First, get the value at the given frame and the closest point -+ // to the right. -+ int64_t const current_value = GetLong(index); -+ std::vector<Point>::const_iterator const candidate = -+ std::lower_bound(begin(Points), end(Points), static_cast<double>(index), IsPointBeforeX); -+ assert(candidate != end(Points)); // Due to the (index + 1) >= GetLength check above! -+ -+ // Calculate how many of the next values are going to be the same: -+ int64_t next_repeats = 0; -+ std::vector<Point>::const_iterator i = candidate; -+ // If the index (frame number) is the X coordinate of the closest -+ // point, then look at the segment to the right; the "current" -+ // segement is not interesting because we're already at the last -+ // value of it. -+ if (i->co.X == index) { -+ ++i; -+ } -+ // Skip over "constant" (when rounded) segments. -+ bool all_constant = true; -+ for (; i != end(Points); ++i) { -+ if (current_value != round(i->co.Y)) { -+ all_constant = false; -+ break; -+ } -+ } -+ if (! all_constant) { -+ // Found a point which defines a segment which will give a -+ // different value than the current value. This means we -+ // moved at least one segment to the right, thus we cannot be -+ // at the first point. -+ assert(i != begin(Points)); -+ Point const left = *(i - 1); -+ Point const right = *i; -+ int64_t change_at; -+ if (current_value < round(i->co.Y)) { -+ change_at = SearchBetweenPoints(left, right, current_value, std::less_equal<double>{}); -+ } else { -+ assert(current_value > round(i->co.Y)); -+ change_at = SearchBetweenPoints(left, right, current_value, std::greater_equal<double>{}); -+ } -+ next_repeats = change_at - index; -+ } else { -+ // All values to the right are the same! -+ next_repeats = Points.back().co.X - index; -+ } -+ -+ // Now look to the left, to the previous values. -+ all_constant = true; -+ i = candidate; -+ if (i != begin(Points)) { -+ // The binary search below assumes i to be the left point; -+ // candidate is the right point of the current segment -+ // though. So change this if possible. If this branch is NOT -+ // taken, then we're at/before the first point and all is -+ // constant! -+ --i; -+ } -+ int64_t previous_repeats = 0; -+ // Skip over constant (when rounded) segments! -+ for (; i != begin(Points); --i) { -+ if (current_value != round(i->co.Y)) { -+ all_constant = false; -+ break; -+ } -+ } -+ // Special case when skipped until the first point, but the first -+ // point is actually different. Will not happen if index is -+ // before the first point! -+ if (current_value != round(i->co.Y)) { -+ assert(i != candidate); -+ all_constant = false; -+ } -+ if (! all_constant) { -+ // There are at least two points, and we're not at the end, -+ // thus the following is safe! -+ Point const left = *i; -+ Point const right = *(i + 1); -+ int64_t change_at; -+ if (current_value > round(left.co.Y)) { -+ change_at = SearchBetweenPoints(left, right, current_value, std::less<double>{}); -+ } else { -+ assert(current_value < round(left.co.Y)); -+ change_at = SearchBetweenPoints(left, right, current_value, std::greater<double>{}); -+ } -+ previous_repeats = index - change_at; -+ } else { -+ // Every previous value is the same (rounded) as the current -+ // value. -+ previous_repeats = index; -+ } -+ int64_t total_repeats = previous_repeats + next_repeats; -+ return Fraction(previous_repeats, total_repeats); -+} -+ - // Get the change in Y value (from the previous Y value) - double Keyframe::GetDelta(int64_t index) const { -- if (index < 1) return 0.0; -- if (index == 1 && !Points.empty()) return Points[0].co.Y; -- if (index >= GetLength()) return 0.0; -- return GetValue(index) - GetValue(index - 1); -+ if (index < 1) return 0; -+ if (index == 1 && ! Points.empty()) return Points[0].co.Y; -+ if (index >= GetLength()) return 0; -+ return GetLong(index) - GetLong(index - 1); - } - - // Get a point at a specific index -@@ -410,7 +500,7 @@ Point const & Keyframe::GetPoint(int64_t index) const - int64_t Keyframe::GetLength() const { - if (Points.empty()) return 0; - if (Points.size() == 1) return 1; -- return round(Points.back().co.X); -+ return round(Points.back().co.X) + 1; - } - - // Get the number of points (i.e. # of points) -@@ -461,46 +551,50 @@ void Keyframe::UpdatePoint(int64_t index, Point p) { - } - - void Keyframe::PrintPoints(std::ostream* out) const { -- *out << std::right << std::setprecision(4) << std::setfill(' '); -- for (const auto& p : Points) { -- *out << std::defaultfloat -- << std::setw(6) << p.co.X -- << std::setw(14) << std::fixed << p.co.Y -- << '\n'; -- } -- *out << std::flush; -+ *out << std::right << std::setprecision(4) << std::setfill(' '); -+ for (const auto& p : Points) { -+ *out << std::defaultfloat -+ << std::setw(6) << p.co.X -+ << std::setw(14) << std::fixed << p.co.Y -+ << '\n'; -+ } -+ *out << std::flush; - } - - void Keyframe::PrintValues(std::ostream* out) const { -- // Column widths -- std::vector<int> w{10, 12, 8, 11, 19}; -+ // Column widths -+ std::vector<int> w{10, 12, 8, 11, 19}; - -- *out << std::right << std::setfill(' ') << std::setprecision(4); -- // Headings -- *out << "│" -- << std::setw(w[0]) << "Frame# (X)" << " │" -- << std::setw(w[1]) << "Y Value" << " │" -- << std::setw(w[2]) << "Delta Y" << " │ " -- << std::setw(w[3]) << "Increasing?" << std::right -- << "│\n"; -- // Divider -- *out << "├───────────" -- << "┼─────────────" -- << "┼─────────" -- << "┼────────────┤\n"; -+ *out << std::right << std::setfill(' ') << std::setprecision(4); -+ // Headings -+ *out << "│" -+ << std::setw(w[0]) << "Frame# (X)" << " │" -+ << std::setw(w[1]) << "Y Value" << " │" -+ << std::setw(w[2]) << "Delta Y" << " │ " -+ << std::setw(w[3]) << "Increasing?" << " │ " -+ << std::setw(w[4]) << std::left << "Repeat Fraction" << std::right -+ << "│\n"; -+ // Divider -+ *out << "├───────────" -+ << "┼─────────────" -+ << "┼─────────" -+ << "┼─────────────" -+ << "┼────────────────────┤\n"; - -- for (int64_t i = 1; i <= GetLength(); ++i) { -- *out << "│" -- << std::setw(w[0]-2) << std::defaultfloat << i -- << (Contains(Point(i, 1)) ? " *" : " ") << " │" -- << std::setw(w[1]) << std::fixed << GetValue(i) << " │" -- << std::setw(w[2]) << std::defaultfloat << std::showpos -- << GetDelta(i) << " │ " << std::noshowpos -- << std::setw(w[3]) -- << (IsIncreasing(i) ? "true" : "false") << std::right << "│\n"; -- } -- *out << " * = Keyframe point (non-interpolated)\n"; -- *out << std::flush; -+ for (int64_t i = 1; i < GetLength(); ++i) { -+ *out << "│" -+ << std::setw(w[0]-2) << std::defaultfloat << i -+ << (Contains(Point(i, 1)) ? " *" : " ") << " │" -+ << std::setw(w[1]) << std::fixed << GetValue(i) << " │" -+ << std::setw(w[2]) << std::defaultfloat << std::showpos -+ << GetDelta(i) << " │ " << std::noshowpos -+ << std::setw(w[3]) -+ << (IsIncreasing(i) ? "true" : "false") << " │ " -+ << std::setw(w[4]) << std::left << GetRepeatFraction(i) -+ << std::right << "│\n"; -+ } -+ *out << " * = Keyframe point (non-interpolated)\n"; -+ *out << std::flush; - } - - diff --git a/multimedia/libopenshot/files/patch-src_KeyFrame.h b/multimedia/libopenshot/files/patch-src_KeyFrame.h deleted file mode 100644 index 45aec4e0c498..000000000000 --- a/multimedia/libopenshot/files/patch-src_KeyFrame.h +++ /dev/null @@ -1,31 +0,0 @@ ---- src/KeyFrame.h.orig 2023-04-19 22:01:02 UTC -+++ src/KeyFrame.h -@@ -16,6 +16,7 @@ - #include <iostream> - #include <vector> - -+#include "Fraction.h" - #include "Point.h" - #include "Json.h" - -@@ -66,8 +67,8 @@ namespace openshot { - /// Constructor which adds a supplied vector of Points - Keyframe(const std::vector<openshot::Point>& points); - -- /// Destructor -- ~Keyframe(); -+ /// Destructor -+ ~Keyframe(); - - /// Add a new point on the key-frame. Each point has a primary coordinate, a left handle, and a right handle. - void AddPoint(Point p); -@@ -92,6 +93,9 @@ namespace openshot { - - /// Get the rounded LONG value at a specific index - int64_t GetLong(int64_t index) const; -+ -+ /// Get the fraction that represents how many times this value is repeated in the curve -+ Fraction GetRepeatFraction(int64_t index) const; - - /// Get the change in Y value (from the previous Y value) - double GetDelta(int64_t index) const; diff --git a/multimedia/libopenshot/files/patch-src_ZmqLogger.cpp b/multimedia/libopenshot/files/patch-src_ZmqLogger.cpp new file mode 100644 index 000000000000..0bea39aece3c --- /dev/null +++ b/multimedia/libopenshot/files/patch-src_ZmqLogger.cpp @@ -0,0 +1,20 @@ +--- src/ZmqLogger.cpp.orig 2024-06-20 01:25:10 UTC ++++ src/ZmqLogger.cpp +@@ -44,7 +44,7 @@ ZmqLogger *ZmqLogger::Instance() + m_pInstance->connection = ""; + + // Default connection +- m_pInstance->Connection("tcp://*:5556"); ++ m_pInstance->Connection("tcp://localhost:5556"); + + // Init enabled to False (force user to call Enable()) + m_pInstance->enabled = false; +@@ -92,7 +92,7 @@ void ZmqLogger::Connection(std::string new_connection) + + } catch (zmq::error_t &e) { + std::cout << "ZmqLogger::Connection - Error binding to " << connection << ". Switching to an available port." << std::endl; +- connection = "tcp://*:*"; ++ connection = "tcp://localhost:*"; + publisher->bind(connection.c_str()); + } + diff --git a/multimedia/libopenshot/pkg-plist b/multimedia/libopenshot/pkg-plist index 6b1f5a7cbd52..739b5e9c4872 100644 --- a/multimedia/libopenshot/pkg-plist +++ b/multimedia/libopenshot/pkg-plist @@ -97,8 +97,8 @@ include/libopenshot/effects/Wave.h include/libopenshot/sort_filter/Hungarian.h include/libopenshot/sort_filter/KalmanTracker.h lib/libopenshot.so -lib/libopenshot.so.0.3.2 -lib/libopenshot.so.25 +lib/libopenshot.so.%%VERSION%% +lib/libopenshot.so.26 %%PYTHON_SITELIBDIR%%/_openshot.so %%PYTHON_SITELIBDIR%%/openshot.py %%RUBY%%%%RUBY_VENDORARCHLIBDIR%%/openshot.so
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202407021425.462EPM8t023534>