Revision: 39132
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=39132
Author:   nexyon
Date:     2011-08-07 11:54:58 +0000 (Sun, 07 Aug 2011)
Log Message:
-----------
3D Audio GSoC:

* Pepper depends on ffmpeg 0.7.1 or higher now, windows and mac build systems 
set to ffmpeg-0.8
* Fixed orientation retrieval in OpenAL device code.
* Added stopAll() method to AUD_IDevice (also for Python) and call it on BGE 
exit
* Changed BGE to use audaspace via native C++ instead over the C API.
* Made AUD_SequencerFactory and AUD_SequencerEntry thread safe.
* Changed sound caching into a flag which fixes problems on file loading, 
especially with undo.
* Removed unused parameter from sound_mute_scene_sound
* Fixed bug: changing FPS didn't update the sequencer sound positions.
* Fixed bug: Properties of sequencer strips weren't set correctly.
* Minor warning fixes.

Modified Paths:
--------------
    branches/soc-2011-pepper/CMakeLists.txt
    branches/soc-2011-pepper/build_files/scons/config/darwin-config.py
    branches/soc-2011-pepper/build_files/scons/config/win32-mingw-config.py
    branches/soc-2011-pepper/build_files/scons/config/win32-vc-config.py
    branches/soc-2011-pepper/build_files/scons/config/win64-vc-config.py
    branches/soc-2011-pepper/intern/audaspace/OpenAL/AUD_OpenALDevice.cpp
    branches/soc-2011-pepper/intern/audaspace/OpenAL/AUD_OpenALDevice.h
    branches/soc-2011-pepper/intern/audaspace/Python/AUD_PyAPI.cpp
    branches/soc-2011-pepper/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp
    branches/soc-2011-pepper/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp
    branches/soc-2011-pepper/intern/audaspace/intern/AUD_C-API.cpp
    branches/soc-2011-pepper/intern/audaspace/intern/AUD_C-API.h
    branches/soc-2011-pepper/intern/audaspace/intern/AUD_IDevice.h
    branches/soc-2011-pepper/intern/audaspace/intern/AUD_IFactory.h
    branches/soc-2011-pepper/intern/audaspace/intern/AUD_NULLDevice.cpp
    branches/soc-2011-pepper/intern/audaspace/intern/AUD_NULLDevice.h
    branches/soc-2011-pepper/intern/audaspace/intern/AUD_SequencerEntry.cpp
    branches/soc-2011-pepper/intern/audaspace/intern/AUD_SequencerEntry.h
    branches/soc-2011-pepper/intern/audaspace/intern/AUD_SequencerFactory.cpp
    branches/soc-2011-pepper/intern/audaspace/intern/AUD_SequencerFactory.h
    branches/soc-2011-pepper/intern/audaspace/intern/AUD_SequencerHandle.cpp
    branches/soc-2011-pepper/intern/audaspace/intern/AUD_SequencerReader.cpp
    branches/soc-2011-pepper/intern/audaspace/intern/AUD_SoftwareDevice.cpp
    branches/soc-2011-pepper/intern/audaspace/intern/AUD_SoftwareDevice.h
    branches/soc-2011-pepper/source/blender/blenkernel/BKE_sequencer.h
    branches/soc-2011-pepper/source/blender/blenkernel/BKE_sound.h
    branches/soc-2011-pepper/source/blender/blenkernel/intern/sequencer.c
    branches/soc-2011-pepper/source/blender/blenkernel/intern/sound.c
    branches/soc-2011-pepper/source/blender/blenloader/intern/readfile.c
    branches/soc-2011-pepper/source/blender/editors/sound/sound_ops.c
    
branches/soc-2011-pepper/source/blender/editors/space_sequencer/sequencer_add.c
    
branches/soc-2011-pepper/source/blender/editors/space_sequencer/sequencer_edit.c
    branches/soc-2011-pepper/source/blender/makesdna/DNA_sound_types.h
    branches/soc-2011-pepper/source/blender/makesrna/intern/rna_scene.c
    branches/soc-2011-pepper/source/blender/makesrna/intern/rna_sequencer.c
    branches/soc-2011-pepper/source/blender/makesrna/intern/rna_sound.c
    
