Converted previously hardcoded default sizes for shared memory pages to defines.

This commit is contained in:
Thulinma 2015-01-27 12:03:52 +01:00
parent c99e0bc3ef
commit 43d35cf29b
8 changed files with 21 additions and 20 deletions

View file

@ -4,6 +4,7 @@
#include <algorithm> #include <algorithm>
#include <mist/timing.h> #include <mist/timing.h>
#include <mist/shared_memory.h> #include <mist/shared_memory.h>
#include <mist/defines.h>
#include "controller_storage.h" #include "controller_storage.h"
#include "controller_capabilities.h" #include "controller_capabilities.h"
@ -80,7 +81,7 @@ namespace Controller {
writeConf["streams"] = Storage["streams"]; writeConf["streams"] = Storage["streams"];
writeConf["capabilities"] = capabilities; writeConf["capabilities"] = capabilities;
static IPC::sharedPage mistConfOut("!mistConfig", 4*1024*1024, true); static IPC::sharedPage mistConfOut("!mistConfig", DEFAULT_CONF_PAGE_SIZE, true);
IPC::semaphore configLock("!mistConfLock", O_CREAT | O_RDWR, ACCESSPERMS, 1); IPC::semaphore configLock("!mistConfLock", O_CREAT | O_RDWR, ACCESSPERMS, 1);
//lock semaphore //lock semaphore
configLock.wait(); configLock.wait();

View file

@ -59,7 +59,7 @@ namespace Controller {
//push-style stream //push-style stream
if (hasViewers(name)){ if (hasViewers(name)){
data["meta"].null(); data["meta"].null();
IPC::sharedPage streamIndex(name,8 * 1024 * 1024,false,false); IPC::sharedPage streamIndex(name, DEFAULT_META_PAGE_SIZE, false, false);
if (!streamIndex.mapped){ if (!streamIndex.mapped){
return; return;
} }
@ -129,7 +129,7 @@ namespace Controller {
DEBUG_MSG(DLVL_INSANE, "Waiting for stream %s to open...", name.c_str()); DEBUG_MSG(DLVL_INSANE, "Waiting for stream %s to open...", name.c_str());
//wait for the stream //wait for the stream
{ {
IPC::sharedPage streamIndex(name, 8 * 1024 * 1024); IPC::sharedPage streamIndex(name, DEFAULT_META_PAGE_SIZE);
if (!streamIndex.mapped){ if (!streamIndex.mapped){
DEBUG_MSG(DLVL_INSANE, "Stream %s opening failed! Cancelling and marking as corrupt.", name.c_str()); DEBUG_MSG(DLVL_INSANE, "Stream %s opening failed! Cancelling and marking as corrupt.", name.c_str());
data["meta"].null(); data["meta"].null();

View file

@ -146,9 +146,9 @@ namespace Mist {
//after this player functionality //after this player functionality
#ifdef __CYGWIN__ #ifdef __CYGWIN__
metaPage.init(config->getString("streamname"), 8 * 1024 * 1024, true); metaPage.init(config->getString("streamname"), DEFAULT_META_PAGE_SIZE, true);
#else #else
metaPage.init(config->getString("streamname"), (isBuffer ? 8 * 1024 * 1024 : myMeta.getSendLen()), true); metaPage.init(config->getString("streamname"), (isBuffer ? DEFAULT_META_PAGE_SIZE : myMeta.getSendLen()), true);
#endif #endif
myMeta.writeTo(metaPage.mapped); myMeta.writeTo(metaPage.mapped);
userPage.init(config->getString("streamname") + "_users", 30, true); userPage.init(config->getString("streamname") + "_users", 30, true);
@ -240,7 +240,7 @@ namespace Mist {
pagesByTrack[it->first].rbegin()->second.keyNum++; pagesByTrack[it->first].rbegin()->second.keyNum++;
pagesByTrack[it->first].rbegin()->second.partNum += it->second.keys[i].getParts(); pagesByTrack[it->first].rbegin()->second.partNum += it->second.keys[i].getParts();
pagesByTrack[it->first].rbegin()->second.dataSize += it->second.keySizes[i]; pagesByTrack[it->first].rbegin()->second.dataSize += it->second.keySizes[i];
if (pagesByTrack[it->first].rbegin()->second.dataSize > 8 * 1024 * 1024){ if (pagesByTrack[it->first].rbegin()->second.dataSize > FLIP_DATA_PAGE_SIZE){
newData = true; newData = true;
} }
} }
@ -275,7 +275,7 @@ namespace Mist {
indexPages[tid].init(tmpId, 8 * 1024, true);//Pages of 8kb in size, room for 512 parts. indexPages[tid].init(tmpId, 8 * 1024, true);//Pages of 8kb in size, room for 512 parts.
} }
if (myMeta.tracks[tid].keys[bookKeeping[tid].curKey].getParts() + 1 == curData[tid].partNum){ if (myMeta.tracks[tid].keys[bookKeeping[tid].curKey].getParts() + 1 == curData[tid].partNum){
if (curData[tid].dataSize > 8 * 1024 * 1024) { if (curData[tid].dataSize > FLIP_DATA_PAGE_SIZE) {
pagesByTrack[tid][bookKeeping[tid].first] = curData[tid]; pagesByTrack[tid][bookKeeping[tid].first] = curData[tid];
bookKeeping[tid].first += curData[tid].keyNum; bookKeeping[tid].first += curData[tid].keyNum;
curData[tid].keyNum = 0; curData[tid].keyNum = 0;
@ -331,7 +331,7 @@ namespace Mist {
int pageIdLen = snprintf(pageId, 100, "%s%u_%u", config->getString("streamname").c_str(), track, pageNum); int pageIdLen = snprintf(pageId, 100, "%s%u_%u", config->getString("streamname").c_str(), track, pageNum);
std::string tmpString(pageId, pageIdLen); std::string tmpString(pageId, pageIdLen);
#ifdef __CYGWIN__ #ifdef __CYGWIN__
dataPages[track][pageNum].init(tmpString, 26 * 1024 * 1024, true); dataPages[track][pageNum].init(tmpString, DEFAULT_DATA_PAGE_SIZE, true);
#else #else
dataPages[track][pageNum].init(tmpString, it->second.dataSize, true); dataPages[track][pageNum].init(tmpString, it->second.dataSize, true);
#endif #endif

View file

@ -323,7 +323,7 @@ namespace Mist {
std::string strName = config->getString("streamname"); std::string strName = config->getString("streamname");
Util::sanitizeName(strName); Util::sanitizeName(strName);
strName = strName.substr(0,(strName.find('+'))); strName = strName.substr(0,(strName.find('+')));
IPC::sharedPage serverCfg("!mistConfig", 4*1024*1024, false, false); ///< Contains server configuration and capabilities IPC::sharedPage serverCfg("!mistConfig", DEFAULT_CONF_PAGE_SIZE, false, false); ///< Contains server configuration and capabilities
IPC::semaphore configLock("!mistConfLock", O_CREAT | O_RDWR, ACCESSPERMS, 1); IPC::semaphore configLock("!mistConfLock", O_CREAT | O_RDWR, ACCESSPERMS, 1);
configLock.wait(); configLock.wait();
DTSC::Scan streamCfg = DTSC::Scan(serverCfg.mapped, serverCfg.len).getMember("streams").getMember(strName); DTSC::Scan streamCfg = DTSC::Scan(serverCfg.mapped, serverCfg.len).getMember("streams").getMember(strName);

View file

@ -121,7 +121,7 @@ namespace Mist {
char pageName[100]; char pageName[100];
sprintf(pageName, "liveStream_%s%d", streamName.c_str(), newTid); sprintf(pageName, "liveStream_%s%d", streamName.c_str(), newTid);
metaPages[newTid].init(pageName, 8 * 1024 * 1024); metaPages[newTid].init(pageName, DEFAULT_META_PAGE_SIZE);
DTSC::Meta tmpMeta = meta_out; DTSC::Meta tmpMeta = meta_out;
tmpMeta.tracks.clear(); tmpMeta.tracks.clear();
tmpMeta.tracks[newTid] = meta_out.tracks[tid]; tmpMeta.tracks[newTid] = meta_out.tracks[tid];
@ -155,7 +155,7 @@ namespace Mist {
INFO_MSG("Buffer has indicated that incoming track %d should start writing on track %d, page %d", tid, finalTid, firstPage); INFO_MSG("Buffer has indicated that incoming track %d should start writing on track %d, page %d", tid, finalTid, firstPage);
memset(pageName, 0, 100); memset(pageName, 0, 100);
sprintf(pageName, "%s%d_%d", streamName.c_str(), finalTid, firstPage); sprintf(pageName, "%s%d_%d", streamName.c_str(), finalTid, firstPage);
curPages[finalTid].init(pageName, 25 * 1024 * 1024); curPages[finalTid].init(pageName, DEFAULT_DATA_PAGE_SIZE);
trackMap[tid] = finalTid; trackMap[tid] = finalTid;
bookKeeping[finalTid] = DTSCPageData(); bookKeeping[finalTid] = DTSCPageData();
} }
@ -203,7 +203,7 @@ namespace Mist {
char nextPage[100]; char nextPage[100];
sprintf(nextPage, "%s%llu_%d", streamName.c_str(), tNum, bookKeeping[tNum].pageNum + bookKeeping[tNum].keyNum); sprintf(nextPage, "%s%llu_%d", streamName.c_str(), tNum, bookKeeping[tNum].pageNum + bookKeeping[tNum].keyNum);
INFO_MSG("Continuing track %llu on page %d", tNum, bookKeeping[tNum].pageNum + bookKeeping[tNum].keyNum); INFO_MSG("Continuing track %llu on page %d", tNum, bookKeeping[tNum].pageNum + bookKeeping[tNum].keyNum);
curPages[tNum].init(nextPage, 25 * 1024 * 1024); curPages[tNum].init(nextPage, DEFAULT_DATA_PAGE_SIZE);
bookKeeping[tNum].pageNum += bookKeeping[tNum].keyNum; bookKeeping[tNum].pageNum += bookKeeping[tNum].keyNum;
bookKeeping[tNum].keyNum = 0; bookKeeping[tNum].keyNum = 0;
bookKeeping[tNum].curOffset = 0; bookKeeping[tNum].curOffset = 0;
@ -236,7 +236,7 @@ namespace Mist {
return; return;
} }
isInitialized = true; isInitialized = true;
streamIndex.init(streamName, 8 * 1024 * 1024); streamIndex.init(streamName, DEFAULT_META_PAGE_SIZE);
if (!streamIndex.mapped){ if (!streamIndex.mapped){
DEBUG_MSG(DLVL_FAIL, "Could not connect to server for %s\n", streamName.c_str()); DEBUG_MSG(DLVL_FAIL, "Could not connect to server for %s\n", streamName.c_str());
onFail(); onFail();
@ -439,7 +439,7 @@ namespace Mist {
} }
char id[100]; char id[100];
snprintf(id, 100, "%s%lu_%d", streamName.c_str(), trackId, pageNum); snprintf(id, 100, "%s%lu_%d", streamName.c_str(), trackId, pageNum);
curPages[trackId].init(id, 26 * 1024 * 1024); curPages[trackId].init(id, DEFAULT_DATA_PAGE_SIZE);
if (!(curPages[trackId].mapped)){ if (!(curPages[trackId].mapped)){
DEBUG_MSG(DLVL_FAIL, "Initializing page %s failed", curPages[trackId].name.c_str()); DEBUG_MSG(DLVL_FAIL, "Initializing page %s failed", curPages[trackId].name.c_str());
return; return;

View file

@ -102,7 +102,7 @@ namespace Mist {
//loop over the connectors //loop over the connectors
IPC::semaphore configLock("!mistConfLock", O_CREAT | O_RDWR, ACCESSPERMS, 1); IPC::semaphore configLock("!mistConfLock", O_CREAT | O_RDWR, ACCESSPERMS, 1);
configLock.wait(); configLock.wait();
IPC::sharedPage serverCfg("!mistConfig", 4*1024*1024); IPC::sharedPage serverCfg("!mistConfig", DEFAULT_CONF_PAGE_SIZE);
DTSC::Scan capa = DTSC::Scan(serverCfg.mapped, serverCfg.len).getMember("capabilities").getMember("connectors"); DTSC::Scan capa = DTSC::Scan(serverCfg.mapped, serverCfg.len).getMember("capabilities").getMember("connectors");
unsigned int capa_ctr = capa.getSize(); unsigned int capa_ctr = capa.getSize();
for (unsigned int i = 0; i < capa_ctr; ++i){ for (unsigned int i = 0; i < capa_ctr; ++i){
@ -249,7 +249,7 @@ namespace Mist {
IPC::semaphore configLock("!mistConfLock", O_CREAT | O_RDWR, ACCESSPERMS, 1); IPC::semaphore configLock("!mistConfLock", O_CREAT | O_RDWR, ACCESSPERMS, 1);
configLock.wait(); configLock.wait();
IPC::sharedPage serverCfg("!mistConfig", 4*1024*1024); IPC::sharedPage serverCfg("!mistConfig", DEFAULT_CONF_PAGE_SIZE);
DTSC::Scan prots = DTSC::Scan(serverCfg.mapped, serverCfg.len).getMember("config").getMember("protocols"); DTSC::Scan prots = DTSC::Scan(serverCfg.mapped, serverCfg.len).getMember("config").getMember("protocols");
unsigned int prots_ctr = prots.getSize(); unsigned int prots_ctr = prots.getSize();

View file

@ -194,7 +194,7 @@ namespace Mist {
IPC::semaphore configLock("!mistConfLock", O_CREAT | O_RDWR, ACCESSPERMS, 1); IPC::semaphore configLock("!mistConfLock", O_CREAT | O_RDWR, ACCESSPERMS, 1);
configLock.wait(); configLock.wait();
IPC::sharedPage serverCfg("!mistConfig", 4*1024*1024); IPC::sharedPage serverCfg("!mistConfig", DEFAULT_CONF_PAGE_SIZE);
DTSC::Scan prtcls = DTSC::Scan(serverCfg.mapped, serverCfg.len).getMember("config").getMember("protocols"); DTSC::Scan prtcls = DTSC::Scan(serverCfg.mapped, serverCfg.len).getMember("config").getMember("protocols");
DTSC::Scan capa = DTSC::Scan(serverCfg.mapped, serverCfg.len).getMember("capabilities").getMember("connectors").getMember("RTMP"); DTSC::Scan capa = DTSC::Scan(serverCfg.mapped, serverCfg.len).getMember("capabilities").getMember("connectors").getMember("RTMP");
unsigned int pro_cnt = prtcls.getSize(); unsigned int pro_cnt = prtcls.getSize();
@ -254,14 +254,14 @@ namespace Mist {
IPC::semaphore metaLocker(std::string("liveMeta@" + streamName).c_str(), O_CREAT | O_RDWR, ACCESSPERMS, 1); IPC::semaphore metaLocker(std::string("liveMeta@" + streamName).c_str(), O_CREAT | O_RDWR, ACCESSPERMS, 1);
bool metaLock = false; bool metaLock = false;
configLock.wait(); configLock.wait();
IPC::sharedPage serverCfg("!mistConfig", 4*1024*1024); IPC::sharedPage serverCfg("!mistConfig", DEFAULT_CONF_PAGE_SIZE);
DTSC::Scan strm = DTSC::Scan(serverCfg.mapped, serverCfg.len).getMember("streams").getMember(streamName).getMember("meta"); DTSC::Scan strm = DTSC::Scan(serverCfg.mapped, serverCfg.len).getMember("streams").getMember(streamName).getMember("meta");
IPC::sharedPage streamIndex; IPC::sharedPage streamIndex;
if (!strm){ if (!strm){
configLock.post(); configLock.post();
//Stream metadata not found - attempt to start it //Stream metadata not found - attempt to start it
if (Util::startInput(streamName)){ if (Util::startInput(streamName)){
streamIndex.init(streamName, 8 * 1024 * 1024); streamIndex.init(streamName, DEFAULT_META_PAGE_SIZE);
if (streamIndex.mapped){ if (streamIndex.mapped){
metaLock = true; metaLock = true;
metaLocker.wait(); metaLocker.wait();

View file

@ -449,7 +449,7 @@ namespace Mist {
streamName = amfData.getContentP(3)->StrValue(); streamName = amfData.getContentP(3)->StrValue();
Util::sanitizeName(streamName); Util::sanitizeName(streamName);
//pull the server configuration //pull the server configuration
IPC::sharedPage serverCfg("!mistConfig", 4*1024*1024); ///< Contains server configuration and capabilities IPC::sharedPage serverCfg("!mistConfig", DEFAULT_CONF_PAGE_SIZE); ///< Contains server configuration and capabilities
IPC::semaphore configLock("!mistConfLock", O_CREAT | O_RDWR, ACCESSPERMS, 1); IPC::semaphore configLock("!mistConfLock", O_CREAT | O_RDWR, ACCESSPERMS, 1);
configLock.wait(); configLock.wait();