Such style. (Code style unification)
This commit is contained in:
		
							parent
							
								
									57bcd8f25c
								
							
						
					
					
						commit
						8c01ec8897
					
				
					 57 changed files with 6548 additions and 6437 deletions
				
			
		|  | @ -20,7 +20,8 @@ namespace Secure { | |||
|                                              0xe5, 0x16, 0x01, 0xf1, 0x98, 0xc9, 0x0b, 0xd6, 0xdf, 0x8a, 0x64, 0x47, 0xc4, 0x44, 0xcc, 0x92, 0x69, 0x28, 0xee, 0x7d, 0xac, 0xdc, 0x30, 0x56, | ||||
|                                              0x3a, 0xe7, 0xbc, 0xba, 0x45, 0x16, 0x2c, 0x4c, 0x46, 0x6b, 0x2b, 0x20, 0xfb, 0x3d, 0x20, 0x35, 0xbb, 0x48, 0x49, 0x13, 0x65, 0xc9, 0x9a, 0x38, | ||||
|                                              0x10, 0x84, 0x1a, 0x8c, 0xc9, 0xd7, 0xde, 0x07, 0x10, 0x5a, 0xfb, 0xb4, 0x95, 0xae, 0x18, 0xf2, 0xe3, 0x15, 0xe8, 0xad, 0x7e, 0xe5, 0x3c, 0xa8, | ||||
|       0x47, 0x85, 0xd6, 0x1f, 0x54, 0xb5, 0xa3, 0x79, 0x02, 0x03, 0x01, 0x00, 0x01}; ///< The GBv2 public key file.
 | ||||
|                                              0x47, 0x85, 0xd6, 0x1f, 0x54, 0xb5, 0xa3, 0x79, 0x02, 0x03, 0x01, 0x00, 0x01 | ||||
|                                             }; ///< The GBv2 public key file.
 | ||||
|   static unsigned int __gbv2keypub_der_len = 294; ///< Length of GBv2 public key data
 | ||||
| 
 | ||||
|   /// Attempts to load the GBv2 public key.
 | ||||