branches/soc-2011-pepper/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
    branches/soc-2011-pepper/source/gameengine/Converter/KX_ConvertActuators.cpp
    branches/soc-2011-pepper/source/gameengine/Ketsji/CMakeLists.txt
    branches/soc-2011-pepper/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
    branches/soc-2011-pepper/source/gameengine/Ketsji/KX_SoundActuator.cpp
    branches/soc-2011-pepper/source/gameengine/Ketsji/KX_SoundActuator.h
    branches/soc-2011-pepper/source/gameengine/Ketsji/SConscript

Modified: branches/soc-2011-pepper/CMakeLists.txt
===================================================================
--- branches/soc-2011-pepper/CMakeLists.txt     2011-08-07 11:50:48 UTC (rev 
39131)
+++ branches/soc-2011-pepper/CMakeLists.txt     2011-08-07 11:54:58 UTC (rev 
39132)
@@ -687,15 +687,15 @@
 
                if(WITH_CODEC_FFMPEG)
                        set(FFMPEG_INCLUDE_DIRS
-                               ${LIBDIR}/ffmpeg/include
-                               ${LIBDIR}/ffmpeg/include/msvc
+                               ${LIBDIR}/ffmpeg-0.8/include
+                               ${LIBDIR}/ffmpeg-0.8/include/msvc
                        )
                        set(FFMPEG_LIBRARIES
-                               ${LIBDIR}/ffmpeg/lib/avcodec-52.lib
-                               ${LIBDIR}/ffmpeg/lib/avformat-52.lib
-                               ${LIBDIR}/ffmpeg/lib/avdevice-52.lib
-                               ${LIBDIR}/ffmpeg/lib/avutil-50.lib
-                               ${LIBDIR}/ffmpeg/lib/swscale-0.lib
+                               ${LIBDIR}/ffmpeg-0.8/lib/avcodec-53.lib
+                               ${LIBDIR}/ffmpeg-0.8/lib/avformat-53.lib
+                               ${LIBDIR}/ffmpeg-0.8/lib/avdevice-53.lib
+                               ${LIBDIR}/ffmpeg-0.8/lib/avutil-51.lib
+                               ${LIBDIR}/ffmpeg-0.8/lib/swscale-2.lib
                        )
                endif()
 
@@ -820,9 +820,9 @@
                endif()
                
                if(WITH_CODEC_FFMPEG)
-                       set(FFMPEG ${LIBDIR}/ffmpeg)
+                       set(FFMPEG ${LIBDIR}/ffmpeg-0.8)
                        set(FFMPEG_INCLUDE_DIRS ${FFMPEG}/include 
${FFMPEG}/include)
-                       set(FFMPEG_LIBRARIES avcodec-52 avformat-52 avdevice-52 
avutil-50 swscale-0)
+                       set(FFMPEG_LIBRARIES avcodec-53 avformat-53 avdevice-53 
avutil-51 swscale-2)
                        set(FFMPEG_LIBPATH ${FFMPEG}/lib)
                endif()
 
@@ -959,7 +959,7 @@
        endif()
 
        if(WITH_CODEC_FFMPEG)
-               set(FFMPEG ${LIBDIR}/ffmpeg)
+               set(FFMPEG ${LIBDIR}/ffmpeg-0.8)
                set(FFMPEG_INCLUDE_DIRS ${FFMPEG}/include)
                set(FFMPEG_LIBRARIES avcodec avdevice avformat avutil mp3lame 
swscale x264 xvidcore theora theoradec theoraenc vorbis vorbisenc vorbisfile 
ogg)
                set(FFMPEG_LIBPATH ${FFMPEG}/lib)

Modified: branches/soc-2011-pepper/build_files/scons/config/darwin-config.py
===================================================================
--- branches/soc-2011-pepper/build_files/scons/config/darwin-config.py  
2011-08-07 11:50:48 UTC (rev 39131)
+++ branches/soc-2011-pepper/build_files/scons/config/darwin-config.py  
2011-08-07 11:54:58 UTC (rev 39132)
@@ -79,7 +79,7 @@
 
 # enable ffmpeg  support
 WITH_BF_FFMPEG = True  # -DWITH_FFMPEG
