int main(int argc, const char **argv) { int i; if (argc < 2) { do_usage(argc, argv); exit(1); } for (i = 0; cmds[i].name; i++) { if (strcasecmp(cmds[i].name, argv[1]) == 0) { int rc; if (cmds[i].flags & CONNECT) { do_connect(); } rc = cmds[i].pfn(argc, argv); if (cmds[i].flags & CONNECT) mmal_vc_deinit(); return rc; } } fprintf(stderr,"unknown command %s\n", argv[1]); return -1; }
int mmal_vc_drm_get_time(unsigned int * time) { MMAL_STATUS_T status; mmal_worker_msg_header req; mmal_worker_drm_get_time_reply reply; size_t len = sizeof(reply); status = mmal_vc_init(); if (status != MMAL_SUCCESS) return status; status = mmal_vc_sendwait_message(mmal_vc_get_client(), &req, sizeof(req), MMAL_WORKER_DRM_GET_TIME, &reply, &len, MMAL_FALSE); *time = reply.time; mmal_vc_deinit(); return status; }
static av_cold int ffmmal_close_decoder(AVCodecContext *avctx) { MMALDecodeContext *ctx = avctx->priv_data; if (ctx->decoder) ffmmal_stop_decoder(avctx); mmal_component_destroy(ctx->decoder); ctx->decoder = NULL; mmal_queue_destroy(ctx->queue_decoded_frames); mmal_pool_destroy(ctx->pool_in); ffmmal_poolref_unref(ctx->pool_out); mmal_vc_deinit(); return 0; }
int mmal_vc_drm_get_lhs32(unsigned char * into) { MMAL_STATUS_T status; mmal_worker_msg_header req; mmal_worker_drm_get_lhs32_reply reply; size_t len = sizeof(reply); status = mmal_vc_init(); if (status != MMAL_SUCCESS) return status; status = mmal_vc_sendwait_message(mmal_vc_get_client(), &req, sizeof(req), MMAL_WORKER_DRM_GET_LHS32, &reply, &len, MMAL_FALSE); memcpy(into, reply.secret, 32); mmal_vc_deinit(); return status; }