payload_tmp=new[crc_item_size-8]; for(int i=0;i<crc_item_size-8;i++) payload_tmp[i]=item.pkt_data[i+8];
时间: 2023-03-28 13:03:07 浏览: 57
这是一个关于 C 语言的代码问题,payload_tmp 是一个指向动态分配内存的指针,它的大小是 crc_item_size-8,for 循环的作用是将 item.pkt_data 数组中从第 8 个元素开始的数据复制到 payload_tmp 数组中。
相关问题
int rtp_payload_size = RTP_MAX_PKT_SIZE - RTP_HEADER_SIZE;
这段代码定义了一个整型变量 `rtp_payload_size`,它的值等于 `RTP_MAX_PKT_SIZE - RTP_HEADER_SIZE`。
根据代码中的命名和常量的命名,可以推测 `RTP_MAX_PKT_SIZE` 是RTP(Real-time Transport Protocol)数据包的最大大小,而 `RTP_HEADER_SIZE` 是RTP头部的大小。
所以,`rtp_payload_size` 的值表示了在一个RTP数据包中有效负载的大小,即减去头部后剩余的可用空间大小。
如果您还有其他问题,我会很乐意帮助您解答。
frame += rtp_payload_size; frameSize -= rtp_payload_size; 分析这段代码
根据您提供的代码片段,这部分代码的目的是将指针 `frame` 向前移动 `rtp_payload_size` 字节,并相应地更新 `frameSize`。
首先,通过执行 `frame += rtp_payload_size`,将指针 `frame` 向前移动 `rtp_payload_size` 字节。这意味着 `frame` 指向了下一个 RTP 包的负载数据。
然后,通过执行 `frameSize -= rtp_payload_size`,将 `frameSize` 减去 `rtp_payload_size`。这样做是为了更新剩余帧数据的大小,以反映已经处理掉的 RTP 负载数据的大小。
这段代码的目的是处理当前 RTP 包的负载数据,并更新指针和大小,以便继续处理下一个 RTP 包的负载数据。
请注意,具体的操作和处理方式可能因实际情况而有所不同。如果您有其他关于 RTP 数据处理的问题,请随时提问。