]> git.sesse.net Git - vlc/blob - include/video_parser.h
* Patchs MPEG1, qui marchent ou qui ne marche pas ;
[vlc] / include / video_parser.h
1 /*******************************************************************************
2  * video_decoder.h : video decoder thread
3  * (c)1999 VideoLAN
4  *******************************************************************************
5  *******************************************************************************
6  * Requires:
7  *  "config.h"
8  *  "common.h"
9  *  "mtime.h"
10  *  "vlc_thread.h"
11  *  "input.h"
12  *  "video.h"
13  *  "video_output.h"
14  *  "decoder_fifo.h"
15  *******************************************************************************/
16
17 /*******************************************************************************
18  * vdec_thread_t: video decoder thread descriptor
19  *******************************************************************************
20  * ??
21  *******************************************************************************/
22 typedef struct vdec_thread_s
23 {
24     /* Thread properties and locks */
25     boolean_t           b_die;                                   /* `die' flag */
26     boolean_t           b_run;                                   /* `run' flag */
27     boolean_t           b_error;                               /* `error' flag */
28     boolean_t           b_active;                             /* `active' flag */
29     vlc_thread_t        thread_id;                  /* id for thread functions */
30
31     /* Thread configuration */
32     /* ?? */
33  /*??*/
34 //    int *pi_status;
35     
36
37     /* Input properties */
38     decoder_fifo_t      fifo;                                /* PES input fifo */
39
40     /* The bit stream structure handles the PES stream at the bit level */
41     bit_stream_t        bit_stream;
42
43     /* Output properties */
44     vout_thread_t *     p_vout;                         /* video output thread */
45     int                 i_stream;                           /* video stream id */
46     
47         
48 #ifdef STATS
49     /* Statistics */
50     count_t         c_loops;                               /* number of loops */
51     count_t         c_idle_loops;                     /* number of idle loops */
52     count_t         c_pictures;                    /* number of pictures read */
53     count_t         c_i_pictures;                /* number of I pictures read */
54     count_t         c_p_pictures;                /* number of P pictures read */
55     count_t         c_b_pictures;                /* number of B pictures read */    
56     count_t         c_decoded_pictures;         /* number of pictures decoded */
57     count_t         c_decoded_i_pictures;     /* number of I pictures decoded */
58     count_t         c_decoded_p_pictures;     /* number of P pictures decoded */
59     count_t         c_decoded_b_pictures;     /* number of B pictures decoded */
60 #endif
61 } vdec_thread_t;
62
63 /*******************************************************************************
64  * Prototypes
65  *******************************************************************************/
66
67 /* Thread management functions */
68 vdec_thread_t * vdec_CreateThread       ( /* video_cfg_t *p_cfg, */ input_thread_t *p_input /*,
69                                           vout_thread_t *p_vout, int *pi_status */ );
70 void             vdec_DestroyThread      ( vdec_thread_t *p_vdec /*, int *pi_status */ );
71
72 /* Time management functions */
73 /* ?? */
74
75 /* Dynamic thread settings */
76 /* ?? */