2019-11-21 02:07 CET

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0000722Spring engineGeneralpublic2008-03-29 23:19
ReporterPendrokar 
Assigned ToAuswaschbar 
PrioritynormalSeveritymajorReproducibilityalways
StatusresolvedResolutionfixed 
Product Version 
Target VersionFixed in Version 
Summary0000722: Frames not renderred normally when recording with F10 and any codec in SVN!
Description I made a vid where FPS is an average of 11 but frames are not rendered that fast, but the PC doesn't lag(showing you by smooth movement of cam!) in an SVN version after 0.75b2. Please fix this issue before making a new release!
The Video - http://www.unknown-files.net/spring/3884/SVN_Bug_Report__Video_record/
TagsNo tags attached.
Checked infolog.txt for Errors
Attached Files
  • diff file icon patch_recording.diff (3,559 bytes) 2007-12-22 14:47 -
    Index: rts/Game/GameServer.h
    ===================================================================
    --- rts/Game/GameServer.h	(Revision 5092)
    +++ rts/Game/GameServer.h	(Arbeitskopie)
    @@ -58,8 +58,6 @@
     	Currently only sets serverframenum
     	*/
     	void SkipTo(int targetframe);
    -	
    -	void CreateNewFrame(bool fromServerThread=false);
     
     	bool WaitsOnCon() const;
     	
    @@ -67,7 +65,7 @@
     	
     	void SetGamePausable(const bool arg);
     	
    -#ifdef DEBUG
    +#ifdef DEBUG || !NO_AVI
     	bool gameClientUpdated;			//used to prevent the server part to update to fast when the client is mega slow (running some sort of debug mode)
     #endif
     	
    @@ -92,6 +90,7 @@
     	void StartGame();
     	void UpdateLoop();
     	void Update();
    +	void CreateNewFrame();
     	void CheckSync();
     	void ServerReadNet();
     	void CheckForGameEnd();
    Index: rts/Game/GameServer.cpp
    ===================================================================
    --- rts/Game/GameServer.cpp	(Revision 5092)
    +++ rts/Game/GameServer.cpp	(Arbeitskopie)
    @@ -309,7 +309,7 @@
     
     	if (serverframenum > 0 && !play)
     	{
    -		CreateNewFrame(true);
    +		CreateNewFrame();
     	}
     	serverNet->Update();
     
    @@ -721,7 +721,7 @@
     	}
     	timeLeft=0;
     	lastTick = SDL_GetTicks()-1;
    -	CreateNewFrame(true);
    +	CreateNewFrame();
     }
     
     void CGameServer::SetGamePausable(const bool arg)
    @@ -761,7 +761,7 @@
     	}
     }
     
    -void CGameServer::CreateNewFrame(bool fromServerThread)
    +void CGameServer::CreateNewFrame()
     {
     	CheckSync();
     
    @@ -773,31 +773,33 @@
     	}
     
     #ifdef DEBUG
    -	if(gameClientUpdated){
    +	if (gameClientUpdated)
     		gameClientUpdated=false;
    -	}
    +	else
    +		return;
     #endif
    +	
    +#ifndef NO_AVI
    +	if (!game || !game->creatingVideo || gameClientUpdated)
    +		gameClientUpdated=false;
    +	else
    +		return;
    +#endif
     
     	timeLeft+=GAME_SPEED*internalSpeed*float(timeElapsed)/1000.0f;
     	lastTick=currentTick;
     
     	while((timeLeft>0) && !IsPaused)
     	{
    -#ifndef NO_AVI
    -		if((!game || !game->creatingVideo) || !fromServerThread)
    -#endif
    -		{
    -			boost::mutex::scoped_lock scoped_lock(gameServerMutex,!fromServerThread);
    -			if (nextserverframenum!=0) {
    -				serverframenum = nextserverframenum;
    -				nextserverframenum = 0;
    -			} else
    -				serverframenum++;
    -			serverNet->SendNewFrame(serverframenum);
    +		if (nextserverframenum!=0) {
    +			serverframenum = nextserverframenum;
    +			nextserverframenum = 0;
    +		} else
    +			serverframenum++;
    +		serverNet->SendNewFrame(serverframenum);
     #ifdef SYNCCHECK
    -			outstandingSyncFrames.push_back(serverframenum);
    +		outstandingSyncFrames.push_back(serverframenum);
     #endif
    -		}
     		timeLeft--;
     	}
     }
    @@ -937,6 +939,13 @@
     			}
     		}
     	}
    +	else if ((msg.find(".singlestep") == 0) && (players[player]->hasRights)) {
    +		if (IsPaused)
    +		{
    +			gameClientUpdated = true;
    +			CreateNewFrame();
    +		}
    +	}
     	else {
     		serverNet->SendChat(player, msg);
     		if (hostif) {
    Index: rts/Game/Game.cpp
    ===================================================================
    --- rts/Game/Game.cpp	(Revision 5092)
    +++ rts/Game/Game.cpp	(Arbeitskopie)
    @@ -1123,7 +1123,7 @@
     		}
     	}
     	else if (cmd == "singlestep") {
    -		gameServer->CreateNewFrame(false);
    +		net->SendChat(gu->myPlayerNum, ".singlestep");
     	}
     	else if (cmd == "debug") {
     		gu->drawdebug = !gu->drawdebug;
    @@ -1856,7 +1856,7 @@
     	UpdateUI();
     	net->Update();
     
    -#ifdef DEBUG
    +#ifdef DEBUG || !NO_AVI
     	if(gameServer)
     		gameServer->gameClientUpdated=true;
     #endif
    @@ -1866,10 +1866,6 @@
     		gameServer->Update();
     #endif
     
    -	if(creatingVideo && playing && gameServer){
    -		gameServer->CreateNewFrame();
    -	}
    -
     	if(!ClientReadNet()){
     		logOutput.Print("Client read net wanted quit");
     		return false;
    
    diff file icon patch_recording.diff (3,559 bytes) 2007-12-22 14:47 +

-Relationships
+Relationships

-Notes

~0001534

tvo (reporter)

Sorry, but I can't consider this a blocking bug. Changing to major.

~0001535

Pendrokar (reporter)

"Sorry, but I can't consider this a blocking bug. Changing to major."
 Blocking counts as not allowing use of some feature? Right? Then yeah this isn't blocking, just lowering capability of use!

~0001544

tvo (reporter)

No no, blocking is that it is a prerequisite to be fixed before release.

ie. I'd delay release as long as needed to fix it, and I don't think that'd be a good idea for this bug. (for most users it doesn't matter after all)

Typical blocking bugs are: host always crashes on loading in games with more then 5 people, spring always desyncs in 5 minutes, etc. :-)

