static int RecordCallback( vlc_object_t *p_this, char const *psz_cmd,
vlc_value_t oldval, vlc_value_t newval,
void *p_data );
+static int FrameNextCallback( vlc_object_t *p_this, char const *psz_cmd,
+ vlc_value_t oldval, vlc_value_t newval,
+ void *p_data );
typedef struct
{
const char *psz_name;
vlc_callback_t callback;
} vlc_input_callback_t;
+
static void InputAddCallbacks( input_thread_t *, const vlc_input_callback_t * );
static void InputDelCallbacks( input_thread_t *, const vlc_input_callback_t * );
CALLBACK( "audio-es", ESCallback ),
CALLBACK( "spu-es", ESCallback ),
CALLBACK( "record", RecordCallback ),
+ CALLBACK( "frame-next", FrameNextCallback ),
CALLBACK( NULL, NULL )
};
/* State */
var_Create( p_input, "state", VLC_VAR_INTEGER );
- val.i_int = p_input->i_state;
+ val.i_int = p_input->p->i_state;
var_Change( p_input, "state", VLC_VAR_SETVALUE, &val, NULL );
/* Rate */
var_Create( p_input, "rate-faster", VLC_VAR_VOID );
+ var_Create( p_input, "frame-next", VLC_VAR_VOID );
+
/* Position */
var_Create( p_input, "position", VLC_VAR_FLOAT );
var_Create( p_input, "position-offset", VLC_VAR_FLOAT );
if( !p_input->b_preparsing )
{
- /* Special "intf-change" variable, it allows intf to set up a callback
- * to be notified of some changes.
- *
- * Add rate-change to inform about rate changin
- *
- * TODO list all changes warn by this callbacks */
- var_Create( p_input, "intf-change", VLC_VAR_BOOL );
- var_SetBool( p_input, "intf-change", true );
- var_Create( p_input, "rate-change", VLC_VAR_BOOL );
- var_SetBool( p_input, "rate-change", true );
-
- var_Create( p_input, "intf-change-vout", VLC_VAR_BOOL );
- var_SetBool( p_input, "intf-change-vout", true );
+ /* Special "intf-event" variable. */
+ var_Create( p_input, "intf-event", VLC_VAR_INTEGER );
}
/* Add all callbacks
var_Create( p_input, "start-time", VLC_VAR_INTEGER|VLC_VAR_DOINHERIT );
var_Create( p_input, "stop-time", VLC_VAR_INTEGER|VLC_VAR_DOINHERIT );
var_Create( p_input, "run-time", VLC_VAR_INTEGER|VLC_VAR_DOINHERIT );
+ var_Create( p_input, "input-fast-seek", VLC_VAR_BOOL|VLC_VAR_DOINHERIT );
var_Create( p_input, "input-slave",
VLC_VAR_STRING | VLC_VAR_DOINHERIT );
VLC_VAR_INTEGER | VLC_VAR_DOINHERIT);
}
- var_Create( p_input, "seekable", VLC_VAR_BOOL );
- var_SetBool( p_input, "seekable", true ); /* Fixed later*/
+ var_Create( p_input, "can-seek", VLC_VAR_BOOL );
+ var_SetBool( p_input, "can-seek", true ); /* Fixed later*/
var_Create( p_input, "can-pause", VLC_VAR_BOOL );
var_SetBool( p_input, "can-pause", true ); /* Fixed later*/
+ var_Create( p_input, "can-rate", VLC_VAR_BOOL );
+ var_SetBool( p_input, "can-rate", false );
+
+ var_Create( p_input, "can-rewind", VLC_VAR_BOOL );
+ var_SetBool( p_input, "can-rewind", false );
+
var_Create( p_input, "can-record", VLC_VAR_BOOL );
var_SetBool( p_input, "can-record", false ); /* Fixed later*/
var_Create( p_input, "signal-strength", VLC_VAR_FLOAT );
var_SetFloat( p_input, "signal-strength", -1 );
+ var_Create( p_input, "cache", VLC_VAR_FLOAT );
+ var_SetFloat( p_input, "cache", 0.0 );
+
+ /* */
+ var_Create( p_input, "input-record-native", VLC_VAR_BOOL | VLC_VAR_DOINHERIT );
+
/* */
- var_Create( p_input, "access-filter", VLC_VAR_STRING | VLC_VAR_DOINHERIT );
var_Create( p_input, "access", VLC_VAR_STRING | VLC_VAR_DOINHERIT );
var_Create( p_input, "demux", VLC_VAR_STRING | VLC_VAR_DOINHERIT );
+ var_Create( p_input, "stream-filter", VLC_VAR_STRING | VLC_VAR_DOINHERIT );
/* Meta */
var_Create( p_input, "meta-title", VLC_VAR_STRING | VLC_VAR_DOINHERIT );
p_callbacks[i].psz_name,
p_callbacks[i].callback, NULL );
}
+
static void InputDelCallbacks( input_thread_t *p_input,
const vlc_input_callback_t *p_callbacks )
{
p_callbacks[i].psz_name,
p_callbacks[i].callback, NULL );
}
+
/*****************************************************************************
* All Callbacks:
*****************************************************************************/
{
input_ControlPush( p_input, INPUT_CONTROL_SET_RATE, &newval );
}
-
return VLC_SUCCESS;
}
if( !strcmp( psz_cmd, "audio-delay" ) )
{
- /* Change i_pts_delay to make sure es are decoded in time */
- if( newval.i_int < 0 || oldval.i_int < 0 )
- {
- p_input->i_pts_delay -= newval.i_int - oldval.i_int;
- }
input_ControlPush( p_input, INPUT_CONTROL_SET_AUDIO_DELAY, &newval );
}
else if( !strcmp( psz_cmd, "spu-delay" ) )
return VLC_SUCCESS;
}
+
+static int FrameNextCallback( vlc_object_t *p_this, char const *psz_cmd,
+ vlc_value_t oldval, vlc_value_t newval,
+ void *p_data )
+{
+ input_thread_t *p_input = (input_thread_t*)p_this;
+ VLC_UNUSED(psz_cmd); VLC_UNUSED(oldval); VLC_UNUSED(p_data);
+ VLC_UNUSED(newval);
+
+ input_ControlPush( p_input, INPUT_CONTROL_SET_FRAME_NEXT, NULL );
+
+ return VLC_SUCCESS;
+}
+