Chris Robinson
cd2fd126c4
Add an alffplay option to play stereo streams with wide angles
2018-05-17 03:54:32 -07:00
Henri Hyyryläinen
a7da29804d
Added missing string include to alffplay
2018-03-30 01:53:55 +03:00
Chris Robinson
413d55aaa5
Fix a couple comments about coordinate handedness
2018-03-24 07:02:27 -07:00
Chris Robinson
55a73b8df9
Fix for older MSVC lacking strtof
2018-03-21 08:35:37 -07:00
Chris Robinson
47260fc70b
Update the multi-reverb example with improved transitions
...
This better calculates the environment coverage by correctly calculating the
portal's extents, improves the panning direction when close to the portal, and
applies attenuation based on contribution. Movement has changed to make the
listener move back and forth between environments with a stationary source,
rather than continually looping environments with a position-relative source.
2018-03-20 23:58:32 -07:00
Chris Robinson
325fca5215
Change the presets for the multireverb example
2018-03-16 05:01:00 -07:00
Chris Robinson
cba37819d1
Add missing include
2018-03-01 21:19:49 -08:00
Chris Robinson
0d91d63cf3
Fix use of argv[0] as the program name after incrementing
2018-02-28 21:04:45 -08:00
Chris Robinson
abc6e37e6e
Apply distance attenuation to reverb zones in almultireverb
2018-02-28 20:59:41 -08:00
Chris Robinson
9fc2dbe063
Update the multi-zone reverb example for clarity
2018-02-20 08:08:18 -08:00
Alexey Elymanov
d7d043a5ef
fix building on freebsd (clang)
...
fixes error: 'pow' is not a member of 'std'
2018-02-20 11:53:55 +03:00
Chris Robinson
1002bc36e0
Add an example for multi-zone reverb
2018-02-18 23:56:51 -08:00
Chris Robinson
e49607078e
Handle disconnected events in alffplay
2018-02-03 11:27:03 -08:00
Chris Robinson
7a538141c9
Signal a condition variable when a buffer completes in alffplay
2018-02-01 02:24:44 -08:00
Chris Robinson
833eface38
Don't print buffer completed events in alffplay
2018-01-31 20:27:14 -08:00
Chris Robinson
782eb650c7
Use std::array instead of a plain array in alffplay
2018-01-28 13:18:33 -08:00
Chris Robinson
932939c5a8
Enable events in alffplay
2018-01-24 20:04:57 -08:00
Chris Robinson
2ac0adaebb
Use a new proper buffer function with a flags parameter
...
Rather than hackily combining bit flags with the format, to increase the number
of potential flags. alBufferData now behaves as if calling alBufferStorageSOFT
with a flags value of 0.
2018-01-23 14:33:30 -08:00
Chris Robinson
4ebb97bf73
Test mapped buffers in alffplay
2018-01-23 11:15:25 -08:00
Chris Robinson
5acb2e5165
Remove alffplay's duplicate ALC_SOFT_device_clock declarations
2018-01-15 07:14:35 -08:00
Chris Robinson
682205a3d4
Finalize ALC_SOFT_device_clock
2018-01-15 06:45:53 -08:00
Chris Robinson
c8a30592e8
Only print the time in alffplay when it changes
2018-01-07 17:23:51 -08:00
Chris Robinson
0e1fd34c89
Fix a temp buffer leak in alffplay
2018-01-05 20:41:55 -08:00
Chris Robinson
10f2531b6c
Handle the audio clock diff as nanoseconds in alffplay
2018-01-05 05:41:57 -08:00
Chris Robinson
fd8143fea0
Use a non-recursive mutex for alffplay's source lock
2018-01-03 19:05:25 -08:00
Chris Robinson
9d61f429a5
Use ALC_SOFT_device_clock in alffplay
2018-01-02 19:32:28 -08:00
Chris Robinson
dcc0f6e25d
Improve starting synchronization in alffplay
...
It waits until the internal buffers are filled before starting playback, then
triggering the audio and video to start as close together as possible.
2018-01-02 03:31:12 -08:00
Chris Robinson
21684fac69
Inline and simplify some code
2018-01-01 22:28:28 -08:00
Chris Robinson
329333ca8b
Don't leak the AVIOContext
2018-01-01 19:16:05 -08:00
Chris Robinson
91e20dc12e
Fix a couple alffplay comments still referencing Alure
2018-01-01 18:54:15 -08:00
Chris Robinson
aecfa0b426
Make smart pointer wrappers for some ffmpeg types
2018-01-01 18:47:48 -08:00
Chris Robinson
9675068706
Print the running time and duration in alffplay
2018-01-01 16:15:32 -08:00
Chris Robinson
cbd55ad31e
Use aliases to simplify some time type names
2018-01-01 02:26:39 -08:00
Chris Robinson
5eb1753d31
Wrap av_gettime to ensure it's interpreted as microseconds
2018-01-01 01:39:28 -08:00
Chris Robinson
e277f5e268
Rename the do_direct_out variable
2018-01-01 01:14:53 -08:00
Chris Robinson
145bf52b7a
Use a less-intense memory order to check for quitting
2018-01-01 01:13:32 -08:00
Chris Robinson
fe7bdc93eb
Check for AL_SOFT_direct_channels once when initializing
2018-01-01 01:07:29 -08:00
Chris Robinson
d889435334
Declare the total buffer time instead of buffer count
2018-01-01 01:04:47 -08:00
Chris Robinson
dad17a7d91
Use a std::array for the buffers in alffplay
2018-01-01 00:32:27 -08:00
Chris Robinson
830adf6ae8
Use inline member initialization where possible
2018-01-01 00:17:40 -08:00
Chris Robinson
babfa70cab
Make more values global const
2018-01-01 00:02:51 -08:00
Chris Robinson
258eadd003
Use a global to specify alffplay's audio sync threshold
2017-12-31 23:44:33 -08:00
Chris Robinson
48916ebd76
Clear the buffer queue when underrun
2017-12-31 16:29:52 -08:00
Chris Robinson
506d316f55
Wake up the packet send loop when more frames are needed
2017-12-31 16:11:00 -08:00
Chris Robinson
490b71378e
Readd AL_SOFT_source_latency support to alffplay
2017-12-30 23:12:19 -08:00
Chris Robinson
0e8b0c520e
Use standard duration types for stream clocks
2017-12-30 22:46:09 -08:00
Chris Robinson
0136df1e62
Improve the alffplay queue for FFmpeg's send/receive API
...
The packet handling thread now calls avcodec_send_packet to give compressed
data to libavcodec, while the audio/video threads call avcodec_receive_frame to
handle decoded frames. The packet thread still maintains local queues for each
stream to avoid starving an A/V thread when the other doesn't want another
frame yet.
2017-12-30 20:34:33 -08:00
Chris Robinson
8253014fe9
Fix some types to make MSVC happy
2017-12-17 15:56:30 -08:00
Chris Robinson
0e2e9e9a29
Add a simple non-streaming play example
2017-11-07 23:12:12 -08:00
Chris Robinson
4ec67e6226
Add missing include for std::array
2017-07-23 00:18:32 -07:00