FFmpeg : Replace some av_exit calls in av_transcode with branches to the

cleanup code.

This plugs a bunch of memleaks.

Originally committed as revision 24305 to svn://svn.ffmpeg.org/ffmpeg/trunk
oldabi
Jai Menon 15 years ago
parent 387fe82c95
commit d62ccec8b1
  1. 12
      ffmpeg.c

@ -2007,13 +2007,15 @@ static int av_transcode(AVFormatContext **output_files,
if (!os->nb_streams) { if (!os->nb_streams) {
dump_format(output_files[i], i, output_files[i]->filename, 1); dump_format(output_files[i], i, output_files[i]->filename, 1);
fprintf(stderr, "Output file #%d does not contain any stream\n", i); fprintf(stderr, "Output file #%d does not contain any stream\n", i);
av_exit(1); ret = AVERROR(EINVAL);
goto fail;
} }
nb_ostreams += os->nb_streams; nb_ostreams += os->nb_streams;
} }
if (nb_stream_maps > 0 && nb_stream_maps != nb_ostreams) { if (nb_stream_maps > 0 && nb_stream_maps != nb_ostreams) {
fprintf(stderr, "Number of stream maps must match number of output streams\n"); fprintf(stderr, "Number of stream maps must match number of output streams\n");
av_exit(1); ret = AVERROR(EINVAL);
goto fail;
} }
/* Sanity check the mapping args -- do the input files & streams exist? */ /* Sanity check the mapping args -- do the input files & streams exist? */
@ -2024,14 +2026,16 @@ static int av_transcode(AVFormatContext **output_files,
if (fi < 0 || fi > nb_input_files - 1 || if (fi < 0 || fi > nb_input_files - 1 ||
si < 0 || si > file_table[fi].nb_streams - 1) { si < 0 || si > file_table[fi].nb_streams - 1) {
fprintf(stderr,"Could not find input stream #%d.%d\n", fi, si); fprintf(stderr,"Could not find input stream #%d.%d\n", fi, si);
av_exit(1); ret = AVERROR(EINVAL);
goto fail;
} }
fi = stream_maps[i].sync_file_index; fi = stream_maps[i].sync_file_index;
si = stream_maps[i].sync_stream_index; si = stream_maps[i].sync_stream_index;
if (fi < 0 || fi > nb_input_files - 1 || if (fi < 0 || fi > nb_input_files - 1 ||
si < 0 || si > file_table[fi].nb_streams - 1) { si < 0 || si > file_table[fi].nb_streams - 1) {
fprintf(stderr,"Could not find sync stream #%d.%d\n", fi, si); fprintf(stderr,"Could not find sync stream #%d.%d\n", fi, si);
av_exit(1); ret = AVERROR(EINVAL);
goto fail;
} }
} }

Loading…
Cancel
Save