diff --git a/libavformat/file.c b/libavformat/file.c index f7329e7923..fc75ee015c 100644 --- a/libavformat/file.c +++ b/libavformat/file.c @@ -107,6 +107,7 @@ static int pipe_open(URLContext *h, const char *filename, int flags) setmode(fd, O_BINARY); #endif h->priv_data = (void *)(size_t)fd; + h->is_streamed = 1; return 0; } diff --git a/libavformat/utils.c b/libavformat/utils.c index ddfaddeefe..5b17c64b90 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -1617,7 +1617,7 @@ static void av_estimate_timings(AVFormatContext *ic) } ic->file_size = file_size; - if (ic->iformat == &mpegps_demux) { + if (ic->iformat == &mpegps_demux && file_size && !ic->pb.is_streamed) { /* get accurate estimate from the PTSes */ av_estimate_timings_from_pts(ic); } else if (av_has_timings(ic)) {