summaryrefslogtreecommitdiffstats
path: root/audio/out/ao_coreaudio_utils.h
Commit message (Collapse)AuthorAgeFilesLines
* ao_coreaudio: replace fourcc_repr()wm42016-01-111-3/+0
| | | | Replace with the more general mp_tag_str().
* ao_coreaudio: fix device latency, share the codewm42015-07-061-0/+1
| | | | | | | | | ao_coreaudio (using AudioUnit) accounted only for part of the latency - move the code in ao_coreaudio_exclusive to utils, and use that for the AudioUnit code. (There's still the question why CoreAudio and AudioUnit require you to jump through hoops this much, but apparently that's how it is.)
* ao_coreaudio_exclusive: move generic functions to utilswm42015-06-021-0/+10
|
* ao_coreaudio_utils: don't require talloc for fourcc_repr()wm42015-05-051-1/+3
| | | | | Instead, apply a trick to make the caller allocate enough space on the stack.
* ao_coreaudio_utils: add a format negotiation helper functionwm42015-05-051-0/+3
|
* ao_coreaudio_utils: add function for ASBD -> mp format lookupwm42015-04-291-0/+3
| | | | | | | | | | Useful with some of the following commits. ca_fill_asbd() should behave exactly as before. Instead of actually implementing the inverse function of ca_fill_asbd(), just loop over the (small) list of mpv functions and check if any mpv equivalent to a given ASBD exists.
* ao_coreaudio: move some helpers to utilswm42015-03-101-0/+3
| | | | Needed by ao_coreaudio_exclusive.c in the next commit.
* ao_coreaudio: use device UID instead of ID for selectionStefano Pigozzi2015-02-031-0/+3
| | | | | | | | | | Previously we let the user use the audio device ID, but this is not persistent and can change when plugging in new devices. That of course made it quite worthless for storing it as a user setting for GUIs, or for user scripts. In theory getting the kAudioDevicePropertyDeviceUID can fail but it doesn't on any of my devices, so I'm leaving the error reporting quite high and see if someone complains.
* coreaudio: use the new device selection APIStefano Pigozzi2014-10-121-2/+2
| | | | | The CoreAudio API is built around device IDs so we store the integer as string and read it back.
* ao_coreaudio: move channel mapping away from utilsStefano Pigozzi2014-07-021-3/+0
| | | | | Channel mapping functions are only used in the AUHAL based coreaudio, so move them there.
* ao_coreaudio: fill asbd with an helper functionStefano Pigozzi2014-07-021-0/+1
|
* ao_coreaudio: move device related functions to the new AOStefano Pigozzi2014-07-021-28/+0
|
* ao_coreaudio: move spdif code to a new AOStefano Pigozzi2014-07-021-0/+3
| | | | | | | | | | | | | | | | The mplayer1/2/mpv CoreAudio audio output historically contained both usage of AUHAL APIs (these go through the CoreAudio audio server) and the Device based APIs (used only for output of compressed formats in exclusive mode). The latter is a very unwieldy and low level API and pretty much forces us to write a lot of code for little workr. Also with the widespread of HDMI, the actual need for outputting compressed audio directly to the device is getting lower (it was very useful with S/PDIF for bandwidth constraints not allowing a number if channels transmitted in LPCM). Considering how invasive it is (uses hog/exclusive mode), the new AO (`ao_coreaudio_device`) is not going to be autoprobed but the user will have to select it.
* ao_coreaudio: use description-based channel layoutsStefano Pigozzi2014-05-101-3/+2
| | | | | | | | | | | | CoreAudio supports 3 kinds of layouts: bitmap based, tag based, and speaker description based (using either channel labels or positional data). Previously we tried to convert everything to bitmap based channel layouts, but it turns out description based ones are the most generic and there are built-in CoreAudio APIs to perform the conversion in this direction. Moreover description based layouts support waveext extensions (like SDL and SDR), and are easier to map to mp_chmaps.
* audio/out: make ao struct opaquewm42014-03-091-0/+1
| | | | | | We want to move the AO to its own thread. There's no technical reason for making the ao struct opaque to do this. But it helps us sleep at night, because we can control access to shared state better.
* Split mpvcore/ into common/, misc/, bstr/wm42013-12-171-1/+1
|
* core: move contents to mpvcore (2/2)Stefano Pigozzi2013-08-061-1/+1
| | | | Followup commit. Fixes all the files references.
* ao_coreaudio: move to new log APIStefano Pigozzi2013-08-011-13/+18
|
* ao_coreaudio: refactor chmap detectionStefano Pigozzi2013-07-221-3/+4
| | | | | | b2f9e0610 introduced this functionality with code that was quite 'monolithic'. Split the functionality over several functions and ose the new macros to get array properties.
* ao_coreaudio: move utils functions to snake_caseStefano Pigozzi2013-07-221-5/+5
|
* ao_coreaudio: split ao_coreaudio_common in two filesStefano Pigozzi2013-07-221-0/+77
* ao_coreaudio_utils: contains several utility function * ao_coreaudio_properties: contains functions to set and get audio object properties. Conflicts: audio/out/ao_coreaudio.c