/*****************************************************************************
* wav.c: wav muxer module for vlc
*****************************************************************************
- * Copyright (C) 2004 VideoLAN
+ * Copyright (C) 2004, 2006 the VideoLAN team
* $Id$
*
* Authors: Gildas Bazin <gbazin@videolan.org>
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
/*****************************************************************************
* Preamble
*****************************************************************************/
-#include <stdlib.h>
-#include <vlc/vlc.h>
-#include <vlc/aout.h>
-#include <vlc/sout.h>
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
-#include "codecs.h"
+#include <vlc/vlc.h>
+#include <vlc_aout.h>
+#include <vlc_sout.h>
+#include <vlc_block.h>
+#include <vlc_codecs.h>
/*****************************************************************************
* Module descriptor
struct sout_mux_sys_t
{
- vlc_bool_t b_used;
- vlc_bool_t b_header;
- vlc_bool_t b_ext;
+ bool b_used;
+ bool b_header;
+ bool b_ext;
uint32_t i_data;
uint32_t waveheader2[2];
uint32_t i_channel_mask;
- vlc_bool_t b_chan_reorder; /* do we need channel reordering */
+ bool b_chan_reorder; /* do we need channel reordering */
int pi_chan_table[AOUT_CHAN_MAX];
};
p_mux->pf_mux = Mux;
p_mux->p_sys = p_sys = malloc( sizeof( sout_mux_sys_t ) );
- p_sys->b_used = VLC_FALSE;
- p_sys->b_header = VLC_TRUE;
+ p_sys->b_used = false;
+ p_sys->b_header = true;
p_sys->i_data = 0;
p_sys->b_chan_reorder = 0;
static int Control( sout_mux_t *p_mux, int i_query, va_list args )
{
- vlc_bool_t *pb_bool;
+ VLC_UNUSED(p_mux);
+ bool *pb_bool;
char **ppsz;
- switch( i_query )
- {
- case MUX_CAN_ADD_STREAM_WHILE_MUXING:
- pb_bool = (vlc_bool_t*)va_arg( args, vlc_bool_t * );
- *pb_bool = VLC_FALSE;
- return VLC_SUCCESS;
+ switch( i_query )
+ {
+ case MUX_CAN_ADD_STREAM_WHILE_MUXING:
+ pb_bool = (bool*)va_arg( args, bool * );
+ *pb_bool = false;
+ return VLC_SUCCESS;
- case MUX_GET_ADD_STREAM_WAIT:
- pb_bool = (vlc_bool_t*)va_arg( args, vlc_bool_t * );
- *pb_bool = VLC_TRUE;
- return VLC_SUCCESS;
+ case MUX_GET_ADD_STREAM_WAIT:
+ pb_bool = (bool*)va_arg( args, bool * );
+ *pb_bool = true;
+ return VLC_SUCCESS;
- case MUX_GET_MIME:
- ppsz = (char**)va_arg( args, char ** );
- *ppsz = strdup( "audio/wav" );
- return VLC_SUCCESS;
+ case MUX_GET_MIME:
+ ppsz = (char**)va_arg( args, char ** );
+ *ppsz = strdup( "audio/wav" );
+ return VLC_SUCCESS;
default:
return VLC_EGENERIC;
- }
+ }
}
static int AddStream( sout_mux_t *p_mux, sout_input_t *p_input )
{
GUID subformat_guid = {0, 0, 0x10,{0x80, 0, 0, 0xaa, 0, 0x38, 0x9b, 0x71}};
sout_mux_sys_t *p_sys = p_mux->p_sys;
WAVEFORMATEX *p_waveformat = &p_sys->waveformat.Format;
- int i_bytes_per_sample, i_format, i;
- vlc_bool_t b_ext;
+ int i_bytes_per_sample, i_format;
+ bool b_ext;
if( p_input->p_fmt->i_cat != AUDIO_ES )
{
return VLC_EGENERIC;
}
- msg_Dbg( p_mux, "adding input %i channels, %iHz",
+ msg_Dbg( p_mux, "adding %i input channels, %iHz",
p_input->p_fmt->audio.i_channels,
p_input->p_fmt->audio.i_rate );
p_sys->i_channel_mask = 0;
if( p_input->p_fmt->audio.i_physical_channels )
{
+ unsigned int i;
+
for( i = 0; i < sizeof(pi_channels_in)/sizeof(uint32_t); i++ )
{
if( p_input->p_fmt->audio.i_physical_channels & pi_channels_src[i])
p_sys->waveformat.SubFormat.Data1 = i_format;
- p_sys->b_used = VLC_TRUE;
+ p_sys->b_used = true;
return VLC_SUCCESS;
}
static int DelStream( sout_mux_t *p_mux, sout_input_t *p_input )
{
+ VLC_UNUSED(p_input);
msg_Dbg( p_mux, "removing input" );
msg_Dbg( p_mux, "writing header data" );
- if( !sout_AccessOutSeek( p_mux->p_access, 0 ) )
+ if( sout_AccessOutSeek( p_mux->p_access, 0 ) == VLC_SUCCESS )
{
sout_AccessOutWrite( p_mux->p_access, GetHeader( p_mux ) );
}
msg_Dbg( p_mux, "writing header data" );
sout_AccessOutWrite( p_mux->p_access, GetHeader( p_mux ) );
}
- p_sys->b_header = VLC_FALSE;
+ p_sys->b_header = false;
p_input = p_mux->pp_inputs[0];
- while( p_input->p_fifo->i_depth > 0 )
+ while( block_FifoCount( p_input->p_fifo ) > 0 )
{
block_t *p_block = block_FifoGet( p_input->p_fifo );
p_sys->i_data += p_block->i_buffer;