-BF_FFMPEG = LIBDIR + '/ffmpeg'
+BF_FFMPEG = LIBDIR + '/ffmpeg-0.8'
 BF_FFMPEG_INC = "${BF_FFMPEG}/include"
 BF_FFMPEG_LIBPATH='${BF_FFMPEG}/lib'
 BF_FFMPEG_LIB = 'avcodec avdevice avformat avutil mp3lame swscale x264 
xvidcore theora theoradec theoraenc vorbis vorbisenc vorbisfile ogg bz2'

Modified: 
branches/soc-2011-pepper/build_files/scons/config/win32-mingw-config.py
===================================================================
--- branches/soc-2011-pepper/build_files/scons/config/win32-mingw-config.py     
2011-08-07 11:50:48 UTC (rev 39131)
+++ branches/soc-2011-pepper/build_files/scons/config/win32-mingw-config.py     
2011-08-07 11:54:58 UTC (rev 39132)
@@ -18,9 +18,9 @@
 BF_OPENAL_LIBPATH = '${BF_OPENAL}/lib'
 
 WITH_BF_FFMPEG = False
-BF_FFMPEG_LIB = 'avformat-52 avcodec-52 avdevice-52 avutil-50 swscale-0'
-BF_FFMPEG_LIBPATH = LIBDIR + '/ffmpeg/lib'
-BF_FFMPEG_INC =  LIBDIR + '/ffmpeg/include'
+BF_FFMPEG_LIB = 'avformat-53 avcodec-53 avdevice-53 avutil-51 swscale-2'
+BF_FFMPEG_LIBPATH = LIBDIR + '/ffmpeg-0.8/lib'
+BF_FFMPEG_INC =  LIBDIR + '/ffmpeg-0.8/include'
 
 BF_LIBSAMPLERATE = LIBDIR + '/samplerate'
 BF_LIBSAMPLERATE_INC = '${BF_LIBSAMPLERATE}/include'

Modified: branches/soc-2011-pepper/build_files/scons/config/win32-vc-config.py
===================================================================
--- branches/soc-2011-pepper/build_files/scons/config/win32-vc-config.py        
2011-08-07 11:50:48 UTC (rev 39131)
+++ branches/soc-2011-pepper/build_files/scons/config/win32-vc-config.py        
2011-08-07 11:54:58 UTC (rev 39132)
@@ -3,11 +3,11 @@
 
 # enable ffmpeg  support
 WITH_BF_FFMPEG = True  # -DWITH_FFMPEG
-BF_FFMPEG = LIBDIR +'/ffmpeg'
+BF_FFMPEG = LIBDIR +'/ffmpeg-0.8'
 BF_FFMPEG_INC = '${BF_FFMPEG}/include ${BF_FFMPEG}/include/msvc'
 BF_FFMPEG_LIBPATH='${BF_FFMPEG}/lib'
-BF_FFMPEG_LIB = 'avformat-52.lib avcodec-52.lib avdevice-52.lib avutil-50.lib 
swscale-0.lib'
-BF_FFMPEG_DLL = '${BF_FFMPEG_LIBPATH}/avformat-52.dll 
${BF_FFMPEG_LIBPATH}/avcodec-52.dll ${BF_FFMPEG_LIBPATH}/avdevice-52.dll 
${BF_FFMPEG_LIBPATH}/avutil-50.dll ${BF_FFMPEG_LIBPATH}/swscale-0.dll'
+BF_FFMPEG_LIB = 'avformat-53.lib avcodec-53.lib avdevice-53.lib avutil-51.lib 
swscale-2.lib'
+BF_FFMPEG_DLL = '${BF_FFMPEG_LIBPATH}/avformat-53.dll 
${BF_FFMPEG_LIBPATH}/avcodec-53.dll ${BF_FFMPEG_LIBPATH}/avdevice-53.dll 
${BF_FFMPEG_LIBPATH}/avutil-51.dll ${BF_FFMPEG_LIBPATH}/swscale-2.dll'
 
 BF_PYTHON = LIBDIR + '/python'
 BF_PYTHON_VERSION = '3.2'

Modified: branches/soc-2011-pepper/build_files/scons/config/win64-vc-config.py
===================================================================
--- branches/soc-2011-pepper/build_files/scons/config/win64-vc-config.py        
2011-08-07 11:50:48 UTC (rev 39131)
+++ branches/soc-2011-pepper/build_files/scons/config/win64-vc-config.py        
2011-08-07 11:54:58 UTC (rev 39132)
@@ -3,11 +3,11 @@
 
 # enable ffmpeg  support
 WITH_BF_FFMPEG = True # -DWITH_FFMPEG
-BF_FFMPEG = LIBDIR +'/ffmpeg'
+BF_FFMPEG = LIBDIR +'/ffmpeg-0.8'
 BF_FFMPEG_INC = '${BF_FFMPEG}/include ${BF_FFMPEG}/include/msvc '
 BF_FFMPEG_LIBPATH='${BF_FFMPEG}/lib'
-BF_FFMPEG_LIB = 'avformat-52.lib avcodec-52.lib avdevice-52.lib avutil-50.lib 
swscale-0.lib'
-BF_FFMPEG_DLL = '${BF_FFMPEG_LIBPATH}/avformat-52.dll 
${BF_FFMPEG_LIBPATH}/avcodec-52.dll ${BF_FFMPEG_LIBPATH}/avdevice-52.dll 
${BF_FFMPEG_LIBPATH}/avutil-50.dll ${BF_FFMPEG_LIBPATH}/swscale-0.dll'
+BF_FFMPEG_LIB = 'avformat-53.lib avcodec-53.lib avdevice-53.lib avutil-51.lib 
swscale-2.lib'
+BF_FFMPEG_DLL = '${BF_FFMPEG_LIBPATH}/avformat-53.dll 
${BF_FFMPEG_LIBPATH}/avcodec-53.dll ${BF_FFMPEG_LIBPATH}/avdevice-53.dll 
${BF_FFMPEG_LIBPATH}/avutil-51.dll ${BF_FFMPEG_LIBPATH}/swscale-2.dll'
 
 BF_PYTHON = LIBDIR + '/python'
 BF_PYTHON_VERSION = '3.2'

Modified: branches/soc-2011-pepper/intern/audaspace/OpenAL/AUD_OpenALDevice.cpp
===================================================================
--- branches/soc-2011-pepper/intern/audaspace/OpenAL/AUD_OpenALDevice.cpp       
2011-08-07 11:50:48 UTC (rev 39131)
+++ branches/soc-2011-pepper/intern/audaspace/OpenAL/AUD_OpenALDevice.cpp       
2011-08-07 11:54:58 UTC (rev 39132)
@@ -469,8 +469,7 @@
 
 AUD_Quaternion AUD_OpenALDevice::AUD_OpenALHandle::getSourceOrientation()
 {
-       // AUD_XXX not implemented yet
-       return AUD_Quaternion(0, 0, 0, 0);
+       return m_orientation;
 }
 
 bool AUD_OpenALDevice::AUD_OpenALHandle::setSourceOrientation(const 
AUD_Quaternion& orientation)
@@ -491,6 +490,8 @@
 
        m_device->unlock();
 
+       m_orientation = orientation;
+
        return true;
 }
 
@@ -1284,6 +1285,21 @@
        return play(factory->createReader(), keep);
 }
 
+void AUD_OpenALDevice::stopAll()
+{
+       lock();
+       alcSuspendContext(m_context);
+
+       while(!m_playingSounds.empty())
+               m_playingSounds.front()->stop();
+
+       while(!m_pausedSounds.empty())
+               m_pausedSounds.front()->stop();
+
+       alcProcessContext(m_context);
+       unlock();
+}
+
 void AUD_OpenALDevice::lock()
 {
        pthread_mutex_lock(&m_mutex);
@@ -1454,8 +1470,7 @@
 
 AUD_Quaternion AUD_OpenALDevice::getListenerOrientation() const
 {
-       // AUD_XXX not implemented yet
-       return AUD_Quaternion(0, 0, 0, 0);
+       return m_orientation;
 }
 
 void AUD_OpenALDevice::setListenerOrientation(const AUD_Quaternion& 
orientation)
@@ -1474,6 +1489,7 @@
        direction[5] = 2 * (orientation.w() * orientation.x() +
                                                orientation.y() * 
orientation.z());
        alListenerfv(AL_ORIENTATION, direction);
+       m_orientation = orientation;
 }
 
 float AUD_OpenALDevice::getSpeedOfSound() const

