aboutsummaryrefslogtreecommitdiffstats
path: root/examples/alffplay.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Use a proper flag to indicate audio is prepared in alffplayChris Robinson2019-03-011-14/+9
|
* Unlock the audio decoder mutex before disabling events in alffplayChris Robinson2019-02-251-2/+3
| | | | | The callback may be waiting on the mutex, but disabling the callback needs any current invocation to finish first.
* Fixed alffplay underrun recovery timingChris Robinson2019-02-041-33/+26
|
* Partially handle ambisonics in alffplayChris Robinson2019-01-271-28/+98
| | | | | | | | | 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).
* Replace a couple more C-style castsChris Robinson2019-01-081-3/+2
|
* Avoid using old style castsFilip Gawin2019-01-081-14/+14
| | | | | | To think about: examples/alffplay.cpp:600 OpenAL32/Include/alMain.h:295
* Use nullptr in cpp filesFilip Gawin2019-01-071-1/+1
|
* Try to improve alffplay underrun device time adjustmentChris Robinson2018-11-201-1/+1
|
* Improve audio underrun recordery in alffplayChris Robinson2018-11-181-0/+12
| | | | | Now it has a better idea to skip samples during refill instead of after restarting.
* Use the common init/close functions for alffplayChris Robinson2018-10-101-33/+14
|
* Allow building alffplay without experimental extensionsChris Robinson2018-10-081-12/+42
|
* Add an alffplay option to play stereo streams with wide anglesChris Robinson2018-05-171-10/+34
|
* Added missing string include to alffplayHenri Hyyryläinen2018-03-301-0/+1
|
* fix building on freebsd (clang)Alexey Elymanov2018-02-201-0/+1
| | | fixes error: 'pow' is not a member of 'std'
* Handle disconnected events in alffplayChris Robinson2018-02-031-4/+18
|
* Signal a condition variable when a buffer completes in alffplayChris Robinson2018-02-011-4/+9
|
* Don't print buffer completed events in alffplayChris Robinson2018-01-311-0/+6
|
* Use std::array instead of a plain array in alffplayChris Robinson2018-01-281-4/+4
|
* Enable events in alffplayChris Robinson2018-01-241-0/+73
|
* Use a new proper buffer function with a flags parameterChris Robinson2018-01-231-12/+11
| | | | | | 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.
* Test mapped buffers in alffplayChris Robinson2018-01-231-14/+68
|
* Remove alffplay's duplicate ALC_SOFT_device_clock declarationsChris Robinson2018-01-151-14/+0
|
* Finalize ALC_SOFT_device_clockChris Robinson2018-01-151-4/+1
|
* Only print the time in alffplay when it changesChris Robinson2018-01-071-4/+11
|
* Fix a temp buffer leak in alffplayChris Robinson2018-01-051-2/+2
|
* Handle the audio clock diff as nanoseconds in alffplayChris Robinson2018-01-051-8/+6
|
* Use a non-recursive mutex for alffplay's source lockChris Robinson2018-01-031-11/+14
|
* Use ALC_SOFT_device_clock in alffplayChris Robinson2018-01-021-12/+86
|
* Improve starting synchronization in alffplayChris Robinson2018-01-021-19/+60
| | | | | It waits until the internal buffers are filled before starting playback, then triggering the audio and video to start as close together as possible.
* Inline and simplify some codeChris Robinson2018-01-011-29/+23
|
* Don't leak the AVIOContextChris Robinson2018-01-011-1/+8
|
* Fix a couple alffplay comments still referencing AlureChris Robinson2018-01-011-4/+4
|
* Make smart pointer wrappers for some ffmpeg typesChris Robinson2018-01-011-72/+81
|
* Print the running time and duration in alffplayChris Robinson2018-01-011-1/+42
|
* Use aliases to simplify some time type namesChris Robinson2018-01-011-67/+61
|
* Wrap av_gettime to ensure it's interpreted as microsecondsChris Robinson2018-01-011-7/+10
|
* Rename the do_direct_out variableChris Robinson2018-01-011-3/+3
|
* Use a less-intense memory order to check for quittingChris Robinson2018-01-011-9/+9
|
* Check for AL_SOFT_direct_channels once when initializingChris Robinson2018-01-011-10/+8
|
* Declare the total buffer time instead of buffer countChris Robinson2018-01-011-10/+15
|
* Use a std::array for the buffers in alffplayChris Robinson2018-01-011-8/+7
|
* Use inline member initialization where possibleChris Robinson2018-01-011-86/+69
|
* Make more values global constChris Robinson2018-01-011-19/+18
|
* Use a global to specify alffplay's audio sync thresholdChris Robinson2017-12-311-15/+11
|
* Clear the buffer queue when underrunChris Robinson2017-12-311-1/+3
|
* Wake up the packet send loop when more frames are neededChris Robinson2017-12-311-38/+50
|
* Readd AL_SOFT_source_latency support to alffplayChris Robinson2017-12-301-12/+17
|
* Use standard duration types for stream clocksChris Robinson2017-12-301-105/+122
|
* Improve the alffplay queue for FFmpeg's send/receive APIChris Robinson2017-12-301-152/+139
| | | | | | | | 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.
* Add missing include for std::arrayChris Robinson2017-07-231-0/+1
|