Merge commit '0456e684394dc5a7b98ab9ebb48396d743bf3730'
authorClément Bœsch <u@pkh.me>
Fri, 24 Mar 2017 12:17:55 +0000 (13:17 +0100)
committerClément Bœsch <u@pkh.me>
Fri, 24 Mar 2017 12:17:55 +0000 (13:17 +0100)
* commit '0456e684394dc5a7b98ab9ebb48396d743bf3730':
  audio_fifo: Drop write-only variable

Merged-by: Clément Bœsch <u@pkh.me>
1  2 
libavutil/audio_fifo.c

diff --combined libavutil/audio_fifo.c
index de187104e6efda134e789f8de9612274907bda9b,e9244be02b83a03b9307b90594062db5f5e74f8b..1bf75ced54bf17bb07b3fcd97aa18e6b27626deb
@@@ -2,20 -2,20 +2,20 @@@
   * Audio FIFO
   * Copyright (c) 2012 Justin Ruggles <justin.ruggles@gmail.com>
   *
 - * This file is part of Libav.
 + * This file is part of FFmpeg.
   *
 - * Libav is free software; you can redistribute it and/or
 + * FFmpeg is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Lesser General Public
   * License as published by the Free Software Foundation; either
   * version 2.1 of the License, or (at your option) any later version.
   *
 - * Libav is distributed in the hope that it will be useful,
 + * FFmpeg 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 GNU
   * Lesser General Public License for more details.
   *
   * You should have received a copy of the GNU Lesser General Public
 - * License along with Libav; if not, write to the Free Software
 + * License along with FFmpeg; if not, write to the Free Software
   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
   */
  
@@@ -48,9 -48,10 +48,9 @@@ void av_audio_fifo_free(AVAudioFifo *af
          if (af->buf) {
              int i;
              for (i = 0; i < af->nb_buffers; i++) {
 -                if (af->buf[i])
 -                    av_fifo_free(af->buf[i]);
 +                av_fifo_freep(&af->buf[i]);
              }
 -            av_free(af->buf);
 +            av_freep(&af->buf);
          }
          av_free(af);
      }
@@@ -75,7 -76,7 +75,7 @@@ AVAudioFifo *av_audio_fifo_alloc(enum A
      af->sample_size = buf_size / nb_samples;
      af->nb_buffers  = av_sample_fmt_is_planar(sample_fmt) ? channels : 1;
  
 -    af->buf = av_mallocz(af->nb_buffers * sizeof(*af->buf));
 +    af->buf = av_mallocz_array(af->nb_buffers, sizeof(*af->buf));
      if (!af->buf)
          goto error;
  
@@@ -135,52 -136,9 +135,52 @@@ int av_audio_fifo_write(AVAudioFifo *af
      return nb_samples;
  }
  
 +int av_audio_fifo_peek(AVAudioFifo *af, void **data, int nb_samples)
 +{
 +    int i, ret, size;
 +
 +    if (nb_samples < 0)
 +        return AVERROR(EINVAL);
 +    nb_samples = FFMIN(nb_samples, af->nb_samples);
 +    if (!nb_samples)
 +        return 0;
 +
 +    size = nb_samples * af->sample_size;
 +    for (i = 0; i < af->nb_buffers; i++) {
 +        if ((ret = av_fifo_generic_peek(af->buf[i], data[i], size, NULL)) < 0)
 +            return AVERROR_BUG;
 +    }
 +
 +    return nb_samples;
 +}
 +
 +int av_audio_fifo_peek_at(AVAudioFifo *af, void **data, int nb_samples, int offset)
 +{
 +    int i, ret, size;
 +
 +    if (offset < 0 || offset >= af->nb_samples)
 +        return AVERROR(EINVAL);
 +    if (nb_samples < 0)
 +        return AVERROR(EINVAL);
 +    nb_samples = FFMIN(nb_samples, af->nb_samples);
 +    if (!nb_samples)
 +        return 0;
 +    if (offset > af->nb_samples - nb_samples)
 +        return AVERROR(EINVAL);
 +
 +    offset *= af->sample_size;
 +    size = nb_samples * af->sample_size;
 +    for (i = 0; i < af->nb_buffers; i++) {
 +        if ((ret = av_fifo_generic_peek_at(af->buf[i], data[i], offset, size, NULL)) < 0)
 +            return AVERROR_BUG;
 +    }
 +
 +    return nb_samples;
 +}
 +
  int av_audio_fifo_read(AVAudioFifo *af, void **data, int nb_samples)
  {
-     int i, ret, size;
+     int i, size;
  
      if (nb_samples < 0)
          return AVERROR(EINVAL);
  
      size = nb_samples * af->sample_size;
      for (i = 0; i < af->nb_buffers; i++) {
-         if ((ret = av_fifo_generic_read(af->buf[i], data[i], size, NULL)) < 0)
+         if (av_fifo_generic_read(af->buf[i], data[i], size, NULL) < 0)
              return AVERROR_BUG;
      }
      af->nb_samples -= nb_samples;