- Global AMF::parseOne3 (const unsigned char *&data, unsigned int &len, unsigned int &i, std::string name)
Fix references?
Implement traits by reference. Or references in general, of course...
Read in arrsize sealed member names, then arrsize sealed members.
Fix references?
Implement traits by reference. Or references in general, of course...
Read in arrsize sealed member names, then arrsize sealed members.
Fix references?
Implement traits by reference. Or references in general, of course...
Read in arrsize sealed member names, then arrsize sealed members.
Fix references?
- Namespace Analysers
- rewrite this analyser.
- Global Analysers::printPES (const std::string &d, unsigned long PID, int detailLevel)
- Implement this. Complicated field, bah.
- Global binToInt (std::string &binary)
- Maybe move to util?
- Global Bit::setMSB (char *pointer, unsigned int offsetBits, unsigned int dataBits, unsigned long long value)
- Finish writing this - untested atm.
- Global Controller::CheckProtocols (JSON::Value &p, const JSON::Value &capabilities)
- Check dependencies?
- Global Controller::fillTotals (JSON::Value &req, JSON::Value &rep)
- Make the interval configurable instead of 1 second
- Global Controller::handleAPIConnection (Socket::Connection &conn)
- Re-enable conversion API at some point.
- Global Controller::statStorage::update (IPC::statExchange &data)
- Remove least interesting data first.
- Global Controller::streamsEqual (JSON::Value &one, JSON::Value &two)
Change this to use capabilities["inputs"] and only compare required/optional parameters.
Maybe change this to check for correct source and/or required parameters.
Maybe change this to check for correct source and/or required parameters.
Maybe change this to check for correct source and/or required parameters.
- Global DTSC::hex2c (char c)
- Move this function to some generic area. Duplicate from json.cpp
- Global DTSC::Meta::Meta ()
Make toJSON().toNetpacked() shorter
Make toJSON().toNetpacked() shorter
- Global DTSC::string_escape (const std::string val)
- Move this function to some generic area. Duplicate from json.cpp
- Global FLV::Tag::needsInitData ()
- Check if MP3 does or does not require init data...
- Global HTTP::Parser::BuildRequest ()
- Include GET/POST variable parsing?
- Global HTTP::Parser::BuildResponse (std::string code, std::string message)
- Include GET/POST variable parsing?
- Global HTTP::Parser::parse (std::string &HTTPbuffer)
- Make this not resize HTTPbuffer in parts, but read all at once and then remove the entire request, like doxygen claims it does?
- Global HTTP::Parser::SendRequest (Socket::Connection &conn)
- Include GET/POST variable parsing?
- Global HTTP::Parser::SendResponse (std::string code, std::string message, Socket::Connection &conn)
- Include GET/POST variable parsing?
- Global IPC::sharedFile::init (std::string name_, unsigned int len_, bool master_=false, bool autoBackoff=true)
- Use ACCESSPERMS instead of 0600?
- Namespace Mist
Whar be Opus support?
Implement this trigger equivalent...
- Global Mist::inputBuffer::removeKey (unsigned int tid)
- Fix recording
- Global Mist::inputBuffer::removeUnused ()
- Consider replacing with eraseTrackDataPages(it->first)?
- Global Mist::inputBuffer::userCallback (char *data, size_t len, unsigned int id)
Optimize this part. Find a way to not have to store the metadata in JSON first, but read it from the page immediately
Maybe switch to a new form of detecting collisions, especially with regards to multiple audio languages and camera angles.
- Global Mist::inputMP4::readHeader ()
: this can be done with casting
more stuff here
this might be nice to calculate from mp4 file;
note: set this to begin time
Fix this. This makes no sense whatsoever. This isn't frame per kilosecond, but milli-STCO-entries per second.
- Global Mist::inputOGG::parseBeginOfStream (OGG::Page &bosPage)
- check if all trackID (tid) instances are replaced with bitstream serial numbers
- Global Mist::inputOGG::readHeader ()
- make sure the header is ffmpeg compatible
- Global Mist::inputTS::getNext (bool smart=true)
- Finish the implementation
- Global Mist::inputTS::readHeader ()
- Find errors, perhaps parts can be made more modular
- Global Mist::inputTS::trackSelect (std::string trackSpec)
- test whether selecting a subset of tracks work
- Global Mist::mp4TrackHeader::read (MP4::TRAK &trakBox)
more stuff here
this box should not have to be read, since its information is taken from the DTSH
- Global Mist::negotiationProxy::bufferLivePacket (DTSC::Packet &packet, DTSC::Meta &myMeta)
- Figure out how to act with declined track here
- Global Mist::OutDashMP4::buildManifest ()
- Dash automatically selects the last audio and video track for manifest, maybe make this expandable/selectable?
- Global Mist::OutDashMP4::buildMoof (unsigned int trackid, unsigned int keynum)
- Determine index for live
- Global Mist::OutDashMP4::buildMoov (unsigned int trackid)
- Note: this code is copied, note for muxing seperation
- Global Mist::OutHDS::getTracks ()
- Why do we have only one audio track option?
- Global Mist::OutHLS::onHTTP ()
- Detection of out-of-range parts.
- Global Mist::OutHSS::sendHeader ()
Rewrite to fragments
Select correct track (tid);
Check if this is a placeholder, or an actually correct number
- Global Mist::OutProgressiveMP4::buildFragment (int fragNum)
- See if we can use something more elegant than a member variable...
- Global Mist::OutProgressiveMP4::DTSCMeta2MP4Header (long long &size, int fragmented=0)
This function does not indicate errors anywhere... maybe fix this...
Figure out if this box is really needed for anything.
rewrite for sanity
PLEASE rewrite this for sanity.... SHOULD be: index FIRST, value SECOND
rewrite for sanity
Again, rewrite for sanity. index FIRST, value SECOND
Update this thing for boxes >4G?
- Global Mist::OutProgressiveMP4::init (Util::Config *cfg)
- uncomment when we actually start implementing mp4 recording
- Global Mist::OutProgressiveMP4::onHTTP ()
Should this happen here?
Do we really need this though?
Note: Not necessary, but we might want to think of a method that does not use seeking
Switch to chunked?
Switch to chunked?
Switch to chunked?
- Global Mist::Output::Log (std::string type, std::string message)
These logs need to show up in the controller.
Additionally, the triggering and untriggering of limits should be recorded in the controller as well.
- Global Mist::Output::run ()
- generate payload
- Global Mist::OutRTSP::handleDescribe ()
- Make sure this works correctly for multibitrate streams.
- Global Mist::OutRTSP::handlePlay ()
- Add support for queuing multiple play ranges
- Global Mist::OutRTSP::handleSetup ()
This needs error checking.
We should probably not allocate UDP sockets when using TCP.
- Global Mist::OutRTSP::onRequest ()
- Handle ANNOUNCE for push? Send out ANNOUNCE with stream length updates?
- Global Mist::TSOutput::fillPacket (const char *data, const size_t dataLen)
- only resend the PAT/PMT for HLS
- Global Mist::TSOutput::packData
- update constructors?
- Global MP4::AudioSampleEntry::AudioSampleEntry ()
set default values
set default values
- Global MP4::Box::toPrettyString (uint32_t indent=0)
- Implement hexdump for unimplemented boxes?
- Global MP4::calcBoxSize (char readVal[16])
- make good working calcBoxSize with size and payloadoffset calculation
- Global MP4::DAC3::DAC3 (unsigned int rate, unsigned int channels)
- This is right now a default value. check the docs, this is a weird property
- Global MP4::ESDS::ESDS (std::string init)
- Do this better, in a non-hardcoded way.
- Global MP4::HVCC::setArrays (std::deque< HVCCArrayEntry > &arrays)
Add setter for the array entries
Add setter for the array entries
- Global MP4::MDHD::setLanguage (uint16_t newLanguage)
return language properly
return language properly
- Global MP4::VisualSampleEntry::VisualSampleEntry ()
set default values
set default values
- Global OGG::Page::sendTo (Socket::Connection &destination, int calcGranule=-2)
- Rewrite this
- Global pushFirstElement (std::string qId)
- Make the dstConn "persistent" for each thread?
- Global RTP::Packet::sendData (void *socket, void callBack(void *, char *, unsigned int, unsigned int), const char *payload, unsigned int payloadlen, unsigned int channel, std::string codec)
- This function probably belongs in DMS somewhere.
- Global RTP::Packet::sendH264 (void *socket, void callBack(void *, char *, unsigned int, unsigned int), const char *payload, unsigned int payloadlen, unsigned int channel)
- This function probably belongs in DMS somewhere.
- Global Socket::Connection::spool ()
- Provide better mechanism to prevent overbuffering.
- Global theora::header::datasize
put this back in pravate
put this back in pravate
put this back in pravate
- Global Triggers::handleTrigger (const std::string &trigger, const std::string &value, const std::string &payload, int sync)
Handle errors!
Return true/false based on config here.
Return true/false based on config here.
Return true/false based on config here.
Return true/false based on config here.
- Global TS::Packet::addStuffing ()
- more stuffing required
- Global TS::Stream::initializeMetadata (DTSC::Meta &meta, unsigned long tid=0)
- Fix these 2 values
- Global TS::Stream::parse (unsigned long tid)
Keep track of updates in PAT instead of keeping only the last PAT as a reference
Keep track of updates in PMT instead of keeping only the last PMT per program as a reference
- Global TS::Stream::parsePES (unsigned long tid)
- Determine keyframe-ness