Update to 1.2

This commit is contained in:
Nicolas Chauvet 2019-03-01 09:51:07 +01:00
parent 200375c6b5
commit ab3589f74f
8 changed files with 11 additions and 339 deletions

10
.gitignore vendored
View File

@ -1,9 +1 @@
libvdpau-0.4.1.tar.bz2
/libvdpau-0.5.tar.gz
/libvdpau-0.6.tar.gz
/libvdpau-0.7.tar.gz
/libvdpau-0.8.tar.gz
/libvdpau-0.9.tar.gz
/libvdpau-1.0.tar.bz2
/libvdpau-1.1.tar.bz2
/libvdpau-1.1.1.tar.bz2
libvdpau-*.tar.bz2

View File

@ -1,31 +0,0 @@
From 1cda354bdfd0c9ca107293b84b52f4464fdbedcc Mon Sep 17 00:00:00 2001
From: Rico Tzschichholz <ricotz@ubuntu.com>
Date: Tue, 1 Sep 2015 10:45:11 +0200
Subject: [PATCH 1/3] mesa_dri2: Add missing include of config.h to define _GNU_SOURCE
Fix build with -Wimplicit-function-declaration while secure_getenv() is
guarded by __USE_GNU.
Reviewed-by: Aaron Plattner <aplattner@nvidia.com>
Tested-by: Stefan Dirsch <sndirsch@suse.de>
---
src/mesa_dri2.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/src/mesa_dri2.c b/src/mesa_dri2.c
index 51e8794..420ccee 100644
--- a/src/mesa_dri2.c
+++ b/src/mesa_dri2.c
@@ -33,6 +33,9 @@
* and José Hiram Soltren (jsoltren@nvidia.com)
*/
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
#define NEED_REPLIES
#include <X11/Xlibint.h>
--
1.7.2.1

View File

