vlc | branch: master | Steve Lhomme <[email protected]> | Fri Nov 8 09:10:20 2019 +0100| [ff775d07b9ba476572b7711d6b533d4ce5af83af] | committer: Steve Lhomme
vdpau: check the input video context of filters matches the VDPAU chromas And set the output video context. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=ff775d07b9ba476572b7711d6b533d4ce5af83af --- modules/hw/vdpau/adjust.c | 3 +++ modules/hw/vdpau/deinterlace.c | 5 +++++ modules/hw/vdpau/sharpen.c | 3 +++ 3 files changed, 11 insertions(+) diff --git a/modules/hw/vdpau/adjust.c b/modules/hw/vdpau/adjust.c index 5db0379c28..abba194695 100644 --- a/modules/hw/vdpau/adjust.c +++ b/modules/hw/vdpau/adjust.c @@ -129,6 +129,9 @@ static int Open(vlc_object_t *obj) { filter_t *filter = (filter_t *)obj; + if ( filter->vctx_in == NULL || + vlc_video_context_GetType(filter->vctx_in) != VLC_VIDEO_CONTEXT_VDPAU ) + return VLC_EGENERIC; if (filter->fmt_in.video.i_chroma != VLC_CODEC_VDPAU_VIDEO_420 && filter->fmt_in.video.i_chroma != VLC_CODEC_VDPAU_VIDEO_422 && filter->fmt_in.video.i_chroma != VLC_CODEC_VDPAU_VIDEO_444) diff --git a/modules/hw/vdpau/deinterlace.c b/modules/hw/vdpau/deinterlace.c index 619c75346c..0302c640e5 100644 --- a/modules/hw/vdpau/deinterlace.c +++ b/modules/hw/vdpau/deinterlace.c @@ -100,6 +100,9 @@ static int Open(vlc_object_t *obj) { filter_t *filter = (filter_t *)obj; + if ( filter->vctx_in == NULL || + vlc_video_context_GetType(filter->vctx_in) != VLC_VIDEO_CONTEXT_VDPAU ) + return VLC_EGENERIC; if (filter->fmt_in.video.i_chroma != VLC_CODEC_VDPAU_VIDEO_420 && filter->fmt_in.video.i_chroma != VLC_CODEC_VDPAU_VIDEO_422 && filter->fmt_in.video.i_chroma != VLC_CODEC_VDPAU_VIDEO_444) @@ -119,6 +122,7 @@ static int Open(vlc_object_t *obj) filter->pf_video_filter = Deinterlace; filter->p_sys = sys; filter->fmt_out.video.i_frame_rate *= 2; + filter->vctx_out = vlc_video_context_Hold(filter->vctx_in); return VLC_SUCCESS; } @@ -127,6 +131,7 @@ static void Close(vlc_object_t *obj) filter_t *filter = (filter_t *)obj; filter_sys_t *sys = filter->p_sys; + vlc_video_context_Release(filter->vctx_out); free(sys); } diff --git a/modules/hw/vdpau/sharpen.c b/modules/hw/vdpau/sharpen.c index f001c04718..4aee7e3c40 100644 --- a/modules/hw/vdpau/sharpen.c +++ b/modules/hw/vdpau/sharpen.c @@ -83,6 +83,9 @@ static int Open(vlc_object_t *obj) { filter_t *filter = (filter_t *)obj; + if ( filter->vctx_in == NULL || + vlc_video_context_GetType(filter->vctx_in) != VLC_VIDEO_CONTEXT_VDPAU ) + return VLC_EGENERIC; if (filter->fmt_in.video.i_chroma != VLC_CODEC_VDPAU_VIDEO_420 && filter->fmt_in.video.i_chroma != VLC_CODEC_VDPAU_VIDEO_422 && filter->fmt_in.video.i_chroma != VLC_CODEC_VDPAU_VIDEO_444) _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
