* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
-#include <libvlc_internal.h>
-#include <vlc_demux.h>
+#include "libvlc_internal.h"
#include <vlc/libvlc.h>
-
-#include <vlc/intf.h>
+#include <vlc_demux.h>
+#include <vlc_input.h>
void libvlc_input_free( libvlc_input_t *p_input )
{
{
input_thread_t *p_input_thread;
- if( !p_input ) RAISENULL( "Input is NULL" );
+ if( !p_input )
+ RAISENULL( "Input is NULL" );
p_input_thread = (input_thread_t*)vlc_object_get(
p_input->p_instance->p_libvlc_int,
p_input->i_input_id );
- if( !p_input_thread ) RAISENULL( "Input does not exist" );
+ if( !p_input_thread )
+ RAISENULL( "Input does not exist" );
return p_input_thread;
}
-
/**************************************************************************
* Getters for stream information
vlc_value_t val;
p_input_thread = libvlc_get_input_thread ( p_input, p_e);
- if( libvlc_exception_raised( p_e ) ) return -1;
-
+ 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;
+ return (val.i_time+500LL)/1000LL;
}
vlc_int64_t libvlc_input_get_time( libvlc_input_t *p_input,
vlc_value_t val;
p_input_thread = libvlc_get_input_thread ( p_input, p_e );
- if( libvlc_exception_raised( p_e ) ) return -1;
+ if( libvlc_exception_raised( p_e ) )
+ return -1;
var_Get( p_input_thread , "time", &val );
vlc_object_release( p_input_thread );
- return val.i_time;
+ return (val.i_time+500LL)/1000LL;
}
void libvlc_input_set_time( libvlc_input_t *p_input, vlc_int64_t time,
vlc_value_t value;
p_input_thread = libvlc_get_input_thread ( p_input, p_e );
- if( libvlc_exception_raised( p_e ) ) return;
-
- value.i_time = time;
+ if( libvlc_exception_raised( p_e ) )
+ return;
+
+ value.i_time = time*1000LL;
var_Set( p_input_thread, "time", value );
vlc_object_release( p_input_thread );
}
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;
+ if ( libvlc_exception_raised( p_e ) )
+ return;
var_Set( p_input_thread, "position", val );
vlc_object_release( 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;
+ if ( libvlc_exception_raised( p_e ) )
+ return -1.0;
var_Get( p_input_thread, "position", &val );
vlc_object_release( p_input_thread );
input_thread_t *p_input_thread;
p_input_thread = libvlc_get_input_thread ( p_input, p_e );
- if ( libvlc_exception_raised( p_e ) ) return 0.0;
+ 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( input_GetItem(p_input_thread), DEMUX_GET_FPS, &f_fps )
+ || f_fps < 0.1 )
{
vlc_object_release( p_input_thread );
return 0.0;
{
input_thread_t *p_input_thread =
libvlc_get_input_thread ( p_input, p_e);
- if ( libvlc_exception_raised( p_e ) ) return VLC_FALSE;
+ if ( libvlc_exception_raised( p_e ) )
+ return VLC_FALSE;
if ( !p_input_thread->b_die && !p_input_thread->b_dead )
{
RAISEVOID( "Rate value is invalid" );
val.i_int = 1000.0f/rate;
-
+
p_input_thread = libvlc_get_input_thread ( p_input, p_e);
- if ( libvlc_exception_raised( p_e ) ) return;
+ if ( libvlc_exception_raised( p_e ) )
+ return;
var_Set( p_input_thread, "rate", val );
vlc_object_release( 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;
+ if ( libvlc_exception_raised( p_e ) )
+ return -1.0;
var_Get( p_input_thread, "rate", &val );
vlc_object_release( p_input_thread );
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;
+ p_input_thread = libvlc_get_input_thread ( p_input, p_e );
+ if ( libvlc_exception_raised( p_e ) )
+ return 6; /* Return ERROR_S (see include/vlc_input.c) */
var_Get( p_input_thread, "state", &val );
vlc_object_release( p_input_thread );