Commit graph

94 commits

Author SHA1 Message Date
Sebastian Dröge
e7b10a107d osxaudio: Fix deadlock and property change notification in device selection code
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-22 10:29:01 +01:00
Arun Raghavan
db91486aa8 osxaudiosink: Prefer filter caps order while getting caps
https://bugzilla.gnome.org/show_bug.cgi?id=740987
2014-12-15 11:22:44 +05:30
Arun Raghavan
f573f028d2 osxaudiosink: Add some error handling around channel layout parsing
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-15 11:19:52 +05:30
Arun Raghavan
d18a6b0a2c osxaudio: Take lock around sink/source before accessing the ringbuffer
https://bugzilla.gnome.org/show_bug.cgi?id=740987
2014-12-15 11:19:52 +05:30
Arun Raghavan
4a58ebf487 osxaudiosrc: Probe channel layout too
https://bugzilla.gnome.org/show_bug.cgi?id=740987
2014-12-15 11:19:52 +05:30
Arun Raghavan
df610a7c18 osxaudiosink: Only fix up channels/layout for PCM caps while probing
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-15 11:19:52 +05:30
Arun Raghavan
bd1502862c osxaudiosrc: Implement caps probing
https://bugzilla.gnome.org/show_bug.cgi?id=740987
2014-12-15 11:19:52 +05:30
Arun Raghavan
48872dbc56 osxaudio: Bind audio device to audio unit early
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-15 11:19:52 +05:30
Arun Raghavan
2d0391c6e1 osxaudiosink: Fix up caps querying a bit
This should make caps queries correct in PAUSED and higher as well.

https://bugzilla.gnome.org/show_bug.cgi?id=740987
2014-12-15 11:19:51 +05:30
Arun Raghavan
f967f0742f osxaudio: Move osxaudiosrc-specific code out of the generic path
Avoids one layering violation (GstCoreAudio referring to
GstOsxAudioSrc).

https://bugzilla.gnome.org/show_bug.cgi?id=740987
2014-12-15 11:19:51 +05:30
Arun Raghavan
ffcb1577fa osxaudio: Clean up a GstCoreAudio -> GstOsxAudioSrc/Sink reference
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-15 11:19:51 +05:30
Arun Raghavan
5c2f041286 osxaudiosink: Move device caps probing to get_caps()
This should be preferred to running the probe at device open time.

