[vlc-commits] libvlc: add "auto" deinterlace-mode

2018-05-09 Thread Luis Fernandes
vlc | branch: master | Luis Fernandes <zipl...@gmail.com> | Mon Apr 30 14:33:08 
2018 +0100| [174840ba85945431cfe55955671508d21223124c] | committer: Thomas 
Guillem

libvlc: add "auto" deinterlace-mode

Signed-off-by: Thomas Guillem <tho...@gllm.fr>

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

 lib/video.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/video.c b/lib/video.c
index f4e8fe22e1..536555c436 100644
--- a/lib/video.c
+++ b/lib/video.c
@@ -604,7 +604,8 @@ void libvlc_video_set_deinterlace( libvlc_media_player_t 
*p_mi,
  && strcmp (psz_mode, "discard")  && strcmp (psz_mode, "linear")
  && strcmp (psz_mode, "mean") && strcmp (psz_mode, "x")
  && strcmp (psz_mode, "yadif")&& strcmp (psz_mode, "yadif2x")
- && strcmp (psz_mode, "phosphor") && strcmp (psz_mode, "ivtc"))
+ && strcmp (psz_mode, "phosphor") && strcmp (psz_mode, "ivtc")
+ && strcmp (psz_mode, "auto"))
 return;
 
 if (*psz_mode)

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] libvlc: change set_deinterlace function

2018-05-09 Thread Luis Fernandes
vlc | branch: master | Luis Fernandes <zipl...@gmail.com> | Sat May  5 17:34:14 
2018 +0100| [4dc621ab66545b99f84f2af7dd8fc951c8c6d4c2] | committer: Thomas 
Guillem

libvlc: change set_deinterlace function

Users will be able to change the deinterlace mode without forcing it.

Signed-off-by: Thomas Guillem <tho...@gllm.fr>

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

 include/vlc/libvlc_media_player.h |  7 +--
 lib/video.c   | 26 --
 2 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/include/vlc/libvlc_media_player.h 
b/include/vlc/libvlc_media_player.h
index 7348728d9e..9ef1ddec24 100644
--- a/include/vlc/libvlc_media_player.h
+++ b/include/vlc/libvlc_media_player.h
@@ -1406,10 +1406,13 @@ int libvlc_video_take_snapshot( libvlc_media_player_t 
*p_mi, unsigned num,
  * Enable or disable deinterlace filter
  *
  * \param p_mi libvlc media player
- * \param psz_mode type of deinterlace filter, NULL to disable
+ * \param deinterlace state -1: auto (default), 0: disabled, 1: enabled
+ * \param psz_mode type of deinterlace filter, NULL for current/default filter
+ * \version LibVLC 4.0.0 and later
  */
 LIBVLC_API void libvlc_video_set_deinterlace( libvlc_media_player_t *p_mi,
-  const char *psz_mode );
+  int deinterlace,
+  const char *psz_mode );
 
 /**
  * Get an integer marquee option value
diff --git a/lib/video.c b/lib/video.c
index 536555c436..53b5de49db 100644
--- a/lib/video.c
+++ b/lib/video.c
@@ -592,13 +592,17 @@ end:
 }
 
 /**
- * libvlc_video_set_deinterlace : enable deinterlace
+ * libvlc_video_set_deinterlace : enable/disable/auto deinterlace and filter
  */
-void libvlc_video_set_deinterlace( libvlc_media_player_t *p_mi,
+void libvlc_video_set_deinterlace( libvlc_media_player_t *p_mi, int 
deinterlace,
const char *psz_mode )
 {
+if (deinterlace != 0 && deinterlace != 1)
+deinterlace = -1;
+
 if (psz_mode == NULL)
 psz_mode = "";
+
 if (*psz_mode
  && strcmp (psz_mode, "blend")&& strcmp (psz_mode, "bob")
  && strcmp (psz_mode, "discard")  && strcmp (psz_mode, "linear")
@@ -608,13 +612,10 @@ void libvlc_video_set_deinterlace( libvlc_media_player_t 
*p_mi,
  && strcmp (psz_mode, "auto"))
 return;
 
-if (*psz_mode)
-{
+if (*psz_mode && deinterlace != 0)
 var_SetString (p_mi, "deinterlace-mode", psz_mode);
-var_SetInteger (p_mi, "deinterlace", 1);
-}
-else
-var_SetInteger (p_mi, "deinterlace", 0);
+
+var_SetInteger (p_mi, "deinterlace", deinterlace);
 
 size_t n;
 vout_thread_t **pp_vouts = GetVouts (p_mi, );
@@ -622,13 +623,10 @@ void libvlc_video_set_deinterlace( libvlc_media_player_t 
*p_mi,
 {
 vout_thread_t *p_vout = pp_vouts[i];
 
-if (*psz_mode)
-{
+if (*psz_mode && deinterlace != 0)
 var_SetString (p_vout, "deinterlace-mode", psz_mode);
-var_SetInteger (p_vout, "deinterlace", 1);
-}
-else
-var_SetInteger (p_vout, "deinterlace", 0);
+
+var_SetInteger (p_vout, "deinterlace", deinterlace);
 vlc_object_release (p_vout);
 }
 free (pp_vouts);

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits