vlc | branch: master | Jean-Baptiste Kempf <[email protected]> | 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 _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
