Commit Graph

150 Commits

Author SHA1 Message Date
da411d1625 Workaround WebM playback bug after AudioServer latency fixes
af9bb0ea15 fixed AudioServer's
`get_output_delay()` (which used to always return 0) while renaming it
to `get_output_latency()`. It now returns the latency from the
AudioDriver, which can be non-0.

While this was a clear bugfix, it broke playback for WebM files without
audio track. It seems like the playback code, even though it queried
the output delay to calculate a time compensation, was designed to work
even though the delay value was actually bogus. Now that it's correct,
it's not working.

As a workaround we comment out uses of the output latency, restoring
the behavior of Godot 3.1.

This code should still be reviewed by someone more versed in video
playback and fixed to properly account for the non-0 driver latency.

Fixes #35760.
2020-02-07 21:01:05 +01:00
f0db13502a Remove duplicate WARN_PRINT macro. 2020-02-05 11:13:24 +01:00
837adb30fd Revert "Exposes capture methods to AudioServer + documentation" #30468
Reverts the following commits:

- c81ec6f26d:
  "Exposes capture methods to AudioServer, variable renames for
  consistency, added documentation."
- 47c558b98a:
  "Expose audio callbacks as signals."
- dabaa11b3c:
  "Fix to make sure the capture buffers are deallocated at shutdown.
  Silences warnings."

Some documentation improvements were kept for pre-existing methods.

See rationale for reverting these changes in #30468.
2020-01-20 13:18:01 +01:00
a7f49ac9a1 Update copyright statements to 2020
Happy new year to the wonderful Godot community!

We're starting a new decade with a well-established, non-profit, free
and open source game engine, and tons of further improvements in the
pipeline from hundreds of contributors.

Godot will keep getting better, and we're looking forward to all the
games that the community will keep developing and releasing with it.
2020-01-01 11:16:22 +01:00
dabaa11b3c Fix to make sure the capture buffers are deallocated at shutdown. Silences warnings. 2019-10-11 23:40:43 +01:00
47c558b98a Expose audio callbacks as signals. 2019-07-16 04:10:26 +01:00
c81ec6f26d Exposes capture methods to AudioServer, variable renames for consistency,
added documentation.
2019-07-15 15:12:29 +01:00
1c2ba35074 Add 'global_rate_scale' to the AudioServer
Closes #28953.
2019-06-19 11:36:46 -03:00
c2027c8233 Added functions to further improve music timing 2019-04-27 14:05:16 -03:00
af9bb0ea15 Clean up latency related functions 2019-04-27 12:23:05 -03:00
e33764744c Added generator audio stream, and spectrum analyzer audio effect
Made AudioFrame and Vector2 equivalent for casting.
Added ability to obtain the playback object from stream players.
Added ability to obtain effect instance from audio server.
2019-04-10 12:58:06 -03:00
650b698f51 Allow default audio bus layout modification 2019-04-05 17:19:25 +02:00
c24f53d4f6 Fix #25639 by not shifting a negative value. 2019-03-05 21:32:18 +01:00
f529649cec Fix possible crash on AudioDriver::input_buffer_write 2019-03-02 19:41:45 -03:00
e5f665c718 Fix -Wsign-compare warnings.
I decided to modify code in a defensive way. Ideally functions
like size() or length() should return an unsigned type.
2019-02-27 07:45:57 +01:00
5fc86026ca Fix typos with codespell
Using codespell 1.14.0.