https://bugzilla.gnome.org/show_bug.cgi?id=740987
2014-12-15 11:19:51 +05:30
Arun Raghavan
945aaa0a35 osxaudio: Make some debug code compile conditionally
https://bugzilla.gnome.org/show_bug.cgi?id=740987
2014-12-15 11:19:51 +05:30
Arun Raghavan
b06ae28061 osxaudio: Move device selection to ringbuffer->open_device()
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-15 11:19:51 +05:30
Arun Raghavan
199461bb2e osxaudio: Consolidate input and output code paths a bit
https://bugzilla.gnome.org/show_bug.cgi?id=740987
2014-12-15 11:19:51 +05:30
Sebastian Dröge
d8a4435fd8 osxaudio: OSStatus is not a fourcc, so don't print it as one... 2014-09-17 13:55:18 +03:00
Tim-Philipp Müller
c9597298f9 docs: remove outdated and pointless 'Last reviewed' lines from docs
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-04-26 23:35:17 +01:00
Thijs Vermeir
0de0a1f1db osxaudio: remove unused variables 2014-02-19 22:21:54 +01:00
Sebastian Dröge
5b1c0a4cfd osx: Make OSX version checks more consistent
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-12-31 10:11:24 +01:00
Andoni Morales Alastruey
619f4f5c5a osxaudiosink: fix segfault when we can't get the channels layout 2013-11-07 00:53:48 +01:00
Alessandro Decina
0df7af07ce osxaudiosink: intersect the probed caps with the filter passed to get_caps() 2013-07-25 08:24:45 +02:00
Todd Agulnick
a30634a248 osxaudio: Use gst_audio_channel_positions_to_mask() to create mask
https://bugzilla.gnome.org/show_bug.cgi?id=698807
2013-04-25 09:57:26 +02:00
Todd Agulnick
e7710c2655 osxaudio: Remove unused code 2013-04-25 09:56:57 +02:00
Sebastian Dröge
3230182a61 osxaudio: Include gstaudioringbuffer.h to fix compilation in 1.0 2013-04-18 09:37:30 +02:00
Philippe Normand
d352201a34 osxaudiosink: channel-mask configuration fixes
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-18 09:16:19 +02:00
Sebastian Dröge
27248393e4 osxaudio: Fix merge conflicts 2013-04-17 20:24:48 +02:00
Sebastian Dröge
2b1f967101 osxaudioringbuffer: First check the type, then cast 2013-04-17 09:52:14 +02:00
Takashi Nakajima
ce5246ed71 osxaudio: use GST_IS_OSX_AUDIO_SINK in ring buffer. 2013-04-17 09:52:14 +02:00
Takashi Nakajima
efda79b084 osxaudio: call set_channel_positions() in osxaudioringbuffer acquire() 2013-04-17 09:52:14 +02:00
Todd Agulnick
c2c85a094a osxaudio: use GST_AUDIO_INFO_* accessors
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-17 09:52:13 +02:00
Todd Agulnick
ed94ef79f9 osxaudio: adjust for changes to glib mutex api. 2013-04-17 09:52:13 +02:00
Takashi Nakajima
09e980d2c9 osxaudio: try to fix up according to Sebastian's comments 2013-04-17 09:52:13 +02:00
Philippe Normand
ab64837bf2 osxaudio: build fixes
Enable the osxaudio plugin build in configure.ac and fix some
include directive order issues.
2013-04-17 09:52:13 +02:00
ted-n
d5d53ec611 osxaudio: fix layout for osxaudiosrc 2013-04-17 09:52:13 +02:00
ted-n
b217b6fdfb osxaudio: port to v.1.0 2013-04-17 09:52:13 +02:00
Sebastian Dröge
b0b0557c48 gst: Add better support for static plugins 2013-04-15 15:54:11 +02:00
Josep Torra
0d6602eaaf osxaudio: Fixes error: "GST_LEVEL_DEFAULT" redefined 2013-04-15 08:41:34 +02:00
Josep Torra
220a9ff102 osxaudio: fixes implicit declaration of function 'getpid' 2013-04-15 08:41:28 +02:00
Andoni Morales Alastruey
c853d8dac0 osxaudio: add support for iOS using the RemoteIO AudioUnit 2013-03-08 12:13:56 +01:00
Andoni Morales Alastruey
9621074006 osxaudio: add a façade for the CoreAudio API 2013-03-08 12:13:55 +01:00
Tim-Philipp Müller
230cf41cc9 Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:07:18 +00:00
Arun Raghavan
c9821d31f8 osxaudiosink: Specify endianness in IEC 61937 payloading
Corresponds to an API change in gst-plugins-base. This needs to be fixed
to query the expected byte order using appropriate API.

https://bugzilla.gnome.org/show_bug.cgi?id=678021
2012-09-19 09:18:19 +05:30
Mark Nauwelaerts
3a7b7efe99 replace _get_caps_reffed with _get_caps 2012-09-14 17:55:16 +02:00
Tim-Philipp Müller
4bb52bbadf docs: gst-launch -> gst-launch-1.0 and ffmpegcolorspace -> videoconvert 2012-08-27 21:20:30 +01:00
Josep Torra
d2c6cc3a39 osxaudiosink: respect the prefered channel layout
In OSX is allowed to configure the default audio output device,
prefered channel layout and speaker positions through the tool
"Audio MIDI Setup".
2012-06-19 12:55:37 +01:00
Josep Torra
59191412eb osxaudiosink: Add support for SPDIF output
A big refactoring to allow passthrough AC3/DTS over SPDIF.
Several random cleanups and minor fixes.
2012-06-14 08:46:34 +02:00
Josep Torra
cfd9071f79 osxaudiosink: Handle endianness correctly 2012-06-04 11:54:46 +02:00
Josep Torra
85102c49d5 osxaudiosink: Add support for int audio 2012-06-01 16:38:22 +02:00
Tim-Philipp Müller
e09ae5736d Use new gst_element_class_set_static_metadata() 2012-04-10 00:51:41 +01:00
Sebastian Dröge
aa2cd462da gst: Update for GST_PLUGIN_DEFINE() API changes 2012-04-05 17:36:38 +02:00