Blender V5.0
sound.cc File Reference
#include <chrono>
#include <condition_variable>
#include <cstdlib>
#include <cstring>
#include <mutex>
#include <optional>
#include <thread>
#include "MEM_guardedalloc.h"
#include "BLI_build_config.h"
#include "BLI_listbase.h"
#include "BLI_math_base.h"
#include "BLI_math_rotation.h"
#include "BLI_path_utils.hh"
#include "BLI_string.h"
#include "BLI_threads.h"
#include "BLT_translation.hh"
#include "DNA_anim_types.h"
#include "DNA_object_types.h"
#include "DNA_packedFile_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "DNA_sequence_types.h"
#include "DNA_sound_types.h"
#include "DNA_speaker_types.h"
#include "DNA_userdef_types.h"
#include "BKE_bpath.hh"
#include "BKE_global.hh"
#include "BKE_idtype.hh"
#include "BKE_lib_id.hh"
#include "BKE_lib_query.hh"
#include "BKE_library.hh"
#include "BKE_main.hh"
#include "BKE_packedFile.hh"
#include "BKE_sound.h"
#include "DEG_depsgraph.hh"
#include "DEG_depsgraph_query.hh"
#include "BLO_read_write.hh"
#include "SEQ_sound.hh"
#include "SEQ_time.hh"
#include "CLG_log.h"
#include "BLI_utildefines.h"

Go to the source code of this file.

Macros

#define DNA_DEPRECATED_ALLOW

Functions

static void sound_free_audio (bSound *sound)
static void sound_copy_data (Main *, std::optional< Library * >, ID *id_dst, const ID *id_src, const int)
static void sound_free_data (ID *id)
static void sound_foreach_cache (ID *id, IDTypeForeachCacheFunctionCallback function_callback, void *user_data)
static void sound_foreach_path (ID *id, BPathForeachPathData *bpath_data)
static void sound_blend_write (BlendWriter *writer, ID *id, const void *id_address)
static void sound_blend_read_data (BlendDataReader *reader, ID *id)
BLI_INLINE void sound_verify_evaluated_id (const ID *id)
bSoundBKE_sound_new_file (Main *bmain, const char *filepath)
bSoundBKE_sound_new_file_exists_ex (Main *bmain, const char *filepath, bool *r_exists)
bSoundBKE_sound_new_file_exists (Main *bmain, const char *filepath)
void BKE_sound_update_sequence_handle (void *handle, void *sound_handle)
void BKE_sound_force_device (const char *)
void BKE_sound_init_once ()
void BKE_sound_init (Main *)
void BKE_sound_exit ()
void BKE_sound_exit_once ()
void BKE_sound_cache (bSound *)
void BKE_sound_delete_cache (bSound *)
void BKE_sound_load (Main *, bSound *)
void BKE_sound_create_scene (Scene *)
void BKE_sound_destroy_scene (Scene *)
void BKE_sound_lock ()
void BKE_sound_unlock ()
void BKE_sound_refresh_callback_bmain (Main *)
void BKE_sound_reset_scene_specs (Scene *)
void BKE_sound_mute_scene (Scene *, int)
void * BKE_sound_scene_add_scene_sound (Scene *, Strip *, int, int, int)
void * BKE_sound_scene_add_scene_sound_defaults (Scene *, Strip *)
void * BKE_sound_add_scene_sound (Scene *, Strip *, int, int, int)
void * BKE_sound_add_scene_sound_defaults (Scene *, Strip *)
void BKE_sound_remove_scene_sound (Scene *, void *)
void BKE_sound_mute_scene_sound (void *, bool)
void BKE_sound_move_scene_sound (const Scene *, void *, int, int, int, double)
void BKE_sound_move_scene_sound_defaults (Scene *, Strip *)
void BKE_sound_play_scene (Scene *)
void BKE_sound_stop_scene (Scene *)
void BKE_sound_seek_scene (Main *, Scene *)
double BKE_sound_sync_scene (Scene *)
void BKE_sound_read_waveform (Main *bmain, bSound *sound, bool *stop)
void BKE_sound_update_sequencer (Main *, bSound *)
void BKE_sound_update_scene (Depsgraph *, Scene *)
void BKE_sound_update_scene_sound (void *, bSound *)
void BKE_sound_update_scene_listener (Scene *)
void BKE_sound_update_fps (Main *, Scene *)
void BKE_sound_set_scene_sound_volume_at_frame (void *, int, float, char)
void BKE_sound_set_scene_sound_pan_at_frame (void *, int, float, char)
void BKE_sound_set_scene_volume (Scene *, float)
void BKE_sound_set_scene_sound_pitch_at_frame (void *, int, float, char)
void BKE_sound_set_scene_sound_pitch_constant_range (void *, int, int, float)
float BKE_sound_get_length (Main *, bSound *)
char ** BKE_sound_get_device_names ()
void BKE_sound_free_waveform (bSound *)
bool BKE_sound_info_get (Main *, bSound *, SoundInfo *)
bool BKE_sound_stream_info_get (Main *, const char *, int, SoundStreamInfo *)
void * BKE_sound_ensure_time_stretch_effect (void *, void *, float)
void BKE_sound_set_scene_sound_time_stretch_at_frame (void *, int, float, char)
void BKE_sound_set_scene_sound_time_stretch_constant_range (void *, int, int, float)
void BKE_sound_reset_scene_runtime (Scene *scene)
void BKE_sound_ensure_scene (Scene *scene)
void BKE_sound_reset_runtime (bSound *sound)
void BKE_sound_ensure_loaded (Main *bmain, bSound *sound)
void BKE_sound_jack_sync_callback_set (SoundJackSyncCallback callback)
void BKE_sound_jack_scene_update (Scene *scene, int mode, double time)
void BKE_sound_evaluate (Depsgraph *depsgraph, Main *bmain, bSound *sound)

