git » mlt.git » commit b549e39

Fix infinite loop (FS#78139)

author Antonio Rojas
2023-04-09 09:35:04 UTC
committer Antonio Rojas
2023-04-09 09:35:04 UTC
parent 8002ad42b5b179771c764535db35322347a55d1a

Fix infinite loop (FS#78139)

01ab0f45.patch +23 -0
PKGBUILD +9 -3

diff --git a/01ab0f45.patch b/01ab0f45.patch
new file mode 100644
index 0000000..38eaddc
--- /dev/null
+++ b/01ab0f45.patch
@@ -0,0 +1,23 @@
+diff --git a/src/modules/avformat/producer_avformat.c b/src/modules/avformat/producer_avformat.c
+index 9e8a63df..82a412bc 100644
+--- a/src/modules/avformat/producer_avformat.c
++++ b/src/modules/avformat/producer_avformat.c
+@@ -1942,14 +1942,14 @@ static int producer_get_image( mlt_frame frame, uint8_t **buffer, mlt_image_form
+ 					av_packet_free( &tmp );
+ 					pthread_cond_signal( &self->packets_cond );
+ 				} else {
+-					// notify packets_worker that we've seen the error
+-					self->packets_thread_ret = 0;
+-					pthread_cond_signal( &self->packets_cond );
+-
+ 					if ( self->packets_thread_ret == AVERROR_EOF )
+ 					{
+ 						self->pkt.stream_index = self->video_index;
+ 					}
++					// notify packets_worker that we've seen the error
++					self->packets_thread_ret = 0;
++					pthread_cond_signal( &self->packets_cond );
++
+ 					if ( !self->video_seekable && mlt_properties_get_int( properties, "reconnect" ) )
+ 					{
+ 						// Try to reconnect to live sources by closing context and codecs,
diff --git a/PKGBUILD b/PKGBUILD
index 21229e4..ae9ee8c 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -8,7 +8,7 @@
 
 pkgname=mlt
 pkgver=7.14.0
-pkgrel=4
+pkgrel=5
 pkgdesc='An open source multimedia framework'
 arch=(x86_64)
 url='https://www.mltframework.org'
@@ -35,8 +35,14 @@ optdepends=('sdl_image: SDL1 plugin'
             'python: python bindings')
 makedepends=(cmake ladspa frei0r-plugins libdv sdl_image libsamplerate sox ffmpeg vid.stab qt5-svg qt6-svg qt6-5compat
              jack libexif python swig movit eigen opencv rubberband gdk-pixbuf2 pango rtaudio imagemagick)
-source=(https://github.com/mltframework/mlt/releases/download/v$pkgver/mlt-$pkgver.tar.gz)
-sha256sums=('3a7e83ed5e30f3f2d073d172c9d886310d8a73dbd2ee850ad44e3c43a9ab6394')
+source=(https://github.com/mltframework/mlt/releases/download/v$pkgver/mlt-$pkgver.tar.gz
+        01ab0f45.patch)
+sha256sums=('3a7e83ed5e30f3f2d073d172c9d886310d8a73dbd2ee850ad44e3c43a9ab6394'
+            '51c10de5b683442c7a0b202627f01ca80fbf6d52170c6b3b4e1dcaa27ef59e50')
+
+prepare() {
+  patch -d $pkgname-$pkgver -p1 < 01ab0f45.patch # Fix infinite loop
+}
 
 build() {
   cmake -B build -S $pkgname-$pkgver \