live555实现H264实时流进行RTSP发送
liveMedia 项目(http://www.live555.com/)的源代码包括四个基本的库,各种测试代码以及Media Server。四个基本的库分别是: UsageEnvironment&TaskScheduler, groupsock, liveMedia和BasicUsageEnvironment。UsageEnvironment 和TaskScheduler 类用于事件的调度,实现异步读取事件的句柄的设置以及错误信息的输出。另外,还有一个HashTable 类定义了一个通用的hash 表,其它代码要用到这个表。这些都是抽象类,在应用程序中基于这些类来实现自己的子类。groups
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 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个文件信息
#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 live555pla
目录 0 2014-07-23 17:08 live555pla
文件 779776 2014-07-23 17:09 live555pla
文件 1804192 2014-07-23 17:09 live555pla
文件 2165760 2014-07-23 17:09 live555pla
文件 3032275 2010-01-29 16:42 live555pla
目录 0 2014-07-23 17:11 live555pla
目录 0 2014-07-21 01:04 live555pla
文件 7664 2014-05-15 00:03 live555pla
文件 10356 2014-05-20 09:38 live555pla
文件 7512 2014-05-15 00:03 live555pla
文件 2437 2014-05-15 00:03 live555pla
文件 4316 2014-05-20 19:07 live555pla
文件 1557 2014-05-20 19:07 live555pla
文件 165 2014-05-20 18:52 live555pla
文件 2622 2014-05-15 00:03 live555pla
文件 24389 2014-05-15 00:04 live555pla
目录 0 2014-07-21 01:04 live555pla
文件 57946 2014-07-15 20:47 live555pla
文件 57542 2014-07-15 20:47 live555pla
文件 69658 2014-07-15 20:47 live555pla
目录 0 2014-07-21 01:04 live555pla
文件 189 2014-07-15 20:47 live555pla
文件 252590 2014-07-15 20:47 live555pla
文件 10022 2014-07-15 20:47 live555pla
文件 5246 2014-07-15 20:47 live555pla
文件 2792 2014-07-15 20:47 live555pla
文件 10962 2014-07-15 20:47 live555pla
文件 3512 2014-07-15 20:47 live555pla
文件 2141 2014-07-15 20:47 live555pla
文件 47214 2014-07-15 20:47 live555pla
............此处省略634个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)