1. 程式人生 > >哥們,不是我不願意改回去,只是有人不允許

哥們,不是我不願意改回去,只是有人不允許

TS流解析-提取PSI資訊等

程式碼加註釋如下:

  1. #include <iostream>
  2. #include <fstream>
  3. usingnamespace std;  
  4. struct programs //封裝節目資訊的結構體
  5. {  
  6.     int programID;//節目編號
  7.     int pmtPID;//所屬PMT的pid
  8.     int videoPID;//視訊pid
  9.     int audioPID1;//音訊pid
  10.     int audioPID2;//音訊pid
  11. }myProg[20];  
  12. bool FindAndParsePAT(unsigned 
    char *buffer,int pID,int curPack);//傳入BUF和PID的值
  13. bool FindAndParsePMT(unsigned char *buffer,int pID,int curPack);  
  14. int program=0;  
  15. int prog_count=0;  
  16. void main()  
  17. {  
  18.     unsigned    char *buffer=new unsigned char[500];  
  19.     int  startPos=0;//第一個TS分組在流中的位置序號
  20.     int  packageLen=0;//分組長度
  21.     int  pmtCount=-1;
    //PMT表序號
  22.     int  pID=0;  
  23.     int  nullpack=0;  
  24.     //0.以二進位制方式開啟TS檔案
  25.     ifstream myFile("test.ts",ios::binary|ios::in);  
  26.     //1.讀入檔案的前500個位元組,找同步頭、確定包長
  27.     myFile.read((char *)buffer,500);  
  28.     for(int i=0;i<500;i++)  
  29.     {    //判斷有無壓縮
  30.         if(buffer[i]==0x47&&buffer[i+188]==0x47)  
  31.         {  
  32.             startPos=i;//第一個TS分組在流中的位置序號
  33.             packageLen=188;//分組長度
  34.             break;  
  35.         }  
  36.         elseif(buffer[i]==0x47&&buffer[i+204]==0x47)  
  37.         {  
  38.             startPos=i;  
  39.             packageLen=204;  
  40.             break;  
  41.         }  
  42.     }  
  43.     //2.遍歷流中的TS分組,查詢PAT
  44.     myFile.seekg(0,ios::end);//定位到檔案尾部
  45.     int totalBytes=myFile.tellg();//獲取尾部距離首部的偏移量,即TS檔案位元組總數totalBytes
  46.     int packageCount=(totalBytes-startPos)/packageLen;//確定進行遍歷的迴圈次數 即總TS包數
  47.     int curPack=0;  
  48.     while (curPack<packageCount)//遍歷分組
  49.     {  
  50.         myFile.seekg(startPos+curPack*packageLen);//定位到第curPack個分組的首位元組
  51.         myFile.read((char *)buffer,packageLen);//讀出當前分組,儲存到快取buffer中,讀一段分組長度188或204
  52.          pID=((buffer[1]&31)<<8)+buffer[2];//解析出當前分組的pid(13位=第2個位元組的後5位+第3個位元組全8位)
  53.         if(pID==0x1fff)  //檢查空包數
  54.         {      
  55.             nullpack++;  
  56.         }  
  57.         if(FindAndParsePAT(buffer,pID,curPack))//執行程式:解析PAT 有效
  58. 相關推薦

    哥們願意回去只是有人允許

    TS流解析-提取PSI資訊等 程式碼加註釋如下: #include <iostream> #include <fstream> usingnamespace std;   struct programs //封

    【人生很短做自己喜歡的事情罷。】人生是一場旅程我們經歷了幾次輪迴才換來這個旅程而這個旅程很短因此不妨大膽一些不妨大膽一些去愛一個人去攀一座山去追一個夢······有很多事明白相信一件事上天讓我們來到這個世界上就是為了讓我們創

    人生是一場旅程,我們經歷了幾次輪迴,才換來這個旅程,而這個旅程很短,因此不妨大膽一些,不妨大膽一些去愛一個人,去攀一座山,去追一個夢······有很多事我都不明白,但我相信一件事,上天讓我們來到這個世...

    人生很短做自己喜歡的事情罷。(人生是一場旅程我們經歷了幾次輪迴才換來這個旅程而這個旅程很短因此不妨大膽一些不妨大膽一些去愛一個人去攀一座山去追一個夢······有很多事明白相信一件事上天讓我們來到這個世界上就是為了讓我們創造

    人生是一場旅程,我們經歷了幾次輪迴,才換來這個旅程,而這個旅程很短,因此不妨大膽一些,不妨大膽一些去愛一個人,去攀一座山,去追一個夢······有很多事我都不明白,但我相信一件事,上天讓我們來到這個世...

    別人給一個介面是個url地址推送資料過去然後得到別人返回的資料怎麼呼叫這個介面呢?

    1:客戶端地址:http://1*2.***.**.1*4:7**8/peasentProducts/save(需要把服務端資料傳送到客戶端) 2:自己在控制層把資料放在放在一個map集合中,自己寫一個類封裝一個方法,把資料傳送過去   3:controller---控制層程式

    在匯入我們老師寫的程式碼時他是用的學生機是win7系統然後匯入到eclipse時發現專案裡面中文都變成了問號形式的亂碼。

    我在匯入我們老師寫的程式碼時,他是用的學生機,是win7系統,然後我匯入到eclipse時,發現專案裡面中文都變成了問號形式的亂碼。 我按照別人的指引修改把工作空間的編碼格式改為UTF-8,還有Java檔案也改成了UTF-8,然後還是沒有成功,最後得到老師指引,他說要跟單獨檔案修改resource改

    表妹想學Django框架整理出教程後表妹露出滿眼的小星星!

    最近表妹學習遇到了一點難題,她向我透露到想學Django,但是不知道怎麼學,為了幫助她更好的學習好Python,理解透Django,我絞盡腦汁用圖片將步驟細化。表妹看後欣喜若狂,廢寢忘食的敲起了鍵盤。 一段程式碼配一段文字,外加9張圖片,輕輕鬆鬆Django入門! ​   下面我們開始吧~

    程式設計師發飆:公司架構調整被辭退寫個人原因離職太不要臉

    臨近年底,一些公司趁著發年終獎的節骨眼上進行了裁員動作,有的良心公司會給員工賠償,但有些公司卻千方百計套路員工,期望一分錢不花辭退員工。無獨有偶,有一名程式設計師也在年底遭遇了被辭退得命運,但公司的做法令人寒心,忍不住在論壇發飆起來。 如上就是這名程式設計師發飆的全部內容:今天被公司約談離

    【軟件測試】程序bug先別動手

    開發 誤報 鏈接 為什麽 場景 真的 技術管理 產品 工具 前言 今天的話題,是所有測試員都會經歷的,也多為此苦惱過。墨白借此談談自己的看法,不求解決現狀,只希望大家看完此文後能少一些苦惱。 現狀分析 之前,墨白身邊一位測試老人提了一個打印文字溢出的缺陷,但該缺陷的負責人

    上一家公司挺好的願再回去

    大學畢業我進入到了一家創業公司,公司職能部門人數不多,所以每個人都身兼數職,雖說有固定的休息時間,但往往休息時比正常上班還要忙碌。即便我已經離開2年,   每當焦慮時,我還是會大概率夢見公司的口號。 “成就彼此,不負青春”——我會立刻驚醒,旋即欣慰發現,哦,幸好只是一場夢

    window7預設開啟方式被改錯了軟體打怎麼回去

    按“Win鍵”加“R”鍵,在執行視窗中輸入“regedit”進入登錄檔,找到“HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Explorer/FileExts”這個位置,雙擊在檔案格式中找到“EXE”

    單頁面跳轉添加返回和跳轉動畫(仿app) 只對單頁面和跳轉有用用的是angualr會的可以私信問

    hist page func margin consola color -s tar pla p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Consolas; color: #596972 } p.p2 { mar

    5種適合做JAVA程序員的要不完的Bug!

    javajava程序員確實收入高、生活滋潤,有不少的人想轉行做程序員。但,畢竟要當上一名程序員,也不是一件輕松的事。有些小夥伴就是天生沒有自帶程序員的一些“屬性”。那麽,哪幾種人可能不適合做程序員呢?下面就來總結一下:1、對編程沒有興趣其實,說實話,最後一點是最重要的。因為你觀察身邊大部分的程序員,你會發現,

    是一名UX設計師你也

    交互設計 以下內容由Mockplus團隊翻譯整理,僅供學習交流,Mockplus是更快更簡單的原型設計工具。 最近幾年,用戶體驗這個術語開始出現。而且隨著它的發展,我們也見證了用戶體驗設計師的崛起。 每隔幾個月,就會有人在twitter上曬

    是你飄了還是動刀了

    大小 小寫字母 cin str1 emp find def problems += Problem F: 是你飄了,還是我拿不動刀了 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 673 Solved: 114 Statu

    文件操作是一個存為字符串格式的登陸系統有增刪改查的功能想要的。。。

    str repl 修改 blog 一個 ice body pwd 刪除 def register(NAME, PWD, TEL): with open(‘userdate.txt‘, ‘a‘, encoding=‘utf-8‘) as f: new

    react從0到0(再尼瑪學會自己就去吃屎吧(是針對看到這篇文章的只針對自己))

    是你 htm creat map href api mes 4.0 rop 把字體搞大,看清楚點 入門級別 1.0 hello world 有圖有真相把! Browser.js 的作用是將 JSX 語法轉為 JavaScript 語法,,ReactDOM.ren

    為什麽學會了Django/Flask還是會做Web開發?

    box dumps pan 開發網站 white 信號 標簽 查詢 圖片 相信很多朋友或多或少的都嘗試過用Django或者是Flask來開發網站(以下用Django來做代表)。畢竟用Python做開發的速度就已經快人家好幾倍了,何況是基於Python的web框架,那開發一個

    讀:只要還在愛從不主動離開如果愛了從不留戀!

    自己的 幸福 個人 分享圖片 一起 主動 圖片 ima 也會 今晚在《南川大叔》的公眾號上面,看到這樣的一個配圖:只要我還在愛,我從不主動離開,如果我不愛了,我從不留戀!心中不由有一起感動,或許自己曾經也是這樣的心態而過的,現在的心境也是如此。或許真的經歷過的

    如果看了此文你還懂傅裏葉變換那就過來掐死吧【完整版】

    處理 為知 自然 pic 是不是 wikipedia sina 學習方法 依次 如果看了此文你還不懂傅裏葉變換,那就過來掐死我吧【完整版】 轉自 https://blog.csdn.net/u012361418/article/details/46277779 還記得上