-
Notifications
You must be signed in to change notification settings - Fork 0
/
capture.h
64 lines (51 loc) · 1.7 KB
/
capture.h
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/* --*- c -*--
* Copyright (C) 2014 Enrico Scholz <[email protected]>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 3 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef H_TQ_TVW_CAPTURE_H
#define H_TQ_TVW_CAPTURE_H
#include <unistd.h>
#include <stdbool.h>
enum media_stream_fmt {
OUTPUT_FMT_GST0,
OUTPUT_FMT_GST1,
OUTPUT_FMT_RAW,
};
struct media_info {
int fd_ipu_dev;
int fd_video_dev;
int fd_sensor_dev;
char const *name_ipu_entity;
char const *name_video_entity;
char const *name_sensor_entity;
unsigned int width;
unsigned int height;
unsigned int bpp;
unsigned int stride;
unsigned int size;
unsigned int rate;
unsigned int cam_rate;
unsigned int fourcc;
char const *gst_cap;
enum media_stream_fmt out_fmt;
pid_t pid_filter;
};
typedef int (*filter_run_fn)(struct media_info const *info, int out_fd,
int in_fd);
int filter_png(struct media_info const *info, int out_fd, int in_fd);
int filter_jpg(struct media_info const *info, int out_fd, int in_fd);
bool read_all(int fd, void *dst, size_t l, bool *eof);
void convert_yuv422_rgb888(void *dst, void const *src, int bpp,
unsigned int width, unsigned int height);
#endif /* H_TQ_TVW_CAPTURE_H */