Merge commit '87e5d8d78cf08b54b4a9e7cbaeff89f8c1d91b78'
authorHendrik Leppkes <h.leppkes@gmail.com>
Mon, 7 Sep 2015 10:27:21 +0000 (12:27 +0200)
committerHendrik Leppkes <h.leppkes@gmail.com>
Mon, 7 Sep 2015 10:27:21 +0000 (12:27 +0200)
* commit '87e5d8d78cf08b54b4a9e7cbaeff89f8c1d91b78':
  ismindex: Use the correct abs() version

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
1  2 
tools/ismindex.c

diff --combined tools/ismindex.c
@@@ -1,26 -1,26 +1,26 @@@
  /*
   * Copyright (c) 2012 Martin Storsjo
   *
 - * 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
   */
  
  /*
   * To create a simple file for smooth streaming:
 - * avconv <normal input/transcoding options> -movflags frag_keyframe foo.ismv
 + * ffmpeg <normal input/transcoding options> -movflags frag_keyframe foo.ismv
   * ismindex -n foo foo.ismv
   * This step creates foo.ism and foo.ismc that is required by IIS for
   * serving it.
@@@ -47,8 -47,6 +47,8 @@@
  #include <stdio.h>
  #include <string.h>
  
 +#include "cmdutils.h"
 +
  #include "libavformat/avformat.h"
  #include "libavformat/isom.h"
  #include "libavformat/os_support.h"
@@@ -344,9 -342,8 +344,9 @@@ static int read_tfra(struct Tracks *tra
      }
      fieldlength = avio_rb32(f);
      track->chunks  = avio_rb32(f);
 -    track->offsets = av_mallocz(sizeof(*track->offsets) * track->chunks);
 +    track->offsets = av_mallocz_array(track->chunks, sizeof(*track->offsets));
      if (!track->offsets) {
 +        track->chunks = 0;
          ret = AVERROR(ENOMEM);
          goto fail;
      }
      // Now try and read the actual durations from the trun sample data.
      for (i = 0; i < track->chunks; i++) {
          int64_t duration = read_moof_duration(f, track->offsets[i].offset);
-         if (duration > 0 && abs(duration - track->offsets[i].duration) > 3) {
+         if (duration > 0 && llabs(duration - track->offsets[i].duration) > 3) {
              // 3 allows for integer duration to drift a few units,
              // e.g., for 1/3 durations
              track->offsets[i].duration = duration;
@@@ -455,11 -452,10 +455,11 @@@ fail
  
  static int get_private_data(struct Track *track, AVCodecContext *codec)
  {
 -    track->codec_private_size = codec->extradata_size;
 +    track->codec_private_size = 0;
      track->codec_private      = av_mallocz(codec->extradata_size);
      if (!track->codec_private)
          return AVERROR(ENOMEM);
 +    track->codec_private_size = codec->extradata_size;
      memcpy(track->codec_private, codec->extradata, codec->extradata_size);
      return 0;
  }
@@@ -538,9 -534,8 +538,9 @@@ static int handle_file(struct Tracks *t
              err = AVERROR(ENOMEM);
              goto fail;
          }
 -        temp = av_realloc(tracks->tracks,
 -                          sizeof(*tracks->tracks) * (tracks->nb_tracks + 1));
 +        temp = av_realloc_array(tracks->tracks,
 +                                tracks->nb_tracks + 1,
 +                                sizeof(*tracks->tracks));
          if (!temp) {
              av_free(track);
              err = AVERROR(ENOMEM);