Hallo werte Leser, leider pflegt die Linux Gemeinde ja aus kultischen Gründen eine Reihe von Bugs um sich deutlich vom bösen Windows abzuheben. Daher wird wohl auch das Kernel Modul smbfs aus purer Boshaftigkeit nicht von seinen Bugs befreit .... oder? Im Ernst ... hier geht es um diejenigen deren Video Sammlung in einem heterogenen Netzwerk auf einem Samba-Server liegt. Mplayer mag in Files > 2 GByte von smb shares nicht Navigieren. XINE MACHT DEN SELBEN FEHLER! Der Patch hier ist für MPlayer1.0pre5 und behebt das Problem .... PROBLEM: When you use Mplayer to play a file larger 2 GByte that is living on a mounted SMB volume, Mplayer fails to determine the file size and disables seek operations. THE FIX: Mplayer tries to use lseek(..., SEEK_END) to get the file size. This does not always work (see above). Use fstat() instead in "libmpdemux" ... ----------------------------THE PATCH-------------------------------- --- stream_file.c.orig 2004-09-09 21:18:23.250719384 +0000 +++ stream_file.c 2004-09-09 21:17:56.783742976 +0000 @@ -110,17 +110,20 @@ } } - len=lseek(f,0,SEEK_END); lseek(f,0,SEEK_SET); - if(len == -1) { + // on smb shares seek(..,SEEK_END) wan't work for large files! + struct stat ss; + if(fstat(f, &ss) == 0 && S_ISREG(ss.st_mode)) { + stream->seek = seek; + stream->end_pos = ss.st_size; + stream->type = STREAMTYPE_FILE; + } + else { stream->seek = seek_forward; stream->type = STREAMTYPE_STREAM; // Must be move to STREAMTYPE_FILE stream->flags |= STREAM_SEEK_FW; - } else if(len >= 0) { - stream->seek = seek; - stream->end_pos = len; - stream->type = STREAMTYPE_FILE; } + len = ss.st_size; #ifdef _LARGEFILE_SOURCE mp_msg(MSGT_OPEN,MSGL_V,"[file] File size is %lld bytes\n", (long long)len); #else ----------------------------THE PATCH-------------------------------- Ist natürlich nicht jedermanns Sache einen solchen Patch einzubauen, aber vielleicht nimmt der ja so seinen Weg... Gruss Jürgen