vdpau: deprecate bitstream buffers within the hardware context
authorRémi Denis-Courmont <remi@remlab.net>
Thu, 25 Jul 2013 19:30:21 +0000 (22:30 +0300)
committerAnton Khirnov <anton@khirnov.net>
Mon, 5 Aug 2013 09:21:36 +0000 (11:21 +0200)
The bitstream buffers are now private and freed by libavcodec. For
backward compatibility, the hold bitstream buffer pointer is left NULL
(applications were supposed to av_freep() it).

Signed-off-by: Anton Khirnov <anton@khirnov.net>
doc/APIchanges
libavcodec/vdpau.h
libavcodec/vdpau_internal.h
libavcodec/version.h

index 2e7239b..9402d44 100644 (file)
@@ -13,6 +13,10 @@ libavutil:     2012-10-22
 
 API changes, most recent first:
 
 
 API changes, most recent first:
 
+2013-08-xx - xxxxxxx - lavc 55.13.0 - avcodec.h
+  Deprecate the bitstream-related members from struct AVVDPAUContext.
+  The bistream buffers no longer need to be explicitly freed.
+
 2013-08-xx - xxxxxxx - lavc 55.12.0 - avcodec.h
   Deprecate the CODEC_CAP_HWACCEL_VDPAU codec capability. Use CODEC_CAP_HWACCEL
   and select the AV_PIX_FMT_VDPAU format with get_format() instead.
 2013-08-xx - xxxxxxx - lavc 55.12.0 - avcodec.h
   Deprecate the CODEC_CAP_HWACCEL_VDPAU codec capability. Use CODEC_CAP_HWACCEL
   and select the AV_PIX_FMT_VDPAU format with get_format() instead.
index 18efcaa..8bedea5 100644 (file)
 #include <vdpau/vdpau.h>
 #include <vdpau/vdpau_x11.h>
 
 #include <vdpau/vdpau.h>
 #include <vdpau/vdpau_x11.h>
 
+#if FF_API_BUFS_VDPAU
 union AVVDPAUPictureInfo {
     VdpPictureInfoH264        h264;
     VdpPictureInfoMPEG1Or2    mpeg;
     VdpPictureInfoVC1          vc1;
     VdpPictureInfoMPEG4Part2 mpeg4;
 };
 union AVVDPAUPictureInfo {
     VdpPictureInfoH264        h264;
     VdpPictureInfoMPEG1Or2    mpeg;
     VdpPictureInfoVC1          vc1;
     VdpPictureInfoMPEG4Part2 mpeg4;
 };
+#endif
 
 /**
  * This structure is used to share data between the libavcodec library and
 
 /**
  * This structure is used to share data between the libavcodec library and
@@ -83,11 +85,13 @@ typedef struct AVVDPAUContext {
      */
     VdpDecoderRender *render;
 
      */
     VdpDecoderRender *render;
 
+#if FF_API_BUFS_VDPAU
     /**
      * VDPAU picture information
      *
      * Set by libavcodec.
      */
     /**
      * VDPAU picture information
      *
      * Set by libavcodec.
      */
+    attribute_deprecated
     union AVVDPAUPictureInfo info;
 
     /**
     union AVVDPAUPictureInfo info;
 
     /**
@@ -95,6 +99,7 @@ typedef struct AVVDPAUContext {
      *
      * Set by libavcodec.
      */
      *
      * Set by libavcodec.
      */
+    attribute_deprecated
     int bitstream_buffers_allocated;
 
     /**
     int bitstream_buffers_allocated;
 
     /**
@@ -102,6 +107,7 @@ typedef struct AVVDPAUContext {
      *
      * Set by libavcodec.
      */
      *
      * Set by libavcodec.
      */
+    attribute_deprecated
     int bitstream_buffers_used;
 
    /**
     int bitstream_buffers_used;
 
    /**
@@ -110,7 +116,9 @@ typedef struct AVVDPAUContext {
      *
      * Set by libavcodec.
      */
      *
      * Set by libavcodec.
      */
+    attribute_deprecated
     VdpBitstreamBuffer *bitstream_buffers;
     VdpBitstreamBuffer *bitstream_buffers;
+#endif
 } AVVDPAUContext;
 
 #if FF_API_CAP_VDPAU
 } AVVDPAUContext;
 
 #if FF_API_CAP_VDPAU
index e93c672..9e4ab4e 100644 (file)
@@ -35,6 +35,15 @@ static inline uintptr_t ff_vdpau_get_surface_id(Picture *pic)
     return (uintptr_t)pic->f.data[3];
 }
 
     return (uintptr_t)pic->f.data[3];
 }
 
+#if !FF_API_BUFS_VDPAU
+union AVVDPAUPictureInfo {
+    VdpPictureInfoH264        h264;
+    VdpPictureInfoMPEG1Or2    mpeg;
+    VdpPictureInfoVC1          vc1;
+    VdpPictureInfoMPEG4Part2 mpeg4;
+};
+#endif
+
 struct vdpau_picture_context {
     /**
      * VDPAU picture information.
 struct vdpau_picture_context {
     /**
      * VDPAU picture information.
index 41a9d7a..7a622f3 100644 (file)
@@ -27,7 +27,7 @@
  */
 
 #define LIBAVCODEC_VERSION_MAJOR 55
  */
 
 #define LIBAVCODEC_VERSION_MAJOR 55
-#define LIBAVCODEC_VERSION_MINOR 12
+#define LIBAVCODEC_VERSION_MINOR 13
 #define LIBAVCODEC_VERSION_MICRO  0
 
 #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
 #define LIBAVCODEC_VERSION_MICRO  0
 
 #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
@@ -67,5 +67,8 @@
 #ifndef FF_API_CAP_VDPAU
 #define FF_API_CAP_VDPAU         (LIBAVCODEC_VERSION_MAJOR < 56)
 #endif
 #ifndef FF_API_CAP_VDPAU
 #define FF_API_CAP_VDPAU         (LIBAVCODEC_VERSION_MAJOR < 56)
 #endif
+#ifndef FF_API_BUFS_VDPAU
+#define FF_API_BUFS_VDPAU        (LIBAVCODEC_VERSION_MAJOR < 56)
+#endif
 
 #endif /* AVCODEC_VERSION_H */
 
 #endif /* AVCODEC_VERSION_H */