OSDN Git Service

use av memory functions
authorFabrice Bellard <fabrice@bellard.org>
Sat, 18 May 2002 23:17:41 +0000 (23:17 +0000)
committerFabrice Bellard <fabrice@bellard.org>
Sat, 18 May 2002 23:17:41 +0000 (23:17 +0000)
Originally committed as revision 531 to svn://svn.ffmpeg.org/ffmpeg/trunk

ffmpeg.c
ffserver.c

index 8d8eae8..61d03fd 100644 (file)
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -1,12 +1,21 @@
 /*
  * FFmpeg main 
- * Copyright (c) 2000,2001 Gerard Lantau
+ * Copyright (c) 2000, 2001, 2002 Gerard Lantau
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
+ * As a special exception, if you link this library with other files
+ * to produce an executable, this library does not by itself cause the
+ * resulting executable to be covered by the GNU General Public
+ * License.  This exception does not however invalidate any other
+ * reasons why the executable file might be covered by the GNU General
+ * Public License. (The General Public License restrictions do apply
+ * in other respects; for example, they cover modification of the
+ * file, and distribution when not linked into a combine executable.)
+ * 
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
@@ -14,7 +23,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  
  */
 #define HAVE_AV_CONFIG_H
 #include "avformat.h"
@@ -120,8 +129,6 @@ typedef struct AVOutputStream {
     AVStream *st;            /* stream in the output file */
     int encoding_needed;   /* true if encoding needed for this stream */
 
-    int fifo_packet_rptr;    /* read index in the corresponding
-                                avinputstream packet fifo */
     /* video only */
     AVPicture pict_tmp;         /* temporary image for resizing */
     int video_resample;
@@ -316,7 +323,7 @@ static void write_picture(AVFormatContext *s, int index, AVPicture *picture,
     switch(pix_fmt) {
     case PIX_FMT_YUV420P:
         size = avpicture_get_size(pix_fmt, w, h);
-        buf = malloc(size);
+        buf = av_malloc(size);
         if (!buf)
             return;
         dest = buf;
@@ -335,7 +342,7 @@ static void write_picture(AVFormatContext *s, int index, AVPicture *picture,
         break;
     case PIX_FMT_YUV422P:
         size = (w * h) * 2; 
-        buf = malloc(size);
+        buf = av_malloc(size);
         if (!buf)
             return;
         dest = buf;
@@ -353,7 +360,7 @@ static void write_picture(AVFormatContext *s, int index, AVPicture *picture,
         break;
     case PIX_FMT_YUV444P:
         size = (w * h) * 3; 
-        buf = malloc(size);
+        buf = av_malloc(size);
         if (!buf)
             return;
         dest = buf;
@@ -368,7 +375,7 @@ static void write_picture(AVFormatContext *s, int index, AVPicture *picture,
         break;
     case PIX_FMT_YUV422:
         size = (w * h) * 2; 
-        buf = malloc(size);
+        buf = av_malloc(size);
         if (!buf)
             return;
         dest = buf;
@@ -382,7 +389,7 @@ static void write_picture(AVFormatContext *s, int index, AVPicture *picture,
     case PIX_FMT_RGB24:
     case PIX_FMT_BGR24:
         size = (w * h) * 3; 
-        buf = malloc(size);
+        buf = av_malloc(size);
         if (!buf)
             return;
         dest = buf;
@@ -397,7 +404,7 @@ static void write_picture(AVFormatContext *s, int index, AVPicture *picture,
         return;
     }
     s->format->write_packet(s, index, buf, size, 0);
-    free(buf);
+    av_free(buf);
 }
 
 
@@ -433,7 +440,7 @@ static void do_video_out(AVFormatContext *s,
 
         /* create temporary picture */
         size = avpicture_get_size(dec->pix_fmt, dec->width, dec->height);
-        buf1 = malloc(size);
+        buf1 = av_malloc(size);
         if (!buf1)
             return;
         
@@ -443,7 +450,7 @@ static void do_video_out(AVFormatContext *s,
         if (avpicture_deinterlace(picture2, picture1, 
                                   dec->pix_fmt, dec->width, dec->height) < 0) {
             /* if error, do not deinterlace */
-            free(buf1);
+            av_free(buf1);
             buf1 = NULL;
             picture2 = picture1;
         }
@@ -457,7 +464,7 @@ static void do_video_out(AVFormatContext *s,
 
         /* create temporary picture */
         size = avpicture_get_size(enc->pix_fmt, dec->width, dec->height);
-        buf = malloc(size);
+        buf = av_malloc(size);
         if (!buf)
             return;
         pict = &picture_tmp1;
@@ -507,10 +514,8 @@ static void do_video_out(AVFormatContext *s,
         }
     }
     the_end:
-    if (buf)
-        free(buf);
-    if (buf1)
-        free(buf1);
+    av_free(buf);
+    av_free(buf1);
 }
 
 static void do_video_stats(AVOutputStream *ost, 
@@ -801,7 +806,7 @@ static int av_encode(AVFormatContext **output_files,
                 } else {
                     UINT8 *buf;
                     ost->video_resample = 1;
-                    buf = malloc((codec->width * codec->height * 3) / 2);
+                    buf = av_malloc((codec->width * codec->height * 3) / 2);
                     if (!buf)
                         goto fail;
                     ost->pict_tmp.data[0] = buf;
@@ -1229,31 +1234,28 @@ static int av_encode(AVFormatContext **output_files,
     
     ret = 0;
  fail1:
-    free(file_table);
+    av_free(file_table);
 
     if (ist_table) {
         for(i=0;i<nb_istreams;i++) {
             ist = ist_table[i];
-            if (ist) {
-                free(ist);
-            }
+            av_free(ist);
         }
-        free(ist_table);
+        av_free(ist_table);
     }
     if (ost_table) {
         for(i=0;i<nb_ostreams;i++) {
             ost = ost_table[i];
             if (ost) {
-                if (ost->pict_tmp.data[0])
-                    free(ost->pict_tmp.data[0]);
+                av_free(ost->pict_tmp.data[0]);
                 if (ost->video_resample)
                     img_resample_close(ost->img_resample_ctx);
                 if (ost->audio_resample)
                     audio_resample_close(ost->resample);
-                free(ost);
+                av_free(ost);
             }
         }
-        free(ost_table);
+        av_free(ost_table);
     }
     return ret;
  fail:
@@ -1287,7 +1289,7 @@ void show_licence(void)
 {
     printf(
     "ffmpeg version " FFMPEG_VERSION "\n"
-    "Copyright (c) 2000,2001 Gerard Lantau\n"
+    "Copyright (c) 2000, 2001, 2002 Gerard Lantau\n"
     "This program is free software; you can redistribute it and/or modify\n"
     "it under the terms of the GNU General Public License as published by\n"
     "the Free Software Foundation; either version 2 of the License, or\n"
@@ -1741,8 +1743,7 @@ int get_real_fps(AVFormatContext *ic, AVFormat *fmt, AVFormatParameters *ap, int
     }
 the_end:
     /* FIXME: leak in packet_buffer */
-    if (fc)
-        free(fc);
+    av_free(fc);
     return rfps;
 }
 
@@ -2299,7 +2300,7 @@ void show_help(void)
     
     prog = do_play ? "ffplay" : "ffmpeg";
 
-    printf("%s version " FFMPEG_VERSION ", Copyright (c) 2000, 2001 Gerard Lantau\n", 
+    printf("%s version " FFMPEG_VERSION ", Copyright (c) 2000, 2001, 2002 Gerard Lantau\n", 
            prog);
     
     if (!do_play) {
index 3fc8250..67a402a 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Multiple format streaming server
- * Copyright (c) 2000,2001 Gerard Lantau.
+ * Copyright (c) 2000, 2001, 2002 Gerard Lantau.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -305,7 +305,7 @@ static int http_server(struct sockaddr_in my_addr)
                     av_close_input_file(c->fmt_in);
                 *cp = c->next;
                 nb_bandwidth -= c->bandwidth;
-                free(c);
+                av_free(c);
                 nb_connections--;
             } else {
                 cp = &c->next;
@@ -1074,10 +1074,10 @@ static int http_prepare_data(HTTPContext *c)
         if (fifo_read(&http_fifo, (UINT8 *)&hdr, sizeof(hdr), &c->rptr) < 0)
             return 0;
         payload_size = ntohs(hdr.payload_size);
-        payload = malloc(payload_size);
+        payload = av_malloc(payload_size);
         if (fifo_read(&http_fifo, payload, payload_size, &c->rptr) < 0) {
             /* cannot read all the payload */
-            free(payload);
+            av_free(payload);
             c->rptr = start_rptr;
             return 0;
         }
@@ -1116,7 +1116,7 @@ static int http_prepare_data(HTTPContext *c)
             c->buffer_ptr = c->buffer;
             c->buffer_end = q;
         }
-        free(payload);
+        av_free(payload);
 #endif
         {
             AVPacket pkt;
@@ -1938,7 +1938,7 @@ static void write_packet(FFCodec *ffenc,
 
 void help(void)
 {
-    printf("ffserver version " FFMPEG_VERSION ", Copyright (c) 2000,2001 Gerard Lantau\n"
+    printf("ffserver version " FFMPEG_VERSION ", Copyright (c) 2000, 2001, 2002 Gerard Lantau\n"
            "usage: ffserver [-L] [-h] [-f configfile]\n"
            "Hyper fast multi format Audio/Video streaming server\n"
            "\n"
@@ -1952,7 +1952,7 @@ void licence(void)
 {
     printf(
     "ffserver version " FFMPEG_VERSION "\n"
-    "Copyright (c) 2000,2001 Gerard Lantau\n"
+    "Copyright (c) 2000, 2001, 2002 Gerard Lantau\n"
     "This program is free software; you can redistribute it and/or modify\n"
     "it under the terms of the GNU General Public License as published by\n"
     "the Free Software Foundation; either version 2 of the License, or\n"