Merge commit 'e3e158e81f0666b8fe66be9ce1cad63a535920e0'
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 6 Oct 2014 13:04:03 +0000 (15:04 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 6 Oct 2014 13:04:03 +0000 (15:04 +0200)
* commit 'e3e158e81f0666b8fe66be9ce1cad63a535920e0':
  vdpau: add av_vdpau_bind_context()

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

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

diff --cc doc/APIchanges
@@@ -15,49 -13,20 +15,53 @@@ libavutil:     2014-08-0
  
  API changes, most recent first:
  
 -2014-08-xx - xxxxxxx - lavc 56.1.0 - avcodec.h
+ 2014-09-xx - xxxxxxx - lavc 56.2.0 - vdpau.h
+   Add av_vdpau_bind_context(). This function should now be used for creating
+   (or resetting) a AVVDPAUContext instead of av_vdpau_alloc_context().
 +2014-10-02 - xxxxxxx - lavc 56.2.100 - avcodec.h
 +2014-10-02 - xxxxxxx - lavu 54.9.100 - frame.h
 +  Add AV_FRAME_DATA_SKIP_SAMPLES. Add lavc CODEC_FLAG2_SKIP_MANUAL and
 +  AVOption "skip_manual", which makes lavc export skip information via
 +  AV_FRAME_DATA_SKIP_SAMPLES AVFrame side data, instead of skipping and
 +  discarding samples automatically.
 +
 +2014-10-02 - xxxxxxx - lavu 54.8.100 - avstring.h
 +  Add av_match_list()
 +
 +2014-09-24 - xxxxxxx - libpostproc 53.1.100
 +  Add visualization support
 +
 +2014-09-xx - xxxxxxx - lavc 56.1.101 - dv_profile.h
 +  deprecate avpriv_dv_frame_profile2(), which was made public by accident.
 +
 +
 +-------- 8< --------- FFmpeg 2.4 was cut here -------- 8< ---------
 +
 +2014-08-28 - f30a815 / 9301486 - lavc 56.1.100 / 56.1.0 - avcodec.h
    Add AV_PKT_DATA_STEREO3D to export container-level stereo3d information.
  
 -2014-08-xx - xxxxxxx - lavf 56.03.0 - avformat.h
 +2014-08-25 - 215db29 / b263f8f - lavf 56.3.100 / 56.3.0 - avformat.h
    Add AVFormatContext.max_ts_probe.
  
 -2014-08-13 - 8ddc326 - lavu 54.03.0 - mem.h
 +2014-08-23 - 8fc9bd0 - 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 - b7d5e01 - lswr 1.1.100 - swresample.h
 +  Add AVFrame based API
 +
 +2014-08-16 - c2829dc - lavu 54.4.100 - dict.h
 +  Add av_dict_set_int helper function.
 +
 +2014-08-13 - c8571c6 / 8ddc326 - lavu 54.3.100 / 54.3.0 - mem.h
    Add av_strndup().
  
 -2014-08-13 - a8c104a - lavu 54.02.0 - opt.h
 +2014-08-13 - 2ba4577 / a8c104a - lavu 54.2.100 / 54.2.0 - opt.h
    Add av_opt_get_dict_val/set_dict_val with AV_OPT_TYPE_DICT to support
    dictionary types being set as options.
  
@@@ -85,13 -78,8 +85,14 @@@ int ff_vdpau_common_init(AVCodecContex
  
      vdctx->width            = UINT32_MAX;
      vdctx->height           = UINT32_MAX;
+     hwctx->reset            = 0;
  
 +    if (!hwctx) {
 +        vdctx->device  = VDP_INVALID_HANDLE;
 +        av_log(avctx, AV_LOG_WARNING, "hwaccel_context has not been setup by the user application, cannot initialize\n");
 +        return 0;
 +    }
 +
      if (hwctx->context.decoder != VDP_INVALID_HANDLE) {
          vdctx->decoder = hwctx->context.decoder;
          vdctx->render  = hwctx->context.render;
@@@ -140,16 -131,26 +140,36 @@@ typedef struct AVVDPAUContext 
  } AVVDPAUContext;
  
  /**
 + * @brief allocation function for AVVDPAUContext
 + *
 + * Allows extending the struct without breaking API/ABI
 + */
 +AVVDPAUContext *av_alloc_vdpaucontext(void);
 +
 +AVVDPAU_Render2 av_vdpau_hwaccel_get_render2(const AVVDPAUContext *);
 +void av_vdpau_hwaccel_set_render2(AVVDPAUContext *, AVVDPAU_Render2);
 +
 +/**
+  * Associate a VDPAU device with a codec context for hardware acceleration.
+  * This function is meant to be called from the get_format() codec callback,
+  * or earlier. It can also be called after avcodec_flush_buffers() to change
+  * the underlying VDPAU device mid-stream (e.g. to recover from non-transparent
+  * display preemption).
+  *
+  * @note get_format() must return AV_PIX_FMT_VDPAU if this function completes
+  * succesfully.
+  *
+  * @param avctx decoding context whose get_format() callback is invoked
+  * @param device VDPAU device handle to use for hardware acceleration
+  * @param get_proc_address VDPAU device driver
+  * @param flags for future use, must be zero
+  *
+  * @return 0 on success, an AVERROR code on failure.
+  */
+ int av_vdpau_bind_context(AVCodecContext *avctx, VdpDevice device,
+                           VdpGetProcAddress *get_proc_address, unsigned flags);
+ /**
   * Allocate an AVVDPAUContext.
   *
   * @return Newly-allocated AVVDPAUContext or NULL on failure.
Simple merge
@@@ -29,8 -29,8 +29,8 @@@
  #include "libavutil/version.h"
  
  #define LIBAVCODEC_VERSION_MAJOR 56
--#define LIBAVCODEC_VERSION_MINOR  2
- #define LIBAVCODEC_VERSION_MICRO 101
 -#define LIBAVCODEC_VERSION_MICRO  0
++#define LIBAVCODEC_VERSION_MINOR  3
++#define LIBAVCODEC_VERSION_MICRO 100
  
  #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
                                                 LIBAVCODEC_VERSION_MINOR, \