Merge commit '979f77b0dc40571761999633a38d97be9a1670c8' into release/0.10
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 10 Mar 2014 17:14:20 +0000 (18:14 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 10 Mar 2014 17:14:20 +0000 (18:14 +0100)
* commit '979f77b0dc40571761999633a38d97be9a1670c8':
  h264: check that an IDR NAL only contains I slices
  mov: Free an earlier allocated array if allocating a new one
  segafilm: fix leaks if reading the header fails
  h264_cavlc: check the size of the intra PCM data.
  cavs: Check for negative cbp
  avi: DV in AVI must be considered single stream
  avutil: use align == 0 for default alignment in audio sample buffer functions

Conflicts:
libavcodec/cavsdec.c
libavutil/avutil.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/cavsdec.c
libavcodec/h264.c
libavcodec/h264_cavlc.c
libavformat/avidec.c
libavformat/mov.c
libavformat/segafilm.c
libavutil/samplefmt.c
libavutil/samplefmt.h

Simple merge
Simple merge
Simple merge
@@@ -1391,15 -1283,20 +1391,20 @@@ static int avi_read_seek(AVFormatContex
      AVIContext *avi = s->priv_data;
      AVStream *st;
      int i, index;
 -    int64_t pos;
 +    int64_t pos, pos_min;
      AVIStream *ast;
  
+     /* Does not matter which stream is requested dv in avi has the
+      * stream information in the first video stream.
+      */
+     if (avi->dv_demux)
+         stream_index = 0;
      if (!avi->index_loaded) {
          /* we only load the index on demand */
          avi_load_index(s);
 -        avi->index_loaded = 1;
 +        avi->index_loaded |= 1;
      }
-     assert(stream_index>= 0);
  
      st = s->streams[stream_index];
      ast= st->priv_data;
          /* One and only one real stream for DV in AVI, and it has video  */
          /* offsets. Calling with other stream indexes should have failed */
          /* the av_index_search_timestamp call above.                     */
-         assert(stream_index == 0);
  
 +        if(avio_seek(s->pb, pos, SEEK_SET) < 0)
 +            return -1;
 +
          /* Feed the DV video stream version of the timestamp to the */
          /* DV demux so it can synthesize correct timestamps.        */
          dv_offset_reset(avi->dv_demux, timestamp);
@@@ -1691,9 -1625,12 +1691,10 @@@ static int mov_read_stts(MOVContext *c
      av_dlog(c->fc, "track[%i].stts.entries = %i\n",
              c->fc->nb_streams-1, entries);
  
 -    if (!entries)
 -        return 0;
      if (entries >= UINT_MAX / sizeof(*sc->stts_data))
 -        return AVERROR(EINVAL);
 +        return -1;
  
+     av_free(sc->stts_data);
      sc->stts_data = av_malloc(entries * sizeof(*sc->stts_data));
      if (!sc->stts_data)
          return AVERROR(ENOMEM);
Simple merge
Simple merge
Simple merge