aboutsummaryrefslogtreecommitdiff
path: root/include/capture/capture.h
blob: 9e23a2360251b193e712b457921df1eb9c67e058 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#ifndef GSR_CAPTURE_CAPTURE_H
#define GSR_CAPTURE_CAPTURE_H

#include <stdbool.h>

typedef struct AVFrame AVFrame;

typedef struct gsr_capture gsr_capture;

struct gsr_capture {
    int (*start)(gsr_capture *cap);
    void (*stop)(gsr_capture *cap);
    int (*capture)(gsr_capture *cap, AVFrame *frame);
    void (*destroy)(gsr_capture *cap);

    void *priv;
};

int gsr_capture_start(gsr_capture *cap);
void gsr_capture_stop(gsr_capture *cap);
int gsr_capture_capture(gsr_capture *cap, AVFrame *frame);
/* Calls |gsr_capture_stop| as well */
void gsr_capture_destroy(gsr_capture *cap);

#endif /* GSR_CAPTURE_CAPTURE_H */