Merge commit '57b6704ecd0f56d6a3092e448687cfd837bb0ac1'
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 27 Dec 2014 11:41:10 +0000 (12:41 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 27 Dec 2014 11:41:10 +0000 (12:41 +0100)
* commit '57b6704ecd0f56d6a3092e448687cfd837bb0ac1':
  avcodec: add AVCodecContext.sw_pix_fmt

Conflicts:
doc/APIchanges
libavcodec/avcodec.h
libavcodec/version.h

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

diff --cc doc/APIchanges
index 5b0e1e5824dcb2fc784ca4765d71033ee4747dda,49e43f4e4a50356a6c7a3663b558d28a380a5fce..caa05d13b8199133028187e6afdfc30bdc2d2ae7
@@@ -15,30 -13,19 +15,33 @@@ libavutil:     2014-08-0
  
  API changes, most recent first:
  
 -2014-11-xx - xxxxxxx - lavf 56.06.3 - avformat.h
 -  Add AVFormatContext.avoid_negative_ts.
+ 201x-xx-xx - xxxxxxx - lavc 56.8.0 - avcodec.h
+   Add AVCodecContext.sw_pix_fmt.
 +2014-12-04 - xxxxxxx - lavc 56.14.100 - dv_profile.h
 +  Add av_dv_codec_profile2().
  
 -2014-11-xx - xxxxxxx - lavc 56.6.0 - vorbis_parser.h
 -  Add a public API for parsing vorbis packets.
 +-------- 8< --------- FFmpeg 2.5 was cut here -------- 8< ---------
 +
 +2014-11-21 - ab922f9 - lavu 54.15.100 - dict.h
 +   Add av_dict_get_string().
 +
 +2014-11-18 - a54a51c - lavu 54.14.100 - float_dsp.h
 +  Add avpriv_float_dsp_alloc().
  
 -2014-10-xx - xxxxxxx - lavu 54.5.0 - time.h
 -  Add av_gettime_relative().
 +2014-11-16 - 6690d4c3 - lavf 56.13.100 - avformat.h
 +  Add AVStream.recommended_encoder_configuration with accessors.
 +
 +2014-11-16 - bee5844d - lavu 54.13.100 - opt.h
 +  Add av_opt_serialize().
 +
 +2014-11-16 - eec69332 - lavu 54.12.100 - opt.h
 +  Add av_opt_is_set_to_default().
 +
 +2014-11-06 - 44fa267 / 5e80fb7 - lavc 56.11.100 / 56.6.0 - vorbis_parser.h
 +  Add a public API for parsing vorbis packets.
  
 -2014-10-xx - xxxxxxx - lavc 56.5.0 - avcodec.h
 +2014-10-15 - 17085a0 / 7ea1b34 - lavc 56.7.100 / 56.5.0 - avcodec.h
    Replace AVCodecContext.time_base used for decoding
    with AVCodecContext.framerate.
  
index 4b6b00cd0203280c6f99e376f87902c3c9d59fd8,c998ee41c2988433678b191ea9387ca8ecd8a8a6..527824601e3404091a3b482411abe495303dca73
@@@ -3004,140 -2801,14 +3004,147 @@@ typedef struct AVCodecContext 
       */
      AVRational framerate;
  
+     /**
+      * Nominal unaccelerated pixel format, see AV_PIX_FMT_xxx.
+      * - encoding: unused.
+      * - decoding: Set by libavcodec before calling get_format()
+      */
+     enum AVPixelFormat sw_pix_fmt;
++
 +    /**
 +     * Timebase in which pkt_dts/pts and AVPacket.dts/pts are.
 +     * Code outside libavcodec should access this field using:
 +     * av_codec_{get,set}_pkt_timebase(avctx)
 +     * - encoding unused.
 +     * - decoding set by user.
 +     */
 +    AVRational pkt_timebase;
 +
 +    /**
 +     * AVCodecDescriptor
 +     * Code outside libavcodec should access this field using:
 +     * av_codec_{get,set}_codec_descriptor(avctx)
 +     * - encoding: unused.
 +     * - decoding: set by libavcodec.
 +     */
 +    const AVCodecDescriptor *codec_descriptor;
 +
 +#if !FF_API_LOWRES
 +    /**
 +     * low resolution decoding, 1-> 1/2 size, 2->1/4 size
 +     * - encoding: unused
 +     * - decoding: Set by user.
 +     * Code outside libavcodec should access this field using:
 +     * av_codec_{get,set}_lowres(avctx)
 +     */
 +     int lowres;
 +#endif
 +
 +    /**
 +     * Current statistics for PTS correction.
 +     * - decoding: maintained and used by libavcodec, not intended to be used by user apps
 +     * - encoding: unused
 +     */
 +    int64_t pts_correction_num_faulty_pts; /// Number of incorrect PTS values so far
 +    int64_t pts_correction_num_faulty_dts; /// Number of incorrect DTS values so far
 +    int64_t pts_correction_last_pts;       /// PTS of the last frame
 +    int64_t pts_correction_last_dts;       /// DTS of the last frame
 +
 +    /**
 +     * Character encoding of the input subtitles file.
 +     * - decoding: set by user
 +     * - encoding: unused
 +     */
 +    char *sub_charenc;
 +
 +    /**
 +     * Subtitles character encoding mode. Formats or codecs might be adjusting
 +     * this setting (if they are doing the conversion themselves for instance).
 +     * - decoding: set by libavcodec
 +     * - encoding: unused
 +     */
 +    int sub_charenc_mode;
 +#define FF_SUB_CHARENC_MODE_DO_NOTHING  -1  ///< do nothing (demuxer outputs a stream supposed to be already in UTF-8, or the codec is bitmap for instance)
 +#define FF_SUB_CHARENC_MODE_AUTOMATIC    0  ///< libavcodec will select the mode itself
 +#define FF_SUB_CHARENC_MODE_PRE_DECODER  1  ///< the AVPacket data needs to be recoded to UTF-8 before being fed to the decoder, requires iconv
 +
 +    /**
 +     * Skip processing alpha if supported by codec.
 +     * Note that if the format uses pre-multiplied alpha (common with VP6,
 +     * and recommended due to better video quality/compression)
 +     * the image will look as if alpha-blended onto a black background.
 +     * However for formats that do not use pre-multiplied alpha
 +     * there might be serious artefacts (though e.g. libswscale currently
 +     * assumes pre-multiplied alpha anyway).
 +     * Code outside libavcodec should access this field using AVOptions
 +     *
 +     * - decoding: set by user
 +     * - encoding: unused
 +     */
 +    int skip_alpha;
 +
 +    /**
 +     * Number of samples to skip after a discontinuity
 +     * - decoding: unused
 +     * - encoding: set by libavcodec
 +     */
 +    int seek_preroll;
 +
 +#if !FF_API_DEBUG_MV
 +    /**
 +     * debug motion vectors
 +     * Code outside libavcodec should access this field using AVOptions
 +     * - encoding: Set by user.
 +     * - decoding: Set by user.
 +     */
 +    int debug_mv;
 +#define FF_DEBUG_VIS_MV_P_FOR  0x00000001 //visualize forward predicted MVs of P frames
 +#define FF_DEBUG_VIS_MV_B_FOR  0x00000002 //visualize forward predicted MVs of B frames
 +#define FF_DEBUG_VIS_MV_B_BACK 0x00000004 //visualize backward predicted MVs of B frames
 +#endif
 +
 +    /**
 +     * custom intra quantization matrix
 +     * Code outside libavcodec should access this field using av_codec_g/set_chroma_intra_matrix()
 +     * - encoding: Set by user, can be NULL.
 +     * - decoding: unused.
 +     */
 +    uint16_t *chroma_intra_matrix;
 +
 +    /**
 +     * dump format separator.
 +     * can be ", " or "\n      " or anything else
 +     * Code outside libavcodec should access this field using AVOptions
 +     * (NO direct access).
 +     * - encoding: Set by user.
 +     * - decoding: Set by user.
 +     */
 +    uint8_t *dump_separator;
 +
 +    /**
 +     * ',' separated list of allowed decoders.
 +     * If NULL then all are allowed
 +     * - encoding: unused
 +     * - decoding: set by user through AVOPtions (NO direct access)
 +     */
 +    char *codec_whitelist;
  } AVCodecContext;
  
 +AVRational av_codec_get_pkt_timebase         (const AVCodecContext *avctx);
 +void       av_codec_set_pkt_timebase         (AVCodecContext *avctx, AVRational val);
 +
 +const AVCodecDescriptor *av_codec_get_codec_descriptor(const AVCodecContext *avctx);
 +void                     av_codec_set_codec_descriptor(AVCodecContext *avctx, const AVCodecDescriptor *desc);
 +
 +int  av_codec_get_lowres(const AVCodecContext *avctx);
 +void av_codec_set_lowres(AVCodecContext *avctx, int val);
 +
 +int  av_codec_get_seek_preroll(const AVCodecContext *avctx);
 +void av_codec_set_seek_preroll(AVCodecContext *avctx, int val);
 +
 +uint16_t *av_codec_get_chroma_intra_matrix(const AVCodecContext *avctx);
 +void av_codec_set_chroma_intra_matrix(AVCodecContext *avctx, uint16_t *val);
 +
  /**
   * AVProfile.
   */
