summaryrefslogtreecommitdiff
path: root/sys/osxaudio
AgeCommit message (Collapse)AuthorFilesLines
2015-03-23osxaudio: Fix string format warning on 32-bitIlya Konstantinov1-1/+1
UInt32 (Darwin, not C99's uint32_t) is 'unsigned long' on 32-bit platforms.
2015-03-10Fix double semicolonsTim-Philipp Müller2-2/+2
2015-03-10osxaudio: stream format is an SPDIF-only fieldIlya Konstantinov1-2/+1
2015-03-10osxaudio: fix spacesIlya Konstantinov1-1/+1
2015-03-10osxaudio: add type check macroIlya Konstantinov1-0/+2
2015-03-10osxaudio: rename gst_core_audio_set_channels_layout()Ilya Konstantinov3-3/+3
to gst_core_audio_get_channel_layout().
2015-03-10osxaudio: remove unused finalizeIlya Konstantinov1-8/+0
2015-03-03osxaudiosrc: Allow caps renegotiationArun Raghavan1-7/+4
The ringbuffer does allow renegotiation, so we do not have to report fixed caps once it is acquired (based on a similar patch for the sink side by Ilya Konstantinov <ilya.konstantinov@gmail.com>).
2015-03-03osxaudiosink: Allow renegotiating capsIlya Konstantinov1-8/+6
Once osxaudiosink's device is open, it fixates on the initial caps and refuses to accept new caps. This is erroneous since the Audio Unit is can accept a new ASBD, and GstAudioRingBuffer supports reconfiguration as well. https://bugzilla.gnome.org/show_bug.cgi?id=743925
2015-02-24osxaudiosrc: iOS resampling causes stutteringIlya Konstantinov5-25/+40
Fixes stuttering audio when iOS AU is resampling. To make AU resample, one has to request a rate that differs from AVAudioSession's sampleRate. The resampling itself is not the culprit, but rather our API misuse. AudioUnitRender modifies the mDataByteSize members with the actual read bytes count. Therefore, they must be reinitialized before each AudioUnitRender. (The buffers themselves can be preallocated.) The "stutter" was caused by one AudioUnitRender making the buffer too small for other AudioUnitRender invocations, making them fail with -50 (paramErr). By way of luck, when AU didn't resample, all AudioUnitRender invocations read the same number of bytes. (This patch addresses some non-interleaved audio concerns, but at this moment the elements do not support non-interleaved audio and non-interleaved is untested.) https://bugzilla.gnome.org/show_bug.cgi?id=744922
2014-12-22osxaudio: Directly return the ringbuffer's caps if it is acquiredSebastian Dröge2-14/+8
2014-12-22osxaudio: Put all audio formats into the template capsSebastian Dröge2-14/+2
We report the proper caps later from the get_caps() vfunc implementation after probing the selected device.
2014-12-22osxaudio: Also set the big endian flag for floating point samplesSebastian Dröge1-3/+5
2014-12-22osxaudio: Fix deadlock and property change notification in device selection codeSebastian Dröge2-11/+19
After creating the ringbuffer we have to set the device on the ringbuffer as it defaults to kAudioDeviceUnknown. At this point it can't have changed to anything else yet and we don't have to notify about changes to the sink/src "device" property. It's also not a good idea because GstAudioBaseSrc has the object lock taken while the ringbuffer is created, which might cause a deadlock if something calls back into the element from "notify::device". Once the base class is done with the NULL_TO_READY state change, it has opened the device via the ringbuffer and this might have chosen a different device. Especially if we initially used kAudioDeviceUnknown. Also notify about this property change as initially intended by this code.
2014-12-15osxaudiosink: Prefer filter caps order while getting capsArun Raghavan1-1/+1
https://bugzilla.gnome.org/show_bug.cgi?id=740987
2014-12-15osxaudiosink: Add some error handling around channel layout parsingArun Raghavan1-4/+14
For now we just spit a warning and ignore the channel layout if we can't support it. https://bugzilla.gnome.org/show_bug.cgi?id=740987
2014-12-15osxaudio: Take lock around sink/source before accessing the ringbufferArun Raghavan2-0/+13
https://bugzilla.gnome.org/show_bug.cgi?id=740987
2014-12-15osxaudiosrc: Probe channel layout tooArun Raghavan6-63/+112
https://bugzilla.gnome.org/show_bug.cgi?id=740987
2014-12-15osxaudiosink: Only fix up channels/layout for PCM caps while probingArun Raghavan1-6/+7
It's unlikely that setting a channel layout will do much for AC3/DTS streams. If we find at some point that it does make sense, we can perform the structure copying unconditionally (i.e., the current code is wrong, since AC3/DTS will get two structures now - one with the channel layout, one without). https://bugzilla.gnome.org/show_bug.cgi?id=740987
2014-12-15osxaudiosrc: Implement caps probingArun Raghavan4-37/+114
https://bugzilla.gnome.org/show_bug.cgi?id=740987
2014-12-15osxaudio: Bind audio device to audio unit earlyArun Raghavan1-4/+16
We want to bind the device during open so that subsequent format queries on the audio unit are as specific as possible from that point onwards. https://bugzilla.gnome.org/show_bug.cgi?id=740987
2014-12-15osxaudiosink: Fix up caps querying a bitArun Raghavan1-16/+30
This should make caps queries correct in PAUSED and higher as well. https://bugzilla.gnome.org/show_bug.cgi?id=740987
2014-12-15osxaudio: Move osxaudiosrc-specific code out of the generic pathArun Raghavan2-30/+38
Avoids one layering violation (GstCoreAudio referring to GstOsxAudioSrc). https://bugzilla.gnome.org/show_bug.cgi?id=740987
2014-12-15osxaudio: Clean up a GstCoreAudio -> GstOsxAudioSrc/Sink referenceArun Raghavan8-53/+112
Now that device selection has no sink/source-specific bits, we can have generic device selection for this path. We do need to now track state changes so we can look up the final device_id once the device is open, though. https://bugzilla.gnome.org/show_bug.cgi?id=740987
2014-12-15osxaudiosink: Move device caps probing to get_caps()Arun Raghavan1-10/+16
This should be preferred to running the probe at device open time. https://bugzilla.gnome.org/show_bug.cgi?id=740987
2014-12-15osxaudio: Make some debug code compile conditionallyArun Raghavan1-1/+5
https://bugzilla.gnome.org/show_bug.cgi?id=740987
2014-12-15osxaudio: Move device selection to ringbuffer->open_device()Arun Raghavan4-19/+32
This is conceptually the right thing to do, and allows us to correctly catch errors in device selection as well, which we could not do while creating the ringbuffer. https://bugzilla.gnome.org/show_bug.cgi?id=740987
2014-12-15osxaudio: Consolidate input and output code paths a bitArun Raghavan6-74/+52
https://bugzilla.gnome.org/show_bug.cgi?id=740987
2014-09-17osxaudio: OSStatus is not a fourcc, so don't print it as one...Sebastian Dröge4-94/+57
2014-04-26docs: remove outdated and pointless 'Last reviewed' lines from docsTim-Philipp Müller1-2/+0
They are very confusing for people, and more often than not also just not very accurate. Seeing 'last reviewed: 2005' in your docs is not very confidence-inspiring. Let's just remove those comments.
2014-02-19osxaudio: remove unused variablesThijs Vermeir2-6/+0
2013-12-31osx: Make OSX version checks more consistentSebastian Dröge1-1/+1
And especially also consider update versions, e.g. 10.5 with updates will be 1051 or similar and thus bigger than MAC_OS_X_VERSION_10_5 but still won't have the API we want to use.
2013-11-07osxaudiosink: fix segfault when we can't get the channels layoutAndoni Morales Alastruey1-1/+2
2013-07-25osxaudiosink: intersect the probed caps with the filter passed to get_caps()Alessandro Decina1-0/+3
2013-04-25osxaudio: Use gst_audio_channel_positions_to_mask() to create maskTodd Agulnick1-9/+1
https://bugzilla.gnome.org/show_bug.cgi?id=698807
2013-04-25osxaudio: Remove unused codeTodd Agulnick1-3/+0
2013-04-18osxaudio: Include gstaudioringbuffer.h to fix compilation in 1.0Sebastian Dröge1-0/+1
2013-04-18osxaudiosink: channel-mask configuration fixesPhilippe Normand1-1/+4
Set channel-mask according to sink's layout in case of stereo layout. Also initialize and reset the mask when an unrecognized channel is detected. https://bugzilla.gnome.org/show_bug.cgi?id=698224
2013-04-17osxaudio: Fix merge conflictsSebastian Dröge1-4/+0
2013-04-17osxaudioringbuffer: First check the type, then castSebastian Dröge1-4/+2
2013-04-17osxaudio: use GST_IS_OSX_AUDIO_SINK in ring buffer.Takashi Nakajima2-1/+6
2013-04-17osxaudio: call set_channel_positions() in osxaudioringbuffer acquire()Takashi Nakajima3-56/+85
2013-04-17osxaudio: use GST_AUDIO_INFO_* accessorsTodd Agulnick1-13/+13
Changes include the following: * Update classname references * Replace GST_BOILERPLATE_FULL with G_DEFINE_TYPE * Use new GstAudioInfo struct and methods * Use new buffer memory allocation scheme Conflicts: sys/osxaudio/gstosxaudioringbuffer.c
2013-04-17osxaudio: adjust for changes to glib mutex api.Todd Agulnick2-12/+12
2013-04-17osxaudio: try to fix up according to Sebastian's commentsTakashi Nakajima2-29/+28
2013-04-17osxaudio: build fixesPhilippe Normand4-1/+4
Enable the osxaudio plugin build in configure.ac and fix some include directive order issues.
2013-04-17osxaudio: fix layout for osxaudiosrcted-n1-5/+9
2013-04-17osxaudio: port to v.1.0ted-n10-287/+281
2013-04-15gst: Add better support for static pluginsSebastian Dröge1-1/+1
2013-04-15osxaudio: Fixes error: "GST_LEVEL_DEFAULT" redefinedJosep Torra2-2/+1