[vlc-devel] [PATCH] Enable/Disable/Auto deinterlace functions for libvlc
Thomas Guillem
thomas at gllm.fr
Wed May 9 10:04:19 CEST 2018
merged, thanks!
On Sat, May 5, 2018, at 18:39, Luís Fernandes wrote:
> Hi again,
>
> Sorry about the spam, I just noticed that there could be a small
> adjustment for coding standards. Here’s the patch again!>
> Cheers,
> Luís
>
> From effa894f8231379841f7c387a6931064fcca929d Mon Sep 17 00:00:00 2001> From: Luis Fernandes <zipleen at gmail.com>
> Date: Mon, 30 Apr 2018 14:33:08 +0100
> Subject: [PATCH] add auto deinterlacer-mode which is also valid
>
> ---
> lib/video.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/lib/video.c b/lib/video.c
> index 035cc0ebf1..a3e5b248e9 100644
> --- a/lib/video.c
> +++ b/lib/video.c
> @@ -675,7 +675,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)
> --
> 2.14.3 (Apple Git-98)
>
> From 5c22fd918af94a6390ae49cd2a976b3990794b01 Mon Sep 17 00:00:00 2001> From: Luis Fernandes <zipleen at gmail.com>
> Date: Sat, 5 May 2018 17:34:14 +0100
> Subject: [PATCH] change function of deinterlace to specify which
> deinterlace> mode and filter we want to use
>
> ---
> include/vlc/libvlc_media_player.h | 5 ++++-
> lib/video.c | 26 ++++++++++++--------------
> 2 files changed, 16 insertions(+), 15 deletions(-)
>
> diff --git a/include/vlc/libvlc_media_player.h
> b/include/vlc/libvlc_media_player.h> index 20b220448b..cbb5ec251a 100644
> --- a/include/vlc/libvlc_media_player.h
> +++ b/include/vlc/libvlc_media_player.h
> @@ -1419,9 +1419,12 @@ 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 deinterlace mode -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,> + int deinterlace,
> const char
> *psz_mode );>
> /**
> diff --git a/lib/video.c b/lib/video.c
> index a3e5b248e9..4a5c737218 100644
> --- a/lib/video.c
> +++ b/lib/video.c
> @@ -663,13 +663,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")> @@ -679,13 +683,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, &n);
> @@ -693,13 +694,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);
> --
> 2.15.1 (Apple Git-101)
>
>
>
>
>> On 5 May 2018, at 17:36, Luís Fernandes <zipleen at gmail.com> wrote:
>>
>> Hi,
>>
>> In lieu of speed, here’s the patch with the deinterlace=0 removed and
>> comment adjusted.>>
>> You can choose which one you think it’s best!
>>
>> Cheers,
>> Luís
>>
>> From effa894f8231379841f7c387a6931064fcca929d Mon Sep 17
>> 00:00:00 2001>> From: Luis Fernandes <zipleen at gmail.com>
>> Date: Mon, 30 Apr 2018 14:33:08 +0100
>> Subject: [PATCH] add auto deinterlacer-mode which is also valid
>>
>> ---
>> lib/video.c | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/lib/video.c b/lib/video.c
>> index 035cc0ebf1..a3e5b248e9 100644
>> --- a/lib/video.c
>> +++ b/lib/video.c
>> @@ -675,7 +675,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)
>> --
>> 2.14.3 (Apple Git-98)
>>
>> From 7ca094304c3485b83efd3263e3e67c7085871444 Mon Sep 17
>> 00:00:00 2001>> From: Luis Fernandes <zipleen at gmail.com>
>> Date: Sat, 5 May 2018 17:34:14 +0100
>> Subject: [PATCH] change function of deinterlace to specify which
>> deinterlace>> mode and filter we want to use
>>
>> ---
>> include/vlc/libvlc_media_player.h | 5 ++++-
>> lib/video.c | 28 ++++++++++++++-------------->> 2 files changed, 18 insertions(+), 15 deletions(-)
>>
>> diff --git a/include/vlc/libvlc_media_player.h
>> b/include/vlc/libvlc_media_player.h>> index 20b220448b..cbb5ec251a 100644
>> --- a/include/vlc/libvlc_media_player.h
>> +++ b/include/vlc/libvlc_media_player.h
>> @@ -1419,9 +1419,12 @@ 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 deinterlace mode -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,>> + int deinterlace,
>> const char
>> *psz_mode );>>
>> /**
>> diff --git a/lib/video.c b/lib/video.c
>> index a3e5b248e9..a8dd5b84b2 100644
>> --- a/lib/video.c
>> +++ b/lib/video.c
>> @@ -663,13 +663,19 @@ 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")>> @@ -679,13 +685,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, &n);
>> @@ -693,13 +696,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);
>> --
>> 2.15.1 (Apple Git-101)
>>
>> <auto_deinterlace_mode.patch>
>>
>> <set_auto_deinterlace_1.patch>
>>
>>
>>> On 4 May 2018, at 17:12, Luis Fernandes <zipleen at gmail.com> wrote:
>>>
>>>
>>> Hi Thomas,
>>>
>>> No worries!
>>>
>>> The forcing of that is about the comment in the function "if mode is
>>> NULL, deinterlace will be disabled".>>>
>>> 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.>>>
>>> Cheers,
>>> Luís
>>>
>>> On 4 May 2018, at 16:34, Thomas Guillem <thomas at gllm.fr> wrote:
>>>>
>>>> On Fri, May 4, 2018, at 16:53, Luís Fernandes wrote:
>>>>> Hi,
>>>>>
>>>>> Here’s the patch without fetching the config.
>>>>>
>>>>> @Thomas as a side note, I did only add the "fetching of the
>>>>> default deinterlace value" on your suggestion in the VLCKit
>>>>> mailing list ;)>>>>
>>>> Yes sorry about that, but since you can now set the "auto" mode
>>>> with your patches, I don't think it's useful anymore.>>>>
>>>>>
>>>>> @Caro as soon as this is accepted I’ll update the VLCKit patch!
>>>>>
>>>>> Cheers,
>>>>> Luís
>>>>>
>>>>>
>>>>> From effa894f8231379841f7c387a6931064fcca929d Mon Sep 17 00:00:00
>>>>> 2001>>>>> From: Luis Fernandes <zipleen at gmail.com>
>>>>> Date: Mon, 30 Apr 2018 14:33:08 +0100
>>>>> Subject: [PATCH] add auto deinterlacer-mode which is also valid
>>>>>
>>>>> ---
>>>>> lib/video.c | 3 ++-
>>>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/lib/video.c b/lib/video.c
>>>>> index 035cc0ebf1..a3e5b248e9 100644
>>>>> --- a/lib/video.c
>>>>> +++ b/lib/video.c
>>>>> @@ -675,7 +675,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)
>>>>> --
>>>>> 2.14.3 (Apple Git-98)
>>>>>
>>>>>
>>>>> From 71ea2190622c64e4adfe03a4131a17861f0ffe8f Mon Sep 17 00:00:00
>>>>> 2001>>>>> From: Luis Fernandes <zipleen at gmail.com>
>>>>> Date: Fri, 4 May 2018 15:42:56 +0100
>>>>> Subject: [PATCH] change function of deinterlace to specify which
>>>>> deinterlace>>>>> mode and filter we want to use
>>>>>
>>>>> ---
>>>>> include/vlc/libvlc_media_player.h | 5 ++++-
>>>>> lib/video.c | 29 +++++++++++++++-------------->>>>> 2 files changed, 19 insertions(+), 15 deletions(-)
>>>>>
>>>>> diff --git a/include/vlc/libvlc_media_player.h
>>>>> b/include/vlc/libvlc_media_player.h>>>>> index 20b220448b..a82f70f5e7 100644
>>>>> --- a/include/vlc/libvlc_media_player.h
>>>>> +++ b/include/vlc/libvlc_media_player.h
>>>>> @@ -1419,9 +1419,12 @@ 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 deinterlace mode -1:auto (default), 0:
>>>>> disabled, 1: enabled>>>>> + * \param psz_mode type of deinterlace filter, NULL to default
>>>>> + * \version LibVLC 4.0.0 and later
>>>>> */
>>>>> LIBVLC_API void libvlc_video_set_deinterlace(
>>>>> libvlc_media_player_t *p_mi,>>>>> + int
>>>>> deinterlace,>>>>> const char
>>>>> *psz_mode );>>>>>
>>>>> /**
>>>>> diff --git a/lib/video.c b/lib/video.c
>>>>> index a3e5b248e9..f23320a528 100644
>>>>> --- a/lib/video.c
>>>>> +++ b/lib/video.c
>>>>> @@ -663,13 +663,20 @@ 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 = "";
>>>>> + deinterlace = 0;
>>>>
>>>> Why forcing deinterlace to zero in that case ?
>>>>
>>>>> + }
>>>>> +
>>>>> if (*psz_mode
>>>>> && strcmp (psz_mode, "blend") && strcmp (psz_mode, "bob")>>>>> && strcmp (psz_mode, "discard") && strcmp (psz_mode,
>>>>> "linear")>>>>> @@ -679,13 +686,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, &n);
>>>>> @@ -693,13 +697,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);
>>>>> --
>>>>> 2.15.1 (Apple Git-101)
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> On 4 May 2018, at 09:58, Carola Nitz via vlc-devel <vlc-
>>>>>> devel at videolan.org> wrote:>>>>>>
>>>>>>
>>>>>> *From: *Carola Nitz <nitz.carola at googlemail.com>
>>>>>> *Subject: **Re: [vlc-devel] [PATCH] Enable/Disable/Auto
>>>>>> deinterlace functions for libvlc*>>>>>> *Date: *4 May 2018 at 09:58:49 GMT+1
>>>>>> *To: *Mailing list for VLC media player developers <vlc-
>>>>>> devel at videolan.org>>>>>>>
>>>>>>
>>>>>> Hey Luis,
>>>>>>
>>>>>> I just wanted to follow up on this.
>>>>>> Did you have time to adjust this patch and address the leak ?
>>>>>> I’d love for this to get merged into master :)
>>>>>>
>>>>>> Best,
>>>>>> Caro
>>>>>>
>>>>>>> On May 3, 2018, at 11:26 AM, Thomas Guillem <thomas at gllm.fr>
>>>>>>> wrote:>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Apr 30, 2018, at 18:29, Luís Miguel Fernandes wrote:
>>>>>>>> Hi Steve,
>>>>>>>>
>>>>>>>> Thanks for the comments, here's the revised patches.
>>>>>>>>
>>>>>>>> From effa894f8231379841f7c387a6931064fcca929d Mon Sep 17
>>>>>>>> 00:00:00 2001>>>>>>>> From: Luis Fernandes <zipleen at gmail.com>
>>>>>>>> Date: Mon, 30 Apr 2018 14:33:08 +0100
>>>>>>>> Subject: [PATCH] add auto deinterlacer-mode which is also valid>>>>>>>>
>>>>>>>> ---
>>>>>>>> lib/video.c | 3 ++-
>>>>>>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>>>>>>>
>>>>>>>> diff --git a/lib/video.c b/lib/video.c
>>>>>>>> index 035cc0ebf1..a3e5b248e9 100644
>>>>>>>> --- a/lib/video.c
>>>>>>>> +++ b/lib/video.c
>>>>>>>> @@ -675,7 +675,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)
>>>>>>>> --
>>>>>>>> 2.14.3 (Apple Git-98)
>>>>>>>>
>>>>>>>> From 2b656a5fca5c69e626ac1727d7bc9f3d980f37e6 Mon Sep 17
>>>>>>>> 00:00:00 2001>>>>>>>> From: Luis Fernandes <zipleen at gmail.com>
>>>>>>>> Date: Mon, 30 Apr 2018 14:43:00 +0100
>>>>>>>> Subject: [PATCH] change function of deinterlace to specify
>>>>>>>> which deinterlace>>>>>>>> mode and filter we want to use
>>>>>>>>
>>>>>>>> ---
>>>>>>>> include/vlc/libvlc_media_player.h | 5 ++++-
>>>>>>>> lib/video.c | 34 ++++++++++++++++++++-------------->>>>>>>> 2 files changed, 24 insertions(+), 15 deletions(-)
>>>>>>>>
>>>>>>>> diff --git a/include/vlc/libvlc_media_player.h
>>>>>>>> b/include/vlc/libvlc_media_player.h>>>>>>>> index 20b220448b..a82f70f5e7 100644
>>>>>>>> --- a/include/vlc/libvlc_media_player.h
>>>>>>>> +++ b/include/vlc/libvlc_media_player.h
>>>>>>>> @@ -1419,9 +1419,12 @@ 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 deinterlace mode -1:auto (default), 0:
>>>>>>>> disabled, 1: enabled>>>>>>>> + * \param psz_mode type of deinterlace filter, NULL to default>>>>>>>> + * \version LibVLC 4.0.0 and later
>>>>>>>> */
>>>>>>>> LIBVLC_API void libvlc_video_set_deinterlace(
>>>>>>>> libvlc_media_player_t *p_mi,>>>>>>>> + int deinter-
>>>>>>>> lace,>>>>>>>> const char
>>>>>>>> *psz_mode );>>>>>>>>
>>>>>>>> /**
>>>>>>>> diff --git a/lib/video.c b/lib/video.c
>>>>>>>> index a3e5b248e9..f96fec7a79 100644
>>>>>>>> --- a/lib/video.c
>>>>>>>> +++ b/lib/video.c
>>>>>>>> @@ -663,13 +663,25 @@ 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 = var_GetString(p_mi, "deinterlace-mode");
>>>>>>>> + }
>>>>>>>
>>>>>>> You leak psz_mode here.
>>>>>>> But I think it should stay NULL. Just don't set "deinterlace-
>>>>>>> mode" in that case but only the "deinterlace" int.>>>>>>>
>>>>>>>> +
>>>>>>>> if (psz_mode == NULL)
>>>>>>>> + {
>>>>>>>> psz_mode = "";
>>>>>>>> + deinterlace = 0;
>>>>>>>> + }
>>>>>>>> +
>>>>>>>> if (*psz_mode
>>>>>>>> && strcmp (psz_mode, "blend") && strcmp (psz_mode,
>>>>>>>> "bob")>>>>>>>> && strcmp (psz_mode, "discard") && strcmp (psz_mode,
>>>>>>>> "linear")>>>>>>>> @@ -679,13 +691,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, &n);
>>>>>>>> @@ -693,13 +702,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);
>>>>>>>> --
>>>>>>>> 2.14.3 (Apple Git-98)
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Regards,
>>>>>>>> Luís
>>>>>>>>
>>>>>>>>> On 30 Apr 2018, at 07:55, Steve Lhomme <robux4 at ycbcr.xyz>
>>>>>>>>> wrote:>>>>>>>>>
>>>>>>>>> Please post your patches inline, it's easier to comment
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> + if (deinterlace < -1 || deinterlace > 1)
>>>>>>>>> + deinterlace = -1;
>>>>>>>>> To make it more clear what you're doing maybe check if the
>>>>>>>>> value is neither 0 nor 1.>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> + module_config_t *config = config_FindConfig("deinterlace-
>>>>>>>>> mode");>>>>>>>>> This should be var_GetString
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> + && strcmp (psz_mode, "auto"))
>>>>>>>>> It seems that should go in another patch before this one.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> - var_SetInteger (p_mi, "deinterlace", 1);
>>>>>>>>> + var_SetInteger (p_mi, "deinterlace", deinterlace);
>>>>>>>>> }
>>>>>>>>> else
>>>>>>>>> - var_SetInteger (p_mi, "deinterlace", 0);
>>>>>>>>> + var_SetInteger (p_mi, "deinterlace", deinterlace);
>>>>>>>>>
>>>>>>>>> In both cases of the else you do the same call. So don't do it
>>>>>>>>> in the else.>>>>>>>>>
>>>>>>>>> Le 28/04/2018 à 20:13, Luís Fernandes a écrit :
>>>>>>>>>> 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
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> On 22 Apr 2018, at 11:13, Jean-Baptiste Kempf
>>>>>>>>>>> <jb at videolan.org> wrote: Hello, On Sun, 22 Apr 2018, at
>>>>>>>>>>> 09:37, Rémi Denis-Courmont wrote:
>>>>>>>>>>>
>>>>>>>>>>>> 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.
>>>>>>>>>>>>
>>>>>>>>>>> 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:
>>>>>>>>>>> https://mailman.videolan.org/listinfo/vlc-devel
>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________ vlc-devel
>>>>>>>>>> mailing list To unsubscribe or modify your subscription
>>>>>>>>>> options: https://mailman.videolan.org/listinfo/vlc-devel>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> vlc-devel mailing list
>>>>>>>>> To unsubscribe or modify your subscription options:
>>>>>>>>> https://mailman.videolan.org/listinfo/vlc-devel
>>>>>>>> _________________________________________________
>>>>>>>> vlc-devel mailing list
>>>>>>>> To unsubscribe or modify your subscription options:
>>>>>>>> https://mailman.videolan.org/listinfo/vlc-devel
>>>>>>>> Email had 2 attachments:
>>>>>>>> * auto_deinterlace.patch 1k (text/plain)
>>>>>>>> * set_filter_auto_deinterlace.patch 5k (text/plain)>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> vlc-devel mailing list
>>>>>>> To unsubscribe or modify your subscription options:
>>>>>>> https://mailman.videolan.org/listinfo/vlc-devel
>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> vlc-devel mailing list
>>>>>> To unsubscribe or modify your subscription options:
>>>>>> https://mailman.videolan.org/listinfo/vlc-devel
>>>>>
>>>>> _________________________________________________
>>>>> vlc-devel mailing list
>>>>> To unsubscribe or modify your subscription options:
>>>>> https://mailman.videolan.org/listinfo/vlc-devel
>>>>> Email had 2 attachments:
>>>>> * auto_deinterlace_mode.patch 1k (text/plain)
>>>>> * set_auto_deinterlace.patch 5k (text/plain)>>>>
>>>> _______________________________________________
>>>> vlc-devel mailing list
>>>> To unsubscribe or modify your subscription options:
>>>> https://mailman.videolan.org/listinfo/vlc-devel
>>> _______________________________________________
>>> vlc-devel mailing list
>>> To unsubscribe or modify your subscription options:
>>> https://mailman.videolan.org/listinfo/vlc-devel
> _________________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
> Email had 2 attachments:
> * auto_deinterlace_mode.patch 1k (text/plain)
> * set_auto_deinterlace_1.patch 5k (text/plain)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20180509/741e7163/attachment.html>
More information about the vlc-devel
mailing list