mirror of
https://github.com/outbackdingo/UltraGrid.git
synced 2026-03-22 06:40:26 +00:00
Playback: use POSIX API
This commit is contained in:
@@ -5,9 +5,9 @@ CXX = @CXX@
|
|||||||
QMAKE = @QMAKE@
|
QMAKE = @QMAKE@
|
||||||
LINKER = @LINKER@
|
LINKER = @LINKER@
|
||||||
COMMON_FLAGS = -g @DEFS@ -DPATH_PREFIX=@prefix@ -DLIB_DIR=@libdir@ -Wall -Wextra -Wpointer-arith -msse2
|
COMMON_FLAGS = -g @DEFS@ -DPATH_PREFIX=@prefix@ -DLIB_DIR=@libdir@ -Wall -Wextra -Wpointer-arith -msse2
|
||||||
CFLAGS = @CFLAGS@ @X_CFLAGS@ $(COMMON_FLAGS)
|
CFLAGS = @CFLAGS@ @X_CFLAGS@ $(COMMON_FLAGS) -D_GNU_SOURCE
|
||||||
CPPFLAGS = @CPPFLAGS@
|
CPPFLAGS = @CPPFLAGS@ -D_GNU_SOURCE
|
||||||
CXXFLAGS = @CXXFLAGS@ $(COMMON_FLAGS)
|
CXXFLAGS = @CXXFLAGS@ $(COMMON_FLAGS) -D_GNU_SOURCE
|
||||||
NVCCFLAGS = @NVCCFLAGS@
|
NVCCFLAGS = @NVCCFLAGS@
|
||||||
LDFLAGS = @LDFLAGS@
|
LDFLAGS = @LDFLAGS@
|
||||||
LIBS += @LIBS@ @JACK_TRANS_LIB@ @MATHLIBS@ @COREAUDIO_LIB@ \
|
LIBS += @LIBS@ @JACK_TRANS_LIB@ @MATHLIBS@ @COREAUDIO_LIB@ \
|
||||||
|
|||||||
@@ -967,24 +967,30 @@ static void * reading_thread(void *args)
|
|||||||
perror("stat");
|
perror("stat");
|
||||||
goto next;
|
goto next;
|
||||||
}
|
}
|
||||||
FILE *file = fopen(name, "rb");
|
int fd = open(name, O_RDONLY|O_DIRECT);
|
||||||
if(!file) {
|
if(fd == -1) {
|
||||||
perror("fopen");
|
perror("open");
|
||||||
goto next;
|
goto next;
|
||||||
}
|
}
|
||||||
new_entry = malloc(sizeof(struct processed_entry));
|
new_entry = malloc(sizeof(struct processed_entry));
|
||||||
assert(new_entry != NULL);
|
assert(new_entry != NULL);
|
||||||
new_entry->data_len = sb.st_size;
|
new_entry->data_len = sb.st_size;
|
||||||
new_entry->data = malloc(new_entry->data_len);
|
posix_memalign((void **) &new_entry->data,
|
||||||
|
512, new_entry->data_len);
|
||||||
new_entry->next = NULL;
|
new_entry->next = NULL;
|
||||||
assert(new_entry->data != NULL);
|
assert(new_entry->data != NULL);
|
||||||
|
|
||||||
size_t res = fread(new_entry->data, new_entry->data_len, 1, file);
|
ssize_t bytes = 0;
|
||||||
fclose(file);
|
do {
|
||||||
if(res != 1) {
|
ssize_t res = read(fd, new_entry->data + bytes,
|
||||||
perror("fread");
|
new_entry->data_len - bytes);
|
||||||
goto next;
|
if (res <= 0) {
|
||||||
}
|
perror("read");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
bytes += res;
|
||||||
|
} while (bytes < new_entry->data_len);
|
||||||
|
close(fd);
|
||||||
|
|
||||||
pthread_mutex_lock(&s->lock);
|
pthread_mutex_lock(&s->lock);
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user