Merge remote-tracking branch 'qatar/master'
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 28 Feb 2012 23:30:35 +0000 (00:30 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 28 Feb 2012 23:30:35 +0000 (00:30 +0100)
* qatar/master:
  adpcm: Clip step_index values read from the bitstream at the beginning of each frame.
  oma: don't read beyond end of leaf_table.
  doxygen: Remove documentation for non-existing parameters; misc small fixes.
  Indeo3: fix crashes on corrupt bitstreams.
  msmpeg4: Replace forward declaration by proper #include.
  segment: implement wrap around
  avf: reorder AVStream and AVFormatContext
  aacdec: Remove erroneous reference to global gain from the out of bounds scalefactor error message.

Conflicts:
libavcodec/indeo3.c
libavformat/avformat.h
libavutil/avutil.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
12 files changed:
1  2 
doc/muxers.texi
libavcodec/aacdec.c
libavcodec/adpcm.c
libavcodec/indeo3.c
libavcodec/msmpeg4.c
libavcodec/wmaprodec.c
libavcodec/wmavoice.c
libavdevice/x11grab.c
libavformat/avformat.h
libavformat/mpegts.h
libavformat/rl2.c
libavutil/avutil.h

diff --cc doc/muxers.texi
Simple merge
Simple merge
Simple merge
@@@ -735,9 -734,11 +737,11 @@@ static int parse_bintree(Indeo3DecodeCo
              SPLIT_CELL(ref_cell->width, curr_cell.width);
          ref_cell->xpos  += curr_cell.width;
          ref_cell->width -= curr_cell.width;
+         if (ref_cell->width <= 0 || curr_cell.width <= 0)
+             return AVERROR_INVALIDDATA;
      }
  
 -    while (1) { /* loop until return */
 +    while (get_bits_left(&ctx->gb) >= 2) { /* loop until return */
          RESYNC_BITSTREAM;
          switch (code = get_bits(&ctx->gb, 2)) {
          case H_SPLIT:
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -577,10 -566,9 +577,9 @@@ typedef struct AVStream 
       * encoding: set by libavformat in av_write_header
       */
      AVRational time_base;
-     enum AVDiscard discard; ///< Selects which packets can be discarded at will and do not need to be demuxed.
  
      /**
 -     * Decoding: pts of the first frame of the stream, in stream time base.
 +     * Decoding: pts of the first frame of the stream in presentation order, in stream time base.
       * Only set this if you are absolutely 100% sure that the value you set
       * it to really is the pts of the first frame.
       * This may be undefined (AV_NOPTS_VALUE).
      int probe_packets;
  
      /**
+      * Number of frames that have been demuxed during av_find_stream_info()
+      */
+     int codec_info_nb_frames;
++    /**
++     * Stream Identifier
++     * This is the MPEG-TS stream identifier +1
++     * 0 means unknown
++     */
++    int stream_identifier;
++
++    int64_t interleaver_chunk_size;
++    int64_t interleaver_chunk_duration;
++
+     /* av_read_frame() support */
+     enum AVStreamParseType need_parsing;
+     struct AVCodecParserContext *parser;
+     /**
       * last packet in packet_buffer for this stream when muxing.
       */
      struct AVPacketList *last_in_packet_buffer;
                                      support seeking natively. */
      int nb_index_entries;
      unsigned int index_entries_allocated_size;
-     int pts_wrap_bits; /**< number of bits in pts (used for wrapping control) */
 +
 +    /**
 +     * flag to indicate that probing is requested
 +     * NOT PART OF PUBLIC API
 +     */
 +    int request_probe;
  } AVStream;
  
  #define AV_PROGRAM_RUNNING 1
@@@ -925,35 -886,10 +923,41 @@@ typedef struct AVFormatContext 
      AVIOInterruptCB interrupt_callback;
  
      /**
+      * Flags to enable debugging.
+      */
+     int debug;
+ #define FF_FDEBUG_TS        0x0001
++
++    /**
 +     * Transport stream id.
 +     * This will be moved into demuxer private options. Thus no API/ABI compatibility
 +     */
 +    int ts_id;
 +
 +    /**
 +     * Audio preload in microseconds.
 +     * Note, not all formats support this and unpredictable things may happen if it is used when not supported.
 +     * - encoding: Set by user via AVOptions (NO direct access)
 +     * - decoding: unused
 +     */
 +    int audio_preload;
 +
 +    /**
 +     * Max chunk time in microseconds.
 +     * Note, not all formats support this and unpredictable things may happen if it is used when not supported.
 +     * - encoding: Set by user via AVOptions (NO direct access)
 +     * - decoding: unused
 +     */
 +    int max_chunk_duration;
 +
 +    /**
 +     * Max chunk size in bytes
 +     * Note, not all formats support this and unpredictable things may happen if it is used when not supported.
 +     * - encoding: Set by user via AVOptions (NO direct access)
 +     * - decoding: unused
 +     */
 +    int max_chunk_size;
 +
      /*****************************************************************
       * All fields below this line are not part of the public API. They
       * may not be used outside of libavformat and can be changed and
Simple merge
Simple merge
   *
   * @section libav_intro Introduction
   *
-  * This document describe the usage of the different libraries
+  * This document describes the usage of the different libraries
 - * provided by Libav.
 + * provided by FFmpeg.
   *
   * @li @ref libavc "libavcodec" encoding/decoding library
   * @li @subpage libavfilter graph based frame editing library
   * @li @ref libavf "libavformat" I/O and muxing/demuxing library
   * @li @ref lavd "libavdevice" special devices muxing/demuxing library
   * @li @ref lavu "libavutil" common utility library
 + * @li @subpage libpostproc post processing library
   * @li @subpage libswscale  color conversion and scaling library
-  *
   */
  
  /**