<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css">p.MsoNormal,p.MsoNoSpacing{margin:0}</style>
</head>
<body><div>merged, thanks!<br></div>
<div><br></div>
<div><br></div>
<div>On Sat, May 5, 2018, at 18:39, Luís Fernandes wrote:<br></div>
<blockquote type="cite"><div>Hi again,<br></div>
<div><br></div>
<div>Sorry about the spam, I just noticed that there could be a small adjustment for coding standards. Here’s the patch again!<br></div>
<div><br></div>
<div>Cheers,<br></div>
<div>Luís<br></div>
<div><br></div>
<div><div>From effa894f8231379841f7c387a6931064fcca929d Mon Sep 17 00:00:00 2001<br></div>
<div>From: Luis Fernandes <<a href="mailto:zipleen@gmail.com">zipleen@gmail.com</a>><br></div>
<div>Date: Mon, 30 Apr 2018 14:33:08 +0100<br></div>
<div>Subject: [PATCH] add auto deinterlacer-mode which is also valid<br></div>
<div><br></div>
<div>---<br></div>
<div> lib/video.c | 3 ++-<br></div>
<div> 1 file changed, 2 insertions(+), 1 deletion(-)<br></div>
<div><br></div>
<div>diff --git a/lib/video.c b/lib/video.c<br></div>
<div>index 035cc0ebf1..a3e5b248e9 100644<br></div>
<div>--- a/lib/video.c<br></div>
<div>+++ b/lib/video.c<br></div>
<div>@@ -675,7 +675,8 @@ void libvlc_video_set_deinterlace( libvlc_media_player_t *p_mi,<br></div>
<div>      && strcmp (psz_mode, "discard")  && strcmp (psz_mode, "linear")<br></div>
<div>      && strcmp (psz_mode, "mean")     && strcmp (psz_mode, "x")<br></div>
<div>      && strcmp (psz_mode, "yadif")    && strcmp (psz_mode, "yadif2x")<br></div>
<div>-     && strcmp (psz_mode, "phosphor") && strcmp (psz_mode, "ivtc"))<br></div>
<div>+     && strcmp (psz_mode, "phosphor") && strcmp (psz_mode, "ivtc")<br></div>
<div>+     && strcmp (psz_mode, "auto"))<br></div>
<div>         return;<br></div>
<div><br></div>
<div>     if (*psz_mode)<br></div>
<div>--<br></div>
<div>2.14.3 (Apple Git-98)<br></div>
<div><br></div>
<div><div>From 5c22fd918af94a6390ae49cd2a976b3990794b01 Mon Sep 17 00:00:00 2001<br></div>
<div>From: Luis Fernandes <<a href="mailto:zipleen@gmail.com">zipleen@gmail.com</a>><br></div>
<div>Date: Sat, 5 May 2018 17:34:14 +0100<br></div>
<div>Subject: [PATCH] change function of deinterlace to specify which deinterlace<br></div>
<div> mode and filter we want to use<br></div>
<div><br></div>
<div>---<br></div>
<div> include/vlc/libvlc_media_player.h |  5 ++++-<br></div>
<div> lib/video.c                       | 26 ++++++++++++--------------<br></div>
<div> 2 files changed, 16 insertions(+), 15 deletions(-)<br></div>
<div><br></div>
<div>diff --git a/include/vlc/libvlc_media_player.h b/include/vlc/libvlc_media_player.h<br></div>
<div>index 20b220448b..cbb5ec251a 100644<br></div>
<div>--- a/include/vlc/libvlc_media_player.h<br></div>
<div>+++ b/include/vlc/libvlc_media_player.h<br></div>
<div>@@ -1419,9 +1419,12 @@ int libvlc_video_take_snapshot( libvlc_media_player_t *p_mi, unsigned num,<br></div>
<div>  * Enable or disable deinterlace filter<br></div>
<div>  *<br></div>
<div>  * \param p_mi libvlc media player<br></div>
<div>- * \param psz_mode type of deinterlace filter, NULL to disable<br></div>
<div>+ * \param deinterlace deinterlace mode -1:auto (default), 0: disabled, 1: enabled<br></div>
<div>+ * \param psz_mode type of deinterlace filter, NULL for current/default filter<br></div>
<div>+ * \version LibVLC 4.0.0 and later<br></div>
<div>  */<br></div>
<div> LIBVLC_API void libvlc_video_set_deinterlace( libvlc_media_player_t *p_mi,<br></div>
<div>+                                                  int deinterlace,<br></div>
<div>                                                   const char *psz_mode );<br></div>
<div> <br></div>
<div> /**<br></div>
<div>diff --git a/lib/video.c b/lib/video.c<br></div>
<div>index a3e5b248e9..4a5c737218 100644<br></div>
<div>--- a/lib/video.c<br></div>
<div>+++ b/lib/video.c<br></div>
<div>@@ -663,13 +663,17 @@ end:<br></div>
<div> }<br></div>
<div> <br></div>
<div> /******************************************************************************<br></div>
<div>- * libvlc_video_set_deinterlace : enable deinterlace<br></div>
<div>+ * libvlc_video_set_deinterlace : enable/disable/auto deinterlace and filter<br></div>
<div>  *****************************************************************************/<br></div>
<div>-void libvlc_video_set_deinterlace( libvlc_media_player_t *p_mi,<br></div>
<div>+void libvlc_video_set_deinterlace( libvlc_media_player_t *p_mi, int deinterlace,<br></div>
<div>                                    const char *psz_mode )<br></div>
<div> {<br></div>
<div>+    if (deinterlace != 0 && deinterlace != 1)<br></div>
<div>+        deinterlace = -1;<br></div>
<div>+<br></div>
<div>     if (psz_mode == NULL)<br></div>
<div>         psz_mode = "";<br></div>
<div>+<br></div>
<div>     if (*psz_mode<br></div>
<div>      && strcmp (psz_mode, "blend")    && strcmp (psz_mode, "bob")<br></div>
<div>      && strcmp (psz_mode, "discard")  && strcmp (psz_mode, "linear")<br></div>
<div>@@ -679,13 +683,10 @@ void libvlc_video_set_deinterlace( libvlc_media_player_t *p_mi,<br></div>
<div>      && strcmp (psz_mode, "auto"))<br></div>
<div>         return;<br></div>
<div> <br></div>
<div>-    if (*psz_mode)<br></div>
<div>-    {<br></div>
<div>+    if (*psz_mode && deinterlace != 0)<br></div>
<div>         var_SetString (p_mi, "deinterlace-mode", psz_mode);<br></div>
<div>-        var_SetInteger (p_mi, "deinterlace", 1);<br></div>
<div>-    }<br></div>
<div>-    else<br></div>
<div>-        var_SetInteger (p_mi, "deinterlace", 0);<br></div>
<div>+<br></div>
<div>+    var_SetInteger (p_mi, "deinterlace", deinterlace);<br></div>
<div> <br></div>
<div>     size_t n;<br></div>
<div>     vout_thread_t **pp_vouts = GetVouts (p_mi, &n);<br></div>
<div>@@ -693,13 +694,10 @@ void libvlc_video_set_deinterlace( libvlc_media_player_t *p_mi,<br></div>
<div>     {<br></div>
<div>         vout_thread_t *p_vout = pp_vouts[i];<br></div>
<div> <br></div>
<div>-        if (*psz_mode)<br></div>
<div>-        {<br></div>
<div>+        if (*psz_mode && deinterlace != 0)<br></div>
<div>             var_SetString (p_vout, "deinterlace-mode", psz_mode);<br></div>
<div>-            var_SetInteger (p_vout, "deinterlace", 1);<br></div>
<div>-        }<br></div>
<div>-        else<br></div>
<div>-            var_SetInteger (p_vout, "deinterlace", 0);<br></div>
<div>+<br></div>
<div>+        var_SetInteger (p_vout, "deinterlace", deinterlace);<br></div>
<div>         vlc_object_release (p_vout);<br></div>
<div>     }<br></div>
<div>     free (pp_vouts);<br></div>
<div>-- <br></div>
<div>2.15.1 (Apple Git-101)<br></div>
<div><br></div>
</div>
</div>
<div><div><div><br></div>
</div>
</div>
<div><div><div><br></div>
</div>
<div><div><br></div>
<blockquote type="cite"><div>On 5 May 2018, at 17:36, Luís Fernandes <<a href="mailto:zipleen@gmail.com">zipleen@gmail.com</a>> wrote:<br></div>
<div><br></div>
<div><div style="overflow-wrap:break-word;"><div>Hi,<br></div>
<div><br></div>
<div>In lieu of speed, here’s the patch with the deinterlace=0 removed and comment adjusted.<br></div>
<div><br></div>
<div>You can choose which one you think it’s best!<br></div>
<div><br></div>
<div>Cheers,<br></div>
<div>Luís<br></div>
<div><br></div>
<div><div>From effa894f8231379841f7c387a6931064fcca929d Mon Sep 17 00:00:00 2001<br></div>
<div>From: Luis Fernandes <<a href="mailto:zipleen@gmail.com">zipleen@gmail.com</a>><br></div>
<div>Date: Mon, 30 Apr 2018 14:33:08 +0100<br></div>
<div>Subject: [PATCH] add auto deinterlacer-mode which is also valid<br></div>
<div><br></div>
<div>---<br></div>
<div> lib/video.c | 3 ++-<br></div>
<div> 1 file changed, 2 insertions(+), 1 deletion(-)<br></div>
<div><br></div>
<div>diff --git a/lib/video.c b/lib/video.c<br></div>
<div>index 035cc0ebf1..a3e5b248e9 100644<br></div>
<div>--- a/lib/video.c<br></div>
<div>+++ b/lib/video.c<br></div>
<div>@@ -675,7 +675,8 @@ void libvlc_video_set_deinterlace( libvlc_media_player_t *p_mi,<br></div>
<div>      && strcmp (psz_mode, "discard")  && strcmp (psz_mode, "linear")<br></div>
<div>      && strcmp (psz_mode, "mean")     && strcmp (psz_mode, "x")<br></div>
<div>      && strcmp (psz_mode, "yadif")    && strcmp (psz_mode, "yadif2x")<br></div>
<div>-     && strcmp (psz_mode, "phosphor") && strcmp (psz_mode, "ivtc"))<br></div>
<div>+     && strcmp (psz_mode, "phosphor") && strcmp (psz_mode, "ivtc")<br></div>
<div>+     && strcmp (psz_mode, "auto"))<br></div>
<div>         return;<br></div>
<div><br></div>
<div>     if (*psz_mode)<br></div>
<div>--<br></div>
<div>2.14.3 (Apple Git-98)<br></div>
<div><br></div>
<div><div>From 7ca094304c3485b83efd3263e3e67c7085871444 Mon Sep 17 00:00:00 2001<br></div>
<div>From: Luis Fernandes <<a href="mailto:zipleen@gmail.com">zipleen@gmail.com</a>><br></div>
<div>Date: Sat, 5 May 2018 17:34:14 +0100<br></div>
<div>Subject: [PATCH] change function of deinterlace to specify which deinterlace<br></div>
<div> mode and filter we want to use<br></div>
<div><br></div>
<div>---<br></div>
<div> include/vlc/libvlc_media_player.h |  5 ++++-<br></div>
<div> lib/video.c                       | 28 ++++++++++++++--------------<br></div>
<div> 2 files changed, 18 insertions(+), 15 deletions(-)<br></div>
<div><br></div>
<div>diff --git a/include/vlc/libvlc_media_player.h b/include/vlc/libvlc_media_player.h<br></div>
<div>index 20b220448b..cbb5ec251a 100644<br></div>
<div>--- a/include/vlc/libvlc_media_player.h<br></div>
<div>+++ b/include/vlc/libvlc_media_player.h<br></div>
<div>@@ -1419,9 +1419,12 @@ int libvlc_video_take_snapshot( libvlc_media_player_t *p_mi, unsigned num,<br></div>
<div>  * Enable or disable deinterlace filter<br></div>
<div>  *<br></div>
<div>  * \param p_mi libvlc media player<br></div>
<div>- * \param psz_mode type of deinterlace filter, NULL to disable<br></div>
<div>+ * \param deinterlace deinterlace mode -1:auto (default), 0: disabled, 1: enabled<br></div>
<div>+ * \param psz_mode type of deinterlace filter, NULL for current/default filter<br></div>
<div>+ * \version LibVLC 4.0.0 and later<br></div>
<div>  */<br></div>
<div> LIBVLC_API void libvlc_video_set_deinterlace( libvlc_media_player_t *p_mi,<br></div>
<div>+                                                  int deinterlace,<br></div>
<div>                                                   const char *psz_mode );<br></div>
<div> <br></div>
<div> /**<br></div>
<div>diff --git a/lib/video.c b/lib/video.c<br></div>
<div>index a3e5b248e9..a8dd5b84b2 100644<br></div>
<div>--- a/lib/video.c<br></div>
<div>+++ b/lib/video.c<br></div>
<div>@@ -663,13 +663,19 @@ end:<br></div>
<div> }<br></div>
<div> <br></div>
<div> /******************************************************************************<br></div>
<div>- * libvlc_video_set_deinterlace : enable deinterlace<br></div>
<div>+ * libvlc_video_set_deinterlace : enable/disable/auto deinterlace and filter<br></div>
<div>  *****************************************************************************/<br></div>
<div>-void libvlc_video_set_deinterlace( libvlc_media_player_t *p_mi,<br></div>
<div>+void libvlc_video_set_deinterlace( libvlc_media_player_t *p_mi, int deinterlace,<br></div>
<div>                                    const char *psz_mode )<br></div>
<div> {<br></div>
<div>+    if (deinterlace != 0 && deinterlace != 1)<br></div>
<div>+        deinterlace = -1;<br></div>
<div>+<br></div>
<div>     if (psz_mode == NULL)<br></div>
<div>+    {<br></div>
<div>         psz_mode = "";<br></div>
<div>+    }<br></div>
<div>+<br></div>
<div>     if (*psz_mode<br></div>
<div>      && strcmp (psz_mode, "blend")    && strcmp (psz_mode, "bob")<br></div>
<div>      && strcmp (psz_mode, "discard")  && strcmp (psz_mode, "linear")<br></div>
<div>@@ -679,13 +685,10 @@ void libvlc_video_set_deinterlace( libvlc_media_player_t *p_mi,<br></div>
<div>      && strcmp (psz_mode, "auto"))<br></div>
<div>         return;<br></div>
<div> <br></div>
<div>-    if (*psz_mode)<br></div>
<div>-    {<br></div>
<div>+    if (*psz_mode && deinterlace != 0)<br></div>
<div>         var_SetString (p_mi, "deinterlace-mode", psz_mode);<br></div>
<div>-        var_SetInteger (p_mi, "deinterlace", 1);<br></div>
<div>-    }<br></div>
<div>-    else<br></div>
<div>-        var_SetInteger (p_mi, "deinterlace", 0);<br></div>
<div>+<br></div>
<div>+    var_SetInteger (p_mi, "deinterlace", deinterlace);<br></div>
<div> <br></div>
<div>     size_t n;<br></div>
<div>     vout_thread_t **pp_vouts = GetVouts (p_mi, &n);<br></div>
<div>@@ -693,13 +696,10 @@ void libvlc_video_set_deinterlace( libvlc_media_player_t *p_mi,<br></div>
<div>     {<br></div>
<div>         vout_thread_t *p_vout = pp_vouts[i];<br></div>
<div> <br></div>
<div>-        if (*psz_mode)<br></div>
<div>-        {<br></div>
<div>+        if (*psz_mode && deinterlace != 0)<br></div>
<div>             var_SetString (p_vout, "deinterlace-mode", psz_mode);<br></div>
<div>-            var_SetInteger (p_vout, "deinterlace", 1);<br></div>
<div>-        }<br></div>
<div>-        else<br></div>
<div>-            var_SetInteger (p_vout, "deinterlace", 0);<br></div>
<div>+<br></div>
<div>+        var_SetInteger (p_vout, "deinterlace", deinterlace);<br></div>
<div>         vlc_object_release (p_vout);<br></div>
<div>     }<br></div>
<div>     free (pp_vouts);<br></div>
<div>-- <br></div>
<div>2.15.1 (Apple Git-101)<br></div>
<div><br></div>
</div>
</div>
</div>
<div><span><auto_deinterlace_mode.patch></span><br></div>
<div style="overflow-wrap:break-word;"><div><div><div><br></div>
</div>
</div>
</div>
<div><span><set_auto_deinterlace_1.patch></span><br></div>
<div style="overflow-wrap:break-word;"><div><div><div><br></div>
</div>
<div><div><br></div>
<blockquote type="cite"><div>On 4 May 2018, at 17:12, Luis Fernandes <<a href="mailto:zipleen@gmail.com">zipleen@gmail.com</a>> wrote:<br></div>
<div><br></div>
<div><div><div><br></div>
<div>Hi Thomas,<br></div>
<div><br></div>
<div>No worries!<br></div>
<div><br></div>
<div>The forcing of that is about the comment in the function "if mode is NULL, deinterlace will be disabled". <br></div>
<div><br></div>
<div>If you think this is not useful, I'll remove it right away - I'm not too attached to the idea, it was used in the previous implementation to "disable" deinterlace.<br></div>
<div><br></div>
<div>Cheers,<br></div>
<div>Luís<br></div>
<div><div><br></div>
<div>On 4 May 2018, at 16:34, Thomas Guillem <<a href="mailto:thomas@gllm.fr">thomas@gllm.fr</a>> wrote:<br></div>
</div>
<blockquote type="cite"><div><div><br></div>
<div>On Fri, May 4, 2018, at 16:53, Luís Fernandes wrote:<br></div>
<blockquote type="cite"><div>Hi,<br></div>
<div><br></div>
<div>Here’s the patch without fetching the config.<br></div>
<div><br></div>
<div>@Thomas as a side note, I did only add the "fetching of the default deinterlace value" on your suggestion in the VLCKit mailing list ;)<br></div>
</blockquote><div><br></div>
<div>Yes sorry about that, but since you can now set the "auto" mode with your patches, I don't think it's useful anymore.<br></div>
<div><br></div>
<blockquote type="cite"><div><br></div>
<div>@Caro as soon as this is accepted I’ll update the VLCKit patch!<br></div>
<div><br></div>
<div>Cheers,<br></div>
<div>Luís<br></div>
<div><br></div>
<div><br></div>
<div><div>From effa894f8231379841f7c387a6931064fcca929d Mon Sep 17 00:00:00 2001<br></div>
<div>From: Luis Fernandes <<a href="mailto:zipleen@gmail.com">zipleen@gmail.com</a>><br></div>
<div>Date: Mon, 30 Apr 2018 14:33:08 +0100<br></div>
<div>Subject: [PATCH] add auto deinterlacer-mode which is also valid<br></div>
<div><br></div>
<div>---<br></div>
<div> lib/video.c | 3 ++-<br></div>
<div> 1 file changed, 2 insertions(+), 1 deletion(-)<br></div>
<div><br></div>
<div>diff --git a/lib/video.c b/lib/video.c<br></div>
<div>index 035cc0ebf1..a3e5b248e9 100644<br></div>
<div>--- a/lib/video.c<br></div>
<div>+++ b/lib/video.c<br></div>
<div>@@ -675,7 +675,8 @@ void libvlc_video_set_deinterlace( libvlc_media_player_t *p_mi,<br></div>
<div>      && strcmp (psz_mode, "discard")  && strcmp (psz_mode, "linear")<br></div>
<div>      && strcmp (psz_mode, "mean")     && strcmp (psz_mode, "x")<br></div>
<div>      && strcmp (psz_mode, "yadif")    && strcmp (psz_mode, "yadif2x")<br></div>
<div>-     && strcmp (psz_mode, "phosphor") && strcmp (psz_mode, "ivtc"))<br></div>
<div>+     && strcmp (psz_mode, "phosphor") && strcmp (psz_mode, "ivtc")<br></div>
<div>+     && strcmp (psz_mode, "auto"))<br></div>
<div>         return;<br></div>
<div><br></div>
<div>     if (*psz_mode)<br></div>
<div>--<br></div>
<div>2.14.3 (Apple Git-98)<br></div>
</div>
<div><br></div>
<div><br></div>
<div><div>From 71ea2190622c64e4adfe03a4131a17861f0ffe8f Mon Sep 17 00:00:00 2001<br></div>
<div>From: Luis Fernandes <<a href="mailto:zipleen@gmail.com">zipleen@gmail.com</a>><br></div>
<div>Date: Fri, 4 May 2018 15:42:56 +0100<br></div>
<div>Subject: [PATCH] change function of deinterlace to specify which deinterlace<br></div>
<div> mode and filter we want to use<br></div>
<div><br></div>
<div>---<br></div>
<div> include/vlc/libvlc_media_player.h |  5 ++++-<br></div>
<div> lib/video.c                       | 29 +++++++++++++++--------------<br></div>
<div> 2 files changed, 19 insertions(+), 15 deletions(-)<br></div>
<div><br></div>
<div>diff --git a/include/vlc/libvlc_media_player.h b/include/vlc/libvlc_media_player.h<br></div>
<div>index 20b220448b..a82f70f5e7 100644<br></div>
<div>--- a/include/vlc/libvlc_media_player.h<br></div>
<div>+++ b/include/vlc/libvlc_media_player.h<br></div>
<div>@@ -1419,9 +1419,12 @@ int libvlc_video_take_snapshot( libvlc_media_player_t *p_mi, unsigned num,<br></div>
<div>  * Enable or disable deinterlace filter<br></div>
<div>  *<br></div>
<div>  * \param p_mi libvlc media player<br></div>
<div>- * \param psz_mode type of deinterlace filter, NULL to disable<br></div>
<div>+ * \param deinterlace deinterlace mode -1:auto (default), 0: disabled, 1: enabled<br></div>
<div>+ * \param psz_mode type of deinterlace filter, NULL to default<br></div>
<div>+ * \version LibVLC 4.0.0 and later<br></div>
<div>  */<br></div>
<div> LIBVLC_API void libvlc_video_set_deinterlace( libvlc_media_player_t *p_mi,<br></div>
<div>+                                                  int deinterlace,<br></div>
<div>                                                   const char *psz_mode );<br></div>
<div><br></div>
<div> /**<br></div>
<div>diff --git a/lib/video.c b/lib/video.c<br></div>
<div>index a3e5b248e9..f23320a528 100644<br></div>
<div>--- a/lib/video.c<br></div>
<div>+++ b/lib/video.c<br></div>
<div>@@ -663,13 +663,20 @@ end:<br></div>
<div> }<br></div>
<div><br></div>
<div> /******************************************************************************<br></div>
<div>- * libvlc_video_set_deinterlace : enable deinterlace<br></div>
<div>+ * libvlc_video_set_deinterlace : enable/disable/auto deinterlace and filter<br></div>
<div>  *****************************************************************************/<br></div>
<div>-void libvlc_video_set_deinterlace( libvlc_media_player_t *p_mi,<br></div>
<div>+void libvlc_video_set_deinterlace( libvlc_media_player_t *p_mi, int deinterlace,<br></div>
<div>                                    const char *psz_mode )<br></div>
<div> {<br></div>
<div>+    if (deinterlace != 0 && deinterlace != 1)<br></div>
<div>+        deinterlace = -1;<br></div>
<div>+<br></div>
<div>     if (psz_mode == NULL)<br></div>
<div>+    {<br></div>
<div>         psz_mode = "";<br></div>
<div>+        deinterlace = 0;<br></div>
</div>
</blockquote><div><br></div>
<div>Why forcing deinterlace to zero in that case ?<br></div>
<div><br></div>
<blockquote type="cite"><div><div>+    }<br></div>
<div>+<br></div>
<div>     if (*psz_mode<br></div>
<div>      && strcmp (psz_mode, "blend")    && strcmp (psz_mode, "bob")<br></div>
<div>      && strcmp (psz_mode, "discard")  && strcmp (psz_mode, "linear")<br></div>
<div>@@ -679,13 +686,10 @@ void libvlc_video_set_deinterlace( libvlc_media_player_t *p_mi,<br></div>
<div>      && strcmp (psz_mode, "auto"))<br></div>
<div>         return;<br></div>
<div><br></div>
<div>-    if (*psz_mode)<br></div>
<div>-    {<br></div>
<div>+    if (*psz_mode && deinterlace != 0)<br></div>
<div>         var_SetString (p_mi, "deinterlace-mode", psz_mode);<br></div>
<div>-        var_SetInteger (p_mi, "deinterlace", 1);<br></div>
<div>-    }<br></div>
<div>-    else<br></div>
<div>-        var_SetInteger (p_mi, "deinterlace", 0);<br></div>
<div>+<br></div>
<div>+    var_SetInteger (p_mi, "deinterlace", deinterlace);<br></div>
<div><br></div>
<div>     size_t n;<br></div>
<div>     vout_thread_t **pp_vouts = GetVouts (p_mi, &n);<br></div>
<div>@@ -693,13 +697,10 @@ void libvlc_video_set_deinterlace( libvlc_media_player_t *p_mi,<br></div>
<div>     {<br></div>
<div>         vout_thread_t *p_vout = pp_vouts[i];<br></div>
<div><br></div>
<div>-        if (*psz_mode)<br></div>
<div>-        {<br></div>
<div>+        if (*psz_mode && deinterlace != 0)<br></div>
<div>             var_SetString (p_vout, "deinterlace-mode", psz_mode);<br></div>
<div>-            var_SetInteger (p_vout, "deinterlace", 1);<br></div>
<div>-        }<br></div>
<div>-        else<br></div>
<div>-            var_SetInteger (p_vout, "deinterlace", 0);<br></div>
<div>+<br></div>
<div>+        var_SetInteger (p_vout, "deinterlace", deinterlace);<br></div>
<div>         vlc_object_release (p_vout);<br></div>
<div>     }<br></div>
<div>     free (pp_vouts);<br></div>
<div>--<br></div>
<div>2.15.1 (Apple Git-101)<br></div>
</div>
<div><br></div>
<div><br></div>
<div><br></div>
<div><div><br></div>
<blockquote type="cite"><div>On 4 May 2018, at 09:58, Carola Nitz via vlc-devel <<a href="mailto:vlc-devel@videolan.org">vlc-devel@videolan.org</a>> wrote:<br></div>
<div><br></div>
<div><div><br></div>
<div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;"><span class="colour" style="color:rgb(127, 127, 127)"><span class="font" style="font-family:-webkit-system-font, Helvetica Neue, Helvetica, sans-serif"><b>From: </b></span></span><span class="font" style="font-family:-webkit-system-font, Helvetica Neue, Helvetica, sans-serif">Carola Nitz <<a href="mailto:nitz.carola@googlemail.com">nitz.carola@googlemail.com</a>></span><br></div>
<div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;"><span class="colour" style="color:rgb(127, 127, 127)"><span class="font" style="font-family:-webkit-system-font, Helvetica Neue, Helvetica, sans-serif"><b>Subject: </b></span></span><span class="font" style="font-family:-webkit-system-font, Helvetica Neue, Helvetica, sans-serif"><b>Re: [vlc-devel] [PATCH] Enable/Disable/Auto deinterlace functions for libvlc</b></span><br></div>
<div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;"><span class="colour" style="color:rgb(127, 127, 127)"><span class="font" style="font-family:-webkit-system-font, Helvetica Neue, Helvetica, sans-serif"><b>Date: </b></span></span><span class="font" style="font-family:-webkit-system-font, Helvetica Neue, Helvetica, sans-serif">4 May 2018 at 09:58:49 GMT+1</span><br></div>
<div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;"><span class="colour" style="color:rgb(127, 127, 127)"><span class="font" style="font-family:-webkit-system-font, Helvetica Neue, Helvetica, sans-serif"><b>To: </b></span></span><span class="font" style="font-family:-webkit-system-font, Helvetica Neue, Helvetica, sans-serif">Mailing list for VLC media player developers <<a href="mailto:vlc-devel@videolan.org">vlc-devel@videolan.org</a>></span><br></div>
<div><br></div>
<div><br></div>
<div style="overflow-wrap:break-word;"><div>Hey Luis,<br></div>
<div><br></div>
<div>I just wanted to follow up on this. <br></div>
<div>Did you have time to adjust this patch and address the leak ?<br></div>
<div>I’d love for this to get merged into master :) <br></div>
<div><br></div>
<div>Best,<br></div>
<div><div>Caro<br></div>
<div><div><br></div>
<blockquote type="cite"><div>On May 3, 2018, at 11:26 AM, Thomas Guillem <<a href="mailto:thomas@gllm.fr">thomas@gllm.fr</a>> wrote:<br></div>
<div><br></div>
<div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;-webkit-text-stroke-width:0px;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:currentcolor;"><div><br></div>
</div>
<div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;-webkit-text-stroke-width:0px;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:currentcolor;"><br></div>
<div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;-webkit-text-stroke-width:0px;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:currentcolor;">On Mon, Apr 30, 2018, at 18:29, Luís Miguel Fernandes wrote:<br></div>
<blockquote type="cite" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;-moz-text-size-adjust:auto;-webkit-text-stroke-width:0px;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:currentcolor;"><div>Hi Steve,<br></div>
<div><br></div>
<div>Thanks for the comments, here's the revised patches.<br></div>
<div><br></div>
<div><div>From effa894f8231379841f7c387a6931064fcca929d Mon Sep 17 00:00:00 2001<br></div>
<div>From: Luis Fernandes <<a href="mailto:zipleen@gmail.com">zipleen@gmail.com</a>><br></div>
<div>Date: Mon, 30 Apr 2018 14:33:08 +0100<br></div>
<div>Subject: [PATCH] add auto deinterlacer-mode which is also valid<br></div>
<div><br></div>
<div>---<br></div>
<div> lib/video.c | 3 ++-<br></div>
<div> 1 file changed, 2 insertions(+), 1 deletion(-)<br></div>
<div><br></div>
<div>diff --git a/lib/video.c b/lib/video.c<br></div>
<div>index 035cc0ebf1..a3e5b248e9 100644<br></div>
<div>--- a/lib/video.c<br></div>
<div>+++ b/lib/video.c<br></div>
<div>@@ -675,7 +675,8 @@ void libvlc_video_set_deinterlace( libvlc_media_player_t *p_mi,<br></div>
<div>      && strcmp (psz_mode, "discard")  && strcmp (psz_mode, "linear")<br></div>
<div>      && strcmp (psz_mode, "mean")     && strcmp (psz_mode, "x")<br></div>
<div>      && strcmp (psz_mode, "yadif")    && strcmp (psz_mode, "yadif2x")<br></div>
<div>-     && strcmp (psz_mode, "phosphor") && strcmp (psz_mode, "ivtc"))<br></div>
<div>+     && strcmp (psz_mode, "phosphor") && strcmp (psz_mode, "ivtc")<br></div>
<div>+     && strcmp (psz_mode, "auto"))<br></div>
<div>         return;<br></div>
<div><br></div>
<div>     if (*psz_mode)<br></div>
<div>--<br></div>
<div>2.14.3 (Apple Git-98)<br></div>
<div><br></div>
<div><div>From 2b656a5fca5c69e626ac1727d7bc9f3d980f37e6 Mon Sep 17 00:00:00 2001<br></div>
<div>From: Luis Fernandes <<a href="mailto:zipleen@gmail.com">zipleen@gmail.com</a>><br></div>
<div>Date: Mon, 30 Apr 2018 14:43:00 +0100<br></div>
<div>Subject: [PATCH] change function of deinterlace to specify which deinterlace<br></div>
<div> mode and filter we want to use<br></div>
<div><br></div>
<div>---<br></div>
<div> include/vlc/libvlc_media_player.h |  5 ++++-<br></div>
<div> lib/video.c                       | 34 ++++++++++++++++++++--------------<br></div>
<div> 2 files changed, 24 insertions(+), 15 deletions(-)<br></div>
<div><br></div>
<div>diff --git a/include/vlc/libvlc_media_player.h b/include/vlc/libvlc_media_player.h<br></div>
<div>index 20b220448b..a82f70f5e7 100644<br></div>
<div>--- a/include/vlc/libvlc_media_player.h<br></div>
<div>+++ b/include/vlc/libvlc_media_player.h<br></div>
<div>@@ -1419,9 +1419,12 @@ int libvlc_video_take_snapshot( libvlc_media_player_t *p_mi, unsigned num,<br></div>
<div>  * Enable or disable deinterlace filter<br></div>
<div>  *<br></div>
<div>  * \param p_mi libvlc media player<br></div>
<div>- * \param psz_mode type of deinterlace filter, NULL to disable<br></div>
<div>+ * \param deinterlace deinterlace mode -1:auto (default), 0: disabled, 1: enabled<br></div>
<div>+ * \param psz_mode type of deinterlace filter, NULL to default<br></div>
<div>+ * \version LibVLC 4.0.0 and later<br></div>
<div>  */<br></div>
<div> LIBVLC_API void libvlc_video_set_deinterlace( libvlc_media_player_t *p_mi,<br></div>
<div>+                                                  int deinterlace,<br></div>
<div>                                                   const char *psz_mode );<br></div>
<div><br></div>
<div> /**<br></div>
<div>diff --git a/lib/video.c b/lib/video.c<br></div>
<div>index a3e5b248e9..f96fec7a79 100644<br></div>
<div>--- a/lib/video.c<br></div>
<div>+++ b/lib/video.c<br></div>
<div>@@ -663,13 +663,25 @@ end:<br></div>
<div> }<br></div>
<div><br></div>
<div> /******************************************************************************<br></div>
<div>- * libvlc_video_set_deinterlace : enable deinterlace<br></div>
<div>+ * libvlc_video_set_deinterlace : enable/disable/auto deinterlace and filter<br></div>
<div>  *****************************************************************************/<br></div>
<div>-void libvlc_video_set_deinterlace( libvlc_media_player_t *p_mi,<br></div>
<div>+void libvlc_video_set_deinterlace( libvlc_media_player_t *p_mi, int deinterlace,<br></div>
<div>                                    const char *psz_mode )<br></div>
<div> {<br></div>
<div>+    if (deinterlace != 0 && deinterlace != 1)<br></div>
<div>+        deinterlace = -1;<br></div>
<div>+<br></div>
<div>+    if (psz_mode == NULL)<br></div>
<div>+    {<br></div>
<div>+        psz_mode = var_GetString(p_mi, "deinterlace-mode");<br></div>
<div>+    }<br></div>
</div>
</div>
</blockquote><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;-webkit-text-stroke-width:0px;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:currentcolor;"><br></div>
<div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;-webkit-text-stroke-width:0px;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:currentcolor;">You leak psz_mode here.<br></div>
<div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;-webkit-text-stroke-width:0px;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:currentcolor;">But I think it should stay NULL. Just don't set "deinterlace-mode" in that case but only the "deinterlace" int.<br></div>
<div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;-webkit-text-stroke-width:0px;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:currentcolor;"><br></div>
<blockquote type="cite" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;-moz-text-size-adjust:auto;-webkit-text-stroke-width:0px;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:currentcolor;"><div><div><div>+<br></div>
<div>     if (psz_mode == NULL)<br></div>
<div>+    {<br></div>
<div>         psz_mode = "";<br></div>
<div>+        deinterlace = 0;<br></div>
<div>+    }<br></div>
<div>+<br></div>
<div>     if (*psz_mode<br></div>
<div>      && strcmp (psz_mode, "blend")    && strcmp (psz_mode, "bob")<br></div>
<div>      && strcmp (psz_mode, "discard")  && strcmp (psz_mode, "linear")<br></div>
<div>@@ -679,13 +691,10 @@ void libvlc_video_set_deinterlace( libvlc_media_player_t *p_mi,<br></div>
<div>      && strcmp (psz_mode, "auto"))<br></div>
<div>         return;<br></div>
<div><br></div>
<div>-    if (*psz_mode)<br></div>
<div>-    {<br></div>
<div>+    if (*psz_mode && deinterlace != 0)<br></div>
<div>         var_SetString (p_mi, "deinterlace-mode", psz_mode);<br></div>
<div>-        var_SetInteger (p_mi, "deinterlace", 1);<br></div>
<div>-    }<br></div>
<div>-    else<br></div>
<div>-        var_SetInteger (p_mi, "deinterlace", 0);<br></div>
<div>+<br></div>
<div>+    var_SetInteger (p_mi, "deinterlace", deinterlace);<br></div>
<div><br></div>
<div>     size_t n;<br></div>
<div>     vout_thread_t **pp_vouts = GetVouts (p_mi, &n);<br></div>
<div>@@ -693,13 +702,10 @@ void libvlc_video_set_deinterlace( libvlc_media_player_t *p_mi,<br></div>
<div>     {<br></div>
<div>         vout_thread_t *p_vout = pp_vouts[i];<br></div>
<div><br></div>
<div>-        if (*psz_mode)<br></div>
<div>-        {<br></div>
<div>+        if (*psz_mode && deinterlace != 0)<br></div>
<div>             var_SetString (p_vout, "deinterlace-mode", psz_mode);<br></div>
<div>-            var_SetInteger (p_vout, "deinterlace", 1);<br></div>
<div>-        }<br></div>
<div>-        else<br></div>
<div>-            var_SetInteger (p_vout, "deinterlace", 0);<br></div>
<div>+<br></div>
<div>+        var_SetInteger (p_vout, "deinterlace", deinterlace);<br></div>
<div>         vlc_object_release (p_vout);<br></div>
<div>     }<br></div>
<div>     free (pp_vouts);<br></div>
<div>--<br></div>
<div>2.14.3 (Apple Git-98)<br></div>
</div>
<div><br></div>
<div><br></div>
</div>
<div><div><br></div>
<div><br></div>
</div>
<div><div><br></div>
<div><br></div>
<div>Regards,<br></div>
<div>Luís<br></div>
<div><div><br></div>
<blockquote type="cite"><div>On 30 Apr 2018, at 07:55, Steve Lhomme <<a href="mailto:robux4@ycbcr.xyz">robux4@ycbcr.xyz</a>> wrote:<br></div>
<div><br></div>
<div><div bgcolor="#FFFFFF"><p>Please post your patches inline, it's easier to comment<br></p><p><br></p><div><br></div>
<div>+    if (deinterlace < -1 || deinterlace > 1)<br></div>
<div>+        deinterlace = -1;<br></div>
<div>To make it more clear what you're doing maybe check if the value is neither 0 nor 1.<br></div>
<div><br></div>
<p><br></p><div><br></div>
<div>+        module_config_t *config = config_FindConfig("deinterlace-mode");<br></div>
<div>This should be var_GetString<br></div>
<div><br></div>
<p><br></p><div><br></div>
<div>+     && strcmp (psz_mode, "auto"))<br></div>
<div>It seems that should go in another patch before this one.<br></div>
<div><br></div>
<p><br></p><div><br></div>
<div>-        var_SetInteger (p_mi, "deinterlace", 1);<br></div>
<div>+        var_SetInteger (p_mi, "deinterlace", deinterlace);<br></div>
<div>     }<br></div>
<div>     else<br></div>
<div>-        var_SetInteger (p_mi, "deinterlace", 0);<br></div>
<div>+        var_SetInteger (p_mi, "deinterlace", deinterlace);<br></div>
<div><br></div>
<p>In both cases of the else you do the same call. So don't do it in the else.<br></p><div><br></div>
<div>Le 28/04/2018 à 20:13, Luís Fernandes a écrit :<br></div>
<blockquote type="cite" cite="mid:0CDA4F63-9E9E-4BD1-BB9C-9F8253B33E18@gmail.com"><pre>Hi all,

I’ve reworked the patch to change the method signature, and thus break compatibility with 3.0.
I’ve added a \version annotation to the .h of the function, but I have no idea if I need to do anything else to signal that this is for libvlc4. 
Please advice on what I need to add more for the patch to be accepted.

Some notes on the patch:
- I had to add "auto" because the default deinterlace-mode for VLCKit is normally "auto", so without it the mode would never get triggered
- default mode is "auto" (-1) - which seems to be the default mode for vlc as well

Regards,
Luís

<br></pre><div><br></div>
<div><br></div>
<pre><br></pre><blockquote type="cite"><pre>On 22 Apr 2018, at 11:13, Jean-Baptiste Kempf <a href="mailto:jb@videolan.org"><jb@videolan.org></a> wrote:

Hello,

On Sun, 22 Apr 2018, at 09:37, Rémi Denis-Courmont wrote:
<br></pre><blockquote type="cite"><pre>IMO, an API clean-up and thus an ABI break is well overdue in general, and 
with that, I'd do 1. But that's just my own personal opinion.
<br></pre></blockquote><pre>Yes. Break API and ABI for 4.0. libvlc6. Go ahead.

But if anyone breaks ABI for 3.0, I'll break his neck. (in a soft fashion) :D

-- 
Jean-Baptiste Kempf -  President
+33 672 704 734
_______________________________________________
vlc-devel mailing list
To unsubscribe or modify your subscription options:
<a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a>
<br></pre></blockquote><pre><br></pre><div><br></div>
<div><br></div>
<pre>_______________________________________________
vlc-devel mailing list
To unsubscribe or modify your subscription options:
<a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br></pre></blockquote><div><br></div>
</div>
<div>_______________________________________________<br></div>
<div>vlc-devel mailing list<br></div>
<div>To unsubscribe or modify your subscription options:<br></div>
<div><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br></div>
</div>
</blockquote></div>
</div>
<div><u>_______________________________________________</u><br></div>
<div>vlc-devel mailing list<br></div>
<div>To unsubscribe or modify your subscription options:<br></div>
<div><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br></div>
<p>Email had 2 attachments:<br></p><ul><li><div><code>auto_deinterlace.patch</code><br></div>
<div>  1k (text/plain)<br></div>
</li><li><div><code>set_filter_auto_deinterlace.patch</code><br></div>
<div>  5k (text/plain)<br></div>
</li></ul></blockquote><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;-webkit-text-stroke-width:0px;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:currentcolor;"><br></div>
<div><span class="font" style="font-family:Helvetica"><span class="size" style="font-size:12px">_______________________________________________</span></span><br></div>
<div><span class="font" style="font-family:Helvetica"><span class="size" style="font-size:12px">vlc-devel mailing list</span></span><br></div>
<div><span class="font" style="font-family:Helvetica"><span class="size" style="font-size:12px">To unsubscribe or modify your subscription options:</span></span><br></div>
<div><a href="https://mailman.videolan.org/listinfo/vlc-devel" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;-moz-text-size-adjust:auto;-webkit-text-stroke-width:0px;">https://mailman.videolan.org/listinfo/vlc-devel</a><br></div>
</div>
</blockquote></div>
<div><br></div>
</div>
</div>
<div><br></div>
<div><br></div>
<div>_______________________________________________<br></div>
<div>vlc-devel mailing list<br></div>
<div>To unsubscribe or modify your subscription options:<br></div>
<div><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br></div>
</div>
</blockquote></div>
<div><br></div>
<div><u>_______________________________________________</u><br></div>
<div>vlc-devel mailing list<br></div>
<div>To unsubscribe or modify your subscription options:<br></div>
<div><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br></div>
<p>Email had 2 attachments:<br></p><ul><li><div><code>auto_deinterlace_mode.patch</code><br></div>
<div>  1k (text/plain)<br></div>
</li><li><div><code>set_auto_deinterlace.patch</code><br></div>
<div>  5k (text/plain)<br></div>
</li></ul></blockquote><div><br></div>
</div>
</blockquote><blockquote type="cite"><div><div><span>_______________________________________________</span><br></div>
<div><span>vlc-devel mailing list</span><br></div>
<div><span>To unsubscribe or modify your subscription options:</span><br></div>
<div><span><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a></span><br></div>
</div>
</blockquote></div>
<div>_______________________________________________<br></div>
<div>vlc-devel mailing list<br></div>
<div>To unsubscribe or modify your subscription options:<br></div>
<div><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br></div>
</div>
</blockquote></div>
</div>
</div>
</div>
</blockquote></div>
</div>
<div><u>_______________________________________________</u><br></div>
<div>vlc-devel mailing list<br></div>
<div>To unsubscribe or modify your subscription options:<br></div>
<div><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br></div>
<p>Email had 2 attachments:<br></p><ul><li><div><code>auto_deinterlace_mode.patch</code><br></div>
<div>  1k (text/plain)<br></div>
</li><li><div><code>set_auto_deinterlace_1.patch</code><br></div>
<div>  5k (text/plain)<br></div>
</li></ul></blockquote></body>
</html>