デュアルディスプレイ環境で、片方にffplayで動画を再生しもう一方で作業しようとすると、ffplayがフォーカスを失ったときにウィンドウが消えるという問題に遭遇した。
この原因は、
SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS
というヒントが設定されているためで、これを無効にすればよい。
以下のように
ffplay.c
に1行加えることで、問題を解決できた。
diff --git a/fftools/ffplay.c b/fftools/ffplay.c
index 9ff0425163..2e3d7a18cc 100644
--- a/fftools/ffplay.c
+++ b/fftools/ffplay.c
@@ -3755,6 +3755,7 @@ int main(int argc, char **argv)
flags |= SDL_WINDOW_RESIZABLE;
window = SDL_CreateWindow(program_name, SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, default_width, default_height, flags);
SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "linear");
+ SDL_SetHint(SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS, "0");
if (window) {
renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
if (!renderer) {