Variables

IDTypeInfo IDType_ID_SO

Macro Definition Documentation

◆ DNA_DEPRECATED_ALLOW

#define DNA_DEPRECATED_ALLOW

Definition at line 30 of file blenkernel/intern/sound.cc.

Function Documentation

◆ BKE_sound_add_scene_sound()

void * BKE_sound_add_scene_sound ( Scene * scene,
Strip * sequence,
int startframe,
int endframe,
int frameskip )

Definition at line 1611 of file blenkernel/intern/sound.cc.

◆ BKE_sound_add_scene_sound_defaults()

void * BKE_sound_add_scene_sound_defaults ( Scene * scene,
Strip * sequence )

◆ BKE_sound_cache()

void BKE_sound_cache ( bSound * sound)

Definition at line 1589 of file blenkernel/intern/sound.cc.

◆ BKE_sound_create_scene()

void BKE_sound_create_scene ( Scene * scene)

Definition at line 1592 of file blenkernel/intern/sound.cc.

Referenced by BKE_sound_ensure_scene().

◆ BKE_sound_delete_cache()

void BKE_sound_delete_cache ( bSound * sound)

Definition at line 1590 of file blenkernel/intern/sound.cc.

◆ BKE_sound_destroy_scene()

void BKE_sound_destroy_scene ( Scene * scene)

Definition at line 1593 of file blenkernel/intern/sound.cc.

Referenced by BKE_scene_duplicate(), and scene_free_data().

◆ BKE_sound_ensure_loaded()

void BKE_sound_ensure_loaded ( Main * bmain,
bSound * sound )

Definition at line 1750 of file blenkernel/intern/sound.cc.

References BKE_sound_load(), and bSound::cache.

Referenced by BKE_sound_evaluate().

◆ BKE_sound_ensure_scene()

void BKE_sound_ensure_scene ( Scene * scene)

◆ BKE_sound_ensure_time_stretch_effect()

void * BKE_sound_ensure_time_stretch_effect ( void * sound_handle,
void * sequence_handle,
float fps )

◆ BKE_sound_evaluate()

void BKE_sound_evaluate ( Depsgraph * depsgraph,
Main * bmain,
bSound * sound )

◆ BKE_sound_exit()

void BKE_sound_exit ( )

Definition at line 1587 of file blenkernel/intern/sound.cc.

◆ BKE_sound_exit_once()

void BKE_sound_exit_once ( )

Definition at line 1588 of file blenkernel/intern/sound.cc.

Referenced by WM_exit_ex().

◆ BKE_sound_force_device()

void BKE_sound_force_device ( const char * device)

◆ BKE_sound_free_waveform()

void BKE_sound_free_waveform ( bSound * sound)

Definition at line 1689 of file blenkernel/intern/sound.cc.

Referenced by sound_free_data().

◆ BKE_sound_get_device_names()

char ** BKE_sound_get_device_names ( )

Definition at line 1683 of file blenkernel/intern/sound.cc.

◆ BKE_sound_get_length()

float BKE_sound_get_length ( Main * bmain,
bSound * sound )

Definition at line 1679 of file blenkernel/intern/sound.cc.

Referenced by blender::seq::add_reload_new_file().

◆ BKE_sound_info_get()

