aboutsummaryrefslogtreecommitdiffstats
path: root/examples
Commit message (Collapse)AuthorAgeFilesLines
* Dump the ffmpeg file info on the main threadChris Robinson2020-04-291-64/+64
|
* Convert the examples from SDL_sound to libsndfileChris Robinson2020-03-247-394/+271
|
* Use libsndfile for the alplay exampleChris Robinson2020-03-241-52/+42
|
* Update to C++14Chris Robinson2020-03-221-1/+1
|
* Remove AL_SOFT_map_buffer from alffplay and add AL_SOFT_callback_bufferChris Robinson2020-02-231-153/+365
| | | | | | | The former doesn't really help too much since buffers still need to be (re)filled and (de)queued individually. A callback buffer, on the other hand, allows for greater efficiency since it just needs to write into a ring buffer that the mixer will directly read from.
* Add a streaming example using a callback bufferChris Robinson2020-02-201-0/+436
|
* Get the audio sync once per update in alffplayChris Robinson2020-01-131-29/+27
|
* Finalize AL_SOFT_bformat_exChris Robinson2020-01-051-12/+12
|
* Make the new direct channel remix extension publicChris Robinson2019-12-281-7/+12
|
* Test the B-Format buffer extension in alffplayChris Robinson2019-12-021-9/+43
|
* Wrap the cycle amount when passing to sin()Chris Robinson2019-10-121-1/+4
|
* Enable and fix some more warningsChris Robinson2019-09-185-80/+80
|
* Fix a few more GCC warningsChris Robinson2019-09-141-2/+2
|
* Fix some more implicit conversions noted by GCCChris Robinson2019-09-143-5/+6
|
* Avoid implicit conversions with the examples and utilsChris Robinson2019-09-1211-91/+97
|
* Cleanup the examples' includesChris Robinson2019-07-2911-32/+54
|
* Increase the video picture queue size to 24Chris Robinson2019-07-261-1/+1
|
* Only redraw the image when necessaryChris Robinson2019-07-231-5/+16
|
* Only send packets as neededChris Robinson2019-07-231-39/+49
|
* Use a local variable to track the decoded ptsChris Robinson2019-07-201-6/+5
|
* Set the initial clock time closer to starting playbackChris Robinson2019-07-201-15/+13
|
* Restructure codec send/receive callsChris Robinson2019-07-191-75/+64
| | | | | | | | | In particular, after an initial fill of the codec's internal buffer, each receive_frame call is followed by one or more send_packet calls. For asynchronous codecs, this has the effect of letting the codec work while the handler thread is waiting for an AVFrame structure to become available or waiting for more decoded data to be needed. For synchronous codecs, this makes the send_packet calls use up time that would be spent waiting.
* Receive video frames in a loopChris Robinson2019-07-161-40/+50
|
* Use atomics for the picture queueChris Robinson2019-07-141-29/+35
|
* Don't use the same mutex for the video clockChris Robinson2019-07-141-16/+14
|
* Receive frames directly into the picture's AVFrameChris Robinson2019-07-141-34/+19
|
* Don't use one texture per picture in alffplayChris Robinson2019-07-141-79/+60
|
* Handle alffplay video using continuous renderingChris Robinson2019-07-121-291/+236
|
* Try to improve alffplay timing againChris Robinson2019-07-111-25/+38
|
* Some clean up to use uniform initializationChris Robinson2019-07-101-24/+24
|
* Improve alffplay video clock timingChris Robinson2019-07-091-7/+12
|
* Rework packet handling in alffplayChris Robinson2019-07-081-228/+170
| | | | | | | | | | 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.
* Somewhat simplify alffplay playback timingChris Robinson2019-07-061-49/+29
|
* Make sure a variable is set before useChris Robinson2019-06-301-0/+1
|
* Properly set DisableVideo to trueChris Robinson2019-06-301-1/+1
|
* Add an option to disable video in alffplayChris Robinson2019-06-301-1/+4
|
* 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
|
* Return a signed integer from altime_getChris Robinson2018-11-273-10/+10
|
* Add the appropriate include for the _POSIX_TIMERS macroChris Robinson2018-11-271-0/+1
|
* Fix use of clock_gettimeChris Robinson2018-11-271-2/+2
|
* Avoid relying on struct timespecChris Robinson2018-11-263-48/+37
|
* Avoid including threads.h in the example helpersChris Robinson2018-11-263-5/+7
|
* 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.