Merge remote-tracking branch 'qatar/release/0.7' into release/0.8
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 20 Nov 2011 02:27:50 +0000 (03:27 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 20 Nov 2011 02:27:50 +0000 (03:27 +0100)
* qatar/release/0.7:
  Add a version bump and APIchanges entry for avcodec_open2 and avformat_find_stream_info.
  lavf: fix multiplication overflow in avformat_find_stream_info()
  lavf: fix invalid reads in avformat_find_stream_info()
  lavf: add avformat_find_stream_info()
  lavc: fix parentheses placement in avcodec_open2().
  lavc: introduce avcodec_open2() as a replacement for avcodec_open().

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

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
doc/APIchanges
libavcodec/avcodec.h
libavcodec/mpegvideo_enc.c
libavcodec/utils.c
libavcodec/version.h
libavformat/avformat.h
libavformat/utils.c
libavformat/version.h

diff --cc doc/APIchanges
@@@ -13,36 -13,12 +13,43 @@@ libavutil:   2011-04-1
  
  API changes, most recent first:
  
++
 +2011-06-19 - xxxxxxx - lavfi 2.23.0 - avfilter.h
 +  Add layout negotiation fields and helper functions.
 +
 +  In particular, add in_chlayouts and out_chlayouts to AVFilterLink,
 +  and the functions:
 +  avfilter_set_common_sample_formats()
 +  avfilter_set_common_channel_layouts()
 +  avfilter_all_channel_layouts()
 +
 +2011-06-19 - xxxxxxx - lavfi 2.22.0 - AVFilterFormats
 +  Change type of AVFilterFormats.formats from int * to int64_t *,
 +  and update formats handling API accordingly.
 +
 +  avfilter_make_format_list() still takes a int32_t array and converts
 +  it to int64_t. A new function, avfilter_make_format64_list(), that
 +  takes int64_t arrays has been added.
 +
 +2011-06-19 - xxxxxxx - lavfi 2.21.0 - vsink_buffer.h
 +  Add video sink buffer and vsink_buffer.h public header.
 +
 +2011-06-12 - xxxxxxx - lavfi 2.18.0 - avcodec.h
 +  Add avfilter_get_video_buffer_ref_from_frame() function in
 +  libavfilter/avcodec.h.
 +
 +2011-06-12 - xxxxxxx - lavfi 2.17.0 - avfiltergraph.h
 +  Add avfilter_inout_alloc() and avfilter_inout_free() functions.
 +
 +2011-06-12 - xxxxxxx - lavfi 2.16.0 - avfilter_graph_parse()
 +  Change avfilter_graph_parse() signature.
 +
+ 2011-07-10 - xxxxxxx - lavf 53.3.0
+   Add avformat_find_stream_info(), deprecate av_find_stream_info().
+ 2011-07-10 - xxxxxxx - lavc 53.6.0
+   Add avcodec_open2(), deprecate avcodec_open().
  2011-06-xx - xxxxxxx - lavf 53.2.0 - avformat.h
    Add avformat_open_input and avformat_write_header().
    Deprecate av_open_input_stream, av_open_input_file,
@@@ -3709,8 -3643,45 +3711,44 @@@ int avcodec_default_execute2(AVCodecCon
   * @param codec The codec to use within the context.
   * @return zero on success, a negative value on error
   * @see avcodec_alloc_context, avcodec_find_decoder, avcodec_find_encoder, avcodec_close
+  *
+  * @deprecated use avcodec_open2
   */
 -attribute_deprecated
  int avcodec_open(AVCodecContext *avctx, AVCodec *codec);
+ #endif
+ /**
+  * Initialize the AVCodecContext to use the given AVCodec. Prior to using this
+  * function the context has to be allocated with avcodec_alloc_context().
+  *
+  * The functions avcodec_find_decoder_by_name(), avcodec_find_encoder_by_name(),
+  * avcodec_find_decoder() and avcodec_find_encoder() provide an easy way for
+  * retrieving a codec.
+  *
+  * @warning This function is not thread safe!
+  *
+  * @code
+  * avcodec_register_all();
+  * av_dict_set(&opts, "b", "2.5M", 0);
+  * codec = avcodec_find_decoder(CODEC_ID_H264);
+  * if (!codec)
+  *     exit(1);
+  *
+  * context = avcodec_alloc_context();
+  *
+  * if (avcodec_open(context, codec, opts) < 0)
+  *     exit(1);
+  * @endcode
+  *
+  * @param avctx The context to initialize.
+  * @param options A dictionary filled with AVCodecContext and codec-private options.
+  *                On return this object will be filled with options that were not found.
+  *
+  * @return zero on success, a negative value on error
+  * @see avcodec_alloc_context3(), avcodec_find_decoder(), avcodec_find_encoder(),
+  *      av_dict_set(), av_opt_find().
+  */
+ int avcodec_open2(AVCodecContext *avctx, AVCodec *codec, AVDictionary **options);
  
  /**
   * Decode the audio frame of size avpkt->size from avpkt->data into samples.
Simple merge
@@@ -479,15 -468,20 +480,26 @@@ AVFrame *avcodec_alloc_frame(void)
      return pic;
  }
  
 +static void avcodec_get_subtitle_defaults(AVSubtitle *sub)
 +{
 +    memset(sub, 0, sizeof(*sub));
 +    sub->pts = AV_NOPTS_VALUE;
 +}
 +
+ #if FF_API_AVCODEC_OPEN
  int attribute_align_arg avcodec_open(AVCodecContext *avctx, AVCodec *codec)
  {
+     return avcodec_open2(avctx, codec, NULL);
+ }
+ #endif
+ int attribute_align_arg avcodec_open2(AVCodecContext *avctx, AVCodec *codec, AVDictionary **options)
+ {
      int ret = 0;
+     AVDictionary *tmp = NULL;
+     if (options)
+         av_dict_copy(&tmp, *options, 0);
  
      /* If there is a user-supplied mutex locking routine, call it. */
      if (ff_lockmgr_cb) {
@@@ -21,7 -21,7 +21,7 @@@
  #define AVCODEC_VERSION_H
  
  #define LIBAVCODEC_VERSION_MAJOR 53
- #define LIBAVCODEC_VERSION_MINOR  7
 -#define LIBAVCODEC_VERSION_MINOR  6
++#define LIBAVCODEC_VERSION_MINOR  8
  #define LIBAVCODEC_VERSION_MICRO  0
  
  #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
@@@ -1123,35 -1081,7 +1123,36 @@@ int av_demuxer_open(AVFormatContext *ic
   */
  AVFormatContext *avformat_alloc_context(void);
  
 +#if FF_API_ALLOC_OUTPUT_CONTEXT
 +/**
 + * @deprecated deprecated in favor of avformat_alloc_output_context2()
 + */
 +attribute_deprecated
 +AVFormatContext *avformat_alloc_output_context(const char *format,
 +                                               AVOutputFormat *oformat,
 +                                               const char *filename);
 +#endif
 +
 +/**
 + * Allocate an AVFormatContext for an output format.
 + * avformat_free_context() can be used to free the context and
 + * everything allocated by the framework within it.
 + *
 + * @param *ctx is set to the created format context, or to NULL in
 + * case of failure
 + * @param oformat format to use for allocating the context, if NULL
 + * format_name and filename are used instead
 + * @param format_name the name of output format to use for allocating the
 + * context, if NULL filename is used instead
 + * @param filename the name of the filename to use for allocating the
 + * context, may be NULL
 + * @return >= 0 in case of success, a negative AVERROR code in case of
 + * failure
 + */
 +int avformat_alloc_output_context2(AVFormatContext **ctx, AVOutputFormat *oformat,
 +                                   const char *format_name, const char *filename);
 +
+ #if FF_API_FORMAT_PARAMETERS
  /**
   * Read packets of a media file to get stream information. This
   * is useful for file formats with no headers such as MPEG. This
Simple merge
@@@ -24,7 -24,7 +24,7 @@@
  #include "libavutil/avutil.h"
  
  #define LIBAVFORMAT_VERSION_MAJOR 53
- #define LIBAVFORMAT_VERSION_MINOR  4
 -#define LIBAVFORMAT_VERSION_MINOR  3
++#define LIBAVFORMAT_VERSION_MINOR  5
  #define LIBAVFORMAT_VERSION_MICRO  0
  
  #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \