Remove audioqueue plugin
authorJean-Baptiste Kempf <jb@videolan.org>
Mon, 27 Feb 2017 16:44:39 +0000 (17:44 +0100)
committerJean-Baptiste Kempf <jb@videolan.org>
Mon, 27 Feb 2017 16:45:02 +0000 (17:45 +0100)
NEWS
configure.ac
modules/MODULES_LIST
modules/audio_output/Makefile.am
modules/audio_output/audioqueue.c [deleted file]
po/POTFILES.in

diff --git a/NEWS b/NEWS
index 21746f9..744a9ca 100644 (file)
--- 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:
index 4750e47..a1ef955 100644 (file)
@@ -3537,16 +3537,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
index 62ff645..d767c8c 100644 (file)
@@ -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
index ad98f12..9006c25 100644 (file)
@@ -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 (file)
index 04814f5..0000000
+++ /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;
-}
index 456ae91..1c95822 100644 (file)
@@ -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