我在PES解复用器中检测新的PES包,搜索packet_start_code_prefix(0x000001).当它发生时,我可以读取PES_packet_length,因此我可以从字节流中提取当前的PES包.但如果它是H.264视频流,那么PES_packet_length = 0.
在这种情况下如何提取PES包?0x000001也可能出现在H.264 nal单位字节流中,因此我不能使用此前缀来查找下一个PES数据包.
我注意到在每个H.264 PES包中,PES包中的最后一个单元是填充数据(nal_unit_type = 12).我是否需要使用此事实来检测当前PES数据包的结束?
我正在尝试创建2D纹理对象4x4 uint8_t。这是代码:
__global__ void kernel(cudaTextureObject_t tex)
{
int x = threadIdx.x;
int y = threadIdx.y;
uint8_t val = tex2D<uint8_t>(tex, x, y);
printf("%d, ", val);
return;
}
int main(int argc, char **argv)
{
cudaTextureObject_t tex;
uint8_t dataIn[16] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
uint8_t* dataDev = 0;
cudaMalloc((void**)&dataDev, 16);
struct cudaResourceDesc resDesc;
memset(&resDesc, 0, sizeof(resDesc));
resDesc.resType = cudaResourceTypePitch2D;
resDesc.res.pitch2D.devPtr = dataDev;
resDesc.res.pitch2D.desc.x = 8;
resDesc.res.pitch2D.desc.y = 8;
resDesc.res.pitch2D.desc.f = cudaChannelFormatKindUnsigned; …Run Code Online (Sandbox Code Playgroud)