[SCM] libav/experimental: FFmpeg : Replace some av_exit calls in av_transcode with branches to the cleanup code.

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 17:11:38 UTC 2013


The following commit has been merged in the experimental branch:
commit d62ccec8b17f5806c397e4a4daccaf4f700ec5d4
Author: Jai Menon <jmenon86 at gmail.com>
Date:   Sun Jul 18 18:20:41 2010 +0000

    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

diff --git a/ffmpeg.c b/ffmpeg.c
index de15898..af6f9db 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -2007,13 +2007,15 @@ static int av_transcode(AVFormatContext **output_files,
         if (!os->nb_streams) {
             dump_format(output_files[i], i, output_files[i]->filename, 1);
             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;
     }
     if (nb_stream_maps > 0 && nb_stream_maps != nb_ostreams) {
         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? */
@@ -2024,14 +2026,16 @@ static int av_transcode(AVFormatContext **output_files,
         if (fi < 0 || fi > nb_input_files - 1 ||
             si < 0 || si > file_table[fi].nb_streams - 1) {
             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;
         si = stream_maps[i].sync_stream_index;
         if (fi < 0 || fi > nb_input_files - 1 ||
             si < 0 || si > file_table[fi].nb_streams - 1) {
             fprintf(stderr,"Could not find sync stream #%d.%d\n", fi, si);
-            av_exit(1);
+            ret = AVERROR(EINVAL);
+            goto fail;
         }
     }
 

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list