❶ httplivestreaming,m3u8文件有沒有開源的解析代碼
希賽網 > 問答 > 程序開發 > C++/VC > 異常處理 > httplivestreaming,m3u8文件有沒有開源的解析代碼?近日需要用到這個功能,但是m
httplivestreaming,m3u8文件有沒有開源的解析代碼?近日需要用到這個功能,但是m
提問者: masswz 發布時間:2014-03-29 瀏覽:12 回復:1 懸賞:0.0希賽幣
http live streaming ,m3u8 文件有沒有開源的解析代碼?
近日需要用到這個功能,但是m3u8 是 m3u 的擴展,有EXT-X-STREAM-INF 這個欄位,
是另一個 m3u8文件的地址,也就是說編程的話要遞歸進去。
需要用 C 語言完成這個功能,我看到這個是 java 實現的。
我查找 vlc 的代碼裡面只有解析 標准 m3u 文件的代碼
只有 對 #EXTINF 進行了處理。
C/C++ code
//Open and parse a M3U file: int M3U_open(char *fileName){ FILE *f; char lineText[512]; char chrLength[20]; char title[264]; struct M3U_songEntry *singleEntry; int playListCount = lPlayList.songCount; f = fopen(fileName, "rt"); if (f == NULL){ //Error opening file: return(-1); } while(fgets(lineText, 256, f) != NULL){ if (!strncmp(lineText, "#EXTINF:", 8)){ //Length and title: splitSongInfo(lineText, chrLength, title); }else if (!strncmp(lineText, "#EXTM3U", 7)){ //Nothing to do. :) }else if (strlen(lineText) > 2){ //Store song info: singleEntry = &lPlayList.songs[playListCount++]; strncpy(singleEntry->fileName, lineText, 263); singleEntry->fileName[263] = '\0'; if ((int)singleEntry->fileName[strlen(singleEntry->fileName) - 1] == 10 || (int)singleEntry->fileName[strlen(singleEntry->fileName) - 1] == 13 ){ singleEntry->fileName[strlen(singleEntry->fileName) - 1] = '\0'; } if ((int)singleEntry->fileName[strlen(singleEntry->fileName) - 1] == 10 || (int)singleEntry->fileName[strlen(singleEntry->fileName) - 1] == 13 ){ singleEntry->fileName[strlen(singleEntry->fileName) - 1] = '\0'; } if (strlen(title)){ strncpy(singleEntry->title, title, 263); }else{ getFileName(singleEntry->fileName, singleEntry->title); } singleEntry->title[263] = '\0'; singleEntry->length = atoi(chrLength); if (playListCount == MAX_SONGS){ break; } } } fclose(f); lPlayList.modified = 0; lPlayList.songCount = playListCount; strcpy(lPlayList.fileName, fileName); return(0); }
❷ 如何分析大型的開源項目的源代碼
太專業不是很了解
❸ 有哪些方法能看懂開源的源碼
安裝起來,然後一步一步的跟著走,跟著看,只要邏輯熟悉了,就能看懂了。
❹ 怎樣獲得開源源代碼
比如我要emule的源碼
先上 http://sourceforge.net/
搜索emule
找到地址是 http://sourceforge.net/projects/emule
看下面的文件列表
File released: /eMule/0.50a/eMule0.50a-Sources.zip(這個就是源碼帶Sources字眼的就是源碼)
❺ 什麼是開源程序與源碼有什麼區別 求詳解
沒什麼區別,都是源碼,只不過開源程序是免費的。
❻ 如何分析開源系統的源碼結構
開放源碼軟體(open-source)是一個新名詞,它被定義為描述其源碼可以被公眾使用的軟體,並且此軟體的使用,修改和分發也不受許可證的限制。開放源碼軟體通常是有right的,它的許可證可能包含這樣一些限制: 蓄意的保護它的開放源碼狀態,著者身份的公告,或者開發的控制。「開放源碼」正在被公眾利益軟體組織注冊為認證標記,這也是創立正式的開放源碼定義的一種手段。
❼ 什麼是開源(開放源代碼)
一般的軟體僅可取得已經過編譯的二進制可執行檔,通常只有軟體的作者或著作權所有者等擁有程式的源代碼。有些軟體的作者會將源碼公開,此稱之為「源碼公開」,但這並不一定符合「開放源代碼」的定義及條件,因為作者可能會設定公開源代碼的條件限制,例如限制可閱讀源代碼的對象、限制衍生品等。 開源即開放源代碼(英文:Open Source)指一種軟體散布模式。一般的軟體僅可取得已經過編譯的二進制可執行檔,通常只有軟體的作者或著作權所有者等擁有程式的源代碼。