Paparazzi UAS  v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
cv.c File Reference

Computer vision framework for onboard processing. More...

#include <stdlib.h>
#include <stdio.h>
#include "cv.h"
#include "rt_priority.h"
+ Include dependency graph for cv.c:

Go to the source code of this file.

Functions

void cv_attach_listener (struct video_config_t *device, struct video_listener *new_listener)
 
int8_t cv_async_function (struct cv_async *async, struct image_t *img)
 
void * cv_async_thread (void *args)
 
static uint32_t timeval_diff (struct timeval *A, struct timeval *B)
 
struct video_listenercv_add_to_device (struct video_config_t *device, cv_function func, uint16_t fps, uint8_t id)
 
struct video_listenercv_add_to_device_async (struct video_config_t *device, cv_function func, int nice_level, uint16_t fps, uint8_t id)
 
void cv_run_device (struct video_config_t *device, struct image_t *img)
 

Detailed Description

Computer vision framework for onboard processing.

Definition in file cv.c.

Function Documentation

◆ cv_add_to_device()

◆ cv_add_to_device_async()

struct video_listener* cv_add_to_device_async ( struct video_config_t device,
cv_function  func,
int  nice_level,
uint16_t  fps,
uint8_t  id 
)

Definition at line 83 of file cv.c.

References video_listener::async, image_t::buf, image_t::buf_size, cv_add_to_device(), cv_async_thread(), video_listener::func, cv_async::img_available, cv_async::img_copy, cv_async::img_mutex, listener, cv_async::thread_id, and cv_async::thread_priority.

Referenced by bebop_ae_awb_init(), and viewvideo_init().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ cv_async_function()

int8_t cv_async_function ( struct cv_async async,
struct image_t img 
)

Definition at line 112 of file cv.c.

References video_listener::async, image_t::buf, image_t::buf_size, image_t::h, image_copy(), image_create(), image_free(), cv_async::img_available, cv_async::img_copy, cv_async::img_mutex, cv_async::img_processed, image_t::type, and image_t::w.

Referenced by cv_run_device().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ cv_async_thread()

void * cv_async_thread ( void *  args)

Definition at line 145 of file cv.c.

References video_listener::async, video_listener::func, video_listener::id, cv_async::img_available, cv_async::img_copy, cv_async::img_mutex, cv_async::img_processed, listener, set_nice_level(), cv_async::thread_priority, and cv_async::thread_running.

Referenced by cv_add_to_device_async().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ cv_attach_listener()

void cv_attach_listener ( struct video_config_t device,
struct video_listener new_listener 
)

◆ cv_run_device()

void cv_run_device ( struct video_config_t device,
struct image_t img 
)

Definition at line 178 of file cv.c.

References video_listener::active, video_listener::async, cv_async_function(), video_config_t::cv_listener, video_listener::func, video_listener::id, listener, video_listener::maximum_fps, video_listener::next, timeval_diff(), video_listener::ts, and image_t::ts.

Referenced by video_thread_function().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ timeval_diff()

static uint32_t timeval_diff ( struct timeval *  A,
struct timeval *  B 
)
inlinestatic

Definition at line 40 of file cv.c.

References A, and B.

Referenced by cv_run_device().

+ Here is the caller graph for this function: