61033de9691e1e8e13f31068825024fc59387c2b
Root cause is, that reverse playback would not call `BKE_sound_play_scene()`, however `BKE_sound_stop_scene()` was called always. There was some weird logic in `ED_screen_animation_play()` where condition for what sound scene was to be stopped exactly was inverted for sequencer and duplicated for non-sequencer scene. This may also be incorrect if somebody manages to start playback in active scene, then create sequencer scene and stop it there. Fortunately `ScreenAnimData` keeps pointer to scene which started playback, so this is used to also stop the playback. To make this code bit more readable, the function was split into functions starting and stopping the playback, so the logic can also be simplified a bit. Finally, `sound_device_use_end_after()` was modified to do sanity check. If the number of users is already 0, it does nothing and returns. There assertion to catch this in debug builds. Pull Request: https://projects.blender.org/blender/blender/pulls/147613
…
Blender
Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline—modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.
Project Pages
Development
License
Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different but compatible license.
See blender.org/about/license for details.
Description
Languages
C++
78%
Python
14.9%
C
2.9%
GLSL
1.9%
CMake
1.2%
Other
0.9%