bool BKE_sound_info_get ( struct Main * main,
struct bSound * sound,
SoundInfo * sound_info )

Get information about given sound.

Returns
true on success, false if sound can not be loaded or if the codes is not supported.

Definition at line 1691 of file blenkernel/intern/sound.cc.

Referenced by BKE_nla_add_soundstrip(), and BKE_sound_new_file().

◆ BKE_sound_init()

void BKE_sound_init ( Main * bmain)

Definition at line 1586 of file blenkernel/intern/sound.cc.

Referenced by ED_reset_audio_device(), and wm_init_userdef().

◆ BKE_sound_init_once()

void BKE_sound_init_once ( )

Definition at line 1585 of file blenkernel/intern/sound.cc.

Referenced by main().

◆ BKE_sound_jack_scene_update()

void BKE_sound_jack_scene_update ( Scene * scene,
int mode,
double time )

◆ BKE_sound_jack_sync_callback_set()

void BKE_sound_jack_sync_callback_set ( SoundJackSyncCallback callback)

Definition at line 1758 of file blenkernel/intern/sound.cc.

References sound_jack_sync_callback(), and UNUSED_VARS.

Referenced by WM_init().

◆ BKE_sound_load()

◆ BKE_sound_lock()

void BKE_sound_lock ( )

◆ BKE_sound_move_scene_sound()

void BKE_sound_move_scene_sound ( const Scene * ,
void * ,
int ,
int ,
int ,
double  )

Definition at line 1625 of file blenkernel/intern/sound.cc.

◆ BKE_sound_move_scene_sound_defaults()

void BKE_sound_move_scene_sound_defaults ( Scene * scene,
Strip * sequence )

Definition at line 1633 of file blenkernel/intern/sound.cc.

Referenced by blender::seq::sound_update_bounds().

◆ BKE_sound_mute_scene()

void BKE_sound_mute_scene ( Scene * scene,
int muted )

Definition at line 1598 of file blenkernel/intern/sound.cc.

Referenced by BKE_scene_update_sound().

◆ BKE_sound_mute_scene_sound()

void BKE_sound_mute_scene_sound ( void * handle,
bool mute )

◆ BKE_sound_new_file()

◆ BKE_sound_new_file_exists()

bSound * BKE_sound_new_file_exists ( Main * bmain,
const char * filepath )

Definition at line 314 of file blenkernel/intern/sound.cc.

References BKE_sound_new_file_exists_ex().

◆ BKE_sound_new_file_exists_ex()

bSound * BKE_sound_new_file_exists_ex ( Main * bmain,
const char * filepath,
bool * r_exists )

◆ BKE_sound_play_scene()

void BKE_sound_play_scene ( Scene * scene)

Definition at line 1634 of file blenkernel/intern/sound.cc.

Referenced by BKE_sound_jack_scene_update(), and start_playback().

◆ BKE_sound_read_waveform()

void BKE_sound_read_waveform ( Main * bmain,
bSound * sound,
bool * stop )

◆ BKE_sound_refresh_callback_bmain()

void BKE_sound_refresh_callback_bmain ( Main * bmain)

Definition at line 1596 of file blenkernel/intern/sound.cc.

Referenced by CTX_data_main_set().

◆ BKE_sound_remove_scene_sound()

◆ BKE_sound_reset_runtime()

void BKE_sound_reset_runtime ( bSound * sound)

Definition at line 1744 of file blenkernel/intern/sound.cc.

References bSound::cache, and bSound::playback_handle.

Referenced by BKE_sound_new_file(), and sound_copy_data().

◆ BKE_sound_reset_scene_runtime()

◆ BKE_sound_reset_scene_specs()

void BKE_sound_reset_scene_specs ( Scene * scene)

Definition at line 1597 of file blenkernel/intern/sound.cc.

Referenced by RE_RenderAnim(), and sound_mixdown_exec().

◆ BKE_sound_scene_add_scene_sound()

void * BKE_sound_scene_add_scene_sound ( Scene * scene,
Strip * sequence,
int startframe,
int endframe,
int frameskip )

Definition at line 1599 of file blenkernel/intern/sound.cc.

◆ BKE_sound_scene_add_scene_sound_defaults()

void * BKE_sound_scene_add_scene_sound_defaults ( Scene * scene,
Strip * sequence )

◆ BKE_sound_seek_scene()

void BKE_sound_seek_scene ( Main * bmain,
Scene * scene )

Definition at line 1636 of file blenkernel/intern/sound.cc.

Referenced by BKE_scene_update_sound().

◆ BKE_sound_set_scene_sound_pan_at_frame()

