vlc | branch: master | Steve Lhomme <[email protected]> | Fri Nov 22 10:33:52 2019 +0100| [7269471d95c10368121b610db7c2faa23163d86f] | committer: Steve Lhomme
vdpau/chroma: pass a vdpau_decoder_device_t internally > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=7269471d95c10368121b610db7c2faa23163d86f --- modules/hw/vdpau/chroma.c | 22 +++++++++++++--------- modules/hw/vdpau/picture.c | 5 +++-- modules/hw/vdpau/vlc_vdpau.h | 3 ++- modules/video_output/opengl/converter_vdpau.c | 2 +- 4 files changed, 19 insertions(+), 13 deletions(-) diff --git a/modules/hw/vdpau/chroma.c b/modules/hw/vdpau/chroma.c index e2791eced4..db3edddeec 100644 --- a/modules/hw/vdpau/chroma.c +++ b/modules/hw/vdpau/chroma.c @@ -710,7 +710,7 @@ static picture_t *YCbCrRender(filter_t *filter, picture_t *src) return (src != NULL) ? Render(filter, src, true) : NULL; } -static int OutputCheckFormat(vlc_object_t *obj, vdp_t *vdp, VdpDevice dev, +static int OutputCheckFormat(vlc_object_t *obj, vdpau_decoder_device_t *vdpau_dev, const video_format_t *fmt, VdpRGBAFormat *restrict rgb_fmt) { @@ -724,12 +724,13 @@ static int OutputCheckFormat(vlc_object_t *obj, vdp_t *vdp, VdpDevice dev, uint32_t w, h; VdpBool ok; - VdpStatus err = vdp_output_surface_query_capabilities(vdp, dev, + VdpStatus err = vdp_output_surface_query_capabilities(vdpau_dev->vdp, + vdpau_dev->device, rgb_fmts[i], &ok, &w, &h); if (err != VDP_STATUS_OK) { msg_Err(obj, "%s capabilities query failure: %s", "output surface", - vdp_get_error_string(vdp, err)); + vdp_get_error_string(vdpau_dev->vdp, err)); continue; } @@ -745,17 +746,17 @@ static int OutputCheckFormat(vlc_object_t *obj, vdp_t *vdp, VdpDevice dev, return VLC_EGENERIC; } -static picture_pool_t *OutputPoolAlloc(vlc_object_t *obj, vdp_t *vdp, - VdpDevice dev, const video_format_t *restrict fmt) +static picture_pool_t *OutputPoolAlloc(vlc_object_t *obj, + vdpau_decoder_device_t *vdpau_dev, const video_format_t *restrict fmt) { /* Check output surface format */ VdpRGBAFormat rgb_fmt; - if (OutputCheckFormat(obj, vdp, dev, fmt, &rgb_fmt)) + if (OutputCheckFormat(obj, vdpau_dev, fmt, &rgb_fmt)) return NULL; /* Allocate the pool */ - return vlc_vdp_output_pool_create(vdp, rgb_fmt, fmt, 3); + return vlc_vdp_output_pool_create(vdpau_dev, rgb_fmt, fmt, 3); } static int OutputOpen(vlc_object_t *obj) @@ -806,8 +807,11 @@ static int OutputOpen(vlc_object_t *obj) return VLC_EGENERIC; /* Allocate the output surface picture pool */ - sys->pool = OutputPoolAlloc(obj, sys->vdp, sys->device, - &filter->fmt_out.video); + vdpau_decoder_device_t vdpau_dev = { + .vdp = sys->vdp, + .device = sys->device, + }; + sys->pool = OutputPoolAlloc(obj, &vdpau_dev, &filter->fmt_out.video); if (sys->pool == NULL) { vdp_release_x11(sys->vdp); diff --git a/modules/hw/vdpau/picture.c b/modules/hw/vdpau/picture.c index 8e6b545106..d834d0303a 100644 --- a/modules/hw/vdpau/picture.c +++ b/modules/hw/vdpau/picture.c @@ -167,7 +167,8 @@ error: return pic; } -picture_pool_t *vlc_vdp_output_pool_create(vdp_t *vdp, VdpRGBAFormat rgb_fmt, +picture_pool_t *vlc_vdp_output_pool_create(vdpau_decoder_device_t *vdpau_dev, + VdpRGBAFormat rgb_fmt, const video_format_t *restrict fmt, unsigned requested_count) { @@ -176,7 +177,7 @@ picture_pool_t *vlc_vdp_output_pool_create(vdp_t *vdp, VdpRGBAFormat rgb_fmt, while (count < requested_count) { - pics[count] = vlc_vdp_output_surface_create(vdp, rgb_fmt, fmt); + pics[count] = vlc_vdp_output_surface_create(vdpau_dev->vdp, rgb_fmt, fmt); if (pics[count] == NULL) break; count++; diff --git a/modules/hw/vdpau/vlc_vdpau.h b/modules/hw/vdpau/vlc_vdpau.h index abdee8d77d..f467c0d33f 100644 --- a/modules/hw/vdpau/vlc_vdpau.h +++ b/modules/hw/vdpau/vlc_vdpau.h @@ -337,7 +337,8 @@ typedef struct vlc_vdp_output_surface struct picture_pool_t; -struct picture_pool_t *vlc_vdp_output_pool_create(vdp_t *, VdpRGBAFormat, +struct picture_pool_t *vlc_vdp_output_pool_create(vdpau_decoder_device_t *, + VdpRGBAFormat, const video_format_t *, unsigned count); diff --git a/modules/video_output/opengl/converter_vdpau.c b/modules/video_output/opengl/converter_vdpau.c index 1218cdf820..e5b3794e84 100644 --- a/modules/video_output/opengl/converter_vdpau.c +++ b/modules/video_output/opengl/converter_vdpau.c @@ -68,7 +68,7 @@ tc_vdpau_gl_get_pool(opengl_tex_converter_t const *tc, { converter_sys_t *sys = tc->priv; vlc_decoder_device *dec_device = sys->dec_device; - return vlc_vdp_output_pool_create(GetVDPAUOpaqueDevice(dec_device)->vdp, + return vlc_vdp_output_pool_create(GetVDPAUOpaqueDevice(dec_device), VDP_RGBA_FORMAT_B8G8R8A8, &tc->fmt, requested_count); } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
