[FFmpeg-devel] [PATCH] Make the ffmpeg "Overwrite ? [y/N]" question works with more than one file to overwrite
Michael Niedermayer
michaelni
Sat Mar 14 02:30:20 CET 2009
On Sat, Mar 14, 2009 at 01:14:13AM +0100, Stefano Sabatini wrote:
> On date Wednesday 2009-03-11 01:42:10 +0100, Michael Niedermayer encoded:
> > On Tue, Mar 10, 2009 at 09:36:00PM +0100, Stefano Sabatini wrote:
> > > Hi all,
> > >
> > > I recently stepped into this:
> > > stefano at geppetto ~/s/ffmpeg> ffmpeg -i in123.mpeg out0.avi out1.ogg -y -map 0:2 -map 0:1
> > > [...]
> > > Input #0, mpeg, from 'in123.mpeg':
> > > Duration: 00:03:40.05, start: 0.500000, bitrate: 81 kb/s
> > > Stream #0.0[0x1c0]: Audio: mp2, 48000 Hz, stereo, s16, 64 kb/s
> > > Stream #0.1[0x1c1]: Audio: mp2, 48000 Hz, stereo, s16, 64 kb/s
> > > Stream #0.2[0x1c2]: Audio: mp2, 48000 Hz, stereo, s16, 64 kb/s
> > > File 'out0.avi' already exists. Overwrite ? [y/N] y
> > > File 'out1.ogg' already exists. Overwrite ? [y/N]
> > > Not overwriting - exiting
> > >
> > > After the first question is replied, the stdin buffer still contains
> > > the '\n' buffered, then ffmpeg read from it with getchar(), get a
> > > '\n', which is different from 'Y' and abort immediately.
> > >
> > > Patch fixes it.
> > >
> > > Regards.
> > > --
> > > FFmpeg = Fast and Faboulous Most Picky Energized Gorilla
> >
> > > Index: ffmpeg.c
> > > ===================================================================
> > > --- ffmpeg.c (revision 17926)
> > > +++ ffmpeg.c (working copy)
> > > @@ -3362,12 +3362,13 @@
> > > filename[1] == ':' ||
> > > av_strstart(filename, "file:", NULL))) {
> > > if (url_exist(filename)) {
> > > - int c;
> > > + char c, line[256];
> > >
> > > if (!using_stdin) {
> > > fprintf(stderr,"File '%s' already exists. Overwrite ? [y/N] ", filename);
> > > fflush(stderr);
> > > - c = getchar();
> > > + fgets(line, sizeof(line), stdin);
> > > + sscanf(line, "%c", &c);
> >
> > what weird mess is this ?
> > getchar();getchar()
>
> underkill, what if the user prints more than one character?
if the user enters more than 2 chars to a question asking for one
then interpreting this as 'y' is maybe not such a good idea.
also, from a user POV, just having to press y and no enter would be nice
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Complexity theory is the science of finding the exact solution to an
approximation. Benchmarking OTOH is finding an approximation of the exact
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090314/d4772bbd/attachment.pgp>
More information about the ffmpeg-devel
mailing list