@ -1,31 +0,0 @@
From fb5362be7a6d6f89f76c5e171c339f5fa1916d38 Mon Sep 17 00:00:00 2001
From: Aaron Plattner <aplattner@nvidia.com>
Date: Mon, 7 Sep 2015 21:16:58 -0700
Subject: [PATCH 2/3] util.h: Make getenv_wrapper() static inline
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Otherwise, GCC generates a "getenv_wrapper defined but not used" warning.
Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
---
src/util.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/src/util.h b/src/util.h
index 1452c06..39227ea 100644
--- a/src/util.h
+++ b/src/util.h
@@ -28,7 +28,7 @@
#include <unistd.h>
#include <stdlib.h>
-static char * getenv_wrapper(const char *name)
+static inline char * getenv_wrapper(const char *name)
{
if (getuid() == geteuid() && getgid() == getegid()) {
return getenv(name);
--
1.7.2.1

View File

@ -1,30 +0,0 @@
From a21bf7aa438f5dd40d0a300a3167aa3d6f26dccc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Hiram=20Soltren?= <jsoltren@nvidia.com>
Date: Wed, 9 Sep 2015 15:05:01 -0500
Subject: [PATCH 3/3] Fix doc error on displayable surface types
VdpVideoSurface is not directly displayable in the current
implementation of VDPAU. VdpOutputSurface is. Make the documentation
consistent with reality.
Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
---
include/vdpau/vdpau.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/include/vdpau/vdpau.h b/include/vdpau/vdpau.h
index 8cc4524..0bc5b60 100644
--- a/include/vdpau/vdpau.h
+++ b/include/vdpau/vdpau.h
@@ -1704,7 +1704,7 @@ typedef VdpStatus VdpVideoSurfacePutBitsYCbCr(
* - The Hardware that implements \ref VdpPresentationQueue
* "VdpPresentationQueue" functionality,
*
- * VdpVideoSurfaces are directly displayable using a \ref
+ * VdpOutputSurfaces are directly displayable using a \ref
* VdpPresentationQueue "VdpPresentationQueue" object.
*
* @{
--
1.7.2.1

View File

@ -1,188 +0,0 @@
From 53eeb07f68d483fee86ad872884aee890d5aa393 Mon Sep 17 00:00:00 2001
From: ManojGuptaBonda <mbonda@nvidia.com>
Date: Tue, 20 Nov 2018 13:29:37 +0530
Subject: [PATCH 4/5] Add new frame and field mode chroma types. Add
VdpDecoderQueryProfileCapability API
Chroma types :
VDP_CHROMA_TYPE_420
VDP_CHROMA_TYPE_422
VDP_CHROMA_TYPE_444
already exist, surfaces of these types could be transparently used with
any VdpVideoDecoder. The implementation is free to internally convert
the surface between frame/field(NV12/NV24) as required by
VdpVideoDecoder operation. The interop API would allow registration of
these surfaces for either field or frame based interop.
This change adds new enums for frame and field chroma types:
VDP_CHROMA_TYPE_420_FIELD
VDP_CHROMA_TYPE_422_FIELD
VDP_CHROMA_TYPE_444_FIELD
VDP_CHROMA_TYPE_420_FRAME
VDP_CHROMA_TYPE_422_FRAME
VDP_CHROMA_TYPE_444_FRAME
So that frame/field based video surfaces can be created and exposed via
VDPAU OpenGL interop.
The new chroma types could only be used by a VdpVideoDecoder that
supports output to field/frame surfaces respectively. Internal surface
convertion is not allowed. The interop API would allow registration
of these surfaces to field/frame based interop only. This will avoid
implicit conversions and allocation of shadow surface.
Existing VdpDecoderQueryCapabilities() returns maxlevel, maxwidth,
height and macro blocks for a given decoder profile. Since it is not
possible to extend this API to return more capabilities, adding new API
VdpDecoderQueryProfileCapability(). In this change, new API will be able
to return supported picture structure along with other existing
capabilities.
VdpDecoderQueryProfileCapability() can be extended in future to query
newer capabilities exposed. VdpDecoderCapabilities defines the
capabilities that can be queried.
This function returns queried capability of the requested profile on the
underlying h/w. By design, only one capability can be queried at a time.
Signed-off-by: Manoj Bonda <mbonda@nvidia.com>
Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
---
include/vdpau/vdpau.h | 95 +++++++++++++++++++++++++++++++++++++++++--
1 file changed, 91 insertions(+), 4 deletions(-)
diff --git a/include/vdpau/vdpau.h b/include/vdpau/vdpau.h
index 0bc5b60..a851ee8 100644
--- a/include/vdpau/vdpau.h
+++ b/include/vdpau/vdpau.h
@@ -838,13 +838,66 @@ typedef int VdpBool;
*/
typedef uint32_t VdpChromaType;
-/** \hideinitializer \brief 4:2:0 chroma format. */
+/** \hideinitializer \brief 4:2:0 chroma format. Undefined field/frame based
+ * Video surfaces allocated with this chroma type have undefined
+ * field/frame structure. The implementation is free to internally morph
+ * the surface between frame/field(NV12/NV24) as required by
+ * VdpVideoDecoder operation. Interop with OpenGL allows registration
+ * of these surfaces for either field- or frame-based interop. But, an implicit
+ * field/frame structure conversion may be performed.
+ */
#define VDP_CHROMA_TYPE_420 ((VdpChromaType)0)
-/** \hideinitializer \brief 4:2:2 chroma format. */
+/** \hideinitializer \brief 4:2:2 chroma format. Undefined field/frame based
+ * Video surfaces allocated with this chroma type have undefined
+ * field/frame structure. The implementation is free to internally morph
+ * the surface between frame/field(NV12/NV24) as required by
+ * VdpVideoDecoder operation. Interop with OpenGL allows registration
+ * of these surfaces for either field- or frame-based interop. But, an implicit
+ * field/frame structure conversion may be performed.
+ */
#define VDP_CHROMA_TYPE_422 ((VdpChromaType)1)
-/** \hideinitializer \brief 4:4:4 chroma format. */
+/** \hideinitializer \brief 4:4:4 chroma format. Undefined field/frame based
+ * Video surfaces allocated with this chroma type have undefined
+ * field/frame structure. The implementation is free to internally morph
+ * the surface between frame/field(NV12/NV24) as required by
+ * VdpVideoDecoder operation. Interop with OpenGL allows registration
+ * of these surfaces for either field- or frame-based interop. But, an implicit
+ * field/frame structure conversion may be performed.
+ */
#define VDP_CHROMA_TYPE_444 ((VdpChromaType)2)
+/** \hideinitializer \brief 4:2:0 chroma format. Field based.
+ * Video surfaces allocated with this chroma type can only be
+ * interoped with OpenGL if the matching field/frame structure is
+ * specified in the OpenGL API */
+#define VDP_CHROMA_TYPE_420_FIELD ((VdpChromaType)3)
+/** \hideinitializer \brief 4:2:2 chroma format. Field based.
+ * Video surfaces allocated with this chroma type can only be
+ * interoped with OpenGL if the matching field/frame structure is
+ * specified in the OpenGL API */
+#define VDP_CHROMA_TYPE_422_FIELD ((VdpChromaType)4)
+/** \hideinitializer \brief 4:4:4 chroma format. Field based.
+ * Video surfaces allocated with this chroma type can only be
+ * interoped with OpenGL if the matching field/frame structure is
+ * specified in the OpenGL API */
+#define VDP_CHROMA_TYPE_444_FIELD ((VdpChromaType)5)
+
+/** \hideinitializer \brief 4:2:0 chroma format. Frame based.
+ * Video surfaces allocated with this chroma type can only be
+ * interoped with OpenGL if the matching field/frame structure is
+ * specified in the OpenGL API */
+#define VDP_CHROMA_TYPE_420_FRAME ((VdpChromaType)6)
+/** \hideinitializer \brief 4:2:2 chroma format. Frame based.
+ * Video surfaces allocated with this chroma type can only be
+ * interoped with OpenGL if the matching field/frame structure is
+ * specified in the OpenGL API */
+#define VDP_CHROMA_TYPE_422_FRAME ((VdpChromaType)7)
+/** \hideinitializer \brief 4:4:4 chroma format. Frame based.
+ * Video surfaces allocated with this chroma type can only be
+ * interoped with OpenGL if the matching field/frame structure is
+ * specified in the OpenGL API */
+#define VDP_CHROMA_TYPE_444_FRAME ((VdpChromaType)8)
+
/**
* \brief The set of all known YCbCr surface formats.
*/
@@ -2620,6 +2673,38 @@ typedef uint32_t VdpDecoderProfile;
/** \hideinitializer */
#define VDP_DECODER_LEVEL_HEVC_6_2 186
+typedef enum {
+ VDP_VIDEO_SURFACE_FIELD_STRUCTURE = (1 << 0),
+ VDP_VIDEO_SURFACE_FRAME_STRUCTURE = (1 << 1)
+} VdpVideoSurfaceSupportedPictureStructure;
+
+typedef enum {
+ VDP_DECODER_PROFILE_MAX_LEVEL = 0,
+ VDP_DECODER_PROFILE_MAX_MACROBLOCKS = 1,
+ VDP_DECODER_PROFILE_MAX_WIDTH = 2,
+ VDP_DECODER_PROFILE_MAX_HEIGHT = 3,
+ VDP_DECODER_PROFILE_SUPPORTED_PICTURE_STRUCTURE = 4
+} VdpDecoderCapability;
+
+/**
+ * \brief Query the supported value of the requested capability, for
+ * the specified profile on the specified device.
+ * \param[in] device The device to query.
+ * \param[in] profile The decoder profile for which information is requested.
+ * \param[in] capability The decoder profile capability for which the value
+ * is requested.
+ * \param[out] capability_value The value of the requested capability.
+ * \return VdpStatus The completion status of the operation.
+ */
+
+typedef VdpStatus VdpDecoderQueryProfileCapability(
+ VdpDevice device,
+ VdpDecoderProfile profile,
+ /* output parameters follow */
+ VdpDecoderCapability capability,
+ void * capability_value
+);
+
/**
* \brief Query the implementation's VdpDecoder capabilities.
* \param[in] device The device to query.
@@ -4344,7 +4429,7 @@ typedef VdpStatus VdpPresentationQueueBlockUntilSurfaceIdle(
* \brief The status of a surface within a presentation queue.
*/
typedef enum {
- /** The surface is not queued or currently visible. */
+ /** The surface is no queued or currently visible. */
VDP_PRESENTATION_QUEUE_STATUS_IDLE,
/** The surface is in the queue, and not currently visible. */
VDP_PRESENTATION_QUEUE_STATUS_QUEUED,
@@ -4587,6 +4672,8 @@ typedef uint32_t VdpFuncId;
#define VDP_FUNC_ID_PRESENTATION_QUEUE_QUERY_SURFACE_STATUS ((VdpFuncId)65)
/** \hideinitializer */
#define VDP_FUNC_ID_PREEMPTION_CALLBACK_REGISTER ((VdpFuncId)66)
+/** \hideinitializer */
+#define VDP_FUNC_ID_DECODER_QUERY_CAPABILITY ((VdpFuncId)67)
#define VDP_FUNC_ID_BASE_WINSYS 0x1000
--
2.17.2

View File

@ -1,36 +0,0 @@
From 52a6ea26bae0c4b2c5bace65dd7cc09c8e677bda Mon Sep 17 00:00:00 2001
From: Aaron Plattner <aplattner@nvidia.com>
Date: Tue, 20 Nov 2018 11:10:36 -0800
Subject: [PATCH 5/5] Fix typos from commit
53eeb07f68d483fee86ad872884aee890d5aa393
Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
---
include/vdpau/vdpau.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/vdpau/vdpau.h b/include/vdpau/vdpau.h
index a851ee8..17695a9 100644
--- a/include/vdpau/vdpau.h
+++ b/include/vdpau/vdpau.h
@@ -2701,7 +2701,7 @@ typedef VdpStatus VdpDecoderQueryProfileCapability(
VdpDevice device,
VdpDecoderProfile profile,
/* output parameters follow */
- VdpDecoderCapability capability,
+ VdpDecoderCapability capability,
void * capability_value
);
@@ -4429,7 +4429,7 @@ typedef VdpStatus VdpPresentationQueueBlockUntilSurfaceIdle(
* \brief The status of a surface within a presentation queue.
*/
typedef enum {
- /** The surface is no queued or currently visible. */
+ /** The surface is not queued or currently visible. */
VDP_PRESENTATION_QUEUE_STATUS_IDLE,
/** The surface is in the queue, and not currently visible. */
VDP_PRESENTATION_QUEUE_STATUS_QUEUED,
--
2.17.2

View File

@ -1,15 +1,12 @@
%global gitlab_hash 14b620084c027d546fa0b3f083b800c6
Name: libvdpau
Version: 1.1.1
Release: 12%{?dist}
Version: 1.2
Release: 1%{?dist}
Summary: Wrapper library for the Video Decode and Presentation API
License: MIT
URL: https://freedesktop.org/wiki/Software/VDPAU/
Source0: https://gitlab.freedesktop.org/vdpau/libvdpau/uploads/5635163f040f2eea59b66d0181cf664b/libvdpau-%{version}.tar.bz2
Patch0: 0001-mesa_dri2-Add-missing-include-of-config.h-to-define-.patch
Patch1: 0002-util.h-Make-getenv_wrapper-static-inline.patch
Patch2: 0003-Fix-doc-error-on-displayable-surface-types.patch
Patch3: 0004-Add-new-frame-and-field-mode-chroma-types.-Add-VdpDe.patch
Patch4: 0005-Fix-typos-from-commit-53eeb07f68d483fee86ad872884aee.patch
Source0: https://gitlab.freedesktop.org/vdpau/libvdpau/uploads/%{gitlab_hash}/libvdpau-%{version}.tar.bz2
BuildRequires: autoconf
BuildRequires: automake
@ -64,11 +61,7 @@ applications that use %{name}.
%prep
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%build
autoreconf -vif
@ -107,6 +100,9 @@ mv doc/html-out html
%changelog
* Fri Mar 01 2019 Nicolas Chauvet <kwizart@gmail.com> - 1.2-1
- Update to 1.2
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.1-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild

View File

@ -1 +1 @@
d1a5380dd339d92a3446647bf73ba7ac libvdpau-1.1.1.tar.bz2
SHA512 (libvdpau-1.2.tar.bz2) = 86aa3f2a39cb73a597bf417da2eeef73ff01160ed9f54dff3725785ff5a289f47040496de44e2f5292d59657d4746e369b3fa307c4f83a32f7cc28e4cd8bce6f