diff options
Diffstat (limited to 'code')
-rw-r--r-- | code/test/vid/cap.c | 12 | ||||
-rwxr-xr-x | code/test/vid/cap.sh | 2 | ||||
-rw-r--r-- | code/test/vid/client.c | 19 | ||||
-rw-r--r-- | code/test/vid/server.c | 19 | ||||
-rw-r--r-- | code/test/vid/server.h | 2 |
5 files changed, 39 insertions, 15 deletions
diff --git a/code/test/vid/cap.c b/code/test/vid/cap.c index f210bf3..e37c28f 100644 --- a/code/test/vid/cap.c +++ b/code/test/vid/cap.c @@ -486,10 +486,11 @@ int main(int argc, char *argv[]) int kframe_interval; vpx_codec_er_flags_t err_resilient; char *address; - char *key_file; + char *my_key; + char *vcs_key; - if (argc != 13) { - CAP_ERROR_RET("./cap <width> <height> <buffers [4,8]> <video mode [0,1]> <exposure [-4,4]> <hflip [0,1]> <vflip [0,1]> <kframe interval> <bitrate> <err resilient> <address> <key file>") + if (argc != 14) { + CAP_ERROR_RET("./cap <width> <height> <buffers [4,8]> <video mode [0,1]> <exposure [-4,4]> <hflip [0,1]> <vflip [0,1]> <kframe interval> <bitrate> <err resilient> <address> <my key> <vcs pub key>") } width = (int) atoi(argv[1]); height = (int) atoi(argv[2]); @@ -509,7 +510,8 @@ int main(int argc, char *argv[]) target_bitrate = (int) atoi(argv[9]); err_resilient = strtoul(argv[10], NULL, 0); address = argv[11]; - key_file = argv[12]; + my_key = argv[12]; + vcs_key = argv[13]; fprintf(stderr, "---- cap parameters -----\nwidth: %d\nheight: %d\nv4l2 buffers: %d\nexposure: %d\nhflip: %d\nvflip: %d\nMode: %s\n", width, height, n_buffers, sensor_exposure, sensor_hflip, sensor_vflip, sensor_video_mode ? "V4L2_MODE_VIDEO" : "V4L2_MODE_IMAGE"); @@ -545,7 +547,7 @@ int main(int argc, char *argv[]) vpx_image_t raw; vpx_open(codec_arg, width, height, _fps, target_bitrate, err_resilient, &codec, &raw); - init_server(address, key_file); + init_server(address, my_key, vcs_key); while (1) { if (!conn_is_open()) { diff --git a/code/test/vid/cap.sh b/code/test/vid/cap.sh index 9f306ec..bfd933e 100755 --- a/code/test/vid/cap.sh +++ b/code/test/vid/cap.sh @@ -1,3 +1,3 @@ #!/bin/sh -./cap 640 480 8 1 -999 -1 -1 25 256 1 0.0.0.0:3000 ../../keys/pine64-home.priv +./cap 640 480 8 1 -999 -1 -1 25 256 1 0.0.0.0:3000 ../../keys/pine64-home.priv ../../keys/majstor.org.pub diff --git a/code/test/vid/client.c b/code/test/vid/client.c index 692efd9..7dd8c26 100644 --- a/code/test/vid/client.c +++ b/code/test/vid/client.c @@ -24,6 +24,9 @@ ECPConnHandler handler_c; ECPNode node; ECPConnection conn; +ECPVConnection vconn; +ECPNode vconn_node; + vpx_codec_ctx_t codec; ECPRBRecv rbuf_recv; @@ -33,7 +36,7 @@ unsigned char frag_buffer[FRAG_BUF_SIZE]; SDLCanvas sdl_canvas; -ssize_t handle_msg(ECPConnection *conn, ecp_seq_t sq, unsigned char t, unsigned char *f, ssize_t sz) { +ssize_t handle_msg(ECPConnection *conn, ecp_seq_t sq, unsigned char t, unsigned char *f, ssize_t sz, ECP2Buffer *b) { vpx_codec_iter_t iter = NULL; vpx_image_t *img = NULL; @@ -52,14 +55,14 @@ ssize_t handle_msg(ECPConnection *conn, ecp_seq_t sq, unsigned char t, unsigned } static void usage(char *arg) { - fprintf(stderr, "Usage: %s <node.pub>\n", arg); + fprintf(stderr, "Usage: %s <node.pub> <vcs.pub>\n", arg); exit(1); } int main(int argc, char *argv[]) { int rv; - if (argc != 2) usage(argv[0]); + if (argc != 3) usage(argv[0]); rv = ecp_init(&ctx_c); fprintf(stderr, "ecp_init RV:%d\n", rv); @@ -82,6 +85,9 @@ int main(int argc, char *argv[]) { if (!rv) rv = ecp_util_node_load(&ctx_c, &node, argv[1]); fprintf(stderr, "ecp_util_node_load RV:%d\n", rv); + if (!rv) rv = ecp_util_node_load(&ctx, &vconn_node, argv[2]); + printf("ecp_util_node_load RV:%d\n", rv); + if (!rv) rv = ecp_conn_create(&conn, &sock_c, CTYPE_TEST); fprintf(stderr, "ecp_conn_create RV:%d\n", rv); @@ -104,8 +110,11 @@ int main(int argc, char *argv[]) { sdl_open(&sdl_canvas, 640, 480); - if (!rv) rv = ecp_conn_open(&conn, &node); - fprintf(stderr, "ecp_conn_open RV:%d\n", rv); + // if (!rv) rv = ecp_conn_open(&conn, &node); + // fprintf(stderr, "ecp_conn_open RV:%d\n", rv); + + if (!rv) rv = ecp_vconn_open(&conn, &node, &vconn, &vconn_node, 1); + printf("ecp_vconn_open RV:%d\n", rv); sdl_loop(); sdl_close(&sdl_canvas); diff --git a/code/test/vid/server.c b/code/test/vid/server.c index 2712dee..8753a7d 100644 --- a/code/test/vid/server.c +++ b/code/test/vid/server.c @@ -11,12 +11,15 @@ static ECPSocket sock_s; static ECPDHKey key_perma_s; static ECPConnHandler handler_s; -static ECPConnection *conn; +static ECPConnection *conn_in; static int is_open = 0; #define CTYPE_TEST 0 #define MTYPE_MSG 8 +ECPNode node; +ECPConnection conn; + static ssize_t handle_open(ECPConnection *c, ecp_seq_t sq, unsigned char t, unsigned char *m, ssize_t sz, ECP2Buffer *b) { ssize_t rv = ecp_conn_handle_open(c, sq, t, m, sz, b); if (rv < 0) return rv; @@ -29,14 +32,14 @@ static ssize_t handle_open(ECPConnection *c, ecp_seq_t sq, unsigned char t, unsi } ssize_t send_frame(unsigned char *buffer, size_t size, ecp_pts_t pts) { - return ecp_send(conn, MTYPE_MSG, buffer, size); + return ecp_send(conn_in, MTYPE_MSG, buffer, size); } int conn_is_open(void) { return is_open; } -int init_server(char *address, char *key) { +int init_server(char *address, char *my_key, char *vcs_key) { int rv; rv = ecp_init(&ctx_s); @@ -59,6 +62,16 @@ int init_server(char *address, char *key) { if (!rv) rv = ecp_start_receiver(&sock_s); fprintf(stderr, "ecp_start_receiver RV:%d\n", rv); + + if (!rv) rv = ecp_util_node_load(&ctx, &node, vcs_key); + printf("ecp_util_node_load RV:%d\n", rv); + + if (!rv) rv = ecp_conn_create(&conn, &sock, ECP_CTYPE_VLINK); + printf("ecp_conn_create RV:%d\n", rv); + + if (!rv) rv = ecp_conn_open(&conn, &node); + printf("ecp_conn_open RV:%d\n", rv); + return rv; } diff --git a/code/test/vid/server.h b/code/test/vid/server.h index 3f9c57e..a4024fd 100644 --- a/code/test/vid/server.h +++ b/code/test/vid/server.h @@ -2,4 +2,4 @@ ssize_t send_frame(unsigned char *buffer, size_t size, ecp_pts_t pts); int conn_is_open(void); -int init_server(char *address, char *key);
\ No newline at end of file +int init_server(char *address, char *my_key, char *vcs_key); |