]> git.sesse.net Git - ffmpeg/commitdiff
avformat/brstm: remove custom allocation of table to hold coeffs
authorPaul B Mahol <onemda@gmail.com>
Sat, 12 Sep 2020 12:49:15 +0000 (14:49 +0200)
committerPaul B Mahol <onemda@gmail.com>
Sat, 12 Sep 2020 12:52:31 +0000 (14:52 +0200)
libavformat/brstm.c

index c4230a63bf385974672449b73a230a713c1783e9..6754c1712e2bca9a2cf8fc488a707732d4c4207a 100644 (file)
@@ -38,7 +38,7 @@ typedef struct BRSTMDemuxContext {
     uint32_t    last_block_size;
     uint32_t    last_block_samples;
     uint32_t    data_start;
-    uint8_t     *table;
+    uint8_t     table[256 * 32];
     uint8_t     *adpc;
     BRSTMCoeffOffset offsets[256];
     int         little_endian;
@@ -67,7 +67,6 @@ static int read_close(AVFormatContext *s)
 {
     BRSTMDemuxContext *b = s->priv_data;
 
-    av_freep(&b->table);
     av_freep(&b->adpc);
 
     return 0;
@@ -284,9 +283,6 @@ static int read_header(AVFormatContext *s)
         }
 
         avio_skip(s->pb, pos + toffset - avio_tell(s->pb));
-        b->table = av_mallocz(32 * st->codecpar->channels);
-        if (!b->table)
-            return AVERROR(ENOMEM);
 
         for (ch = 0; ch < st->codecpar->channels; ch++) {
             if (!bfstm)
@@ -422,11 +418,6 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
             av_log(s, AV_LOG_ERROR, "adpcm_thp requires ADPC chunk, but none was found.\n");
             return AVERROR_INVALIDDATA;
         }
-        if (!b->table) {
-            b->table = av_mallocz(32 * par->channels);
-            if (!b->table)
-                return AVERROR(ENOMEM);
-        }
 
         if (size > (INT_MAX - 32 - 4) ||
             (32 + 4 + size) > (INT_MAX / par->channels) ||