[Bf-blender-cvs] [38fcc3e] master: Fix T40280: sequencer sound strips with an end at a negative time kept playing

Jörg Müller noreply at git.blender.org
Tue May 20 23:04:43 CEST 2014


Commit: 38fcc3e14b3b30cda4ec113822f83809592413b1
Author: Jörg Müller
Date:   Tue May 20 23:01:56 2014 +0200
https://developer.blender.org/rB38fcc3e14b3b30cda4ec113822f83809592413b1

Fix T40280: sequencer sound strips with an end at a negative time kept playing

The bug was caused by using negative numbers as the end for playing forever (or until the end of the sound is reached) in the library. This was used with speaker objects which have an end of FLT_MAX now instead and the negative number interpretation was removed. I hope this doesn't break anything else.

===================================================================

M	intern/audaspace/intern/AUD_SequencerHandle.cpp
M	source/blender/blenkernel/intern/sound.c

===================================================================

diff --git a/intern/audaspace/intern/AUD_SequencerHandle.cpp b/intern/audaspace/intern/AUD_SequencerHandle.cpp
index c9473cf..135c960 100644
--- a/intern/audaspace/intern/AUD_SequencerHandle.cpp
+++ b/intern/audaspace/intern/AUD_SequencerHandle.cpp
@@ -70,7 +70,7 @@ void AUD_SequencerHandle::update(float position, float frame, float fps)
 	if(m_handle.get())
 	{
 		AUD_MutexLock lock(*m_entry);
-		if(position >= m_entry->m_end && m_entry->m_end >= 0)
+		if(position >= m_entry->m_end)
 			m_handle->pause();
 		else if(position >= m_entry->m_begin)
 			m_handle->resume();
@@ -143,7 +143,7 @@ void AUD_SequencerHandle::seek(float position)
 	if(m_handle.get())
 	{
 		AUD_MutexLock lock(*m_entry);
-		if(position >= m_entry->m_end && m_entry->m_end >= 0)
+		if(position >= m_entry->m_end)
 		{
 			m_handle->pause();
 			return;
diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c
index 6ba843c..da6ead0 100644
--- a/source/blender/blenkernel/intern/sound.c
+++ b/source/blender/blenkernel/intern/sound.c
@@ -727,7 +727,7 @@ void sound_update_scene(Main *bmain, struct Scene *scene)
 
 					if (AUD_removeSet(scene->speaker_handles, strip->speaker_handle)) {
 						if (speaker->sound) {
-							AUD_moveSequence(strip->speaker_handle, (double)strip->start / FPS, -1, 0);
+							AUD_moveSequence(strip->speaker_handle, (double)strip->start / FPS, FLT_MAX, 0);
 						}
 						else {
 							AUD_removeSequence(scene->sound_scene, strip->speaker_handle);
@@ -738,7 +738,7 @@ void sound_update_scene(Main *bmain, struct Scene *scene)
 						if (speaker->sound) {
 							strip->speaker_handle = AUD_addSequence(scene->sound_scene,
 							                                        speaker->sound->playback_handle,
-							                                        (double)strip->start / FPS, -1, 0);
+							                                        (double)strip->start / FPS, FLT_MAX, 0);
 							AUD_setRelativeSequence(strip->speaker_handle, 0);
 						}
 					}




More information about the Bf-blender-cvs mailing list