aboutsummaryrefslogtreecommitdiffstats
path: root/examples/alffplay.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Remove the unused flags parameter from alBufferCallbackSOFTChris Robinson2022-04-011-4/+2
|
* Remove a dead storeChris Robinson2022-03-301-1/+0
|
* Constify the AVCodec* returned by avcodec_find_decoderChris Robinson2022-02-191-1/+1
|
* Make sure alffplay properly stops when quitingChris Robinson2021-12-271-10/+13
| | | | | | The parser thread could be waiting on the threads to join after queueing all packets, so it wouldn't see mQuit to flush the queue. So make a stop method that forces a flush when setting mQuit.
* Heavily update alffplay packet handlingChris Robinson2021-12-261-157/+209
| | | | | Avoid deprecated use of raw AVPacket objects, and use a separate thread to send packets than receives the decoded frames.
* Remove unnecessary ifdefs from alffplayChris Robinson2021-12-241-32/+9
| | | | We already assume OpenAL Soft's alext.h, which these are part of now.
* Use the audio clock as the default in alffplayChris Robinson2021-12-241-49/+59
|
* Add an option to use Super Stereo in alffplayChris Robinson2021-12-151-0/+23
|
* Update some in-progress extension typesChris Robinson2021-11-101-2/+2
|
* Fix short initial packet preparation in alffplayChris Robinson2021-05-201-3/+11
|
* Add an option to decode stereo as UHJ in alffplayChris Robinson2021-04-021-76/+137
|
* Check for the right extension string in alffplayChris Robinson2020-10-261-1/+1
|
* Finalize AL_SOFT_eventsChris Robinson2020-10-261-16/+0
|
* Update event enum valuesChris Robinson2020-10-071-5/+5
| | | | To keep them less spread out from other OpenAL Soft extensions.
* Remove deprecated, performance, and error event typesChris Robinson2020-09-201-9/+2
| | | | | These would be better served with a proper debug API, rather than a general audio event API.
* Cleanup some warnings with ffmpeg/alffplayChris Robinson2020-08-121-27/+36
|
* Remove an unused variableChris Robinson2020-08-111-1/+0
|
* Dump the ffmpeg file info on the main threadChris Robinson2020-04-291-64/+64
|
* 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.
* 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
|
* Avoid implicit conversions with the examples and utilsChris Robinson2019-09-121-42/+44
|
* Cleanup the examples' includesChris Robinson2019-07-291-8/+23
|
* 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
|
* 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
|