Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- do {
- recvMsgSize = sock.recvFrom(buffer, BUF_LEN, sourceAddress, sourcePort);
- //std::cout << recvMsgSize << 'n';
- } while (recvMsgSize > sizeof(int));
- int total_pack = ((int * )buffer)[0];
- cout << "exp pack len" << total_pack << endl;
- char * longbuf = new char[PACK_SIZE * total_pack];
- for (int i = 0; i < total_pack; i++) {
- recvMsgSize = sock.recvFrom(buffer, BUF_LEN, sourceAddress, sourcePort);
- if (recvMsgSize != PACK_SIZE) {
- cerr << "Received unexpected size pack:" << recvMsgSize << endl;
- continue;
- }
- memcpy( & longbuf[i * PACK_SIZE], buffer, PACK_SIZE);
- }
- cout << "Received packet from " << sourceAddress << ":" << sourcePort << endl;
- Mat rawData = Mat(1, PACK_SIZE * total_pack, CV_8UC1, longbuf);
- Mat frame = imdecode(rawData, CV_LOAD_IMAGE_COLOR);
- if (frame.size().width == 0) {
- cerr << "decode failure!" << endl;
- continue;
- }
- imshow("recv", frame);
- free(longbuf);
- while(cap.isOpened()):
- ret_val, img = cap.read()
- img = cv2.flip(img, 1)
- resized_image = cv2.resize(img, (256, 144))
- #compress image
- r, buf = cv2.imencode('.jpg', resized_image,[int(cv2.IMWRITE_JPEG_QUALITY), 80])
- #create byte array
- byte_array_buffer = bytearray(buf) + "e"
- #calc amount packets
- total_packages = 1 + (len(byte_array_buffer) - 1) / PACK_SIZE;
- #send packet count
- print bytearray(total_packages)
- #packer = struct.Struct('I')
- #packed_data = packer.pack(*[total_packages])
- sent = sock.sendto( bytearray(total_packages))
- data = pickle.dumps(buf) ### new code
- sock.send(struct.pack("L", len(data)) + data,(UDP_IP, UDP_PORT))
- if cv2.waitKey(1) == 27:
- break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement