FreeBSD Bugzilla – Attachment 251738 Details for
Bug 278857
multimedia/libopenshot: add support FFMPEG 7
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
patch for multimedia/libopenshot
0001-multimedia-libopenshot-Update-to-0.3.3.patch (text/plain), 19.00 KB, created by
Tatsuki Makino
on 2024-06-28 09:15:24 UTC
(
hide
)
Description:
patch for multimedia/libopenshot
Filename:
MIME Type:
Creator:
Tatsuki Makino
Created:
2024-06-28 09:15:24 UTC
Size:
19.00 KB
patch
obsolete
>From b36177f4e74b9c6b8213f77b949208db46a73b1a Mon Sep 17 00:00:00 2001 >From: Tatsuki Makino <tatsuki_makino@hotmail.com> >Date: Thu, 27 Jun 2024 12:00:00 +0000 >Subject: multimedia/libopenshot: Update to 0.3.3 > >--- > multimedia/libopenshot/Makefile | 6 +- > multimedia/libopenshot/distinfo | 6 +- > .../libopenshot/files/patch-CMakeLists.txt | 10 +- > .../files/patch-src_FFmpegWriter.cpp | 4 +- > .../libopenshot/files/patch-src_KeyFrame.cpp | 309 ------------------ > .../libopenshot/files/patch-src_KeyFrame.h | 31 -- > .../libopenshot/files/patch-src_ZmqLogger.cpp | 20 ++ > multimedia/libopenshot/pkg-plist | 4 +- > 8 files changed, 35 insertions(+), 355 deletions(-) > delete mode 100644 multimedia/libopenshot/files/patch-src_KeyFrame.cpp > delete mode 100644 multimedia/libopenshot/files/patch-src_KeyFrame.h > create mode 100644 multimedia/libopenshot/files/patch-src_ZmqLogger.cpp > >diff --git a/multimedia/libopenshot/Makefile b/multimedia/libopenshot/Makefile >index cfbecd35b37..c08a2e01ebc 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,7 +33,7 @@ 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_TESTS ENABLE_JAVA > DEBUG_FLAGS?= -g > DEBUG_FLAGS+= -D_DEBUG -DJUCE_FORCE_DEBUG=1 > >@@ -62,6 +61,7 @@ RESVG_USE_OFF= QT=svg > RESVG_CMAKE_BOOL_OFF= CMAKE_DISABLE_FIND_PACKAGE_Resvg > RESVG_CMAKE_ON= -DRESVGDIR:STRING=${LOCALBASE:Q} > RUBY_USES= ruby:build >+RUBY_LIB_DEPENDS= libruby${RUBY_SUFFIX}.so:lang/ruby${RUBY_SUFFIX} > 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 ab17d896ff9..1ffb5e2a141 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 89ecc6dc443..d153e7c0433 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 369816073bd..825de6eb04b 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 8a8b80337b5..00000000000 >--- 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 45aec4e0c49..00000000000 >--- 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 00000000000..0bea39aece3 >--- /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 6b1f5a7cbd5..7ef70d71925 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.0.3.3 >+lib/libopenshot.so.26 > %%PYTHON_SITELIBDIR%%/_openshot.so > %%PYTHON_SITELIBDIR%%/openshot.py > %%RUBY%%%%RUBY_VENDORARCHLIBDIR%%/openshot.so >-- >2.45.1 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
tatsuki_makino
:
maintainer-approval+
Actions:
View
|
Diff
Attachments on
bug 278857
:
250534
|
250580
|
251737
| 251738 |
251739