From 544f43a7e06c9b0c63df8d3994318ea72107f64e Mon Sep 17 00:00:00 2001
From: Uros Majstorovic <majstor@majstor.org>
Date: Fri, 19 Jan 2018 19:08:32 +0100
Subject: pine64 vid test update

---
 code/test/vid/cap.c    | 12 +++++++-----
 code/test/vid/cap.sh   |  2 +-
 code/test/vid/client.c | 19 ++++++++++++++-----
 code/test/vid/server.c | 19 ++++++++++++++++---
 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);
-- 
cgit v1.2.3