diff options
Diffstat (limited to 'src/libspudec/spu.h')
-rw-r--r-- | src/libspudec/spu.h | 77 |
1 files changed, 32 insertions, 45 deletions
diff --git a/src/libspudec/spu.h b/src/libspudec/spu.h index 695deb8a1..f7994ad66 100644 --- a/src/libspudec/spu.h +++ b/src/libspudec/spu.h @@ -19,7 +19,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: spu.h,v 1.10 2002/03/25 13:57:25 jcdutton Exp $ + * $Id: spu.h,v 1.11 2002/04/06 15:40:19 jcdutton Exp $ * * This file was originally part of the OMS program. * @@ -40,7 +40,7 @@ #define NUM_SEQ_BUFFERS 50 #define MAX_STREAMS 32 -typedef struct spu_clut_struct { +typedef struct spudec_clut_struct { #ifdef WORDS_BIGENDIAN uint8_t entry0 : 4; uint8_t entry1 : 4; @@ -52,46 +52,43 @@ typedef struct spu_clut_struct { uint8_t entry3 : 4; uint8_t entry2 : 4; #endif -} spu_clut_t; +} spudec_clut_t; typedef struct { - uint8_t *buf; - u_int ra_offs; /* reassembly offset */ - u_int seq_len; - u_int buf_len; - - u_int cmd_offs; - - int64_t pts; /* Base PTS of this sequence */ - int finished; /* Has this sequence been finished? */ -} spu_seq_t; + uint8_t *buf; + uint32_t ra_offs; /* reassembly offset */ + uint32_t seq_len; + uint32_t buf_len; + uint32_t cmd_offs; + int64_t pts; /* Base PTS of this sequence */ + int32_t finished; /* Has this control sequence been finished? */ + uint32_t complete; /* Has this reassembly been finished? */ +} spudec_seq_t; typedef struct { uint8_t *cmd_ptr; - int field_offs[2]; - int b_top, o_top; - int b_bottom, o_bottom; - int b_left, o_left; - int b_right, o_right; - - int64_t next_pts; /* pts of next sub-sequence */ - int modified; /* Was the sub-picture modified? */ - int visible; /* Must the sub-picture be shown? */ - int menu; /* This overlay is a menu */ - int delay; /* Delay in 90Khz / 1000 */ - int b_show; /* is a button shown? */ - int need_clut; /* doesn't have the right clut yet */ - int cur_colors[4];/* current 4 colors been used */ + int32_t field_offs[2]; + int32_t b_top, o_top; + int32_t b_bottom, o_bottom; + int32_t b_left, o_left; + int32_t b_right, o_right; + + int32_t modified; /* Was the sub-picture modified? */ + int32_t visible; /* Must the sub-picture be shown? */ + int32_t forced_display; /* This overlay is a menu */ + int32_t delay; /* Delay in 90Khz / 1000 */ + int32_t b_show; /* is a button shown? */ + int32_t need_clut; /* doesn't have the right clut yet */ + int32_t cur_colors[4];/* current 4 colors been used */ uint32_t clut[16]; -} spu_state_t; +} spudec_state_t; typedef struct spudec_stream_state_s { - spu_seq_t ra_seq; - uint32_t ra_complete; + spudec_seq_t ra_seq; uint32_t stream_filter; - spu_state_t state; + spudec_state_t state; int64_t vpts; int64_t pts; int32_t overlay_handle; @@ -101,15 +98,13 @@ typedef struct spudec_decoder_s { spu_decoder_t spu_decoder; xine_t *xine; - spudec_stream_state_t spu_stream_state[MAX_STREAMS]; + spudec_stream_state_t spudec_stream_state[MAX_STREAMS]; video_overlay_event_t event; video_overlay_object_t object; int32_t menu_handle; - int64_t ovl_pts; - int64_t buf_pts; - spu_state_t state; + spudec_state_t state; vo_instance_t *vo_out; vo_overlay_t overlay; @@ -119,16 +114,8 @@ typedef struct spudec_decoder_s { uint32_t buttonN; /* Current button number for highlights */ } spudec_decoder_t; -int spu_reassembly (spu_seq_t *seq, int start, uint8_t *pkt_data, u_int pkt_len); -int spu_next_event (spu_state_t *state, spu_seq_t* seq, int64_t pts); -void spu_do_commands (spu_state_t *state, spu_seq_t* seq, vo_overlay_t *ovl); -void spu_draw_picture (spu_state_t *state, spu_seq_t* seq, vo_overlay_t *ovl); -void spu_discover_clut (spu_state_t *state, vo_overlay_t *ovl); -void spu_update_menu (spu_state_t *state, vo_overlay_t *ovl); -void spudec_reset (spudec_decoder_t *this); -void spudec_print_overlay( vo_overlay_t *overlay ); -void spudec_copy_nav_to_spu( spudec_decoder_t *this ); -void spu_process( spudec_decoder_t *this, uint32_t stream_id); +void spudec_reassembly (spudec_seq_t *seq, uint8_t *pkt_data, u_int pkt_len); +void spudec_process( spudec_decoder_t *this, uint32_t stream_id); void spudec_decode_nav( spudec_decoder_t *this, buf_element_t *buf); #endif |