[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27621] trunk/blender: Fix for [#21639] Playback with AV-sync and None sound system.

Joerg Mueller nexyon at gmail.com
Sat Mar 20 12:50:27 CET 2010


Revision: 27621
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27621
Author:   nexyon
Date:     2010-03-20 12:50:27 +0100 (Sat, 20 Mar 2010)

Log Message:
-----------
Fix for [#21639] Playback with AV-sync and None sound system.

Modified Paths:
--------------
    trunk/blender/intern/audaspace/intern/AUD_NULLDevice.cpp
    trunk/blender/source/blender/editors/screen/screen_ops.c

Modified: trunk/blender/intern/audaspace/intern/AUD_NULLDevice.cpp
===================================================================
--- trunk/blender/intern/audaspace/intern/AUD_NULLDevice.cpp	2010-03-20 11:15:16 UTC (rev 27620)
+++ trunk/blender/intern/audaspace/intern/AUD_NULLDevice.cpp	2010-03-20 11:50:27 UTC (rev 27621)
@@ -23,6 +23,8 @@
  * ***** END LGPL LICENSE BLOCK *****
  */
 
+#include <cmath>
+
 #include "AUD_NULLDevice.h"
 #include "AUD_IReader.h"
 #include "AUD_IFactory.h"
@@ -76,7 +78,7 @@
 
 float AUD_NULLDevice::getPosition(AUD_Handle* handle)
 {
-	return 0.0f;
+	return NAN;
 }
 
 AUD_Status AUD_NULLDevice::getStatus(AUD_Handle* handle)

Modified: trunk/blender/source/blender/editors/screen/screen_ops.c
===================================================================
--- trunk/blender/source/blender/editors/screen/screen_ops.c	2010-03-20 11:15:16 UTC (rev 27620)
+++ trunk/blender/source/blender/editors/screen/screen_ops.c	2010-03-20 11:50:27 UTC (rev 27621)
@@ -2401,16 +2401,18 @@
 		ScreenAnimData *sad= wt->customdata;
 		ScrArea *sa;
 		int sync;
-		
+		float time = NAN;
+
 		/* sync, don't sync, or follow scene setting */
 		if(sad->flag & ANIMPLAY_FLAG_SYNC) sync= 1;
 		else if(sad->flag & ANIMPLAY_FLAG_NO_SYNC) sync= 0;
 		else sync= (scene->flag & SCE_FRAME_DROP);
 		
 		if((scene->audio.flag & AUDIO_SYNC) && !(sad->flag & ANIMPLAY_FLAG_REVERSE))
-		{
-			scene->r.cfra = floor(sound_sync_scene(scene) * FPS);
-		}
+			time = sound_sync_scene(scene);
+
+		if(isfinite(time))
+			scene->r.cfra = floor(time * FPS);
 		else
 		{
 			if(sync) {





More information about the Bf-blender-cvs mailing list