/*****************************************************************************
* rawaud.c : raw audio input module for vlc
*****************************************************************************
- * Copyright (C) 2009 the VideoLAN team
+ * Copyright (C) 2009 VLC authors and VideoLAN
* $Id$
*
* Authors: Jarmo Torvinen <jarmo.torvinen@jutel.fi>
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * 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 General Public License for more details.
+ * 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 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.
+ * 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.
*****************************************************************************/
/*****************************************************************************
#define FOURCC_LONGTEXT N_( \
"FOURCC code of the raw input format. This is a four character string." )
-#define LANG_TEXT N_("Forces the audio language.")
+#define LANG_TEXT N_("Forces the audio language")
#define LANG_LONGTEXT N_("Forces the audio language for the output mux. Three letter ISO639 code. Default is 'eng'. ")
#ifdef WORDS_BIGENDIAN
set_subcategory( SUBCAT_INPUT_DEMUX );
set_callbacks( Open, Close );
add_shortcut( "rawaud" );
- add_integer( "rawaud-channels", 2, 0, CHANNELS_TEXT, CHANNELS_LONGTEXT, false );
- add_integer( "rawaud-samplerate", 48000, 0, SAMPLERATE_TEXT, SAMPLERATE_LONGTEXT, false );
- add_string( "rawaud-fourcc", FOURCC_DEFAULT, NULL,
+ add_integer( "rawaud-channels", 2, CHANNELS_TEXT, CHANNELS_LONGTEXT, false );
+ add_integer( "rawaud-samplerate", 48000, SAMPLERATE_TEXT, SAMPLERATE_LONGTEXT, false );
+ add_string( "rawaud-fourcc", FOURCC_DEFAULT,
FOURCC_TEXT, FOURCC_LONGTEXT, false );
- add_string( "rawaud-lang", "eng", NULL, LANG_TEXT, LANG_LONGTEXT, false);
+ add_string( "rawaud-lang", "eng", LANG_TEXT, LANG_LONGTEXT, false);
vlc_module_end();
/*****************************************************************************
demux_t *p_demux = (demux_t*)p_this;
demux_sys_t *p_sys;
- /* Set p_input field */
- p_demux->pf_demux = Demux;
- p_demux->pf_control = Control;
p_demux->p_sys = p_sys = malloc( sizeof( demux_sys_t ) );
if( !p_sys )
return VLC_ENOMEM;
/* initialize timing */
date_Init( &p_sys->pts, p_sys->fmt.audio.i_rate, 1 );
- date_Set( &p_sys->pts, 1 );
+ date_Set( &p_sys->pts, 0 );
/* calculate 50ms frame size/time */
p_sys->i_frame_samples = __MAX( p_sys->fmt.audio.i_rate / 20, 1 );
p_sys->i_frame_size = p_sys->i_frame_samples * p_sys->i_seek_step;
msg_Dbg( p_demux, "frame size is %d bytes ", p_sys->i_frame_size);
+ p_demux->pf_demux = Demux;
+ p_demux->pf_control = Control;
return VLC_SUCCESS;
}
}
p_block->i_dts =
- p_block->i_pts = date_Increment( &p_sys->pts, p_sys->i_frame_samples );
+ p_block->i_pts = VLC_TS_0 + date_Get( &p_sys->pts );
es_out_Control( p_demux->out, ES_OUT_SET_PCR, p_block->i_pts );
es_out_Send( p_demux->out, p_sys->p_es, p_block );
+
+ date_Increment( &p_sys->pts, p_sys->i_frame_samples );
+
return 1;
}