Opencv を使用して Web カメラからビデオをキャプチャし、TCP 経由で送信しようとしています。さらに、AES を使用してビデオを暗号化したいと考えました。しかし、AES decrpt 関数を実行するたびに、ビデオは不安定になります。
opencv over tcp の例とAES の例を使用しています
この関数を実行するたびに:
img->imageData = aes_decrypt(&de, img->imageData, &imgsize);
ビデオが不安定になります。
関数を記述したコード セグメントを添付しました。
/* start receiving images*/
while(1)
{
/* get raw data */
for (i = 0; i < imgsize; i += bytes) {
if ((bytes = recv(sock, sockdata + i, imgsize - i, 0)) == -1) {
quit("recv failed", 1);
}
}
pthread_mutex_lock(&mutex);
for (i = 0, k = 0; i < img->height; i++) {
for (j = 0; j < img->width; j++) {
((uchar*)(img->imageData + i * img->widthStep))[j] = sockdata[k++];
}
}
img->imageData = aes_decrypt(&de, img->imageData, &imgsize);
is_data_ready = 1;
pthread_mutex_unlock(&mutex);
/* have we terminated yet? */
pthread_testcancel();
/* no, take a rest for a while */
usleep(1000);
}
これは私の最初の投稿です。私の拙い英語と投稿形式で申し訳ありません。