- 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