~0001547

Auswaschbar (reporter)

Could someone please try the attached patch? Recording is windows-only so I can't test it if it helps :(

~0001619

el_matarife (reporter)

If this patch has already been committed to SVN, it should be on the testing list for the 7PM GMT testing group.

~0001626

imbaczek (reporter)

The patch seems to suffer from bitrot, can't test it.

~0002013

Pendrokar (reporter)

Just tested the latest SVN this seems to work OK now! - Tested video compressions: 1)None 2) Microsoft Video

~0002016

Auswaschbar (reporter)

zizu maed new video recorder, so this bug is obsolete
+Notes

-Issue History
Date Modified Username Field Change
2007-12-20 15:59 Pendrokar New Issue
2007-12-21 14:27 tvo Note Added: 0001534
2007-12-21 14:27 tvo Severity block => major
2007-12-21 14:48 Pendrokar Note Added: 0001535
2007-12-21 17:40 tvo Note Added: 0001544
2007-12-22 14:47 Auswaschbar Note Added: 0001547
2007-12-22 14:47 Auswaschbar File Added: patch_recording.diff
2008-01-01 17:05 el_matarife Note Added: 0001619
2008-01-01 19:59 imbaczek Note Added: 0001626
2008-03-29 20:47 Pendrokar Note Added: 0002013
2008-03-29 23:19 Auswaschbar Status new => resolved
2008-03-29 23:19 Auswaschbar Resolution open => fixed
2008-03-29 23:19 Auswaschbar Assigned To => Auswaschbar
2008-03-29 23:19 Auswaschbar Note Added: 0002016
+Issue History