From owner-freebsd-current@FreeBSD.ORG Sun Jun 8 06:06:18 2003 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 89D2437B401 for ; Sun, 8 Jun 2003 06:06:18 -0700 (PDT) Received: from open.nlnetlabs.nl (open.nlnetlabs.nl [213.154.224.1]) by mx1.FreeBSD.org (Postfix) with ESMTP id A752C43F85 for ; Sun, 8 Jun 2003 06:06:17 -0700 (PDT) (envelope-from ted@open.nlnetlabs.nl) Received: from open.nlnetlabs.nl (localhost [127.0.0.1]) by open.nlnetlabs.nl (8.12.8p1/8.12.6) with ESMTP id h58D6Gvr005061 for ; Sun, 8 Jun 2003 15:06:16 +0200 (CEST) (envelope-from ted@open.nlnetlabs.nl) Received: (from ted@localhost) by open.nlnetlabs.nl (8.12.8p1/8.12.8/Submit) id h58D6F89005060 for freebsd-current@freebsd.org; Sun, 8 Jun 2003 15:06:15 +0200 (CEST) Message-Id: <200306081306.h58D6F89005060@open.nlnetlabs.nl> From: ted@NLnetLabs.nl (Ted Lindgreen) Date: Sun, 8 Jun 2003 15:06:15 +0200 X-Mailer: Mail User's Shell (7.2.6 beta(5) 10/07/98) To: freebsd-current@freebsd.org Subject: Re Regression: Playing QT files from mplayer stopped working in 5.1 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Jun 2003 13:06:18 -0000 > Since a short time (don't know exactly when it happened) it's not possible > anymore to play Quicktime files (.mov) with mplayer on 5.1-CURRENT. It has to > be a change in -CURRENT, I haven't updated mplayer. I do not have the right fix, but the cause of the problem is that in loader/win32.c at line 2077: 2076 if (v1 > 2) 2077 if (!close(v1a)) close is called with a ridiciously large value. In previous FreeBSD releases this appearently did not cause a fatal problem, but since a week or so mplayer aborts on it. A stupid, but effective workaround is not to call close if v1 is too large, f.i.: 2072 static int WINAPI expCloseHandle(long v1) 2073 { 2074 dbgprintf("CloseHandle(0x%x) => 1\n", v1); 2075 /* do not close stdin,stdout and stderr */ 2076 if (v1 > 2 && v1 < 128) 2077 if (!close(v1)) 2078 return 0; 2079 return 1; 2080 } Of course for the real fix one needs to delve deeper into mplayer to find out where the large valued filedescriptor comes from. -- ted