Add device/dummy

This commit is contained in:
Kamil Trzcinski 2022-04-10 16:15:13 +02:00
parent f6309fa3b3
commit c42262d649
8 changed files with 157 additions and 0 deletions

View File

@ -24,6 +24,7 @@ typedef struct buffer_s {
union {
struct buffer_v4l2_s *v4l2;
struct buffer_dummy_s *dummy;
};
// State

View File

@ -17,6 +17,7 @@ typedef struct buffer_list_s {
union {
struct buffer_list_v4l2_s *v4l2;
struct buffer_list_dummy_s *dummy;
};
unsigned fmt_width, fmt_height, fmt_format, fmt_bytesperline, fmt_interval_us;

View File

@ -40,6 +40,7 @@ typedef struct device_s {
union {
struct device_v4l2_s *v4l2;
struct device_dummy_s *dummy;
};
device_t *output_device;

30
device/dummy/buffer.c Normal file
View File

@ -0,0 +1,30 @@
#include "dummy.h"
#include "device/buffer.h"
#include <stdlib.h>
int dummy_buffer_open(buffer_t *buf)
{
buf->dummy = calloc(1, sizeof(buffer_dummy_t));
return 0;
}
void dummy_buffer_close(buffer_t *buf)
{
free(buf->dummy);
}
int dummy_buffer_enqueue(buffer_t *buf, const char *who)
{
return -1;
}
int dummy_buffer_list_dequeue(buffer_list_t *buf_list, buffer_t **bufp)
{
return -1;
}
int dummy_buffer_list_pollfd(buffer_list_t *buf_list, struct pollfd *pollfd, bool can_dequeue)
{
return -1;
}

View File

@ -0,0 +1,25 @@
#include "dummy.h"
#include "device/buffer_list.h"
#include <stdlib.h>
int dummy_buffer_list_open(buffer_list_t *buf_list, unsigned width, unsigned height, unsigned format, unsigned bytesperline)
{
buf_list->dummy = calloc(1, sizeof(buffer_list_dummy_t));
return 0;
}
void dummy_buffer_list_close(buffer_list_t *buf_list)
{
free(buf_list->dummy);
}
int dummy_buffer_list_set_buffers(buffer_list_t *buf_list, int nbufs)
{
return -1;
}
int dummy_buffer_list_set_stream(buffer_list_t *buf_list, bool do_on)
{
return -1;
}

35
device/dummy/device.c Normal file
View File

@ -0,0 +1,35 @@
#include "dummy.h"
#include "device/device.h"
#include <stdlib.h>
int dummy_device_open(device_t *dev)
{
dev->dummy = calloc(1, sizeof(device_dummy_t));
return 0;
}
void dummy_device_close(device_t *dev)
{
free(dev->dummy);
}
int dummy_device_set_decoder_start(device_t *dev, bool do_on)
{
return -1;
}
int dummy_device_video_force_key(device_t *dev)
{
return -1;
}
int dummy_device_set_fps(device_t *dev, int desired_fps)
{
return -1;
}
int dummy_device_set_option(device_t *dev, const char *key, const char *value)
{
return -1;
}

28
device/dummy/dummy.c Normal file
View File

@ -0,0 +1,28 @@
#include "dummy.h"
#include "device/device.h"
device_hw_t dummy_device_hw = {
.device_open = dummy_device_open,
.device_close = dummy_device_close,
.device_set_decoder_start = dummy_device_set_decoder_start,
.device_video_force_key = dummy_device_video_force_key,
.device_set_fps = dummy_device_set_fps,
.device_set_option = dummy_device_set_option,
.buffer_open = dummy_buffer_open,
.buffer_close = dummy_buffer_close,
.buffer_enqueue = dummy_buffer_enqueue,
.buffer_list_dequeue = dummy_buffer_list_dequeue,
.buffer_list_pollfd = dummy_buffer_list_pollfd,
.buffer_list_open = dummy_buffer_list_open,
.buffer_list_close = dummy_buffer_list_close,
.buffer_list_set_buffers = dummy_buffer_list_set_buffers,
.buffer_list_set_stream = dummy_buffer_list_set_stream
};
device_t *device_dummy_open(const char *name, const char *path)
{
return device_open(name, path, &dummy_device_hw);
}

36
device/dummy/dummy.h Normal file
View File

@ -0,0 +1,36 @@
#pragma once
#include <stdbool.h>
#include <stdint.h>
typedef struct buffer_s buffer_t;
typedef struct buffer_list_s buffer_list_t;
typedef struct device_s device_t;
struct pollfd;
typedef struct device_dummy_s {
} device_dummy_t;
typedef struct buffer_list_dummy_s {
} buffer_list_dummy_t;
typedef struct buffer_dummy_s {
} buffer_dummy_t;
int dummy_device_open(device_t *dev);
void dummy_device_close(device_t *dev);
int dummy_device_set_decoder_start(device_t *dev, bool do_on);
int dummy_device_video_force_key(device_t *dev);
int dummy_device_set_fps(device_t *dev, int desired_fps);
int dummy_device_set_option(device_t *dev, const char *key, const char *value);
int dummy_buffer_open(buffer_t *buf);
void dummy_buffer_close(buffer_t *buf);
int dummy_buffer_enqueue(buffer_t *buf, const char *who);
int dummy_buffer_list_dequeue(buffer_list_t *buf_list, buffer_t **bufp);
int dummy_buffer_list_pollfd(buffer_list_t *buf_list, struct pollfd *pollfd, bool can_dequeue);
int dummy_buffer_list_open(buffer_list_t *buf_list, unsigned width, unsigned height, unsigned format, unsigned bytesperline);
void dummy_buffer_list_close(buffer_list_t *buf_list);
int dummy_buffer_list_set_buffers(buffer_list_t *buf_list, int nbufs);
int dummy_buffer_list_set_stream(buffer_list_t *buf_list, bool do_on);