void BKE_sound_set_scene_sound_pan_at_frame ( void * handle,
int frame,
float pan,
char animated )

◆ BKE_sound_set_scene_sound_pitch_at_frame()

void BKE_sound_set_scene_sound_pitch_at_frame ( void * handle,
int frame,
float pitch,
char animated )

◆ BKE_sound_set_scene_sound_pitch_constant_range()

void BKE_sound_set_scene_sound_pitch_constant_range ( void * handle,
int frame_start,
int frame_end,
float pitch )

◆ BKE_sound_set_scene_sound_time_stretch_at_frame()

void BKE_sound_set_scene_sound_time_stretch_at_frame ( void * handle,
int frame,
float time_stretch,
char animated )

◆ BKE_sound_set_scene_sound_time_stretch_constant_range()

void BKE_sound_set_scene_sound_time_stretch_constant_range ( void * handle,
int frame_start,
int frame_end,
float time_stretch )

◆ BKE_sound_set_scene_sound_volume_at_frame()

void BKE_sound_set_scene_sound_volume_at_frame ( void * handle,
int frame,
float volume,
char animated )

◆ BKE_sound_set_scene_volume()

void BKE_sound_set_scene_volume ( Scene * scene,
float volume )

◆ BKE_sound_stop_scene()

void BKE_sound_stop_scene ( Scene * scene)

◆ BKE_sound_stream_info_get()

bool BKE_sound_stream_info_get ( struct Main * main,
const char * filepath,
int stream,
SoundStreamInfo * sound_info )

Get information about given sound.

Returns
on success, false if sound can not be loaded or if the codes is not supported.

Definition at line 1696 of file blenkernel/intern/sound.cc.

◆ BKE_sound_sync_scene()

double BKE_sound_sync_scene ( Scene * scene)

Definition at line 1637 of file blenkernel/intern/sound.cc.

References NAN_FLT.

Referenced by screen_animation_step_invoke().

◆ BKE_sound_unlock()

void BKE_sound_unlock ( )

◆ BKE_sound_update_fps()

void BKE_sound_update_fps ( Main * bmain,
Scene * scene )

Definition at line 1653 of file blenkernel/intern/sound.cc.

Referenced by BKE_scene_update_sound().

◆ BKE_sound_update_scene()

void BKE_sound_update_scene ( Depsgraph * depsgraph,
Scene * scene )

Definition at line 1650 of file blenkernel/intern/sound.cc.

Referenced by BKE_scene_update_sound().

◆ BKE_sound_update_scene_listener()

void BKE_sound_update_scene_listener ( Scene * scene)

Definition at line 1652 of file blenkernel/intern/sound.cc.

Referenced by BKE_scene_update_sound().

◆ BKE_sound_update_scene_sound()

void BKE_sound_update_scene_sound ( void * handle,
struct bSound * sound )

Join the Sequence with the structure in Audaspace, the second parameter is a bSound.

Definition at line 1651 of file blenkernel/intern/sound.cc.

Referenced by blender::seq::seq_update_sound_strips(), and blender::seq::strip_update_sound_recursive().

◆ BKE_sound_update_sequence_handle()

void BKE_sound_update_sequence_handle ( void * handle,
void * sound_handle )

Join the Sequence with the structure in Audaspace,

Parameters
sound_handlethe AUD_Sound created in Audaspace previously.

Definition at line 1027 of file blenkernel/intern/sound.cc.

References UNUSED_VARS.

Referenced by blender::seq::retiming_sound_animation_data_set(), and blender::seq::strip_update_sound_modifiers().

◆ BKE_sound_update_sequencer()

void BKE_sound_update_sequencer ( Main * main,
bSound * sound )

Definition at line 1649 of file blenkernel/intern/sound.cc.

◆ sound_blend_read_data()

◆ sound_blend_write()

◆ sound_copy_data()

void sound_copy_data ( Main * ,
std::optional< Library * > ,
ID * id_dst,
const ID * id_src,
const int  )
static

◆ sound_foreach_cache()

void sound_foreach_cache ( ID * id,
IDTypeForeachCacheFunctionCallback function_callback,
void * user_data )
static

◆ sound_foreach_path()

◆ sound_free_audio()

void sound_free_audio ( bSound * sound)
static

◆ sound_free_data()

◆ sound_verify_evaluated_id()

BLI_INLINE void sound_verify_evaluated_id ( const ID * id)

Variable Documentation

◆ IDType_ID_SO

IDTypeInfo IDType_ID_SO

Definition at line 195 of file blenkernel/intern/sound.cc.