* Preamble
*****************************************************************************/
#include <vlc/vlc.h>
-#include <vlc/input.h>
+#include <vlc_access.h>
-#include <stdlib.h>
-#include <string.h>
#include <errno.h>
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#define CACHING_TEXT N_("Caching value in ms")
#define CACHING_LONGTEXT N_( \
- "Allows you to modify the default caching value for file streams. This " \
- "value should be set in millisecond units." )
+ "Caching value for DV streams. This" \
+ "value should be set in milliseconds." )
vlc_module_begin();
set_description( _("Digital Video (Firewire/ieee1394) input") );
msg_Dbg( p_access, "opening device %s", psz_name );
/* Set up p_access */
- p_access->pf_read = NULL;
- p_access->pf_block = Block;
- p_access->pf_control = Control;
- p_access->pf_seek = NULL;
- p_access->info.i_update = 0;
- p_access->info.i_size = 0;
- p_access->info.i_pos = 0;
- p_access->info.b_eof = VLC_FALSE;
+ access_InitFields( p_access );
+ ACCESS_SET_CALLBACKS( NULL, Block, Control, NULL );
p_access->info.b_prebuffered = VLC_FALSE;
- p_access->info.i_title = 0;
- p_access->info.i_seekpoint = 0;
p_access->p_sys = p_sys = malloc( sizeof( access_sys_t ) );
if( !p_sys )
p_sys->p_raw1394 = NULL;
p_sys->p_avc1394 = NULL;
p_sys->p_frame = NULL;
+ p_sys->p_ev = NULL;
vlc_mutex_init( p_access, &p_sys->lock );
/* Now create our event thread catcher */
p_sys->p_ev = vlc_object_create( p_access, sizeof( event_thread_t ) );
+ if( !p_sys->p_ev )
+ {
+ msg_Err( p_access, "failed to create event thread for %s", psz_name );
+ Close( p_this );
+ free( psz_name );
+ return VLC_EGENERIC;
+ }
+
p_sys->p_ev->p_frame = NULL;
p_sys->p_ev->pp_last = &p_sys->p_ev->p_frame;
p_sys->p_ev->p_access = p_access;
if( p_sys->p_ev )
{
/* stop the event handler */
- p_sys->p_ev->b_die = VLC_TRUE;
+ vlc_object_kill( p_sys->p_ev );
if( p_sys->p_raw1394 )
raw1394_stop_iso_rcv( p_sys->p_raw1394, p_sys->i_channel );
switch( i_query )
{
/* */
- case ACCESS_CAN_SEEK:
- case ACCESS_CAN_FASTSEEK:
case ACCESS_CAN_PAUSE:
pb_bool = (vlc_bool_t*)va_arg( args, vlc_bool_t* );
*pb_bool = VLC_TRUE;
break;
- case ACCESS_CAN_CONTROL_PACE:
+ case ACCESS_CAN_SEEK:
+ case ACCESS_CAN_FASTSEEK:
+ case ACCESS_CAN_CONTROL_PACE:
pb_bool = (vlc_bool_t*)va_arg( args, vlc_bool_t* );
*pb_bool = VLC_FALSE;
break;