vdpau: add a constructor for AVVDPAUContext.
authorAnton Khirnov <anton@khirnov.net>
Sat, 2 Nov 2013 21:01:14 +0000 (22:01 +0100)
committerAnton Khirnov <anton@khirnov.net>
Thu, 14 Nov 2013 08:38:58 +0000 (09:38 +0100)
We will likely want to add new fields to it in the future, so this is
needed to avoid breaking ABI.

doc/APIchanges
libavcodec/vdpau.c
libavcodec/vdpau.h

index e00a241..e791443 100644 (file)
@@ -15,6 +15,8 @@ API changes, most recent first:
 
 2013-11-xx - xxxxxxx - lavc 55.26.0 - vdpau.h
   Add av_vdpau_get_profile().
+  Add av_vdpau_alloc_context(). This function must from now on be
+  used for allocating AVVDPAUContext.
 
 2013-11-xx - xxxxxxx - lavc 55.25.0 - avcodec.h
   Add ITU-R BT.2020 and other not yet included values to color primaries,
index cc0bcff..d8a35ee 100644 (file)
@@ -133,4 +133,9 @@ do {                        \
     return AVERROR(EINVAL);
 }
 
+AVVDPAUContext *av_vdpau_alloc_context(void)
+{
+    return av_mallocz(sizeof(AVVDPAUContext));
+}
+
 /* @}*/
index bf8c8e8..75cb1bf 100644 (file)
@@ -74,6 +74,10 @@ union AVVDPAUPictureInfo {
  * during initialization or through each AVCodecContext.get_buffer()
  * function call. In any case, they must be valid prior to calling
  * decoding functions.
+ *
+ * The size of this structure is not a part of the public ABI and must not
+ * be used outside of libavcodec. Use av_vdpau_alloc_context() to allocate an
+ * AVVDPAUContext.
  */
 typedef struct AVVDPAUContext {
     /**
@@ -127,6 +131,13 @@ typedef struct AVVDPAUContext {
 } AVVDPAUContext;
 
 /**
+ * Allocate an AVVDPAUContext.
+ *
+ * @return Newly-allocated AVVDPAUContext or NULL on failure.
+ */
+AVVDPAUContext *av_vdpau_alloc_context(void);
+
+/**
  * Get a decoder profile that should be used for initializing a VDPAU decoder.
  * Should be called from the AVCodecContext.get_format() callback.
  *