index f6d99ab3ddd3798bea570b95d2bb33e465d1a1af,fcc7dde7899fea3ffe5d73c909ae191bd5e90895..1ec5caed82fa68a7d8f5ff335bfe761e90b48e16
@@@ -887,13 -664,14 +887,16 @@@ static int get_buffer_internal(AVCodecC
      ret = ff_decode_frame_props(avctx, frame);
      if (ret < 0)
          return ret;
 +    if ((ret = ff_init_buffer_info(avctx, frame)) < 0)
 +        return ret;
  
-     if (hwaccel && hwaccel->alloc_frame) {
-         ret = hwaccel->alloc_frame(avctx, frame);
-         goto end;
-     }
+     if (hwaccel) {
+         if (hwaccel->alloc_frame) {
+             ret = hwaccel->alloc_frame(avctx, frame);
+             goto end;
+         }
+     } else
+         avctx->sw_pix_fmt = avctx->pix_fmt;
  
  #if FF_API_GET_BUFFER
  FF_DISABLE_DEPRECATION_WARNINGS
index 3124fb537be2cc23e4a1648b102dbbb98ceee427,5d8f9a1b51552f0dc63bb49a579ba53c16bfaab8..d85a2542c7909fa1667f08cf7fab22052a4e4bcd
@@@ -29,8 -29,8 +29,8 @@@
  #include "libavutil/version.h"
  
  #define LIBAVCODEC_VERSION_MAJOR 56
- #define LIBAVCODEC_VERSION_MINOR  16
 -#define LIBAVCODEC_VERSION_MINOR  8
 -#define LIBAVCODEC_VERSION_MICRO  0
++#define LIBAVCODEC_VERSION_MINOR  17
 +#define LIBAVCODEC_VERSION_MICRO 100
  
  #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
                                                 LIBAVCODEC_VERSION_MINOR, \