私はcuvidCreateVideoSource
メソッドを使用することはできませんが、代わりにcuvidParseVideoData
を呼び出して、データの各フレームを直接cudaビデオパーサーに送ることができます。ここで
は、ファイルから1つのフレームを読み取り、CUDAパーサにそれを供給する例を示します。このファイルは、各フレームのサイズをファイルに書き込んだ後、フレームデータを書き込んで作成しました。ファイルはソケットから読み取ることで簡単に置き換えることができます。
unsigned int size = 0u;
fread(&size, sizeof(unsigned char), sizeof(unsigned int), _file);
unsigned char *buf = new unsigned char[size];
fread(buf, sizeof(unsigned char), size, _file);
CUVIDSOURCEDATAPACKET packet = {};
packet.payload_size = size;
packet.payload = buf;
cuvidParseVideoData(pCudaParser, &packet);
delete [] buf;
ソケットストリームからフレームとフレームサイズをどのように抽出しますか? –
ソケットデータの送受信に使用しているAPIを参照してください。 Cuda Videoとはまったく関係がありません。ソケットを使ってデータを送受信するだけです。 – pauld