Merge commit 'b263f8ffe7599d9cd27ec477a12700da8eb2790d'
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 25 Aug 2014 10:27:19 +0000 (12:27 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 25 Aug 2014 11:25:09 +0000 (13:25 +0200)
* commit 'b263f8ffe7599d9cd27ec477a12700da8eb2790d':
  lavf: add AVFormatContext.max_ts_probe

Conflicts:
doc/APIchanges
libavformat/avformat.h
libavformat/utils.c
libavformat/version.h

lavf-fate/mp3 changes as the estimated input bitrate changes and that is
copied to the output

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
doc/APIchanges
libavformat/avformat.h
libavformat/options_table.h
libavformat/utils.c
libavformat/version.h
tests/ref/lavf-fate/mp3

diff --cc doc/APIchanges
@@@ -15,20 -13,9 +15,23 @@@ libavutil:     2014-08-0
  
  API changes, most recent first:
  
+ 2014-08-xx - xxxxxxx - lavf 56.03.0 - avformat.h
+   Add AVFormatContext.max_ts_probe.
 +2014-08-23 - xxxxxxx - lavu 54.7.100 - dict.h
 +  AV_DICT_DONT_STRDUP_KEY and AV_DICT_DONT_STRDUP_VAL arguments are now
 +  freed even on error. This is consistent with the behaviour all users
 +  of it we could find expect.
 +
 +2014-08-21 - 980a5b0 - lavu 54.6.100 - frame.h motion_vector.h
 +  Add AV_FRAME_DATA_MOTION_VECTORS side data and AVMotionVector structure
 +
 +2014-08-16 - xxxxxxx - lswr 1.1.100 - swresample.h
 +  Add AVFrame based API
 +
 +2014-xx-xx - xxxxxxx - lavu 54.4.100 - dict.h
 +  Add av_dict_set_int helper function.
 +
  2014-08-13 - 8ddc326 - lavu 54.03.0 - mem.h
    Add av_strndup().
  
@@@ -1454,115 -1192,12 +1454,121 @@@ typedef struct AVFormatContext 
      int event_flags;
  #define AVFMT_EVENT_FLAG_METADATA_UPDATED 0x0001 ///< The call resulted in updated metadata.
  
+     /**
+      * Maximum number of packets to read while waiting for the first timestamp.
+      * Decoding only.
+      */
+     int max_ts_probe;
 +
 +    /**
 +     * 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;
 +
 +    /**
 +     * forces the use of wallclock timestamps as pts/dts of packets
 +     * This has undefined results in the presence of B frames.
 +     * - encoding: unused
 +     * - decoding: Set by user via AVOptions (NO direct access)
 +     */
 +    int use_wallclock_as_timestamps;
 +
 +    /**
 +     * Avoid negative timestamps during muxing.
 +     *  0 -> allow negative timestamps
 +     *  1 -> avoid negative timestamps
 +     * -1 -> choose automatically (default)
 +     * Note, this only works when interleave_packet_per_dts is in use.
 +     * - encoding: Set by user via AVOptions (NO direct access)
 +     * - decoding: unused
 +     */
 +    int avoid_negative_ts;
 +
 +    /**
 +     * avio flags, used to force AVIO_FLAG_DIRECT.
 +     * - encoding: unused
 +     * - decoding: Set by user via AVOptions (NO direct access)
 +     */
 +    int avio_flags;
 +
 +    /**
 +     * The duration field can be estimated through various ways, and this field can be used
 +     * to know how the duration was estimated.
 +     * - encoding: unused
 +     * - decoding: Read by user via AVOptions (NO direct access)
 +     */
 +    enum AVDurationEstimationMethod duration_estimation_method;
 +
 +    /**
 +     * Skip initial bytes when opening stream
 +     * - encoding: unused
 +     * - decoding: Set by user via AVOptions (NO direct access)
 +     */
 +    int64_t skip_initial_bytes;
 +
 +    /**
 +     * Correct single timestamp overflows
 +     * - encoding: unused
 +     * - decoding: Set by user via AVOptions (NO direct access)
 +     */
 +    unsigned int correct_ts_overflow;
 +
 +    /**
 +     * Force seeking to any (also non key) frames.
 +     * - encoding: unused
 +     * - decoding: Set by user via AVOptions (NO direct access)
 +     */
 +    int seek2any;
 +
 +    /**
 +     * Flush the I/O context after each packet.
 +     * - encoding: Set by user via AVOptions (NO direct access)
 +     * - decoding: unused
 +     */
 +    int flush_packets;
 +
 +    /**
 +     * format probing score.
 +     * The maximal score is AVPROBE_SCORE_MAX, its set when the demuxer probes
 +     * the format.
 +     * - encoding: unused
 +     * - decoding: set by avformat, read by user via av_format_get_probe_score() (NO direct access)
 +     */
 +    int probe_score;
 +
 +    /**
 +     * number of bytes to read maximally to identify format.
 +     * - encoding: unused
 +     * - decoding: set by user through AVOPtions (NO direct access)
 +     */
 +    int format_probesize;
 +
      /*****************************************************************
       * 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
@@@ -3063,7 -2108,7 +3063,8 @@@ int avformat_find_stream_info(AVFormatC
                  !st->codec->extradata)
                  break;
              if (st->first_dts == AV_NOPTS_VALUE &&
 +                !(ic->iformat->flags & AVFMT_NOTIMESTAMPS) &&
+                 st->codec_info_nb_frames < ic->max_ts_probe &&
                  (st->codec->codec_type == AVMEDIA_TYPE_VIDEO ||
                   st->codec->codec_type == AVMEDIA_TYPE_AUDIO))
                  break;
@@@ -30,8 -30,8 +30,8 @@@
  #include "libavutil/version.h"
  
  #define LIBAVFORMAT_VERSION_MAJOR 56
- #define LIBAVFORMAT_VERSION_MINOR  2
+ #define LIBAVFORMAT_VERSION_MINOR  3
 -#define LIBAVFORMAT_VERSION_MICRO  0
 +#define LIBAVFORMAT_VERSION_MICRO 100
  
  #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
                                                 LIBAVFORMAT_VERSION_MINOR, \
index 6f201e0,0000000..ec66652
mode 100644,000000..100644
--- /dev/null
@@@ -1,3 -1,0 +1,3 @@@
- 6bdea919dc6856d76ef2553698e2b0d3 *./tests/data/lavf-fate/lavf.mp3
- 96376 ./tests/data/lavf-fate/lavf.mp3
++8facd3cc6158b611cb312920a426cbd7 *./tests/data/lavf-fate/lavf.mp3
++96016 ./tests/data/lavf-fate/lavf.mp3
 +./tests/data/lavf-fate/lavf.mp3 CRC=0x6c9850fe