/* DEMUX_SET_RATE is called only if DEMUX_CAN_CONTROL_RATE has returned true.
* It should return the value really used in *pi_rate */
DEMUX_SET_RATE, /* arg1= int*pi_rate can fail */
+
+ DEMUX_CAN_SEEK, /* arg1= vlc_bool_t* can fail (assume false)*/
};
VLC_EXPORT( int, demux2_vaControlHelper, ( stream_t *, int64_t i_start, int64_t i_end, int i_bitrate, int i_align, int i_query, va_list args ) );
{
/* Special for access_demux */
case DEMUX_CAN_PAUSE:
+ case DEMUX_CAN_SEEK:
case DEMUX_SET_PAUSE_STATE:
case DEMUX_CAN_CONTROL_PACE:
pb = (vlc_bool_t*)va_arg( args, vlc_bool_t * );
{
/* Special for access_demux */
case DEMUX_CAN_PAUSE:
+ case DEMUX_CAN_SEEK:
case DEMUX_SET_PAUSE_STATE:
case DEMUX_CAN_CONTROL_PACE:
pb = (vlc_bool_t*)va_arg( args, vlc_bool_t * );
/* Special for access_demux */
case DEMUX_CAN_PAUSE:
+ case DEMUX_CAN_SEEK:
case DEMUX_CAN_CONTROL_PACE:
/* TODO */
pb = (vlc_bool_t*)va_arg( args, vlc_bool_t * );
/* Special for access_demux */
case DEMUX_CAN_PAUSE:
+ case DEMUX_CAN_SEEK:
case DEMUX_CAN_CONTROL_PACE:
/* TODO */
pb = (vlc_bool_t*)va_arg( args, vlc_bool_t * );
{
/* Special for access_demux */
case DEMUX_CAN_PAUSE:
+ case DEMUX_CAN_SEEK:
case DEMUX_CAN_CONTROL_PACE:
pb = (vlc_bool_t *)va_arg( args, vlc_bool_t * );
*pb = VLC_TRUE;
{
/* Special for access_demux */
case DEMUX_CAN_PAUSE:
+ case DEMUX_CAN_SEEK:
+ pb = (vlc_bool_t *)va_arg( args, vlc_bool_t * );
+ *pb = VLC_TRUE;
+ return VLC_SUCCESS;
+
case DEMUX_SET_PAUSE_STATE:
return VLC_SUCCESS;
case DEMUX_CAN_CONTROL_PACE:
{
/* Special for access_demux */
case DEMUX_CAN_PAUSE:
+ case DEMUX_CAN_SEEK:
case DEMUX_CAN_CONTROL_PACE:
/* TODO */
pb = (vlc_bool_t*)va_arg( args, vlc_bool_t * );
{
/* Special for access_demux */
case DEMUX_CAN_PAUSE:
+ case DEMUX_CAN_SEEK:
case DEMUX_SET_PAUSE_STATE:
case DEMUX_CAN_CONTROL_PACE:
pb = (vlc_bool_t*)va_arg( args, vlc_bool_t * );
{
/* Special for access_demux */
case DEMUX_CAN_PAUSE:
+ case DEMUX_CAN_SEEK:
case DEMUX_SET_PAUSE_STATE:
case DEMUX_CAN_CONTROL_PACE:
pb = (vlc_bool_t*)va_arg( args, vlc_bool_t * );
}
/* Special for access_demux */
case DEMUX_CAN_PAUSE:
+ case DEMUX_CAN_SEEK:
pb = (vlc_bool_t*)va_arg( args, vlc_bool_t * );
if( p_sys->rtsp && p_sys->i_npt_length )
/* Not always true, but will be handled in SET_PAUSE_STATE */
&in->b_can_pause ) )
in->b_can_pause = VLC_FALSE;
- /* FIXME todo
- demux2_Control( in->p_demux, DEMUX_CAN_SEEK,
+ int ret = demux2_Control( in->p_demux, DEMUX_CAN_SEEK,
&val.b_bool );
- */
+ if( ret != VLC_SUCCESS )
+ val.b_bool = VLC_FALSE;
+ var_Set( p_input, "seekable", val );
}
else
{