⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vlc_input.h

📁 mips版本的VLC视频服务器
💻 H
📖 第 1 页 / 共 2 页
字号:
    if( !a )        return NULL;    a->psz_name = strdup( psz_name ? psz_name : "" );    a->psz_mime = strdup( psz_mime ? psz_mime : "" );    a->psz_description = strdup( psz_description ? psz_description : "" );    a->i_data = i_data;    a->p_data = NULL;    if( i_data > 0 )    {        a->p_data = malloc( i_data );        if( a->p_data && p_data )            memcpy( a->p_data, p_data, i_data );    }    return a;}static inline input_attachment_t *vlc_input_attachment_Duplicate( const input_attachment_t *a ){    return vlc_input_attachment_New( a->psz_name, a->psz_mime, a->psz_description,                                     a->p_data, a->i_data );}static inline void vlc_input_attachment_Delete( input_attachment_t *a ){    if( !a )        return;    free( a->psz_name );    free( a->psz_mime );    free( a->psz_description );    free( a->p_data );    free( a );}/***************************************************************************** * input defines/constants. *****************************************************************************//* i_update field of access_t/demux_t */#define INPUT_UPDATE_NONE       0x0000#define INPUT_UPDATE_SIZE       0x0001#define INPUT_UPDATE_TITLE      0x0010#define INPUT_UPDATE_SEEKPOINT  0x0020#define INPUT_UPDATE_META       0x0040#define INPUT_UPDATE_SIGNAL     0x0080/** Get the input item for an input thread * FIXME see src/input/item.c but is is unsafe unless * you hold p_input */VLC_EXPORT(input_item_t*, input_GetItem, (input_thread_t*));typedef struct input_thread_private_t input_thread_private_t;/** * Main structure representing an input thread. This structure is mostly * private. The only public fields are READ-ONLY. You must use the helpers * to modify them */struct input_thread_t{    VLC_COMMON_MEMBERS;    bool b_eof;    bool b_preparsing;    bool b_dead;    int i_state;    bool b_can_pace_control;    int64_t     i_time;     /* Current time */    /* Internal caching common to all inputs */    mtime_t i_pts_delay;    /* All other data is input_thread is PRIVATE. You can't access it     * outside of src/input */    input_thread_private_t *p;};/** * Record prefix string. * TODO make it configurable. */#define INPUT_RECORD_PREFIX "vlc-record-%Y-%m-%d-%H:%M:%S-$ N-$ p"/***************************************************************************** * Input events and variables *****************************************************************************//** * \defgroup inputvariable Input variables * * The input provides multiples variable you can write to and/or read from. * * TODO complete the documentation. * The read only variables are: *  - "length" *  - "can-seek" (if you can seek, it doesn't say if 'bar display' has be shown *    or not, for that check position != 0.0) *  - "can-pause" *  - "can-rate" *  - "can-rewind" *  - "can-record" (if a stream can be recorded while playing) *  - "teletext-es" to get the index of spu track that is teletext -1 if no teletext) *  - "signal-quality" *  - "signal-strength" *  - "cache" (level of data cached [0 .. 1]) * * The read-write variables are: *  - state (\see input_state_e) *  - rate, rate-slower, rate-faster *  - position, position-offset *  - time, time-offset *  - title, next-title, prev-title *  - chapter, next-chapter, next-chapter-prev *  - program, audio-es, video-es, spu-es *  - audio-delay, spu-delay *  - bookmark (bookmark list) *  - record *  - frame-next *  - navigation (list of "title %2i") *  - "title %2i" * * The variable used for event is *  - intf-event (\see input_event_type_e) *//** * Input state * * This enum is used by the variable "state" */typedef enum input_state_e{    INIT_S = 0,    OPENING_S,    PLAYING_S,    PAUSE_S,    END_S,    ERROR_S,} input_state_e;/** * Input rate. * * It is an integer used by the variable "rate" in the * range [INPUT_RATE_MIN, INPUT_RATE_MAX] the default value * being INPUT_RATE_DEFAULT. * * A value lower than INPUT_RATE_DEFAULT plays faster. * A value higher than INPUT_RATE_DEFAULT plays slower. *//** * Default rate value */#define INPUT_RATE_DEFAULT  1000/** * Minimal rate value */#define INPUT_RATE_MIN        32            /* Up to 32/1 *//** * Maximal rate value */#define INPUT_RATE_MAX     32000            /* Up to 1/32 *//** * Input events * * You can catch input event by adding a callback on the variable "intf-event". * This variable is an integer that will hold a input_event_type_e value. */typedef enum input_event_type_e{    /* "state" has changed */    INPUT_EVENT_STATE,    /* "rate" has changed */    INPUT_EVENT_RATE,    /* At least one of "position" or "time" or "length" has changed */    INPUT_EVENT_TIMES,    /* A title has been added or removed or selected.     * It imply that chapter has changed (not chapter event is sent) */    INPUT_EVENT_TITLE,    /* A chapter has been added or removed or selected. */    INPUT_EVENT_CHAPTER,    /* A program has been added or removed or selected */    INPUT_EVENT_PROGRAM,    /* A ES has been added or removed or selected */    INPUT_EVENT_ES,    /* "teletext-es" has changed */    INPUT_EVENT_TELETEXT,    /* "record" has changed */    INPUT_EVENT_RECORD,    /* A vout has been created/deleted by *the input* */    INPUT_EVENT_VOUT,    /* input_item_t media has changed */    INPUT_EVENT_ITEM_META,    /* input_item_t info has changed */    INPUT_EVENT_ITEM_INFO,    /* input_item_t name has changed */    INPUT_EVENT_ITEM_NAME,    /* Input statistics have been updated */    INPUT_EVENT_STATISTICS,    /* At least one of "signal-quality" or "signal-strength" has changed */    INPUT_EVENT_SIGNAL,    /* "audio-delay" has changed */    INPUT_EVENT_AUDIO_DELAY,    /* "spu-delay" has changed */    INPUT_EVENT_SUBTITLE_DELAY,    /* "bookmark" has changed */    INPUT_EVENT_BOOKMARK,    /* cache" has changed */    INPUT_EVENT_CACHE,} input_event_type_e;/** @}*//***************************************************************************** * Prototypes *****************************************************************************//* input_CreateThread * Release the returned input_thread_t using vlc_object_release() */#define input_CreateThread(a,b) __input_CreateThread(VLC_OBJECT(a),b)VLC_EXPORT( input_thread_t *, __input_CreateThread, ( vlc_object_t *, input_item_t * ) );#define input_Preparse(a,b) __input_Preparse(VLC_OBJECT(a),b)VLC_EXPORT( int, __input_Preparse, ( vlc_object_t *, input_item_t * ) );#define input_Read(a,b,c) __input_Read(VLC_OBJECT(a),b, c)VLC_EXPORT( int, __input_Read, ( vlc_object_t *, input_item_t *, bool ) );VLC_EXPORT( void,             input_StopThread,     ( input_thread_t * ) );enum input_query_e{    /* input variable "position" */    INPUT_GET_POSITION,         /* arg1= double *       res=    */    INPUT_SET_POSITION,         /* arg1= double         res=can fail    */    /* input variable "length" */    INPUT_GET_LENGTH,           /* arg1= int64_t *      res=can fail    */    /* input variable "time" */    INPUT_GET_TIME,             /* arg1= int64_t *      res=    */    INPUT_SET_TIME,             /* arg1= int64_t        res=can fail    */    /* input variable "rate" (1 is DEFAULT_RATE) */    INPUT_GET_RATE,             /* arg1= int *          res=    */    INPUT_SET_RATE,             /* arg1= int            res=can fail    */    /* input variable "state" */    INPUT_GET_STATE,            /* arg1= int *          res=    */    INPUT_SET_STATE,            /* arg1= int            res=can fail    */    /* input variable "audio-delay" and "sub-delay" */    INPUT_GET_AUDIO_DELAY,      /* arg1 = int* res=can fail */    INPUT_SET_AUDIO_DELAY,      /* arg1 = int  res=can fail */    INPUT_GET_SPU_DELAY,        /* arg1 = int* res=can fail */    INPUT_SET_SPU_DELAY,        /* arg1 = int  res=can fail */    /* Meta datas */    INPUT_ADD_INFO,   /* arg1= char* arg2= char* arg3=...     res=can fail */    INPUT_GET_INFO,   /* arg1= char* arg2= char* arg3= char** res=can fail */    INPUT_DEL_INFO,   /* arg1= char* arg2= char*              res=can fail */    INPUT_SET_NAME,   /* arg1= char* res=can fail    */    /* Input config options */    INPUT_ADD_OPTION,      /* arg1= char * arg2= char *  res=can fail*/    /* Input properties */    INPUT_GET_VIDEO_FPS,         /* arg1= double *        res=can fail */    /* bookmarks */    INPUT_GET_BOOKMARK,    /* arg1= seekpoint_t *               res=can fail */    INPUT_GET_BOOKMARKS,   /* arg1= seekpoint_t *** arg2= int * res=can fail */    INPUT_CLEAR_BOOKMARKS, /* res=can fail */    INPUT_ADD_BOOKMARK,    /* arg1= seekpoint_t *  res=can fail   */    INPUT_CHANGE_BOOKMARK, /* arg1= seekpoint_t * arg2= int * res=can fail   */    INPUT_DEL_BOOKMARK,    /* arg1= seekpoint_t *  res=can fail   */    INPUT_SET_BOOKMARK,    /* arg1= int  res=can fail    */    /* Attachments */    INPUT_GET_ATTACHMENTS, /* arg1=input_attachment_t***, arg2=int*  res=can fail */    INPUT_GET_ATTACHMENT,  /* arg1=input_attachment_t**, arg2=char*  res=can fail */    /* On the fly input slave */    INPUT_ADD_SLAVE,       /* arg1= const char * */    INPUT_ADD_SUBTITLE,    /* arg1= const char *, arg2=bool b_check_extension */    /* On the fly record while playing */    INPUT_SET_RECORD_STATE, /* arg1=bool    res=can fail */    INPUT_GET_RECORD_STATE, /* arg1=bool*   res=can fail */    /* ES */    INPUT_RESTART_ES,       /* arg1=int (-AUDIO/VIDEO/SPU_ES for the whole category) */};VLC_EXPORT( int, input_vaControl,( input_thread_t *, int i_query, va_list  ) );VLC_EXPORT( int, input_Control,  ( input_thread_t *, int i_query, ...  ) );/** * It will return the current state of the input. * Provided for convenience. */static inline input_state_e input_GetState( input_thread_t * p_input ){    input_state_e state = INIT_S;    input_Control( p_input, INPUT_GET_STATE, &state );    return state;}/** * It will add a new subtitle source to the input. * Provided for convenience. */static inline int input_AddSubtitle( input_thread_t *p_input, const char *psz_url, bool b_check_extension ){    return input_Control( p_input, INPUT_ADD_SUBTITLE, psz_url, b_check_extension );}/* */typedef struct input_clock_t input_clock_t;VLC_EXPORT( decoder_t *, input_DecoderNew, ( input_thread_t *, es_format_t *, input_clock_t *, sout_instance_t * ) );VLC_EXPORT( void, input_DecoderDelete, ( decoder_t * ) );VLC_EXPORT( void, input_DecoderDecode,( decoder_t *, block_t * ) );/** * This function allows to split a MRL into access, demux and path part. * *  You should not write into access and demux string as they may not point into * the provided buffer. *  The buffer provided by psz_dup will be modified. */VLC_EXPORT( void, input_SplitMRL, ( const char **ppsz_access, const char **ppsz_demux, char **ppsz_path, char *psz_dup ) );/** * This function creates a sane filename path. */VLC_EXPORT( char *, input_CreateFilename, ( vlc_object_t *, const char *psz_path, const char *psz_prefix, const char *psz_extension ) );#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -