Я анализирую файл pcap с помощью libpcap.
Я хочу напечатать тип полезной нагрузки rtp & rtcp (96 для H264 / 0 для PCMU) (и также временную метку), чтобы я мог различить, является ли это аудио / видео.
Я могу печатать правильные порядковые номера пакетов rtp / rtcp, но не palyload.
typedef struct {
unsigned int version:2; /* protocol version */
unsigned int p:1; /* padding flag */
unsigned int x:1; /* header extension flag */
unsigned int cc:4; /* CSRC count */
unsigned int m:1; /* marker bit */
unsigned int pt:7; /* payload type */
u_int16 seq; /* sequence number */
u_int32 ts; /* timestamp */
u_int32 ssrc; /* synchronization source */
u_int32 csrc[1]; /* optional CSRC list */
} rtp_hdr_t;
rtp_hdr_t *rtphdr=(rtp_hdr_t *)(packet + sizeof(struct ether_header) +sizeof(struct ip_header) + sizeof(struct udp_header));
cout<< ntohs(rtphdr->pt) << endl;
Пример: получение типа полезной нагрузки 12288 и 0. Но мне нужно получить 96 и 0 (как в wireshark).
cout << ntohs(rtphdr->ts) << endl;
Пример: получение информации о временной метке похоже на 49892 (5-значное десятичное число)
но я должен получить такие значения, как 3269770717.