[vlc-commits] [Git][videolan/vlc][master] 5 commits: nvdec: use FFNVCODEC_CFLAGS
Steve Lhomme (@robUx4)
gitlab at videolan.org
Mon May 12 06:17:18 UTC 2025
Steve Lhomme pushed to branch master at VideoLAN / VLC
Commits:
8747503d by Thomas Guillem at 2025-05-12T06:01:01+00:00
nvdec: use FFNVCODEC_CFLAGS
- - - - -
d4cbf045 by Thomas Guillem at 2025-05-12T06:01:01+00:00
nvdec_gl: specify tex_target
Fixes GL assert when using nvdec + gl interop.
- - - - -
d92a35e7 by Thomas Guillem at 2025-05-12T06:01:01+00:00
nvdec_gl: add missing error case
- - - - -
5ebeac18 by Thomas Guillem at 2025-05-12T06:01:01+00:00
nvdec_gl: fix upside-down rendering
- - - - -
f317f0f8 by Thomas Guillem at 2025-05-12T06:01:01+00:00
opengl: extend VDPAU GLX hack for NVDEC
- - - - -
3 changed files:
- modules/hw/nvdec/Makefile.am
- modules/hw/nvdec/nvdec_gl.c
- modules/video_output/opengl/display.c
Changes:
=====================================
modules/hw/nvdec/Makefile.am
=====================================
@@ -4,6 +4,7 @@ nvdec_LTLIBRARIES =
libnvdec_plugin_la_SOURCES = \
hw/nvdec/nvdec.c hw/nvdec/nvdec_fmt.h hw/nvdec/nvdec_priv.h \
hw/nvdec/hw_pool.c hw/nvdec/hw_pool.h
+libnvdec_plugin_la_CFLAGS = $(AM_CFLAGS) $(FFNVCODEC_CFLAGS)
libnvdec_plugin_la_LIBADD = $(LIBDL) libvlc_hxxxhelper.la
if HAVE_NVDEC
nvdec_LTLIBRARIES += libnvdec_plugin.la
@@ -11,12 +12,14 @@ endif
libnvdec_chroma_plugin_la_SOURCES = hw/nvdec/chroma.c \
hw/nvdec/nvdec_fmt.h hw/nvdec/nvdec_priv.h
+libnvdec_chroma_plugin_la_CFLAGS = $(AM_CFLAGS) $(FFNVCODEC_CFLAGS)
if HAVE_NVDEC
nvdec_LTLIBRARIES += libnvdec_chroma_plugin.la
endif
libglinterop_nvdec_plugin_la_SOURCES = hw/nvdec/nvdec_gl.c \
video_output/opengl/interop.h hw/nvdec/nvdec_fmt.h hw/nvdec/nvdec_priv.h
+libglinterop_nvdec_plugin_la_CFLAGS = $(AM_CFLAGS) $(FFNVCODEC_CFLAGS)
libglinterop_nvdec_plugin_la_LIBADD = $(LIBDL)
if HAVE_GL
if HAVE_NVDEC
=====================================
modules/hw/nvdec/nvdec_gl.c
=====================================
@@ -198,9 +198,14 @@ static int Open(struct vlc_gl_interop *interop)
result = CALL_CUDA(cuCtxCreate, &p_sys->cuConverterCtx, 0, cuConverterDevice);
if (result != VLC_SUCCESS)
{
+ vlc_decoder_device_Release(device);
+ return result;
}
}
+ /* The pictures are uploaded upside-down */
+ video_format_TransformBy(&interop->fmt_out, TRANSFORM_VFLIP);
+
vlc_fourcc_t render_chroma = NVDECToVlcChroma(interop->fmt_in.i_chroma);
switch (render_chroma)
{
@@ -267,6 +272,7 @@ static int Open(struct vlc_gl_interop *interop)
break;
}
+ interop->tex_target = GL_TEXTURE_2D;
interop->fmt_out.i_chroma = render_chroma;
interop->fmt_out.space = interop->fmt_in.space;
=====================================
modules/video_output/opengl/display.c
=====================================
@@ -219,7 +219,7 @@ static int Open(vout_display_t *vd,
vlc_window_t *surface = vd->cfg->window;
char *gl_name = var_InheritString(surface, MODULE_VARNAME);
- /* VDPAU GL interop works only with GLX. Override the "gl" option to force
+ /* VDPAU/NVDEC GL interop works only with GLX. Override the "gl" option to force
* it. */
#ifndef USE_OPENGL_ES2
if (surface->type == VLC_WINDOW_TYPE_XID)
@@ -227,6 +227,11 @@ static int Open(vout_display_t *vd,
switch (vd->source->i_chroma)
{
case VLC_CODEC_VDPAU_VIDEO:
+ case VLC_CODEC_NVDEC_OPAQUE:
+ case VLC_CODEC_NVDEC_OPAQUE_10B:
+ case VLC_CODEC_NVDEC_OPAQUE_16B:
+ case VLC_CODEC_NVDEC_OPAQUE_444:
+ case VLC_CODEC_NVDEC_OPAQUE_444_16B:
{
/* Force the option only if it was not previously set */
if (gl_name == NULL || gl_name[0] == 0
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/005aa763e97ee0c88a4fbf57d6a0060b17ce47bd...f317f0f8dd10e86c6796f607c0645fc062151650
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/005aa763e97ee0c88a4fbf57d6a0060b17ce47bd...f317f0f8dd10e86c6796f607c0645fc062151650
You're receiving this email because of your account on code.videolan.org.
VideoLAN code repository instance
More information about the vlc-commits
mailing list