1
0
Fork 0
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:
Michael Sevakis 2010-05-17 12:34:05 +00:00
parent 9fde12676b
commit fcf36dd4f9
15 changed files with 199 additions and 313 deletions

View file

@ -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)
{