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

  • 大小: 21.98MB
    文件類型: .rar
    金幣: 2
    下載: 1 次
    發布日期: 2023-08-02
  • 語言: C/C++
  • 標簽: ps??h264??

資源簡介

基于C/C++提供一個PS流的打包庫PsMuxer.dll,并提供DEMO測試程序

資源截圖

代碼片段和文件信息


/*******************************************************************************
Copyright?(c)?wubihe?Tech.?Co.?Ltd.?All?rights?reserved.
--------------------------------------------------------------------------------

Date?Created: 2014-10-25
Author: wubihe?QQ:1269122125?Email:1269122125@qq.com
Description: PS流封裝庫PsMuxer使用Demo?試用版本Demo只能運行240S?需要授權庫或者
全部源碼請聯系作者
--------------------------------------------------------------------------------
Modification?History
DATE??????????AUTHOR??????????DEscriptION
--------------------------------------------------------------------------------

********************************************************************************/
#include?“excpt.h“
#include?“TIOBuffer.h“
#include?“IPsMuxer.h“


#define??MAX_BUFFER_SIZE?????(1024*8)
#define??MAX_OUT_BUFFER_SIZE?(1024*1024)

static?FILE?*gInputFile?=?NULL;
static?FILE?*gOutputFile?=?NULL;

//讀取H264數據緩存
unsigned?char gszReadBuffer[MAX_BUFFER_SIZE];
//解析h264數據緩存
comn::IOBuffer gH264ParserBuff;


struct?NaluPacket
{
unsigned?char*??data;
int length;
int prefix;
};

//幀類型定義
enum?NAL_type
{
NAL_IDR
NAL_SPS
NAL_PPS
NAL_SEI
NAL_Pframe
NAL_VPS
NAL_SEI_PREFIX
NAL_SEI_SUFFIX
NAL_other
NAL_TYPE_NUM
};

unsigned?char* g_pMuxBuf;
long g_Pts?=?0;
long g_Dts?=?0;


//判斷是否是264或者265幀如果是順便把NalTypeChar設置一下
bool?isH264Or265frame(unsigned?char*?buf?unsigned?char*?NalTypeCharint?*iHeadLen)
{
bool?bOk?=?false;
unsigned?char?c?=?0;

if?(buf[0]?==?0?&&?buf[1]?==?0?&&?buf[2]?==?0?&&?buf[3]?==?1)
{
if?(NalTypeChar)
{
*NalTypeChar?=?buf[4];
}
*iHeadLen?=?4;
bOk?=?true;
}

if?(buf[0]?==?0?&&?buf[1]?==?0?&&?buf[2]?==?1?)
{

if?(NalTypeChar)
{
*NalTypeChar?=?buf[3];
}
*iHeadLen?=?3;
bOk?=?true;
}

return?bOk;
}

NAL_type?getH264NALtype(unsigned?char?c)
{
switch(c?&?0x1f){
case?6:
return?NAL_SEI;
break;
case?7:
return?NAL_SPS;
break;
case?8:
return?NAL_PPS;
break;
case?5:
return?NAL_IDR;
break;
case?1:
return?NAL_Pframe;
break;
default:
return?NAL_other;
break;
}
return?NAL_other;
}

NAL_type?getH265NALtype(unsigned?char?c)
{
int?type?=?(c?&?0x7E)>>1;

if(type?==?33)
return?NAL_SPS;

if(type?==?34)
return?NAL_PPS;

if(type?==?32)
return?NAL_VPS;

if(type?==?39)
return?NAL_SEI_PREFIX;

if(type?==?40)
return?NAL_SEI_SUFFIX;

if((type?>=?1)?&&?(type?<=9))
return?NAL_Pframe;

if((type?>=?16)?&&?(type?<=21))
return?NAL_IDR;

return?NAL_other;
}




