From fea48eb20937c681bc574b0d49a0c9e4197310fe Mon Sep 17 00:00:00 2001 From: basisbit Date: Mon, 19 Oct 2015 20:51:20 +0000 Subject: * some additional logging when switching between background, visualization and video in USreenSing * pass the low-latency flag to ffmpeg (this lowers the framerate on certain hardware. -> also use the fast-flag to compensate the lower framerate. git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@3149 b956fd51-792f-4845-bead-9b4dfca2ff2c --- src/media/UVideo.pas | 4 +++- src/screens/UScreenSing.pas | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/media/UVideo.pas b/src/media/UVideo.pas index b8bd14a0..b8698359 100644 --- a/src/media/UVideo.pas +++ b/src/media/UVideo.pas @@ -394,7 +394,9 @@ begin // error resilience strategy (careful/compliant/agressive/very_aggressive) //fCodecContext^.error_resilience := FF_ER_CAREFUL; //FF_ER_COMPLIANT; // allow non spec compliant speedup tricks. - //fCodecContext^.flags2 := fCodecContext^.flags2 or CODEC_FLAG2_FAST; + + fCodecContext^.flags2 := CODEC_FLAG2_FAST; + fCodecContext^.flags := CODEC_FLAG_LOW_DELAY; // Note: avcodec_open() and avcodec_close() are not thread-safe and will // fail if called concurrently by different threads. diff --git a/src/screens/UScreenSing.pas b/src/screens/UScreenSing.pas index 201a2fb5..bf3db3af 100644 --- a/src/screens/UScreenSing.pas +++ b/src/screens/UScreenSing.pas @@ -212,22 +212,28 @@ begin begin if (fShowVisualization = false) and (fShowBackground = true) and (Ini.VideoEnabled = 1) and CurrentSong.Video.IsSet() then //only Background should be visible currently, switch to video begin + Log.LogStatus('decided to switch to video', 'UScreenSing.ParseInput'); fShowBackground := false; fCurrentVideo := fVideoClip; + Log.LogStatus('finished switching to video', 'UScreenSing.ParseInput'); end else begin if fShowVisualization and CurrentSong.Background.IsSet() then begin //switch to Background only + Log.LogStatus('decided to switch to background', 'UScreenSing.ParseInput'); fShowBackground := true; fCurrentVideo := nil; fShowVisualization := false; + Log.LogStatus('finished switching to background', 'UScreenSing.ParseInput'); end else begin //Video is currently visible, change to visualization + Log.LogStatus('decided to switch to visualization', 'UScreenSing.ParseInput'); fShowVisualization := true; fCurrentVideo := Visualization.Open(PATH_NONE); fCurrentVideo.play; + Log.LogStatus('finished switching to visualization', 'UScreenSing.ParseInput'); end; end; Exit; -- cgit v1.2.3