|  |  | |||
|  | @ -592,7 +592,9 @@ void Util::getMyExec(std::deque<std::string> & execs){ | |||
|   } | ||||
| #else | ||||
|   DIR * d = opendir(path.c_str()); | ||||
|   if (!d){return;} | ||||
|   if (!d) { | ||||
|     return; | ||||
|   } | ||||
|   struct dirent * dp; | ||||
|   do { | ||||
|     errno = 0; | ||||
|  |  | |||
|  | @ -31,7 +31,9 @@ namespace Converter { | |||
|     cmd.push_back(NULL); | ||||
|     int outFD = -1; | ||||
|     Util::Procs::StartPiped("FFMpegInfo", &cmd[0], 0, &outFD, 0); | ||||
|     while( Util::Procs::isActive("FFMpegInfo")){ Util::sleep(100); } | ||||
|     while (Util::Procs::isActive("FFMpegInfo")) { | ||||
|       Util::sleep(100); | ||||
|     } | ||||
|     FILE * outFile = fdopen(outFD, "r"); | ||||
|     char * fileBuf = 0; | ||||
|     size_t fileBufLen = 0; | ||||
|  |  | |||
							
								
								
									
										32
									
								
								lib/dtsc.cpp
									
										
									
									
									
								
							
							
						
						
									
										32
									
								
								lib/dtsc.cpp
									
										
									
									
									
								
							|  | @ -169,7 +169,9 @@ bool DTSC::Stream::parsePacket(Socket::Buffer & buffer){ | |||
| 
 | ||||
| /// Adds a keyframe packet to all tracks, so the stream can be fully played.
 | ||||
| void DTSC::Stream::endStream() { | ||||
|   if (!metadata.tracks.size()){return;} | ||||
|   if (!metadata.tracks.size()) { | ||||
|     return; | ||||
|   } | ||||
|   for (std::map<int, Track>::iterator it = metadata.tracks.begin(); it != metadata.tracks.end(); it++) { | ||||
|     JSON::Value newPack; | ||||
|     newPack["time"] = (long long)it->second.lastms; | ||||
|  | @ -271,7 +273,9 @@ void DTSC::Stream::addPacket(JSON::Value & newPack){ | |||
|   livePos newPos; | ||||
|   newPos.trackID = newPack["trackid"].asInt(); | ||||
|   newPos.seekTime = newPack["time"].asInt(); | ||||
|   if (!metadata.tracks.count(newPos.trackID) && (!newPack.isMember("mark") || newPack["mark"].asStringRef() != "pause")){return;} | ||||
|   if (!metadata.tracks.count(newPos.trackID) && (!newPack.isMember("mark") || newPack["mark"].asStringRef() != "pause")) { | ||||
|     return; | ||||
|   } | ||||
|   if (buffercount > 1 && metadata.tracks[newPos.trackID].keys.size() > 1 && newPos.seekTime < (long long unsigned int)metadata.tracks[newPos.trackID].keys.rbegin()->getTime()) { | ||||
|     resetStream(); | ||||
|   } | ||||
|  | @ -325,7 +329,9 @@ void DTSC::Stream::addPacket(JSON::Value & newPack){ | |||
| /// Deletes a the first part of the buffer, updating the keyframes list and metadata as required.
 | ||||
| /// Will print a warning if a track has less than 2 keyframes left because of this.
 | ||||
| void DTSC::Stream::cutOneBuffer() { | ||||
|   if ( !buffers.size()){return;} | ||||
|   if (!buffers.size()) { | ||||
|     return; | ||||
|   } | ||||
|   int trid = buffers.begin()->first.trackID; | ||||
|   long long unsigned int delTime = buffers.begin()->first.seekTime; | ||||
|   if (buffercount > 1) { | ||||
|  | @ -469,11 +475,15 @@ int DTSC::Stream::canSeekms(unsigned int ms){ | |||
|       if (it->second.keys[0].getTime() <= ms && it->second.keys[it->second.keys.size() - 1].getTime() >= ms) { | ||||
|         return 0; | ||||
|       } | ||||
|       if (it->second.keys[0].getTime() > ms){too_late = true;} | ||||
|       if (it->second.keys[0].getTime() > ms) { | ||||
|         too_late = true; | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|   //did we spot a track already past this point? return too late.
 | ||||
|   if (too_late){return -1;} | ||||
|   if (too_late) { | ||||
|     return -1; | ||||
|   } | ||||
|   //otherwise, assume not available yet
 | ||||
|   return 1; | ||||
| } | ||||
|  | @ -512,7 +522,9 @@ bool DTSC::Stream::isNewest(DTSC::livePos & pos, std::set<int> & allowedTracks){ | |||
| DTSC::livePos DTSC::Stream::getNext(DTSC::livePos & pos, std::set<int> & allowedTracks) { | ||||
|   std::map<livePos, JSON::Value>::iterator iter = buffers.upper_bound(pos); | ||||
|   while (iter != buffers.end()) { | ||||
|     if (allowedTracks.count(iter->first.trackID)){return iter->first;} | ||||
|     if (allowedTracks.count(iter->first.trackID)) { | ||||
|       return iter->first; | ||||
|     } | ||||
|     iter++; | ||||
|   } | ||||
|   return pos; | ||||
|  | @ -1078,8 +1090,12 @@ DTSC::File::~File(){ | |||
| 
 | ||||
| 
 | ||||
| bool DTSC::isFixed(JSON::Value & metadata) { | ||||
|   if (metadata.isMember("is_fixed")){return true;} | ||||
|   if ( !metadata.isMember("tracks")){return false;} | ||||
|   if (metadata.isMember("is_fixed")) { | ||||
|     return true; | ||||
|   } | ||||
|   if (!metadata.isMember("tracks")) { | ||||
|     return false; | ||||
|   } | ||||
|   for (JSON::ObjIter it = metadata["tracks"].ObjBegin(); it != metadata["tracks"].ObjEnd(); it++) { | ||||
|     if (it->second["type"].asString() == "meta") { | ||||
|       continue; | ||||
|  |  | |||
|  | @ -288,7 +288,9 @@ namespace DTSC { | |||
|   ///\return The timestamp of this packet.
 | ||||
|   long long unsigned int Packet::getTime() const { | ||||
|     if (version != DTSC_V2) { | ||||
|       if (!data){return 0;} | ||||
|       if (!data) { | ||||
|         return 0; | ||||
|       } | ||||
|       return getInt("time"); | ||||
|     } | ||||
|     return ((long long int)ntohl(((int *)(data + 12))[0]) << 32) | ntohl(((int *)(data + 12))[1]); | ||||
|  | @ -443,7 +445,9 @@ namespace DTSC { | |||
| 
 | ||||
|   /// Returns the first byte of this DTSC value, or 0 on error.
 | ||||
|   char Scan::getType() { | ||||
|     if (!p){return 0;} | ||||
|     if (!p) { | ||||
|       return 0; | ||||
|     } | ||||
|     return p[0]; | ||||
|   } | ||||
| 
 | ||||
|  | @ -478,7 +482,9 @@ namespace DTSC { | |||
|         char * str; | ||||
|         unsigned int strlen; | ||||
|         getString(str, strlen); | ||||
|         if (!strlen){return 0;} | ||||
|         if (!strlen) { | ||||
|           return 0; | ||||
|         } | ||||
|         return strtoll(str, 0, 0); | ||||
|       default: | ||||
|         return 0; | ||||
|  | @ -513,8 +519,12 @@ namespace DTSC { | |||
| 
 | ||||
|   /// \todo Move this function to some generic area. Duplicate from json.cpp
 | ||||
|   static inline char hex2c(char c) { | ||||
|     if (c < 10){return '0' + c;} | ||||
|     if (c < 16){return 'A' + (c - 10);} | ||||
|     if (c < 10) { | ||||
|       return '0' + c; | ||||
|     } | ||||
|     if (c < 16) { | ||||
|       return 'A' + (c - 10); | ||||
|     } | ||||
|     return '0'; | ||||
|   } | ||||
| 
 | ||||
|  |  | |||
|  | @ -455,9 +455,15 @@ bool FLV::Tag::DTSCLoader(DTSC::Packet & packData, DTSC::Track & track){ | |||
|     return false; | ||||
|   } | ||||
|   setLen(); | ||||
|   if (track.type == "video"){data[0] = 0x09;} | ||||
|   if (track.type == "audio"){data[0] = 0x08;} | ||||
|   if (track.type == "meta"){data[0] = 0x12;} | ||||
|   if (track.type == "video") { | ||||
|     data[0] = 0x09; | ||||
|   } | ||||
|   if (track.type == "audio") { | ||||
|     data[0] = 0x08; | ||||
|   } | ||||
|   if (track.type == "meta") { | ||||
|     data[0] = 0x12; | ||||
|   } | ||||
|   data[1] = ((len - 15) >> 16) & 0xFF; | ||||
|   data[2] = ((len - 15) >> 8) & 0xFF; | ||||
|   data[3] = (len - 15) & 0xFF; | ||||
|  | @ -910,7 +916,9 @@ bool FLV::Tag::FileLoader(FILE * f){ | |||
|   int postflags = preflags | O_NONBLOCK; | ||||
|   fcntl(fileno(f), F_SETFL, postflags); | ||||
| 
 | ||||
|   if (len < 15){len = 15;} | ||||
|   if (len < 15) { | ||||
|     len = 15; | ||||
|   } | ||||
|   if (!checkBufferSize()) { | ||||
|     return false; | ||||
|   } | ||||
|  |  | |||
							
								
								
									
										12
									
								
								lib/json.cpp
									
										
									
									
									
								
							
							
						
						
									
										12
									
								
								lib/json.cpp
									
										
									
									
									
								
							|  | @ -17,8 +17,12 @@ static inline char c2hex(char c){ | |||
| } | ||||
| 
 | ||||
| static inline char hex2c(char c) { | ||||
|   if (c < 10){return '0' + c;} | ||||
|   if (c < 16){return 'A' + (c - 10);} | ||||
|   if (c < 10) { | ||||
|     return '0' + c; | ||||
|   } | ||||
|   if (c < 16) { | ||||
|     return 'A' + (c - 10); | ||||
|   } | ||||
|   return '0'; | ||||
| } | ||||
| 
 | ||||
|  | @ -1130,7 +1134,9 @@ JSON::Value JSON::fromDTMI2(std::string & data){ | |||
| } | ||||
| 
 | ||||
| void JSON::fromDTMI2(const unsigned char * data, unsigned int len, unsigned int & i, JSON::Value & ret) { | ||||
|   if (len < 13){return;} | ||||
|   if (len < 13) { | ||||
|     return; | ||||
|   } | ||||
|   long long int tmpTrackID = ntohl(((int *)(data + i))[0]); | ||||
|   long long int tmpTime = ntohl(((int *)(data + i))[1]); | ||||
|   tmpTime <<= 32; | ||||
|  |  | |||
|  | @ -1075,8 +1075,12 @@ namespace MP4{ | |||
|     } | ||||
|     memset(data + payloadOffset, 0, 24); //set all bytes (32 - 8) to zeroes
 | ||||
| 
 | ||||
|     if (type == "video"){setHandlerType("vide");} | ||||
|     if (type == "audio"){setHandlerType("soun");} | ||||
|     if (type == "video") { | ||||
|       setHandlerType("vide"); | ||||
|     } | ||||
|     if (type == "audio") { | ||||
|       setHandlerType("soun"); | ||||
|     } | ||||
|     setName(name); | ||||
|   } | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										0
									
								
								lib/nal.cpp
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								lib/nal.cpp
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
									
										0
									
								
								lib/nal.h
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								lib/nal.h
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							|  | @ -412,8 +412,7 @@ namespace OGG{ | |||
|       0xBCB4666DU, 0xB8757BDAU, 0xB5365D03U, 0xB1F740B4U, | ||||
|     }; | ||||
| 
 | ||||
|     while (len > 0) | ||||
|     { | ||||
|     while (len > 0) { | ||||
|       crc = table[*data ^ ((crc >> 24) & 0xff)] ^ (crc << 8); | ||||
|       data++; | ||||
|       len--; | ||||
|  |  | |||
|  | @ -27,11 +27,15 @@ bool Util::Procs::handler_set = false; | |||
| 
 | ||||
| static bool childRunning(pid_t p) { | ||||
|   pid_t ret = waitpid(p, 0, WNOHANG); | ||||
|   if (ret == p){return false;} | ||||
|   if (ret == p) { | ||||
|     return false; | ||||
|   } | ||||
|   if (ret < 0 && errno == EINTR) { | ||||
|     return childRunning(p); | ||||
|   } | ||||
|   if (kill(p, 0) == 0){return true;} | ||||
|   if (kill(p, 0) == 0) { | ||||
|     return true; | ||||
|   } | ||||
|   return false; | ||||
| } | ||||
| 
 | ||||
|  | @ -43,7 +47,9 @@ void Util::Procs::exit_handler(){ | |||
|   int waiting = 0; | ||||
|   std::map<pid_t, std::string> listcopy = plist; | ||||
|   std::map<pid_t, std::string>::iterator it; | ||||
|   if (listcopy.empty()){return;} | ||||
|   if (listcopy.empty()) { | ||||
|     return; | ||||
|   } | ||||
| 
 | ||||
|   //wait up to 0.5 second for applications to shut down
 | ||||
|   while (!listcopy.empty() && waiting <= 25) { | ||||
|  | @ -58,7 +64,9 @@ void Util::Procs::exit_handler(){ | |||
|       } | ||||
|     } | ||||
|   } | ||||
|   if (listcopy.empty()){return;} | ||||
|   if (listcopy.empty()) { | ||||
|     return; | ||||
|   } | ||||
| 
 | ||||
|   DEBUG_MSG(DLVL_DEVEL, "Sending SIGINT to remaining %d children", (int)listcopy.size()); | ||||
|   //send sigint to all remaining
 | ||||
|  | @ -84,7 +92,9 @@ void Util::Procs::exit_handler(){ | |||
|       } | ||||
|     } | ||||
|   } | ||||
|   if (listcopy.empty()){return;} | ||||
|   if (listcopy.empty()) { | ||||
|     return; | ||||
|   } | ||||
| 
 | ||||
|   DEBUG_MSG(DLVL_DEVEL, "Sending SIGKILL to remaining %d children", (int)listcopy.size()); | ||||
|   //send sigkill to all remaining
 | ||||
|  | @ -110,7 +120,9 @@ void Util::Procs::exit_handler(){ | |||
|       } | ||||
|     } | ||||
|   } | ||||
|   if (listcopy.empty()){return;} | ||||
|   if (listcopy.empty()) { | ||||
|     return; | ||||
|   } | ||||
|   DEBUG_MSG(DLVL_DEVEL, "Giving up with %d children left.", (int)listcopy.size()); | ||||
| 
 | ||||
| } | ||||
|  | @ -183,7 +195,9 @@ std::string Util::Procs::getOutputOf(char* const* argv){ | |||
|   std::string ret; | ||||
|   int fin = 0, fout = -1, ferr = 0; | ||||
|   StartPiped("output_getter", argv, &fin, &fout, &ferr); | ||||
|   while (isActive("output_getter")){Util::sleep(100);} | ||||
|   while (isActive("output_getter")) { | ||||
|     Util::sleep(100); | ||||
|   } | ||||
|   FILE * outFile = fdopen(fout, "r"); | ||||
|   char * fileBuf = 0; | ||||
|   size_t fileBufLen = 0; | ||||
|  | @ -200,7 +214,9 @@ std::string Util::Procs::getOutputOf(std::string cmd){ | |||
|   std::string ret; | ||||
|   int fin = 0, fout = -1, ferr = 0; | ||||
|   StartPiped("output_getter", cmd, &fin, &fout, &ferr); | ||||
|   while (isActive("output_getter")){Util::sleep(100);} | ||||
|   while (isActive("output_getter")) { | ||||
|     Util::sleep(100); | ||||
|   } | ||||
|   FILE * outFile = fdopen(fout, "r"); | ||||
|   char * fileBuf = 0; | ||||
|   size_t fileBufLen = 0; | ||||
|  |  | |||
|  | @ -47,13 +47,15 @@ uint8_t genuineFMSKey[] = {0x47, 0x65, 0x6e, 0x75, 0x69, 0x6e, 0x65, 0x20, 0x41, | |||
|                            0x4d, 0x65, 0x64, 0x69, 0x61, 0x20, 0x53, 0x65, 0x72, | ||||
|                            0x76, // Genuine Adobe Flash Media Server 001
 | ||||
|                            0x65, 0x72, 0x20, 0x30, 0x30, 0x31, 0xf0, 0xee, 0xc2, 0x4a, 0x80, 0x68, 0xbe, 0xe8, 0x2e, 0x00, 0xd0, 0xd1, 0x02, 0x9e, 0x7e, 0x57, 0x6e, 0xec, | ||||
|     0x5d, 0x2d, 0x29, 0x80, 0x6f, 0xab, 0x93, 0xb8, 0xe6, 0x36, 0xcf, 0xeb, 0x31, 0xae}; // 68
 | ||||
|                            0x5d, 0x2d, 0x29, 0x80, 0x6f, 0xab, 0x93, 0xb8, 0xe6, 0x36, 0xcf, 0xeb, 0x31, 0xae | ||||
|                           }; // 68
 | ||||
| 
 | ||||
| uint8_t genuineFPKey[] = {0x47, 0x65, 0x6e, 0x75, 0x69, 0x6e, 0x65, 0x20, 0x41, 0x64, 0x6f, 0x62, 0x65, 0x20, 0x46, 0x6c, 0x61, 0x73, 0x68, 0x20, | ||||
|                           0x50, 0x6c, 0x61, | ||||
|                           0x79, // Genuine Adobe Flash Player 001
 | ||||
|                           0x65, 0x72, 0x20, 0x30, 0x30, 0x31, 0xf0, 0xee, 0xc2, 0x4a, 0x80, 0x68, 0xbe, 0xe8, 0x2e, 0x00, 0xd0, 0xd1, 0x02, 0x9e, 0x7e, 0x57, 0x6e, 0xec, | ||||
|     0x5d, 0x2d, 0x29, 0x80, 0x6f, 0xab, 0x93, 0xb8, 0xe6, 0x36, 0xcf, 0xeb, 0x31, 0xae}; // 62
 | ||||
|                           0x5d, 0x2d, 0x29, 0x80, 0x6f, 0xab, 0x93, 0xb8, 0xe6, 0x36, 0xcf, 0xeb, 0x31, 0xae | ||||
|                          }; // 62
 | ||||
| 
 | ||||
| inline uint32_t GetDigestOffset(uint8_t * pBuffer, uint8_t scheme) { | ||||
|   if (scheme == 0) { | ||||
|  |  | |||
|  | @ -438,11 +438,15 @@ bool Socket::Connection::peek(){ | |||
| /// Returns true if new data was received, false otherwise.
 | ||||
| bool Socket::Connection::flush() { | ||||
|   bool bing = isBlocking(); | ||||
|   if (!bing){setBlocking(true);} | ||||
|   if (!bing) { | ||||
|     setBlocking(true); | ||||
|   } | ||||
|   while (upbuffer.size() > 0 && connected()) { | ||||
|     iwrite(upbuffer.get()); | ||||
|   } | ||||
|   if (!bing){setBlocking(false);} | ||||
|   if (!bing) { | ||||
|     setBlocking(false); | ||||
|   } | ||||
|   /// \todo Provide better mechanism to prevent overbuffering.
 | ||||
|   if (downbuffer.size() > 1000) { | ||||
|     return true; | ||||
|  | @ -461,7 +465,9 @@ Socket::Buffer & Socket::Connection::Received(){ | |||
| /// Any data that could not be send will block until it can be send or the connection is severed.
 | ||||
| void Socket::Connection::SendNow(const char * data, size_t len) { | ||||
|   bool bing = isBlocking(); | ||||
|   if (!bing){setBlocking(true);} | ||||
|   if (!bing) { | ||||
|     setBlocking(true); | ||||
|   } | ||||
|   while (upbuffer.size() > 0 && connected()) { | ||||
|     iwrite(upbuffer.get()); | ||||
|   } | ||||
|  | @ -469,7 +475,9 @@ void Socket::Connection::SendNow(const char * data, size_t len){ | |||
|   while (i < len && connected()) { | ||||
|     i += iwrite(data + i, std::min((long unsigned int)(len - i), 51200ul)); | ||||
|   } | ||||
|   if (!bing){setBlocking(false);} | ||||
|   if (!bing) { | ||||
|     setBlocking(false); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| /// Appends data to the upbuffer.
 | ||||
|  | @ -1111,7 +1119,9 @@ void Socket::UDPConnection::SendNow(const char* sdata){ | |||
| /// Does not do anything if len < 1.
 | ||||
| /// Prints an DLVL_FAIL level debug message if sending failed.
 | ||||
| void Socket::UDPConnection::SendNow(const char * sdata, size_t len) { | ||||
|   if (len < 1){return;} | ||||
|   if (len < 1) { | ||||
|     return; | ||||
|   } | ||||
|   int r = sendto(sock, sdata, len, 0, (sockaddr *)destAddr, destAddr_size); | ||||
|   if (r > 0) { | ||||
|     up += r; | ||||
|  | @ -1130,16 +1140,24 @@ int Socket::UDPConnection::bind(int port){ | |||
|   struct sockaddr_in6 s6; | ||||
|   s6.sin6_family = AF_INET6; | ||||
|   s6.sin6_addr = in6addr_any; | ||||
|   if (port){s6.sin6_port = htons(port);} | ||||
|   if (port) { | ||||
|     s6.sin6_port = htons(port); | ||||
|   } | ||||
|   int r = ::bind(sock, (sockaddr *)&s6, sizeof(s6)); | ||||
|   if (r == 0){return ntohs(s6.sin6_port);} | ||||
|   if (r == 0) { | ||||
|     return ntohs(s6.sin6_port); | ||||
|   } | ||||
| 
 | ||||
|   struct sockaddr_in s4; | ||||
|   s4.sin_family = AF_INET; | ||||
|   s4.sin_addr.s_addr = INADDR_ANY; | ||||
|   if (port){s4.sin_port = htons(port);} | ||||
|   if (port) { | ||||
|     s4.sin_port = htons(port); | ||||
|   } | ||||
|   r = ::bind(sock, (sockaddr *)&s4, sizeof(s4)); | ||||
|   if (r == 0){return ntohs(s4.sin_port);} | ||||
|   if (r == 0) { | ||||
|     return ntohs(s4.sin_port); | ||||
|   } | ||||
| 
 | ||||
|   DEBUG_MSG(DLVL_FAIL, "Could not bind UDP socket to port %d", port); | ||||
|   return 0; | ||||
|  |  | |||
							
								
								
									
										144
									
								
								lib/theora.cpp
									
										
									
									
									
								
							
							
						
						
									
										144
									
								
								lib/theora.cpp
									
										
									
									
									
								
							|  | @ -60,18 +60,42 @@ namespace theora{ | |||
|   } | ||||
| 
 | ||||
|   bool header::validateIdentificationHeader() { | ||||
|     if (datasize != 42){return false;} | ||||
|     if (getHeaderType() != 0){return false;} | ||||
|     if (getVMAJ() != 3){return false;} | ||||
|     if (getVMIN() != 2){return false;} | ||||
|     if (getFMBW() == 0){return false;} | ||||
|     if (getFMBH() == 0){return false;} | ||||
|     if ((short)getPICW() > getFMBW() * 16){return false;} | ||||
|     if ((short)getPICH() > getFMBH() * 16){return false;} | ||||
|     if ((short)getPICX() > (getFMBW() * 16) - (short)getPICW()){return false;} | ||||
|     if ((short)getPICY() > (getFMBH() * 16) - (short)getPICH()){return false;} | ||||
|     if (getFRN() == 0){return false;} | ||||
|     if (getFRD() == 0){return false;} | ||||
|     if (datasize != 42) { | ||||
|       return false; | ||||
|     } | ||||
|     if (getHeaderType() != 0) { | ||||
|       return false; | ||||
|     } | ||||
|     if (getVMAJ() != 3) { | ||||
|       return false; | ||||
|     } | ||||
|     if (getVMIN() != 2) { | ||||
|       return false; | ||||
|     } | ||||
|     if (getFMBW() == 0) { | ||||
|       return false; | ||||
|     } | ||||
|     if (getFMBH() == 0) { | ||||
|       return false; | ||||
|     } | ||||
|     if ((short)getPICW() > getFMBW() * 16) { | ||||
|       return false; | ||||
|     } | ||||
|     if ((short)getPICH() > getFMBH() * 16) { | ||||
|       return false; | ||||
|     } | ||||
|     if ((short)getPICX() > (getFMBW() * 16) - (short)getPICW()) { | ||||
|       return false; | ||||
|     } | ||||
|     if ((short)getPICY() > (getFMBH() * 16) - (short)getPICH()) { | ||||
|       return false; | ||||
|     } | ||||
|     if (getFRN() == 0) { | ||||
|       return false; | ||||
|     } | ||||
|     if (getFRD() == 0) { | ||||
|       return false; | ||||
|     } | ||||
|     return true; | ||||
|   } | ||||
| 
 | ||||
|  | @ -109,115 +133,161 @@ namespace theora{ | |||
|   } | ||||
| 
 | ||||
|   char header::getVMAJ() { | ||||
|     if (getHeaderType() == 0){return data[7];} | ||||
|     if (getHeaderType() == 0) { | ||||
|       return data[7]; | ||||
|     } | ||||
|     return 0; | ||||
|   } | ||||
| 
 | ||||
|   char header::getVMIN() { | ||||
|     if (getHeaderType() == 0){return data[8];} | ||||
|     if (getHeaderType() == 0) { | ||||
|       return data[8]; | ||||
|     } | ||||
|     return 0; | ||||
|   } | ||||
| 
 | ||||
|   char header::getVREV() { | ||||
|     if (getHeaderType() == 0){return data[9];} | ||||
|     if (getHeaderType() == 0) { | ||||
|       return data[9]; | ||||
|     } | ||||
|     return 0; | ||||
|   } | ||||
| 
 | ||||
|   short header::getFMBW() { | ||||
|     if (getHeaderType() == 0){return getInt16(10);} | ||||
|     if (getHeaderType() == 0) { | ||||
|       return getInt16(10); | ||||
|     } | ||||
|     return 0; | ||||
|   } | ||||
| 
 | ||||
|   short header::getFMBH() { | ||||
|     if (getHeaderType() == 0){return getInt16(12);} | ||||
|     if (getHeaderType() == 0) { | ||||
|       return getInt16(12); | ||||
|     } | ||||
|     return 0; | ||||
|   } | ||||
| 
 | ||||
|   char header::getPICX() { | ||||
|     if (getHeaderType() == 0){return data[20];} | ||||
|     if (getHeaderType() == 0) { | ||||
|       return data[20]; | ||||
|     } | ||||
|     return 0; | ||||
|   } | ||||
| 
 | ||||
|   char header::getPICY() { | ||||
|     if (getHeaderType() == 0){return data[21];} | ||||
|     if (getHeaderType() == 0) { | ||||
|       return data[21]; | ||||
|     } | ||||
|     return 0; | ||||
|   } | ||||
| 
 | ||||
|   char header::getKFGShift() { | ||||
|     if (getHeaderType() == 0){return (getInt16(40) >> 5) & 0x1F;} | ||||
|     if (getHeaderType() == 0) { | ||||
|       return (getInt16(40) >> 5) & 0x1F; | ||||
|     } | ||||
|     return 0; | ||||
|   } | ||||
| 
 | ||||
|   long unsigned int header::getFRN() { | ||||
|     if (getHeaderType() == 0){return getInt32(22);} | ||||
|     if (getHeaderType() == 0) { | ||||
|       return getInt32(22); | ||||
|     } | ||||
|     return 0; | ||||
|   } | ||||
| 
 | ||||
|   long unsigned int header::getPICH() { | ||||
|     if (getHeaderType() == 0){return getInt24(17);} | ||||
|     if (getHeaderType() == 0) { | ||||
|       return getInt24(17); | ||||
|     } | ||||
|     return 0; | ||||
|   } | ||||
| 
 | ||||
|   long unsigned int header::getPICW() { | ||||
|     if (getHeaderType() == 0){return getInt24(14);} | ||||
|     if (getHeaderType() == 0) { | ||||
|       return getInt24(14); | ||||
|     } | ||||
|     return 0; | ||||
|   } | ||||
| 
 | ||||
|   long unsigned int header::getFRD() { | ||||
|     if (getHeaderType() == 0){return getInt32(26);} | ||||
|     if (getHeaderType() == 0) { | ||||
|       return getInt32(26); | ||||
|     } | ||||
|     return 0; | ||||
|   } | ||||
| 
 | ||||
|   long unsigned int header::getPARN() { | ||||
|     if (getHeaderType() == 0){return getInt24(30);} | ||||
|     if (getHeaderType() == 0) { | ||||
|       return getInt24(30); | ||||
|     } | ||||
|     return 0; | ||||
|   } | ||||
| 
 | ||||
|   long unsigned int header::getPARD() { | ||||
|     if (getHeaderType() == 0){return getInt24(33);} | ||||
|     if (getHeaderType() == 0) { | ||||
|       return getInt24(33); | ||||
|     } | ||||
|     return 0; | ||||
|   } | ||||
| 
 | ||||
|   char header::getCS() { | ||||
|     if (getHeaderType() == 0){return data[36];} | ||||
|     if (getHeaderType() == 0) { | ||||
|       return data[36]; | ||||
|     } | ||||
|     return 0; | ||||
|   } | ||||
| 
 | ||||
|   long unsigned int header::getNOMBR() { | ||||
|     if (getHeaderType() == 0){return getInt24(37);} | ||||
|     if (getHeaderType() == 0) { | ||||
|       return getInt24(37); | ||||
|     } | ||||
|     return 0; | ||||
|   } | ||||
| 
 | ||||
|   char header::getQUAL() { | ||||
|     if (getHeaderType() == 0){return (data[40] >> 3) & 0x1F;} | ||||
|     if (getHeaderType() == 0) { | ||||
|       return (data[40] >> 3) & 0x1F; | ||||
|     } | ||||
|     return 0; | ||||
|   } | ||||
| 
 | ||||
|   char header::getPF() { | ||||
|     if (getHeaderType() == 0){return (data[41] >> 3) & 0x03;} | ||||
|     if (getHeaderType() == 0) { | ||||
|       return (data[41] >> 3) & 0x03; | ||||
|     } | ||||
|     return 0; | ||||
|   } | ||||
| 
 | ||||
|   std::string header::getVendor() { | ||||
|     if (getHeaderType() != 1){return "";} | ||||
|     if (getHeaderType() != 1) { | ||||
|       return ""; | ||||
|     } | ||||
|     return std::string(data + 11, commentLen(7)); | ||||
|   } | ||||
| 
 | ||||
|   long unsigned int header::getNComments() { | ||||
|     if (getHeaderType() != 1){return 0;} | ||||
|     if (getHeaderType() != 1) { | ||||
|       return 0; | ||||
|     } | ||||
|     int offset = 11 + commentLen(7); | ||||
|     return commentLen(offset); | ||||
|   } | ||||
| 
 | ||||
|   char header::getLFLIMS(size_t index) { | ||||
|     if (getHeaderType() != 2){return 0;} | ||||
|     if (index >= 64){return 0;} | ||||
|     if (getHeaderType() != 2) { | ||||
|       return 0; | ||||
|     } | ||||
|     if (index >= 64) { | ||||
|       return 0; | ||||
|     } | ||||
|     char NBITS = (data[0] >> 5) & 0x07; | ||||
|     return NBITS; | ||||
|   } | ||||
| 
 | ||||
|   std::string header::getUserComment(size_t index) { | ||||
|     if (index >= getNComments()){return "";} | ||||
|     if (index >= getNComments()) { | ||||
|       return ""; | ||||
|     } | ||||
|     int offset = 11 + commentLen(7) + 4; | ||||
|     for (size_t i = 0; i < index; i++) { | ||||
|       offset += 4 + commentLen(offset); | ||||
|  | @ -306,7 +376,9 @@ namespace theora{ | |||
|   } | ||||
| 
 | ||||
|   char frame::getQIS(size_t index) { | ||||
|     if (index >= 3){return 0;} | ||||
|     if (index >= 3) { | ||||
|       return 0; | ||||
|     } | ||||
|     return 0; | ||||
|   } | ||||
| 
 | ||||
|  |  | |||
|  | @ -54,8 +54,7 @@ namespace tthread { | |||
| #endif | ||||
| 
 | ||||
| #if defined(_TTHREAD_WIN32_) | ||||
| condition_variable::condition_variable() : mWaitersCount(0) | ||||
| { | ||||
|   condition_variable::condition_variable() : mWaitersCount(0) { | ||||
|     mEvents[_CONDITION_EVENT_ONE] = CreateEvent(NULL, FALSE, FALSE, NULL); | ||||
|     mEvents[_CONDITION_EVENT_ALL] = CreateEvent(NULL, TRUE, FALSE, NULL); | ||||
|     InitializeCriticalSection(&mWaitersCountLock); | ||||
|  | @ -63,8 +62,7 @@ condition_variable::condition_variable() : mWaitersCount(0) | |||
| #endif | ||||
| 
 | ||||
| #if defined(_TTHREAD_WIN32_) | ||||
| condition_variable::~condition_variable() | ||||
| { | ||||
|   condition_variable::~condition_variable() { | ||||
|     CloseHandle(mEvents[_CONDITION_EVENT_ONE]); | ||||
|     CloseHandle(mEvents[_CONDITION_EVENT_ALL]); | ||||
|     DeleteCriticalSection(&mWaitersCountLock); | ||||
|  | @ -72,8 +70,7 @@ condition_variable::~condition_variable() | |||
| #endif | ||||
| 
 | ||||
| #if defined(_TTHREAD_WIN32_) | ||||
| void condition_variable::_wait() | ||||
| { | ||||
|   void condition_variable::_wait() { | ||||
|     // Wait for either event to become signaled due to notify_one() or
 | ||||
|     // notify_all() being called
 | ||||
|     int result = WaitForMultipleObjects(2, mEvents, FALSE, INFINITE); | ||||
|  | @ -92,8 +89,7 @@ void condition_variable::_wait() | |||
| #endif | ||||
| 
 | ||||
| #if defined(_TTHREAD_WIN32_) | ||||
| void condition_variable::notify_one() | ||||
| { | ||||
|   void condition_variable::notify_one() { | ||||
|     // Are there any waiters?
 | ||||
|     EnterCriticalSection(&mWaitersCountLock); | ||||
|     bool haveWaiters = (mWaitersCount > 0); | ||||
|  | @ -106,8 +102,7 @@ void condition_variable::notify_one() | |||
| #endif | ||||
| 
 | ||||
| #if defined(_TTHREAD_WIN32_) | ||||
| void condition_variable::notify_all() | ||||
| { | ||||
|   void condition_variable::notify_all() { | ||||
|     // Are there any waiters?
 | ||||
|     EnterCriticalSection(&mWaitersCountLock); | ||||
|     bool haveWaiters = (mWaitersCount > 0); | ||||
|  | @ -128,8 +123,7 @@ void condition_variable::notify_all() | |||
| //------------------------------------------------------------------------------
 | ||||
| 
 | ||||
| #if defined(_TTHREAD_POSIX_) | ||||
| static thread::id _pthread_t_to_ID(const pthread_t &aHandle) | ||||
| { | ||||
|   static thread::id _pthread_t_to_ID(const pthread_t & aHandle) { | ||||
|     static mutex idMapLock; | ||||
|     static std::map<pthread_t, unsigned long int> idMap; | ||||
|     static unsigned long int idCount(1); | ||||
|  | @ -163,13 +157,10 @@ void * thread::wrapper_function(void * aArg) | |||
|     // Get thread startup information
 | ||||
|     _thread_start_info * ti = (_thread_start_info *) aArg; | ||||
| 
 | ||||
|   try | ||||
|   { | ||||
|     try { | ||||
|       // Call the actual client thread function
 | ||||
|       ti->mFunction(ti->mArg); | ||||
|   } | ||||
|   catch(...) | ||||
|   { | ||||
|     } catch (...) { | ||||
|       // Uncaught exceptions will terminate the application (default behavior
 | ||||
|       // according to C++11)
 | ||||
|       std::terminate(); | ||||
|  | @ -188,8 +179,7 @@ void * thread::wrapper_function(void * aArg) | |||
|     return 0; | ||||
|   } | ||||
| 
 | ||||
| thread::thread(void (*aFunction)(void *), void * aArg) | ||||
| { | ||||
|   thread::thread(void (*aFunction)(void *), void * aArg) { | ||||
|     // Serialize access to this thread structure
 | ||||
|     lock_guard<mutex> guard(mDataMutex); | ||||
| 
 | ||||
|  | @ -213,16 +203,14 @@ thread::thread(void (*aFunction)(void *), void * aArg) | |||
| #endif | ||||
| 
 | ||||
|     // Did we fail to create the thread?
 | ||||
|   if(!mHandle) | ||||
|   { | ||||
|     if (!mHandle) { | ||||
|       mNotAThread = true; | ||||
|       ti_copy = 0; | ||||
|       delete ti; | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
| thread::~thread() | ||||
| { | ||||
|   thread::~thread() { | ||||
|     if (ti_copy) { | ||||
|       ((_thread_start_info *)ti_copy)->mThread = 0; | ||||
|     } | ||||
|  | @ -230,10 +218,8 @@ thread::~thread() | |||
|       std::terminate(); | ||||
|   } | ||||
| 
 | ||||
| void thread::join() | ||||
| { | ||||
|   if(joinable()) | ||||
|   { | ||||
|   void thread::join() { | ||||
|     if (joinable()) { | ||||
| #if defined(_TTHREAD_WIN32_) | ||||
|       WaitForSingleObject(mHandle, INFINITE); | ||||
|       CloseHandle(mHandle); | ||||
|  | @ -243,19 +229,16 @@ void thread::join() | |||
|     } | ||||
|   } | ||||
| 
 | ||||
| bool thread::joinable() const | ||||
| { | ||||
|   bool thread::joinable() const { | ||||
|     mDataMutex.lock(); | ||||
|     bool result = !mNotAThread; | ||||
|     mDataMutex.unlock(); | ||||
|     return result; | ||||
|   } | ||||
| 
 | ||||
| void thread::detach() | ||||
| { | ||||
|   void thread::detach() { | ||||
|     mDataMutex.lock(); | ||||
|   if(!mNotAThread) | ||||
|   { | ||||
|     if (!mNotAThread) { | ||||
| #if defined(_TTHREAD_WIN32_) | ||||
|       CloseHandle(mHandle); | ||||
| #elif defined(_TTHREAD_POSIX_) | ||||
|  | @ -266,8 +249,7 @@ void thread::detach() | |||
|     mDataMutex.unlock(); | ||||
|   } | ||||
| 
 | ||||
| thread::id thread::get_id() const | ||||
| { | ||||
|   thread::id thread::get_id() const { | ||||
|     if (!joinable()) | ||||
|       return id(); | ||||
| #if defined(_TTHREAD_WIN32_) | ||||
|  | @ -277,8 +259,7 @@ thread::id thread::get_id() const | |||
| #endif | ||||
|   } | ||||
| 
 | ||||
| unsigned thread::hardware_concurrency() | ||||
| { | ||||
|   unsigned thread::hardware_concurrency() { | ||||
| #if defined(_TTHREAD_WIN32_) | ||||
|     SYSTEM_INFO si; | ||||
|     GetSystemInfo(&si); | ||||
|  | @ -299,8 +280,7 @@ unsigned thread::hardware_concurrency() | |||
| // this_thread
 | ||||
| //------------------------------------------------------------------------------
 | ||||
| 
 | ||||
| thread::id this_thread::get_id() | ||||
| { | ||||
|   thread::id this_thread::get_id() { | ||||
| #if defined(_TTHREAD_WIN32_) | ||||
|     return thread::id((unsigned long int) GetCurrentThreadId()); | ||||
| #elif defined(_TTHREAD_POSIX_) | ||||
|  |  | |||
|  | @ -172,8 +172,7 @@ class mutex { | |||
|       } | ||||
| 
 | ||||
|       /// Destructor.
 | ||||
|     ~mutex() | ||||
|     { | ||||
|       ~mutex() { | ||||
| #if defined(_TTHREAD_WIN32_) | ||||
|         DeleteCriticalSection(&mHandle); | ||||
| #else | ||||
|  | @ -185,8 +184,7 @@ class mutex { | |||
|       /// The method will block the calling thread until a lock on the mutex can
 | ||||
|       /// be obtained. The mutex remains locked until @c unlock() is called.
 | ||||
|       /// @see lock_guard
 | ||||
|     inline void lock() | ||||
|     { | ||||
|       inline void lock() { | ||||
| #if defined(_TTHREAD_WIN32_) | ||||
|         EnterCriticalSection(&mHandle); | ||||
|         while (mAlreadyLocked) Sleep(1000); // Simulate deadlock...
 | ||||
|  | @ -201,12 +199,10 @@ class mutex { | |||
|       /// return immediately (non-blocking).
 | ||||
|       /// @return @c true if the lock was acquired, or @c false if the lock could
 | ||||
|       /// not be acquired.
 | ||||
|     inline bool try_lock() | ||||
|     { | ||||
|       inline bool try_lock() { | ||||
| #if defined(_TTHREAD_WIN32_) | ||||
|         bool ret = (TryEnterCriticalSection(&mHandle) ? true : false); | ||||
|       if(ret && mAlreadyLocked) | ||||
|       { | ||||
|         if (ret && mAlreadyLocked) { | ||||
|           LeaveCriticalSection(&mHandle); | ||||
|           ret = false; | ||||
|         } | ||||
|  | @ -219,8 +215,7 @@ class mutex { | |||
|       /// Unlock the mutex.
 | ||||
|       /// If any threads are waiting for the lock on this mutex, one of them will
 | ||||
|       /// be unblocked.
 | ||||
|     inline void unlock() | ||||
|     { | ||||
|       inline void unlock() { | ||||
| #if defined(_TTHREAD_WIN32_) | ||||
|         mAlreadyLocked = false; | ||||
|         LeaveCriticalSection(&mHandle); | ||||
|  | @ -251,8 +246,7 @@ class mutex { | |||
|   class recursive_mutex { | ||||
|     public: | ||||
|       /// Constructor.
 | ||||
|     recursive_mutex() | ||||
|     { | ||||
|       recursive_mutex() { | ||||
| #if defined(_TTHREAD_WIN32_) | ||||
|         InitializeCriticalSection(&mHandle); | ||||
| #else | ||||
|  | @ -264,8 +258,7 @@ class recursive_mutex { | |||
|       } | ||||
| 
 | ||||
|       /// Destructor.
 | ||||
|     ~recursive_mutex() | ||||
|     { | ||||
|       ~recursive_mutex() { | ||||
| #if defined(_TTHREAD_WIN32_) | ||||
|         DeleteCriticalSection(&mHandle); | ||||
| #else | ||||
|  | @ -277,8 +270,7 @@ class recursive_mutex { | |||
|       /// The method will block the calling thread until a lock on the mutex can
 | ||||
|       /// be obtained. The mutex remains locked until @c unlock() is called.
 | ||||
|       /// @see lock_guard
 | ||||
|     inline void lock() | ||||
|     { | ||||
|       inline void lock() { | ||||
| #if defined(_TTHREAD_WIN32_) | ||||
|         EnterCriticalSection(&mHandle); | ||||
| #else | ||||
|  | @ -291,8 +283,7 @@ class recursive_mutex { | |||
|       /// return immediately (non-blocking).
 | ||||
|       /// @return @c true if the lock was acquired, or @c false if the lock could
 | ||||
|       /// not be acquired.
 | ||||
|     inline bool try_lock() | ||||
|     { | ||||
|       inline bool try_lock() { | ||||
| #if defined(_TTHREAD_WIN32_) | ||||
|         return TryEnterCriticalSection(&mHandle) ? true : false; | ||||
| #else | ||||
|  | @ -303,8 +294,7 @@ class recursive_mutex { | |||
|       /// Unlock the mutex.
 | ||||
|       /// If any threads are waiting for the lock on this mutex, one of them will
 | ||||
|       /// be unblocked.
 | ||||
|     inline void unlock() | ||||
|     { | ||||
|       inline void unlock() { | ||||
| #if defined(_TTHREAD_WIN32_) | ||||
|         LeaveCriticalSection(&mHandle); | ||||
| #else | ||||
|  | @ -347,15 +337,13 @@ class lock_guard { | |||
|       lock_guard() : mMutex(0) {} | ||||
| 
 | ||||
|       /// The constructor locks the mutex.
 | ||||
|     explicit lock_guard(mutex_type &aMutex) | ||||
|     { | ||||
|       explicit lock_guard(mutex_type & aMutex) { | ||||
|         mMutex = &aMutex; | ||||
|         mMutex->lock(); | ||||
|       } | ||||
| 
 | ||||
|       /// The destructor unlocks the mutex.
 | ||||
|     ~lock_guard() | ||||
|     { | ||||
|       ~lock_guard() { | ||||
|         if (mMutex) | ||||
|           mMutex->unlock(); | ||||
|       } | ||||
|  | @ -395,8 +383,7 @@ class condition_variable { | |||
| #if defined(_TTHREAD_WIN32_) | ||||
|       condition_variable(); | ||||
| #else | ||||
|     condition_variable() | ||||
|     { | ||||
|       condition_variable() { | ||||
|         pthread_cond_init(&mHandle, NULL); | ||||
|       } | ||||
| #endif | ||||
|  | @ -405,8 +392,7 @@ class condition_variable { | |||
| #if defined(_TTHREAD_WIN32_) | ||||
|       ~condition_variable(); | ||||
| #else | ||||
|     ~condition_variable() | ||||
|     { | ||||
|       ~condition_variable() { | ||||
|         pthread_cond_destroy(&mHandle); | ||||
|       } | ||||
| #endif | ||||
|  | @ -417,8 +403,7 @@ class condition_variable { | |||
|       /// @param[in] aMutex A mutex that will be unlocked when the wait operation
 | ||||
|       ///   starts, an locked again as soon as the wait operation is finished.
 | ||||
|       template <class _mutexT> | ||||
|     inline void wait(_mutexT &aMutex) | ||||
|     { | ||||
|       inline void wait(_mutexT & aMutex) { | ||||
| #if defined(_TTHREAD_WIN32_) | ||||
|         // Increment number of waiters
 | ||||
|         EnterCriticalSection(&mWaitersCountLock); | ||||
|  | @ -443,8 +428,7 @@ class condition_variable { | |||
| #if defined(_TTHREAD_WIN32_) | ||||
|       void notify_one(); | ||||
| #else | ||||
|     inline void notify_one() | ||||
|     { | ||||
|       inline void notify_one() { | ||||
|         pthread_cond_signal(&mHandle); | ||||
|       } | ||||
| #endif | ||||
|  | @ -457,8 +441,7 @@ class condition_variable { | |||
| #if defined(_TTHREAD_WIN32_) | ||||
|       void notify_all(); | ||||
| #else | ||||
|     inline void notify_all() | ||||
|     { | ||||
|       inline void notify_all() { | ||||
|         pthread_cond_broadcast(&mHandle); | ||||
|       } | ||||
| #endif | ||||
|  | @ -536,8 +519,7 @@ class thread { | |||
|       /// Get the native handle for this thread.
 | ||||
|       /// @note Under Windows, this is a @c HANDLE, and under POSIX systems, this
 | ||||
|       /// is a @c pthread_t.
 | ||||
|     inline native_handle_type native_handle() | ||||
|     { | ||||
|       inline native_handle_type native_handle() { | ||||
|         return mHandle; | ||||
|       } | ||||
| 
 | ||||
|  | @ -581,44 +563,36 @@ class thread::id { | |||
| 
 | ||||
|       id(const id & aId) : mId(aId.mId) {}; | ||||
| 
 | ||||
|     inline id & operator=(const id &aId) | ||||
|     { | ||||
|       inline id & operator=(const id & aId) { | ||||
|         mId = aId.mId; | ||||
|         return *this; | ||||
|       } | ||||
| 
 | ||||
|     inline friend bool operator==(const id &aId1, const id &aId2) | ||||
|     { | ||||
|       inline friend bool operator==(const id & aId1, const id & aId2) { | ||||
|         return (aId1.mId == aId2.mId); | ||||
|       } | ||||
| 
 | ||||
|     inline friend bool operator!=(const id &aId1, const id &aId2) | ||||
|     { | ||||
|       inline friend bool operator!=(const id & aId1, const id & aId2) { | ||||
|         return (aId1.mId != aId2.mId); | ||||
|       } | ||||
| 
 | ||||
|     inline friend bool operator<=(const id &aId1, const id &aId2) | ||||
|     { | ||||
|       inline friend bool operator<=(const id & aId1, const id & aId2) { | ||||
|         return (aId1.mId <= aId2.mId); | ||||
|       } | ||||
| 
 | ||||
|     inline friend bool operator<(const id &aId1, const id &aId2) | ||||
|     { | ||||
|       inline friend bool operator<(const id & aId1, const id & aId2) { | ||||
|         return (aId1.mId < aId2.mId); | ||||
|       } | ||||
| 
 | ||||
|     inline friend bool operator>=(const id &aId1, const id &aId2) | ||||
|     { | ||||
|       inline friend bool operator>=(const id & aId1, const id & aId2) { | ||||
|         return (aId1.mId >= aId2.mId); | ||||
|       } | ||||
| 
 | ||||
|     inline friend bool operator>(const id &aId1, const id &aId2) | ||||
|     { | ||||
|       inline friend bool operator>(const id & aId1, const id & aId2) { | ||||
|         return (aId1.mId > aId2.mId); | ||||
|       } | ||||
| 
 | ||||
|     inline friend std::ostream& operator <<(std::ostream &os, const id &obj) | ||||
|     { | ||||
|       inline friend std::ostream & operator <<(std::ostream & os, const id & obj) { | ||||
|         os << obj.mId; | ||||
|         return os; | ||||
|       } | ||||
|  | @ -635,7 +609,9 @@ typedef long long __intmax_t; | |||
| /// functionality to implement some basic @c chrono classes.
 | ||||
|   template <__intmax_t N, __intmax_t D = 1> class ratio { | ||||
|     public: | ||||
|     static double _as_double() { return double(N) / double(D); } | ||||
|       static double _as_double() { | ||||
|         return double(N) / double(D); | ||||
|       } | ||||
|   }; | ||||
| 
 | ||||
| /// Minimal implementation of the @c chrono namespace.
 | ||||
|  | @ -655,8 +631,7 @@ namespace chrono { | |||
|         explicit duration(const _Rep2 & r) : rep_(r) {}; | ||||
| 
 | ||||
|         /// Return the value of the duration object.
 | ||||
|       rep count() const | ||||
|       { | ||||
|         rep count() const { | ||||
|           return rep_; | ||||
|         } | ||||
|     }; | ||||
|  | @ -679,8 +654,7 @@ namespace this_thread { | |||
|     /// Yield execution to another thread.
 | ||||
|     /// Offers the operating system the opportunity to schedule another thread
 | ||||
|     /// that is ready to run on the current processor.
 | ||||
|   inline void yield() | ||||
|   { | ||||
|     inline void yield() { | ||||
| #if defined(_TTHREAD_WIN32_) | ||||
|       Sleep(0); | ||||
| #else | ||||
|  | @ -697,8 +671,7 @@ namespace this_thread { | |||
|     /// @endcode
 | ||||
|     /// @note Supported duration types are: nanoseconds, microseconds,
 | ||||
|     /// milliseconds, seconds, minutes and hours.
 | ||||
|   template <class _Rep, class _Period> void sleep_for(const chrono::duration<_Rep, _Period>& aTime) | ||||
|   { | ||||
|     template <class _Rep, class _Period> void sleep_for(const chrono::duration<_Rep, _Period> & aTime) { | ||||
| #if defined(_TTHREAD_WIN32_) | ||||
|       Sleep(int(double(aTime.count()) * (1000.0 * _Period::_as_double()) + 0.5)); | ||||
| #else | ||||
|  |  | |||
							
								
								
									
										0
									
								
								lib/ts_packet.cpp
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								lib/ts_packet.cpp
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
									
										6
									
								
								lib/ts_packet.h
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										6
									
								
								lib/ts_packet.h
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							|  | @ -168,7 +168,8 @@ namespace TS { | |||
|                           0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | ||||
|                           0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | ||||
|                           0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | ||||
|       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; | ||||
|                           0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF | ||||
|                          }; | ||||
| 
 | ||||
|   /// A standard Program Mapping Table, as generated by FFMPEG.
 | ||||
|   /// Contains both Audio and Video mappings, works also on video- or audio-only streams.
 | ||||
|  | @ -198,7 +199,8 @@ namespace TS { | |||
|                           0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | ||||
|                           0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | ||||
|                           0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | ||||
|       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; | ||||
|                           0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF | ||||
|                          }; | ||||
| 
 | ||||
| } //TS namespace
 | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Thulinma
						Thulinma