avformat: disable seeking on FIFOs/named pipes
authorMartin Sliwka <martin.sliwka@gmail.com>
Thu, 28 Jun 2012 17:31:04 +0000 (19:31 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 29 Jun 2012 12:54:15 +0000 (14:54 +0200)
Patch is addition to my previous patch
(https://lists.ffmpeg.org/pipermail/ffmpeg-cvslog/2012-June/051590.html)
and disables seeking on FIFOs/named pipes by setting
URLContext::is_streamed (same as pipe: protocol does for stdin/stdout pipes)

Fixes Ticket986

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/file.c

index 0c566c9..35c36a5 100644 (file)
@@ -72,6 +72,7 @@ static int file_open(URLContext *h, const char *filename, int flags)
 {
     int access;
     int fd;
+    struct stat st;
 
     av_strstart(filename, "file:", &filename);
 
@@ -89,6 +90,9 @@ static int file_open(URLContext *h, const char *filename, int flags)
     if (fd == -1)
         return AVERROR(errno);
     h->priv_data = (void *) (intptr_t) fd;
+
+    h->is_streamed = (0==fstat(fd, &st) && S_ISFIFO(st.st_mode)) ? 1 : 0;
+
     return 0;
 }