File: omx.h

package info (click to toggle)
baresip 1.1.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 4,328 kB
  • sloc: ansic: 53,606; cpp: 2,268; makefile: 332; objc: 320; python: 259; sh: 40; xml: 19
file content (46 lines) | stat: -rw-r--r-- 1,033 bytes parent folder | download
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
/**
 * @file omx.h     Raspberry Pi VideoCoreIV OpenMAX interface
 *
 * Copyright (C) 2016 - 2017 Alfred E. Heggestad
 * Copyright (C) 2016 - 2017 Jonathan Sieber
 */

#ifdef RASPBERRY_PI
#include <IL/OMX_Core.h>
#include <IL/OMX_Video.h>
#include <IL/OMX_Broadcom.h>
#else
#include <OMX_Core.h>
#include <OMX_Component.h>
#include <OMX_Video.h>

#undef OMX_VERSION
#define OMX_VERSION 0x01010101
#define OMX_ERROR_NONE 0
#endif

#include <pthread.h>
#include <stdint.h>
#include <string.h>

/* Needed for usleep to appear */
#define _BSD_SOURCE
#include <unistd.h>

struct omx_state {
	OMX_HANDLETYPE video_render;
	OMX_BUFFERHEADERTYPE** buffers;
	int num_buffers;
	int current_buffer;
};

int omx_init(struct omx_state* st);
void omx_deinit(struct omx_state* st);

int omx_display_input_buffer(struct omx_state* st,
	void** pbuf, uint32_t* plen);
int omx_display_flush_buffer(struct omx_state* st);

int omx_display_enable(struct omx_state *st,
	int width, int height, int stride);
void omx_display_disable(struct omx_state *st);