Commit graph

220 commits

Author SHA1 Message Date
FearlessTobi
51d348b087 General: Make use of std::nullopt where applicable
Allows some implementations to avoid completely zeroing out the internal
buffer of the optional, and instead only set the validity byte within
the structure.

This also makes it consistent how we return empty optionals.

Co-Authored-By: LC <712067+lioncash@users.noreply.github.com>
2020-10-03 17:25:54 +02:00
tywald
3d9d071262 cubeb_sink.cpp: Change one log from INFO to DEBUG level. 2020-08-20 20:22:50 +02:00
xperia64
b4ec50ba21
Actually return true if InitMFDLL succeeded (#5470) 2020-07-23 00:46:10 -04:00
Pengfei Zhu
5b245aafd3
Merge pull request #5402 from xperia64/update_teakra_sync
Update teakra, adjust TeakraSlice for new audio frame period
2020-06-11 22:41:01 +08:00
Pengfei Zhu
2632b421c2
Merge pull request #5266 from xperia64/audio_ticks_tweak
Adjust audio_frame_ticks
2020-06-11 22:37:30 +08:00
xperia64
b0a20180ee Update comments after hardware testing 2020-06-10 23:05:02 -04:00
xperia64
62e2cd6239 Use samples_per_frame instead of hardcoded 160 2020-06-10 17:10:50 -04:00
xperia64
20d823a42a Fix WMF AAC decoder bug 2020-06-10 16:58:09 -04:00
xperia64
daf0e750d2 Update teakra, adjust TeakraSlice for new audio frame period 2020-06-07 20:06:22 -04:00
xperia64
21159dd83a clang-format, and avoid another potential leak 2020-05-21 21:05:03 -04:00
xperia64
f9750875e3 Avoid leaking the cubeb input stream 2020-05-21 20:34:00 -04:00
xperia64
a0e8255b65 Update cycles and explanation 2020-04-26 03:14:54 -04:00
xperia64
3a1601a534 Change audio_frame_ticks with length explanation 2020-04-21 23:40:34 -04:00
xperia64
38c3c9c74b
Add sample rate field to AAC decoder (#5195)
* Add sample rate field to AAC decoder

* Fix TODO comment

* Remove unneeded conversion
2020-04-21 20:34:50 -05:00
Hamish Milne
828f88d20a Merge branch 'master' into feature/savestates-2 2020-04-12 11:24:06 +01:00
Marshall Mohror
9c7da35382
Merge pull request #5083 from zhaowenlan1779/video-dumping-update
video_core, citra_qt: Video dumping updates
2020-04-03 21:15:32 -05:00
Hamish Milne
92640fc29c Code review actions (plus hopefully fix the linux CI) 2020-03-31 17:54:28 +01:00
Hamish Milne
841255cd16 Attempt to fix the linux builds 2020-03-28 21:40:18 +00:00
James Rowe
a6ee1bf913
HLE Audio: Increase frame position by input buffer sample rate (#5049)
* HLE Audio: Increase frame position by input buffer sample rate

Currently the frame position moves ahead by the number of samples
output, but thats a fixed number based on the 3ds native sample rate.
Instead, based on a homebrew by cyuubi and looking at the lle audio,
this sample position should be moved forward by the number of samples
from the input buffer that was read, based on the buffer's sample rate.
2020-03-28 10:39:50 -05:00
Hamish Milne
025960bcdd Attempt to fix flatpak CI 2020-03-28 15:10:35 +00:00
Hamish Milne
7049af744f Merge remote-tracking branch 'upstream/master' into feature/savestates-2 2020-03-28 12:33:21 +00:00
Hamish Milne
232b52a27d Minor cleanup 2020-03-28 09:59:45 +00:00
Hamish Milne
3d1180ee21 DSP now works... committing this!! 2020-03-27 22:19:29 +00:00
BreadFish64
37384174d9 fix formatting for media-ndk 2020-03-17 21:15:33 -05:00
zhang wei
3410b96400
mediandk for android (#4921) 2020-03-16 21:07:22 -05:00
Hamish Milne
da3ab3d56e Merge branch 'master' into feature/savestates-2 2020-03-07 21:23:08 +00:00
zhupengfei
3c6765e87c
core: Properly std::move things around 2020-02-27 16:55:09 +08:00
liushuyu
cff00f38c5
Implements fdk_aac decoder (#4764)
* audio_core: dsp_hle: implements fdk_aac decoder

* audio_core: dsp_hle: clean up and add comments

* audio_core: dsp_hle: move fdk include to cpp file

* audio_core: dsp_hle: detects broken fdk_aac...

... and refuses to initialize if that's the case

* audio_core: dsp_hle: fdk_aac: address comments...

... and rebase commits

* fdk_decoder: move fdk header to cpp file
2020-02-23 11:01:21 +01:00
Hamish Milne
c983528862 Reworked DSP serialization 2020-02-13 17:42:12 +08:00
Hamish Milne
6917eaf53b Use load_construct_data for kernel objects 2020-02-13 17:38:25 +08:00
Hamish Milne
ee2cae2093 Added core serialization 2020-02-13 17:34:13 +08:00
James Rowe
5fd1ff08d7
Merge pull request #5024 from jroweboy/temp-hle-audio-fix
Prevent out of memory errors when the game passes in an improper length value
2020-01-21 15:30:20 -07:00
James Rowe
e53a2ac411 Reenable AAC FFMPEG decoding
Simple cut/paste issue where initialized is only set to true when the
emulation attempts to init the Binary Pipe, but we used it to test if
the FFMPEG decoder was valid and disabled it if it wasn't. Just return
the value of have_ffmpeg_dl instead so when dynamic loading is added
it'll still work.
2019-12-16 19:23:43 -07:00
James Rowe
87facaa2e2 Prevent out of memory errors when the game passes in an improper length value
HACK

In Luigi's Mansion Dark Moon in HLE audio, the game mysteriously passes
in an extremely large value for length, which without any checks, causes
HLE audio to allocate an extremely large buffer.

This value seemingly is caused by some other HLE audio feature is missing,
and Luigi's Mansion subtracts two values to get a length, without
checking for overflow first. This appears to be caused by an incorrect
HLE audio emulation, as its fixed entirely by only changing to LLE. As
such, further investigation is required, but in the meantime, completely
eating up our users RAM is unacceptable.
2019-12-14 18:18:59 -07:00
James Rowe
337ac73915 Improve aac decoder selection 2019-12-08 16:18:39 -07:00
James Rowe
b395efe804 Dynamically load Media Foundation 2019-12-08 13:54:27 -07:00
vvanelslande
e1e136d72f service/mic: actually use the specified device 2019-11-11 17:15:10 -05:00
zhupengfei
f8b3950829
CMake: separate options for FFmpeg decoder/dumper
Separate options are now provided for FFmpeg AAC audio decoder and FFmpeg video dumper. This allows users to configure Citra with greater freedom.

Also, previously for Linux builds, AAC decoder is accidentally enabled along with the dumper, which could potentially cause patent issues (?). This commit fixes it by only enabling video dumper.
2019-08-20 14:45:39 +08:00
zhupengfei
cf2c354fb9
CMake, CI: Add FFmpeg library dependency 2019-08-14 09:27:03 +08:00
zhupengfei
fff570012f
audio_core: Dump audio frames and samples
This is tested to work with all three current methods - HLE, LLE and multithread LLE.
2019-08-13 19:28:03 +08:00
Weiyi Wang
3dbd1fd4a8 audio_core/cubeb: silent signed/unsigned comparison warning 2019-07-14 14:30:24 -04:00
liushuyu
8021361bb4
audio_core: dsp_hle: use better f32 to s16...
... conversion by clamping and clipping sample to [-1,1] and use
different masks for negative and positive samples
2019-05-01 15:58:26 -06:00
James Rowe
f4d0bdd09a Destroy the callback after the stream is destroyed
Prevents a crash on close if the callback was running on a different
thread.
2019-04-05 14:16:55 -06:00
Vamsi Krishna
aedf5a84b0
Merge pull request #4671 from jroweboy/mic4
Microphone support
2019-03-20 23:12:38 +05:30
James Rowe
b4d538468d Change resampling s16 -> u8 to respect aliasing rules 2019-03-20 09:31:03 -06:00
James Rowe
9739e2b6fd Support signed 8bit pcm in cubeb input. Address review 2019-03-17 22:52:03 -06:00
James Rowe
f5df13eb24 Remove global state and add mic hot swapping 2019-03-06 20:59:58 -07:00
James Rowe
182d672c15 Add ifdef around cubeb for android. Address a few review comments 2019-03-06 20:03:22 -07:00
James Rowe
5c61d53047 Fix compiler error 2019-03-06 11:30:23 -07:00
James Rowe
ba4dfe4217 Increase mic stream volume to max in case the users mic is set low for some reason 2019-03-06 11:17:32 -07:00