live555实现H264实时流进行RTSP发送


liveMedia 项目(http://www.live555.com/)的源代码包括四个基本的库,各种测试代码以及Media Server。四个基本的库分别是: UsageEnvironment&TaskScheduler, groupsock, liveMedia和BasicUsageEnvironment。UsageEnvironment 和TaskScheduler 类用于事件的调度,实现异步读取事件的句柄的设置以及错误信息的输出。另外,还有一个HashTable 类定义了一个通用的hash 表,其它代码要用到这个表。这些都是抽象类,在应用程序中基于这些类来实现自己的子类。groups
资源截图
代码片段和文件信息
#include “H264framedLiveSource.hh“

H264framedLiveSource::H264framedLiveSource(UsageEnvironment& env int *datasize unsigned char*  databuf bool *dosent unsigned preferredframeSize unsigned playTimePerframe)
: framedSource(env)
{
framed_datasize = datasize;//数据区大小指针
framed_databuf = databuf;//数据区指针
framed_dosent = dosent;//发送标示
}

H264framedLiveSource* H264framedLiveSource::createNew(UsageEnvironment& env int *datasize unsigned char*  databuf bool *dosent unsigned preferredframeSize unsigned playTimePerframe)
{
H264framedLiveSource* newSource = new H264framedLiveSource(env datasize databuf dosent preferredframeSize playTimePerframe);
return newSource;
}

H264framedLiveSource::~H264framedLiveSource()
{
}

void H264framedLiveSource::doGetNextframe()
{
if (*framed_dosent == true)
{
*framed_dosent = false;
bufsizel = *framed_datasize;
readbufsize = 0;

fframeSize = fMaxSize;
memcpy(fTo framed_databuf + readbufsize fframeSize);
readbufsize += fframeSize;
}
else
{
if (bufsizel - readbufsize>fMaxSize)
{
fframeSize = fMaxSize;
memcpy(fTo framed_databuf + readbufsize fframeSize);
readbufsize += fframeSize;
}
else
{
memcpy(fTo framed_databuf + readbufsize bufsizel - readbufsize);
*framed_dosent = true;
}
}

nextTask() = envir().taskScheduler().scheduleDelayedTask(0(TaskFunc*)framedSource::afterGetting this);//表示延迟0秒后再执行 afterGetting 函数
return;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2014-07-23 17:11  live555player
     目录           0  2014-07-23 17:08  live555playerDebug
     文件      779776  2014-07-23 17:09  live555playerDebuglive555player.exe
     文件     1804192  2014-07-23 17:09  live555playerDebuglive555player.ilk
     文件     2165760  2014-07-23 17:09  live555playerDebuglive555player.pdb
     文件     3032275  2010-01-29 16:42  live555playerDebug est.264
     目录           0  2014-07-23 17:11  live555playerlive555player
     目录           0  2014-07-21 01:04  live555playerlive555playerBasicUsageEnvironment
     文件        7664  2014-05-15 00:03  live555playerlive555playerBasicUsageEnvironmentBasicHashTable.cpp
     文件       10356  2014-05-20 09:38  live555playerlive555playerBasicUsageEnvironmentBasicTaskScheduler.cpp
     文件        7512  2014-05-15 00:03  live555playerlive555playerBasicUsageEnvironmentBasicTaskScheduler0.cpp
     文件        2437  2014-05-15 00:03  live555playerlive555playerBasicUsageEnvironmentBasicUsageEnvironment.cpp
     文件        4316  2014-05-20 19:07  live555playerlive555playerBasicUsageEnvironmentBasicUsageEnvironment.vcxproj
     文件        1557  2014-05-20 19:07  live555playerlive555playerBasicUsageEnvironmentBasicUsageEnvironment.vcxproj.filters
     文件         165  2014-05-20 18:52  live555playerlive555playerBasicUsageEnvironmentBasicUsageEnvironment.vcxproj.user
     文件        2622  2014-05-15 00:03  live555playerlive555playerBasicUsageEnvironmentBasicUsageEnvironment0.cpp
     文件       24389  2014-05-15 00:04  live555playerlive555playerBasicUsageEnvironmentCOPYING
     目录           0  2014-07-21 01:04  live555playerlive555playerBasicUsageEnvironmentDebug
     文件       57946  2014-07-15 20:47  live555playerlive555playerBasicUsageEnvironmentDebugBasicHashTable.obj
     文件       57542  2014-07-15 20:47  live555playerlive555playerBasicUsageEnvironmentDebugBasicTaskScheduler.obj
     文件       69658  2014-07-15 20:47  live555playerlive555playerBasicUsageEnvironmentDebugBasicTaskScheduler0.obj
     目录           0  2014-07-21 01:04  live555playerlive555playerBasicUsageEnvironmentDebugBasicUsa.92E04722.tlog
     文件         189  2014-07-15 20:47  live555playerlive555playerBasicUsageEnvironmentDebugBasicUsa.92E04722.tlogBasicUsageEnvironment.lastbuildstate
     文件      252590  2014-07-15 20:47  live555playerlive555playerBasicUsageEnvironmentDebugBasicUsa.92E04722.tlogCL.read.1.tlog
     文件       10022  2014-07-15 20:47  live555playerlive555playerBasicUsageEnvironmentDebugBasicUsa.92E04722.tlogCL.write.1.tlog
     文件        5246  2014-07-15 20:47  live555playerlive555playerBasicUsageEnvironmentDebugBasicUsa.92E04722.tlogLib-link.read.1.tlog
     文件        2792  2014-07-15 20:47  live555playerlive555playerBasicUsageEnvironmentDebugBasicUsa.92E04722.tlogLib-link.write.1.tlog
     文件       10962  2014-07-15 20:47  live555playerlive555playerBasicUsageEnvironmentDebugBasicUsa.92E04722.tlogcl.command.1.tlog
     文件        3512  2014-07-15 20:47  live555playerlive555playerBasicUsageEnvironmentDebugBasicUsa.92E04722.tloglib.command.1.tlog
     文件        2141  2014-07-15 20:47  live555playerlive555playerBasicUsageEnvironmentDebugBasicUsageEnvironment.log
     文件       47214  2014-07-15 20:47  live555playerlive555playerBasicUsageEnvironmentDebugBasicUsageEnvironment.obj
............此处省略634个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)