91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 4KB
    文件類型: .7z
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-06-13
  • 語言: 其他
  • 標(biāo)簽: H.265??RTP??

資源簡介

基于H.265的RTP封裝。

資源截圖

代碼片段和文件信息

#include?“StdAfx.h“
#include?“h265rtpsv.h“
#include?
#pragma?comment(lib?“ws2_32.lib“)

h265rtpsv::h265rtpsv(void)
{
m_maxpayloadsize?=?1440;
m_mode?=?PACK_MODE_RTPPAYLOAD;
m_current_ts?=?0;/*or?some?random?value*/
m_last_seq?=?0;
m_aps_allowed?=?FALSE;

m_pNaluBuf?=?NULL;
m_pNaluBufItertor?=?NULL;
m_uNaluBufSize?=?0;
m_uNaluDataLen?=?0;
m_bframeEndInNaluBuf?=?FALSE;

m_pRtpBuf?=?NULL;
m_pRtpBufItertor?=?NULL;
m_uRtpBufSize?=?0;
m_uRtpDataLen?=?0;
m_uNaluCountInRtpBuf?=?0;
????//m_cLowestlayerId?=?0;
????//m_cLowestTId?=?0;
}

h265rtpsv::~h265rtpsv(void)
{
if?(m_pNaluBuf)
{
delete?[]?m_pNaluBuf;
m_pNaluBuf?=?NULL;
}
if?(m_pRtpBuf)
{
delete?[]?m_pRtpBuf;
m_pRtpBuf?=?NULL;
}
}

void?h265rtpsv::SetMaxPayloadSize(?unsigned?int?size?)
{
m_maxpayloadsize?=?size;
}

void?h265rtpsv::SetMode(?int?mode/*?PACK_MODE_RAW?or?PACK_MODE_3984?*/?)
{
m_mode?=?mode;
}

void?h265rtpsv::EnableAPs(?BOOL?yesno?)
{
m_aps_allowed?=?yesno;
}

void?h265rtpsv::Reset()
{
TRACE(“h265rtpsv::Reset!\n“);
m_current_ts?=?0;
m_last_seq?=?0;

m_uNaluDataLen?=?0;
m_uRtpDataLen?=?0;

m_bframeEndInNaluBuf?=?FALSE;

m_pNaluBufItertor?=?NULL;
m_pRtpBufItertor?=?NULL;

????m_uNaluCountInRtpBuf?=?0;
????//m_cLowestlayerId?=?0;
????//m_cLowestTId?=?0;
}

/*process?NALUs?and?pack?them?into?rtp?payloads?*/
BOOL?h265rtpsv::InputNalu(?const?char*?nalu?unsigned?long?nlen?BOOL?frameend
??char*&?pl?unsigned?long&?plen?BOOL&?bMark?BOOL&?bHavemore?)
{
pl?=?NULL;
plen?=?0;
bMark?=?FALSE;
bHavemore?=?FALSE;

switch(m_mode)
{
case?PACK_MODE_RAW_H265:
{?//?do?nothing?but?a?check
if?(!nalu)
return?FALSE;

char*?raw?=?(char*)nalu;
unsigned?long?rawlen?=?nlen;

if?(rawlen?>?4)
{
if?(memcmp(raw?NALU_STARTBYTES32?4)?==?0)
{
raw?+=?4;
rawlen?-=?4;
}
else?if?(memcmp(raw?NALU_STARTBYTES24?3)?==?0)
{
raw?+=?3;
rawlen?-=?3;
}
}

if?(nlen?>?m_maxpayloadsize)
{
TRACE(“This?H264?packet?does?not?fit?into?mtu:?size=%i\n“?nlen);
return?FALSE;
}

pl?=?raw;
plen?=?rawlen;
bMark?=?frameend;
bHavemore?=?FALSE;
return?TRUE;
}
break;
case?PACK_MODE_RTPPAYLOAD:
{?//?do?pack
char*?raw?=?(char*)nalu;
unsigned?long?rawlen?=?nlen;

if?(!raw)
{
raw?=?m_pNaluBuf;
rawlen?=?m_uNaluDataLen;
if?(!raw)
{
return?FALSE;
}
}
else
{
m_uNaluDataLen?=?0;
m_pNaluBufItertor?=?NULL;
}

if?(rawlen?>?4)
{
if?(memcmp(raw?NALU_STARTBYTES32?4)?==?0)
{
raw?+=?4;
rawlen?-=?4;
}
else?if?(memcmp(raw?NALU_STARTBYTES24?3)?==?0)
{
raw?+=?3;
rawlen?-=?3;
}
}

if?(m_aps_allowed)
{
if?(m_uRtpDataLen?>?0)
{
if?(m_uRtpDataLen+rawlen+2? {
unsigned?short?size?=?hto

評(píng)論

共有 條評(píng)論