Esempio n. 1
0
status_e UVCVisionCam::releaseBuffers(VisionCamPort_e port __attribute__((unused)))
{
    if (v4l2_free(m_dev))
        return STATUS_SUCCESS;
    else
        return STATUS_FAILURE;
}
Esempio n. 2
0
void vid_free(vid_t vid)
{
    struct vid *v = vid;
    v4l2_stop_capture(v->cam);
    fbd_free(v->fbd);
    if (v->enc)
        jpg_enc_free(v->enc);
    if (v->dec)
        jpg_dec_free(v->dec);
    v4l2_free(v->cam);
    free(v);
}
Esempio n. 3
0
int main(int argc, char *argv[])
{
    app_t a = app_create(0);
    
    v4l2_dev_t v = v4l2_create(a, "/dev/video2", 0, 0);
    v4l2_set_img_proc(v, img_proc, v);
    v4l2_start_capture(v);

    app_exec(a);

    v4l2_stop_capture(v);
    v4l2_free(v);

    app_free(a);

    return 0;
}
Esempio n. 4
0
int main(int argc, char *argv[])
{
    app_t a = app_create(0);
    jpg_dec_t d = jpg_dec_create();

    v4l2_dev_t v = v4l2_create(a, NULL, 0, 0);
    v4l2_set_img_proc(v, img_proc, d);
    v4l2_start_capture(v);

    app_exec(a);

    v4l2_stop_capture(v);
    v4l2_free(v);
    jpg_dec_free(d);

    app_free(a);

    return 0;
}
Esempio n. 5
0
vid_t vid_create(struct wcamsrv *ws) 
{
    struct v4l2_fmtdesc     fmt;
    struct vid *v = calloc(1, sizeof(struct vid));
    if (!v) {
		perror("vid_create");
		return NULL;
	}

    v->srv = ws;
    v->cam = v4l2_create(v->srv->app, cfg_get_camdev(v->srv->cfg), 
                                      cfg_get_cam_fmt_nr(v->srv->cfg),
                                      cfg_get_cam_frm_nr(v->srv->cfg));
    if (v->cam == NULL)
        goto err_mem;
    
	if (pthread_mutex_init(&v->tran_frm_mutex, NULL)) {
		perror("vid_create: pthread_mutex_init");
		goto err_v4l2;	
	}

    v4l2_get_fmt(v->cam, 0, &fmt);

    if (fmt.pixelformat == V4L2_PIX_FMT_JPEG) {
        v4l2_set_img_proc(v->cam, handle_jpeg_img_proc, v);  
        v->dec = jpg_dec_create();
        if (v->dec == NULL)
            goto err_mutex;
    } else if (fmt.pixelformat == V4L2_PIX_FMT_YUYV) {
        v4l2_set_img_proc(v->cam, handle_yuyv_img_proc, v);  
        v->enc = jpg_enc_create();
        if (v->enc == NULL)
            goto err_mutex;
    } else {
        pr_debug("Capture video format is %s, but now we just "
                 "support JPEG and YUYV.\n", 
                 fmt.description); 
        goto err_mutex;
    }

    v->fbd = fbd_create(0, cfg_get_fb_bpp(v->srv->cfg), 0, 0,
                           cfg_get_fb_width(v->srv->cfg),
                           cfg_get_fb_height(v->srv->cfg));
    if (v->fbd == NULL) 
        goto err_codec;

    if (v4l2_start_capture(v->cam))
        goto err_fbd;

    return v;
err_fbd:
    fbd_free(v->fbd);
err_codec: 
    if (v->enc)
        jpg_enc_free(v->enc);
    if (v->dec)
        jpg_dec_free(v->dec);
err_mutex:
    pthread_mutex_destroy(&v->tran_frm_mutex);
err_v4l2:
    v4l2_free(v->cam);
err_mem:
    free(v);
    return NULL;
}