[vlc-commits] Remove audioqueue plugin
Jean-Baptiste Kempf
git at videolan.org
Mon Feb 27 17:45:07 CET 2017
vlc | branch: master | Jean-Baptiste Kempf <jb at videolan.org> | Mon Feb 27 17:44:39 2017 +0100| [4ceff8a01510de8ab10689b472de4079d7834dfc] | committer: Jean-Baptiste Kempf
Remove audioqueue plugin
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=4ceff8a01510de8ab10689b472de4079d7834dfc
---
NEWS | 1 +
configure.ac | 10 --
modules/MODULES_LIST | 1 -
modules/audio_output/Makefile.am | 5 -
modules/audio_output/audioqueue.c | 285 --------------------------------------
po/POTFILES.in | 1 -
6 files changed, 1 insertion(+), 302 deletions(-)
diff --git a/NEWS b/NEWS
index 21746f9..744a9ca 100644
--- a/NEWS
+++ b/NEWS
@@ -282,6 +282,7 @@ Removed modules
* EyeTV access module
* Rar access and stream filter: use libarchive
* VDA decoder: use VT
+ * Audioqueue: use audiounit
Changes between 2.2.0 and 2.2.1:
diff --git a/configure.ac b/configure.ac
index 4750e47..a1ef955 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3538,16 +3538,6 @@ AS_IF([test "$enable_wasapi" != "no"], [
AM_CONDITIONAL([HAVE_WASAPI], [test "${have_wasapi}" = "yes"])
dnl
-dnl AudioQueue plugin
-dnl
-AC_ARG_ENABLE(audioqueue,
- [ --enable-audioqueue AudioQueue audio module (default disabled)])
-if test "${enable_audioqueue}" = "yes"
-then
- VLC_ADD_PLUGIN([audioqueue])
-fi
-
-dnl
dnl JACK modules
dnl
AC_ARG_ENABLE(jack,
diff --git a/modules/MODULES_LIST b/modules/MODULES_LIST
index 62ff645..d767c8c 100644
--- a/modules/MODULES_LIST
+++ b/modules/MODULES_LIST
@@ -49,7 +49,6 @@ $Id$
* audio_format: helper module for audio transcoding
* audiobargraph_a: audiobargraph audio plugin
* audiobargraph_v: audiobargraph video plugin
- * audioqueue: Audio Output based on AudioQueue API for iOS
* audioscrobbler: AudioScrobbler/Last.fm submission plugin
* audiounit_ios: AudioUnit output plugin for iOS
* auhal: Audio output for Mac OS X based on the AUHAL API
diff --git a/modules/audio_output/Makefile.am b/modules/audio_output/Makefile.am
index ad98f12..9006c25 100644
--- a/modules/audio_output/Makefile.am
+++ b/modules/audio_output/Makefile.am
@@ -121,11 +121,6 @@ if HAVE_TVOS
aout_LTLIBRARIES += libaudiounit_ios_plugin.la
endif
-libaudioqueue_plugin_la_SOURCES = audio_output/audioqueue.c
-libaudioqueue_plugin_la_LDFLAGS = $(AM_LDFLAGS) -Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,CoreServices -rpath '$(aoutdir)'
-EXTRA_LTLIBRARIES += libaudioqueue_plugin.la
-aout_LTLIBRARIES += $(LTLIBaudioqueue)
-
libtizen_audio_plugin_la_SOURCES = audio_output/tizen_audio.c
libtizen_audio_plugin_la_CFLAGS = $(AM_CFLAGS)
EXTRA_LTLIBRARIES += libtizen_audio_plugin.la
diff --git a/modules/audio_output/audioqueue.c b/modules/audio_output/audioqueue.c
deleted file mode 100644
index 04814f5..0000000
--- a/modules/audio_output/audioqueue.c
+++ /dev/null
@@ -1,285 +0,0 @@
-/*****************************************************************************
- * Copyright (C) 2000-2013 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Felix Paul Kühne <fkuehne at videolan dot org>
- * Rémi Denis-Courmont
- * Rafaël Carré <funman at videolan dot org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#pragma mark includes
-
-#ifdef HAVE_CONFIG_H
-# import "config.h"
-#endif
-#import <vlc_common.h>
-#import <vlc_plugin.h>
-#import <vlc_aout.h>
-#import <AudioToolbox/AudioQueue.h>
-#import <TargetConditionals.h>
-#if TARGET_OS_IPHONE
-#import <AudioToolbox/AudioSession.h>
-#else
-#define AudioSessionSetActive(x)
-#endif
-
-#pragma mark -
-#pragma mark private declarations
-
-struct aout_sys_t
-{
- AudioQueueRef audioQueueRef;
- AudioQueueTimelineRef timelineRef;
-
- bool b_started;
-
- mtime_t i_played_length;
- int i_rate;
- float f_volume;
-};
-static int Open (vlc_object_t *);
-static void Close (vlc_object_t *);
-static void Play (audio_output_t *, block_t *);
-static void Pause (audio_output_t *p_aout, bool pause, mtime_t date);
-static void Flush (audio_output_t *p_aout, bool wait);
-static int TimeGet (audio_output_t *aout, mtime_t *);
-static void UnusedAudioQueueCallback (void *, AudioQueueRef, AudioQueueBufferRef);
-static int Start(audio_output_t *, audio_sample_format_t *);
-static void Stop(audio_output_t *);
-static int VolumeSet(audio_output_t *, float );
-vlc_module_begin ()
-set_shortname("AudioQueue")
-set_description("AudioQueue (iOS / Mac OS) audio output")
-set_capability("audio output", 40)
-set_category(CAT_AUDIO)
-set_subcategory(SUBCAT_AUDIO_AOUT)
-add_shortcut("audioqueue")
-set_callbacks(Open, Close)
-vlc_module_end ()
-
-#pragma mark -
-#pragma mark initialization
-
-static int Open(vlc_object_t *obj)
-{
- audio_output_t *aout = (audio_output_t *)obj;
- aout_sys_t *sys = malloc(sizeof (*sys));
-
- if (unlikely(sys == NULL))
- return VLC_ENOMEM;
-
- aout->sys = sys;
- aout->start = Start;
- aout->stop = Stop;
- aout->volume_set = VolumeSet;
-
- /* reset volume */
- aout_VolumeReport(aout, 1.0);
-
- return VLC_SUCCESS;
-}
-
-static void Close(vlc_object_t *obj)
-{
- audio_output_t *aout = (audio_output_t *)obj;
- msg_Dbg( aout, "audioqueue: Close");
- aout_sys_t *sys = aout->sys;
-
- free(sys);
-}
-
-static int VolumeSet(audio_output_t * p_aout, float volume)
-{
- struct aout_sys_t *p_sys = p_aout->sys;
- OSStatus ostatus;
-
- aout_VolumeReport(p_aout, volume);
- p_sys->f_volume = volume;
-
- /* Set volume for output unit */
- ostatus = AudioQueueSetParameter(p_sys->audioQueueRef, kAudioQueueParam_Volume, volume * volume * volume);
-
- return ostatus;
-}
-
-static int Start(audio_output_t *p_aout, audio_sample_format_t *restrict fmt)
-{
- aout_sys_t *p_sys = p_aout->sys;
- OSStatus error = 0;
-
- if (aout_FormatNbChannels(fmt) == 0)
- return VLC_EGENERIC;
-
- // prepare the format description for our output
- AudioStreamBasicDescription streamDescription;
- streamDescription.mSampleRate = fmt->i_rate;
- streamDescription.mFormatID = kAudioFormatLinearPCM;
- streamDescription.mFormatFlags = kAudioFormatFlagsNativeFloatPacked; // FL32
- streamDescription.mFramesPerPacket = 1;
- streamDescription.mChannelsPerFrame = 2;
- streamDescription.mBitsPerChannel = 32;
- streamDescription.mBytesPerFrame = streamDescription.mBitsPerChannel * streamDescription.mChannelsPerFrame / 8;
- streamDescription.mBytesPerPacket = streamDescription.mBytesPerFrame * streamDescription.mFramesPerPacket;
-
- // init new output instance
- error = AudioQueueNewOutput(&streamDescription, // Format
- UnusedAudioQueueCallback, // Unused Callback, which needs to be provided to have a proper instance
- NULL, // User data, passed to the callback
- NULL, // RunLoop
- kCFRunLoopCommonModes, // RunLoop mode
- 0, // Flags ; must be zero (per documentation)...
- &(p_sys->audioQueueRef)); // Output
- msg_Dbg(p_aout, "New AudioQueue instance created (status = %li)", error);
- if (error != noErr)
- return VLC_EGENERIC;
- fmt->i_format = VLC_CODEC_FL32;
- fmt->i_original_channels = fmt->i_physical_channels = AOUT_CHANS_STEREO;
- aout_FormatPrepare(fmt);
- p_aout->sys->i_rate = fmt->i_rate;
-
- // start queue
- error = AudioQueueStart(p_sys->audioQueueRef, NULL);
- msg_Dbg(p_aout, "Starting AudioQueue (status = %li)", error);
-
- // start timeline for synchro
- error = AudioQueueCreateTimeline(p_sys->audioQueueRef, &p_sys->timelineRef);
- msg_Dbg(p_aout, "AudioQueue Timeline started (status = %li)", error);
- if (error != noErr)
- return VLC_EGENERIC;
-
-#if TARGET_OS_IPHONE
- // start audio session so playback continues if mute switch is on
- AudioSessionInitialize (NULL,
- kCFRunLoopCommonModes,
- NULL,
- NULL);
-
- // Set audio session to mediaplayback
- UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
- AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory),&sessionCategory);
- AudioSessionSetActive(true);
-#endif
-
- p_aout->sys->b_started = true;
-
- p_aout->time_get = TimeGet;
- p_aout->play = Play;
- p_aout->pause = Pause;
- p_aout->flush = Flush;
- return VLC_SUCCESS;
-}
-
-static void Stop(audio_output_t *p_aout)
-{
- AudioSessionSetActive(false);
-
- p_aout->sys->i_played_length = 0;
- AudioQueueDisposeTimeline(p_aout->sys->audioQueueRef, p_aout->sys->timelineRef);
- AudioQueueStop(p_aout->sys->audioQueueRef, true);
- AudioQueueDispose(p_aout->sys->audioQueueRef, true);
- msg_Dbg(p_aout, "audioqueue stopped and disposed");
-}
-
-#pragma mark -
-#pragma mark actual playback
-
-static void Play(audio_output_t *p_aout, block_t *p_block)
-{
- AudioQueueBufferRef inBuffer = NULL;
- OSStatus status;
-
- status = AudioQueueAllocateBuffer(p_aout->sys->audioQueueRef, p_block->i_buffer, &inBuffer);
- if (status == noErr) {
- memcpy(inBuffer->mAudioData, p_block->p_buffer, p_block->i_buffer);
- inBuffer->mAudioDataByteSize = p_block->i_buffer;
-
- status = AudioQueueEnqueueBuffer(p_aout->sys->audioQueueRef, inBuffer, 0, NULL);
- if (status == noErr)
- p_aout->sys->i_played_length += p_block->i_length;
- else
- msg_Err(p_aout, "enqueuing buffer failed (%li)", status);
- } else
- msg_Err(p_aout, "buffer alloction failed (%li)", status);
-
- block_Release(p_block);
-}
-
-void UnusedAudioQueueCallback(void * inUserData, AudioQueueRef inAQ, AudioQueueBufferRef inBuffer) {
- /* this function does nothing, but needs to be here to make the AudioQueue API happy.
- * additionally, we clean-up after empty buffers */
- VLC_UNUSED(inUserData);
- AudioQueueFreeBuffer(inAQ, inBuffer);
-}
-
-static void Pause(audio_output_t *p_aout, bool pause, mtime_t date)
-{
- VLC_UNUSED(date);
-
- if (pause) {
- AudioQueuePause(p_aout->sys->audioQueueRef);
- AudioSessionSetActive(false);
- } else {
- AudioQueueStart(p_aout->sys->audioQueueRef, NULL);
- AudioSessionSetActive(true);
- }
-}
-
-static void Flush(audio_output_t *p_aout, bool wait)
-{
- if (!p_aout->sys->audioQueueRef)
- return;
-
- AudioQueueDisposeTimeline(p_aout->sys->audioQueueRef, p_aout->sys->timelineRef);
-
- if (wait)
- AudioQueueStop(p_aout->sys->audioQueueRef, false);
- else
- AudioQueueStop(p_aout->sys->audioQueueRef, true);
-
- p_aout->sys->b_started = false;
- p_aout->sys->i_played_length = 0;
- AudioQueueStart(p_aout->sys->audioQueueRef, NULL);
- AudioQueueCreateTimeline(p_aout->sys->audioQueueRef, &p_aout->sys->timelineRef);
- p_aout->sys->b_started = true;
-}
-
-static int TimeGet(audio_output_t *p_aout, mtime_t *restrict delay)
-{
- AudioTimeStamp outTimeStamp;
- Boolean b_discontinuity;
- OSStatus status = AudioQueueGetCurrentTime(p_aout->sys->audioQueueRef, p_aout->sys->timelineRef, &outTimeStamp, &b_discontinuity);
-
- if (status != noErr)
- return -1;
-
- bool b_started = p_aout->sys->b_started;
-
- if (!b_started)
- return -1;
-
- if (b_discontinuity) {
- msg_Dbg(p_aout, "detected output discontinuity");
- return -1;
- }
-
- mtime_t i_pos = (mtime_t) outTimeStamp.mSampleTime * CLOCK_FREQ / p_aout->sys->i_rate;
- if (i_pos > 0) {
- *delay = p_aout->sys->i_played_length - i_pos;
- return 0;
- } else
- return -1;
-}
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 456ae91..1c95822 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -305,7 +305,6 @@ modules/audio_mixer/integer.c
modules/audio_output/adummy.c
modules/audio_output/alsa.c
modules/audio_output/amem.c
-modules/audio_output/audioqueue.c
modules/audio_output/audiotrack.c
modules/audio_output/audiounit_ios.m
modules/audio_output/auhal.c
More information about the vlc-commits
mailing list