Additional old libraries cleanup
authorGood Guy <good1.2guy@gmail.com>
Wed, 26 Feb 2025 20:21:50 +0000 (13:21 -0700)
committerGood Guy <good1.2guy@gmail.com>
Wed, 26 Feb 2025 20:21:50 +0000 (13:21 -0700)
17 files changed:
cinelerra-5.1/thirdparty/src/flac-1.4.2.tar.xz [deleted file]
cinelerra-5.1/thirdparty/src/giflib-5.2.1.patch1 [deleted file]
cinelerra-5.1/thirdparty/src/giflib-5.2.1.patch2 [deleted file]
cinelerra-5.1/thirdparty/src/giflib-5.2.1.tar.xz [deleted file]
cinelerra-5.1/thirdparty/src/libsvtav1-v1.8.0.patch0 [deleted file]
cinelerra-5.1/thirdparty/src/libsvtav1-v2.2.1.patch0 [deleted file]
cinelerra-5.1/thirdparty/src/libvpx-1.13.1.patch1 [deleted file]
cinelerra-5.1/thirdparty/src/libwebp-1.3.2.patch0 [deleted file]
cinelerra-5.1/thirdparty/src/libwebp-1.3.2.tar.xz [deleted file]
cinelerra-5.1/thirdparty/src/mjpegtools-2.1.0.patch1 [deleted file]
cinelerra-5.1/thirdparty/src/mjpegtools-2.1.0.patch2 [deleted file]
cinelerra-5.1/thirdparty/src/mjpegtools-2.1.0.patch3 [deleted file]
cinelerra-5.1/thirdparty/src/mjpegtools-2.1.0.patch4 [deleted file]
cinelerra-5.1/thirdparty/src/mjpegtools-2.1.0.patch5 [deleted file]
cinelerra-5.1/thirdparty/src/mjpegtools-2.1.0.patch6 [deleted file]
cinelerra-5.1/thirdparty/src/mjpegtools-2.1.0.patch7 [deleted file]
cinelerra-5.1/thirdparty/src/mjpegtools-2.1.0.patch8 [deleted file]

