Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 8 Jun 2003 15:06:15 +0200
From:      ted@NLnetLabs.nl (Ted Lindgreen)
To:        freebsd-current@freebsd.org
Subject:   Re Regression: Playing QT files from mplayer stopped working in 5.1
Message-ID:  <200306081306.h58D6F89005060@open.nlnetlabs.nl>

next in thread | raw e-mail | index | archive | help
> 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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200306081306.h58D6F89005060>