freebsd-ports/multimedia/gstreamer-plugins/files/patch-ext_mpeg2enc_gstmpeg2encoptions.cc
Joe Marcus Clarke 0f3ea1bafe Use some sysctl magic to get hw.ncpu on systems that don't support the
_SC_NPROCESSORS_ONLN sysconf macro.

Reported by:	Randy Pratt <rpratt1950@earthlink.net>
2004-07-06 00:07:32 +00:00

26 lines
740 B
C++

--- ext/mpeg2enc/gstmpeg2encoptions.cc.orig Mon Jul 5 19:54:18 2004
+++ ext/mpeg2enc/gstmpeg2encoptions.cc Mon Jul 5 20:05:37 2004
@@ -267,11 +267,23 @@
* Class init stuff.
*/
+#if !defined(_SC_NPROCESSORS_ONLN) && defined(__FreeBSD__)
+#include <sys/types.h>
+#include <sys/sysctl.h>
+#endif
+
GstMpeg2EncOptions::GstMpeg2EncOptions ():
MPEG2EncOptions ()
{
/* autodetect number of CPUs */
+#if !defined(_SC_NPROCESSORS_ONLN) && defined(__FreeBSD__)
+ /* We need to use a sysctl to get the number of CPUs. */
+ size_t len = sizeof (num_cpus);
+
+ sysctlbyname ("hw.ncpu", &num_cpus, &len, NULL, 0);
+#else
num_cpus = sysconf (_SC_NPROCESSORS_ONLN);
+#endif
if (num_cpus < 0)
num_cpus = 1;
if (num_cpus > 32)