vlc | branch: master | Steve Lhomme <[email protected]> | Tue Nov 12 08:49:43 
2019 +0100| [638bb47c53d3925970c6a293488bbe85b4f0b7c4] | committer: Steve Lhomme

video_output: implement the hold_device for filters

For static, interactive filters and the SPU blender filters

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=638bb47c53d3925970c6a293488bbe85b4f0b7c4
---

 src/video_output/video_output.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c
index 856fc343d1..c71f00ed2f 100644
--- a/src/video_output/video_output.c
+++ b/src/video_output/video_output.c
@@ -958,8 +958,15 @@ static int ThreadDisplayPreparePicture(vout_thread_t 
*vout, bool reuse,
     return VLC_SUCCESS;
 }
 
+static vlc_decoder_device * VoutHoldDecoderDevice(vlc_object_t *o, void *sys)
+{
+    VLC_UNUSED(o);
+    vout_thread_t *vout = sys;
+    return vout->p->dec_device ? vlc_decoder_device_Hold( vout->p->dec_device 
) : NULL;
+}
+
 static const struct filter_video_callbacks vout_video_cbs = {
-    NULL, NULL /* TODO */
+    NULL, VoutHoldDecoderDevice,
 };
 
 static picture_t *ConvertRGB32AndBlend(vout_thread_t *vout, picture_t *pic,
@@ -1530,10 +1537,10 @@ static int vout_Start(vout_thread_t *vout, 
vlc_video_context *vctx, const vout_c
     video_format_Copy(&sys->filter.src_fmt, &sys->original);
 
     static const struct filter_video_callbacks static_cbs = {
-        VoutVideoFilterStaticNewPicture, NULL/*TODO*/,
+        VoutVideoFilterStaticNewPicture, VoutHoldDecoderDevice,
     };
     static const struct filter_video_callbacks interactive_cbs = {
-        VoutVideoFilterInteractiveNewPicture, NULL/*TODO*/,
+        VoutVideoFilterInteractiveNewPicture, VoutHoldDecoderDevice,
     };
     filter_owner_t owner = {
         .video = &static_cbs,

_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to