[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27010] trunk/blender/source/blender: Basic AV Sync for forward playing.
Joerg Mueller
nexyon at gmail.com
Thu Feb 18 15:17:53 CET 2010
Revision: 27010
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27010
Author: nexyon
Date: 2010-02-18 15:17:53 +0100 (Thu, 18 Feb 2010)
Log Message:
-----------
Basic AV Sync for forward playing.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/BKE_sound.h
trunk/blender/source/blender/blenkernel/intern/sound.c
trunk/blender/source/blender/editors/screen/screen_ops.c
Modified: trunk/blender/source/blender/blenkernel/BKE_sound.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_sound.h 2010-02-18 11:49:17 UTC (rev 27009)
+++ trunk/blender/source/blender/blenkernel/BKE_sound.h 2010-02-18 14:17:53 UTC (rev 27010)
@@ -86,6 +86,8 @@
void sound_seek_scene(struct bContext *C);
+float sound_sync_scene(struct Scene *scene);
+
int sound_read_sound_buffer(struct bSound* sound, float* buffer, int length);
#endif
Modified: trunk/blender/source/blender/blenkernel/intern/sound.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/sound.c 2010-02-18 11:49:17 UTC (rev 27009)
+++ trunk/blender/source/blender/blenkernel/intern/sound.c 2010-02-18 14:17:53 UTC (rev 27010)
@@ -394,6 +394,11 @@
AUD_unlock();
}
+float sound_sync_scene(struct Scene *scene)
+{
+ return AUD_getPosition(scene->sound_scene_handle);
+}
+
int sound_read_sound_buffer(bSound* sound, float* buffer, int length)
{
return AUD_readSound(sound->cache, buffer, length);
Modified: trunk/blender/source/blender/editors/screen/screen_ops.c
===================================================================
--- trunk/blender/source/blender/editors/screen/screen_ops.c 2010-02-18 11:49:17 UTC (rev 27009)
+++ trunk/blender/source/blender/editors/screen/screen_ops.c 2010-02-18 14:17:53 UTC (rev 27010)
@@ -2429,13 +2429,17 @@
else sync= (scene->audio.flag & AUDIO_SYNC);
if(sync) {
- /* skip frames */
- int step = floor(wt->duration * FPS);
if(sad->flag & ANIMPLAY_FLAG_REVERSE) // XXX does this option work with audio?
+ { // XXX - no
+ /* skip frames */
+ int step = floor(wt->duration * FPS);
scene->r.cfra -= step;
+ wt->duration -= ((float)step)/FPS;
+ }
else
- scene->r.cfra += step;
- wt->duration -= ((float)step)/FPS;
+ {
+ scene->r.cfra = floor(sound_sync_scene(scene) * FPS);
+ }
}
else {
/* one frame +/- */
More information about the Bf-blender-cvs
mailing list