28 #ifndef MMAL_VC_MSGS_H
29 #define MMAL_VC_MSGS_H
36 #include "interface/vcos/vcos.h"
40 #define MMAL_CONTROL_FOURCC() VCHIQ_MAKE_FOURCC('m','m','a','l')
43 #define WORKER_VER_MAJOR 16
44 #define WORKER_VER_MINIMUM 10
47 #define WORKER_VER_MINOR 1
48 #ifndef WORKER_VER_MINIMUM
51 #define VIDEOCORE_PREFIX "vc"
53 #define MMAL_MAX_PORTS 8
55 #define MMAL_WORKER_MAX_MSG_LEN 512
56 #define MMAL_VC_CORE_STATS_NAME_MAX 32
61 #define MMAL_WORKER_MSG_LEN 28
66 #define MMAL_FORMAT_EXTRADATA_MAX_SIZE 128
70 #define MMAL_VC_SHORT_DATA 128
79 MMAL_WORKER_SERVICE_CLOSED,
80 MMAL_WORKER_GET_VERSION,
81 MMAL_WORKER_COMPONENT_CREATE,
82 MMAL_WORKER_COMPONENT_DESTROY,
83 MMAL_WORKER_COMPONENT_ENABLE,
84 MMAL_WORKER_COMPONENT_DISABLE,
85 MMAL_WORKER_PORT_INFO_GET,
86 MMAL_WORKER_PORT_INFO_SET,
87 MMAL_WORKER_PORT_ACTION,
88 MMAL_WORKER_BUFFER_FROM_HOST,
89 MMAL_WORKER_BUFFER_TO_HOST,
90 MMAL_WORKER_GET_STATS,
91 MMAL_WORKER_PORT_PARAMETER_SET,
92 MMAL_WORKER_PORT_PARAMETER_GET,
93 MMAL_WORKER_EVENT_TO_HOST,
94 MMAL_WORKER_GET_CORE_STATS_FOR_PORT,
95 MMAL_WORKER_OPAQUE_ALLOCATOR,
97 MMAL_WORKER_CONSUME_MEM,
99 MMAL_WORKER_OPAQUE_ALLOCATOR_DESC,
100 MMAL_WORKER_DRM_GET_LHS32,
101 MMAL_WORKER_DRM_GET_TIME,
102 MMAL_WORKER_BUFFER_FROM_HOST_ZEROLEN,
103 MMAL_WORKER_PORT_FLUSH,
104 MMAL_WORKER_HOST_LOG,
115 struct MMAL_CONTROL_SERVICE_T *control_service;
118 struct MMAL_WAITER_T *waiter;
155 void *client_component;
167 uint32_t component_handle;
281 uint32_t component_handle;
282 uint32_t port_handle;
291 uint32_t component_handle;
292 uint32_t port_handle;
299 #define MMAL_WORKER_PORT_PARAMETER_SPACE 96
301 #define MMAL_WORKER_PORT_PARAMETER_SET_MAX \
302 (MMAL_WORKER_PORT_PARAMETER_SPACE*sizeof(uint32_t)+sizeof(MMAL_PARAMETER_HEADER_T))
304 #define MMAL_WORKER_PORT_PARAMETER_GET_MAX MMAL_WORKER_PORT_PARAMETER_SET_MAX
314 uint32_t space[MMAL_WORKER_PORT_PARAMETER_SPACE];
326 uint32_t space[MMAL_WORKER_PORT_PARAMETER_SPACE];
345 uint32_t space[MMAL_WORKER_PORT_PARAMETER_SPACE];
388 MMAL_BOOL_T is_zero_copy;
389 MMAL_BOOL_T has_reference;
403 #define MMAL_WORKER_EVENT_SPACE 256
434 MMAL_WORKER_OPAQUE_MEM_ALLOC,
435 MMAL_WORKER_OPAQUE_MEM_RELEASE,
436 MMAL_WORKER_OPAQUE_MEM_ACQUIRE,
437 MMAL_WORKER_OPAQUE_MEM_MAX = 0x7fffffff,
438 } MMAL_WORKER_OPAQUE_MEM_OP;
443 MMAL_WORKER_OPAQUE_MEM_OP op;
446 char description[32];
455 uint32_t component_index;
458 MMAL_CORE_STATS_DIR dir;
506 vcos_static_assert(
sizeof(
mmal_worker_lmk) <= MMAL_WORKER_MAX_MSG_LEN);
519 msg->buffer_header_type_specific = *header->
type;
531 *header->
type = msg->buffer_header_type_specific;
Definition: mmal_vc_msgs.h:247
struct MMAL_DRIVER_BUFFER_T drvbuf
Definition: mmal_vc_msgs.h:375
uint32_t component_handle
Definition: mmal_vc_msgs.h:203
Definition: mmal_vc_msgs.h:152
Definition: mmal_common.h:64
uint32_t component_handle
Definition: mmal_vc_msgs.h:333
Definition: mmal_vc_msgs.h:267
Definition: mmal_vc_msgs.h:340
#define MMAL_VC_SHORT_DATA
Definition: mmal_vc_msgs.h:70
uint32_t index
Definition: mmal_vc_msgs.h:231
MMAL_PARAMETER_HEADER_T param
Definition: mmal_vc_msgs.h:325
uint32_t input_num
Definition: mmal_vc_msgs.h:168
MMAL_PORT_TYPE_T port_type
Definition: mmal_vc_msgs.h:230
MMAL_PORT_TYPE_T port_type
Definition: mmal_vc_msgs.h:215
uint32_t clock_num
Definition: mmal_vc_msgs.h:170
uint32_t port_handle
Definition: mmal_vc_msgs.h:233
MMAL_WORKER_CMD_T
Definition: mmal_vc_msgs.h:77
Definition: mmal_vc_msgs.h:499
uint32_t component_handle
Definition: mmal_vc_msgs.h:214
Definition: mmal_vc_msgs.h:211
MMAL_PARAMETER_HEADER_T param
Definition: mmal_vc_msgs.h:313
Definition: mmal_vc_msgs.h:200
uint32_t alloc_size
Definition: mmal_buffer.h:80
uint32_t component_handle
Definition: mmal_vc_msgs.h:311
Definition: mmal_format.h:125
Definition: mmal_vc_msgs.h:462
#define MMAL_WORKER_EVENT_SPACE
Definition: mmal_vc_msgs.h:403
Definition: mmal_vc_msgs.h:176
Definition: mmal_vc_msgs.h:225
Definition: mmal_port.h:79
MMAL_PORT_TYPE_T
Definition: mmal_port.h:45
#define MMAL_VC_CORE_STATS_NAME_MAX
Definition: mmal_vc_msgs.h:56
Definition: mmal_vc_msgs.h:271
int32_t found
Definition: mmal_vc_msgs.h:232
Definition: mmal_vc_msgs.h:410
MMAL_PORT_TYPE_T port_type
Definition: mmal_vc_msgs.h:204
Definition: mmal_vc_msgs.h:163
#define MMAL_FORMAT_EXTRADATA_MAX_SIZE
Definition: mmal_vc_msgs.h:66
Definition: mmal_vc_client_priv.h:43
struct MMAL_DRIVER_BUFFER_T drvbuf_ref
Definition: mmal_vc_msgs.h:382
MMAL_STATS_RESULT_T
Definition: mmal_vc_api.h:140
Definition: mmal_vc_msgs.h:270
struct mmal_worker_buffer_from_host mmal_worker_buffer_from_host
MMAL_BUFFER_HEADER_TYPE_SPECIFIC_T * type
Definition: mmal_buffer.h:95
int64_t dts
Definition: mmal_buffer.h:90
MMAL_WORKER_PORT_ACTIONS
Definition: mmal_vc_msgs.h:264
uint32_t index
Definition: mmal_vc_msgs.h:216
Definition: mmal_vc_msgs.h:241
MMAL_PARAMETER_HEADER_T param
Definition: mmal_vc_msgs.h:335
Definition: mmal_component.h:48
Definition: mmal_vc_msgs.h:353
Definition: mmal_vc_msgs.h:482
uint32_t cmd
Definition: mmal_buffer.h:75
Definition: mmal_vc_msgs.h:255
Definition: mmal_vc_msgs.h:425
Definition: mmal_vc_msgs.h:471
Definition: mmal_vc_msgs.h:142
uint32_t length
Definition: mmal_buffer.h:81
uint32_t component_handle
Definition: mmal_vc_msgs.h:187
Definition: mmal_vc_msgs.h:330
uint32_t index
Definition: mmal_vc_msgs.h:205
Definition: mmal_parameters_common.h:86
Definition: mmal_vc_msgs.h:273
Definition: mmal_vc_msgs.h:308
struct MMAL_VC_CLIENT_BUFFER_CONTEXT_T * client_context
Definition: mmal_vc_msgs.h:360
Definition: mmal_vc_msgs.h:266
Definition: mmal_vc_msgs.h:368
Definition: mmal_format.h:96
Definition: mmal_vc_msgs.h:320
#define MMAL_WORKER_MSG_LEN
Definition: mmal_vc_msgs.h:61
uint32_t port_handle
Definition: mmal_vc_msgs.h:334
uint32_t offset
Definition: mmal_buffer.h:83
int64_t pts
Definition: mmal_buffer.h:88
MMAL_BUFFER_HEADER_T buffer_header
Definition: mmal_vc_msgs.h:385
uint32_t component_handle
Definition: mmal_vc_msgs.h:229
Definition: mmal_vc_msgs.h:272
Definition: mmal_vc_msgs.h:135
uint8_t * data
Definition: mmal_buffer.h:78
uint32_t port_handle
Definition: mmal_vc_msgs.h:312
struct mmal_worker_event_to_host mmal_worker_event_to_host
Definition: mmal_vc_msgs.h:491
uint32_t flags
Definition: mmal_buffer.h:85
MMAL_PARAMETER_HEADER_T param
Definition: mmal_vc_msgs.h:344
uint32_t component_handle
Definition: mmal_vc_msgs.h:195
Definition: mmal_buffer.h:69
uint32_t pid
Definition: mmal_vc_msgs.h:157
Definition: mmal_vc_msgs.h:268
uint32_t output_num
Definition: mmal_vc_msgs.h:169
uint32_t component_handle
Definition: mmal_vc_msgs.h:323
uint32_t port_handle
Definition: mmal_vc_msgs.h:357
uint32_t component_handle
Definition: mmal_vc_msgs.h:179
Definition: mmal_buffer.h:56
uint32_t port_num
Definition: mmal_component.h:78
Definition: mmal_vc_msgs.h:184
uint32_t port_handle
Definition: mmal_vc_msgs.h:324
uint32_t payload_in_message
Definition: mmal_vc_msgs.h:394
MMAL_STATUS_T
Definition: mmal_types.h:46
MMAL_STATUS_T status
Definition: mmal_vc_msgs.h:343
Definition: mmal_vc_msgs.h:452
Definition: mmal_vc_msgs.h:192
Definition: mmal_vc_api.h:68
uint32_t component_handle
Definition: mmal_vc_msgs.h:356
Definition: mmal_vc_msgs.h:269
Definition: mmal_vc_msgs.h:278
Definition: mmal_vc_msgs.h:440
MMAL_STATUS_T status
Definition: mmal_vc_msgs.h:228