Method:
```
$ cat > ../godot-word-whitelist.txt << EOF
ang
doubleclick
lod
nd
numer
que
te
unselect
EOF
$ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"
$ git diff // undo unwanted changes
```
2019-02-13 09:23:29 +01:00
b16c309f82 Update copyright statements to 2019
Happy new year to the wonderful Godot community!
2019-01-01 12:58:10 +01:00
4148eed943 Merge pull request #24324 from volzhs/access-mic
Request mic access only when is needed
2018-12-14 08:57:22 +01:00
7d387dc63f Request mic access only when is needed 2018-12-14 06:40:13 +09:00
016092181c Merge pull request #22910 from marcelofg55/nothreads_rec
Fix AudioEffectRecord not working without thread support
2018-12-13 21:11:02 +01:00
7da55fb739 Fix AudioEffectRecord not working without thread support 2018-12-12 21:44:11 -03:00
792786b4b7 Fix EditorAudioBuses not updating when changing to a device with different channels 2018-12-11 19:54:52 -03:00
65111ba996 Ability to remove buses while they are being used on 2D and 3D stream players. Fixes #15115 2018-11-13 18:17:19 -03:00
660395153f Use ResourceLoader::exists to check for default audio bus layout 2018-11-12 14:35:32 +01:00
1169196f04 Merge pull request #22779 from Superwaitsum/LimitSettings
Limit several project settings
2018-10-25 11:38:06 +02:00
e5041ad0f5 Add some limits on the Editor Settings 2018-10-24 19:46:33 -05:00
fa26a5511d Fix possible audio input buffer issues 2018-10-20 12:13:40 -03:00
8816c7d8a2 Add missing BIND_ENUM for SPEAKER_SURROUND_31 2018-10-08 21:33:51 -03:00
cdc411fd54 Fix various warnings: [-Waddress], [-Wpointer-arith], [-Wwrite-strings], [-Wreturn-local-addr] and more
Fixes the following GCC 5 warnings:
```
core/os/file_access.cpp:49:19: warning: the address of 'FileAccess::create_func' will always evaluate as 'true' [-Waddress]
servers/audio_server.cpp:192:70: warning: comparison with string literal results in unspecified behaviour [-Waddress]

drivers/gles2/rasterizer_storage_gles2.cpp:4095:90: warning: NULL used in arithmetic [-Wpointer-arith]

modules/gdnative/register_types.cpp:237:3: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
platform/android/export/export.cpp:207:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

modules/gdscript/gdscript.h:150:67: warning: returning reference to temporary [-Wreturn-local-addr]
servers/physics_2d/collision_object_2d_sw.h:119:56: warning: returning reference to temporary [-Wreturn-local-addr]
servers/physics_2d/collision_object_2d_sw.h:123:56: warning: returning reference to temporary [-Wreturn-local-addr]
servers/physics_2d/collision_object_2d_sw.h:127:50: warning: returning reference to temporary [-Wreturn-local-addr]
servers/physics_2d/collision_object_2d_sw.h:131:52: warning: returning reference to temporary [-Wreturn-local-addr]

editor/plugins/skeleton_editor_plugin.cpp:34:36: warning: extra tokens at end of #include directive
modules/bullet/bullet_types_converter.cpp:31:9: warning: #pragma once in main file

editor/import/editor_scene_importer_gltf.cpp:1996:51: warning: name lookup of 'i' changed
modules/visual_script/visual_script_property_selector.cpp:402:45: warning: name lookup of 'E' changed
scene/gui/tree.cpp:1268:25: warning: name lookup of 'i' changed
scene/resources/visual_shader.cpp:808:32: warning: name lookup of 'i' changed
```
2018-09-27 16:33:52 +02:00
277b24dfb7 Make core/ includes absolute, remove subfolders from include path
This allows more consistency in the manner we include core headers,
where previously there would be a mix of absolute, relative and
include path-dependent includes.
2018-09-12 09:52:22 +02:00
d37e9ef95d log to console if falling back to dummy audio driver 2018-08-27 05:35:59 -07:00
76adef2704 Fix arg name in docs, some copy-paste errors 2018-08-21 01:51:19 +07:00
14fa843735 Add Dummy AudioDriver into the AudioDriverManager list 2018-08-13 18:11:24 -03:00
597301db34 Renamed AudioDriver audio_input_* vars to input_* 2018-07-27 15:09:03 -03:00
2cf8da9d9f Implemented capture device selection for CoreAudio 2018-07-27 16:50:11 +01:00
061358d838 Modified Microphone implementation to handle only one device at a time (WIP) 2018-07-27 16:50:10 +01:00
f85062495c Experimental microphone support. 2018-07-27 16:50:09 +01:00
91d6fa817e Merge pull request #15967 from Gamblify/AudioRecordingModule
Audio Recording from godot
2018-07-26 15:37:19 +02:00
cd2070c684 Audio Recording module
Implements an Audio bus effect that outputs the audio from the bus into a wav file

Now channels audio recording into an AudioStreamSample instead of saving to wav
2018-07-26 14:14:29 +02:00
0e29f7974b Reduce unnecessary COW on Vector by make writing explicit
This commit makes operator[] on Vector const and adds a write proxy to it.  From
now on writes to Vectors need to happen through the .write proxy. So for
instance:

Vector<int> vec;
vec.push_back(10);
std::cout << vec[0] << std::endl;
vec.write[0] = 20;

Failing to use the .write proxy will cause a compilation error.

In addition COWable datatypes can now embed a CowData pointer to their data.
This means that String, CharString, and VMap no longer use or derive from
Vector.

_ALWAYS_INLINE_ and _FORCE_INLINE_ are now equivalent for debug and non-debug
builds. This is a lot faster for Vector in the editor and while running tests.
The reason why this difference used to exist is because force-inlined methods
used to give a bad debugging experience. After extensive testing with modern
compilers this is no longer the case.
2018-07-26 00:54:16 +02:00
c69de2ba46 -Project/Editor settings now use new inspector
-Project/Editor settings now show tooltips properly
-Settings thar require restart now will show a restart warning
-Video driver is now visible all the time, can be changed easily
-Added function to request current video driver
2018-07-19 19:02:04 -03:00
9f6536bd0a Add Audio Server profiling time to the profiler 2018-07-17 10:11:56 -03:00
3930e755e4 Added Performance.AUDIO_OUTPUT_LATENCY 2018-07-17 08:54:59 -03:00
5d61cdf5b5 Remove audio latency print 2018-06-20 14:00:19 -03:00
c8a5145a6d Removed unused AudioServer::update function 2018-06-15 14:13:33 -03:00
ecc1b34cbc Added new audio device functions to set/get the audio device 2018-03-26 17:41:05 -03:00
87ebdd6041 Fix possible crash when audio channels change 2018-03-19 09:00:11 -03:00
56dcf4b983 AudioServer emit bus_layout_changed signal when adding, moving or deleting a bus 2018-02-23 23:42:57 +01:00
612ab4bbc6 Fix typos with codespell
Found via `codespell -q 3 --skip="./thirdparty,./editor/translations" -I ../godot-word-whitelist.txt`
Whitelist consists of:
```
ang
doubleclick
lod
nd
que
te
unselect
```
2018-02-21 19:46:06 +01:00
9b8e8b2220 Bind many more properties to scripts
Notable potentially breaking changes:
- PROPERTY_USAGE_NOEDITOR is now PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_NETWORK, without PROPERTY_USAGE_INTERNAL
- Some properties were renamed, and sometimes even shadowed by new ones
- New getter methods (some virtual) were added
2018-01-12 00:58:14 +02:00