Package: vorbis-tools Version: 1.2.0-5 Severity: normal Tags: patch When /proc/self/fd/0 is passed to ogg123 as the file to play, it thinks it is seekable and fails to play. Even though `-' could be used instead in this example, I have a more complex situation that has to use /proc/self/fd/0.
This simple patch fixes the problem. -- System Information: Debian Release: 5.0.1 APT prefers stable APT policy: (990, 'stable') Architecture: i386 (i686) Kernel: Linux 2.6.26-1-686 (SMP w/4 CPU cores) Locale: LANG=C, LC_CTYPE=fr_CA (charmap=ISO-8859-1) Shell: /bin/sh linked to /bin/bash Versions of packages vorbis-tools depends on: ii libao2 0.8.8-4 Cross Platform Audio Output Librar ii libc6 2.7-18 GNU C Library: Shared libraries ii libcurl3-gnutls 7.18.2-8lenny2 Multi-protocol file transfer libra ii libflac8 1.2.1-1.2 Free Lossless Audio Codec - runtim ii libogg0 1.1.3-4 Ogg Bitstream Library ii libspeex1 1.2~rc1-1 The Speex codec runtime library ii libvorbis0a 1.2.0.dfsg-3.1 The Vorbis General Audio Compressi ii libvorbisenc2 1.2.0.dfsg-3.1 The Vorbis General Audio Compressi ii libvorbisfile3 1.2.0.dfsg-3.1 The Vorbis General Audio Compressi vorbis-tools recommends no packages. vorbis-tools suggests no packages. -- no debconf information
--- file_transport.c.orig 2009-05-15 13:20:05.000000000 -0400 +++ file_transport.c 2009-05-15 11:45:12.000000000 -0400 @@ -69,8 +69,12 @@ if (strcmp(source_string, "-") == 0) { private->fp = stdin; private->seekable = 0; - } else + } else { private->fp = fopen(source_string, "r"); + if (lseek(fileno(private->fp), 0, SEEK_CUR) == -1) { + private->seekable = 0; + } + } if (private->fp == NULL) { free(source->source_string);