Commit Graph

150 Commits

Author SHA1 Message Date
Chris Robinson 426c4587cc Some clean up to use uniform initialization 2019-07-10 02:13:28 -07:00
Chris Robinson 159024acc9 Improve alffplay video clock timing 2019-07-09 22:15:05 -07:00
Chris Robinson 3ffb6867a3 Rework packet handling in alffplay
Turns out avcodec_send_packet is what can invoke the decode for serialized
codecs, so don't call that in the parse handler thread. The packet queue is
used to get the compressed data from the parse handler to the audio/video
threads.

Additionally, don't serialize the video frame preparation with the decode
thread.
2019-07-08 13:18:10 -07:00
Chris Robinson 2783b4c04b Somewhat simplify alffplay playback timing 2019-07-06 22:18:52 -07:00
Chris Robinson 90b1bc7b7a Make sure a variable is set before use 2019-06-30 23:32:09 -07:00
Chris Robinson 0aeaf06173 Properly set DisableVideo to true 2019-06-30 22:02:40 -07:00
Chris Robinson e9bf7e4b15 Add an option to disable video in alffplay 2019-06-30 18:17:23 -07:00
Chris Robinson 0aa0f24dd7 Use a proper flag to indicate audio is prepared in alffplay 2019-03-01 22:46:56 -08:00
Chris Robinson 8a34bd59b0 Unlock the audio decoder mutex before disabling events in alffplay
The callback may be waiting on the mutex, but disabling the callback needs any
current invocation to finish first.
2019-02-25 02:03:43 -08:00
Chris Robinson b7b4cfae2b Fixed alffplay underrun recovery timing 2019-02-04 21:22:43 -08:00
Chris Robinson e55f9b42e9 Partially handle ambisonics in alffplay
This is currently really only applicable to Opus-encoded files. It assumes
AmbiX (SN3D normalization, ACN ordering) and only comes into play when the
channel layout is blank. FFmpeg/libavcodec doesn't have a way to detect
B-Format input or what normalization and ordering it uses. Note in particular
.amb files do not play correctly (libavcodec seems to apply a default channel
layout for 4-channel wav-type files, regardless of its channel mask value).
2019-01-27 14:53:46 -08:00
Chris Robinson d7eee03272 Replace a couple more C-style casts 2019-01-08 19:08:03 -08:00
Filip Gawin 0d3a0635d9 Avoid using old style casts
To think about:
examples/alffplay.cpp:600
OpenAL32/Include/alMain.h:295
2019-01-08 19:42:44 +01:00
Filip Gawin 0537414baf Use nullptr in cpp files 2019-01-07 12:37:13 +01:00
Chris Robinson 3f745be1dc Return a signed integer from altime_get 2018-11-27 12:11:11 -08:00
Chris Robinson ff6dda06ad Add the appropriate include for the _POSIX_TIMERS macro 2018-11-27 10:35:00 -08:00
Chris Robinson 9b2b83f99c Fix use of clock_gettime 2018-11-27 00:02:31 -08:00
Chris Robinson 2530370ff2 Avoid relying on struct timespec 2018-11-26 23:45:04 -08:00
Chris Robinson d7d99adc91 Avoid including threads.h in the example helpers 2018-11-26 23:18:51 -08:00
Chris Robinson dc8ef8264a Try to improve alffplay underrun device time adjustment 2018-11-20 12:32:42 -08:00
Chris Robinson de13f30e28 Improve audio underrun recordery in alffplay
Now it has a better idea to skip samples during refill instead of after
restarting.
2018-11-18 05:38:03 -08:00
Chris Robinson f3ce7bc7dc Move altimespec_get and al_nssleep to examples' common code 2018-11-10 21:09:54 -08:00
Filip Gawin 08226bc6b0 Simplify some statements 2018-10-29 13:38:58 +01:00
Chris Robinson 31b9c50721 Use the common init/close functions for alffplay 2018-10-10 16:16:00 -07:00
Chris Robinson f589244fb6 Allow building alffplay without experimental extensions 2018-10-08 15:03:49 -07:00
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