diff --git a/cinelerra-5.1/thirdparty/src/flac-1.4.2.tar.xz b/cinelerra-5.1/thirdparty/src/flac-1.4.2.tar.xz
deleted file mode 100644 (file)
index f6d9f14..0000000
Binary files a/cinelerra-5.1/thirdparty/src/flac-1.4.2.tar.xz and /dev/null differ
diff --git a/cinelerra-5.1/thirdparty/src/giflib-5.2.1.patch1 b/cinelerra-5.1/thirdparty/src/giflib-5.2.1.patch1
deleted file mode 100644 (file)
index 8560f04..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/Makefile 2020-02-10 20:33:30.257695474 -0700
-+++ b/Makefile 2020-02-10 20:37:25.217129318 -0700
-@@ -6,7 +6,7 @@
- # of code space in the shared library.
- #
--OFLAGS = -O0 -g
-+#OFLAGS = -O0 -g
- OFLAGS  = -O2
- CFLAGS  = -std=gnu99 -fPIC -Wall -Wno-format-truncation $(OFLAGS)
-@@ -62,7 +62,7 @@
- LDLIBS=libgif.a -lm
- all: libgif.so libgif.a libutil.so libutil.a $(UTILS)
--      $(MAKE) -C doc
-+#     $(MAKE) -C doc
- $(UTILS):: libgif.a libutil.a
diff --git a/cinelerra-5.1/thirdparty/src/giflib-5.2.1.patch2 b/cinelerra-5.1/thirdparty/src/giflib-5.2.1.patch2
deleted file mode 100644 (file)
index 8a7ad8b..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-diff -ur a/quantize.c b/quantize.c
---- a/quantize.c       2019-02-11 07:43:57.000000000 -0700
-+++ b/quantize.c       2019-02-27 17:20:06.369498072 -0700
-# SortRGBAxis is static and not locked, qsort recoded
-# GAErrorToken is also static and not locked, not fixed
-@@ -11,8 +11,9 @@
- ******************************************************************************/
--#include <stdlib.h>
- #include <stdio.h>
-+#include <stdlib.h>
-+
- #include "gif_lib.h"
- #include "gif_lib_private.h"
-@@ -22,8 +23,6 @@
- #define BITS_PER_PRIM_COLOR 5
- #define MAX_PRIM_COLOR      0x1f
--static int SortRGBAxis;
--
- typedef struct QuantizedColorType {
-     GifByteType RGB[3];
-     GifByteType NewColorIndex;
-@@ -31,6 +30,40 @@
-     struct QuantizedColorType *Pnext;
- } QuantizedColorType;
-+static int QCmpr(QuantizedColorType *a, QuantizedColorType *b, int i)
-+{
-+      int i0 = i, i1 = i+1, i2 = i+2;
-+      if( i1 >= 3 ) i1 -= 3;
-+      if( i2 >= 3 ) i2 -= 3;
-+      /* sort on all axes of the color space! */
-+      int hash_a = (a->RGB[i0] << 16) | (a->RGB[i1] << 8) | (a->RGB[i2] << 0);
-+      int hash_b = (b->RGB[i0] << 16) | (b->RGB[i1] << 8) | (b->RGB[i2] << 0);
-+      return hash_a - hash_b;
-+}
-+
-+static int QSplit(QuantizedColorType **q, int l, int r, int i)
-+{
-+      int m;
-+      QuantizedColorType *t;
-+      for(;;) {
-+              while( QCmpr(q[r],q[l], i) >= 0 ) if( ++l == r ) return r;
-+              t = q[l];  q[l] = q[r];  q[r] = t;  m = l;  l = r;  r = m;
-+              while( QCmpr(q[l],q[r], i) >= 0 ) if( r == --l ) return r;
-+              t = q[l];  q[l] = q[r];  q[r] = t;  m = l;  l = r;  r = m;
-+      }
-+}
-+
-+static void QSort(QuantizedColorType **q, int ll, int rr, int i)
-+{
-+      for(;;) {
-+              int l = ll+1;  if( l == rr ) return;
-+              int r = rr-1;  if( l == r ) return;
-+              int m = QSplit(q, l, r, i);
-+              QSort(q, ll, m, i);
-+              ll = m;
-+      }
-+}
-+
- typedef struct NewColorMapType {
-     GifByteType RGBMin[3], RGBWidth[3];
-     unsigned int NumEntries; /* # of QuantizedColorType in linked list below */
-@@ -41,7 +74,6 @@
- static int SubdivColorMap(NewColorMapType * NewColorSubdiv,
-                           unsigned int ColorMapSize,
-                           unsigned int *NewColorMapSize);
--static int SortCmpRtn(const void *Entry1, const void *Entry2);
- /******************************************************************************
-  Quantize high resolution image into lower one. Input image consists of a
-@@ -198,6 +230,7 @@
-                unsigned int ColorMapSize,
-                unsigned int *NewColorMapSize) {
-+    int SortRGBAxis = 0;
-     unsigned int i, j, Index = 0;
-     QuantizedColorType *QuantizedColor, **SortArray;
-@@ -234,19 +267,7 @@
-              j++, QuantizedColor = QuantizedColor->Pnext)
-             SortArray[j] = QuantizedColor;
--      /*
--       * Because qsort isn't stable, this can produce differing 
--       * results for the order of tuples depending on platform
--       * details of how qsort() is implemented.
--       *
--       * We mitigate this problem by sorting on all three axes rather
--       * than only the one specied by SortRGBAxis; that way the instability
--       * can only become an issue if there are multiple color indices
--       * referring to identical RGB tuples.  Older versions of this 
--       * sorted on only the one axis.
--       */
--        qsort(SortArray, NewColorSubdiv[Index].NumEntries,
--              sizeof(QuantizedColorType *), SortCmpRtn);
-+        QSort(SortArray, -1, NewColorSubdiv[Index].NumEntries, SortRGBAxis);
-         /* Relink the sorted list into one: */
-         for (j = 0; j < NewColorSubdiv[Index].NumEntries - 1; j++)
-@@ -310,21 +331,4 @@
-  Routine called by qsort to compare two entries.
- *****************************************************************************/
--static int
--SortCmpRtn(const void *Entry1,
--           const void *Entry2) {
--         QuantizedColorType *entry1 = (*((QuantizedColorType **) Entry1));
--         QuantizedColorType *entry2 = (*((QuantizedColorType **) Entry2));
--
--         /* sort on all axes of the color space! */
--         int hash1 = entry1->RGB[SortRGBAxis] * 256 * 256
--                              + entry1->RGB[(SortRGBAxis+1) % 3] * 256
--                              + entry1->RGB[(SortRGBAxis+2) % 3];
--         int hash2 = entry2->RGB[SortRGBAxis] * 256 * 256
--                              + entry2->RGB[(SortRGBAxis+1) % 3] * 256
--                              + entry2->RGB[(SortRGBAxis+2) % 3];
--
--    return hash1 - hash2;
--}
--
- /* end */
diff --git a/cinelerra-5.1/thirdparty/src/giflib-5.2.1.tar.xz b/cinelerra-5.1/thirdparty/src/giflib-5.2.1.tar.xz
deleted file mode 100644 (file)
index c633d2a..0000000
Binary files a/cinelerra-5.1/thirdparty/src/giflib-5.2.1.tar.xz and /dev/null differ
diff --git a/cinelerra-5.1/thirdparty/src/libsvtav1-v1.8.0.patch0 b/cinelerra-5.1/thirdparty/src/libsvtav1-v1.8.0.patch0
deleted file mode 100644 (file)
index 3a7b2b8..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- libsvtav1-v1.8.0/CMakeLists.txt
-+++ libsvtav1-v1.8.0/CMakeLists.txt
-@@ -9,7 +9,7 @@
- # PATENTS file, you can obtain it at https://www.aomedia.org/license/patent-license.
- #
--cmake_minimum_required(VERSION 3.16)
-+cmake_minimum_required(VERSION 3.12)
- if("${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}")
-     message(WARNING "Building in-source is highly not recommended\n"
diff --git a/cinelerra-5.1/thirdparty/src/libsvtav1-v2.2.1.patch0 b/cinelerra-5.1/thirdparty/src/libsvtav1-v2.2.1.patch0
deleted file mode 100644 (file)
index 286d33c..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- libsvtav1-v2.2.1/CMakeLists.txt
-+++ libsvtav1-v2.2.1/CMakeLists.txt
-@@ -9,7 +9,7 @@
- # PATENTS file, you can obtain it at https://www.aomedia.org/license/patent-license.
- #
--cmake_minimum_required(VERSION 3.16)
-+cmake_minimum_required(VERSION 3.12)
- if("${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}")
-     message(WARNING "Building in-source is highly not recommended\n"
diff --git a/cinelerra-5.1/thirdparty/src/libvpx-1.13.1.patch1 b/cinelerra-5.1/thirdparty/src/libvpx-1.13.1.patch1
deleted file mode 100644 (file)
index 3700951..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/vpx_ports/mem.h  2019-12-09 16:09:20.000000000 -0700
-+++ b/vpx_ports/mem.h  2020-07-31 09:20:22.303406738 -0600
-@@ -15,7 +15,7 @@
- #include "vpx/vpx_integer.h"
- #if (defined(__GNUC__) && __GNUC__) || defined(__SUNPRO_C)
--#define DECLARE_ALIGNED(n, typ, val) typ val __attribute__((aligned(n)))
-+#define DECLARE_ALIGNED(n, typ, val) typ val __attribute__((aligned(64)))
- #elif defined(_MSC_VER)
- #define DECLARE_ALIGNED(n, typ, val) __declspec(align(n)) typ val
- #else
diff --git a/cinelerra-5.1/thirdparty/src/libwebp-1.3.2.patch0 b/cinelerra-5.1/thirdparty/src/libwebp-1.3.2.patch0
deleted file mode 100644 (file)
index bc1628e..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
---- libwebp-1.3.2/src/libwebp.pc.in.orig       2023-09-15 19:52:28.960943568 +0300
-+++ libwebp-1.3.2/src/libwebp.pc.in    2023-09-15 19:55:00.828943460 +0300
-@@ -6,7 +6,7 @@
- Name: libwebp
- Description: Library for the WebP graphics format
- Version: @PACKAGE_VERSION@
--Requires.private: libsharpyuv
-+Requires: libsharpyuv
- Cflags: -I${includedir}
--Libs: -L${libdir} -l@webp_libname_prefix@webp
-+Libs: -L${libdir} -l@webp_libname_prefix@webp -lsharpyuv
- Libs.private: -lm @PTHREAD_CFLAGS@ @PTHREAD_LIBS@
diff --git a/cinelerra-5.1/thirdparty/src/libwebp-1.3.2.tar.xz b/cinelerra-5.1/thirdparty/src/libwebp-1.3.2.tar.xz
deleted file mode 100644 (file)
index 344a4c0..0000000
Binary files a/cinelerra-5.1/thirdparty/src/libwebp-1.3.2.tar.xz and /dev/null differ
diff --git a/cinelerra-5.1/thirdparty/src/mjpegtools-2.1.0.patch1 b/cinelerra-5.1/thirdparty/src/mjpegtools-2.1.0.patch1
deleted file mode 100644 (file)
index 6f310b4..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
---- a/cpuinfo.sh       2009-08-31 15:59:37.000000000 -0600
-+++ b/cpuinfo.sh       2015-02-01 22:20:28.469910599 -0700
-@@ -144,9 +144,6 @@
-                           # synonym for 'k8'
-                          proc=k8
-                          ;;
--                      16)
--                         proc=barcelona
--                         ;;
-                       *) proc=athlon-xp
-                          ;;
-               esac
-@@ -165,9 +162,7 @@
-                          fi
-                          ;;
-                       6) iproc=686
--                           if test "$pmodel" -ge 23; then
--                                proc=core2
--                           elif test "$pmodel" -ge 15; then
-+                           if test "$pmodel" -ge 15; then
-                                 proc=nocona
-                            elif test "$pmodel" -ge 13; then
-                                 proc=pentium-m
-@@ -228,11 +223,6 @@
-     fi
- fi
--# Seems some variants of gcc accept 'core2' instead of 'nocona'.
--if test "$proc" = "core2"; then
--        do_cc  -march=$proc $_opt_mcpu=$proc || proc=nocona
--fi
--
- if test "$proc" = "pentium4" || test "$proc" = "pentium3" || test "$proc" = "pentium2" || test "$proc" = "athlon"; then
-       do_cc -march=$proc $_opt_mcpu=$proc || proc=i686
- fi
-@@ -249,7 +239,6 @@
-       do_cc -march=$proc $_opt_mcpu=$proc || proc=error
- fi
- if test "$proc" = "error" ; then
--      echo "Your $CC does not even support \"i386\" for '-march' and $_opt_mcpu."
-       _mcpu=""
-       _march=""
- elif test "$proc" = "i586-i686"; then
diff --git a/cinelerra-5.1/thirdparty/src/mjpegtools-2.1.0.patch2 b/cinelerra-5.1/thirdparty/src/mjpegtools-2.1.0.patch2
deleted file mode 100644 (file)
index 8856183..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -ur a/configure.ac b/configure.ac
---- a/configure.ac     2016-12-24 08:32:29.025598527 -0700
-+++ b/configure.ac     2016-12-24 08:33:15.857611555 -0700
-@@ -382,6 +382,7 @@
- dnl programs such as yuvdenoise and y4mspatialfilter can use this flag by
- dnl simply adding programname_CFLAGS=@PROGRAM_NOPIC@ to the Makefile.am
-+PROGRAM_NOPIC=""
- AC_SUBST(PROGRAM_NOPIC)
- if test "$enable_simd_accel" != "false" -a "$enable_simd_accel" != "no"
-diff -ur a/configure b/configure
---- a/configure        2016-12-24 08:59:51.019865977 -0700
-+++ b/configure        2016-12-24 08:59:28.814032493 -0700
-@@ -19069,6 +19069,7 @@
- esac
-+PROGRAM_NOPIC=""
- if test "$enable_simd_accel" != "false" -a "$enable_simd_accel" != "no"
- then
diff --git a/cinelerra-5.1/thirdparty/src/mjpegtools-2.1.0.patch3 b/cinelerra-5.1/thirdparty/src/mjpegtools-2.1.0.patch3
deleted file mode 100644 (file)
index 93a2640..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
---- mjpegtools-2.1.0/utils/videodev_mjpeg.h.orig       2019-01-12 11:13:19.901685543 -0700
-+++ mjpegtools-2.1.0/utils/videodev_mjpeg.h    2019-01-12 11:14:33.325683843 -0700
-@@ -109,6 +109,11 @@
- /*
- Private IOCTL to set up for displaying MJPEG
- */
-+/* bad spelling, see /usr/include/videodev2.h */
-+#ifndef BASE_VIDIOCPRIVATE
-+#define BASE_VIDIOCPRIVATE BASE_VIDIOC_PRIVATE
-+#endif
-+
- #define MJPIOC_G_PARAMS       _IOR ('v', BASE_VIDIOCPRIVATE+0,  struct mjpeg_params)
- #define MJPIOC_S_PARAMS       _IOWR('v', BASE_VIDIOCPRIVATE+1,  struct mjpeg_params)
- #define MJPIOC_REQBUFS        _IOWR('v', BASE_VIDIOCPRIVATE+2,  struct mjpeg_requestbuffers)
diff --git a/cinelerra-5.1/thirdparty/src/mjpegtools-2.1.0.patch4 b/cinelerra-5.1/thirdparty/src/mjpegtools-2.1.0.patch4
deleted file mode 100644 (file)
index d0bbfd1..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
---- 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);
diff --git a/cinelerra-5.1/thirdparty/src/mjpegtools-2.1.0.patch5 b/cinelerra-5.1/thirdparty/src/mjpegtools-2.1.0.patch5
deleted file mode 100644 (file)
index 4d390ed..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
---- ./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(;;)
-       {
diff --git a/cinelerra-5.1/thirdparty/src/mjpegtools-2.1.0.patch6 b/cinelerra-5.1/thirdparty/src/mjpegtools-2.1.0.patch6
deleted file mode 100644 (file)
index 63e8630..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
---- 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
-
-
- // --------------------------------------------------------------------------------
diff --git a/cinelerra-5.1/thirdparty/src/mjpegtools-2.1.0.patch7 b/cinelerra-5.1/thirdparty/src/mjpegtools-2.1.0.patch7
deleted file mode 100644 (file)
index 71eede4..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
---- /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);
diff --git a/cinelerra-5.1/thirdparty/src/mjpegtools-2.1.0.patch8 b/cinelerra-5.1/thirdparty/src/mjpegtools-2.1.0.patch8
deleted file mode 100644 (file)
index 610f94e..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-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;