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

📄 input.h

📁 vlc stand 0.1.99 ist sehr einfach
💻 H
📖 第 1 页 / 共 2 页
字号:
    char*                   psz_srv_name;#endif    /* XXX?? target background grid descriptor ? */    /* XXX?? video window descriptor ? */    /* XXX?? ISO 639 language descriptor ? */#ifdef STATS    /* Stats */    /* XXX?? ...stats */#endif} pgrm_descriptor_t;/***************************************************************************** * pcr_descriptor_t ***************************************************************************** * Contains informations used to synchronise the decoder with the server *****************************************************************************/typedef struct pcr_descriptor_struct{    /* system_date = PTS_date + delta_pcr + delta_absolute */    mtime_t                 delta_pcr;    mtime_t                 delta_absolute;    mtime_t                 last_pcr;    u32                     i_synchro_state;    count_t                 c_average_count;                           /* counter used to compute dynamic average values */} pcr_descriptor_t;/***************************************************************************** * stream_descriptor_t ***************************************************************************** * Describes a transport stream and list its associated programs. Build upon * the informations carried in program association sections *****************************************************************************/typedef struct{    u16                     i_stream_id;                        /* stream id */    /* Program Association Table status */    u8                      i_PAT_version;                 /* version number */    boolean_t               b_is_PAT_complete;       /* Is the PAT complete ?*/    u8                      i_known_PAT_sections;                                     /* Number of section we received so far */    byte_t                  a_known_PAT_sections[32];                                                /* Already received sections */    /* Program Map Table status */    boolean_t               b_is_PMT_complete;       /* Is the PMT complete ?*/    u8                      i_known_PMT_sections;                                     /* Number of section we received so far */    byte_t                  a_known_PMT_sections[32];                                                /* Already received sections */    /* Service Description Table status */    u8                      i_SDT_version;                 /* version number */    boolean_t               b_is_SDT_complete;       /* Is the SDT complete ?*/    u8                      i_known_SDT_sections;                                     /* Number of section we received so far */    byte_t                  a_known_SDT_sections[32];                                                /* Already received sections */    /* Programs description */    int i_pgrm_number;                   /* Number of program number we have */    pgrm_descriptor_t **    ap_programs;        /* Array of pointers to pgrm */#ifdef STATS    /* Stats */    /* XXX?? ...stats */#endif} stream_descriptor_t;/***************************************************************************** * input_netlist_t *****************************************************************************/typedef struct{    vlc_mutex_t             lock;               /* netlist modification lock */    struct iovec            p_ts_free[INPUT_MAX_TS + INPUT_TS_READ_ONCE];                                          /* FIFO or LIFO of free TS packets */    ts_packet_t *           p_ts_packets;                              /* pointer to the first TS packet we allocated */    pes_packet_t *          p_pes_free[INPUT_MAX_PES + 1];                                         /* FIFO or LIFO of free PES packets */    pes_packet_t *          p_pes_packets;                             /* pointer to the first PES packet we allocated */    /* To use the efficiency of the scatter/gather IO operations. We implemented     * it in 2 ways, as we don't know yet which one is better : as a FIFO (code     * simplier) or as a LIFO stack (when we doesn't care of the ordering, this     * allow to drastically improve the cache performance) */#ifdef INPUT_LIFO_TS_NETLIST    int                     i_ts_index;#else    int                     i_ts_start, i_ts_end;#endif#ifdef INPUT_LIFO_PES_NETLIST    int                     i_pes_index;#else    int                     i_pes_start, i_pes_end;#endif} input_netlist_t;/***************************************************************************** * input_thread_t ***************************************************************************** * This structure includes all the local static variables of an input thread, * including the netlist and the ES descriptors * Note that p_es must be defined as a static table, otherwise we would have to * update all reference to it each time the table would be reallocated *****************************************************************************//* Function pointers used in structure */typedef int  (input_open_t)     ( p_input_thread_t p_input );typedef int  (input_read_t)     ( p_input_thread_t p_input, const struct iovec *p_vector,                                   size_t i_count );typedef void (input_close_t)    ( p_input_thread_t p_input );/* Structure */typedef struct input_thread_s{    /* Thread properties and locks */    boolean_t                   b_die;                         /* 'die' flag */    boolean_t                   b_error;                         /* deadlock */    vlc_thread_t                thread_id;        /* id for thread functions */    vlc_mutex_t                 programs_lock; /* programs modification lock */    vlc_mutex_t                 es_lock;             /* es modification lock */    int *                       pi_status;          /* temporary status flag */    /* Input method description */    int                         i_method;                    /* input method */    int                         i_handle;          /* file/socket descriptor */    char *                      p_source;                          /* source */    int                         i_port;                       /* port number */    int                         i_vlan;                /* id for vlan method */    input_open_t *              p_Open;              /* opener of the method */    input_read_t *              p_Read;                  /* reading function */    input_close_t *             p_Close;              /* destroying function */    /* General stream description */    stream_descriptor_t *   p_stream;                          /* PAT tables */    es_descriptor_t         p_es[INPUT_MAX_ES];/* carried elementary streams */    pcr_descriptor_t *      p_pcr;    /* PCR struct used for synchronisation */    /* List of streams to demux */    es_descriptor_t *       pp_selected_es[INPUT_MAX_SELECTED_ES];    /* Netlists */    input_netlist_t         netlist;                            /* see above */    /* Default settings for spawned decoders */    p_aout_thread_t             p_aout;     /* audio output thread structure */    p_vout_thread_t             p_vout;               /* video output thread */#ifdef STATS    /* Statistics */    count_t                     c_loops;                  /* number of loops */    count_t                     c_bytes;                       /* bytes read */    count_t                     c_payload_bytes;     /* payload useful bytes */    count_t                     c_packets_read;              /* packets read */    count_t                     c_packets_trashed;        /* trashed packets */#endif} input_thread_t;/* Input methods */#define INPUT_METHOD_NONE           0            /* input thread is inactive */#define INPUT_METHOD_TS_FILE       10       /* TS stream is read from a file */#define INPUT_METHOD_TS_UCAST      20                      /* TS UDP unicast */#define INPUT_METHOD_TS_MCAST      21                    /* TS UDP multicast */#define INPUT_METHOD_TS_BCAST      22                    /* TS UDP broadcast */#define INPUT_METHOD_TS_VLAN_BCAST 32         /* TS UDP broadcast with VLANs *//***************************************************************************** * Prototypes *****************************************************************************/input_thread_t *input_CreateThread      ( int i_method, void *p_source, int i_port,                                          int i_vlan, p_vout_thread_t p_vout,                                          p_aout_thread_t p_aout, int *pi_status );void            input_DestroyThread     ( input_thread_t *p_input, int *pi_status );int             input_OpenAudioStream   ( input_thread_t *p_input, int i_pid );void            input_CloseAudioStream  ( input_thread_t *p_input, int i_pid );int             input_OpenVideoStream   ( input_thread_t *p_input, int i_pid );void            input_CloseVideoStream  ( input_thread_t *p_input, int i_pid );

⌨️ 快捷键说明

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