#endif
#include <vlc_common.h>
-#include <vlc_charset.h>
-
+#include <vlc_fs.h>
+#ifdef WIN32
+# include <vlc_charset.h>
+#endif
#include <vlc_input.h>
#include <vlc_es_out.h>
#include <vlc_block.h>
struct
{
mtime_t i_pts_delay;
+ mtime_t i_pts_jitter;
int i_cr_average;
} jitter;
} u;
p_out->pf_control = Control;
p_out->pf_destroy = Destroy;
p_out->p_sys = p_sys;
- p_out->b_sout = p_input->p->p_sout != NULL;
/* */
p_sys->b_input_paused = false;
p_sys->i_tmp_size_max = 50*1024*1024;
else
p_sys->i_tmp_size_max = __MAX( i_tmp_size_max, 1*1024*1024 );
- msg_Dbg( p_input, "using timeshift granularity of %d MBytes",
+ msg_Dbg( p_input, "using timeshift granularity of %d MiB",
(int)p_sys->i_tmp_size_max/(1024*1024) );
char *psz_tmp_path = var_CreateGetNonEmptyString( p_input, "input-timeshift-path" );
/* XXX we may do it BUT it would be better to finish the clock clean up+improvments
* and so be able to advertize correctly pace control property in access
* module */
- msg_Err( p_sys->p_input, "EsOutTimeshift does not work with streams that have space control" );
+ msg_Err( p_sys->p_input, "EsOutTimeshift does not work with streams that have pace control" );
}
}
/* XXX we may do it BUT it would be better to finish the clock clean up+improvments
* and so be able to advertize correctly pace control property in access
* module */
- msg_Err( p_sys->p_input, "EsOutTimeshift does not work with streams that have space control" );
+ msg_Err( p_sys->p_input, "EsOutTimeshift does not work with streams that have pace control" );
}
}
return VLC_EGENERIC;
/* Pass-through control */
- case ES_OUT_SET_ACTIVE:
case ES_OUT_SET_MODE:
case ES_OUT_SET_GROUP:
case ES_OUT_SET_PCR:
}
return es_out_Control( p_sys->p_out, ES_OUT_GET_ES_STATE, p_es->p_es, pb_enabled );
}
-
/* Special internal input control */
case ES_OUT_GET_EMPTY:
{
return VLC_EGENERIC;
mtime_t *pi_system = (mtime_t*)va_arg( args, mtime_t * );
- return es_out_ControlGetPcrSystem( p_sys->p_out, pi_system );
+ mtime_t *pi_delay = (mtime_t*)va_arg( args, mtime_t * );
+ return es_out_ControlGetPcrSystem( p_sys->p_out, pi_system, pi_delay );
}
case ES_OUT_MODIFY_PCR_SYSTEM:
{
return es_out_ControlModifyPcrSystem( p_sys->p_out, b_absolute, i_system );
}
+ case ES_OUT_GET_GROUP_FORCED:
+ {
+ int *pi_group = va_arg( args, int * );
+ return es_out_Control( p_sys->p_out, ES_OUT_GET_GROUP_FORCED, pi_group );
+ }
+
+
default:
msg_Err( p_sys->p_input, "Unknown es_out_Control query !" );
assert(0);
p_storage->i_file_size = 0;
p_storage->p_filew = GetTmpFile( &p_storage->psz_file, psz_tmp_path );
if( p_storage->psz_file )
- p_storage->p_filer = utf8_fopen( p_storage->psz_file, "rb" );
+ p_storage->p_filer = vlc_fopen( p_storage->psz_file, "rb" );
/* */
p_storage->i_cmd_w = 0;
p_storage->i_cmd_r = 0;
p_storage->i_cmd_max = 30000;
p_storage->p_cmd = malloc( p_storage->i_cmd_max * sizeof(*p_storage->p_cmd) );
- //fprintf( stderr, "\nSTORAGE name=%s size=%d kbytes\n", p_storage->psz_file, p_storage->i_cmd_max * sizeof(*p_storage->p_cmd) /1024 );
+ //fprintf( stderr, "\nSTORAGE name=%s size=%d KiB\n", p_storage->psz_file, p_storage->i_cmd_max * sizeof(*p_storage->p_cmd) /1024 );
if( !p_storage->p_cmd || !p_storage->p_filew || !p_storage->p_filer )
{
if( p_storage->psz_file )
{
- utf8_unlink( p_storage->psz_file );
+ vlc_unlink( p_storage->psz_file );
free( p_storage->psz_file );
}
switch( i_query )
{
/* Pass-through control */
- case ES_OUT_SET_ACTIVE: /* arg1= bool */
- p_cmd->u.control.u.b_bool = (bool)va_arg( args, int );
- break;
-
case ES_OUT_SET_MODE: /* arg1= int */
case ES_OUT_SET_GROUP: /* arg1= int */
case ES_OUT_DEL_GROUP: /* arg1=int i_group */
case ES_OUT_SET_JITTER:
{
mtime_t i_pts_delay = (mtime_t)va_arg( args, mtime_t );
+ mtime_t i_pts_jitter = (mtime_t)va_arg( args, mtime_t );
int i_cr_average = (int)va_arg( args, int );
p_cmd->u.control.u.jitter.i_pts_delay = i_pts_delay;
+ p_cmd->u.control.u.jitter.i_pts_jitter = i_pts_jitter;
p_cmd->u.control.u.jitter.i_cr_average = i_cr_average;
break;
}
switch( i_query )
{
/* Pass-through control */
- case ES_OUT_SET_ACTIVE: /* arg1= bool */
- return es_out_Control( p_out, i_query, p_cmd->u.control.u.b_bool );
-
case ES_OUT_SET_MODE: /* arg1= int */
case ES_OUT_SET_GROUP: /* arg1= int */
case ES_OUT_DEL_GROUP: /* arg1=int i_group */
p_cmd->u.control.u.times.i_length );
case ES_OUT_SET_JITTER:
return es_out_Control( p_out, i_query, p_cmd->u.control.u.jitter.i_pts_delay,
+ p_cmd->u.control.u.jitter.i_pts_jitter,
p_cmd->u.control.u.jitter.i_cr_average );
default:
{
/* Make sure that the path exists and is a directory */
struct stat s;
- const int i_ret = utf8_stat( psz_path, &s );
+ const int i_ret = vlc_stat( psz_path, &s );
- if( i_ret < 0 && !utf8_mkdir( psz_path, 0600 ) )
+ if( i_ret < 0 && !vlc_mkdir( psz_path, 0600 ) )
return psz_path;
else if( i_ret == 0 && ( s.st_mode & S_IFDIR ) )
return psz_path;
return NULL;
/* */
- fd = utf8_mkstemp( psz_name );
+ fd = vlc_mkstemp( psz_name );
*ppsz_file = psz_name;
if( fd < 0 )