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

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

資源簡介

C++ 解析H264文件.vs2012

資源截圖

代碼片段和文件信息

#include?“stdafx.h“
#include?

typedef?enum?{
NALU_TYPE_SLICE????=?1
NALU_TYPE_DPA??????=?2
NALU_TYPE_DPB??????=?3
NALU_TYPE_DPC??????=?4
NALU_TYPE_IDR??????=?5
NALU_TYPE_SEI??????=?6
NALU_TYPE_SPS??????=?7
NALU_TYPE_PPS??????=?8
NALU_TYPE_AUD??????=?9
NALU_TYPE_EOSEQ????=?10
NALU_TYPE_EOSTREAM?=?11
NALU_TYPE_FILL?????=?12
}?NaluType;

typedef?enum?{
NALU_PRIORITY_DISPOSABLE?=?0
NALU_PRIRITY_LOW?????????=?1
NALU_PRIORITY_HIGH???????=?2
NALU_PRIORITY_HIGHEST????=?3
}?NaluPriority;

void?printfH264(int?j?int?i?int?nLen?int?nframeType)
{
printf(“%d??%d“?j?i);
int?nForbiddenBit?=?(nframeType>>7)?&?0x1;//第1位禁止位,值為1表示語法出錯
int?nReference_idc?=?(nframeType>>5)?&?0x03;//第2~3位為參考級別
int?nType?=?nframeType?&?0x1f;//第4~8為是nal單元類型


printf(“??“);
switch(nReference_idc){
case?NALU_PRIORITY_DISPOSABLE:
printf(“DISPOS“);
break;
case?NALU_PRIRITY_LOW:
printf(“LOW“);
break;
case?NALU_PRIORITY_HIGH:
printf(“HIGH“);
break;
case?NALU_PRIORITY_HIGHEST:
printf(“HIGHEST“);
break;
}

printf(“??“);
switch(nType){
case?NALU_TYPE_SLICE:
printf(“SLICE“);
break;
case?NALU_TYPE_DPA:
printf(“DPA“);
break;
case?NALU_TYPE_DPB:
printf(“DPB“);
break;
case?NALU_TYPE_DPC:
printf(“DPC“);
break;
case?NALU_TYPE_IDR:
printf(“IDR“);
break;
case?NALU_TYPE_SEI:
printf(“SEI“);
break;
case?NALU_TYPE_SPS:
printf(“SPS“);
break;
case?NALU_TYPE_PPS:
printf(“PPS“);
break;
case?NALU_TYPE_AUD:
printf(“AUD“);
break;
case?NALU_TYPE_EOSEQ:
printf(“EOSEQ“);
break;
case?NALU_TYPE_EOSTREAM:
printf(“EOSTREAM“);
break;
case?NALU_TYPE_FILL:
printf(“FILL“);
break;
}

printf(“??%d\r\n“?nLen);
}

int?GetLen(int?nPos?int?nTotalSize?BYTE*?btData)
{
int?nStart?=?nPos;
while?(nStart? if?(btData[nStart]?==?0x00?&&?btData[nStart?+?1]?==?0x00?&&?btData[nStart?+?2]?==?0x01){
return?nStart?-?nPos;
}
else?if?(btData[nStart]?==?0x00?&&?btData[nStart?+?1]?==?0x00?&&?btData[nStart?+?2]?==?0x00?&&?btData[nStart?+?3]?==?0x01){
return?nStart?-?nPos;
}
else{
nStart++;
}
}
return?nTotalSize?-?nPos;//最后一幀。
}

int?_tmain(int?argc?_TCHAR*?argv[])
{
BYTE?*btData?=?NULL;
DWORD?dwFileSize?=?0;
HANDLE?hFile?=?CreateFile(L“E:\\video\\sintel.h264“?GENERIC_READ?|?GENERIC_WRITE?0?NULL?OPEN_EXISTING?FILE_ATTRIBUTE_NORMAL?NULL);
if?(hFile?!=?INVALID_HANDLE_VALUE){
dwFileSize?=?GetFileSize(hFile?NULL);
btData?=?new?BYTE[dwFileSize];
memset(btData?0?dwFileSize);
??
DWORD?dwRead?=?0;
ReadFile(hFile?btData?dwFileSize?&dwRead?NULL);
CloseHandle(hFile);
}

int?j?=?0;//多少幀
int?i?=?0;//偏移量
while?(i? if?(btData[i]?==?0x00?&&?btData[i?+?1]?==?0x00?&&?btData[i?+?2]?==?0x01){
int?nLen?=?GetLen(i?+?3?dwFileSize?btData);
printfH264(j?i?nLen?

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

?????文件????2263679??2016-01-12?21:38??ParseH264\Debug\sintel.h264

?????文件???????3393??2016-12-21?15:17??ParseH264\ParseH264\ParseH264.cpp

?????文件???????4526??2016-12-21?13:42??ParseH264\ParseH264\ParseH264.vcxproj

?????文件???????1333??2016-12-21?13:42??ParseH264\ParseH264\ParseH264.vcxproj.filters

?????文件???????1729??2016-12-21?13:42??ParseH264\ParseH264\ReadMe.txt

?????文件????????296??2016-12-21?13:42??ParseH264\ParseH264\stdafx.cpp

?????文件????????320??2016-12-21?13:42??ParseH264\ParseH264\stdafx.h

?????文件????????314??2016-12-21?13:42??ParseH264\ParseH264\targetver.h

?????文件????????894??2016-12-21?13:42??ParseH264\ParseH264.sln

????..A..H.?????23040??2016-12-21?15:19??ParseH264\ParseH264.v11.suo

?????目錄??????????0??2016-12-21?15:19??ParseH264\Debug

?????目錄??????????0??2016-12-21?15:01??ParseH264\ParseH264

?????目錄??????????0??2016-12-21?15:19??ParseH264

-----------?---------??----------?-----??----

??????????????2299524????????????????????13


評論

共有 條評論