mirror of
https://github.com/pikvm/ustreamer.git
synced 2026-03-23 16:03:41 +00:00
refactoring
This commit is contained in:
@@ -27,7 +27,7 @@ static int _sem_timedwait_monotonic(sem_t *sem, long double timeout);
|
|||||||
static int _flock_timedwait_monotonic(int fd, long double timeout);
|
static int _flock_timedwait_monotonic(int fd, long double timeout);
|
||||||
|
|
||||||
|
|
||||||
memsink_s *memsink_open(const char *name, const char *prefix, bool server, mode_t mode, bool rm, unsigned timeout) {
|
memsink_s *memsink_init(const char *name, const char *prefix, bool server, mode_t mode, bool rm, unsigned timeout) {
|
||||||
memsink_s *memsink;
|
memsink_s *memsink;
|
||||||
A_CALLOC(memsink, 1);
|
A_CALLOC(memsink, 1);
|
||||||
memsink->name = name;
|
memsink->name = name;
|
||||||
@@ -91,11 +91,11 @@ memsink_s *memsink_open(const char *name, const char *prefix, bool server, mode_
|
|||||||
return memsink;
|
return memsink;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
memsink_close(memsink);
|
memsink_destroy(memsink);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void memsink_close(memsink_s *memsink) {
|
void memsink_destroy(memsink_s *memsink) {
|
||||||
if (memsink->sig_sem != SEM_FAILED) {
|
if (memsink->sig_sem != SEM_FAILED) {
|
||||||
if (sem_close(memsink->sig_sem) < 0) {
|
if (sem_close(memsink->sig_sem) < 0) {
|
||||||
LOG_PERROR("Can't close %s sink signal semaphore", memsink->name);
|
LOG_PERROR("Can't close %s sink signal semaphore", memsink->name);
|
||||||
|
|||||||
@@ -73,8 +73,8 @@ typedef struct {
|
|||||||
} memsink_s;
|
} memsink_s;
|
||||||
|
|
||||||
|
|
||||||
memsink_s *memsink_open(const char *name, const char *prefix, bool server, mode_t mode, bool rm, unsigned timeout);
|
memsink_s *memsink_init(const char *name, const char *prefix, bool server, mode_t mode, bool rm, unsigned timeout);
|
||||||
void memsink_close(memsink_s *memsink);
|
void memsink_destroy(memsink_s *memsink);
|
||||||
|
|
||||||
int memsink_server_put(memsink_s *memsink, const frame_s *frame);
|
int memsink_server_put(memsink_s *memsink, const frame_s *frame);
|
||||||
int memsink_client_get(memsink_s *memsink, frame_s *frame);
|
int memsink_client_get(memsink_s *memsink, frame_s *frame);
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ int main(void) {
|
|||||||
frame_s *src = frame_init("src");
|
frame_s *src = frame_init("src");
|
||||||
frame_s *dest = frame_init("dest");
|
frame_s *dest = frame_init("dest");
|
||||||
h264_encoder_s *encoder = h264_encoder_init();
|
h264_encoder_s *encoder = h264_encoder_init();
|
||||||
memsink_s *memsink = memsink_open("RAW", "test", false, 0, 0, (long double)encoder->fps / (long double)encoder->gop);
|
memsink_s *memsink = memsink_init("RAW", "test", false, 0, 0, (long double)encoder->fps / (long double)encoder->gop);
|
||||||
assert(memsink);
|
assert(memsink);
|
||||||
FILE *fp = fopen("test.h264", "wb");
|
FILE *fp = fopen("test.h264", "wb");
|
||||||
assert(fp);
|
assert(fp);
|
||||||
|
|||||||
@@ -230,7 +230,7 @@ options_s *options_init(unsigned argc, char *argv[]) {
|
|||||||
void options_destroy(options_s *options) {
|
void options_destroy(options_s *options) {
|
||||||
# ifdef WITH_MEMSINK
|
# ifdef WITH_MEMSINK
|
||||||
if (options->raw_sink) {
|
if (options->raw_sink) {
|
||||||
memsink_close(options->raw_sink);
|
memsink_destroy(options->raw_sink);
|
||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
if (options->blank) {
|
if (options->blank) {
|
||||||
@@ -458,7 +458,7 @@ int options_parse(options_s *options, device_s *dev, encoder_s *encoder, stream_
|
|||||||
|
|
||||||
# ifdef WITH_MEMSINK
|
# ifdef WITH_MEMSINK
|
||||||
if (raw_sink_name && raw_sink_name[0] != '\0') {
|
if (raw_sink_name && raw_sink_name[0] != '\0') {
|
||||||
options->raw_sink = memsink_open(
|
options->raw_sink = memsink_init(
|
||||||
"RAW",
|
"RAW",
|
||||||
raw_sink_name,
|
raw_sink_name,
|
||||||
true,
|
true,
|
||||||
|
|||||||
Reference in New Issue
Block a user