Move buffer reader functions to buffer_util.h

This commit is contained in:
Romain Vimont 2018-11-11 00:58:29 +01:00
parent b98eb7d0fa
commit ebe998cf78
2 changed files with 13 additions and 15 deletions

View file

@ -15,4 +15,14 @@ static inline void buffer_write32be(Uint8 *buf, Uint32 value) {
buf[3] = value;
}
static inline Uint32 buffer_read32be(Uint8 *buf) {
return (buf[0] << 24) | (buf[1] << 16) | (buf[2] << 8) | buf[3];
}
static inline Uint64 buffer_read64be(Uint8 *buf) {
Uint32 msb = buffer_read32be(buf);
Uint32 lsb = buffer_read32be(&buf[4]);
return ((Uint64) msb << 32) | lsb;
}
#endif

View file

@ -8,6 +8,7 @@
#include <unistd.h>
#include "config.h"
#include "buffer_util.h"
#include "events.h"
#include "frames.h"
#include "lock_util.h"
@ -16,19 +17,6 @@
#define BUFSIZE 0x10000
static inline uint64_t from_be(uint8_t *b, int size)
{
uint64_t x = 0;
int i;
for (i = 0; i < size; i += 1) {
x <<= 8;
x |= b[i];
}
return x;
}
#define HEADER_SIZE 12
static int read_packet(void *opaque, uint8_t *buf, int buf_size) {
@ -48,8 +36,8 @@ static int read_packet(void *opaque, uint8_t *buf, int buf_size) {
return ret;
// read the PTS for the next frame
decoder->next_pts = from_be(header, 8);
remaining = from_be(header + 8, 4);
decoder->next_pts = buffer_read64be(header);
remaining = buffer_read32be(&header[8]);
}
if (buf_size > remaining)