void libvlc_input_free( libvlc_input_t *p_input )
{
- if( p_input )
- free( p_input );
+ if( p_input ) free( p_input );
}
/*
{
input_thread_t *p_input_thread;
- if( !p_input )
- {
- libvlc_exception_raise( p_e, "Input is NULL" );
- return NULL;
- }
+ if( !p_input ) RAISENULL( "Input is NULL" );
p_input_thread = (input_thread_t*)vlc_object_get(
- p_input->p_instance->p_vlc,
- p_input->i_input_id );
- if( !p_input_thread )
- {
- libvlc_exception_raise( p_e, "Input does not exist" );
- return NULL;
- }
+ p_input->p_instance->p_libvlc_int,
+ p_input->i_input_id );
+ if( !p_input_thread ) RAISENULL( "Input does not exist" );
return p_input_thread;
}
* Getters for stream information
**************************************************************************/
vlc_int64_t libvlc_input_get_length( libvlc_input_t *p_input,
- libvlc_exception_t *p_exception )
+ libvlc_exception_t *p_e )
{
input_thread_t *p_input_thread;
vlc_value_t val;
- p_input_thread = libvlc_get_input_thread ( p_input, p_exception);
-
- if ( libvlc_exception_raised( p_exception ) )
- return -1.0;
+ p_input_thread = libvlc_get_input_thread ( p_input, p_e);
+ if( libvlc_exception_raised( p_e ) ) return -1;
var_Get( p_input_thread, "length", &val );
vlc_object_release( p_input_thread );
- return val.i_time / 1000;
+ return val.i_time;
}
vlc_int64_t libvlc_input_get_time( libvlc_input_t *p_input,
- libvlc_exception_t *p_exception )
+ libvlc_exception_t *p_e )
{
input_thread_t *p_input_thread;
vlc_value_t val;
+ p_input_thread = libvlc_get_input_thread ( p_input, p_e );
+ if( libvlc_exception_raised( p_e ) ) return -1;
- p_input_thread = libvlc_get_input_thread ( p_input, p_exception);
+ var_Get( p_input_thread , "time", &val );
+ vlc_object_release( p_input_thread );
+ return val.i_time;
+}
- if ( libvlc_exception_raised( p_exception ) )
- return -1.0;
+void libvlc_input_set_time( libvlc_input_t *p_input, vlc_int64_t time,
+ libvlc_exception_t *p_e )
+{
+ input_thread_t *p_input_thread;
+ vlc_value_t value;
- var_Get( p_input_thread , "time", &val );
+ p_input_thread = libvlc_get_input_thread ( p_input, p_e );
+ if( libvlc_exception_raised( p_e ) ) return;
+
+ value.i_time = time;
+ var_Set( p_input_thread, "time", value );
vlc_object_release( p_input_thread );
+}
- return val.i_time / 1000;
+void libvlc_input_set_position( libvlc_input_t *p_input, float position,
+ libvlc_exception_t *p_e )
+{
+ input_thread_t *p_input_thread;
+ vlc_value_t val;
+ val.f_float = position;
+
+ p_input_thread = libvlc_get_input_thread ( p_input, p_e);
+ if ( libvlc_exception_raised( p_e ) ) return;
+
+ var_Set( p_input_thread, "position", val );
+ vlc_object_release( p_input_thread );
}
float libvlc_input_get_position( libvlc_input_t *p_input,
- libvlc_exception_t *p_exception )
+ libvlc_exception_t *p_e )
{
input_thread_t *p_input_thread;
vlc_value_t val;
- p_input_thread = libvlc_get_input_thread ( p_input, p_exception);
-
- if ( libvlc_exception_raised( p_exception ) )
- return -1.0;
+ p_input_thread = libvlc_get_input_thread ( p_input, p_e);
+ if ( libvlc_exception_raised( p_e ) ) return -1.0;
var_Get( p_input_thread, "position", &val );
vlc_object_release( p_input_thread );
}
float libvlc_input_get_fps( libvlc_input_t *p_input,
- libvlc_exception_t *p_exception)
+ libvlc_exception_t *p_e)
{
double f_fps;
input_thread_t *p_input_thread;
- p_input_thread = libvlc_get_input_thread ( p_input, p_exception);
+ p_input_thread = libvlc_get_input_thread ( p_input, p_e );
+ if ( libvlc_exception_raised( p_e ) ) return 0.0;
- if( demux2_Control( p_input_thread->input.p_demux, DEMUX_GET_FPS, &f_fps ) || f_fps < 0.1 )
+ if( demux2_Control( p_input_thread->input.p_demux, DEMUX_GET_FPS, &f_fps )
+ || f_fps < 0.1 )
{
vlc_object_release( p_input_thread );
- return 0;
+ return 0.0;
}
else
{
}
vlc_bool_t libvlc_input_will_play( libvlc_input_t *p_input,
- libvlc_exception_t *p_exception)
+ libvlc_exception_t *p_e)
{
- input_thread_t *p_input_thread;
-
- p_input_thread = libvlc_get_input_thread ( p_input, p_exception);
-
- if ( libvlc_exception_raised( p_exception ) )
- return VLC_FALSE;
+ input_thread_t *p_input_thread =
+ libvlc_get_input_thread ( p_input, p_e);
+ if ( libvlc_exception_raised( p_e ) ) return VLC_FALSE;
if ( !p_input_thread->b_die && !p_input_thread->b_dead )
{
vlc_object_release( p_input_thread );
return VLC_TRUE;
}
-
vlc_object_release( p_input_thread );
return VLC_FALSE;
}
+
+void libvlc_input_set_rate( libvlc_input_t *p_input, float rate,
+ libvlc_exception_t *p_e )
+{
+ input_thread_t *p_input_thread;
+ vlc_value_t val;
+ val.i_int = rate*1000.0f;
+
+ p_input_thread = libvlc_get_input_thread ( p_input, p_e);
+ if ( libvlc_exception_raised( p_e ) ) return;
+
+ var_Set( p_input_thread, "rate", val );
+ vlc_object_release( p_input_thread );
+}
+
+float libvlc_input_get_rate( libvlc_input_t *p_input,
+ libvlc_exception_t *p_e )
+{
+ input_thread_t *p_input_thread;
+ vlc_value_t val;
+
+ p_input_thread = libvlc_get_input_thread ( p_input, p_e);
+ if ( libvlc_exception_raised( p_e ) ) return -1.0;
+
+ var_Get( p_input_thread, "rate", &val );
+ vlc_object_release( p_input_thread );
+
+ return (float)val.i_int/1000.0f;
+}
+
+int libvlc_input_get_state( libvlc_input_t *p_input,
+ libvlc_exception_t *p_e )
+{
+ input_thread_t *p_input_thread;
+ vlc_value_t val;
+
+ p_input_thread = libvlc_get_input_thread ( p_input, p_e);
+ if ( libvlc_exception_raised( p_e ) ) return 0;
+
+ var_Get( p_input_thread, "state", &val );
+ vlc_object_release( p_input_thread );
+
+ return val.i_int;
+}
+