forked from len0rd/rockbox
Simplify mpegplayer a bit and use array-based lists rather than linked lists for stream management. Move a couple useful functions to handle pointer arrays from kernel.c into general.c; mpeglayer now makes use of them.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26101 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
9fde12676b
commit
fcf36dd4f9
15 changed files with 199 additions and 313 deletions
|
@ -39,7 +39,6 @@ struct stream_hdr
|
|||
off_t pos; /* Start/current position for random-access read */
|
||||
};
|
||||
off_t limit; /* Limit for random-access read */
|
||||
struct list_item nf; /* List for data notification */
|
||||
};
|
||||
|
||||
struct stream
|
||||
|
@ -48,8 +47,6 @@ struct stream
|
|||
unsigned int thread; /* Stream's thread */
|
||||
uint8_t* curr_packet; /* Current stream packet beginning */
|
||||
uint8_t* curr_packet_end; /* Current stream packet end */
|
||||
struct list_item l; /* List of streams - either reserve pool
|
||||
or active pool */
|
||||
int state; /* State machine parsing mode */
|
||||
uint32_t start_pts; /* First timestamp for stream */
|
||||
uint32_t end_pts; /* Last timestamp for stream */
|
||||
|
@ -58,6 +55,8 @@ struct stream
|
|||
unsigned id; /* Stream identifier */
|
||||
};
|
||||
|
||||
#define STR_FROM_HDR(sh) ((struct stream *)(sh))
|
||||
|
||||
/* Make sure there there is always enough data buffered ahead for
|
||||
* the worst possible case - regardless of whether a valid stream
|
||||
* would actually produce that */
|
||||
|
@ -145,8 +144,6 @@ enum stream_status
|
|||
STREAM_NOT_FOUND, /* Match not found */
|
||||
};
|
||||
|
||||
#define STR_FROM_HEADER(sh) ((struct stream *)(sh))
|
||||
|
||||
/* Clip time to range for a particular stream */
|
||||
static inline uint32_t clip_time(struct stream *str, uint32_t time)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue