[FFmpeg-devel] [PATCH] ffprobe: do not exit in case the demuxer returns AVERROR(EAGAIN)

Michael Niedermayer michaelni at gmx.at
Thu Nov 19 02:36:19 CET 2015

On Thu, Nov 19, 2015 at 01:25:53AM +0100, Andreas Cadhalpun wrote:
> On 18.11.2015 15:07, Michael Niedermayer wrote:
> > On Tue, Nov 17, 2015 at 05:20:08PM +0100, Stefano Sabatini wrote:
> >> On date Tuesday 2015-11-17 17:12:46 +0100, wm4 encoded:
> >>> On Tue, 17 Nov 2015 17:00:29 +0100
> >>> Stefano Sabatini <stefasab at gmail.com> wrote:
> >> [...]
> >>>> No, just in case ret == AVERROR(EAGAIN), in all other failure cases it
> >>>> will exit the loop immediately.
> >>>>
> >>>> BTW, the same problem affects some API usage examples.
> >>>
> >>> Yeah, I got that wrong - but even with EAGAIN, is there a guarantee?
> >>
> >> I don't know. Note that this is also the same strategy applied by
> >> ffplay and ffmpeg (in this case it will wait with a usleep). We could
> >> abort in case a threshold count value is reached, but that would be
> >> probably overkill.
> > 
> > iam not aware of any inf loops with EAGAIN
> Well, I am. I even sent patches fixing that, but you had objections. [1]

FFM is used as a ring buffer between processes 
if you try to read a ffm file that is not connected to any process
writing into it then that could wait via EAGAIN forever
that is a problem

A fix would require to extend the ffm format slightly i think
a simple fix would be for the muxer to write teh current date in the
file and the demuxer to skip EAGAIN and fail if the read data differs
by more than a small amout from the current date or something similar

if you dont want to work on this, please say so, then ill look into
other ideas are of course welcome

> So ffprobe can already hang in an infinite EAGAIN loop that happens
> within avformat_find_stream_info.
> Best regards,
> Andreas
> 1: https://ffmpeg.org/pipermail/ffmpeg-devel/2015-March/170009.html
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Observe your enemies, for they first find out your faults. -- Antisthenes
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20151119/037180b0/attachment.sig>

More information about the ffmpeg-devel mailing list