47 int64_t i_byte_offset;
48 int64_t i_time_offset;
52 static inline seekpoint_t *vlc_seekpoint_New(
void )
55 point->i_byte_offset =
56 point->i_time_offset = -1;
57 point->psz_name = NULL;
61 static inline void vlc_seekpoint_Delete(
seekpoint_t *point )
64 free( point->psz_name );
71 if( src->psz_name ) point->psz_name = strdup( src->psz_name );
72 point->i_time_offset = src->i_time_offset;
73 point->i_byte_offset = src->i_byte_offset;
109 static inline void vlc_input_title_Delete(
input_title_t *t )
116 for( i = 0; i < t->i_seekpoint; i++ )
118 free( t->seekpoint[i]->psz_name );
119 free( t->seekpoint[i] );
121 free( t->seekpoint );
130 if( t->psz_name ) dup->psz_name = strdup( t->psz_name );
131 dup->b_menu = t->b_menu;
132 dup->i_length = t->i_length;
133 dup->i_size = t->i_size;
134 dup->i_seekpoint = t->i_seekpoint;
135 if( t->i_seekpoint > 0 )
137 dup->seekpoint = (
seekpoint_t**)calloc( t->i_seekpoint,
140 for( i = 0; i < t->i_seekpoint; i++ )
142 dup->seekpoint[i] = vlc_seekpoint_Duplicate( t->seekpoint[i] );
156 char *psz_description;
163 const char *psz_mime,
164 const char *psz_description,
172 a->psz_name = strdup( psz_name ? psz_name :
"" );
173 a->psz_mime = strdup( psz_mime ? psz_mime :
"" );
174 a->psz_description = strdup( psz_description ? psz_description :
"" );
179 a->p_data = malloc( i_data );
180 if( a->p_data && p_data )
181 memcpy( a->p_data, p_data, i_data );
187 return vlc_input_attachment_New( a->psz_name, a->psz_mime, a->psz_description,
188 a->p_data, a->i_data );
196 free( a->psz_description );
206 #define INPUT_UPDATE_TITLE 0x0010
207 #define INPUT_UPDATE_SEEKPOINT 0x0020
208 #define INPUT_UPDATE_META 0x0040
209 #define INPUT_UPDATE_SIGNAL 0x0080
210 #define INPUT_UPDATE_TITLE_LIST 0x0100
245 #define INPUT_RECORD_PREFIX "vlc-record-%Y-%m-%d-%Hh%Mm%Ss-$ N-$ p"
322 #define INPUT_RATE_DEFAULT 1000
326 #define INPUT_RATE_MIN 32
330 #define INPUT_RATE_MAX 32000
351 INPUT_EVENT_POSITION,
368 INPUT_EVENT_TELETEXT,
374 INPUT_EVENT_ITEM_META,
376 INPUT_EVENT_ITEM_INFO,
378 INPUT_EVENT_ITEM_NAME,
380 INPUT_EVENT_ITEM_EPG,
383 INPUT_EVENT_STATISTICS,
388 INPUT_EVENT_AUDIO_DELAY,
390 INPUT_EVENT_SUBTITLE_DELAY,
393 INPUT_EVENT_BOOKMARK,
430 INPUT_GET_AUDIO_DELAY,
431 INPUT_SET_AUDIO_DELAY,
456 INPUT_CLEAR_BOOKMARKS,
458 INPUT_CHANGE_BOOKMARK,
463 INPUT_GET_TITLE_INFO,
466 INPUT_GET_ATTACHMENTS,
467 INPUT_GET_ATTACHMENT,
474 INPUT_SET_RECORD_STATE,
475 INPUT_GET_RECORD_STATE,
484 INPUT_GET_ES_OBJECTS,
487 INPUT_GET_PCR_SYSTEM,
488 INPUT_MODIFY_PCR_SYSTEM,
498 #define input_Create(a,b,c,d) input_Create(VLC_OBJECT(a),b,c,d)
501 #define input_CreateAndStart(a,b,c) input_CreateAndStart(VLC_OBJECT(a),b,c)
508 #define input_Read(a,b) input_Read(VLC_OBJECT(a),b)
510 VLC_API
int input_vaControl(
input_thread_t *,
int i_query, va_list );
533 input_Control( p_input, INPUT_GET_STATE, &state );
540 static inline int input_AddSubtitle(
input_thread_t *p_input,
const char *psz_url,
bool b_check_extension )
542 return input_Control( p_input, INPUT_ADD_SUBTITLE, psz_url, b_check_extension );
557 if( input_Control( p_input, INPUT_GET_VOUTS, &pp_vout, &i_vout ) )
560 for(
size_t i = 1; i < i_vout; i++ )
563 p_vout = (i_vout >= 1) ? pp_vout[0] : NULL;
577 return input_Control( p_input, INPUT_GET_AOUT, &p_aout ) ? NULL : p_aout;
586 static inline int input_GetEsObjects(
input_thread_t *p_input,
int i_id,
590 return input_Control( p_input, INPUT_GET_ES_OBJECTS, i_id,
591 pp_decoder, pp_vout, pp_aout );
599 return input_Control( p_input, INPUT_GET_PCR_SYSTEM, pi_system, pi_delay );
604 static inline int input_ModifyPcrSystem(
input_thread_t *p_input,
bool b_absolute,
mtime_t i_system )
606 return input_Control( p_input, INPUT_MODIFY_PCR_SYSTEM, b_absolute, i_system );
611 VLC_API
void input_DecoderDelete(
decoder_t * );
612 VLC_API
void input_DecoderDecode( decoder_t *,
block_t *,
bool b_do_pace );
Definition: vlc_input.h:45
Definition: vlc_vout.h:73
Definition: vlc_aout.h:101
Definition: vlc_codec.h:52
int64_t mtime_t
Definition: vlc_common.h:153
Definition: vlc_block.h:102
Definition: vlc_objects.h:42