diff --git a/Output/Themes/Ambient/Skin Blue.xml b/Output/Themes/Ambient/Skin Blue.xml index 7be79a61..21f5418c 100644 --- a/Output/Themes/Ambient/Skin Blue.xml +++ b/Output/Themes/Ambient/Skin Blue.xml @@ -218,9 +218,9 @@ Invisible.png - [Blue]BG_Video.mkv - [Blue]IntroIn.mkv - [Blue]IntroMid.mkv - [Blue]IntroOut.mkv + [Blue]BG_Video.mp4 + [Blue]IntroIn.mp4 + [Blue]IntroMid.mp4 + [Blue]IntroOut.mp4 \ No newline at end of file diff --git a/Output/Themes/Ambient/Skin Green.xml b/Output/Themes/Ambient/Skin Green.xml index 2c4c0b60..63a3bdb3 100644 --- a/Output/Themes/Ambient/Skin Green.xml +++ b/Output/Themes/Ambient/Skin Green.xml @@ -218,9 +218,9 @@ Invisible.png - [Green]BG_Video.mkv - [Green]IntroIn.mkv - [Green]IntroMid.mkv - [Green]IntroOut.mkv + [Green]BG_Video.mp4 + [Green]IntroIn.mp4 + [Green]IntroMid.mp4 + [Green]IntroOut.mp4 \ No newline at end of file diff --git a/Output/Themes/Ambient/Skin Red.xml b/Output/Themes/Ambient/Skin Red.xml index 9d1d3cde..1e53d8d3 100644 --- a/Output/Themes/Ambient/Skin Red.xml +++ b/Output/Themes/Ambient/Skin Red.xml @@ -218,9 +218,9 @@ Invisible.png - [Red]BG_Video.mkv - [Red]IntroIn.mkv - [Red]IntroMid.mkv - [Red]IntroOut.mkv + [Red]BG_Video.mp4 + [Red]IntroIn.mp4 + [Red]IntroMid.mp4 + [Red]IntroOut.mp4 \ No newline at end of file diff --git a/Output/Themes/Ambient/Skin Yellow.xml b/Output/Themes/Ambient/Skin Yellow.xml index 126e40c2..ff096567 100644 --- a/Output/Themes/Ambient/Skin Yellow.xml +++ b/Output/Themes/Ambient/Skin Yellow.xml @@ -218,9 +218,9 @@ Invisible.png - [Yellow]BG_Video.mkv - [Yellow]IntroIn.mkv - [Yellow]IntroMid.mkv - [Yellow]IntroOut.mkv + [Yellow]BG_Video.mp4 + [Yellow]IntroIn.mp4 + [Yellow]IntroMid.mp4 + [Yellow]IntroOut.mp4 \ No newline at end of file diff --git a/Output/acinerella.dll b/Output/acinerella.dll index b9711290..22ef1d4e 100644 Binary files a/Output/acinerella.dll and b/Output/acinerella.dll differ diff --git a/Vocaluxe/Lib/Video/CVideoDecoderFFmpeg.cs b/Vocaluxe/Lib/Video/CVideoDecoderFFmpeg.cs index 9238243f..2ecdcc7b 100644 --- a/Vocaluxe/Lib/Video/CVideoDecoderFFmpeg.cs +++ b/Vocaluxe/Lib/Video/CVideoDecoderFFmpeg.cs @@ -244,6 +244,7 @@ namespace Vocaluxe.Lib.Video private bool _Paused = false; private bool _NoMoreFrames = false; private bool _Finished = false; + private bool _BeforeLoop = false; private int _Width = 0; @@ -314,7 +315,10 @@ namespace Vocaluxe.Lib.Video public bool Finished { - get { return _Finished; } + get + { + return _Finished; + } } public bool Open(string FileName) @@ -395,6 +399,7 @@ namespace Vocaluxe.Lib.Video _VideoSkipTime = _Gap; _NegativeSkipTime = _Start + _Gap; _SkipTime = _Start + _Gap; + _BeforeLoop = false; } if (_SkipTime > 0) @@ -575,7 +580,7 @@ namespace Vocaluxe.Lib.Video return; int FrameFinished = 0; - if (DropFrame) + if (DropFrame && !_BeforeLoop) { try { @@ -588,7 +593,7 @@ namespace Vocaluxe.Lib.Video } - if (!DropFrame || FrameFinished != 0) + if (!_BeforeLoop && (!DropFrame || FrameFinished != 0)) { lock (MutexFrame) { @@ -608,14 +613,15 @@ namespace Vocaluxe.Lib.Video { if (_Loop) { - bool doskip = false; + _BeforeLoop = true; + bool doskip = true; float tm = 0f; int num = -1; lock (MutexFramebuffer) { for (int i = 0; i < _FrameBuffer.Length; i++) { - if (_FrameBuffer[i].time > tm) + if (_FrameBuffer[i].time > tm && !_FrameBuffer[i].displayed) { tm = _FrameBuffer[i].time; num = i; diff --git a/Vocaluxe/Screens/CScreenLoad.cs b/Vocaluxe/Screens/CScreenLoad.cs index 1fd9f2a2..24b5180d 100644 --- a/Vocaluxe/Screens/CScreenLoad.cs +++ b/Vocaluxe/Screens/CScreenLoad.cs @@ -206,13 +206,13 @@ namespace Vocaluxe.Screens if (_CurrentIntroVideoNr == 0 && _Intros[0].IsFinished) { _CurrentIntroVideoNr = 1; + _Intros[1].Loop = true; _Intros[1].Start(); } if (_CurrentIntroVideoNr == 1 && CSongs.CoverLoaded) { _CurrentIntroVideoNr = 2; - _Intros[2].Loop = true; _Intros[2].Start(); } @@ -277,7 +277,7 @@ namespace Vocaluxe.Screens { float VideoTime = _VideoTimer.ElapsedMilliseconds / 1000f; - _Finished = (VideoTime >= CVideo.VdGetLength(_VideoStream)); + _Finished = CVideo.VdFinished(_VideoStream); STexture tex = new STexture(-1); CVideo.VdGetFrame(_VideoStream, ref tex, VideoTime, ref VideoTime);