Modified: branches/soc-2011-pepper/intern/audaspace/OpenAL/AUD_OpenALDevice.h
===================================================================
--- branches/soc-2011-pepper/intern/audaspace/OpenAL/AUD_OpenALDevice.h 
2011-08-07 11:50:48 UTC (rev 39131)
+++ branches/soc-2011-pepper/intern/audaspace/OpenAL/AUD_OpenALDevice.h 
2011-08-07 11:54:58 UTC (rev 39132)
@@ -89,6 +89,9 @@
                /// Stop callback data.
                void* m_stop_data;
 
+               /// Orientation.
+               AUD_Quaternion m_orientation;
+
                /// Current status of the handle
                AUD_Status m_status;
 
@@ -205,6 +208,11 @@
        AUD_Buffer m_buffer;
 
        /**
+        * Orientation.
+        */
+       AUD_Quaternion m_orientation;
+
+       /**
         * Starts the streaming thread.
         */
        void start(bool join = true);
@@ -243,6 +251,7 @@
        virtual AUD_DeviceSpecs getSpecs() const;
        virtual AUD_Reference<AUD_IHandle> play(AUD_Reference<AUD_IReader> 
reader, bool keep = false);
        virtual AUD_Reference<AUD_IHandle> play(AUD_Reference<AUD_IFactory> 
factory, bool keep = false);
+       virtual void stopAll();
        virtual void lock();
        virtual void unlock();
        virtual float getVolume() const;

Modified: branches/soc-2011-pepper/intern/audaspace/Python/AUD_PyAPI.cpp
===================================================================
--- branches/soc-2011-pepper/intern/audaspace/Python/AUD_PyAPI.cpp      
2011-08-07 11:50:48 UTC (rev 39131)
+++ branches/soc-2011-pepper/intern/audaspace/Python/AUD_PyAPI.cpp      
2011-08-07 11:54:58 UTC (rev 39132)
@@ -2245,6 +2245,25 @@
        return (PyObject *)handle;
 }
 
+PyDoc_STRVAR(M_aud_Device_stopAll_doc,
+                        "stopAll()\n\n"
+                        "Stops all playing and paused sounds.");
+
+static PyObject *
+Device_stopAll(Device *self)
+{
+       try
+       {
+               
(*reinterpret_cast<AUD_Reference<AUD_IDevice>*>(self->device))->stopAll();
+               Py_RETURN_NONE;
+       }
+       catch(AUD_Exception& e)
+       {
+               PyErr_SetString(AUDError, e.str);
+               return NULL;
+       }
+}
+
 PyDoc_STRVAR(M_aud_Device_lock_doc,
                         "lock()\n\n"
                         "Locks the device so that it's guaranteed, that no 
samples are "
@@ -2295,6 +2314,9 @@
        {"play", (PyCFunction)Device_play, METH_VARARGS | METH_KEYWORDS,
         M_aud_Device_play_doc
        },
+       {"stopAll", (PyCFunction)Device_stopAll, METH_NOARGS,
+        M_aud_Device_stopAll_doc
+       },
        {"lock", (PyCFunction)Device_lock, METH_NOARGS,
         M_aud_Device_lock_doc
        },

Modified: branches/soc-2011-pepper/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp
===================================================================
--- branches/soc-2011-pepper/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp       
2011-08-07 11:50:48 UTC (rev 39131)
+++ branches/soc-2011-pepper/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp       
2011-08-07 11:54:58 UTC (rev 39132)
@@ -39,6 +39,7 @@
 extern "C" {
 #include <libavcodec/avcodec.h>
 #include <libavformat/avformat.h>
+#include <libavformat/avio.h>
 #include "ffmpeg_compat.h"
 }
 

Modified: branches/soc-2011-pepper/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp

@@ Diff output truncated at 10240 characters. @@
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to