/***************************************************************************** * adummy.c : dummy audio output plugin ***************************************************************************** * Copyright (C) 2002 VLC authors and VideoLAN * $Id$ * * Authors: Christophe Massiot * * 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. *****************************************************************************/ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include static int Open( vlc_object_t * p_this ); vlc_module_begin () set_shortname( N_("Dummy") ) set_description( N_("Dummy audio output") ) set_capability( "audio output", 0 ) set_callbacks( Open, NULL ) add_shortcut( "dummy" ) vlc_module_end () #define A52_FRAME_NB 1536 static void Play(audio_output_t *aout, block_t *block) { block_Release( block ); (void) aout; } static void Flush(audio_output_t *aout, bool wait) { (void) aout; (void) wait; } static int Start(audio_output_t *aout, audio_sample_format_t *restrict fmt) { (void) aout; switch (fmt->i_format) { case VLC_CODEC_A52: case VLC_CODEC_EAC3: fmt->i_format = VLC_CODEC_SPDIFL; fmt->i_bytes_per_frame = 4; fmt->i_frame_length = 1; break; case VLC_CODEC_DTS: case VLC_CODEC_TRUEHD: case VLC_CODEC_MLP: fmt->i_format = VLC_CODEC_SPDIFL; fmt->i_rate = 768000; fmt->i_bytes_per_frame = 16; fmt->i_frame_length = 1; break; default: assert(AOUT_FMT_LINEAR(fmt)); assert(aout_FormatNbChannels(fmt) > 0); fmt->i_format = HAVE_FPU ? VLC_CODEC_FL32 : VLC_CODEC_S16N; fmt->channel_type = AUDIO_CHANNEL_TYPE_BITMAP; break; } return VLC_SUCCESS; } static int Open(vlc_object_t *obj) { audio_output_t *aout = (audio_output_t *)obj; aout->start = Start; aout->time_get = NULL; aout->play = Play; aout->pause = NULL; aout->flush = Flush; aout->stop = NULL; aout->volume_set = NULL; aout->mute_set = NULL; return VLC_SUCCESS; }