void?ProcessData(int?iHandle?int?iStreamunsigned?char*?buf?int?len)
{
PmframeInfo?stframeInfo;

stframeInfo.pframe =?buf;
stframeInfo.iframeLen =?len;
stframeInfo.lPts =?g_Pts;
stframeInfo.lDts =?g_Dts;


int?MuxOutSize?=?0;

PM_RESULT_TYPE?eResult;
int?iOutSize?=?MAX_OUT_BUFFER_SIZE;
eResult?=?PM_frameTrans(iHandle?iStream?stframeInfog_pMuxBuf?&iOutSize);

if?(eResult?==?PM_RESULT_OK?&&?iOutSize?>?0)
{
fwrite(g_pMuxBuf?iOutSize?1?gOutputFile);
fflush(gOutputFile);
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件????9092080??2018-06-07?16:44??PsMuxer_Trial\bin\huangdun.264

?????文件????9157126??2018-06-19?22:24??PsMuxer_Trial\bin\huangdun.264.mpeg

?????文件??????45056??2018-06-19?22:25??PsMuxer_Trial\bin\PsMuxerDemo_T.exe

?????文件?????362380??2018-06-19?22:25??PsMuxer_Trial\bin\PsMuxerDemo_T.ilk

?????文件?????683008??2018-06-19?22:25??PsMuxer_Trial\bin\PsMuxerDemo_T.pdb

?????文件??????64512??2018-06-19?21:01??PsMuxer_Trial\bin\PsMuxer_T.dll

?????文件???????1429??2018-06-19?21:01??PsMuxer_Trial\bin\PsMuxer_T.exp

?????文件?????360352??2018-06-19?21:01??PsMuxer_Trial\bin\PsMuxer_T.ilk

?????文件???????2682??2018-06-19?21:01??PsMuxer_Trial\bin\PsMuxer_T.lib

?????文件?????691200??2018-06-19?21:01??PsMuxer_Trial\bin\PsMuxer_T.pdb

?????文件????1641793??2016-07-04?19:34??PsMuxer_Trial\doc\iso13818-1.pdf

?????文件?????304071??2016-07-04?19:34??PsMuxer_Trial\doc\PS流和TS流介紹.docx

?????文件?????354816??2017-02-22?14:09??PsMuxer_Trial\doc\視音頻數據PS封裝-offset.doc

?????文件????????227??2018-06-12?21:35??PsMuxer_Trial\Project\PsMuxer\PsMuxer.def

?????文件???????6828??2018-06-19?21:01??PsMuxer_Trial\Project\PsMuxer\PsMuxer.vcproj

?????文件???????1983??2018-06-19?20:51??PsMuxer_Trial\Project\PsMuxer\PsMuxer.vcproj.wubihe-PC.wubihe.user

?????文件????????229??2018-06-19?21:00??PsMuxer_Trial\Project\PsMuxer\PsMuxer_T.def

?????文件??????13688??2018-06-19?21:01??PsMuxer_Trial\Project\PsMuxer\Trial\BuildLog.htm

?????文件??????49302??2018-06-19?21:01??PsMuxer_Trial\Project\PsMuxer\Trial\LogMng.obj

?????文件?????????65??2018-06-19?21:01??PsMuxer_Trial\Project\PsMuxer\Trial\mt.dep

?????文件??????51467??2018-06-19?21:01??PsMuxer_Trial\Project\PsMuxer\Trial\PsMuxer.obj

?????文件??????82169??2018-06-19?21:01??PsMuxer_Trial\Project\PsMuxer\Trial\PsMuxerContext.obj

?????文件??????53198??2018-06-19?21:01??PsMuxer_Trial\Project\PsMuxer\Trial\PsMuxerContextMng.obj

?????文件??????11542??2018-06-19?21:01??PsMuxer_Trial\Project\PsMuxer\Trial\PsMuxerStream.obj

?????文件????????663??2018-06-19?21:01??PsMuxer_Trial\Project\PsMuxer\Trial\PsMuxer_T.dll.embed.manifest

?????文件????????728??2018-06-19?21:01??PsMuxer_Trial\Project\PsMuxer\Trial\PsMuxer_T.dll.embed.manifest.res

?????文件????????621??2018-06-19?21:01??PsMuxer_Trial\Project\PsMuxer\Trial\PsMuxer_T.dll.intermediate.manifest

?????文件???????8404??2018-06-19?21:01??PsMuxer_Trial\Project\PsMuxer\Trial\PsUtil.obj

?????文件?????658432??2018-06-19?21:01??PsMuxer_Trial\Project\PsMuxer\Trial\vc90.idb

?????文件?????266240??2018-06-19?21:01??PsMuxer_Trial\Project\PsMuxer\Trial\vc90.pdb

............此處省略53個文件信息

評論

共有 條評論