Media interface implementation

This commit is contained in:
Sergey Lapin
2021-03-27 21:52:03 +03:00
parent 7d1a9fe59b
commit 1050492058
5 changed files with 756 additions and 353 deletions

36
pinesrcbin.h Normal file
View File

@@ -0,0 +1,36 @@
#ifndef PINESRCBIN_H
#define PINESRCBIN_H
struct device_data;
typedef struct _GstPineSrcBin
{
GstBin parent;
GList *media_list;
struct device_data *media_if;
/* configuration for subclasses */
const gchar *media_klass; /* Audio/Video/... */
GstElementFlags flag; /* GST_ELEMENT_FLAG_{SINK/SOURCE} */
/* explicit pointers to stuff used */
GstPad *pad;
GstCaps *filter_caps;
gboolean sync;
/* < private > */
GstElement *kid;
GstElement *filter;
gboolean has_sync;
const gchar *type_klass; /* Source/Sink */
const gchar *media_klass_lc, *type_klass_lc; /* lower case versions */
const struct media_v2_entity *v4l2entity;
const struct media_v2_pad *v4l2pad;
const struct media_v2_interface *v4l2interface;
char devnode_path[260];
int fd;
gboolean autofocus;
/* Buffers till EOS */
int num_buffers;
} GstPineSrcBin;
#endif