# include "config.h"
#endif
-#include <vlc/vlc.h>
+#include <vlc_common.h>
+#include <vlc_plugin.h>
#include <vlc_input.h>
-#include <vlc_vout.h>
#include <vlc_demux.h>
-
+#include <vlc_charset.h>
#ifdef HAVE_FCNTL_H
# include <fcntl.h>
static void OpenAudioDev( demux_t *p_demux );
static inline void CloseAudioDev( demux_t *p_demux );
-vlc_module_begin();
- set_description( _("dc1394 input") );
- set_capability( "access_demux", 10 );
- add_shortcut( "dc1394" );
- set_callbacks( Open, Close );
-vlc_module_end();
+vlc_module_begin ()
+ set_description( N_("dc1394 input") )
+ set_capability( "access_demux", 10 )
+ add_shortcut( "dc1394" )
+ set_callbacks( Open, Close )
+vlc_module_end ()
typedef struct __dc_camera
{
int i;
int i_width;
int i_height;
- int i_aspect;
int result = 0;
+ if( strncmp(p_demux->psz_access, "dc1394", 6) != 0 )
+ return VLC_EGENERIC;
+
/* Set up p_demux */
p_demux->pf_demux = Demux;
p_demux->pf_control = Control;
p_demux->info.i_title = 0;
p_demux->info.i_seekpoint = 0;
- p_demux->p_sys = p_sys = malloc( sizeof( demux_sys_t ) );
+ p_demux->p_sys = p_sys = calloc( 1, sizeof( demux_sys_t ) );
if( !p_sys )
- {
- msg_Err( p_demux, "not enough memory available" );
return VLC_ENOMEM;
- }
- memset( p_sys, 0, sizeof( demux_sys_t ) );
memset( &fmt, 0, sizeof( es_format_t ) );
/* DEFAULTS */
i_width = p_sys->camera.frame_width;
i_height = p_sys->camera.frame_height;
- i_aspect = vout_InitPicture( VLC_OBJECT(p_demux), &p_sys->pic,
- VLC_FOURCC('U', 'Y', 'V', 'Y'),
- i_width, i_height,
- i_width * VOUT_ASPECT_FACTOR / i_height );
+ if( picture_Setup( &p_sys->pic, VLC_CODEC_UYVY,
+ i_width, i_height,
+ i_width * VOUT_ASPECT_FACTOR / i_height ) )
+ {
+ msg_Err( p_demux ,"unknown chroma" );
+ Close( p_this );
+ return VLC_EGENERIC;
+ }
- es_format_Init( &fmt, VIDEO_ES, VLC_FOURCC('U', 'Y', 'V', 'Y') );
+ es_format_Init( &fmt, VIDEO_ES, VLC_CODEC_UYVY );
fmt.video.i_width = i_width;
fmt.video.i_height = i_height;
if( p_sys->fd_audio >= 0 )
{
es_format_t fmt;
- es_format_Init( &fmt, AUDIO_ES, VLC_FOURCC('a','r','a','w') );
+ es_format_Init( &fmt, AUDIO_ES, VLC_CODEC_S16L ); /* FIXME: hmm, ?? */
fmt.audio.i_channels = p_sys->channels ? p_sys->channels : 1;
fmt.audio.i_rate = p_sys->i_sample_rate;
- fmt.audio.i_bitspersample = 16; /* FIXME: hmm, ?? */
+ fmt.audio.i_bitspersample = 16;
fmt.audio.i_blockalign = fmt.audio.i_channels *
fmt.audio.i_bitspersample / 8;
fmt.i_bitrate = fmt.audio.i_channels * fmt.audio.i_rate *
int i_format = AFMT_S16_LE;
int result;
- p_sys->fd_audio = open( psz_device, O_RDONLY | O_NONBLOCK );
+ p_sys->fd_audio = utf8_open( psz_device, O_RDONLY | O_NONBLOCK );
if( p_sys->fd_audio < 0 )
{
msg_Err( p_demux, "cannot open audio device (%s)", psz_device );
i_correct += buf_info.bytes;
p_block->i_pts = p_block->i_dts =
- mdate() - I64C(1000000) * (mtime_t)i_correct /
+ mdate() - INT64_C(1000000) * (mtime_t)i_correct /
2 / p_sys->channels / p_sys->i_sample_rate;
return p_block;
}
*****************************************************************************/
static int Control( demux_t *p_demux, int i_query, va_list args )
{
- vlc_bool_t *pb;
- int64_t *pi64;
-
switch( i_query )
{
/* Special for access_demux */
case DEMUX_CAN_SEEK:
case DEMUX_SET_PAUSE_STATE:
case DEMUX_CAN_CONTROL_PACE:
- pb = (vlc_bool_t*)va_arg( args, vlc_bool_t * );
- *pb = VLC_FALSE;
+ *va_arg( args, bool * ) = false;
return VLC_SUCCESS;
case DEMUX_GET_PTS_DELAY:
- pi64 = (int64_t*)va_arg( args, int64_t * );
- *pi64 = (int64_t)DEFAULT_PTS_DELAY;
+ *va_arg( args, int64_t * ) = (int64_t)DEFAULT_PTS_DELAY;
return VLC_SUCCESS;
case DEMUX_GET_TIME:
- pi64 = (int64_t*)va_arg( args, int64_t * );
- *pi64 = mdate();
+ *va_arg( args, int64_t * ) = mdate();
return VLC_SUCCESS;
/* TODO implement others */
char *state = NULL;
float rate_f;
- if( strncmp(p_demux->psz_access, "dc1394", 6) != 0 )
- return VLC_EGENERIC;
-
psz_dup = strdup( p_demux->psz_path );
psz_parser = psz_dup;
for( token = strtok_r( psz_parser,":",&state); token;