❶ 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)指一种软件散布模式。一般的软件仅可取得已经过编译的二进制可执行档,通常只有软件的作者或着作权所有者等拥有程式的源代码。