[FFmpeg-devel] ffplay: added option always on top for video window

Submitted by Daniel Kucera on May 13, 2019, 11:42 a.m.

Details

Message ID 20190513114237.20168-1-daniel.kucera@gmail.com
State Accepted
Commit 8d9910a23ab3433dbbddb9076129745f6964c1c4
Headers show

Commit Message

Daniel Kucera May 13, 2019, 11:42 a.m.
From: Daniel Kucera <github@danman.eu>

Signed-off-by: Daniel Kucera <github@danman.eu>
---
 doc/ffplay.texi  | 2 ++
 fftools/ffplay.c | 8 ++++++++
 2 files changed, 10 insertions(+)

Comments

Daniel Kucera May 14, 2019, 10:52 a.m.
po 13. 5. 2019 o 13:42 Daniel Kucera <daniel.kucera@gmail.com> napísal(a):
>
> From: Daniel Kucera <github@danman.eu>
>
> Signed-off-by: Daniel Kucera <github@danman.eu>
> ---
>  doc/ffplay.texi  | 2 ++
>  fftools/ffplay.c | 8 ++++++++
>  2 files changed, 10 insertions(+)
>
> diff --git a/doc/ffplay.texi b/doc/ffplay.texi
> index c305465078..a487c0de8d 100644
> --- a/doc/ffplay.texi
> +++ b/doc/ffplay.texi
> @@ -66,6 +66,8 @@ Set custom interval, in seconds, for seeking using left/right keys. Default is 1
>  Disable graphical display.
>  @item -noborder
>  Borderless window.
> +@item -alwaysontop
> +Window always on top. Available on: X11 with SDL >= 2.0.5, Windows SDL >= 2.0.6.
>  @item -volume
>  Set the startup volume. 0 means silence, 100 means no volume reduction or
>  amplification. Negative values are treated as 0, values above 100 are treated
> diff --git a/fftools/ffplay.c b/fftools/ffplay.c
> index 8f050e16e6..8fb8faeb06 100644
> --- a/fftools/ffplay.c
> +++ b/fftools/ffplay.c
> @@ -324,6 +324,7 @@ static int seek_by_bytes = -1;
>  static float seek_interval = 10;
>  static int display_disable;
>  static int borderless;
> +static int alwaysontop;
>  static int startup_volume = 100;
>  static int show_status = 1;
>  static int av_sync_type = AV_SYNC_AUDIO_MASTER;
> @@ -3581,6 +3582,7 @@ static const OptionDef options[] = {
>      { "seek_interval", OPT_FLOAT | HAS_ARG, { &seek_interval }, "set seek interval for left/right keys, in seconds", "seconds" },
>      { "nodisp", OPT_BOOL, { &display_disable }, "disable graphical display" },
>      { "noborder", OPT_BOOL, { &borderless }, "borderless window" },
> +    { "alwaysontop", OPT_BOOL, { &alwaysontop }, "window always on top" },
>      { "volume", OPT_INT | HAS_ARG, { &startup_volume}, "set startup volume 0=min 100=max", "volume" },
>      { "f", HAS_ARG, { .func_arg = opt_format }, "force format", "fmt" },
>      { "pix_fmt", HAS_ARG | OPT_EXPERT | OPT_VIDEO, { .func_arg = opt_frame_pix_fmt }, "set pixel format", "format" },
> @@ -3722,6 +3724,12 @@ int main(int argc, char **argv)
>
>      if (!display_disable) {
>          int flags = SDL_WINDOW_HIDDEN;
> +        if (alwaysontop)
> +#if SDL_VERSION_ATLEAST(2,0,5)
> +            flags |= SDL_WINDOW_ALWAYS_ON_TOP;
> +#else
> +            av_log(NULL, AV_LOG_WARNING, "Your SDL version doesn't support SDL_WINDOW_ALWAYS_ON_TOP. Feature will be inactive.\n");
> +#endif
>          if (borderless)
>              flags |= SDL_WINDOW_BORDERLESS;
>          else
> --
> 2.17.1
>

Ping.
Daniel Kucera May 15, 2019, 9:14 a.m.
>
> Ping.
>
> --
>
> S pozdravom / Best regards
> Daniel Kucera.

Ping.
Daniel Kucera May 16, 2019, 10:04 a.m.
Dňa st 15. 5. 2019, 11:14 Daniel Kučera <daniel.kucera@gmail.com>
napísal(a):

> >
> > Ping.
> >
> > --
> >
> > S pozdravom / Best regards
> > Daniel Kucera.
>
> Ping.
>
> --
>
> S pozdravom / Best regards
> Daniel Kucera.
>

Ping.

>
Daniel Kucera May 17, 2019, 7:12 p.m.
Dňa št 16. 5. 2019, 12:04 Daniel Kučera <daniel.kucera@gmail.com>
napísal(a):

>
>
> Dňa st 15. 5. 2019, 11:14 Daniel Kučera <daniel.kucera@gmail.com>
> napísal(a):
>
>> >
>> > Ping.
>> >
>> > --
>> >
>> > S pozdravom / Best regards
>> > Daniel Kucera.
>>
>> Ping.
>>
>> --
>>
>> S pozdravom / Best regards
>> Daniel Kucera.
>>
>
> Ping.
>

Ping.
Daniel Kucera May 19, 2019, 9:43 a.m.
Dňa pi 17. 5. 2019, 21:12 Daniel Kučera <daniel.kucera@gmail.com>
napísal(a):

>
>
> Dňa št 16. 5. 2019, 12:04 Daniel Kučera <daniel.kucera@gmail.com>
> napísal(a):
>
>>
>>
>> Dňa st 15. 5. 2019, 11:14 Daniel Kučera <daniel.kucera@gmail.com>
>> napísal(a):
>>
>>> >
>>> > Ping.
>>> >
>>> > --
>>> >
>>> > S pozdravom / Best regards
>>> > Daniel Kucera.
>>>
>>> Ping.
>>>
>>> --
>>>
>>> S pozdravom / Best regards
>>> Daniel Kucera.
>>>
>>
>> Ping.
>>
>
> Ping.
>

Ping. I can to this every day.

>
James Almer May 19, 2019, 2:13 p.m.
On 5/19/2019 6:43 AM, Daniel Kučera wrote:
> Dňa pi 17. 5. 2019, 21:12 Daniel Kučera <daniel.kucera@gmail.com>
> napísal(a):
> 
>>
>>
>> Dňa št 16. 5. 2019, 12:04 Daniel Kučera <daniel.kucera@gmail.com>
>> napísal(a):
>>
>>>
>>>
>>> Dňa st 15. 5. 2019, 11:14 Daniel Kučera <daniel.kucera@gmail.com>
>>> napísal(a):
>>>
>>>>>
>>>>> Ping.
>>>>>
>>>>> --
>>>>>
>>>>> S pozdravom / Best regards
>>>>> Daniel Kucera.
>>>>
>>>> Ping.
>>>>
>>>> --
>>>>
>>>> S pozdravom / Best regards
>>>> Daniel Kucera.
>>>>
>>>
>>> Ping.
>>>
>>
>> Ping.
>>
> 
> Ping. I can to this every day.

Daily pings will not make it more likely for someone familiar with
ffplay to see and review your patch. Especially during a weekend.

Try to be a bit more patient, please. Wait five days before pinging a patch.
Daniel Kucera May 19, 2019, 10:17 p.m.
Dňa ne 19. 5. 2019, 16:14 James Almer <jamrial@gmail.com> napísal(a):

> On 5/19/2019 6:43 AM, Daniel Kučera wrote:
> > Dňa pi 17. 5. 2019, 21:12 Daniel Kučera <daniel.kucera@gmail.com>
> > napísal(a):
> >
> >>
> >>
> >> Dňa št 16. 5. 2019, 12:04 Daniel Kučera <daniel.kucera@gmail.com>
> >> napísal(a):
> >>
> >>>
> >>>
> >>> Dňa st 15. 5. 2019, 11:14 Daniel Kučera <daniel.kucera@gmail.com>
> >>> napísal(a):
> >>>
> >>>>>
> >>>>> Ping.
> >>>>>
> >>>>> --
> >>>>>
> >>>>> S pozdravom / Best regards
> >>>>> Daniel Kucera.
> >>>>
> >>>> Ping.
> >>>>
> >>>> --
> >>>>
> >>>> S pozdravom / Best regards
> >>>> Daniel Kucera.
> >>>>
> >>>
> >>> Ping.
> >>>
> >>
> >> Ping.
> >>
> >
> > Ping. I can to this every day.
>
> Daily pings will not make it more likely for someone familiar with
> ffplay to see and review your patch. Especially during a weekend.
>
> Try to be a bit more patient, please. Wait five days before pinging a
> patch.
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".


It's been 7 days already. And the patch is under 10 simple lines...
Carl Eugen Hoyos May 20, 2019, 8:16 a.m.
Marton,

Am Mo., 13. Mai 2019 um 13:42 Uhr schrieb Daniel Kucera
<daniel.kucera@gmail.com>:
>
> From: Daniel Kucera <github@danman.eu>
>
> Signed-off-by: Daniel Kucera <github@danman.eu>
> ---
>  doc/ffplay.texi  | 2 ++
>  fftools/ffplay.c | 8 ++++++++
>  2 files changed, 10 insertions(+)
>
> diff --git a/doc/ffplay.texi b/doc/ffplay.texi
> index c305465078..a487c0de8d 100644
> --- a/doc/ffplay.texi
> +++ b/doc/ffplay.texi
> @@ -66,6 +66,8 @@ Set custom interval, in seconds, for seeking using left/right keys. Default is 1
>  Disable graphical display.
>  @item -noborder
>  Borderless window.
> +@item -alwaysontop
> +Window always on top. Available on: X11 with SDL >= 2.0.5, Windows SDL >= 2.0.6.
>  @item -volume
>  Set the startup volume. 0 means silence, 100 means no volume reduction or
>  amplification. Negative values are treated as 0, values above 100 are treated
> diff --git a/fftools/ffplay.c b/fftools/ffplay.c
> index 8f050e16e6..8fb8faeb06 100644
> --- a/fftools/ffplay.c
> +++ b/fftools/ffplay.c
> @@ -324,6 +324,7 @@ static int seek_by_bytes = -1;
>  static float seek_interval = 10;
>  static int display_disable;
>  static int borderless;
> +static int alwaysontop;
>  static int startup_volume = 100;
>  static int show_status = 1;
>  static int av_sync_type = AV_SYNC_AUDIO_MASTER;
> @@ -3581,6 +3582,7 @@ static const OptionDef options[] = {
>      { "seek_interval", OPT_FLOAT | HAS_ARG, { &seek_interval }, "set seek interval for left/right keys, in seconds", "seconds" },
>      { "nodisp", OPT_BOOL, { &display_disable }, "disable graphical display" },
>      { "noborder", OPT_BOOL, { &borderless }, "borderless window" },
> +    { "alwaysontop", OPT_BOOL, { &alwaysontop }, "window always on top" },
>      { "volume", OPT_INT | HAS_ARG, { &startup_volume}, "set startup volume 0=min 100=max", "volume" },
>      { "f", HAS_ARG, { .func_arg = opt_format }, "force format", "fmt" },
>      { "pix_fmt", HAS_ARG | OPT_EXPERT | OPT_VIDEO, { .func_arg = opt_frame_pix_fmt }, "set pixel format", "format" },
> @@ -3722,6 +3724,12 @@ int main(int argc, char **argv)
>
>      if (!display_disable) {
>          int flags = SDL_WINDOW_HIDDEN;
> +        if (alwaysontop)
> +#if SDL_VERSION_ATLEAST(2,0,5)
> +            flags |= SDL_WINDOW_ALWAYS_ON_TOP;
> +#else
> +            av_log(NULL, AV_LOG_WARNING, "Your SDL version doesn't support SDL_WINDOW_ALWAYS_ON_TOP. Feature will be inactive.\n");
> +#endif

Is there any reason you are against this patch?

Carl Eugen
Marton Balint May 20, 2019, 7:01 p.m.
On Mon, 20 May 2019, Carl Eugen Hoyos wrote:

> Marton,
>
> Am Mo., 13. Mai 2019 um 13:42 Uhr schrieb Daniel Kucera
> <daniel.kucera@gmail.com>:
>>
>> From: Daniel Kucera <github@danman.eu>
>>
>> Signed-off-by: Daniel Kucera <github@danman.eu>
>> ---
>>  doc/ffplay.texi  | 2 ++
>>  fftools/ffplay.c | 8 ++++++++
>>  2 files changed, 10 insertions(+)
>>
>> diff --git a/doc/ffplay.texi b/doc/ffplay.texi
>> index c305465078..a487c0de8d 100644
>> --- a/doc/ffplay.texi
>> +++ b/doc/ffplay.texi
>> @@ -66,6 +66,8 @@ Set custom interval, in seconds, for seeking using left/right keys. Default is 1
>>  Disable graphical display.
>>  @item -noborder
>>  Borderless window.
>> +@item -alwaysontop
>> +Window always on top. Available on: X11 with SDL >= 2.0.5, Windows SDL >= 2.0.6.
>>  @item -volume
>>  Set the startup volume. 0 means silence, 100 means no volume reduction or
>>  amplification. Negative values are treated as 0, values above 100 are treated
>> diff --git a/fftools/ffplay.c b/fftools/ffplay.c
>> index 8f050e16e6..8fb8faeb06 100644
>> --- a/fftools/ffplay.c
>> +++ b/fftools/ffplay.c
>> @@ -324,6 +324,7 @@ static int seek_by_bytes = -1;
>>  static float seek_interval = 10;
>>  static int display_disable;
>>  static int borderless;
>> +static int alwaysontop;
>>  static int startup_volume = 100;
>>  static int show_status = 1;
>>  static int av_sync_type = AV_SYNC_AUDIO_MASTER;
>> @@ -3581,6 +3582,7 @@ static const OptionDef options[] = {
>>      { "seek_interval", OPT_FLOAT | HAS_ARG, { &seek_interval }, "set seek interval for left/right keys, in seconds", "seconds" },
>>      { "nodisp", OPT_BOOL, { &display_disable }, "disable graphical display" },
>>      { "noborder", OPT_BOOL, { &borderless }, "borderless window" },
>> +    { "alwaysontop", OPT_BOOL, { &alwaysontop }, "window always on top" },
>>      { "volume", OPT_INT | HAS_ARG, { &startup_volume}, "set startup volume 0=min 100=max", "volume" },
>>      { "f", HAS_ARG, { .func_arg = opt_format }, "force format", "fmt" },
>>      { "pix_fmt", HAS_ARG | OPT_EXPERT | OPT_VIDEO, { .func_arg = opt_frame_pix_fmt }, "set pixel format", "format" },
>> @@ -3722,6 +3724,12 @@ int main(int argc, char **argv)
>>
>>      if (!display_disable) {
>>          int flags = SDL_WINDOW_HIDDEN;
>> +        if (alwaysontop)
>> +#if SDL_VERSION_ATLEAST(2,0,5)
>> +            flags |= SDL_WINDOW_ALWAYS_ON_TOP;
>> +#else
>> +            av_log(NULL, AV_LOG_WARNING, "Your SDL version doesn't support SDL_WINDOW_ALWAYS_ON_TOP. Feature will be inactive.\n");
>> +#endif
>
> Is there any reason you are against this patch?

I am not against it, it looks good to me.

Regards,
Marton
James Almer May 20, 2019, 7:04 p.m.
On 5/20/2019 4:01 PM, Marton Balint wrote:
> 
> On Mon, 20 May 2019, Carl Eugen Hoyos wrote:
> 
>> Marton,
>>
>> Am Mo., 13. Mai 2019 um 13:42 Uhr schrieb Daniel Kucera
>> <daniel.kucera@gmail.com>:
>>>
>>> From: Daniel Kucera <github@danman.eu>
>>>
>>> Signed-off-by: Daniel Kucera <github@danman.eu>
>>> ---
>>>  doc/ffplay.texi  | 2 ++
>>>  fftools/ffplay.c | 8 ++++++++
>>>  2 files changed, 10 insertions(+)
>>>
>>> diff --git a/doc/ffplay.texi b/doc/ffplay.texi
>>> index c305465078..a487c0de8d 100644
>>> --- a/doc/ffplay.texi
>>> +++ b/doc/ffplay.texi
>>> @@ -66,6 +66,8 @@ Set custom interval, in seconds, for seeking using
>>> left/right keys. Default is 1
>>>  Disable graphical display.
>>>  @item -noborder
>>>  Borderless window.
>>> +@item -alwaysontop
>>> +Window always on top. Available on: X11 with SDL >= 2.0.5, Windows
>>> SDL >= 2.0.6.
>>>  @item -volume
>>>  Set the startup volume. 0 means silence, 100 means no volume
>>> reduction or
>>>  amplification. Negative values are treated as 0, values above 100
>>> are treated
>>> diff --git a/fftools/ffplay.c b/fftools/ffplay.c
>>> index 8f050e16e6..8fb8faeb06 100644
>>> --- a/fftools/ffplay.c
>>> +++ b/fftools/ffplay.c
>>> @@ -324,6 +324,7 @@ static int seek_by_bytes = -1;
>>>  static float seek_interval = 10;
>>>  static int display_disable;
>>>  static int borderless;
>>> +static int alwaysontop;
>>>  static int startup_volume = 100;
>>>  static int show_status = 1;
>>>  static int av_sync_type = AV_SYNC_AUDIO_MASTER;
>>> @@ -3581,6 +3582,7 @@ static const OptionDef options[] = {
>>>      { "seek_interval", OPT_FLOAT | HAS_ARG, { &seek_interval }, "set
>>> seek interval for left/right keys, in seconds", "seconds" },
>>>      { "nodisp", OPT_BOOL, { &display_disable }, "disable graphical
>>> display" },
>>>      { "noborder", OPT_BOOL, { &borderless }, "borderless window" },
>>> +    { "alwaysontop", OPT_BOOL, { &alwaysontop }, "window always on
>>> top" },
>>>      { "volume", OPT_INT | HAS_ARG, { &startup_volume}, "set startup
>>> volume 0=min 100=max", "volume" },
>>>      { "f", HAS_ARG, { .func_arg = opt_format }, "force format",
>>> "fmt" },
>>>      { "pix_fmt", HAS_ARG | OPT_EXPERT | OPT_VIDEO, { .func_arg =
>>> opt_frame_pix_fmt }, "set pixel format", "format" },
>>> @@ -3722,6 +3724,12 @@ int main(int argc, char **argv)
>>>
>>>      if (!display_disable) {
>>>          int flags = SDL_WINDOW_HIDDEN;
>>> +        if (alwaysontop)
>>> +#if SDL_VERSION_ATLEAST(2,0,5)
>>> +            flags |= SDL_WINDOW_ALWAYS_ON_TOP;
>>> +#else
>>> +            av_log(NULL, AV_LOG_WARNING, "Your SDL version doesn't
>>> support SDL_WINDOW_ALWAYS_ON_TOP. Feature will be inactive.\n");
>>> +#endif
>>
>> Is there any reason you are against this patch?
> 
> I am not against it, it looks good to me.

Is the flag available in 2.0.5 for Windows, or only since 2.0.6 as the
doxy addition mentions?
Daniel Kucera May 20, 2019, 8:43 p.m.
po 20. 5. 2019 o 21:12 James Almer <jamrial@gmail.com> napísal(a):
>
> On 5/20/2019 4:01 PM, Marton Balint wrote:
> >
> > On Mon, 20 May 2019, Carl Eugen Hoyos wrote:
> >
> >> Marton,
> >>
> >> Am Mo., 13. Mai 2019 um 13:42 Uhr schrieb Daniel Kucera
> >> <daniel.kucera@gmail.com>:
> >>>
> >>> From: Daniel Kucera <github@danman.eu>
> >>>
> >>> Signed-off-by: Daniel Kucera <github@danman.eu>
> >>> ---
> >>>  doc/ffplay.texi  | 2 ++
> >>>  fftools/ffplay.c | 8 ++++++++
> >>>  2 files changed, 10 insertions(+)
> >>>
> >>> diff --git a/doc/ffplay.texi b/doc/ffplay.texi
> >>> index c305465078..a487c0de8d 100644
> >>> --- a/doc/ffplay.texi
> >>> +++ b/doc/ffplay.texi
> >>> @@ -66,6 +66,8 @@ Set custom interval, in seconds, for seeking using
> >>> left/right keys. Default is 1
> >>>  Disable graphical display.
> >>>  @item -noborder
> >>>  Borderless window.
> >>> +@item -alwaysontop
> >>> +Window always on top. Available on: X11 with SDL >= 2.0.5, Windows
> >>> SDL >= 2.0.6.
> >>>  @item -volume
> >>>  Set the startup volume. 0 means silence, 100 means no volume
> >>> reduction or
> >>>  amplification. Negative values are treated as 0, values above 100
> >>> are treated
> >>> diff --git a/fftools/ffplay.c b/fftools/ffplay.c
> >>> index 8f050e16e6..8fb8faeb06 100644
> >>> --- a/fftools/ffplay.c
> >>> +++ b/fftools/ffplay.c
> >>> @@ -324,6 +324,7 @@ static int seek_by_bytes = -1;
> >>>  static float seek_interval = 10;
> >>>  static int display_disable;
> >>>  static int borderless;
> >>> +static int alwaysontop;
> >>>  static int startup_volume = 100;
> >>>  static int show_status = 1;
> >>>  static int av_sync_type = AV_SYNC_AUDIO_MASTER;
> >>> @@ -3581,6 +3582,7 @@ static const OptionDef options[] = {
> >>>      { "seek_interval", OPT_FLOAT | HAS_ARG, { &seek_interval }, "set
> >>> seek interval for left/right keys, in seconds", "seconds" },
> >>>      { "nodisp", OPT_BOOL, { &display_disable }, "disable graphical
> >>> display" },
> >>>      { "noborder", OPT_BOOL, { &borderless }, "borderless window" },
> >>> +    { "alwaysontop", OPT_BOOL, { &alwaysontop }, "window always on
> >>> top" },
> >>>      { "volume", OPT_INT | HAS_ARG, { &startup_volume}, "set startup
> >>> volume 0=min 100=max", "volume" },
> >>>      { "f", HAS_ARG, { .func_arg = opt_format }, "force format",
> >>> "fmt" },
> >>>      { "pix_fmt", HAS_ARG | OPT_EXPERT | OPT_VIDEO, { .func_arg =
> >>> opt_frame_pix_fmt }, "set pixel format", "format" },
> >>> @@ -3722,6 +3724,12 @@ int main(int argc, char **argv)
> >>>
> >>>      if (!display_disable) {
> >>>          int flags = SDL_WINDOW_HIDDEN;
> >>> +        if (alwaysontop)
> >>> +#if SDL_VERSION_ATLEAST(2,0,5)
> >>> +            flags |= SDL_WINDOW_ALWAYS_ON_TOP;
> >>> +#else
> >>> +            av_log(NULL, AV_LOG_WARNING, "Your SDL version doesn't
> >>> support SDL_WINDOW_ALWAYS_ON_TOP. Feature will be inactive.\n");
> >>> +#endif
> >>
> >> Is there any reason you are against this patch?
> >
> > I am not against it, it looks good to me.
>
> Is the flag available in 2.0.5 for Windows, or only since 2.0.6 as the
> doxy addition mentions?

The flag is available generally in the library since 2.0.5, but the
windows implementation is there since 2.0.6 only.

https://github.com/SDL-mirror/SDL/commit/a60edd403816eb8d7f77f18320b76d27c1db2973

https://github.com/SDL-mirror/SDL/commit/76adc80cafd9f83dcfb36ada4b2b028487f7e1d8
James Almer May 20, 2019, 8:55 p.m.
On 5/20/2019 5:43 PM, Daniel Kučera wrote:
> po 20. 5. 2019 o 21:12 James Almer <jamrial@gmail.com> napísal(a):
>>
>> On 5/20/2019 4:01 PM, Marton Balint wrote:
>>>
>>> On Mon, 20 May 2019, Carl Eugen Hoyos wrote:
>>>
>>>> Marton,
>>>>
>>>> Am Mo., 13. Mai 2019 um 13:42 Uhr schrieb Daniel Kucera
>>>> <daniel.kucera@gmail.com>:
>>>>>
>>>>> From: Daniel Kucera <github@danman.eu>
>>>>>
>>>>> Signed-off-by: Daniel Kucera <github@danman.eu>
>>>>> ---
>>>>>  doc/ffplay.texi  | 2 ++
>>>>>  fftools/ffplay.c | 8 ++++++++
>>>>>  2 files changed, 10 insertions(+)
>>>>>
>>>>> diff --git a/doc/ffplay.texi b/doc/ffplay.texi
>>>>> index c305465078..a487c0de8d 100644
>>>>> --- a/doc/ffplay.texi
>>>>> +++ b/doc/ffplay.texi
>>>>> @@ -66,6 +66,8 @@ Set custom interval, in seconds, for seeking using
>>>>> left/right keys. Default is 1
>>>>>  Disable graphical display.
>>>>>  @item -noborder
>>>>>  Borderless window.
>>>>> +@item -alwaysontop
>>>>> +Window always on top. Available on: X11 with SDL >= 2.0.5, Windows
>>>>> SDL >= 2.0.6.
>>>>>  @item -volume
>>>>>  Set the startup volume. 0 means silence, 100 means no volume
>>>>> reduction or
>>>>>  amplification. Negative values are treated as 0, values above 100
>>>>> are treated
>>>>> diff --git a/fftools/ffplay.c b/fftools/ffplay.c
>>>>> index 8f050e16e6..8fb8faeb06 100644
>>>>> --- a/fftools/ffplay.c
>>>>> +++ b/fftools/ffplay.c
>>>>> @@ -324,6 +324,7 @@ static int seek_by_bytes = -1;
>>>>>  static float seek_interval = 10;
>>>>>  static int display_disable;
>>>>>  static int borderless;
>>>>> +static int alwaysontop;
>>>>>  static int startup_volume = 100;
>>>>>  static int show_status = 1;
>>>>>  static int av_sync_type = AV_SYNC_AUDIO_MASTER;
>>>>> @@ -3581,6 +3582,7 @@ static const OptionDef options[] = {
>>>>>      { "seek_interval", OPT_FLOAT | HAS_ARG, { &seek_interval }, "set
>>>>> seek interval for left/right keys, in seconds", "seconds" },
>>>>>      { "nodisp", OPT_BOOL, { &display_disable }, "disable graphical
>>>>> display" },
>>>>>      { "noborder", OPT_BOOL, { &borderless }, "borderless window" },
>>>>> +    { "alwaysontop", OPT_BOOL, { &alwaysontop }, "window always on
>>>>> top" },
>>>>>      { "volume", OPT_INT | HAS_ARG, { &startup_volume}, "set startup
>>>>> volume 0=min 100=max", "volume" },
>>>>>      { "f", HAS_ARG, { .func_arg = opt_format }, "force format",
>>>>> "fmt" },
>>>>>      { "pix_fmt", HAS_ARG | OPT_EXPERT | OPT_VIDEO, { .func_arg =
>>>>> opt_frame_pix_fmt }, "set pixel format", "format" },
>>>>> @@ -3722,6 +3724,12 @@ int main(int argc, char **argv)
>>>>>
>>>>>      if (!display_disable) {
>>>>>          int flags = SDL_WINDOW_HIDDEN;
>>>>> +        if (alwaysontop)
>>>>> +#if SDL_VERSION_ATLEAST(2,0,5)
>>>>> +            flags |= SDL_WINDOW_ALWAYS_ON_TOP;
>>>>> +#else
>>>>> +            av_log(NULL, AV_LOG_WARNING, "Your SDL version doesn't
>>>>> support SDL_WINDOW_ALWAYS_ON_TOP. Feature will be inactive.\n");
>>>>> +#endif
>>>>
>>>> Is there any reason you are against this patch?
>>>
>>> I am not against it, it looks good to me.
>>
>> Is the flag available in 2.0.5 for Windows, or only since 2.0.6 as the
>> doxy addition mentions?
> 
> The flag is available generally in the library since 2.0.5, but the
> windows implementation is there since 2.0.6 only.
> 
> https://github.com/SDL-mirror/SDL/commit/a60edd403816eb8d7f77f18320b76d27c1db2973
> 
> https://github.com/SDL-mirror/SDL/commit/76adc80cafd9f83dcfb36ada4b2b028487f7e1d8

Alright, pushed then. Thanks!

Patch hide | download patch | download mbox

diff --git a/doc/ffplay.texi b/doc/ffplay.texi
index c305465078..a487c0de8d 100644
--- a/doc/ffplay.texi
+++ b/doc/ffplay.texi
@@ -66,6 +66,8 @@  Set custom interval, in seconds, for seeking using left/right keys. Default is 1
 Disable graphical display.
 @item -noborder
 Borderless window.
+@item -alwaysontop
+Window always on top. Available on: X11 with SDL >= 2.0.5, Windows SDL >= 2.0.6.
 @item -volume
 Set the startup volume. 0 means silence, 100 means no volume reduction or
 amplification. Negative values are treated as 0, values above 100 are treated
diff --git a/fftools/ffplay.c b/fftools/ffplay.c
index 8f050e16e6..8fb8faeb06 100644
--- a/fftools/ffplay.c
+++ b/fftools/ffplay.c
@@ -324,6 +324,7 @@  static int seek_by_bytes = -1;
 static float seek_interval = 10;
 static int display_disable;
 static int borderless;
+static int alwaysontop;
 static int startup_volume = 100;
 static int show_status = 1;
 static int av_sync_type = AV_SYNC_AUDIO_MASTER;
@@ -3581,6 +3582,7 @@  static const OptionDef options[] = {
     { "seek_interval", OPT_FLOAT | HAS_ARG, { &seek_interval }, "set seek interval for left/right keys, in seconds", "seconds" },
     { "nodisp", OPT_BOOL, { &display_disable }, "disable graphical display" },
     { "noborder", OPT_BOOL, { &borderless }, "borderless window" },
+    { "alwaysontop", OPT_BOOL, { &alwaysontop }, "window always on top" },
     { "volume", OPT_INT | HAS_ARG, { &startup_volume}, "set startup volume 0=min 100=max", "volume" },
     { "f", HAS_ARG, { .func_arg = opt_format }, "force format", "fmt" },
     { "pix_fmt", HAS_ARG | OPT_EXPERT | OPT_VIDEO, { .func_arg = opt_frame_pix_fmt }, "set pixel format", "format" },
@@ -3722,6 +3724,12 @@  int main(int argc, char **argv)
 
     if (!display_disable) {
         int flags = SDL_WINDOW_HIDDEN;
+        if (alwaysontop)
+#if SDL_VERSION_ATLEAST(2,0,5)
+            flags |= SDL_WINDOW_ALWAYS_ON_TOP;
+#else
+            av_log(NULL, AV_LOG_WARNING, "Your SDL version doesn't support SDL_WINDOW_ALWAYS_ON_TOP. Feature will be inactive.\n");
+#endif
         if (borderless)
             flags |= SDL_WINDOW_BORDERLESS;
         else