[FFmpeg-devel] [PATCH] Check for the isatty function
Martin Storsjö
martin
Wed Jul 22 00:02:02 CEST 2009
On Tue, 14 Jul 2009, Ramiro Polla wrote:
> 2009/7/14 M?ns Rullg?rd <mans at mansr.com>:
> > Martin Storsj? <martin at martin.st> writes:
> >
> >> diff --git a/ffmpeg.c b/ffmpeg.c
> >> index ca083de..15b1dcd 100644
> >> --- a/ffmpeg.c
> >> +++ b/ffmpeg.c
> >> @@ -3978,8 +3978,10 @@ int main(int argc, char **argv)
> >> ? ? ?avdevice_register_all();
> >> ? ? ?av_register_all();
> >>
> >> +#if HAVE_ISATTY
> >> ? ? ?if(isatty(STDIN_FILENO))
> >> ? ? ? ? ?url_set_interrupt_cb(decode_interrupt_cb);
> >> +#endif
> >>
> >> ? ? ?for(i=0; i<CODEC_TYPE_NB; i++){
> >> ? ? ? ? ?avcodec_opts[i]= avcodec_alloc_context2(i);
> >
> > Fine by me.
> >
> > That said, why do we do this only if stdin is a terminal?
>
> I don't know, Michael added that. If we set it unconditionally, won't
> this interfere with pipe inputs?
Yes, it would probably interfere with pipes.
Another solution would be:
#ifdef HAVE_ISATTY
if (isatty(STDIN_FILENO))
#endif
url_set_interrupt_cb(decode_interrupt_cb);
That is, if isatty isn't available, one can perhaps assume that stdin
isn't a pipe.
OTOH, the initial version is safer in this aspect. If I understood issue66
correctly, this is only needed to be able to abort by pressing 'q' while
opening the file, so skipping if it if unsure (as in the initial patch)
should be quite safe.
// Martin
More information about the ffmpeg-devel
mailing list