diff options
author | Jean-Baptiste Maillet <jean-baptiste.maillet@parrot.com> | 2014-12-08 13:20:02 +0100 |
---|---|---|
committer | Jean-Baptiste Maillet <jean-baptiste.maillet@parrot.com> | 2014-12-08 13:20:02 +0100 |
commit | 1442d9715e59aa641656922a03f0c19fc2e2e04d (patch) | |
tree | 8145d749edc5cbc1a3056c5ac5faf678797e8a56 /examples/live_stream | |
parent | 4e20fe6ad03ff3ba1695a29243c2998d83db73a6 (diff) | |
download | Open-AVB-1442d9715e59aa641656922a03f0c19fc2e2e04d.tar.gz |
MRP client code talker side: except for send_mrp_msg(), fincs return 0 or -1
Callers of send_mrp_msg() are able to ckeck the message length returned.
Callers of higher level functions get 0 for sucess, -1 for failure.
Diffstat (limited to 'examples/live_stream')
-rw-r--r-- | examples/live_stream/talker.c | 37 |
1 files changed, 31 insertions, 6 deletions
diff --git a/examples/live_stream/talker.c b/examples/live_stream/talker.c index ab302a11..25ee5dd8 100644 --- a/examples/live_stream/talker.c +++ b/examples/live_stream/talker.c @@ -152,7 +152,12 @@ int main(int argc, char *argv[]) } #ifdef USE_MRPD - mrp_monitor(); + err = mrp_monitor(); + if (err) { + printf("failed creating MRP monitor thread\n"); + return EXIT_FAILURE; + } + domain_a_valid = 1; domain_class_a_id = MSRP_SR_CLASS_A; domain_class_a_priority = MSRP_SR_CLASS_A_PRIO; @@ -160,7 +165,11 @@ int main(int argc, char *argv[]) fprintf(stderr, "detected domain Class A PRIO=%d VID=%04x...\n", domain_class_a_priority, domain_class_a_vid); - mrp_register_domain(&domain_class_a_id, &domain_class_a_priority, &domain_class_a_vid); + err = mrp_register_domain(&domain_class_a_id, &domain_class_a_priority, &domain_class_a_vid); + if (err) { + printf("mrp_register_domain failed\n"); + return EXIT_FAILURE; + } domain_a_valid = 1; domain_class_a_vid = 2; @@ -240,10 +249,20 @@ int main(int argc, char *argv[]) * IPG is scaled to the Class (A) observation interval of packets per 125 usec */ fprintf(stderr, "advertising stream ...\n"); - mrp_advertise_stream(glob_stream_id, glob_dest_addr, domain_class_a_vid, packet_size - 16, - PACKET_IPG / 125000, domain_class_a_priority, 3900); + err = mrp_advertise_stream(glob_stream_id, glob_dest_addr, domain_class_a_vid, packet_size - 16, + PACKET_IPG / 125000, domain_class_a_priority, 3900); + if (err) { + printf("mrp_advertise_stream failed\n"); + return EXIT_FAILURE; + } + fprintf(stderr, "awaiting a listener ...\n"); - mrp_await_listener(glob_stream_id); + err = mrp_await_listener(glob_stream_id); + if (err) { + printf("mrp_await_listener failed\n"); + return EXIT_FAILURE; + } + #endif memset(&sched, 0 , sizeof (sched)); @@ -312,13 +331,19 @@ cleanup: halt_tx = 1; sleep(1); #ifdef USE_MRPD - mrp_unadvertise_stream(glob_stream_id, glob_dest_addr, domain_class_a_vid, packet_size - 16, + rc = mrp_unadvertise_stream(glob_stream_id, glob_dest_addr, domain_class_a_vid, packet_size - 16, PACKET_IPG / 125000, domain_class_a_priority, 3900); + if (rc) { + printf("mrp_unadvertise_stream failed\n"); + return EXIT_FAILURE; + } #endif /* disable Qav */ igb_set_class_bandwidth(&igb_dev, 0, 0, 0, 0); #ifdef USE_MRPD err = mrp_disconnect(); + if (err) + printf("mrp_disconnect failed\n"); #endif igb_dma_free_page(&igb_dev, &a_page); |