if test "x$I86$X86" != "x00" ; then
PKG_3RD([mjpegtools],[yes],
- [mjpegtools-2.1.0],
+ [mjpegtools-2.2.1],
[ utils/mmxsse/.libs/libmmxsse.a \
utils/.libs/libmjpegutils.a \
lavtools/.libs/liblavfile.a \
else
PKG_3RD([mjpegtools],[yes],
- [mjpegtools-2.1.0],
+ [mjpegtools-2.2.1],
[ utils/.libs/libmjpegutils.a \
lavtools/.libs/liblavfile.a \
lavtools/.libs/liblavjpeg.a \
https://github.com/xiph/flac/releases/tag/1.4.2
https://github.com/uclouvain/openjpeg/ = Releases=sourcefiles openjpeg-2.5.0.tar.gz
https://sourceforge.net/projects/libjpeg-turbo/ = Code (GitHub)=sourcefiles/2.1.2/libjpeg-turbo-2.1.5.1.tar.gz
+https://sourceforge.net/projects/mjpeg/files/mjpegtools/2.2.1/
http://www.fftw.org/fftw-3.3.10.tar.gz
# Not sure why festival is in here but it is now at 2.5 since 25-Dec-2017
http://festvox.org/packed/festival/2.4/festival-2.4-release.tar.gz
--- /dev/null
+--- mjpegtools-2.1.0/y4mdenoise/newdenoise.cc.orig 2021-07-23 14:03:35.999564700 +0300
++++ mjpegtools-2.1.0/y4mdenoise/newdenoise.cc 2021-07-23 14:04:35.779564703 +0300
+@@ -1852,14 +1852,14 @@
+ if (nErr != 0)
+ mjpeg_error_exit1 ("pthread_attr_init() failed: %s",
+ strerror (nErr));
+-
++#if !defined(__TERMUX__)
+ // Inherit scheduling parameters from the main thread.
+ nErr = pthread_attr_setinheritsched (&sThreadAttributes,
+ PTHREAD_INHERIT_SCHED);
+ if (nErr != 0)
+ mjpeg_error_exit1 ("pthread_attr_setinheritsched() failed: %s",
+ strerror (nErr));
+-
++#endif
+ // Create the thread.
+ nErr = pthread_create (&m_oThreadInfo,
+ &sThreadAttributes, WorkLoop, (void *)this);
--- /dev/null
+--- ./mpeg2enc/seqencoder.cc.orig 2021-08-12 22:15:24.907277309 +0300
++++ ./mpeg2enc/seqencoder.cc 2021-08-12 22:17:49.471277317 +0300
+@@ -198,7 +198,9 @@
+ {
+ EncoderJob *job;
+ mjpeg_debug( "Worker thread started" );
++#if !defined (__TERMUX__)
+ pthread_setcanceltype( PTHREAD_CANCEL_ASYNCHRONOUS, NULL );
++#endif
+
+ for(;;)
+ {
--- /dev/null
+--- mjpegtools-2.1.0/mpeg2enc/seqencoder.cc.orig 2021-05-25 19:04:26.332933944 +0300
++++ mjpegtools-2.1.0/mpeg2enc/seqencoder.cc 2021-05-25 19:05:44.904933948 +0300
+@@ -56,6 +56,9 @@
+ #include "ratectl.hh"
+ #include "tables.h"
+ #include "channel.hh"
++#if defined(__TERMUX__)
++#include "bthread.h"
++#endif
+
+
+ // --------------------------------------------------------------------------------
--- /dev/null
+--- /dev/null 2021-05-22 06:52:04.572000000 +0300
++++ mjpegtools-2.1.0/mpeg2enc/bthread.h 2021-05-23 10:38:11.073808915 +0300
+@@ -0,0 +1,31 @@
++/* BThread main header
++ Copyright (C) 2002 Free Software Foundation, Inc.
++ This file is part of the GNU C Library.
++
++ The GNU C Library is free software; you can redistribute it and/or
++ modify it under the terms of the GNU Library General Public License as
++ published by the Free Software Foundation; either version 2 of the
++ License, or (at your option) any later version.
++
++ The GNU C Library is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Library General Public License for more details.
++
++ You should have received a copy of the GNU Library General Public
++ License along with the GNU C Library; see the file COPYING.LIB. If not,
++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
++ Boston, MA 02111-1307, USA. */
++
++# define PTHREAD_CANCEL_ENABLE 0x00000010
++# define PTHREAD_CANCEL_DISABLE 0x00000000
++
++# define PTHREAD_CANCEL_ASYNCHRONOUS 0x00000020
++# define PTHREAD_CANCEL_DEFERRED 0x00000000
++
++#define PTHREAD_CANCELED ((void *) -1)
++
++int pthread_setcancelstate (int , int *);
++int pthread_setcanceltype (int , int *);
++void pthread_testcancel (void);
++int pthread_cancel (pthread_t t);
--- /dev/null
+Index: mplex/lpcmstrm_in.cpp
+===================================================================
+--- ./mplex/lpcmstrm_in.cpp (revision 3507)
++++ ./mplex/lpcmstrm_in.cpp (working copy)
+@@ -306,7 +306,15 @@
+ default : bps_code = 3; break;
+ }
+ dst[4] = starting_frame_index;
+- unsigned int bsf_code = (samples_per_second == 48000) ? 0 : 1;
++ unsigned int bsf_code;
++ switch(samples_per_second)
++ {
++ case 48000: bsf_code = 0; break;
++ case 96000: bsf_code = 1; break;
++ case 44100: bsf_code = 2; break;
++ case 32000: bsf_code = 3; break;
++ }
++ //unsigned int bsf_code = (samples_per_second == 48000) ? 0 : 1;
+ unsigned int channels_code = channels - 1;
+ dst[5] = (bps_code << 6) | (bsf_code << 4) | channels_code;
+ dst[6] = dynamic_range_code;
+Index: mplex/stream_params.cpp
+===================================================================
+--- ./mplex/stream_params.cpp (revision 3507)
++++ ./mplex/stream_params.cpp (working copy)
+@@ -46,7 +46,7 @@
+ unsigned int chans,
+ unsigned int bits )
+ {
+- if( samples != 48000 && samples != 96000 )
++ if( samples != 48000 && samples != 96000 && samples != 44100 && samples != 32000 )
+ return 0;
+ if( chans < 1 || chans > 7 )
+ return 0;