1
0
Fork 0
forked from len0rd/rockbox

MPEGPlayer: reconceal the point puns

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26090 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Michael Sevakis 2010-05-16 15:12:23 +00:00
parent 53a858b36c
commit 26230ae048
3 changed files with 20 additions and 13 deletions

View file

@ -610,8 +610,8 @@ static ssize_t disk_buf_probe(off_t start, size_t length, void **p)
/* Attempt to get a pointer to size bytes on the buffer. Returns real amount of /* Attempt to get a pointer to size bytes on the buffer. Returns real amount of
* data available as well as the size of non-wrapped data after *p. */ * data available as well as the size of non-wrapped data after *p. */
ssize_t disk_buf_getbuffer(size_t size, void **pp, void **pwrap, ssize_t _disk_buf_getbuffer(size_t size, void **pp, void **pwrap,
size_t *sizewrap) size_t *sizewrap)
{ {
disk_buf_lock(); disk_buf_lock();
@ -640,8 +640,8 @@ ssize_t disk_buf_getbuffer(size_t size, void **pp, void **pwrap,
return size; return size;
} }
ssize_t disk_buf_getbuffer_l2(struct dbuf_l2_cache *l2, ssize_t _disk_buf_getbuffer_l2(struct dbuf_l2_cache *l2,
size_t size, void **pp) size_t size, void **pp)
{ {
off_t offs; off_t offs;
off_t l2_addr; off_t l2_addr;

View file

@ -116,10 +116,17 @@ static inline int disk_buf_status(void)
int disk_buf_open(const char *filename); int disk_buf_open(const char *filename);
void disk_buf_close(void); void disk_buf_close(void);
ssize_t disk_buf_getbuffer(size_t size, void **pp, void **pwrap, ssize_t _disk_buf_getbuffer(size_t size, void **pp, void **pwrap,
size_t *sizewrap); size_t *sizewrap);
ssize_t disk_buf_getbuffer_l2(struct dbuf_l2_cache *l2, #define disk_buf_getbuffer(size, pp, pwrap, sizewrap) \
size_t size, void **pp); _disk_buf_getbuffer((size), PUN_PTR(void **, (pp)), \
PUN_PTR(void **, (pwrap)), (sizewrap))
ssize_t _disk_buf_getbuffer_l2(struct dbuf_l2_cache *l2,
size_t size, void **pp);
#define disk_buf_getbuffer_l2(l2, size, pp) \
_disk_buf_getbuffer_l2((l2), (size), PUN_PTR(void **, (pp)))
ssize_t disk_buf_read(void *buffer, size_t size); ssize_t disk_buf_read(void *buffer, size_t size);
ssize_t disk_buf_lseek(off_t offset, int whence); ssize_t disk_buf_lseek(off_t offset, int whence);

View file

@ -99,7 +99,7 @@ uint8_t * mpeg_parser_scan_start_code(struct stream_scan *sk, uint32_t code)
{ {
uint8_t *p; uint8_t *p;
off_t pos = disk_buf_lseek(sk->pos, SEEK_SET); off_t pos = disk_buf_lseek(sk->pos, SEEK_SET);
ssize_t len = disk_buf_getbuffer_l2(&sk->l2, 4, (void **)&p); ssize_t len = disk_buf_getbuffer_l2(&sk->l2, 4, &p);
if (pos < 0 || len < 4) if (pos < 0 || len < 4)
break; break;
@ -131,7 +131,7 @@ unsigned mpeg_parser_scan_pes(struct stream_scan *sk)
{ {
uint8_t *p; uint8_t *p;
off_t pos = disk_buf_lseek(sk->pos, SEEK_SET); off_t pos = disk_buf_lseek(sk->pos, SEEK_SET);
ssize_t len = disk_buf_getbuffer_l2(&sk->l2, 4, (void **)&p); ssize_t len = disk_buf_getbuffer_l2(&sk->l2, 4, &p);
if (pos < 0 || len < 4) if (pos < 0 || len < 4)
break; break;
@ -192,7 +192,7 @@ uint32_t mpeg_parser_scan_pts(struct stream_scan *sk, unsigned id)
{ {
uint8_t *p; uint8_t *p;
off_t pos = disk_buf_lseek(sk->pos, SEEK_SET); off_t pos = disk_buf_lseek(sk->pos, SEEK_SET);
ssize_t len = disk_buf_getbuffer_l2(&sk->l2, 30, (void **)&p); ssize_t len = disk_buf_getbuffer_l2(&sk->l2, 30, &p);
if (pos < 0 || len < 4) if (pos < 0 || len < 4)
break; break;
@ -742,7 +742,7 @@ static int parse_demux(struct stream *str, enum stream_parse_mode type)
str->hdr.pos = disk_buf_lseek(str->hdr.pos, SEEK_SET); str->hdr.pos = disk_buf_lseek(str->hdr.pos, SEEK_SET);
if (str->hdr.pos < 0 || str->hdr.pos >= str->hdr.limit || if (str->hdr.pos < 0 || str->hdr.pos >= str->hdr.limit ||
disk_buf_getbuffer(MIN_BUFAHEAD, (void **)&p, NULL, NULL) <= 0) disk_buf_getbuffer(MIN_BUFAHEAD, &p, NULL, NULL) <= 0)
{ {
str_end_of_stream(str); str_end_of_stream(str);
return STREAM_DATA_END; return STREAM_DATA_END;
@ -1017,7 +1017,7 @@ static int parse_elementary(struct stream *str, enum stream_parse_mode type)
case STREAM_PM_RANDOM_ACCESS: case STREAM_PM_RANDOM_ACCESS:
str->hdr.pos = disk_buf_lseek(str->hdr.pos, SEEK_SET); str->hdr.pos = disk_buf_lseek(str->hdr.pos, SEEK_SET);
len = disk_buf_getbuffer(DISK_BUF_PAGE_SIZE, (void **)&p, NULL, NULL); len = disk_buf_getbuffer(DISK_BUF_PAGE_SIZE, &p, NULL, NULL);
if (len <= 0 || str->hdr.pos < 0 || str->hdr.pos >= str->hdr.limit) if (len <= 0 || str->hdr.pos < 0 || str->hdr.pos >= str->hdr.limit)
{ {