From a1629e2848a6e2505788998a1aa7248b62c0be9e Mon Sep 17 00:00:00 2001
From: Diego Biurrun <diego@biurrun.de>
Date: Thu, 10 Jun 2010 16:51:14 +0000
Subject: [PATCH] Remove support for pre-Haiku, non-POSIX, non-C99 BeOS
 variants.

BeOS support has been broken for many years and the "maintainer" of the port
has not reacted to countless requests to get the port fixed.
approved by Mans

Originally committed as revision 23562 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 MAINTAINERS              |  1 -
 configure                | 25 ++-----------------------
 doc/TODO                 |  8 --------
 doc/general.texi         |  4 ----
 ffmpeg.c                 |  6 ------
 libavformat/os_support.h | 17 -----------------
 6 files changed, 2 insertions(+), 59 deletions(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index b34c2bc1845..2f76f7f73f8 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -331,7 +331,6 @@ Alpha                                   Mans Rullgard, Falk Hueffner
 ARM                                     Mans Rullgard
 AVR32                                   Mans Rullgard
 MIPS                                    Mans Rullgard
-BeOS                                    Francois Revol
 Mac OS X / PowerPC                      Romain Dolbeau, Guillaume Poirier
 Amiga / PowerPC                         Colin Ward
 Linux / PowerPC                         Luca Barbato
diff --git a/configure b/configure
index 25dfb6d1cdb..33e47dad38f 100755
--- a/configure
+++ b/configure
@@ -115,7 +115,6 @@ Configuration options:
   --enable-runtime-cpudetect detect cpu capabilities at runtime (bigger binary)
   --enable-hardcoded-tables use hardcoded tables instead of runtime generation
   --enable-memalign-hack   emulate memalign, interferes with memory debuggers
-  --enable-beos-netserver  enable BeOS netserver
   --disable-everything     disable all components listed below
   --disable-encoder=NAME   disable encoder NAME
   --enable-encoder=NAME    enable encoder NAME
@@ -894,7 +893,6 @@ CONFIG_LIST="
     avfilter_lavf
     avformat
     avisynth
-    beos_netserver
     bzlib
     dct
     doc
@@ -2127,30 +2125,11 @@ enabled spic && enable pic
 
 # OS specific
 case $target_os in
-    beos|haiku|zeta)
+    haiku)
         prefix_default="$HOME/config"
-        # 3 gcc releases known for BeOS, each with ugly bugs
-        gcc_version="$($cc -v 2>&1 | grep version | cut -d ' ' -f3-)"
-        case "$gcc_version" in
-          2.9-beos-991026*|2.9-beos-000224*) echo "R5/GG gcc"
-            disable mmx
-            ;;
-          *20010315*) echo "BeBits gcc"
-            add_cflags -fno-expensive-optimizations
-            ;;
-        esac
         SHFLAGS=-nostart
-        # enable BeOS things
         enable audio_beos
-        # no need for libm, but the inet stuff
-        # Check for BONE
-        # XXX: actually should check for NOT net_server
-        if echo $BEINCLUDES | grep -q 'headers/be/bone'; then
-            network_extralibs="-lbind -lsocket"
-        else
-            enable beos_netserver
-            network_extralibs="-lnet"
-        fi ;;
+        ;;
     sunos)
         FFSERVERLDFLAGS=""
         SHFLAGS='-shared -Wl,-h,$$(@F)'
diff --git a/doc/TODO b/doc/TODO
index f03270ec13d..747eee4ab15 100644
--- a/doc/TODO
+++ b/doc/TODO
@@ -29,14 +29,6 @@ Michael's TODO list: (unordered) (if anyone wanna help with sth, just ask)
 - more optimizations
 - simper rate control
 
-Francois' TODO list: (unordered, without any timeframe)
--------------------
-- test MACE decoder against the openquicktime one as suggested by A'rpi
-- BeOS audio input grabbing backend
-- BeOS video input grabbing backend
-- publish my BeOS libposix on BeBits so I can officially support ffserver :)
-- check the whole code for thread-safety (global and init stuff)
-
 Philip'a TODO list: (alphabetically ordered) (please help)
 ------------------
 - Add a multi-ffm filetype so that feeds can be recorded into multiple files rather
diff --git a/doc/general.texi b/doc/general.texi
index dfd6384c325..296f5924704 100644
--- a/doc/general.texi
+++ b/doc/general.texi
@@ -725,10 +725,6 @@ performance on systems without hardware floating point support).
 
 @chapter Platform Specific information
 
-@section BeOS
-
-BeOS support is broken in mysterious ways.
-
 @section DOS
 
 Using a cross-compiler is preferred for various reasons.
diff --git a/ffmpeg.c b/ffmpeg.c
index 8dae5c76640..cb691b18446 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -540,10 +540,6 @@ static void term_init(void)
 #ifdef SIGXCPU
     signal(SIGXCPU, sigterm_handler);
 #endif
-
-#if CONFIG_BEOS_NETSERVER
-    fcntl(0, F_SETFL, fcntl(0, F_GETFL) | O_NONBLOCK);
-#endif
 }
 
 /* read a key without blocking */
@@ -552,7 +548,6 @@ static int read_key(void)
 #if HAVE_TERMIOS_H
     int n = 1;
     unsigned char ch;
-#if !CONFIG_BEOS_NETSERVER
     struct timeval tv;
     fd_set rfds;
 
@@ -561,7 +556,6 @@ static int read_key(void)
     tv.tv_sec = 0;
     tv.tv_usec = 0;
     n = select(1, &rfds, NULL, NULL, &tv);
-#endif
     if (n > 0) {
         n = read(0, &ch, 1);
         if (n == 1)
diff --git a/libavformat/os_support.h b/libavformat/os_support.h
index a3cc40a8509..5c9e81b340c 100644
--- a/libavformat/os_support.h
+++ b/libavformat/os_support.h
@@ -45,23 +45,6 @@ static inline int is_dos_path(const char *path)
     return 0;
 }
 
-#ifdef __BEOS__
-#  include <sys/socket.h>
-#  include <netinet/in.h>
-   /* not net_server ? */
-#  include <BeBuild.h>
-   /* R5 didn't have usleep, fake it. Haiku and Zeta has it now. */
-#  if B_BEOS_VERSION <= B_BEOS_VERSION_5
-#    include <OS.h>
-     /* doesn't set errno but that's enough */
-#    define usleep(t)  snooze((bigtime_t)(t))
-#  endif
-#  ifndef SA_RESTART
-#    warning SA_RESTART not implemented; ffserver might misbehave.
-#    define SA_RESTART 0
-#  endif
-#endif
-
 #if CONFIG_NETWORK
 #if !HAVE_SOCKLEN_T
 typedef int socklen_t;
-- 
GitLab